server/src/tests/Controllers/DiscourseControllerTest.php
author ymh <ymh.work@gmail.com>
Wed, 09 Nov 2016 23:41:15 +0100
changeset 407 2dba812c7ef2
parent 377 52169c718513
child 537 d2e6ee099125
permissions -rw-r--r--
add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
160
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
use Mockery as m;
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
/**
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 */
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
class DiscourseControllerTest extends TestCase {
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
407
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    10
    private $ES_QUERY;
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    11
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    12
    public function setUp() {
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    13
        $this->ES_QUERY = [
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    14
            'index' => 'corpus',
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    15
            'body' => [
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    16
                "size" => 0,
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    17
                "query" => [ "match_all" => (object) null ],
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    18
                "aggs" => [
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    19
                    "discourses" => [
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    20
                        "terms" => [ "field" => "discourse_types", "order" => [ "_count" => "desc" ], "size" => 2147483647 ]
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    21
                    ]
377
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    22
                ]
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    23
            ]
407
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    24
        ];
160
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        parent::setup();
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    }
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    public function tearDown() {
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        m::close();
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        parent::tearDown();
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    }
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    public function testIndex() {
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
377
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    36
        Es::shouldReceive('search')
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    37
                ->once()
407
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    38
                ->with($this->ES_QUERY)
377
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    39
                ->andReturn(json_decode('{
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    40
  "took" : 116,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    41
  "timed_out" : false,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    42
  "_shards" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    43
    "total" : 1,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    44
    "successful" : 1,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    45
    "failed" : 0
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    46
  },
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    47
  "hits" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    48
    "total" : 3373,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    49
    "max_score" : 0.0,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    50
    "hits" : [ ]
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    51
  },
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    52
  "aggregations" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    53
    "discourses" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    54
      "doc_count_error_upper_bound" : 0,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    55
      "sum_other_doc_count" : 0,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    56
      "buckets" : [ {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    57
        "key" : "http://ark.bnf.fr/ark:/12148/cb12083158d",
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    58
        "doc_count" : 44
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    59
      }, {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    60
        "key" : "http://ark.bnf.fr/ark:/12148/cb119783362",
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    61
        "doc_count" : 33
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    62
      }, {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    63
        "key" : "http://ark.bnf.fr/ark:/12148/cb13319048g",
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    64
        "doc_count" : 22
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    65
      } ]
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    66
    }
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    67
  }
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    68
}', true));
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    69
306
3fccf43160a7 Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents: 160
diff changeset
    70
        $this->get('/api/v1/stats/discourses/')->assertTrue($this->response->isOk(), $this->response->content());
377
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    71
160
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
        $this->seeJsonEquals(["discourses" => [
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
            "http://ark.bnf.fr/ark:/12148/cb12083158d" => ["label" => "argumentation", "count" => 44],
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
            "http://ark.bnf.fr/ark:/12148/cb119783362" => ["label" => "bavardage", "count" => 33],
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
            "http://ark.bnf.fr/ark:/12148/cb13319048g" => ["label" => "chansons", "count" => 22],
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
        ]]);
377
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    77
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    78
    }
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    79
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    80
    public function testIndexQuery() {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    81
        Es::shouldReceive('search')
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    82
                ->once()
407
2dba812c7ef2 add a way to build rpm for puppet files, correct elasticsearch provisioning, correct error on elasticsearch queries + tests
ymh <ymh.work@gmail.com>
parents: 377
diff changeset
    83
                ->with($this->ES_QUERY)
377
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    84
                ->andReturn(json_decode('{
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    85
  "took" : 116,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    86
  "timed_out" : false,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    87
  "_shards" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    88
    "total" : 1,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    89
    "successful" : 1,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    90
    "failed" : 0
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    91
  },
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    92
  "hits" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    93
    "total" : 3373,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    94
    "max_score" : 0.0,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    95
    "hits" : [ ]
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    96
  },
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    97
  "aggregations" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    98
    "discourses" : {
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
    99
      "doc_count_error_upper_bound" : 0,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   100
      "sum_other_doc_count" : 0,
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   101
      "buckets" : [ ]
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   102
    }
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   103
  }
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   104
}', true));
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   105
        $this->get('/api/v1/stats/discourses/')->assertTrue($this->response->isOk(), $this->response->content());
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   106
        $this->seeJsonEquals(["discourses" => [
52169c718513 make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
ymh <ymh.work@gmail.com>
parents: 319
diff changeset
   107
        ]]);
160
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
    }
c77f06ff3e54 add discourse controler + fixtures
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
}
jA N"0`aEt2Wƅ/phhUjE q0`Cr90`?TȲ؇);  l?$8sh{eWuWc ;+CRa+(a+׍ hhh, TESr,S %`Q+c|l` 0u42E62ʉYo8jW5]Uhh`Kp=h{ bC© (/ -2$uR=aC 40UqCUO6|jS2ǵj_~U ZfUeX :t# niW֕oVCcp: C\4\UJD#  :P**x^C0` 0` 0` 0` 440` 0` 0`U``````````````````````hU]7 Uh2ྜྷ*4AP- 2՗}%0 ,"`Y !jtGˊE^.Z3r1zujcxC/<AsU9HiF0p69S!UV0eS@hUȫhV_ʸʱV5 U6: ;Cn0lv*eWhxCwUjhtU8>uWxC21uCq+n0hhhhhhj*Q0t9Eyp; ǠCQ=Èld9; ucccch`86;llpJb/php;;Ghh{cxcCCz"{4:~v `h06 P4 =PAs `{p]ÀrZ*; 42#CcC60j"Cc90u!vG8C#(60{!`nc6:a6qCp!0vP Gw0l`p;FǨsP`vC48cx "lhhz p\p=#ҭVu`:`A0n0AhC9mTʰ244<z huǸ`p6;r/1VeffffYffYX̽!PnGqHjw P#hhhj*m  T4: ;C:!y )445"x=iW0d7C*n1Q`y*U}eN% $NC+!!8UyP}p~h~Qc`z C**0`ʽU{8  U *Ư PwJ2T?]C<SZuUe R᳌b,CCUQCcHa+*U$YhnCBd0d,Jl*īv}e[{C%`[SWeQ]N2 eUn%e+:WWUC`0`nA`΋`JUu ۫\P0d!r0j_Ԓ^UC"V""Ud>1Z懵Uʬ  =2C,PC0d0`ʫU`ʬUhsab,C!d;]ႫP5_‘L*JQzcahn7dʪf88%eVUV qTE!`tCcjo|Cp#u[ƆHe = UYVUT*"CIe $X#,}qU*'cad "%YCqVIrp=jS8iW!YCP~~ffY~`ֳ>WUՠʴh4h2-Ub/[:QY2   C*+U~hqP{]}ֆCc4\V`6lH*7pFArCp;AC C8v  hd42j*68C;ô;!wCc)pr22C訟*V*p EC C!S/=|VWQb4¯)l - MRiV`%2.G=h?$<Jȕ}\D]n J`Uu%:*Щە_=U `1VM ެUYV6 7461*Up8pHUGU**pT`9mC1+܇5q Wqs{5YV 43r 5C+PEoZj/!6JҫUYU4:cphhd,֭kZ1AV b,tVUj GAr5 %n"hq C|qȧ VWcW"vU$v; CUd̆\y0s\Na\|q*J[U*}R!E*Ud2e c(-BC!q3jUUiVA!d)ڊ©d2Y h&jBLW*pʰ7Ubʌ ܫG[?h*pl{#j"ʇ_C* ;ʇ EE\G\R}WZ42U`YUPJXUZ-ʰ1)TUZCW=jP`=H 2)I)22.J_@```Xz5HU\4AP5 Y  Pʣ7ڭJs*j2 40eV1W60j0p0eVR5 i}r`  CwC!ʬ UYC?5 !d;P 9Uë*e^U($Y'QXCC UyC!!VP+Cu2ʦ 0}"b-jPe nxF YELUڑd00/5U0,?{CCnt䧗ҫEdW~F~7UaVV2ѱΫsUV|Cad*Vjn Vǚ?b94=ȸ@ >샪UOp=bSX?#![WHuE]``````n1@E^r 2xtðd4h1VAޟ$꼪U`9ECjVuAh|_WQeVU`U`tP[UЩ;*Ⱥ3 C3VThh4Ad!VA UYHC!C 2UjU`|A>a I4CCC 2E!! 0hhh`ʬUUV"0p1I Pj"20`5!~qUʭä>TCU`ʫy?L;P" %:)*KR>!)UR3Jmf %X2C~H~}#0` Jp9UJ %`e9K%`{h```ʆD|(j 2PP>,4d-P*d* TO϶}-Zc4m }mrso}5Mۺ7nڭUèܗÕ]Cj·ncccu[$ث M nCwJp2`(q͚YA6c6?H\QlbcC;C}tzÀbtE֙9Q-P$4ZE)e#leSJd9bRU*2!#X2#lz  Eu0j)64; =#[֬`<@!eVCht9la+Cʡqjv]d*)=UjO <ǝsPEUr8Ք+c)\J2*HکWG{< 4>W;.`s *è֤Y cCCCCCCCCCC*wϭJQST>ؕpm^HVC"ʫUZ41 CPVUjUjDC LVw7*r*%VNG [IeTU8]a|09W@zyuknL՟cW{UOӮ x:hS*:8k }WUVNp6UlYꩃC UK iV`1PYP`,@WҮ +dH 5 Cp:n#;CCc7clr8CtGA`d<e.`08zLQlkY#anC<ơ:: c r0r:xj.`06Vhut="VC2nC!2VVC6U-nUdT W# Cj ! *8>ccC>#VC" «\T!QvlhԋT5UeC 2 ln2xp8 Ƒne C!kt9EX0`VR/!0`+J#hqUchp48 0`FCC0`p֪;HyxTV W.47BJyPXzQھf |Qd1UX! T=GA|XuE|@KO*UXV*I/"*jBZ5U!ŨUt %x`{ " 0`"C2Q;л"1YXO} U1W JX9Uޯ^`UґЫdI"W0`+j`28fwUNOTSUWUaCC*02BY gI?w*xJ}_P.}SW 1)%8¿hc2I({U^c0`NSU\үU 0?LJ8 RR2 ǕCD0`*,`jJV' **'VCCj  "ʬYVY`}CV *eW?61 hyU];в20aTd=heUo ƭ ?ӡX0`Z`eV yZfXVC6P`eYUPʰ65VE[:bnVn4C5Sc!V Ca%1W UIX0!U %sV ۴8 \}j LAU2|?o|`C:G#cUqWup@2Yaj*⮕nU]as!8qC62/  J~[K},j8˅\q\*㍍ozj+|2* rR> ⭃}JCC1AY&SY4@Bv b:;V:hhh ^P:l)h z.zn]})PӾ݉Z6Oh>|.{hx>.O8z8jțhڥ$mhl]{C&aXp<CR !Z E}>| ]}4&Sd*`GqGyd`8m7km{tuӯ}dkD2tP٣@guxm@4## 4NP\sk[oLCֲ6;4-Ch6:@bO4'Ӡ@9;no&XWC "MC Hvm4Zݘi;>@ A((tcu.ƹ;hS#;F`C>Ws.468ZҾқbFd:L"AF ӄkn9 46s3K6ru: WA֢(4S쵨uXpTU)ٺ Bk-*5K %"Pvdm͢[fk;(]ÃJDkw7gwk-gKQ۹4@:Cns{uZUT:@gnl`Mn.% }2>mf-L%NX`PD[CuL*]OӫtlXCTASfN H*]nͩAu[w9)pzET@DPC@er|@ &@ &&򞚓7)OԀ 4@S)!"zSi4d@Fh4шBJI#H?) xS)$G IP42dm46OTSCRhIM OԁH @ &A1 hɧiCM04iTI A2h4Sd'OѠѦ_O pV㬔xn߿[W{mM6IH1P(U A\DH+.3uZLvFUz$6B\Ł K5@v?HR(QQ0B!69qkT-T5&4͚fw{JWbA!Rߌ!<;%mT9"6m+3lZ5V$%Y [҄e lQmb[3kd)[[p*U0g"%2PЈ$ &\U $-",*~hR[#xZV&f8 nѢ?2d?0l?# ~uF)MҶW91J*LbF649w_Ɗw$(T$n pcVoZv4䢦RF•J*UJbbbX4NJMۜ$bJLQRUQJTca$UET©R[9'6eM:8lw5sJ0T˜pcbU7Vc'«soPцuX T`Ur+XXcJRъ@%il)xܣXQ氓uIR%UU1ԨkY)d¤+SX瑦2)nMaXa1"az^ 7rRUP[ԬSv64l6uǘr1V+ܯR ČaVW&$ܢPճf#ȕT+%8iO;rO:cợSdp|[tz n\6ch}UW'»i|7ba@t34+ e3 >*8+dW=^')=#,LBÚ Șrw\>,zU*RQکjdYd)+Y-]0lcUR)_J#sW&W =͝ŦܤM&UTϩc9=i@ux+1ɳiO>,w8th8"?}or|CM,S{Mv4^ {9E![nI$C a½ϥ]_hyn}18rv^יO"{+#Fñ)ڧjwsM"=JeHшs6icp}7ǃ؇؝OIgY*S`I> x+pw)s|^]7V<1EQL> |cbPy+{u0y `py jT3 ꛷tMv+ٻpxy+]*+;TUJR7n> <iM Rͳ֞w9LO1f9<<fLc%bzcM>bprc+֧۩]K p6ccM6ihy}lRUɳI%EV6QXcg{9%SuhpĜU nѤ'& 1򩲴ت*Tݍ(F960R>ɻFét6TX*brT0(QU)Q*JUcuP5 qwGЪllCh7U<_pݹJWQLUiL+fhUI1*iX7nٳMզ#e W'rG76*TŻ TjQ¾%uXsىɱB߽8/_V :H[*SF0U)NbO#S>Ԙ)J0qA#BGĆ,u3ș#ă ̀D5NOsyf'7@bhUzN3Lnq=89CCr:<aUNץO;չg,_<YA{WzN菑GG ~.=~< &򥠲9i6$#望946uz܊bEIUxN&X? 2FO4ǃf*W9!96ic$eM"UO:USNdvI>W^3OQ=nNx >Vo{ޜ4;";d<|R1?Smi+ +eF T I$TTB,HR=O[Oĉ IիVmmI&թR*R̤VZ3==S&JZfDDDDDDDDADDDDDDRDDRE$RTDRDDE%$RRDDDDDZZUe$RDYIDDDDDDDDDDDDDDDDDRDDE%%%$DDDDDRDDDDDDIDDDDDDDDDDDDDDDDDDDDDDDRRDDDRRDDE%$DDRE$DDDDDDF)"$$F"""""""1))"̈HH"""""#JH""*R""")" )""""""""""#F&mMKmfm6ҭH"",ȈHH*RU*R,2U"""""""""U-""""""""""""""""""""")"""""""%li^!{SHno p(x朎J)E(RII=ӿ&|"""""""""",*R,ʶV""""""""""")"""""""""""""$k_9r""("))"""̤II))fDDDDDDDDDb""""&TfDDDRDDDDDDTRE$DRDEIIIIIIdDDE$E$DDM")""""""""""̈))1)R)IIIRIDDTDDRDDDDDDDDDDDDDDDDEfDRDDE$DDRDE$E$DDDDDDDDE%E$DDYZimEiDDDDDDDDDDDDDDDDDES$""""""-4"")"""""""""""""")"""%Kb}WySnRҩe/ȈڨhH)"$"""""$2""""""""""""))IIfDDDDDDDDDDDDDDɑfYdD[6E%fEIIIIIIdDDDRDDDDDDDDDDDDDDEIIIdDDZiVSVJIr"""""""""6QII"""""""""""""""))"""""""""")"""""""+,IfE%Z""1IIIV+LDDDDDEv}oɿap{VisE/{؅Hc-U6W?DulHHHHHHNQ WuC[0z6myC\7߾\<^w0nƞLsd,{(GP|Ǥ򱎯ǃ\knac򻻎j<>g=|[+?#o B1'WQ[?;C#ٷ,Ac--` 0hx8B1):1(tcCÇD"A i\? }! O:wcOȅrدi'z+mD00rxC=> K+QJ֔,(H()iW.]ԄPG|wmT""""""""""""""",ȈmDrv딑=V?U >eCM;a9Λ!lXny`;(L5V].!!दzG񫑃==hsun>.O6;=ޗga# "{^h~fgGx6OSlhiȇMi < n|\<ܛk2sU{iAt:^Os/7V<GCՎ;(cMۚZtȈPUS }p${U; 8:imv{\ #)ÁkrN%QU`-K*}}.Op>GV腺B]p|^ch{?7 UWmGw|Q>=] |߹=ϕ}xB<)6?cmв9Ksͳ40B>G- PS!M Ok~~0x݁c9hh߃{]{0CWD<}Cc038Wc!`3S^F/|><' HO6httc=cc Ok[?k!]Wchh<·c{O;?Cɋ#C{c^kO}.ڃL`1m?{C B? >GP>>FO7gW$ +*<w@;݃@Rű v(1c0`=>&>,w~>p}Orӳ?)ƢxCc_^cܦuF`~Z&ALMC>cx ?kNVB4Fc+6|{G~!Æ|@D0njV pOCq$ 'u 9zάpu] 4. <7O}&F HsL1;ߕW=רa21jlpw[m^{CCCL==shh1-+ccX5h=tlhccAg-0PZ CF4/Zj Ѯ 9"R2'x!Vghn NLG&7;zH-)dE<߼|nxqȢC܄2;pǛB=Έtti;6x{MwštrGaW0rL4x93p[N8u)!i8GVAէ< -ocz<0Cyxv;iÍvauAH r{\zIN <8z+8w;Ar9rAZ9b% i_v=i9cn1m 8{ cѶfΧ~!(Gy^s8ކϱv$\slKP=FrwczPa9gԚ"c͵xK$ʅ$#xB=K.RaC yDc E2:1 bcGq8ӱD^M&ݛ3viq|xcO`J/;LBNǫk~GLNKbztr|=LBiv}c5C5#thP<vG-8 :lx8}1!}w hP|N-4h[Bc;p~'w| tp0|ر<|`I`UV90wy:(1`Mv}/B @D3Beψ0z8,}N7 bǹi+۰)i4̕r3/VGOf=W'Ax9wrķp|xGFtmݷۻ 9u9LcPp=Fށ\gzU~:B֝Sj: =8PDdӣH7I2;;}a|cN$`x njPm܃n lj Mό%wـ8|x [xb:8N"MU}fWcsC v4c6#ٻyēW3G$#pC0eu#F]W]kz!`~#,hO1CCE0ۑP>V]ڮ2(HcrT_sV҇lXh0i}# ,yq УNvxAp=_6r(}p\ x{U(u!&>WvumgaLp6iŔc^9}o MA!um6g':>Ty9yH`eE`~WxGgl0-+CCWV:ȇ}OC ^B1b0T$mL̳~Jv!Rpi_j;; 0:ccn^ ` ۗz!ۑwtyVcosy894; `;; i1mqz5ŏ[l|z:8Ƅm"n6+|ǽ>"u[{>gs zǧTeHZ@ad|W4V@԰G| }._[ӳp:#ܺ4:XȜ` 6 l? OÄ# WAѠuy:ŀ&̜[}jNj`vk-(3 A܈No: v̭1K;BkF@y< '8tutoEt:[n5ltɇ%c1ޭ<=5,c@@SHH4_F yqfV=q#4j-@lis2͍(Tk5CUK>׽1û`rNj~ʼnGucmّ0cmrp>n;wu"cGcDr: =[v:B637禼~vr4<^ g.ϙ`٧p::4ݶ 8p:F=[cEs6x;s,ժH#>W B3[&ӣvc;X]Gz#{cFDslvc͞6w=x 3ju$ZcKm;: aVy^m 5PzKG{GHO(멳(UTvxg˩$>0z(kGW{36EiӻK=,xW@:5͍x6nk\_8y:Kg؇Av{M>=\<]-'Fhz/p:=΁X>Stp`A Qvxьmi(u{|\:1N`!(>,m<[W#>G"kr:t#VSz=?T:jM߃/K| F@$~g~wCT6{Pc Ac[†6іqtz6m{=c`R'#pѧD=眬9'24AOPmcdcDzel9yo|Xᆤ ȘAL3 r۝4ljӱlOܢIUr6?f8Gf<0/s@ r!LC 6tluaSE<D|wQP1e 3G>0<.#1F}xc;3WA 3WNjM8y+phpB?o 64CF:Cr>s&4puiëOhx!Q>%p=oGwnk=q!էS $<]iWgWgF1qOwN\4$"?>F-4>ѷ3IC: yiǰј>Jz0ћ;>WOKL|X=1F@dCM;nhhƔ9~VbD <46妆6Lz{OpfCN[x9r>Dr|Z,'73QI=G-r\!=Aӛ-ëi|V,+6c`qacvvxG#ō+c 1y0DF^1S?⟶4W$r=:4>כ>G.G#Wz|^;n7.<^枣vmNèi0C?>FЧ#vĢFrA<.{Z:0mIO~6ݛ| Rz8vB+#@qp5m=M[nLҹr>WvCwr|h=o̓mٳoC|;ڨvg#vrSpyz

h{8wm0z]X1݂ՠ؄ Xq2I5ww}YOq|z6;>9r]]lw Ok=P{姃m^}#O KƟ340{&]íI@ݶ==Z4Tvthi2y^.vr@WGqg&`{;<`:4i68p`; `wѱpC`Ǵ6r4XŎ gPa:!QL/QwQFc?[n#Qшa݃Oc{wpiݶ^c<i r ¤dPLe 2&Xr̋PbB,6 d fRh<wc٧vCc%Yvt-0N6x:4:4ǃE0VDI1V͇lcaÇ-'yë}FLZ!z=\F\><4:rppE"Gg#rҧ-KnGЧ `qNb9)]^ ".*zjLx_Ղ`@o 8mr͆{1Òk~7"hx0dp/ýZx^ ^9#1$e!23Lx8|~t9L׻ppa8vcW9?;`m/r twpa5je!F@(DF>ıBaLpMݟyX};P\1{#,#\˚jnP:&= ;-Ռz9z:8l{u|ptcrMhuO7F9 pd9#Ѥ;]9;ܾFo#iDȆCշpr6`1 0qV-=[>cy; y:p ]P >A !ȉJJ:rJ-յ H[%!HZXc[܅& |90`ijVre`ch96Vpt.}4q \'#Q_fWEu;:6y=tr,kz{ڶ cp02Gƞ5rp888ѷ#z xɮP q-;3CL 4u l2vc;v;4h$pi;i˫up 1aLˁNGM c,vtpƝZ`N×N/v܏i8Y 82< i8|f*{`6͎8{::w>BE1=&ȩh4bdT1SҢaX1Ib%D TETIS&&*t `?81n\m!Z`78}Hg eaM9:Gg&FlDkEEٹKy5b襮0!(0aC Œ>#`!lE5ؕ111:)_Yhh$ ?S>wC#M!؆G|(;WE<F:kiC@Pw G"`9T$(t>QkfAlPł}6h1f̓G=xw:dKk66b3JeL/5/&@|$ϑ2yaֻ$':@6<4?X 8r!rW 8,qYeR?$flB%\_1ĴCY;KST}~$O7ރ]f=hPK~#"KYA(Wě?姯"B-刹($>~' NP2 ԛy$S]DF ~Og .R0zoݏw{ay*OKF~iwRGFK>2ڪ\krvoDsfsRz8d+_gKL?d$8a^1 ϣ[7B9t3>%R0it]~?Sq#x YnSgM*kߞ~LE|ಘ&&wqU$1]{uwaLiefha$>}^62ѐi66wN*6#Pa6e_mX`.'E5)M-v#*o89>ϦVܼE(珡FO㜘M)_o?w\A z22G䡨2><#QODk)$zdM4%rǾ > "bŻ/_}?M;H,;'q>;8.::c =~Z3sO"SU6ufp!oJжas%KĐJ! ӺJ NGDT,3g 5,HL;| w.! ]BQ puH8RFhcPϚu y"X; M8$~&5GULm|A/k3\Z6 I ) mvyߚv~I~c&K.xZHiU2Е׆43BL!$!0P9ˑmVz+J63rLr)iSJ7Ƅ57 w%t,J9gg&UI2V7dO$й}lQs*ujZPy~V# $5Ba!'~8( ?ׄ?MWU !$FqL^uVo.!yLzV7ʑbBחzriD#F~mxwp׃R}s^tIկݕk?hÃqe9+/kbVnn?L:*U@ǰ%F%`{&y*dT(R,݉\m,EpXSH|I"6HzϬOxvyq#>Um$I1/@C}xpd鋥NK_ooO7ca6$o*l%Qas1oιQ{6].gJPE ӟ]9G줨ۦ5CE 8t{5M=Q@SPAx0T;"!D"-d'~O~?:+ʰˎ\{ހx{`{&`{z^vf{…n&n&n&pC:C5:Ȼ]uw]GqwwqwAwƐwMt7Mt7 pÇ8p{}r77x򂦘l TY37ۈ I0Im)ZY[Fբ"JYXIH,,"0*(TY,!HT,TB2" 2, Ab%*"%HHʒ ",Bb%Ab(*#*$(J("($D"Q`R(D)",K,J%5Yk-+l٪mM*f֛Jқfҥ,K-jh,kfjҦjRبZ-&Z6U%-Jm]]GQ8;ỹnnnnn\˗.Hr˒r; }MMГJB.g$OzC!bʲvJP!!/ʶ HBH={,d>-;(J^]:iD*6W|yyQM.y^9,K2f|v7ۮҗӫߺzy)_n3J%{^~WD_>yL(iD.y者7u̒D߫̾Q|iJ_o+&)0מ )$q}xWpR2@۫݉&]W;%)ӺJ}^&RݦeFL}yIy$ tH(@$ +/<|]ąBRh$&n)};_t2 -c7Ǟey$)}]$R !_^&dend%7Ӯ3>e22e042yǕ̉ݙ|㸙>];s/}؀e}z};L&_7d w@ׯ@2eH(}y z};I/ᗾo >we/;;evBC/:@$ϯ7tP2|C店te _=qϞd}| r׿7}|do<1!_O@n.繐}|$})B; _Ww^^37}Wj_"BU_ƷUOhT=/ oVC&"’ZO;|>Ǝ}d̟nKgM|Y_Ͼ}۟9>x:=Jeo`W׼p?}o-_ܸ&*FgңlxﻷtD;}Y-}܆@1OK&|۟._}^}kYGjt~52O/h>箾G(o襁o_ulܿ&ouhf}}1W4}ҾwӾnϟ%;PtKnϗ}݇ߪ}'\}}>ᄍ5o~ԫ2?}}'>knK\ݾ_syWOΜS>cz=)_^o00,Oq7nv"CF9UǜtQ *@Px%Hqw_=~|.[j73J"hh5ç^t']5^f깍kZ!wpedS1z M@^8S!X$L]\ 5F557ڹ}ݱjlV7m1NCC#`DKPysxPЫtD4Z0 #H83iC&,(qf /.u@"Gc<]KG4"5-%T[6jJ[hQmjƢFE&m65FmIQQb5QVmcjj-dձmcjԛQ6EZ5dXشhQKFъ5%ZX֤[cb+cmضjkQkF5hF5V*mcmmFkF+EѣZUZ1kF6Ublؒw6r  V(?6H-P!ıh\oHnd?ˉʦ΂7+15"ttYu/[.7]HomUu v {R'֤mo{ݯd~sGGtIA ?8l0\)Q"o}>_j/-SȗlYߑoWyJ,Gğ$Y; Od-%XffQՏ6{XQe(Iˑ9ʜf՜+^'pr}S(3c yطs+3^ɆałqP0Xp!'`>-&ݼxGcx񺺆HO̙ '9[)մZN'M@46Fn,2ء~r~9zpV(s NJD,>E5%BtǍOn WknHU<5 90f9OIKi^H#*H{y~`.fVf,Zsi [RDxLn7ʨk{VףwWږ;˒R}{ww}w.32;3;/V+//ݛʩiə0l05Z[ݹ+08^u-kS7nܵiIY05N75kw}rVeGimq+n7Rw\8kVWU{UUUΕ169՗7q5E);s9r_^pۢoЙ&N g=YԸM2۫mԷ D -3[eKn2222\Hza>טM{.B9##aq=uڣMpwx6m]hXf0ݔAoWr5:G;BWӳ/H2G%$B\8cNpko`cӻhCFD;FX*qX#2X:4:zbA 4߈Y]Ctv1HzF4cLtha?([m EjYe11ddgm5;sO03x̒R#F ! CRES$lD7lY%L%8JN?QlOVI|EXPS#q9!y-vlޥU2,$n4AHk u\BZ[o՟\V~NJC\Շ6+p4 lNs3% ,ҫ<ؠnWR O&6QQZ^7 =M9iZB40`9I`1n2"\se+R}^-Fή:=.XXCRI"=Ԍ7Oi,+QnRM%5"Jy sz MC썌20y wh~ϼDB]?\%56}UllI&B,DѻuT5N$ijBInʦ[iMSfYWdG2]MU6I-6I.6KuUN6$NmImޙ/=MM6x s?`@;ba& 7*Ng}lb|TEy-:E3%>1wޠN{Ɵ n L`[g=;r-/o Nr&9D62zi;4OiX1CQwo8  vc;iUVJ4dde ]$ d  8,7 hn|e/T7ѓ0plY{dۑ; W:Fh}/'uzC\`?)r#2Ljhr5>'60#?`4(8; 8vo~xz&ҥjzSҫ4ҫ$^T8|`4;_488Vrm/\wnF^w6?)$1RB'C3#bcHr 'aM۝:7H"GBǑC ΃‡"##SL: sX5y6r&t@BӢT)$OTHo~Flp |C[ᙶ?Q~f_~#$Yޑ8-xhӝU7TސfXF_tdv_a_-PbugwUw?zN/䏃bq$=f~?O<~n*7]VB08 QF3Qګz_IC؜رjG8gf3e.EZ}W7#}y}ɜ )չB]ݙ:7o_7^Z~zRuL5>q&kZԠki3BqwS:sUJ/gyyoa'|mBw!R-һT:^UjcX5>cYG44;?_+h`@2iTdmUxԅFkiU=H\懥blcf_Oc__ۏx.cek9U)|{n\M)7O3Nl* UF+[SlFwvڕ:|ik'gLuRROf>- R٫m}`Ox<,ay6t7o2ș2V 9߷/_ |{bV޲W4MRKwL cB%)GS ENvxι9HEVM}CFHY_\ $8w$Ư^]'q(`,(BKrߋcb%~!cYeR;/GW )J==^u/2]˷,9pW;KZԞ9|%.c#:2R]$}<:8)I_ JxtY_NpK} BM/O_*),L̓Z7 6:] IY';P[$B(/ׄQy2~b}l%?! *s>P~:Q'K_Ddh+Fn$W b1.'r}i3u*`@ Sт*0LWR&@PeȣCMDKcl{ujmȇݖ(??3ωmmovVnPnBՌc Ji˫TL#h`B)55dt JhrC !~ xBsÐ|<<> d321,Bb҆ưbtm ?$ 9cL01ݡ:1cNPm{7JjmyUyf/e5SAƚtWj/_snCP2 y#BI$c/Ғ= ǹCppc6?o\[OZcSI 1b) D+֪JRU>-UMTUT¥*Y\*V4̼}sX^|^nw+n7L3_\Q=WAk-*cvK:}ufK$aCR)F :LEKcoyt-99%!G&} 몝H(tQފ0#pQy:;&1$2(vI1>M4.</R:5ܚ5[lT$ %'l~%8QQH0LG(M<[}4Sٻ;gWg7ks<"sp*:^_#Nu=%GXW;Y!1p(js0XQHmG<`.laGwIէc7jp:rXcйSCĨD ɜM Bpعu;Dhdpʭ=>w~ۓub|GuF)4NOp|_+Gvb?(Cwz>/zw{ [<\_N} =OKcͭkQ>/:^'&;^=I7^=(=Pf=πgIcƈ}JP3c;|Ҡ͐i>͈`CwA<ǫn pBw`BG䅸80I@x <''"@06=m×x|t~x=cLz61wsr:8ᷣ9qpir=cn^{H$#OGg/J{ڭAx[C9(cWx'c!`Aww+|]܎7r1!>I!fa{-?3B;[7^v8t&1ϯQ|cm;R>ow>\);Fޚ^xώ6Fxd;swS̤Z|Y=}ޞ^x#$y9$UUUUU$I5I$I$I&v$@u][pVnWmַW[ [ nm\Vt2L9) e0 &ɕ`0ap1CL2 e2`1c &Le\2! eC.2qˌ\d2! ʆ\d2! `0v\;.ːp@òpv\;.ˇe 08LdiiiJR[u6jꫤI$I$_v׵o368PW?789s5744QHZKUcDj [/2,>vmhaMA@H3pg{$:ZnL]ʹ 2Ïnߛ~kbt/\^1pbLښiw^ł YVCX$ϫˎ.&ty4Lli됽T9԰iky~Æ] ;(]n?mu2r0k-Pp`Ƃ] =y3#j༵qX1]1un`c|:κU/*NZ! Y㛛{}ޥf}oC2ɗ5 2[Sg%o'rY4އ[|qi\4L#شL<0,e0#Ku_r2<{]n5ܖxyIX- M:\{vzƐaJ)+WY%Yw9`vnk4:|p*/p#U8sW+UJ(aMt..p3&lo#/:št735@ashlb1VnQ1-2רyuz=.dpI]Fn j N]gd]pz"yu%{V٪,$W#}٩v81ٹ7tk+dF3,\pu 0VPNL[ٴW{=p^Op/`p"z{5AHߧ(C^v=@^H& pq6z .ܱp*#BE_[;84׃L{x8pkK6eZ pUYN TJuHug;E2:)ܮҫgQf}{ut!< ;>Ĭ' nRo]Ǡxsq͢ɣ-i6=D<>#{*:P|WTMiι;(:26-ULvZ,wUQIjjحLpAOPk}~1Wu9ޭgH-QtʮU9YyUEYvw =&os{R46Vˢ jeZ ZX_2XKyK;\$:k˽JuZZw1ke$n Q 懿[:z-P,3됫;c2}x⾟ }80{;|8ӏlkliVBtpQ5'(=/ё+7[O ƒ@"a\x(q_@F,chd&LSP~2@d"/ ܨkqص: 6BZ)2YM%E]W\lMpY5mϽkL:Nlا##ݕr^%pok# 3*G^Y T^#I'i-[Ykn#SpA ﴅ=*&$ y6Ry IC+4[ݣtXՅ7Z{庶Z1v;9ܽݶ!΢V~y'Ƽa)ygxY#'$ׇI[ y>8KP$GCϾ k3 o]IL!%Dֆ}THwqxJgs櫳!3b:bzse^ڏ&K^Lcf|CNHUoNj lԑb:ADT1rz8V<*5@$$L1$\ӎ"(+fѪ $dgS}>4ք2ԷЄ 7K7fxN֙pjBcהa WW3rͷotɦ=3֕sIr /oQ(ɑʌ5BcJ>5L‹nJ_%^I*S~2}> dN}DI{wwY|9O_LW ׵pZuIj3 ~6*t^>`s_ yWˈ?(Vz5 )POMm|=ғG`pX vpL`[0NkdI(yuSC7SCin}S>;wh81YTyEHB)Aǘ9AÖ mpGM4kpi n'bI蜆̔yD9'?: Ӵѩ'Pʺ% Տ>u2 *HCL2bD,9A R ʭRn6lruprra8r1w|G ٻhӚSٱSubv&;[148Sr1i1i*XlT*pRc@MBQ*TABF 0lHrEMH.9 AgScRSNo 9_rUŔȔzi>寭}lak9TZnjw!pHB^ q(N$Sәmtg _'+..*JSr~R\P\=1vGN1tרcfGˣL|\=+9zxk{NilyѶ1ٶgv6z?[t/~=':4sݜᦚr\ `<؄i͍=WGsMwr፱i1_s1zy?gF=Xm|\GgyCn7n_#BpRscsr?dS s09M!4aGѱMSs&ƎhüԣG3u8^^H.I/ĿJHRU:Ե%;L$&CzwgP5dkhVq47f`h .:5T|~03$dNӘ]8?*%O'ҲHP=N4ak#Q>Nm3 O9!f"K"*$ȠaWK$#moFO?Bo'@C=. eT?T>-DDDDDOo/4Q[8p1كM - }eolݒ+KrB0`BLӆ0rɚtb9i,BF:1y}od!s8p<_>}kWdbD1O*+*C|GjwzD}yC*1SEt׹щؔlJbPlJs&ɀɀ0^Z ;[bP0!kB9)=̜'scd'5}P9K5t )Pw}xsUVdG C|6EJy5"<"lYDBQ"ÔtlZ`Ng8!<4z$I& ,$Q&!ICxBHJW*E2"r PT= TUU@SΪŀ5(x `iL6ҺU2s˟<2\SI66Ad#&jf(PPTU5Lvm"jBcWD/0NtHr $0M%OedTHj$j ԎiFA+Prm-Atܰ]RRJA$0k˭Hh|;/>[u1Wg{BֺD*U!nͫܫܮӖkGE~@FzvنHK¬[DZO1C2*,@n"8MkEp>Ŷ꧕&jM[m54C ]EP`"-ж?ꌌbsT48vdI<%UCKjT ?ߧ/?y=t NRVWTcʔ1Tw5fܪG{z*WHJhf]3i6T1.lbCW`Vj)*BZ 6QJT!ftТcv3nuO (TSED$U)$'mBH4Uq@,C1vv)m2[J)?4 |&}?CE> T~'ȐB^tm__n?c!/μ?W[Fڷro*mtwyCdkwt0q@)~Э8bjXJN6 nr 0dQL~kd?_F ܭ?(3SCWiюfKU;&U47ϗ>"h:'kn:,EyH!b;Dz7ER"8Uy]aY^׵z޲.U[b"&BtIFn>9ڔ$A6$ֽO.i4iթB!E!k"]HiA.tڱQ}2fOڛ뺯Q0>"/\AA/gᄋyWmUֲ/}bj ߲}eK(A(N?vUO \;_ДAhF=D !#!<yׯF<"HMV*wS Ñ910ey> 7sjaOQS0w'F a0HɉcFFC5$] R3g677o66mh80cp1f@ȕDNKωQpw=K$ (U`pC0]`RHodZ3Mh<ٌ# aJ*$ Cie'# eٙsk7qOn;w U<@d$r @C@co xؕl~.PH$ ˱0c meشU!`QT{$$ +D87P-+dU͗`QTB,]ER@DvDx9׏+5K4㨅KEP˱(Sb˴PCa1ceU}DBFCDr nhi˖J&>@Nx6A 01.;p>w 1$v0 HH`J"_J /L弄ٴ mle U|M)!D{v<#0a*!FLU_umS䐄?4`W:̎. wo.VͦPI))EV ɂP/~,$Q4v˓؃ T@{vJscz-i\ 1P'aF,;-P.ˠkJN !ƒMQ?DA%jȴ{ ,/;2V[]CtUʡ/^$txtD I isnwA1S=3i%4t5!bFEW p0I]U.Q98CHPhEM6rBpP-.wL9d!c'T QB;‘0 w;dS-I:o($ ep5D䥢$1@1ٝ'8|F'ȩNsrv4j9JLӉ$26I)&a]RM֢ҙ4BnoF P v>@|rT?/ҋЈk8LZGD>O!4)$ EcmUcUzmQ-D*!+ϧIhbKE@!8.Ą0חtwzt#Fyqj.x7(xR/%tMJ^k]Ε0 G`PȆ憜(t@=J.mw~s|IȫЖ>8%f;&H78gWtUyZk ꘾ )l[a6 0a䅝᫣W nILNDh՟nn`CDliBNڧMHY~`eԊ@ZC$| =6/{N/2jiXNdή1t*,o:arε,j 6@ܹa?o!$•U[ fXn D y)#E$ =2L)C)Ly) .@I? qq l5Xۮ-ʹms M4p} p s̃C^10?6{cKBi&1U ΧgAwaF {_NMe0{#Ux4YI7TG;=)Eg:DazA?RӪF߽YtBU5TY"G\$!{D"cʘXtI5*K1W-9T=P!#t?aNl *:r):RQb>Q 5EFQwtq,4C d^$R`qEYU{,xX=:Vnnoi$`ٻr-{J&dvBߥE%h # I{|-$IzA,_X̻{oNnYm}(af42 (erdۤщ@3;ݞhr뱞'TD9w Wz>zvUNeugOHҨT՛2އڃ V;.OU T *xnw_QV[VrT7Wj]vr˓wGKNT;VSv*Qj2B.e%FTT_(LVk71p lD\ WbW7j4Apd1*uśȳImIcJF$l|xU|NX+Gm$v$1L٧,㥶MA]ۀ /kiRgJ%tHuU.ś(dĘ7UmkT#Gr´(41.&h싈Q!PE9[D/!<=0`f&դUffA!f8}.10T9^$_Q ]h!N2L0$I..qtYiY e8ّARKB#GG"jٱU I"ADkYq.//<,p':-nܖx Df[N~,6mN?2II3кw~{Ͳv ܹcC__:*s5W$VA&g@’4N9~UW6emop3+A+Ҍ堹؜')Ø+BWyYT6xli+CJ\'WC-vhEC78uCs{ǯbY2F2SHJLΆaȰO4( >!jup=E '^Q}FA<Ns|dFd(ZA5B Vze10|<3gӣFx$?!GO2DMH<@̀D^XMkGO` mRF !hEF+OW<œgqaS jB]lP^ X/~=c]A7;9s| EUI?xYbDѪu1l;V2|}>}>/g]~gA4VLvi~J-DŽYm I)%! "&ZP^kԿ>}N*Ȃ[xlY5y*ϲFR1oQ)xy&cINnj;TEy'Ul.҆!)Uo`4Ѵ0#4 C/ MDN=y7B[a ~?@Eo‚>!B?cӜ,?[TҽܓhӪJ}heh#cwY^&ku.Uݪw{25l8A[_whyW`)(uy[@I1}#%8D+ѶHF,A?+2 0T*d# /({@+Pmz^074'{ Y^b^$h[yT#v ( Bt^Ɔ%?8/p9'/!E4T6BY d!!zPTl+-"_ĶeA{\u@*xe8|hB >*רcHd"<ߥ/QD\@D5r86[~[4~TQ󛹍3gYv1cc`ہ-dv }ei1ٍHӔ06Gɶ?C?{;`c8{y?BCČtu]_A0}3ÓﻹṆ!?+O3EhAI@ @J@_hI MJula|owo9А-^̙g#Yї<ܱˑÇu61&S%47Rn[;TC*@ PCUNSҰI5Dg8"!$Y'o{y00fAKxy%l1J̒cAI7t uVd+!m89( PO$K)DHczT ӳ*WjXvR>jǗMqw\m2r:vTIsTJdN".JM"l4&9 r-HzNPbV2N[^jFG?~6$U1SpqtAw[I*zGIW~B]/,]ռ2׬!O$F Slk-H^f{}i[KXH2$`*u4, #f!KGίF=4y,bSzX~G)9=:)z;19)\ܛ4+:4SV/*v<=JNJw+FUyؑɧi=*rb#+Ź'l46|:it*jLB9Fda rA3MSwӚ1si8#=1&#_#16l{ɳtѦZWU+GsK=mtbr+^v"1Nm4lCaUV)쪼T}%T>ΏS c}l<9iNrQB n!P(M}~7mgL=*5_Z3 BVFT4c1]m&f+yj.v&+VP//KSpxe$5Sf(& 'f/jT?]vä<SL$eLD}@虘ݏ:RAd˱8SגDEAdWrwª͠|DC #|>f(HzYBV%i8vS^q Vod=]B&ewJ8d^ D UjI#q!4rs]y^9FKܑDnWF~OoQnd#.<{| PXi" gJ #G&Do|#o<\Dd!=!}=__ZXLp]=2i 52|=[C:Td3 b gI(}N>GwFo] `o4s/٠jsԽUU.B`bwS| _YxT+QDض.FƿZ UUG4㌾\Ywf8Ï 4ی!aӫRG:_oWsj"KA|~5Womgf#^847_҈K48W}|Q:+J-a$Ēfp4D6$^=ͽ>whX`cӣ,}|σNcOwwuy;9c?1û_ur11m9~G.WwDZ pWGãL|]N^/{Vwo?inAy=͏sv|ѷGw8|zO{N'Ggӫyr۫McRA,0#19FG!llQ0r64zMhlaȣc0xu)9I=GSa93GCQpyu=&Ay:aF)rӦ{?S #C,'$Cbn~i:0cg?$N;TP?{Bb'CncWdAdUBE-"z5ID2n'loR'aA(G̴ [x]xe _Yz;(_q!L D@_ \&S>]59Fv(@"1X1YQ!a,W| -loa>F &3?2P,M91{ٙTx Hp`*0_2lZj%CIf,' ̠0!`sQe'Ybi' $V"E`kT>w;YǶE !~r)K0SJS !x<]t@ʞ^w|tx^'a#<3jqNG?x ޔso쌆n=lΔ~.ƞdI~ Aә.Ang@h'ePu@JFT^OF])ĴN@~^tcNNOW <)ʔVb-Jws-;2ϪS>#~y f?B&?B^\qnR޲G-,vߜț|)y_yOw0#8m>yvv@@M0XF)i^dѷXH4юX7AP 2YhjY#ue6gR>q)N2!8.Иէ #AT UT i;^cNaB(E)"A!2 ATJ 1;m+j=N@<ȧ(ʣ3!*0!2H,Ð!ͰC5 61l3 0 $qűExqsÍyB%a8+rqȳ""̈n忧IRB z)c6Yd66QJmF˥hmG(@h0r4h6xxDJP<<ÍYƊ(\l8g'Hp<+F ¶H3 ,UV\+Ul֚jdGZ]7zDE$Sn_7~#DN5ErÏIPmmimm4SmmmmeJURMMMMlMI"RI|iHxFrDQ$z$DӒINI$)F۱~uUTI$I$I$6DJUUUURI$I$I$h0 Ă/A$A$?U^I\ R%8d%9RDܒHm\).9TRD\l$lM4ʪ -Sm0I2%0NRQ)M)m*m0 S%2m4[ISf@e6[-4-2H$LcBI 1*blm[yCv?r3?T .o3) ic0#@%; ?bp=^Q?|kJ.&Hc~N=ONl3ŷ͌,l˖0F5Kލsi#)WvwiGd6m;0$x Q4uMZc1ch>D8cM1chP&^O8pˇ9pÇM ? {D~pcqAx=<=J4JH|m>W._ë `<\=xx\x\:qJc ODNi.pJD7&L7MP<զmy| 'W#r[DQFcϦq)vv DZ+lz DU)}._KM0m~ffffffff1cPlc }[iM?0?h4A#|[um 2HFSr=|Ǜ}61ۅp`1cd$#'1q`m̅)E(MM%`2:>ux1O{#v@0ajQ׺,`nEz(k%Pqxiz;44`ĉX45m~3AUB4V1c@=|r0"2,>25*$[~2t`pAS1lcp?3WAc,߷nݙ[m|D#J Cic1)r ߕv[mg!OGFZI T(IQR;0B[ i4o=Xu7 n:ˡD.A(bGĀm%AˆiC_{Ͷ[mn n4CW 4ΜG"CՌVZ΄"u}D6.>:r@ly HD~|lc:R?|c$ff!e5v߹wTl@}|I?sDt#*vG)"!>`+c=oWD=_\A>_cM13O mƘ4g~7A?0E8@ >|K'iM8wqڧ>g4ÈPܮA1wiQY@)LF Rʦd1IBaЌ<;zߠ|pӇ󎣑v@GtAJFY}_S?X6Qi*(WUFx>>?p݈xΠgëGaS{Lcmг*0 m*0 +~UH]Y* }TJAI% D60~ĝ O#D?c<ݛKyc j4";" _ʈC"qO:UЁ~7c؆5+_%cO*hp`~P[t3hX<AM"}TJN;1O? DVl:?cc?i,1"%9ؑ qU x1*pi CJlcmr61ObޡPA/>f?䣲K O~##4;_†BHNFp6T1#J0`?l{ggDLc"@ zƘPD>4EVPè?L%4?`2?+~ !c D5yCOp||D4&;avövΚiJVZ8#Dz"h*աTO}iz>D)>q0Q C554?oͭQwx\ (я!~%0=N" l?r>Dcՠiz@0?܇Ƈ4'a",|w>-jwcLUGuc;#h~g 4S Ic1y=?0'ߥ|dcNDBOHz[PUc~YQ2O #OR"DH!ޯtljflBl!+1_ S0?_"{~'ا@ʫ|<?P!-PhGͻ6C  7vciG,t5`RG \>d{GꚺPhO3.[)1cffffnݻ33333333333333yyo7no춫 CBAh5uc:#sBq:HRK}n)l:1N\O?c_>gM3s"^3y1`I.UPHH$ I$I&7.UUpxUU!#Jn#x6K!>'}Qʻ7* *M2gLs%ʒ OޯWޢwHv>ܶ|]0 X4$drEÂA? ?pv?@> ) '4<9?̀"4:@cn2aQRCwNy |c1c~gp1]s>GŦ}eَ炊-Oh.Ωc~5b#=ЧvA GdAG 0FEccߕ ,!H 8 4-u KgUo D (@ʏA-_r=;)up?S󇦚 z ,0=[c1c1c#g>mp>g9mlz=O16Zry:9~Hhܹlmӣˇ!r屶}`ރ~WŶݛblIHj|R!6c(yBR1 >ᦟӖ6G.X1c1c1cI_W^oVF\CtS,˗Ei1Auff+˖Sv M4;G1mpnRUhcU{~GD",05H=Xx+DU ^l5zR'?T=,|O;[P@a񛫳vьcAZihp=WCމhlbCcCKW 0~C"{>01 cjPTMX^WRStb}SNTvF$J:9c Hd'ܯ74ڜ]Ÿ!cH -(NSX(c1jH<^-"E^gŏ1cbb cZiCbhا{(Ռc1c)#_v M VOT%aO]hnP|!GG um"qP:&wrMH2ڄ"F1'e6]漻y!!#..j Y5,0 AcAPrS:^k0&u*ktMMI(*x8~]ݞNUx[pd$yfx9MO7sEOP)v`"UxW`x-8210.g2$0J/?^?pj8=H~`mA?O 'x/uGW644zB6] ہCoݙStGkOڮzD>hc~40%"=Olq- .J>WVQunnڶdmn#.nma7nTM::m+,˜Yeѣ,]gfFFnS] ^ 'ЗШ=3 =RPJ9 ws66q h;WQ##?;[v0n :E3݌):G  ƿ[ogpEv7^C8tkCJ22223SXM *8QUd2<-FFG7"?~ۤD9IH"Q5utʟ#Ō~q_|₆QMclm6clm6cjMaAC {U/b(`Rb"$u}rH!؃&Ib`TeYLS )09$02!20`00d X 0;!t8 @a rD,)aJ)E(R*Se6m6Se6Se6Se6Se6Se+6ݭ6Se6Sd,K%]۵dY,K&kuijݰZ, &':LH ?Ljy_ SU }[ S1,OYtuy<ѱӐ`BBL4Eb+TT^!W94SR}C6zҩjZ`ؓiPХ"A4lzLd:U]ނvIsCߨMCVͰ`66ܛ&0J089XBI%@Q= URfI(i/KwHXmPRP@Ǘ u8YG֪YiJνOܺh6㐿}"|2ci_Clr{_0ic㗐>fG=+Fqx0OvPh?|!(BPgz}zEh{ -Al30fݍ_/ 5[UV dӝ:30jJQ)EkS~ωY$$!QH&]r G]nvLR$%f25jq]:nb h+7.9"wt˜"Kk':9Ӽȼ:]n뫻I9S3s.t1+jEB꤄5z`< zcxpDm?Fi'o+f YM>ˁK y\&$qIARͱyH"l. E1A@H86.dDʝ6$`3,X՘.*V#M34RiIgk;Oe)2vyNkۭbւocd>=D>fOτNJ%4Hr}MuYrI (ZA-_SX'H "MESKZ䓙ٓc^c؞"JHDBȟ?P$7HI%" #}0(!5GbX!x+A;]S'UW=}c{}%&ڍ1+߫ݚ귷UdI%IUh(%l7Lڳ(IUY%I^^bv"ƍb(ZDF)S$4RJRRK)%${^Ԛ+FhT,1Wo~orI)I%e~RԶofqZ(*wѷ-zorɭ{F1( D~s{o^^6MZv%RU*RJIzznmF&@:Ϝܼ~DDDDDDDHHI~iopa@ÃEDr ej0&  p)2чF&hW,V)حYlE[Dpu> e"Â\8)2&q<9y7Y j^j18 @ =&SE(e{-۩s"+J:Ρ:'ca0 G$dd# Ȱg>&ϭ=Io?<9hup;ʇŎ&8v4(*Հ?3#n8 ["Xl>4}q wcaoD# Y6c#4 sx`24A e@W,vb1I.OfW)Q'H؜L Y-%K)W )$ĒHT8HL9*Z%x**u*~$ciZ6"L36s ʆECrĄiJ9 #'ֆJK!jGTT>nZ?RY,jYmУBReȰ#!ՌB }P;P+rgx5{S c?(3?V=^gL5M! $iԘIRCn9&'0 v|A(cm(ؖ(Q4 XM0p| |ff|s#aa@`r0mŌvC;?"~`ܯcb1`7Ӈ< 'JLjT9D$ı!b 4<ÅP{O {|?$n &D;oH0c1`ڂ9dR‡认dpऱiʖ Q lQy0%O`F(thhn*[i0) 69i? 쇥_ 1UWN#h XكC9}W 6ŒhmJ ġ1pccJfx93>')<|fp&.HLc <4BT?șC?}'`LD}$!M~AȂ=cփ bH΁A+CCcO,fz4 E%>AP ccHil*U,DY`F|6` yr@ \ q[.Iq9ֶ,x" L*%Ra,HuzP?[QLBЀ p2fC32OR’t*IhXHlc % |G>(1P ;JS B7Ưͬ4%4T`H cǨ?I&EM#eXa00!†0TÇ (aia02_dde@h {&(`#=\pPKb'8QOi4OGfm4 wYIe ),o =eYXEaOʚ'|F*z-L @# $SRD = c†H&݁WCYn$v%NQ)cðx;1P⭨'x҉8t~5E F?$`&gܟ6)R$bq?hGOYeDc pB* ;3DςHy< YIT}V`*,R" 0+t6ϯ̉cBdCj}mԉB$Th=P~1vD|>'0PÇC2:@1iݶhju a0ـFr_x>aV 4AӠG`Pty!0!(8W(S &X:o)Uh$FJ' ,t 8P%I%6 DCb,#?3Lb]B3`ҩ-f6ycxK))*I*b!`*DAHyM?Sbhl (2Tͫ&VYi~w xEBT@0V?)9x8y0B֨aCNQÎ&iQNPegYd|-06ٓp%Pdt.[tp8fY r p%8p4::@x1-u RF,pP]\"awhB@SOh;4X x!jӱy6ܟ44جbNfj9&C7o. 1 `hiAюH89l,D5) ZzHlӖ:0p* Eш4Y85` 841gdfBGf}11 ?IU,Gf  H01c+L̮md[l,lbcġ2")q% S: )8~q$"(>U7b$>6- c1šLhhMH/>+凲? /iÀ~1c1c=`Cʁ+!R!$h'sjF1p;Jw׫Ռc1c1o񁲩bF(0`Y6Ѫ{36a_bL B!W0  'GSG-SP}H$G, +T>l |*ACU@Bc< ih_y>MK)eS#Rz}|s3s3s"rBbulQ,#?[*돪fUّ@"T~EScC 9shGTitir3mMMLjų"ʋ,*Ŷ=ǪnC }2J7r"=*l>ݎ\MZZs #O[b[eG+ؚCT?H{ a86|e Ð&!zAZucbDS4Oe~޼f[aWh! a8W0(XHJe -(,y`w|ߤВo}<@=o}^Y5)͋>gaJ&再FJ0>v!B' Ѐ`gaF`{NÈe3bN@wD< ER&D:PɨA9:$oG4F4%5hƭ@zQ:l7dLCޟ(JdWOs<+ R*0{9cci[+yI BŁ"{HTJJK$X;ɗ| X1c11 E.X!"#O4@DRѦVjfZʬ4I!@sC?u,ݛ[[WYZKJVeLȳ%jV1+2fBbUK`Z"=⯡\ʊ KmCErʁ>A-PST?x'?4R<͟}cJLeZ9g9 39>s!3&D+3じxa92f0C>8x&@![D 8t˔0?q3?3>CC28$ AMAm@jEvٺTfVem3T̄2!W90309U0 LO8d32scm fA e덮IqۍQmADV53-*!hL";!*iR4َbT.ELG =`d`ACkˈa(y BXuCΒѵp9i]QpxR4cjJtBlBt4Y S;λF+91V *hI crX w8 k`15>8lcMsx &̅+mX&$(4u[ cp^.m% ؈g,)B &q ıG(wma4LL&nڜqMTtH8E^4&CLcBls"661ݻ7ncBAuN(Os_/s3314{`ڏXd#W X| c B Z9L3H"* 0`18d0bF 2( a!D(@0zp:Xa0;!HKVcM0Iٺ.d羚M,C]Vm,5 (mҩ 6Ї=WN(P=sD?X/T5N($b(`p$3! 9> p2p%$%&L=K AҽBkhyvʸp[pbh#C ;sP_Hp}΃c:3<+)%|6I^C=+|=DvcPEbVefml ) zP`}cOO2{M: M1c^ׅs'Xo|tURlv'x Fb{&Nsb4t9F"EajP $APqX@b:%>?2)E"tsN~z 2q*4e$j@@+Ό4IUXRS o?h3BKc1%u 6ftrW'ZiJҦ$0s0`@G#osCD#4`8h,rӇ/W[d|oM"?q8 ~/~-ܴqs7G#uA:1Gv;L9rːCи@G 6m=2W'#I U1 *a*wH؞ܜ&: VG`0!1;@:#XXN# $ޛi'Qll:)I:Ӻ)lNS:94nam;:)fiѱë66Bۤ0uvi7wvpaQ." Rp"/"xs +&NJIw絡;<;1: rf<Zyncv-8x9m y4M>v/Vz1Æci = ti<`6m p0s0wQFF`Rxg)'):gD & Dd6W]-D1^ZwB0N8B%4#a7$;dQr0|^7z#D?9KBǪKz},yƄ k:ٴUs1lrgMwwa@u,gťfy ^esṎXUnF@BɈerJ-˂Șc-NS8!oOSNj wx6>aW ;=[C٦ǣvx4=Xm;6Q۫w-8r8vy;4ᦟomF!i04=mûmioGWgga݃D,')RaRüFv9r4xRv9;vK6=xݛ{3ӍId;̒൹kERPVEʅ Yxƒ2nFIV1E*0>ZF I$ c<Cq (۫զhtc&R!$bbz 2YeT0H10$Ȕ I"Nq<<&DdɈpC xDI H,1 (a X%b|OY:ϗ}{6.^ olъ  /h@HHHHξ9*8.欷G(RBE' h [oGQl"@PY0`ѷ.;0t1E>2$"><# 1@*0iQ;ܠS`:1 /3g8q9M>0}4+(3B?NCf~@i-sd?T"6Gb`YK)P?ԫL;OcJ<01Rd_C0K0g Ù!'$¾'e$HM\!m(B2(.]38'DG7>ţ76-٦"a m0aB1 cB`r' Mr#` 8V&wu28z8<ne<6B/#cpx;;+KDÖ 2H:=66r:p46G.Z5m$`PƵvwN!WS(rFp? cڽ;b0&wcxCCHlV4xy8e4pǣW#<r2 vCi&fnRդq0VrpSk'lg)$`,fέXhFj46l ԩHSV͔ѢR}rSEU.H͐3 `M hwF*%TBTTMT?,HԑTͿp+|_!"`r+7~4P=z]-0hBg9s<S'? !GL>_;hdɎO"{K)e*iW#¾+:S30>#y^KYjd-ߦITA;;^斅6()Հ߲D~D?#~60C(uPS Ȝ?e Y,Yg>GIbAlQK1 m1 p(/re!;>FB4ǣM m6 X#M꒪>a; jVę `2mpblH%21fou>gGp2HhҰ'C?:HX'}# CT>2ȞAPH ~6ѧ >G(%Ai(S61M[ Pp6Nsy&xaV648pZBMDRM\4@L!5v]yX 60t,W# cπ`BBg9#1K 3a|P6 ă0blw`,`A1#JoAbMO&МcuiDx&ɉMFı<% cM`.oCN͈G-6ӆܶˑ򿡧/9::COѴ,41ƞ b+rplԌb@"Tx8x:9.^mwrۻ s !aS '|fy_NN-RhqA8<][mrۣͧN]wr9l7 aCqKlev5m# "PDs&5#f 0 mT)PExTpBxB2B"EZ b80WD"c opC0u_Kɴ$:C; rC|G?Xv!hi |6aX!r4 H5uBwJD16I+x#ID')$!MeQ9MHciCǣ)aLC rCvtm xtHl:48\1:Wp6<C{[yXnm>CQ<ƞg=Z5rrt^;Aɳ#w- 9c(MaqIA)WWFgVƓecëdubIpƘ TT*   ,qbP"[hh\У/ hO֐  {]7 !$KlTee[7[vlGǓ:w8+><<ƈL!-!MQ8 'c]> '1B?+|-#h LFEmJRE*E,R%%(3&(l$>0L)JEQRIEx&sg+&u&p`oK bXH*X"ZYJkYk*4 Ij[I;eIpT.B0&c 9bYEQ# APAH(Cgs*F0 n2F2H,fQ&cii@A@"IBHy>T4=<'ٛ7`{@@`ƃ1c3fffffg9ffgЇ3w/>& @: d*Vmm6Ҭi#3+4HH0kiVU Ymm5em_+QNXy0TB%=@i AblQb@+X;:?ڜjT =ϨȂ'>%knV_W31qS$EXnP1F 160,c3 x! d$WsϠṡ8r+8p83r2!F@`G Fx# xCR2 CGB?]4Ս;:8 19`\n0 $!7wh01AFG|Caݠ B L@տ4ʋ{$pؖ|JrNH䬸q#j'wp`JcvVr`G(|_!"yxGL (I0 PEV1@j@ˀ z?MH(hv"/1NC#=HP@"N0 H$&*%I}Wff 02(*pG,~!p:!K-KD"CE;X$;hv  8@Ci/jy#}h!uC#R/b~CtxWŊ b~A8mLJ0_Cgn縂qcmԢYP g41 eqd3>N{aD;h?# ˅D"i+U@11' a $^Hp9!NH@}, b1^J;$CCOT,D Ĉj/c2c*lB!L`Jbb`|@1b;[A!ČEHA"VAd=AfG O(>̩eB)=V}l?`r'9OؚDUCL@!1.@!ȭ:]H[V9S, $%gf iX`AMԖȫ%NCrYIJ)k91'[=F$$i=i#iۅAOVThwcSڼOruBQD_F bv#lQ`1QF<'x&e*|O3g>/}F J,Ё? hX<HS`SM1G)MaLsmncWUh8w~wGcCë6;ރy;u/6˔:\[9NO&,i:348`y9cO$#r.ܨhx<ylAH cw$^YN[ "JȲ_A2"59͍]0e+'b%p$cBq$204pcI˨him#`ljepCa%`P~L; `h"/? ӫnRUUHso%0 la-Ѵ`(p'G|({ T'ĩAI>XR>H"3C)@8D"O{hi" ?`ʉɂ=I[ O? Ď0$= 9!D Bܜ^,c1c |r fEL0pэZ&-e623,mm]KWI%uѳ5QĆ +Ts( EH̊>V!'ȇS3]DG@?+'+(i4+RcP#F&RRJ*X?nbb(.XPa!fgr) >/80e-jumfeYYVjYV[6ȑJ[5ִX,A)T>-tDՐwU5D{=ȭvNrrxsJU"Qr&ԴeM2ԭJ*E G'a딎'*BՌcvb>yOT=2Ppةb0@>8b:6ZB1ŀ)4?K^=Q4FO-gK{-=ԪHqcb.#'~'W&Qt#Ȋ`FH4`2[IamP8D7Paplq$h@j 8,|+4!|E>FTX@"l3KҤԕl>rvTI1 'NDvt< (dAas/=?zb~MTH*dm#O7o4# % ICsŞ搈 };P {H bU}63ZK3l0"=H Ap'(?T`X2_zƚc `6CI U~SVD5dx|[w0bƁ Qy6 &ANUOP":6< Ec!LVF cɠ#`3)~tC3GdI|r%eB{ efEOCfT!CsKAR:"pMp}tKCL܌Yi:-ᑕYX%t!9'h59! `T4hnƘřXv}۳P4xi::CP |묘JB-IJ+ai i=y` lcM=].Ɲgr  N.ҭ]f-O&XSysG/ X;" 6wxkkcP{>Ȑ`;r(*z~Ud~I@T,9>)Om'9 TNHE"= pӁM:1B~`;Q > zd C8BTeDe d T D,f&O>40~0 `6rAH&ZcNFܹ2rm-1Àrm49c s A4XSIț :'D*RnhQUq Aa٠pӆ8`&J,:M49*Ath;4Lb8cn#W:`bLiE"G|sR(1cHAiA1? Nb1 ERLQj3\CōDX i!Q X}`!TC1#;ڇ9/b<v_yP\OB$GȐOO!(X?/QcUE6`@c+#̚f`[)TMK~z"D$Ӡؤ(LS(>g i"Mx(šut@,v XBD 6Cb S#Ehy !c1J/!<Ȝ̯̀p !`s'*p<=6 ѵ|{<`}cu"( S!DYe&EM0Pb(D"H *IOlHx1$")4Y,,"ȅD"H$jXPnNsGήRziÁq僅p4><~|png&}ǬW IT s:blLL$ɹ9[D &y9afBƚ)1jPclr<'>!|SyТ"Q*jmp]]Td]poRq(!]1Pl>؈0Cwzv90!B0h@)GQln>À3 ¸dP(2HAP9r60`$O C>8Ck_U 8p -iz%cUlHa!* :ilC GcX՗ ~͎^~r@;HSѣ3J?{9E;dK,Do>0}J,BD ȬW A__+QV "<6Nph=3T#ʂ̉̇2g3.apys(lH `aHDU8r0A,L<`b83""PC"0b<S-)j <cq4D TmXy&= [hhi ;G1UB1HSRԬcF+)`ғy|PCM@j)AL- 0cPD*Y:14&҈x141ހ}r%YL =c RP@P +O΂&0$`)LDNV1cD5\bJ$*9a~eLLI;RYRYH%Ȅzm1A9F]wM4>v S4°hRce4S HiR Ap&)ѡG@x:6 8mc!x}g9Nq`d=fp>c6 - @303DcC2C b@aQ9 pfg9zcf=(+Mb@Z\CclMH-!`a ]ЃB d2c]r<EB!$#նmZq4\yM߅7' c$ 0uմRs8O2d9%#$`B+ڀB!1 CAypT#$Rllj4qR`5vVC"uBH{POBNe2:qb/!HB=OiR$$c2J>2R)P2)3TĮd T3(a ʉ >p> 9\H130!8$L3TeDA$􅄟"OrQfԦRe-JZ6ȫ"Va)fQ4hp~2234C: c h_ xbw3,iJ3 2$>D C O}Čb?!]0 ( B5l?[}c8NuC? FBS?d3(G"w%Jd%&%JYe)9$>JPy0 c0 +)nOP5jq>sU!6K|KsJҚE6ڌ*e4 BeTccwo*lef%*RJXEӜѲʙfffY6dS5$cT֔JRHRe&ffSS,,5jnԲLR2YTjM4Yd*)HG"lAC1Ռ m]`vYMT&"I RhF$>wFTـHCQXEtT\ MK~~ `@r`҆7`nXqsXӢ&d*UpU+ Ȧd&de!R< *a,g0 pp}L?i90w |yfd!d3 c8OC B bhIŋMDՖ@s!B8?$0EgcḼJ!|r#}<|O BC9 1UP"JC <&YS'pp0"`P2E PF'V7!; #>c^@p&b8%RQ,')!kLR߳޳6*F,!8h)UAA!LXZw,I%Q uДĤ)2I8'"*4U 6 CF(v LP!(z.Pc7Έ1;D")4M1<ГtUv/Q;w\?B4HF1Z˳C a-`tˆ 44\(4/; T0$PiQ¸-1hG!$n4hnK#1d1P96P 0xGLiÆܸh,,2(~IR'"I*{MAvp clr᷃|&=7Wx!B~&FD)Du؍cձ:ȓ^yHZI F ӓAʤ*4B=lC/QXO6Azqe~x(@ ء)yE=hy7`e64YMGCȞ`H`FH5(h! HQE"eX,Oy"R`ă{B `$ XNf\Q i`ulB"j+`[DK<ځVO$$OBhnzaK)I:;A^c@4VM1 0i0HW01~iG0P84 7Aƞz)Ge<+:GSz4y'z!z+j/x&G{AFVjjٖlfZmJYVٙ+LcE=m{XǸA~;<(!h>c'8 0S]J6X9(xӖBvz_x^y4AiHIѥyCY$NLAXI,ʔ uCY%K09J9$8Iv!0#X^ B* 0  T) @SدQ"c qAKOv4B¦C#y|RhjFpm>摽T ,Qg!*/"IdUQS0œRRm(fff-9&+0r0 8aYӀ& "Tsd 9rL.`09<FBy^y#`0&:+ PpgbB +9!e\̄+fpC@8&@!s 9'$3!YVfզYfjffffYfje!$; >9p/!e\e2J[M뛈_µlMG!E6E4Y&uvԤҦi6+skԢ%-&`ҚEJSbXc7jg#y2\#"U‹GgjjN~k?ġ؆icrӾ/Bڷ4|i`Mvlp,UȶR_A0`b\ΝCP1KH$h,)Z S"Nv1+`339fsA`_}ĉ$!s +^51BKt`I>3a/m.Ji: " Hc15&d}G04%E!bZYUղYK,,ԭF@XTҲ+)Zed$ mIMK("A8w"R)Oͫy&Yf) U$[!aa*C)"~VUQA1")ND~ɄDȐQ8}!>i$)ʪ!v?k+zKbCa~ՠi04AfbB3(?k0OY ~ ؖL1G|H=wP`lauCc='"&1,rB2TI`%z&ɲ#i=!YVHRRd1އC>NUȄ(sDĎ}Oڍ'GG})Jzf0 0x 8=4(#> V*-P}$t0e2n:r;xvC<#,p8hU!o3#՗c2g[4fNF1clӼ ÜLL L<~mF62jLCf-B$fFl͙%:CFlK%Jh(aMN+1꽣wvpsa~]'`DT6c顭24}(MfRMh(XVزSz#&x@#2\RHTc`R m0*2$cN*HD=!G8PC44>JEtWW11FcCl`F4UzyBѓFcņXpG`}/jx{] ,<>gn7IBGe\C. RM94 9tXCo5iYO:346l4/e搉0PpA(X4] % Bm*#~DEղae,!wϓS5z83(9@Evg մ6{ިSGۆ1<;PݓM^JԃD-S9+>#ADge'ЏO=-mX0ǞX]zYNIm,߉!̛C!K) f9ulҕ*<퍕Z9iQFA0Q4r(ٍ6lPc4Q'ȑx3Gzb+LbCm9Ć=UPZ6;2+CEGr)={Xelc@-ar=];oCzip mqĚ$QwL;Ydl㼬m=fwGdHNp}!@0BGi[O0qm*Dt(a0aWADwo,vdKWFV1Q4iJR)JR)JR)JR)JR)JR)JR)%%TqbduH8|~R"y:#vv<{]GIJI3>/~@E=s~0rP"RAB?SlrW/0P4hy} 6|L &A9N4{m6ACpk*i.8X="}2ʖl8mbi$p#%֯Y &fYeX2Tj̥6&H` ]Oc5U`I$XOvdegW4T[ݺ{yJvS TxO)>c  {O2ڝ`^7;#!Si'CIl,;}Gz!#GT# Um<㩆aaDDpʲ YJIe`ZE= ( ew+ȟVTXtRMM[L9h B:-pmCbpƜE[C`Q1, 3n!D& A 8 D !+2Øs@s90g adbRn!BXv4n!r*?k>RssErT>)O09vsbBlWX/`;Ɣ;BSe>^Ohяkn0f(P 4=X!`:0[CZ :$,Qf K`Іh08Fe#=|C`Hzs`RQ`s#@V(Ap @^*ɏ)({((_6<2O7( 'ZSau77wҾ*(nXCM7n8ٳjtnҩTlq6MJƇd6{b۫ ُT!f B^/FG#߹FW.Nuz<ë<Ɛ8)4m:6io \ӳO(Qr݃hag#{ NNA,5vvBWg7$f]A P,vy^]p8p;up4i;!1˺/Ul6atm<ƞ .9vy,BX `cuce0a$uwuCe lᎠq`v{hc=iMp4\\8:8yZmMM< 1Ѷ.wcW`y:`ǒmÆb&08x6 ;<pڶp6 f0وSBv\ p/G͂bljǗ}NryGo*HEQ7&0 %羽OxD;⧝`jlmmJi<0*Ēbi0f`*T'(XGbl><3y< p0|Ba Mo"%DlSƒYĥ`1ō;4H,p"8]0–NeְDni L&C]G`b}N_gyR|gA-dyKȎɩS j#ﭕ`Qu|ΎSfZ#"l,W )b0Nd}0pxd1 0ƘI -N W:g2F,m,c"n;Fܱ>v1s3psWB,EDW y ya:ן!vRr?&#&LN鈞s+g9xrgc h"@' 8%s CBp6J 4;o$$d!IPJ-"L! e2 Res "@sCA!s9pp+er(Cx;.$݊" `" (6Hd->kk&Ktlf Ã5Z;_}&xټ}to [V-iC,`go LHGG<)7ˎL4ˎfGgr0[ 7b[' eƌ99B<sIXjtMQU8Rj[V<\ղ2222܆*NSw40P!N268a>:F!UZJ2a,z~A.[   S$wJC*)T5.=螇HjcÒȇ!e}Z?[z=!`BY&K~p4^?d45E;S{4m&^~aÔfd&dTӴ,B  ߉h 1Do}QF."wF66|OOJ  $Ïm08#CОd55ڪ~\M B>A@ສ4~59}tρ`"t?S1F(HDb&[?eGbi>aOv|Ҩ9bt?}d޳P԰f!D(EV CLcW{[,U$.fݓ3q9WZv-fIcQ < 03 fYTiMKIUޫ^H(]_"*n?(Pˆ=ޟC+5By$H{8ZĠBS{Y%RYe%KL%L,̬V|a)(!'D aRFlQSAOiVfKf6ԬmV6Қ%T6?jYFд4~&"}'䟩05yeL}~+⢔Ӳr-°>AN1٪&B"@4Z|O~JRȉRȃC `; D- DB8x؅ hh?uʽ5 "/D?0"UH mlhX '֯0c$m+)fT$}P"S:0D`?`440|PA  D#V-9fPvW$$I" Dye7f%09f8ӯϦ̫I&ȑ2g ʳA0z|`~׫Ws`QYK*FNtȏۅj?X $'|1z"ۆ9SCA~A^D:'jO0<?;GN1B$xABFgIW{β9 aD Un 0Yp"{$y7{/B 2 hճa:[u-R˴̇C{z+3s!00Ã9yҍT2n7!۲S=MHֽCt y<\8w0X=զHڳ,ejF0mc`N,-}2pSJ"bb'(wCA~Zb!<?#IMѲdǪv97)Vgvh cLI@CyX4 Y*'wC Љ?T2$!£PCCRl(hHrE ! q.ABQHMrCJhg9gQT.FTN>"*l;L:it" < 6!'H|1I?<&ĥ0F"Et`С +(ē#)@1B0_D\A9j !1b:CL_x7 l>c>/VA~PS k .\1ZhpxƇ@r;1phprtc#N RF 6y9p?腼WfO!»;6 ;%8ml6GWGѴ-2ڶ9lpS9B8p[lmc%=XҒ+gGg@:0j0hr:\!!fm{LrV#<#d5MYezPFMF%YLE#iUt\-NSx,a22ݡU_Țq1$6I*ڞt`c:rJW ƛ+d-m 4ybuwXPãm9rrrlUR' F@G(t5|mhr?(*T\,ʃݕ-H)K*UBE?dR;*|DLc(~P`,1V08Ņ)1QDa>A4A|cJYSB#Α"y BC[WT9pd 5D$RATCEQ%X`hRTTR9Ԏ, Hds- ɮ%oZYG2 QO F6ƴlZCmc;cVd6jv&;m`clZZmhɶ6ɬ[dclclcl.kjӶjjiklkJm]V#:u6ŶMhckKqkTd6cZ6mYևljYv;`mm#V]mMlF]lc]퍰m6h mH퀶mv!جՍkkmZ6vl:gmMՐGm lgl퍰`gl퍳mXՍ;`ڶ6V:UmleڲmX6mmjcjdmmb6-U6im)lmvDc" PXV Z P* W^=[VٺYCEe3t鑦14ҷ1xp!"pF2\MLAȍ !@QPC5hKҐ!We4K$~D7fe1$S J37Sp kf^?vrJ#An_|@Љd >#y\pa)#s&X`N̫bCi` z1-ub6v J&V c@ `Wḻ,;La`!H`OLj ѱpS#N `8iF9ҔdANdr2PvҾ(y1~?߷6c!&X8h3FUZTJ+xG铚4x걜lү'}6;UrGbEQcd^nCPw{rCLji8Mf4E.8^q"(,Զ͖ٳ[,j-VmԲͥK6ZEE*)QeETRY!K&Ԛ*Jٴd6Md6Md6Zkd6M,XV,XbŋZj[k!8@O'?owsf16`iL?ef*҆+δH: E*l-lR X:[@m4$0he:EPbUà f8IX,vw+ M!A{@^<2 ^bHjT6GD$y "@9 Q A (H e H`, JzI\DDJ'VDbg_R@7 J%? Bz ̀I[Dl %PdQMlARMa  kĐA‰WuRꂁl1 Ԫ,.Pl# !aVG*c@;$a"NY(oN2YJ$MN=B:a/(i4=46AQAQ)h9[%1r^C6B*ZJHچH|@- Qb ޳ q^am 0<.qYIcA-#i-F^LID dQa.zpL۠SCF* SwFn89ja!^>iV)EM3ꪢ!%ꔐ@݇ 91 #1W`X8G-~Лp P} A[TBHUEPP1UBrcS/LթZގgAM(I$Ȯ+)L F }rLrB禼%aQJV6xHd}٥/*Ul⻻j& )8B c =:dSbMXi?5o~uQj! |oj5 ˖GCwrO8RKokV)[HH}Y0^gIs^]a>*}= H^p?.KnT{\Ϲ6쾪w*'@ޡ_|tI{uZ۵V'F߰at+~wgfB=wڛ7>ݘnUJ8[`>.5YMr3ZiS7YN Vε{VR"J5UiU%DMT߸kE$gEy몳m@W1t6ή?p~S|(`ƪۺF+qT*醕ӟ{7PQ\F-YFzvgyGPW;#ڂC_Z9]a{JT9|[Vn QGp'׵{::u9uun1ܸ4 ~Qi/e.I?B.+8 IMbt=`vPh]M