From 298bba0c39d16c367ff261a6ca818840dbeac8cd Mon Sep 17 00:00:00 2001 From: osaajani <> Date: Thu, 2 Feb 2023 01:12:30 +0100 Subject: [PATCH 01/13] Add phone limit creation to phone creation --- assets/css/style.css | 15 ++++-- controllers/internals/Phone.php | 37 ++++++++++--- controllers/internals/Tool.php | 18 +++++++ controllers/publics/Api.php | 4 +- controllers/publics/Phone.php | 37 +++++++++++-- .../20230201152658_add_phone_limits.php | 43 +++++++++++++++ models/Phone.php | 44 ++++++++++++++- templates/phone/add.php | 54 ++++++++++++++++++- 8 files changed, 231 insertions(+), 21 deletions(-) create mode 100644 db/migrations/20230201152658_add_phone_limits.php diff --git a/assets/css/style.css b/assets/css/style.css index ea2f87d..7bff7cb 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -311,7 +311,8 @@ footer img } /* SCHEDULEDS */ -.add-number-button +.add-number-button, +.add-phone-limit-button { display: inline-block; color: #DADFE1; @@ -319,7 +320,8 @@ footer img vertical-align: top; } -.add-number-button:hover +.add-number-button:hover, +.add-phone-limit-button:hover { color: #3498DB; cursor: pointer; @@ -373,7 +375,8 @@ footer img text-align: right; } -.scheduleds-number-groupe +.scheduleds-number-groupe, +.phone-limits-group { padding-top: 15px; padding-bottom: 15px; @@ -383,7 +386,8 @@ footer img position: relative; } -.scheduleds-number-groupe-remove +.scheduleds-number-groupe-remove, +.phone-limits-group-remove { position: absolute; top: 15px; @@ -391,7 +395,8 @@ footer img color: #888; } -.scheduleds-number-groupe-remove:hover +.scheduleds-number-groupe-remove:hover, +.phone-limits-group-remove:hover { color: #555; } diff --git a/controllers/internals/Phone.php b/controllers/internals/Phone.php index 0cf8354..f92df71 100644 --- a/controllers/internals/Phone.php +++ b/controllers/internals/Phone.php @@ -44,15 +44,15 @@ namespace controllers\internals; } /** - * Return a phone by his name. + * Return a list of phone limits * - * @param string $name : Phone name + * @param int $id_phone : Phone id * * @return array */ - public function get_by_name(string $name) + public function get_limits(int $id_phone) { - return $this->get_model()->get_by_name($name); + return $this->get_model()->get_limits($id_phone); } /** @@ -137,10 +137,11 @@ namespace controllers\internals; * @param string $name : The name of the phone * @param string $adapter : The adapter to use the phone * @param string json $adapter_data : A JSON string representing adapter's data (for example credentials for an api) + * @param array $limits : An array of limits for this phone. Each limit must be an array with a key volume and a key startpoint * * @return bool|int : false on error, new id on success */ - public function create(int $id_user, string $name, string $adapter, string $adapter_data) + public function create(int $id_user, string $name, string $adapter, string $adapter_data, array $limits = []) { $phone = [ 'id_user' => $id_user, @@ -149,7 +150,31 @@ namespace controllers\internals; 'adapter_data' => $adapter_data, ]; - return $this->get_model()->insert($phone); + //Use transaction to garanty atomicity + $this->bdd->beginTransaction(); + + $new_phone_id = $this->get_model()->insert($phone); + if (!$new_phone_id) + { + $this->bdd->rollBack(); + + return false; + } + + foreach ($limits as $limit) + { + $limit_id = $this->get_model()->insert_phone_limit($new_phone_id, $limit['volume'], $limit['startpoint']); + + if (!$limit_id) + { + $this->bdd->rollBack(); + + return false; + } + } + + $success = $this->bdd->commit(); + return ($success ? $new_phone_id : false); } /** diff --git a/controllers/internals/Tool.php b/controllers/internals/Tool.php index e6b8994..fef0375 100644 --- a/controllers/internals/Tool.php +++ b/controllers/internals/Tool.php @@ -165,6 +165,24 @@ namespace controllers\internals; return $objectDate && $objectDate->format($format) === $date; } + /** + * Check if a relative format date (see https://www.php.net/manual/en/datetime.formats.relative.php) is valid. + * + * @param string $date : Relative date + * + * @return bool : True if valid, false else + */ + public static function validate_relative_date($date) + { + try { + $d = new \DateTime($date); + } catch (\Throwable $th) { + return false; + } + + return true; + } + /** * Check if a sting represent a valid PHP period for creating an interval. * diff --git a/controllers/publics/Api.php b/controllers/publics/Api.php index 92fb2ea..2010231 100644 --- a/controllers/publics/Api.php +++ b/controllers/publics/Api.php @@ -535,7 +535,7 @@ namespace controllers\publics; return $this->json($return); } - $name_exist = $this->internal_phone->get_by_name($name); + $name_exist = $this->internal_phone->get_by_name_and_user($this->user['id'], $name); if ($name_exist) { $return['error'] = self::ERROR_CODES['INVALID_PARAMETER']; @@ -683,7 +683,7 @@ namespace controllers\publics; } - $phone_with_same_name = $this->internal_phone->get_by_name($name); + $phone_with_same_name = $this->internal_phone->get_by_name_and_user($this->user['id'], $name); if ($phone_with_same_name && $phone_with_same_name['id'] != $phone['id']) { $return['error'] = self::ERROR_CODES['INVALID_PARAMETER']; diff --git a/controllers/publics/Phone.php b/controllers/publics/Phone.php index 14028ea..52e8753 100644 --- a/controllers/publics/Phone.php +++ b/controllers/publics/Phone.php @@ -131,9 +131,10 @@ class Phone extends \descartes\Controller * Create a new phone. * * @param $csrf : CSRF token - * @param string $_POST['name'] : Phone name - * @param string $_POST['adapter'] : Phone adapter - * @param array $_POST['adapter_data'] : Phone adapter data + * @param string $_POST['name'] : Phone name + * @param string $_POST['adapter'] : Phone adapter + * @param ?array $_POST['adapter_data'] : Phone adapter data + * @param ?array $_POST['limits'] : Limits in number of SMS for a period to be applied to this phone. */ public function create($csrf) { @@ -148,6 +149,8 @@ class Phone extends \descartes\Controller $name = $_POST['name'] ?? false; $adapter = $_POST['adapter'] ?? false; $adapter_data = !empty($_POST['adapter_data']) ? $_POST['adapter_data'] : []; + $limits = $_POST['limits'] ?? []; + $limits = is_array($limits) ? $limits : [$limits]; if (!$name || !$adapter) { @@ -156,7 +159,7 @@ class Phone extends \descartes\Controller return $this->redirect(\descartes\Router::url('Phone', 'add')); } - $name_exist = $this->internal_phone->get_by_name($name); + $name_exist = $this->internal_phone->get_by_name_and_user($id_user, $name); if ($name_exist) { \FlashMessage\FlashMessage::push('danger', 'Ce nom est déjà utilisé pour un autre téléphone.'); @@ -164,6 +167,30 @@ class Phone extends \descartes\Controller return $this->redirect(\descartes\Router::url('Phone', 'add')); } + if ($limits) + { + foreach ($limits as $key => $limit) + { + $startpoint = $limit['startpoint'] ?? false; + $volume = $limit['volume'] ?? false; + + if (!$startpoint || !$volume) + { + unset($limits[$key]); + continue; + } + + $volume = (int) $volume; + $limits[$key]['volume'] = max($volume, 1); + + if (!\controllers\internals\Tool::validate_relative_date($startpoint)) + { + unset($limits[$key]); + continue; + } + } + } + $adapters = $this->internal_adapter->list_adapters(); $find_adapter = false; foreach ($adapters as $metas) @@ -245,7 +272,7 @@ class Phone extends \descartes\Controller return $this->redirect(\descartes\Router::url('Phone', 'add')); } - $success = $this->internal_phone->create($id_user, $name, $adapter, $adapter_data); + $success = $this->internal_phone->create($id_user, $name, $adapter, $adapter_data, $limits); if (!$success) { \FlashMessage\FlashMessage::push('danger', 'Impossible de créer ce téléphone.'); diff --git a/db/migrations/20230201152658_add_phone_limits.php b/db/migrations/20230201152658_add_phone_limits.php new file mode 100644 index 0000000..debf233 --- /dev/null +++ b/db/migrations/20230201152658_add_phone_limits.php @@ -0,0 +1,43 @@ +table('phone_limit'); + $table->addColumn('id_phone', 'integer', ['null' => false]) + ->addColumn('volume', 'integer', ['null' => false]) + ->addColumn('startpoint', 'string', ['null' => false, 'limit' => 254]) # A relative time to use as startpoint for counting volume. See https://www.php.net/manual/en/datetime.formats.relative.php + ->addColumn('created_at', 'timestamp', ['null' => false, 'default' => 'CURRENT_TIMESTAMP']) + ->addColumn('updated_at', 'timestamp', ['null' => true, 'update' => 'CURRENT_TIMESTAMP']) + ->addForeignKey('id_phone', 'phone', 'id', ['delete' => 'CASCADE', 'update' => 'CASCADE']) + ->create(); + } +} diff --git a/models/Phone.php b/models/Phone.php index 14447f4..4579b22 100644 --- a/models/Phone.php +++ b/models/Phone.php @@ -15,7 +15,7 @@ namespace models; { /** - * Return all hones that belongs to active users + * Return all phones that belongs to active users * * @return array */ @@ -63,6 +63,48 @@ namespace models; return $this->_select_one('phone', ['name' => $name]); } + + /** + * Return a list of phone limits + * + * @param int $id_phone : Phone id + * + * @return array + */ + public function get_limits(int $id_phone) + { + return $this->_select('phone_limit', ['id_phone' => $id_phone]); + } + + /** + * Add a limit for a phone. + * + * @param int $id_phone : Phone id + * @param int $volume : Limit in volume of SMS + * @param string $startpoint : A relative time to use as startpoint for counting volume. See https://www.php.net/manual/en/datetime.formats.relative.php + * + * @return mixed (bool|int) : False on error, new row id else + */ + public function insert_phone_limit(int $id_phone, int $volume, string $startpoint) + { + $success = $this->_insert('phone_limit', ['id_phone' => $id_phone, 'volume' => $volume, 'startpoint' => $startpoint]); + + return $success ? $this->_last_id() : false; + } + + /** + * Delete limits for a phone + * + * @param array $id_phone : Phone id + * + * @return array + */ + public function delete_phone_limits(int $id_phone) + { + return $this->_delete('phone_limit', ['id_phone' => $id_phone]); + } + + /** * Return table name. */ diff --git a/templates/phone/add.php b/templates/phone/add.php index f1e08c3..58a3550 100644 --- a/templates/phone/add.php +++ b/templates/phone/add.php @@ -48,7 +48,7 @@
Le type de téléphone utilisé par RaspiSMS pour envoyer ou recevoir les SMS. Pour plus d'information, consultez la documentation de RaspiSMS concernant les différents types de téléphones.
@@ -67,7 +67,7 @@+ Défini le nombre maximum de SMS qui pourront être envoyés avec ce téléphone sur des périodes de temps données. +
++ Lors de l'envoi de SMS sans téléphone spécifié, les téléphones avec la plus haute priorité seront utilisés en premier. +
+diff --git a/templates/phone/edit.php b/templates/phone/edit.php index c1da9a6..ff9b456 100644 --- a/templates/phone/edit.php +++ b/templates/phone/edit.php @@ -49,6 +49,15 @@
+ Lors de l'envoi de SMS sans téléphone spécifié, les téléphones avec la plus haute priorité seront utilisés en premier. +
+diff --git a/templates/phone/list.php b/templates/phone/list.php index d714e80..59a701c 100644 --- a/templates/phone/list.php +++ b/templates/phone/list.php @@ -41,6 +41,7 @@
{rWj2H=#6S@?=uHC>$!uz<&bMyM+AV&`o=-Qh>9*T6DAgE;^#~ zcZ2>}{$MvH@+i{-j||$|Dy2vtB@!YwI5zOl9xL@|g}OLPf%fBl!2m_Sa70P|z%dE9 zZG8SaDGTeTM9$&DfM>oC|2w5fcO`P?@s@tT-KWm!lTxIY5}C-+9(W|uen?7@-by5c zMS#x^8QwOfNM9u~gzEx~?i*f|Qly6xd9=1w7hv}0F{4BTaZB0SnZ_uIVQgdIpZ!`I z!Pwb4$_IKXkq3wk4GMfGa(J>7f>FsOQs$eZgqm|@fDN`cEfpb8U+bzwE~4K>Il#`l zFVF!^jee1$3|~AJ4u*Zj62YSg9 <^p=# zr;m|a(qKu z)d(o%@v4>p@aidjpAdl#rhwQw+ZPP##A|3ER7@E$vAkT}Vgc6wXGce2QJJCL=-ENP zFJx5mV-^G+|9l^v$f)pa3l;>*%7cEpnz!+M1i0&)xy_`!j;7Y5{IfHo(ZKYOzql}* z&l#zsZ3FBpz}X|u{9I@fN+0Q; XNzL?Yox)Slyz^>%aR zfpt%M?>UigW|p2E3`gS;zo~hIH3v58_Tj4{o6s4R;qrXtrtk`GHsIjuh3|@RLThLH zic0;(wyz!JkPaMo_>Q26sZ_vjZSie~r7q!=6xgNo+4n_KdPQc)7p&m;W0+_?nF4_q z7`QM;&zIV=iH7*g{nYhBMHLx2bIQY!n7?=w#jvsdXgD~_>XBb}w JLCvlyCdw%HS7md26Nr)U*xW1!w4lM*cvi{9k!bR3r zan`Pq)(4{chy2p=A>krnYs-!T41Rx-4)y)gWK*-qY@Xr?>1ZB5fP3f7$vRpUt(6jC z`<3SEs4#HDGr3;~TmOHfVpLeaJAute*luj09;~|^4Xcn1ZD5fBx7^w35m8Y_{>s`! z#yH`7hNj-AGVre37ri8Wz0*{V2OR2A!Z?h*1{l~Jm@ka!y0n_$l=zDLLU@pq6X2{n z8fe0F?N=D_1!6*WObx5Pz>LgqE*0(4wIBKirf k2W&&&ce`HIq0S>xjtz%n&VUPjws8Ul zJim9ZdZJGykA0k(+cdx=@mmz` +$FZ-0|LbyG4f%E{@TWz;rTnP|{N;%QsvT;DWV1 zj|huVf2E02Y8@v@zy=5B)fXvu*~9#?Twb d8{T z$6q+~x)j#dS(xRcWBsvsBxHM#P^{*t2VC^XdpbTD-ku!}Vn4!PJj56CiR5 62JxVDHIS>h;^kPU(CK@6`7*7!kDo=79(}px!N`rK-)m $P0FRRPqMne)gyY{BE=e&6;aaH+E^Ov_Z36wVm2@EofkUo73r3y(w2~xo)96& zhPa=_fpvPX)N^4&JP*@gRM=0e3E@y?q%133td;_XakYVeUUZ{wT*G8e$8= @<3 zxh1E)>nd(8;DysSd?JEIl@rvKLR+vba8mqh9jA;cb4*SaL6#nCnGHB->0ft9`Nn|2 z5hT;jLQdwQfelaF(_6&aIQ=Bo+9eC9Y!g|CGZLK376Z=6e@-XcM#Xc *F4ul3$~sp7E}i^QL M0KxR#hw9t z@`7`9YqfONIg3WAnL!F-y3wSq7IUqE{T7bY>lsEga3%wkH!3f=l2ryy{^PQfMP(@$ z&Zs<+<{rT~Ef C{NEF$Z$)rmbB+ 3 z`iM@Fv8jT*MAzO{cpOhRfxl$#)(T4-E0H9n5i5-KAmPTt9bGGty0pA7?WBeyw3-$V z#$ct>xp{%B8-2T8>gm$cUeYh)P6P}tS+hn&x;U$5EpZQ_Q%GuY+*|FpnF;vi`A0Sj zlf;2UwV`k}FJ1wUTo=>Fh$LDo89FqgCbvih@E1nYE}#Sx#sY4?^wm{Ts%)R=QpGV* z>_s%DKnU1p=jvNU$nfS-@nF!qrr&b|0at!^xv}|axC1n{{C79^AK>qA+@@#Mu9i_5 zi*oscTr=R{x-A=slFghg!}d^J&e7irxPrhPb)V2FUR$TE*i{wjGVJ|aJTQ0R1f7dZ zsL+PBe93mgLar*X@81{efm_y0DYGl0*px9g9tvUH)qlwL(NU)$ot4l>rKqW{Cymim zz*Q^f=>r1dAxYWB#QkxV`VFaTF#vZi8kHq>Y|gew$^cJk%~k-OcX+@PBHXDmVO2aW zs!X@qe+5?q_~9|L^^8*zI8h?IJf2O<9O|5uB{`4H3B2`z8)}ILiIU7fP!_Nbhz#aU zLg2C=_UNe9E _?_B~aKQ zw19&H@WkWy>Ru{k+Y4s7AsjTMls#h<9k);miI(w>r!WBT0Y3TJOx+LMtB5v*UO9{w z&?ZNjFK157AHsY9{%{H}?E+Wb{+T`-C+?U`r;)UOZmIMpk7U4|pS9E@seAd=R!Qev zzF?tmI_ XE9y4)I3 3o1*9OAKKkf=2D*}(z1l}MwW3~b*OZf0;N8o%>3RIP z^op~lB}Y?W9@`su>@n@;iKS8n3A--Vq~88HW!;?TeV>dhYA8j?I=DK8lA-=9_avwR zx^e>mKWaK(r_jyVB9;_}N}S!HEX5(4%fkt<`yD$jlM>YtZW_xSC8Dj%*=vA(hW~V@ z{JNx<)~_SkPb_FHr 2ON8@x3OyhKR 2-5OE}?8$g7mce4{S5w zdyT)HAsnsPW-89p6q%Mi)EPVbkG*=J{##jh;Nc!;>R4U5e7Am(|A@;6zC2^u_Vml| zuF7A;
`>FEZ;`##{-u<+mWVfue{raHzXSjIa|F*uRXZMw>-$$wM9Q0p1<5oSnu3WyK zl7E%e2WCd!Z<2oXd#LIUV*P;&-n_}5zI<=h{I_$k1O{LGrCa*)y_EYpkJ#q*e@-tC zN!&}`eY$m31pC+kz(to{9}@-AAn2}Iu!w^IaNcb_^wH+ZTcDR}fi0{6aNR}q^(p_# z<*o9sXL;b?!LE9^NuvT*4;sq^!2N$-`-oVeas_%Q3*OE0zz-jrt7n^)%lA<(G=g0S z_{_v3dj8w8(jKHds1Az*zxe)BJ#eK_|E{V5db0k&zz?6lBK1#$pqui5n$@jL1^Caz z!@2@#5Oh}>RAmC-kUCSQi3Y7IwLo{(0*ko@zys&U52Y{PTeX05ySCo!g?e$i^74Bs z{eR>p0PbG+cSZW;_f_&CmIrP;cvFp|kXQOUH;0Z47;_Y3NMGebE!cj*d!K(|pp>6R z19nve8B73NvFe2!A*kGd{gek?#s&bkk9O@R@@Xhwjl%25bC4_phyH!PUIeUMfu72P zPT>jwuX}%$Udu>Bfo`e^og0hK59r~#>X1AR_f-~fu8RJ7^|(%Afyyh;Pqn~hYye=N zEpJ>U^66AS5maFU;LhPE=@rISmG;3Nssg`q69SJM8G4B*P`P|BReqGq2QJ^X?Y;En zyDRxUTt4usDf=EyU%t0$z!;Ygyz-wtZ;5<522?KeC=&peHJzfj|5{aUKve-}B7E$s zg)fQ%Ei0EtB6S?sANcLe-Fh6aym%`Hf5!5_+ooQ+Pl~TxzL#qM=eP#}pW1m)Z&p+; z-$U7dP<5*Z0}rix=0N)8_g3W(XZ?ZC-Fi$bkx!%jx+;P_Tmj%k559Vm5VWk+{!0Jz zIFSQRezw;R5l^Rl6~sT|@`3Fi?b28XDmP$X<$q0B9$0_f`zNL^-&55;pBn%;^~=ke zrZ3-3`EMDQ4}9~>*N SmgRxJuMJ(1e)&CB`S-9qux|W{X!`QKRr&esK)|>2 z|2di=M77`TTt0C8kj8qeEe!{-BG_Zx06>53R}0gxKtEN1&a42i(;3Zl1GKEvft7e| zu0OEZEm!NMqE?lP_fh_Hgyn%f&KO*rzWP=c*@fkSLl)=fio7hISR-g&fQ}}Hre`o( zyCV1}#K6aSEd==2tDE#7Y&L-`N7y?m*?2Pq1S5{Of)Mc5MKyFDBWrG!4(h^2ln@ z g6q{<8;Zj*Hs%UOtRVPW}<5( z2E!aSD)7sX+MOc|gN#Nk42LJs1`<{tOL4$9ga5)fp(y_<)!af$ib%PDRhM0%5A6?5 zi`v}?C|S5y@&Yw5e^AxiMD4TF;&vWfPt>~6NtV{Y=O5jokIUqw#cZ5;wEf4adO5c~ zu*bId+llJUjRMB|A_1KJh-Qon(Y*?(_Y7Wg1rE6V)+&_==SCgE4Qg0b1CF_)y}qtX zo0n>F+42^ Nz{z*T#t4UO|0Z%|hs(<8*0ZjX z@Z7>)2z>RnMrR98GJ_8Bm(YHFvG52@trM(v0ha7<@}ST(GumZ{e_DKc#t_~B5ZP*M z4&Vj52Hz#JEj(ngM?ojf=`|uPO{>P}qSXi|^{O*Kq$xZ)JVJi^Mb2P=_rIT~rx3EA zf#1WaC0>a|fVz~3PyjGz;|DiO0kRcniOBwCG=sMomBAx{XgFm36U9AIVjgXUfD!m* zost`cvAdzNi;>P?P!M&oP2m0nEa|@U%QV@t)QvC~+g6SpzzfUv=^Yu k(OC;)K#u($O{C$|}sSZy4xskxNe$5{h#Tk$-->nW#;EHeCeBwkmscN(^l55dyF zoWo0Wx?x(HE;`1f+33&(-2=-B75U2PHg^F%31ml&yV%mero%L1PHMyn5{qGpygieA^ii5bLrl&bbF&|@yAB4Bl3wR(%Xh`4Dd&TeGz z()r0WK5GM9J?k%hB(g2B;hd6HVRefsYCSzNE<~XX@1aTE$8tjfFMFY-K84WPi^96A zmRVFp=M^nC9$hX(Q@PE63% uj!s>M`02Dtyom0TIrMpfI~DMo>pJPfzMlGI z;&x}TzgV&IB|OpRd)5bd>fU8~4XKM)#W)ZVg}TV#tH2JeFgb62TswZG9zWC@Rf$%1 zn+R{U3Ds&=3V8F`PwOLBo(-l3LRB@VHuc!yfVq#>(8IcCy{zUYapiejH&Nzw9!!8+ zcg?t1TFmV6++r>Z4GEN~1N_4F89NeiMy<)ZBlPpKH}wbq96GE-rm+mhswI+^@}4^I zft#v)BPx25I!%x3B=oWj_;4WHhbI(8)3>TweGZtB@%NQN+QCax+je~2R#;lH^?=(J z-K-Z`<=i5Ek2_s7!>O9Oa%%M+r)xxc6ad~|=gS{cYLyubhG*M;A4Oz{BA&d*gEnx* z$*XikFlTMtrbBRm+`2?8wfc>113dA?b@fDxUS77*M;@u)L~}#VdlFG0%;IVR$82x& zmk@fotI?m~^r)9GIVS;co@sBb$#F%);FUR;4x#PX!+?{19I;6BGn;V~ZOTU}a#D-Z zy~8M8EK+}!8yXe~$IEG&C0g#GxP^cY3_ZE1nedsxA~~OfYD6823b_8NOnu NCp z0F6lg0-VaFn<9Z&g|6MbJShW?K4a2$(Z&qQbjA*kR?;0keNm8Nb5SHv&d*boaZ&-i zuRQZ@q3L0Gg@Xn?ZgeP!qloG`Ov~NHMjhBj!1oune^coCCZofNd@^}qIDwZm7S7+< z&w!arJNtyww7Ww^t(v@LsHx822n$@+?vOq))H#`Y30mpNOHB?Dz=qfVrZfGd^%UPy zZR)2kW$P>ToXt)F{G`U#AEcgH$&{m6h>xzr=!@<=a66uca#*ns`wMVEWOli*%fV-8 zp`8T&V&wwXMPgf7istJ5DN(uu`w#Hl<-5-k+N4VB *r z3-m-KY15CU$ATgO3<*Lgiq>gnbvfX>-Iw+kMa}SMSCk&r^wv-ao3k$gw|+JFB_T{| z&}4+BL0{n>1T4vWK(FI;P38sa4w$a3KAVUkV TKo}wtNOA?NMKeU-UEbiuvq2!2eFn(@kP7SvlB5JsdFAlvtIBPcO9`RT{_H zKWD$Sez7Q;oy>~X(MmLtx+7#4s?R*qU+J^g(|9Ze)+-$HkI*NLn% zhrg?LwE85|7J8D8D^(rA*wNjqaL)n8pT115XqbbaT}@eL<-bvnUN{%K?mga85jZxp zY>U*`T&HvJRpRab5~=*ToLvH|Tr*Thkh4-%KAlGD!U+>_%00K~v#(}W;ZQjtG>Iw9 z{@IER3q0+i PlspdIGl9cl%6WthctFyT4F*D1uTC1U48x|Gg)KfgmtR=l2vuD zY{t 3HGz)7 z_TAH!yx0Z&cw}e2+-t7g=m*}SI?by^D;zKwaQ)EUQ$>p|hQTOHpB;`A<7h9v2px+1 z)xBuS+vyg&nEqR?5Aeik8}%%ty}=}_^|(Z?uin_|jGSnx1N>}m7u|lQI{H$a-e1s5 z$GT!GIQRn_{_uz1L^Bfy2NU;BMc}x1m&*^}s}gjgSHbxiaN-HS>Ge>vPdV6mA4ICJ z^%d)V!i2z;H=pL0b}%Epo6y>!aM69sQ3N=D=G7kvof-5TbV+M()mxjjE4MQ6iklwM z70)qR*+Fc{j}Hg*qqmq~)6*by IX@sr=tUIK(USKvyRV_}P2alq7zE&ZXAIwe*{O*PN zr%C0_bzujkvY-9VitvOvQUPDDUq!E0Cv{Iw^)+*1UGJp~4|N4Txnk)qQ7k)ItJuwM zd1&fJ-^q;*95k!{GNDhZZ?=z8GJ08#kDja94?gc823W*|z_EQk>L7&X*sSGgnS~Pj z*)&(AbtNLRo(IaRpa6>pgM`)jQIA9Wqw9sWjbR1xJKEt;FJ3uUA_jB!0cQ1EuwNL= zS+&ieLZltGMUh+CPk`-xulyu5rk^-yXq_}xV#izIna0Bgu Ezf`G z9yO0%dxUQQ8$R@Y3sJ_LMA^!W^@ZqTAGx8JTc4YG5(zwS&MSK7-^?s*D%Y$RwpJU@ zQo|DN?!bl7y%&jcW*|(#$UE0AVm~(luz8nidIm5siRm~@NlCiyLM#gR;+_WV_<19} zPiGDULZg-m?Z
nVFR#S+Qxw24-8;afL^6Ca~Lv~Q_#H3|6w_5F4E#TU2o%IaNT!0Z} zqO{%0cev%R949eE#dX{kz)wdMJ}*@@m!yRtDpMx;3%hZh6Q|ldaRMIeTcIaTZIk$+ zTEL|ZURu}}z1DK}4b0v5Z9w!g$8=Ex<5)0Q7?z*)jWJ$0FQD@uIVC0Zihzy~Cv%tq zwrYIa 9daWi}$3(y--{lVxqU (DZfZ1x{2F(L)q pJEnL}4ZZ zescb``bedj;3V3PwjwyQiOD|+;jbJ^fXj>DC=ktB84kk_(Rm~yb6Fnv-TD{xjN6QF zB99(V``%a a*bYEG&`r0(^^#HzmcldIl;;&fEPaWik<_SekL@o zp5StR=l0^Zmrnm(Of}TgR90}Kd9Jm?9FC+B-< J%%*Gf8lUO3QY}t! zSP`B1I>)MQJXQfOeCNfN#ZKN%XAm0Q)5-Y^=S#pfOWW5G&NP(7;Gn*Trp`->?XKgD z5!mDQMY^jF^K1djU7UWLhQBO6k(-CG*^OEH*p4|nNi-}zFjhdXA7D92Y0SSMitpn& z5Adyp$LM3rX7VhoxpYT+x{pr08IB$(LWP9!DK-T#_wlFm#kT1(T4gyIU!?_Y%oTuZ zUi)-`FnWgwr&+ CIjW-170O!$n6b%W*Wu zNzQ*3vjv#|7+5qwH?KE=C2Ul$$*ETLfQwguuXDO~o*LK$az+Tti=S|S2e$d@rMsmT zX3izGNVK$*=|mp8fZe)0zEPNx^f2|gNZnoS1A6v(vBTs)a01}6dxvS&yxl+DvHEUS z6S#HYI=y#f<~UMe3k&E=H$FN=qzC+I95{is^K+I;UA _<*(E}tT@D{ z97uti&uEoojw7n6MF(TF6`rLvEW-iYJoJe+TqjSzkW9(qb@sxqSs!56{GWGAEzP+S zZzbzv3+m_GkoDqgk$<$F3m)b~4tV)_`}Jvqu7+AdM@CYA)Z>l%Nve1QyDf0fZw+)6 z%~lkyOzSX9L3|oUeVy)xIc@>ZsrJ4;31)h%kQf;Rzx=Cq<%%`o)f}*ar*#{rZ 1s&@7?mpaz3Nffo%sv|ceaM(ltyIz{HttXN3Qm;^q zX<>O3aLcBLt`-V2QILv_3>VR}X=LflV1SN|=o$^8r#R7}fw@b6(|cAeJr$vEOj+SZ zlvu)T4$Qr9gFZiMhAL5lM(r?d;#21C_QXw`Jpo_XeS%KJ%z1z?$tIG@Yo)!gaOuiy z@8gaK+_+-?5iyfFa~EF2p>P%h-}%tVhPK*E+--ovhaS``J>~{~Qc_w#^G8bPU{Qjv zIu`_{-E@y`Qg5$N^ip?ekn0**?FrmBte(y!yyJsj`cPaR>mG|aG6Rn+YNRKQ-o3}L zUT#SFzvF1r8t#g~^K#oXl%_BzKH6$z`2zZantd(cd0r<1Ub|%3T9Nk-Fp5X_KHYTA zOTPDYj^8OH -p;OV>tWWZys83RerERzgvlJM zL `GuXS8;z|c78AWISJ`ig4n$Ve3 zBT>?bQ5dnDd5H5 Yh5jDxdgE3k0 zK#<- ^kG?PQsZGS+T03u481_VOnMF7&T-K! sMZy1IBMVtCy&pkUVMCGIC3jauso) z1)e);_H5xYcO-4?GR8&ebMm80usfUZq`g?+FP^Xgvws@XPADt2s8Lb7g|6m754dyg zHa!7M2wHY^^~39#!P&lw=ulq}4VB>Wv$&mrr(DoR_s7A>+R4L<5~o07fuSc^J_Y L5z?e4VD%&-C3UASIEVnxYFt&X zr6=w2sBns)G@JQ=or>>RC5oE45;=~KKBMh}&D3a%VfGF3V0a|()zCF3h^Tp)3%3;w zu~jSve4zYzJ+617pY6L%^yZ&`PB|@&Pmj};Y5NQXzf>xXw~_N9;DQTVF7no4Bwg1u zbhv|c0KWCdsd^!SGHQnog#mSZN>}(!mI6LA_1=@EFmo`# G~Wm73kw( ze7-EFiDf+CrZckii6YbPnroEfC|7L`r@%VL7U-RsE{5`2)KJ5U0AjtVbPf+K2)wqM zy_;>Oe-5SyzDtL!58+rX&I;8`&Xj;P-&>`fAsyR@vkTWt9F%|`40!Pcv9sw|vVfwO z9i3mcy8iD6z7R3fq$-)kH4VJ0nePjzjIj}qqrlFs-_ehvbTmv#gI&zJEuubzVgD$K zH|1Ur+_!6WAJM?1u^L3uEj#hm71_=82X 1%8t+?q3Z2gyQn=2*~%3J{{8x8`r-<$`a4GF zT>4;mEKm}#PRi&(`eFJdSQz+Kk3yXhG%$tnpoR`N^U13q11uOk>}RoPV?#zRiP$0c zN)80T@XU4Zik#V+ndN~D`oD5fO3JNGP2Fcs<~{>F@6mU1grlWVHgi}W>YSms=Uf{Y zc`EB`5%1#?&o3>fQ9Gn>DCUNGMDSVoSVcbF9H*J4^qN;G5r#E@4>cS7j8K~9XN?jU z0I%Ut1bptYjcr8O9E4dICECqiz~us8*?8|0BI;=gSzQk6eU7!XWC*o^ovKA%5pgs4 zpk(?WPb^SIpO-JeM@#8Z3JFAFfuFb%z?*JfKU%2TxQv=rG>#6d(CJivvG!yP#%rsx zGK3{ ulBgxCa26)V%5eQNWDEY(?c*3CqmRNzK=rJ6|IN$vsmgVa5fm z^Vu_jBNr_=O*q=StU!wB+9xP-5|aR{l-FM=B<9%b*(%0zqclw&_IKdxXPvFreB4c= zlv1-Z>+^@gP{D2ntTnvv_o9)xPzjBYA(B}_aFWn;er?^oNcaY;1iU!7OfNy?7 y4xU@ezm1XZo4|4~^F-{7J7g1*_(jdE&uHgH~-%XLPUxC%*&sWcbWCld{3 j~ z8T+_hfSqpIr0;_yPNjvjQib95zfz5%DDd^J)#r(6&6$a=tUA_h-Pe@AlScB@wU~gb z4z|_%2$@N2TB&+Yd**QG1dd(vsa{Gkvr|z?U8_-+73Eg*Yymjqxh}J$nr6qa<<*w4 z{3s;bxKV)v7wyyAE@l^($fS-qs;{K#K`S%YG7)guj614|799)|sUa7iM~P-k4ETe^ zLuoGnz94EeoqMgN3fgV;+IO5u(nV0RW%L`@KxmF*~LfV|ARWJismq z{JpeEHDNg2sF3qx05iBDfpg!tPhzw+B zoCq=5gh-ge6u&rzaXvRhKhcM@gzcYBmdgMi8a3%JVKe)ushaf@kr;Y8KP=emm$rJW zHa8qJQxTT-)Ok)LC^5Ig9Y5iI58OHOqdB6X>5iIr7CvN?e@=b@1wLvZM^&HVpbT6- zx2H}>%_Lb9*$Ni;gC(QmYMv%$`;<2UfFBg(>bZ!SS$J@{>sLbE8xay%tI7-d_?nrn zc~SBGL^ow4p5y?>ui8){CNnz$Q;G-Ebx+6pVSjNf0*
il*l_ZH7` zfd0IJNn#uGSvjq#(4VXj@XDvJA0Y~LG&(jDV39W(4$i{56gr}<#~`KwjyTfhZ=p%z z1eQ0cu5R@kXSeRt&}up0#Z&(CgK&A;i1YMRVWJ5;74X5fKb<6eX8h+W+SaivH GMCOl8)Jk7W`ksKPB{_gYqPUDmlt9 Uh=9^$MEA7!k}4`sw*QujFV05{Zrd6)Q)L_VQVb*0CP z%6#}FSw?nXh(AUNIDe8*{{tvrq(uuD09fzNTlBN3(!G;V(ifY}LcoPPo!|n-Z=R@U zTrz4W;TleF8@kCF(7X|3z`gaJ_(tm5!>e6&l`@6}Vsxa!O?MX40lVz`O{Z4fQ_~e9 zAiCL>Q|Ezlz z@Bc}NDmPnc+{0|;oB{y%U%gUa|EbL5@JMhJoy@J_JttYV15R$cVy|deNlOfm(-|i> zTP7#GzxGqlHhvx=CwrKLZ|n@5&CMqHLZ>^IB0s2a_c{R04OM zJ-w!g$#5iM1r=o_^i``2Mmx4l;_(4Eui(wTLeMIqG6@7)f$!MKfd}SI)S0df`Jw=S zwovU4Qc4=2ZAs^s!GC8pfNNS`s8f%`kjjBPAs|ofV6`u>fv?}aQi()q70f4uBlM{; z)(bIYAJr8-3;3U{^>o&fWDudL6E1Q=@(OM=;JH~xdP=#8f!S5$p>|f0z~}#|&=(=S ziws2VuUF4yR|eK?_USe$Qj%J2Z`zkB$08Y>KPrf;7a~jIL47wH+FwIWjCuqA8K12K zK nm1?qxf7FXbsKHwtJb}H=?%!G1x^N>n*<=>r&9t4FfFJjJ=2c;mOiwX6 zW&!va8k~HJWeQ;afJe_1If*<<4*wyWOrxv&)NdhHXSF2;>@dHXPD*6qK#B3rL5A!- z3=M{TYK{hmw>fqJU+Fz?p%hGgLZwlj3|O$FZ ?Lntm1C5tw!8!1ZaXLC0`tsbqQu zNP4jo0CQS2|4m3d)sR-97j?pFEd&hC`)PHz4%Cy%=BZjmOzHew+=;i`t7ls&i>H&k zv?Iw4x}OFBSOIu#{YC?&0+LL4Hil(LzACMjDufPSs{kGF!~>gkvYpb$Anf>z;wzl6 z1K&7*m!7E`9X`?1!J$KzvxTOxM!?f%J+6;|O91z*psYgT#1*}}$hK-kNiQk~JbeBn zy;~p|oF|o9@sC;?C_*%Vbpr01J3z0k({P%+CqkI^VsPB6NcF`7Gzo(`z%f@o-Bg;c zZDlNWSRTgN1aQHpzpoVvN#{Llgul#;OpoLBR;Q&maIJtp_pE!0kV$G{ka7Dd=P|AP zG$-D`soTD2EHo*rWp?cwSrg!f(KqNt10%>MdXQ(3_<)-nSSxhTv7(I3os2q3{}%5_ zh@EFL7jVw=-=8mBttxA;JYP8?#r-rjM|%UWpY^UzMN)QlD5y3c!LYHV#Q>c8&ygEN zgOqlW+Nd`dKnJEPxGuo1E$&Voe#I^jE-0ec&cJXwyB_fBM^DvHBy~z<4R}gX%m`qm ztO;=W8%^GkI;FIVQI|vPEx_8ldTP6-Y~w6i*q=qq45642&HJ!6z+)TD*Kfb1)P^1= z8(kunJ &o; ?TP=n%S=@NQCK3C&w!R(~A4kvD7ttFl zbOcmvjX#CsA(feE&EDty3Rva!Z}gbrr5V|LEPVofmfuyscSsoZ1NQtZpeNl%ujKln z<@6CWt;a9NS`5IxPrmoRR2HJc-m%gON7AcV8gOlZ^RC=*Tq+i2XL)_yuyZb_Y`|+z zuck*gBSP4<;c?BNc$XCc9$3Fuug13YXetkD{Ct{a4d4rZHPh>yMwZ7KsCsyC+)C3q zv -wCRmy4*27oJVikSzl2xoW2F++OOCizuVg zvdUbSuU*bWz>+Ka?2$HZ?O|FX(j$>}l9Ov%h5?R#_T*26z{|Kq;OQa_cn|^J)8+V! zg~KaUY2(^m(eRa~9IAkauMb@&TuJot3=MCvQGoA0@Yi|5;pMW*VcceE%4PwM$<5S* zk})eVe6FN~4zF3)V_ot05XUOuu@wgoi$X@MvPM Ca%IeY3d82Go6m*< zp1yYRZs9Z*1UxdBam}p;2L`+MyFuh+Q3b6*-<(nNaC&xbx*AC^TIP(f1c7xIulq^_ zY1p>M>B7>0`aA*z?l{g80Crx{XN3s3mL6~f#-1fqZDEN4FT17BhayHJtD_v!5@mc! zYij7%z;ny4X)V8ObVnS@MzxI8!+G|k8@CUzR{PmIg{7slNV_S*@t83Uy_*9RaLpHW zZxV6Cq|N~v%0T-o*h0W>=iH*_RE8khB9btrdv%^wZD5ZYuU#u88tJTcG%{tyPvD9J zzrShaI^mJsD&-7D%DMC!t7PEhis4$qD`%1wEsxv@wRbLQz1(rjRZ_TFiHeY~EcGJW zma3LYz}Zte>U@G+!giRfKx}p(>K_{PO}AaG2`wzbdw`2RxKuxlW_ajWe^ESw(_h2l zzDO|?U%*xau9=k6Q52WGT4go-hXMp8xwNSdDd(HgRj0qDH^z*{re_&q5&9gO1bPTM zk1d||_`@5eIHTj?J|c>QKm{kGz!!V97$5?&{HgS#+dK4G7&>!FiJEPZoD(gJ0Ov1% zN#`y`_;rl&a G;j)u7=h@Va zVOikhhBr2p!VLT1m(?JIwz!M4CgA%&chWlzMxC6~6bSv!u?{#SBWILnF{9{Pb9xQE zKXqLw23%S({Q{Aw@3ey5 o_-UB0{^ Z3QqmI21M9s!T`wFO5nm#ZJ+nt)pL1cr_7fZaB!xAjpK J#iaPke0M`H*lGVbg7*>( knwsfx}As8PxX>doqj%qlT zo(#blzYMn|fVb{k-(QqBdXi(F44D|`5WorXLu))`)WKDI9kPsvP~hnE-q9z1jl6># zSWfuDL+Ff--h)B8+iB!R?SPwpTl2S+Yius@a-MVCNs^u(V1EO4sr%-wLg(41ppTsp zjN(QE22QFs)mzkh(pJ@kGQMy`ZSj3YZGlPvUwA$?M?{U}NoVACk!`s0z)J?#94&H& z0m)pHjN%3bN-YfYAzl0c1Fo!Nl@0tU_DW1R1~`2!zqC9 mbtk{Vyd{sb(%BI7~P z&)b6e;mR!d9M>0k!o+uU>XG4A&=*T>y3%8 #j~}C7sD@ea@6Z@T=NLmoURlsxeM&?)-0@aX-ucnf( z(<5iI(Nm139>~58tUCXowxmm4R6n1V`@^&bt>0HlVuN1X+`!RG_UQTBphR_P2Z5f> zv8*aCl-d#vSzq8IwP%eHOSt+DWpnCVg6a({wWO0Q*J5WMNmzQtXIBWLtM8z}g1%@p zwSvc=VEGepdF|tS3Z1c3rh^6TWep8PqLujQOYBp?YNuY1C7hJ$*(r|ZEWl~t%6jA& zrUd>}K1kcqTg|b4x{Y5c=N|4#zy|fN=qhTu!bV=8D3VUtDCNcm{ vZBDwOZJSAs-KnUP4-n* z<@b($?;T4@IR^qpKkIv<5WDnM<77d+Of*g1qt0Mj;O#9xUn;b&4vK5glo|+YlIlOm zGh^WB$Nc&TkE@+%rZC<5XhJ27PjP|_eDTh)`mC8NhRQJzoVC@TMoOaQbsR&1U%g(Q zFST}!OL^0%*=c9J5+%=}j2B4^aL9E_n+Tt4$jqB2OvxOmDo0FUpB87X6e^bmt#(c$ z8aZE!40O9f&zoH?nKzBRkQN7G^d0#yK36EZCb8lMZW`cKH(h+QsOpL!6x@-=giDHj z73_|cP(ROZ2@F?c>1!4)x0IWLslB`x(*eKhJZ!IMnwi)u$J2r=O<%3;C++O1$vg9) z1f2D3wXcQTHGmXG0@LaIqMFU8rX0eS1;$1`w?HUeDTy6Ltbkl;7@5oN1*|{eg(Je8 z#Jx%bC6(o~TRGSRckEbSPZ--K+7=ftykpx{+&sYZj@zaWz`MF5q6S9bN`~~;nGbkI zXvy!QlFNKnAEFB|MWy19sT*bnkHWxKJI~rL%x?3k+j>HpVr2V{%?CU@|3tk4=ZbFy z(IQ`{L>N=6>8owUBjB~;N;iv|u4I9t8@Wu(N1s)+&K4#ae+Tib9XMjp{_}*ee_|s` zf1E_i>6JQT9Ud%!{&TzP?Q&P$g*BUAvx@ms*WLMaQ0t}@kBh3V?x-4nEM1qYH21oT zhYR36kG9z)l&-Oto;suL$`bu4pVXQ@$bAvGb!C@jLhCYWZdA4wr1?`gR5fmU;5ieQ z>8%P^=**2~ra?EJ>kj;_;X9K>Nn@`Y>9Mp?9t|BO^kpm0^yqZ%KftT|mg->P>Y3T` zNRWn&^o{u{FR=qVt>65u=;<2eRI}Bh%9i?=9(6H^z2gzx^k)O--!#V=?)Nhtyjo zNo+BUZ2^3^=QY!W*k#$gKq${QrxLcBO)WKn^*a4oAZ)G}nmPs1ON(D}-vqW8eU;AS zyt@(AcBHSenb!X})B$_NzMd&6x`HQM$(*+)G2sKe?*v@ZzMEcO@SbSVs7{v{bh9Vn ze1zA^faAN5JuF(fTvRy{Rot2cOY@}YnX@=i0M0#ihhF@5H4#N+HOdKR5=|$aYBf3V zx~txJRy1|xUx_ogbLnP(Y04SgJRU)Tw?6gE ( zvxL#sO}W$|)cI6vy}(OFLhJHU`Y?JV;?rF+MJt`ptpt4a?wR9-(!2fDN_A8!pIX^r zoYevM+;~6_qOJ~qP9%+Gzv|pXzz@#+vaaYkIB`f;6<42xwLd{t$vVr2tSPWfZsS*l z+tpfX?wWQ7*vTpb_n!ELp4)hJfNYw^iCL4)m7Ht(!(yksBx)Ml9~hg?@kMolmyB#T zFB}7RUfAaqA#=HsvS)TU7%!`AT6hu1WZ<0OhPQ;$)kHMSj8BWk0 Tx;m!}d@1Q+}b@foo?}LHLmVN7Tn**OYwtFp6)-^{;j3&wlWJS=PkQmD%n>kPe z``lajn~=L4N@-hQWaKIOY9S9&zz+Xx&{1WeXCI(gon}wXWLp3)oBmTZQ8$Tk1HquU zYLZa>H0RI2)88wP3ZZMDa_mYJhEsb$OCC;v^OxLMDx99fX(7$OE6v9zusMM{4z$t( zRM$jvssTE6cJmE)C*XybUvrvh=L&W-*yZ~wTd n5eh-UsUR5m&c5%zGpVzkk7YY zEo`n?0UAN2o1|x@P1}i^7Wm-}gY^j=SMRpMh5DSSThSy2_@cd)hyX|2+i#YroRQc% z`H7#xMc+08MVtc#@buX)l?at9q|+MoSbDbEAEC{5I&1Ga+t|pa1Rg&3IDH<*)!3@i zV{tIX9(0m$4r4 $<9zXLB=SVJG#^YYEg*EzrE+z2@M;MF>VaaBHHPot7_;{{H+f&Zy{Fea6E z4ZSpFO*4x-hEomTWn+HT8H_8GC7lJ^yXRxrhQO6~`}KKz7uS#|?N6r;+HF}c;QX}* z^|cGv$dXO>PxR7TiU$6XeH?h`l4-%DwsVGy)H?pdE)G1u&9JY8a&TgIwg-Fh?n>iO zeXc)nM%@kH33qmKZmT0X+&+ahwzBHL+s_$OTj*WMJCCz?TTj+jQXAzKW(Gd{$8n8> z+2y0kLuvT}XGl|1Uc^lYd|=O)PYI $_?wY`R_uil%rgk}&73=6_Bx$oG zfv$oh60lvbY4?eCuD-6$jf{)v6exA257f2B3gCg}AM3j|?%^#!cN+8ogG!X$$+-|P zzjOWsQ8tCkO2%5L%U0p3D{yer)AcmlwMuElCQ1gKiDnY(=5gBt|LJqXAW=9gu^*Vu zE@r4Cpq|9(Ca~}OFY9v>F3%c^TW&&{MAfETf8gbZX6e&ct`?(1 4fLldeGpR(yZ%((I3V7YE0X@-jIX`7}G&Ip7awUY9vUb2;AD?@vXy>YPc8oHZ zA%W=u&1g25G04BgtiXxKoUCU-?GqcF(z@cnEbq;dPq|+Lf10{bcXU@KN6V* QWv< zfK7JRULoYJWdzkBNBQSe5{JigUj){_XQH0@x&{p~UfK&Dqghj6ag{NRlWJ;hh0}eB z)Sad`IW*Ryfw{i-iiOWL<+BE%(s-z{*~UX0DS$t|{g6IZ;9f(FMd&FbI-lf7OHwP_ zlpPiL<&9N!+T`j(xly@^AO=p+hx+q43~Yb%=DA`57i&Q|odJpI967bF&ZXHiriS%# zPFFNC>Yv2 -So!50lWaVW0IP>)A(-H*s} 1!Hm^Nh?>uyLmZj1aau)Rxca+ZD z7po?Bd`s~$K7#}Ne(QM~q+nx|(KPZ0tRy%dSIXg`3iy7<8F~)T#Zwm{QL4Zi4t1{Y zY}E?b?TTG*iaN&ZNeJi+t@V7lX37i|Tb=@&9_ID~?%ffeEL^FpmT&^Sh__vV1HL<> zs*tozuWHa^9$gtg90pcfkat#k6vhRp&1_)cm-+AOJ>_;OwV?ckH|n9r6O@ZX4PeJd zevFG6#^hcss!hu`Ji=m@h%ca?8a }I=~2m%v|6HGi>*Zt z4JCk2t$jkT2~cy}J%nRN%3=L;E+06e+DrOuh0$S*t1!-^C+F5$q+dcX+`+naO$X=` zdJNnYMyyI*8Ttc1>;JZ%kQn;gB>GRvLq`Up`c1Pl>COg-fKNx7=?>q@X$UQzq5mX` zTuHwNd0_nkudI^RG$NgrvgJnxXtTf fO6z%w`8_IKs-*0pSrzkrVz0LMK%R^Pm;tbzC`7tT8*tO#HT9vFBt3ylV^vLUUkb?utu2*+Z@)WazNjQ5^2~DvKkBIZ zqP0v$SFz$j6-5@1hrx@1b?4pmq>waY$I~SA4(aF;HDc;_m_FylU*MX3+jIj{d#g~Q zWudWkQi;AL1lMR>r>ZIyxas !-Q`Ue)IjCV}z$sVr7tOXyY|u7XV(mdx@SK zNcNyh$0HjhbPl3eu4fy!z=m-pfUD}Bq!&(mCl;O)ipJ?1I@D9Gt7!o`mPf~a;0N}% zAJI0qGb3=#yVsAC>bTlQZDxchlHpx0hh6WfVc7$?ckoyGDS(!VDq+1yed3U^%9z^m zM)}U`!9C7gsW*0A<>TW4*7!o-n2naugVvUFoq3#9KJcf^ZhFnuWm)S@g=E#3%mXE` z?d 0TfPzO<@d18~;!gh$rW_tqHb^mLx2)nv@UL0?zhNf#D zzx>5&N`2tBO`g${KUcAdy%cp{MtvD|2hMH0t5AxS{6^bft-EOVd4wVY#DEh&ukx{o zNm`=Cl n?i0ClW3rr|3f9DdLU;ys1&69>PN%+ze`>0)$SWJrt-5Jd)LD ztq8d~i#v!zd_Rx+z}44w(sK|R^2{=EKigUE44QzWT;S4YcIYKImtbP=Zd%O}1lAdM zK(AHGs4j)j1wiYa$LJ_LHIM7Y%B6o~YXcXqJw{JBUESM=y5t}+S{Oo=4|4+p$KP;^ zUZ-$r?z9*Loj0+@YzgR E`*+~`a(6 )$kbQSim +uc&4b z0_$YlsQX2`G!2LPy~ZOQuxXEddNSn-W6n5atFV_-2H@!ahxOsOW{E23{$ pSWt7jb$AAH8!(m%eRP-e$W4Gbc2dBC1H`3+dCtG$PXn z8R>Zr`ZJE{p}l5Oa*8Sd$KF=Ek;qBqMNTanM4giDSQ7Z`3GbgQk}}GPq?QTMM--e{ zYLB%g*Nc!0v57(j>g|`2;UYX??&y(ka7+Up>|FZ3@W|kyc_@p@4e^7=S`(`G4l)et z4V-X))~P~}sC@~amQs=BC-xNJq0U7=i;%RBlqxsy9d<6I4uJB2zt`WS`&JuvP7zhf zh;@dVRtKCKui)iD;NriwG?Bt(yv?WclJtMR3B|T@m~1CI7jX6u&Au0T83sJ%;UdmB zGhouaLq$-AEmIH@i#Y-Vt3K65`>{;8?aiYM{nms1cUX}nPWs50GJ0 v_|}RF zj!oGAX3QVUxnjV5$97pPl*tsbX<*`gTP^nnUVYAD9edAmSBI9)1ECD{UrVW|s-Vqh z%&EWTxCZ> 9kP7k^S5B2%}GZ*#pl>TJ;CPWjvMx1N#@ROrZ*PZv$2ujm!zzF^z%x;pO-cYefZE zYwH7ghUcM*trgize*(3jhSik7PS^aU=c*pPWfaZwX8AKLuqtD7qFSGvW^n Ih*X?zTnHiztDK=T53N#LyiOwtP=9$ixOus(00rbn-E zya#q`JH59k;Ss4OMATzlvXX3S@dGK1kqdbHj+SkOr@y;0nZaOqw!fH;J;5te_PwjP zZovErr;HI+8O>}RD5}$)%;GFsqjG$>z B9QBnJ9EY;v~Hcnoy~f$8)m7Fv6w!-o3%rur|T( LSZcOld0)Tt@_VtWb})8nFe^# z@M~8~AtTc+ge_7@cK-`IG_d{r18+$=*=d(!RYs2oW&`ANdIel_$(`$j-lG8=_Ho$C zE1Ou$tqRQRdhL24^%$tVNxhwA3rAF7Wa3-@6 &`Jf1Q>8qw@ni?Mzr(e=gw4aS zSqTv{Bk?aJLO5b{OLjuwTkR|K9lpWtc1vWVHCGjz!;y@{XlH!@?_s{&2E2S>ots5< zj|9ubo%k1`I^x1A8bA=7fR_z?La*)=q@lC5#8nWBPosr`jQrB_0$Oz_!_QIUpByG~ zezhyS>buQSjdRi{F0mTPR@mNaZdD2R)acF6NEzp)QHH^pF`B-4P=*6 ss%xOvfXovMyF>SD3LjGJckG6I>D9v~^>X$~5!J*{t|!GIrJc(Fc6 zIqIm3v7>?-HH@mEr2lZ=19pC8xIP^<`KU|Mb}XPlJm^RLjM7X)zQ%?G_TPT>OVWO0 z{(ZUL?T1R9#OIrVmwnx`jubZf-xro2jbz4SVfy$aZGrOwFpBDVoYiu`4*MP&Bt_*P zbx~vevm 99DN6(EdG4i+Z^gJ~6QCQ{Sx)wL^-fitC zh~7uv0@A=TmEnNrXzj+_+Q9xR*YuIHrXID8)SK(HWrBAq=xk~(Qbas7il2>!&-2lz zhEdP$v=o3C0sNx%U3%f!V}g?yR5J|546D)U$W5`@bIInJDRApk@r6>Uu}57gYIt7n z&!VR&X9nq1qfs)d(S`#Mu(-(=dYdrss7ouD87NQDTYhDK2L9P~o%ZLWuU2J|4%He# zIX7AdICaGXIby_NM_n!PLYL(}p&ers0eoxI+s{f79#f+99l){Q+L{dpyu9b=r-c99 zqppHBn0JVFqz)g|u<8Wd+oH`IQs(%7U#3^2c9a<9d=9wn-i)bI;>3SnVv+&SQK<7% zT!G&g)ssRyxC@nemINWk5^59P#{yPl^u0k?I=NZsjlfy7Dz7ICdjAN%I+@2};A4+e zZ6G}4x{2#=GE2i8*xv8yNt0%HA~5Tu*Y);*$7;8ok4S=wt@1#ToY93o8<-Aw`tCDz z1aIlq$7`1IHj4un#lO;93?9Z+;X>+Us|F=jb1n{Sxo5x5^xC_XNZ9fqJ~;z)b3My2 zz|!Zd>RFhFWu<*hEyi-w06VmOS)Wn#2=Z9d&KMVpSeq?+UQTAF=f2f0j4TYHdXKZ) z1HXE3`8a8FkFcwV)!x42gHUM~w4ZlEfJaV$;yo!S$8ASd5Ux#6qroEW0y^==GjQLC zO))9J!}-`mv?_o V(*1#oVOxa>YZum;hY%X5R0jTmK}LPqebP zikn$Q;2$UU$PiYKNr+N0k<~UWFClol$nV^8z?Su1nJL8#O`^R1K!D9J`X_P1H@O7h z-u;vHUY^H#0^3@=JEh{zjj8#2vb%`l9*g0g_VH@T;k;D{T>aysPQsa;#29WjPO0*D zoU{VJ*?X+sUGNyoO|P?Uos$0(wluKW4+STP`nf68_ZN>={lqS!lIHBkehIv_b=Ngg zh)2$&Dghh03rSgz-`GyThcD{VUy7g G#OZXY|>=oVfR;TYodo#jr;1nKsckg*) zgwbO^* hGdx03BA2xkYpV7j(*Z|qZ*z^P)+JeG6{(l^4&zD! z_aFOs4Po-wys{K?n9YmtA9g3;$oIb1#~)K0&AS2maheJIV17HjjqITte*?~)#c-0O z=0zQNVHJ2=r_$|GSC5rXUV0Y2QY<~s=HU_;eY%w%#XM3i_dxDQ{95sN4xCZ_FMWT? z!$VYVVmpLBcH;cZkMsWS1?&3hJd&n_iQPf+NU!ER=42~P0q$)-YND8|yPL)mPq}wK zmu&@XdeF|OJ#3Y49SU=s3@OS&%94;(0#~fNW}ax}kvV{epI$*wu_KnHE;X=M4s=%y zs{r7Z!K=@e0zAAJ1;|D{U;nb32FgCmJpy>+x;4v$i*!$H32>=iru`TMgSi_3H}75D zO9(th01(h%i)W>LLF?mF*%7*;lCo8nA8%C_`1$<3?+U-ipa_2Yzhygg3R09m;bT_1 z7W)mb?chf`3TF}nnw55(ok9Iyrqu?tHn2g_YcC5|a<7qYYwC2#=@t)g){eXNEf5c1 zMm>kpatdx0)9F*Mp3#VhG~m#KPvnYL9tj* 2m=|!c{?-j@jTp*}(uk>0~jc?7{nJK8pf?SMM6G7qC2XAK1^c0JGxbc&iNf zXQQ__O2v~{5Y8jMXA<4V!3+3M>#_PcN0LrQ>LnZ9V9A9~SQQ0MTlARDBR!@Cs3`qk zH*Bh2H-RG{@P6Omky2Zau@|&n5msssEsMG50iS;A$>)Twi?`RLaO5aA1F+(i{5ryv z#Cnc_&dU!EooHDPcxUUpe!}L_s1mDqO(`KFujb(qct*I lLd){6Wi zv?&M21wLPEZ(AXv-I&C&QSxfK2tZ#6=C?&%XC-dqu>v?ewB=SI^crkEC;1b&D**?- zJXfzUwRLNh6$#UVyZbh66V7sgKMkK>Uvy~VrpQzuZNOOs_)TrfOJNP*yC;35uS0t& zPfzxi`RP!PHY*5nS$SaZajWV|$sXopf34&w!UC=eaPt#=wMHI8ujOz=>y=MAFJNYj z`bnEa?jKOEqEqwg *r+f4jQQ6mL z7Wrhn(>R*POS>0&L $upg 9p1DxS5R*gk0_6K)7;AxXC-z{Piq{VJjqOw(Slm(ryEUg>$ ztG> )2ywSWhb&M@a0S1)pPmg?kdvYT0-w! zz(_278dnt9IP1e-rJ@ObNxyBImf9yAi7~-IHZZX8lC!TD0y==A#%PD73jOrWHd34= zhqELwJCZX^Bon$Zist9DEN?iE<$x`|J4@#&9wkcJ#U*~sl?68H@%>gQv7uX6%4}Gu z0Sf`|S@f0889daq204~{lGOyhd3?u(QdmNVMfJu-{o+5)#{70sc6X8TsvHJ+w5Da2 zCafoLM3=INNP6gL tfk7EG2l4EKg|3l%LBs?F4l`^%}jZnA~@~vEBy}I7 +EZR{8XZb_LbTE^NljU=f0hzIOdpP{dZ(;cFw4RoGVYTIDmg|xNp2DFd!Wc z|C|^x`yv_n^dIDjbon>j1^gX&1`W*ntHA)F9eC8V_O(gy7Lq)w4E%f6_R+%I=csw< zp>Lm3by^#X61XlJe^e-Y95tn)8$*!>8UlAU?5mU5taRyufoXHff*BS}neLBG@kb)z zNK~;SLjpUn$|EryX2$+M*yqrUjNTKPLd!PvHqjL844^7)9G3>{S?z+W#WW-SU1{;C ze@cK36Ii9$mCEO0fXy~E==1+9CQ2rYsw1e;DMfsE0lqVpivhOU9M#=r2>o1XcY&*$ zEmK72|02$|p s{roR#Qyhq5!sp=x zJ}wA2@QKGRl-5bRE3?@~2BzVo;AnQ`T)1EaR|Y<@{3N|hG?ae+7ZpH9q3=C#Z&4*= zatXkLkN%?*E37c4Rl>BQGWrBq20^%3G14?i=?pw~`q~3xi?qX!W{h4Ki7Cn)rUW*9 z_rv8vdGt#9iY+DM%m^Iv;}?2%b@Yto;n_;Z@yrNpdd~SL|9c(F;z5@ouNd5+x-cHS zA&bIg<%)6)D+#>(>-!6Y5*wvQ*V 0(_A%w=)(J&{(DAx z``pD?ea*K&3L_SZj;`YL?bM)OaiV_coWP+kR9_*SX&bY=IGjQMpHfUG^=QFQkvjY1 z9Y+Q~DWuqaN=s3Y<_{T-BX;TmJH^_9*TI30|9Za8_ sWSn%xO?{;Lg>}^;`#G z{b;mQ$~nKtbm_g--~P8%HnX5ftRnD *^@9a{fcCu(hv_A8#O6bTX0AIKu-*|Z=J?9X;$rQojDIr=ASHvH3 zlL9X|>+&U{I;MX|M;r`Kq3burQ|RD;VqV3}z-rg8(^ICj6H?ujUIy9A?7)>zEIBB8 z52l}wPH)Q~f#{SFJ?yA7KbwsWocR6IrNWJj;pn)dG#jF1%3nlZ4ph{qGc~ZmU!UkG zjDx60M~%FLE@aZjd=>FPCI*&_xjZI1AH8FT=^_{QSkPTQCAAQffV+OYc8IWMAGNyW zvIj#cGChxA(Py#Jz?*+*G(zZ+lN_BjVt5mjzRO6OI}3P)^#}f1bdk=)(#|2Z50ZDs zL%~33rn1ZbvGyHMQWi_wA}T=zbLOh3sDLb>2 *>lXLbiBF|)(6AV@HQ z5>-?b#0V-uQ86nbDk>_7Vip5e%wW#?*VA3q)4TBf=k4Bm&L D>4l*kpeE)VXy!n7^NZmaQYc+IjP?+f+{0OJ;Fl-= z__fF#e0mi(l2aR#iu4sG1x_#8?@1wbH$A#pwmMX)SMoEN6_{x8yD0)Z#aYGFb&&+! zqo#ztg)IV@UD?p=#=2Vs?I?yrw40(k?IIQzID2(6ElO~oxM=B^qW-F7$*Wmz;G17f zm?`}3jzjx9yiK4KvXY5``!z56Mu^=Nl1Rh3v+JReZEq9i06#gpT#{0tW5tsMik*bHsUEN^U?#Znn{66+BG*G&V4MaWDMPy zkfU2Gl_uIVH862vxslg>*wFx~jPl%fBX=9{wT@YHq|lv}?3iLZt%h=z75Mm3E#`@C z-C1e3ho%y(fl juOjje>y-S1L4net^irrMFs0NDDQ!ezpps2%5+DxwG4Ud#!+d&Io6MOOEo%FrQW z)l;kZ^MUhzS$CsQx{qDeQ;39FSUbeNr}dJF{>)0NnQSG!ysBiL!D;}$vA%(+{dM t7#t5^i@}j?qj{$rYoKCCm&Q zb--t4H{0D2QF&;VuHaI-uougpF6_Ks QNmgK<3W9<2~sDbMpM3k+=bz=Ju_gS&Q-#?5f>^ANKF z-@9o?bK`=$b`xnULfMm2B`^ixO?M7A`?BuZRqoep9UR8m1wQar|Gh;C?si*7$wYR( zb{_5W1752`GSN=EKgyy4>yK+_&YzW#rrlinb|SQ5CI`MW>0Hxo9{Sa32u{V=tFA{6 z8t{YY*TWo8pCBRjdbTp)Cwre~@&xW~msc^NOqwNrnyG 2ZHnlAKn60vfF!K zZy$Pk9UL7^rDi7mgY^vTcgGSFOSt e9lFVN&1;{eJjbNZr>01+UYU zIe~po*>@-5bT ls4>$rD{xvD}~xU#in;-Xp55iGLcVmm4lrz{_yA-n}y$F^kH0^tyMdjx$e>Z zb{Agv(Wh0Slrfw24BYdxF(#esu4lETvG>z#J)G39v`pl6_ix;VX5F}wO%8Zy^JZq< z>>e0my<};_Uglo@#sg+z^6WYjaN28|zcbV75O8KVv{0S*CF=pW*YaJ5iH6<9jU>w| z^BFoJt9b3bzxIPhn{rVPUX) Q8#*gI7-)9v7=a(MV*`Kl^ zozuAvn{vwXH%z@&;BgkoXA?#ELzmU7Plst@)eIcn>&&po8F-u(NU8X^G7jpLE^X<_ z)WG(0=ZzL>4|y|TI^3Y-tzuH(&&^9-6VkwIncDK=D1#}QM??*609#L8XNviX>35(B zslZOrHI Z9vZTLe+e@KAK5s-i0h$W&0G+=7gGcOJ@EN!MCiaS zvLLk7?5S~gA@c$sc;K#&h1Wym9GzyPlQ7%$6Wu?2bA?d5bzT?pYu&@CGG1yRXhP=! zcew2kQ#gAT{d643TE$s B}~6BXP9@P&rAn+%hODQjn;6y2X$f&C*hPxsRX zdeKrbM1nSeZFbzx+`!k7eh1e^mkavz!ZAc8=OOhqB{21RM>D|{J5ee*wSp}j*qROB zc80m%!^2hDc@(%aXaV?X#a(-fYCUXNm2g_Na4u5=uj=&JbfFF$`Ke(C1?wv)jG7lR zG4SXqtIUp6;6;HVw$x0=m~11CGC%OK%x|qlaJRvy_$glHj1neeC>r?ThH)PXsfQD) zF+JPC%J_++9~54X4%AL)`+jroD@#umYLCIJvtVkFT+WIBwz|12A*>!#h!!|b?`0}x z^bb@F9R5z+oP6sv@NjTm557M54;Q0TLcIb+j$=rF5Yl;bJ306tRfRugo zV99~`&o_+_$ ?5V%WgaZ`_GsPxt3 zWv4Sg@PK894G`G_cWEtt^465sLIu83jqR(d9%{K>=+C6)0$EHgdYWjc9)yghG@jB` zZ@u{gfKPR5YDQ>a_g$+6YgsXnseyZC2ecRA1JA#;sF5^MS}9{<;HqESZxUi(nL*4) zKc+A>aO9o$7 lOd&R-QJsD* zRhN>XzR?ceKJB}~Bo%!9i!S}(t0 *LK#DDI*YOWCbIsx+R z pwbX7!N0%`*aK!#=W1<(|VWcNf+5^u~?6}P^I%?8dQ_#_kTJ+I8;*3-}RqzDG z{0YFPk7}@&d;)&^G+=K%gopz!7}(+RA5A{nS3SBa()Kd8;b)4&rUgVbKGIj^!WrC< zN?UbQ kjKK9qj8b!;wgo{U!V&Gy Q>A={vwJ9^P?(N1_K=+Y z5ljsHPf5ukLhP#_Yw+6n-*z7?{8OlXEe0;l?32C3as#`DE}0?Z&I;iG0S9T7%NfSR zzkWT`SW%sXs$V=ebtH%=N0{4KbbhVDP1A~4)06Y6_@FZye!+bA9I+_0k_ zz`$SoA9|qBBeo6nEp%*%60em-jG?l4q%uVJTF?X^)z$>xFLS{9`|@Vo2EMy%yG;;3 z9ona$HfIX+qTCR0?xKe$%eMrMQMTI &swJ3p5%FOTwu|48l>;Ca8_V|+PAXk9); zjhN^t`W*cwgSj2xqJ8I?@#5W%49Pg%Qeq948@U}|$wieWNfS7*tgSKb7?ZBWB!__y zOz*wQWXJ;h$^WB)Y?Mm)sPi*biGnd#b7R1Je|vr(>HokBpxTWotrdpk5atKIfA7a; z0Tg)Rs?E>ZqIa7k*?6hm#fxwwz>f~O-)Ic`SamTmj7ar88M@(5jeXmg-~FY9NgjDS zW&RwM#mv&P+H&?R#h;|`(X2VX9C-c`y>-(QO;_?>lp_siby4K8Ob^VrIqhQUc5jU- zHSy#^FHF)4&RjZuJ+}lrYt0su2M-(+)%uXm$|bALz+{Vo0z7>FlE>sD>N*nP?o|W! ztkrbDi#JFEfx~o>olzST9iXPl0lFH4-iI#SP
AU22TSI5z=&dQyjjMQ`5LWsQ=W MRl#ZeOPZ(#pg|hHt@8u4Q;4~*BDn%4{hLAV?H ;Db#_(^_tWy zc`i(4K}P(iS$yEY)o+<%rn;#=UY;V)r}VRu8vx$9ro-Lx5rNm>wLZcu0Ul*y;Ae*o zc~po4d$(G|x?gM9=4x&Ncz2Wa8EGQ0Bo24Jq6}P3EIC^B}VWKk4$2NxHhS_wK7) zPuH6Bz8&s8acEz2#v*XGjAdu`E(N*mB;T3$HaJtX;%PF<9;?#XGOSmWVr);g_@LV^ zl?FU}c6+hP8rD7V@>@E+FHHnq+12b>aSC*ALz+TKdQC`u$SQ6HIIG(MCrc|m=y#ww zt7a?P4=4WNMu0u$ET1BccxsD31vltX5Tn1tp1bCJf1X)z)y;*{rOMhxEaNW#PCF(4 z*Z=4XXgqB93ziH%{}E~8Bx*8HPb5pJ;D|!@qGTzhA+%cTg?s&XhTSiufoEKsG?$?a zl(L#iRtNCpuczNBv?V^WR#aAILg{>^+(uy+xwjZnWYUYL`jC@K=n7RObe4q%4mxIR z7ZEzJo3EjZ%4{~1){Fg7Oboo|o_9A0v9G`+vl93U<^^7J`CQ`x0?*sE1g3py>A*6k z2CiGQW|oLtOuwCtjpVIN=QA`fDX}kLZs40YT cRt4{ zORmS!KyCrJq2ZFJL_vXlc#Rgwa^kYERd#t5(*tK7+rgw6yws#VAc_lxC`}U450R)= z#&IjaAIo33PCg=V$Yg&6&2+d4Gc-J$(wD{Bop8`yUz+rIS8C09+^WP_&D+8&SbE^2 zCw%%zoun_Lt2t _v^=g1+@AZ7 z{{D@e2pl+=+n#}s3}@pw)2{o`mi(P>jxoWUmwTrR4e1ph@s$^|x`7w2+oh98-<^It zn+TLbb5l4=cV$ydEsnlDw*kEV%IVKa8(uCzwZZv0rGMMozy9+3Wx^hKZDZ@7ho}rA z)xZQ6AGqxH`@fV10@v-^4M2RwnqyYrsAWHxv0rD!Q?^ O>1S~7L_XUyMD}*Mu zr3A-L2S|bYfBfhzLh3b)XrF*zRYBSow7@YNFT7r8124R4YuPeH(zzZ;eYg=|?@K l?^`=_M^FKe{Nll190ZUA`eAD@|HK)!xgcyZbl`Un2`^gnGx zaPMeLi0#$DWi2;E>q<<{W!o_Cl-(;D3UM)gfuHN5x1u6?D=EU-050D9+dYNbD>f>N zQgFAu*l0Mn0!(+f$As-(%SOvs)Hof& &NqJ1YhL2;E=ez-S5QR_$1nGA6TsFd zeP9y&bskP;z+TEN0FV5vl_`sbM|1AuL^xHRmrLJ=F*C5o_ni-w9`;gC;Y~dIsTtc- z#=qU`UTMNhJrerXn3@*yM*x$jlys98yk=HuAtGfurOXbjYWzr2*u7jbU5^o?k`ubt z6-HEeHm4Ui0zCV@pNvcP>IWWawagUSfNKL@{Au1Kef(S|)`QvsWtkUP_1<1)C(SE- z*9jj!H>vq;)%>|- z>tFUUu}5I3Gm%s!?YQDkRqt$W#eiO+4`BR}Gj @9gwSooK^}a8}>lbOK8YJp8$tM+$A=^ouPm841-z()ISrTO$;N zi2(08bz$ACo2V& 9k3{gmIR;yBZQANNYkez)4pMMi3%&q2<&Jxf zk~X}$5~F_9HmjHSv(H{2w1L;r+Yy~!NTymrUf~_jas$upv23t3;3ap~xT_@70`Fe4 z#oSa^OuwDo6&wm3 zV;#$41Mg1mJx|EJrb%<3)(~a|CSO0@xa+{?T%ODn(SM;79s4GE`B76_$C*1KPl&K^ zg@MdjX!*%-dvWmK!#|klw1X=j-I1ia%3fpNdd9$SM8Hn2gw~-fJ7e|o9>Z1%XW$-^ zkItm&&O%vIV3fjKflCgYJ49HWKRprA(~|w^N8SF7NvjvTemZSb $}oW!A;r1{;{-+ z$;4o+Ik_qBGrDe7yBDl7&}G1RQ@dtFVCO+AkH_2gddt%ZQx@ORRZ@C8J~ToZfbFh+ zd;42cZsSF%gF2gXx3_v;;{Dm>k!{`d4o59Anc_~apB*neg*k}(2H4`GD^1OzGbag2 zlb+J0T~82xvTBp}hg0_`LVFq2;Oh0}dM;-JO7Xs-9R&V8wMUUi=-k`%s(Y%Pk`bv^ z7&&m@a|7xNrSnkFrqgDqhnN(&Y|iXCLhAhCqd0W1N6zR~)prY_v-hMsH`2*CpMbHw z{VqqY*;iP7JqOK8I>&+u2ucN(O{_HMjq%&bC1KsAy2 tGjAxzGTamrX z;sI|w X&+wZASf)dtz>l9;{Ji(4 zTh~1xqX `%iLGk?E-Qu5**qhOti-f6Rtk4?d{{W0g`|rSRS(&&bJyyA zuM45GFM@+tjJDf6V(#%Kly?^~y{#U Z6l$dK>AK4-RmbwH8K{>nWnX9S_V&Llc8D|+*fXP<0q6AUtv*2Y z+u_`Az!j%7GP@g?O9OdkksK$Wv89HS_Ee-CPthpLt24_rHmnb>r|ksTtjU$8U?6b5 zS=zHTRa#A@*L1&QR40b*B*ML4pK6jbfw#t_4en@snsr6xXjU2U>W@#_UwQ$<)LCUH zq{pp*>i)YB6(=NWsB3Rl7x0eeadRCeEWx=gQ=A@B=YZ@Kz5NEx(c^}jZIQr 1-3#G#-3#APA5#|M6-}U+F(hFFIJ87oIXb$l! zHF0JK9(U(?FA6)hNu1arbv~uqD5L#-IwnxPZ7=W7y$o#e+sh-RHD80p*su(C0Dlay z>zgA?L=$+U#O{K!Xe>;(2-mREzqtWm>W9VVXbgf1XKm3s8`sU!#qnBOR1{RBv3*%t zz$?GL*p#Jsbq(zm&{={1&j7T$X3drjKS gU;&F?g+J&O7$fyJTSS#?;VBPZ=lhXgR7X-Jg4aIV0z#ynUC)fdgm|z zUL%#R4CBg=ZQVs99s$7re7S=$AOtvpG?XX{XNvHL+Nv$nxr3isc;MR5GWX!3z)ELx zl|JmF?hDJm_*3)|*a!=hdZ1Qvb;^${D{#dhFYYA7fv2kiF@;(*{nB-ZdRm#qx& {0Y^CJ|tPJ4HzH3ZwF7Uoy zfi#j%(s 6 zG^JT)V1v7^Fq@Pf7F}!hKc1O^4Q_gGg~*NdxudsGJCy~K*7*|KZ`40!=}_VK)Qhna z&2C%aK8?S-TG&0zMBM^sJ!iL=#|^OLjc%sG$iqzXDRWEngUkw?`p>oIkc7vuQB!Y0 z-D=oO<=zC|w%0Cs(MK^g=h&NcQa>K64wagEmv+nz+;H|{vjgK{gIaV9OeJ-z9d*zE zJUh42z2v1Z*hMKh3PKfkv-+AFxZ=K~DIoEXT6t`WNBEL0d+`-**0+P`+Qarp*EEk) zOv}^E$*gMN;^@vt)PcJ4#CEuqs8gp7Cn FUTuQmF-4%FyATN!ruz29kr zNxymwa)f%>DBOoipD3l=z`6#G+We)-RC#zN9o{I`^~?%<_mKF$b KQ9$mSi ztx$W6LAA^;ya$3=3-$rb{!(JxsfT@_6YW!>_CoTCS?^ZVLFmGSt~7lI3k}@5Q>$gd z>@ft{aVT2*1@=*YWV;G&-~@QVi<&!+$FOGx&K`2$ufpk}Uw9yRB63JdTnq+u9q@^^ zx6Br54=qs5D%G86fByk17kI|dKdz_)Ef4E$l-qJ#Z&S?TvsMY`5{36>j$jP~uloL| zQ$$`5Utw9W@yqtp_NU*w xquHkQ7|(cB1xFism08Zrz@uBw zFlzP?w{X+@+e`|);gx#Vi4HvcC8?N#B4rUh*wBDSKl_zgWO@uYa|u?GjRCm-LCZ{P zx`ZTm4BvDxZclhySPj5&*WZ>EHF)$I#VT|Yg)y>2SQWs_HkX={=pG8z%u2zwyuHt8 zJ4xjA@I7h?m^&tgB?o9d zqK^}|Vu^vzRWv$PxZRY|t7}Q`qCQas$K6aEJBq~yrbpa vls*F|QV!@~)gB`VVNn3#d#buG^md+?Z%bRhVD zC%I;vy74)o_Ym1EAm?-E0oP62=Q!aEoWw|HqN!XiQN$R^43FeGQaH#@KcrYCzy}(C zY{H L*u|LTl>@#@z0^(fo!if{iqIYPa^M}p@-fPa^ZbzWrowa zA>co=W*H;*){|;Tt+}`1Up??glWPpTeOvoO5IIwk?#OUuba+(HyI=7)0B?C|m`OYa z-XE#mMkJS2iEb*eHQR@CxDntVBd6RbJrdY^)o#Sp;C;i)!1Qj@E)(Vw`t8-%v?-je z=7(p-vpWEWTCZ;+ 1S9mLn9@@hZb7M>c*r@`)8M^fTI`=giFyr82 zHdSDY#&?;St4`wEW1#~#0KDVo&ND=O?_Mx{%??Rf)brd6z{yRPbe2}UJu1ABRc&cI zqOtXtm_0IYem%39Zs^8Z0v^}vaTBI_d((oJ@}-G*L@DWRRuZsf@xc>CNoUb-&tZq@ z+3xM8{2jpGTD3EUO6U1DVYv=m+nB(}(~~GDG4Ox~AGpBG4aL4q(S?MvsI-@=oA*y$ zB%1Q?4n29+(A8i30l?kby<) d!4`+Jdnx~q5C-gXn?xp)}O2e?8!#D%pvFXrH zr3G*EQA64?ALQ=P0C3iV9Za<99n4@H7|&{_rhkn8X=3d<#llIt{D`g^PnYRPBg|g_ z+_%w&y03dMMOzv=mc1(Q*YmG$BwgUGA+^aWk^C5z9(a1y&c;GZ=(m>%LH`m FC(fJcu;YLB!FSrHllZvHD}4s_L_fk>`h`@%B) za{dBf^rOvp$rpI9qtzE|XC3_pHw1j) Ai#Bw; zR=AyKK2}sot~yChoi4rZ$tjN3+yZdSTi2PDR~-flt+K6E#XH;p@RKP+O63!rR~6g# zwNepW6M7feYv7={!jIox>W61nxgfQuFphUNw*&lhzld4SdxuiI(neCkT51pFW`JMk z-}}DKpQAjmUew#ud6e4$hC9Bum$c&@bJ9)9`ux^6%naQ0!S!YZ=Dn^^Uy#qzt3s+e zTJ^de624V=mhtc25l=? 0Eb{iLl6h26UgYRpN> zk{a?{1iT`#uQ|6`rzSeq=z!gJ)Gi7b-*c#0-+3ErSp^-*O45@nQRAMntSR7Aum5Ud zQ129!T7t!BDvf5zsQ9MIo46I=?qByBEdAmAB|Plx^ol*~KG=1(Nh~|hd1gLU8!XmR z!!Gz;_vtTh$yc08UlnLT&_J%FZLuQ!LAR!a<9f9{n6;yD%uVL#(($gmA!V8PV9ad5 z3ol*pnTUCcD_vQH1y;2EnHKonO?#RV>-_a)5i$;?2*rCX^8&AX_R+&cT&$^`v|58T z&aA+ZoqIhZtbskG^p)DnEOZzRAbMyrstb9p;zoekeSR>DDreElY=yvsp#Olc?){2c zF&EQsCxt-tg5*ls7cw`n_`CO?61BM7Mh$IGWLn^V_kYP0DxO5YokX_va3Yfe+pm1= zD3KMpkU*q#00=WeG>a3XeF`^v->{ojF!0RJF8NW2i-QtZ#>=XU@P|GVWgiy2ojA~W zz#fzC8Y|p^M@fO3bP>Wm w^`X!6`&F*5_3ts4D_FynV1 zH5ZsQt98RL`X5pQue|oVzlGaVYU^ISj?4_a{Lo%zDd@qh>#@xS^gLz;t~+AIOp!V8 z!lR%M^q|femgZx0ibnOM?VgWb_{mkm?`t8INgY4i7P8{*<)-E&aQRI^ZY^`+RyTVk z{QDK(?jj<4P(vkjurpMa*847YKt5yYY3>QOg49*vESB(=`Pu2&NUI&pErfw1*aA6~ z-G<|oIxQRvwte27 Ur9yc9IUu-Yjfg=JVxS|`#4i7kD z=Dcf!&O_921n1)|9owRwKH;mIgxk|LvQ)MwSM#?eO~QKskH7i;AwumjQp)0Cdis^O z9qfrE({!^*EqI8`W?`Jid=?p)d~T4*x&@91Ovi=dxe!fYs{c-4R^YE~=9%Z|;QZW7 z?OZuWy4Q|cx4{0NpJ>wN9=e6~nmbc$FSL94d%M@6&!B(`@osjX9e2~6hX`-6vkF3Z zqB?~-dK%D5y|$ZJ^m)Q$uRV29nl962K(;OhoOf8U$n0SZq+{}$N?Lnw_m`WNMTFI3 z=2OnN@CK)?hug+~Zc0uA>wz}*;-iYxpCRoil*IPUJk5KqzDFeX;w72$aUByKOMMUj z0319q;y#XTc`2sPCgMrH#j~2Jfp_h7p1C PLSM+tz#}`o6c=R#j%saY z5}ICU)7t38#K4L3c4{WXf#VjN7?x4%B6d3nxFyuw -7xuwS;FjVbr}(P0ILG{+xhDj3$d@riF7$ Hm} z``U#yy2DHj{3w1&-5e5)K^fcjB-Q(@=O>BC#neuqdD=E*+|_H@av964@Yfyp5pFM= zBblWG?S)iozlp}v1 G>-gOpP z%-9xrNb$6^5C@K1Y?BxsPv{`lcACR(eRis_dTE$Ev9XDftOwvje_i@Torp1`iXN~< z2L%J$eRWD-A@&_|Ikq+Yd+-8>e%Y`{c)i93o_f) js*swkCpW5(sleh5}SbENO zKA~n+E9xY0a(FDxPlkn95x}p$`{E(t#fJo%o9V&w9G&kf>Z|dB3|&DN?T67<8BS)p z(>?f!Xtqa+<`lZGQO{QPiMVM$c79yi44i+GHW{fzmS%vo4nmLP4+3s|=Q^{}4m{jz zlN*O>hs}FlwQz}u9XRr;&8)6IQgarBgX;r^rpz~mrGaZ|wxJHw{ysf;qmLlk!)W8Z zhnkbsaE(r#EDFb~cByEVdOF0;+jammKI(nFD95{rNSNwkLu%>C**`n-t^V >SFW$L;IZV)gXL0NcK@<1Nx7#lEf39=YTJ?0EB %PX=i9R?VNwL&fL~km#vZ!`<;4#a0f26 ztL-!ChJbv+dY#rDrjzHtWCF*)F+%MI*j09BGXd^ArQ_Qocu!x2WB70DWgg&Wfc4+n z=UHjSTR&CwK46s6#Ij#t$52~3jxl?$-ufxmdtdep{_wufg+=hd89UK?UmcS4D61KM zOk>3W4=w%V4&jH_cQSb9-)@YvmNycBH@9eTtTa+ww?>pRSXy8E8Q`>4^$rzoZv~ zoSs~ubBei&JXPRS>G~Tx1# -DecxD3r*7|o-AA$i9 zr~_&d!~SE5aJimcR}u@nFmTh#J55Fi^N9z$()eMlap0RR@<)p*0-L0fSUrGE1p$?G zzelLDI-?`v1j`IOa{AjQBO5qqHT+uDg+Y2dGXtwP|MHGV9(dxY#cb`^U&-AF9KNBr zxlsGs2MWxTw)bRWV07!El|mfYv5byqis(OeX&9YRmMmG0bpd?6`&g3^L4GojWeBg4 z^a^GKe%$4|(?!z2DiB6> dvRr($_6?)C1>n=WbRQ!v6w_~~F4H!K@ocy&nHxC& z(KWjXci^dT`_fZBKo`fW;XIxj0WRBkcYSH3n0^QP01En2W#MdDk-7&coh_qv4qvVl zCk{A!;Ct&|Hz#@nn~LEM=Oos)1E*6zyswAI8(1lZGp#m})dhpus1Bb-hV|yU9bDG$ zwaNtaK7z+ndYRvbl>zMh(mqW^@RRAco1){H_K9>#KZt6_@UuSJXv%v7y9}ca9F (IT>iF#xB&|LlJ9{q7xS0;0-zWOyi+PpS7VR3jI0 zBfw?ThnYki3Vz&_Ol#f>e%Qk9xq~j LXIhcyiZ6cHz)z2r0&jA0~b8> z>Z#IzySe3);hcV*{dndChV~q9b|M42KGTc2G(9~@DGd6rlukAdmnSB! |vG|r_paW!O36P$G>nM5;6nFkJ Bqp+SS^{8VVw^j%)G!kPaLyMc-^hqx|h^G zMA5$fzsBf13?!V1hpMP t!m2Ry0_QGiP$|kTrr&PXL1}Laa?5h0o9(1}r`}y^;t_Y(3NM0n zoAMuaNH*dAt4(P@FCUSk;bf>P8>Y9-v-E_D_*&JDJv01RG0m(w-NmOh7HnPHi9OUi zy>?0i(YU+&OAx8%JfA)tLlOAP4Rcosr~4SEUaU+f%)@sO3dF#bM@%qz?h^X#ZXQ*L zmkKq@lb9Sh;HBe^6RF*u9!)LrWSDN N1a=QYw7_{fE*7PS$>^1C zx(AaB#8cb|@W0pZV2+M;q2F#sLXRoq7E{?f&`A`yXxJd|)C=2~wY|G$s9p!>f7R%Q zC4dz;wE1$gs&$`bh*1jV>@XzL@bkSy-B7=qCg`ktIvWk;@djKW^^Um&LIW!|{yRnZ z1Fvt*luPbNsi8G90^gb4+9TsG(H^OxB2AC1SJNHldR<`~- z)RQTngq{T6{>Qrs`G{iYkHGmOG7@^)Jk2*`z<+`pxJQfCCaLf4S4r=9J1&;U^BT7$ zQv)Zy{*y_txQ8JzETAhZvU#O#%-s+fc-B8XZxD63&ojmhk!sUrO@o*mc SQDkZ%;l!<}YHTcW;Y &wt$Kgn&a}XZ W_J1AKVF$_NYC5n^2Y;H*M8VcRO;@1V!22-rCr)ICIvpx zVnGKXb@!FHRwX)$!bCljRxz={^sDC319anT0PsJhd6fZ5hKEOKX-NCb7|m*MjOM0* ze_gzni3tL4jhXN(Qjt#$4 5(P%j{1AqG9z1u}Q?(=FqQyD2-rQDx+fh+#J!1#Q3 zt*b#tdXMUjaXYr# -CBk4pwsmHW!D1E-` zcckbTc}O=yF}eR#lr~2w^fG$@!&%?JwOigX2jbn;La``0B*{M73yXIqWXufc9{5Kp z^dN7?k^)b@{qNPH4Xm= 24893&vwanHP9v z)6-uUUiV4WSaUd0p4L9qo~tG{`_*ha`NwpURj2DNbQW(W%MUzk?X@O;ao3B!9DuZ= zeDq-E1^#vWeHH$CLD@cS*wdNhL^P^X)Aj`L?c7c`3%Qp`W3D0Fql`yNPcLIxbl|TY zzTQ{Z-6Mn;@#>yLHX7y!Jh0)OCkv;$MaQCPJ(Jt}H^<-mmbq5Row7WUE>)eDVJU$J z^t-CDNa^m3$P7fUoYvKPK*9@p0OtEW^|7?z9_On>qbirdHN~oi#;k? 0hI2c0cZx;d$008gcR=E(M{Xw z6l|bH=)A7v@>E+PZVMQD_UX%{EssHusKJzy*f)JO+VrGZ1Qa`eLs>jG9QQxwGIBy7 z%rXP_?SA!6BD4FbOeNZvYA0py0nC52!JfkD9=DgK(+S#1RNA$t^vDzEo*}I6=8;du zM{tFx?Ua7b&HGJA-Mb8tX_RbP@4Kg1t-!}Ne`ZcFxbw!aWot}f3-bbtUf7{T K9Vz~$FhEbD?d2c?8w1ixpiP+FEzAn-HIJS47w;i zUcSIRf}q$*rwHvV lL6>jqRli+-b?~t9Ng;OE za+tP_wyhMq`I}qKLe72kAuUY>;~XsE-$TK`Z@$~f#Om(6+8O2YI`N8c1ut;l)E#E~ zshEDdjS=cK+TI&UA)ZtPS1>p5iJJ$`5dC`0;Dtqty^}Td$1lzHtb3;wPA}O?7_ira zbqHX{dQC0f+5Gvy#NMed<@1Z_x0`Au`IDs0aJ{&~QUcuu++mlaUJ!0~bAXv8u{cy? z%{H@l8gA_3&r4&iEKPS6YhGIy=N)jMDf4&lwU~*Gmaq j`|)RH5^~q=@T{pOdyq+ihkyOG3F ^!|qDnAEd-vYZA+gq}_^Y4~ecdSK@Ir%VNvdoq-6!B93~ zugBVU`edot8U~@8KD6T@H6&>LNSWbCKAV%e|3NG_@WZ)7P4$rb@ mIjeY9<9fWn$o%!ShX0*nMbJRA `@ZBWX%=QfV&Y}6^!sTkQ#XO3CrgQDP}IW0UfK%(pdyLa;}6Oz`Vdy z-|st7c-@61qmVtSaZC#AIkD<^A$9Mz#C8{T*Y*3r>_fY!@b!4ZZnS!!SgD~aOAO3! zX=e6u-Ny!vV{AT~NzWd2@3rs#q38n9y<5j+;!4!RSybRjr@vVT^P;l0a=yz38$>WK zV5_#{7KoG{W>8J1fc1(Cy8<8ue$?soPlePys>+Sv8bW)6Yw*|Y{}xL3)C}cN3gvMv zSW;lWi&B$>*4^P^UZ?+5PuY|3eTQB2q(7^g95`cQFAK+ieUjNsz{aYZL6Mx;b5SRW zN2z24&Bd`WonKJm+e!ax-d^NFj-Q8J?9thEq>lMriTsi6>Q)BBsHcXsjyYkKp&oL!n?)k+W zUDis4S|Pk}p!7P5r3Eh9r^hLx0q=cfT8rbZ0G!|8Wyd0J0=V>)8x~6wn5Ny#TIv|^ z-7q!a{2SkECXDX(OT&-sOliX2N*Hl;>0v@z;w)xiEr7&?BEOv_2Chz>ZgL03&g3 {F zKzRB+LhU =-pF>Njj;LtyV3NI~`7Eoap498uIqI z{AtU8Go=mpNiml%WrvMCoFbpe9{{}Wi$jWp+}*2!*~;MD$i%?g_MB-d8G6ufN5$(v zTF#@=b_?w#Yw7LzX5^l2O<2>(xe>Z!FsVxu+pyrkeKNP4CK_?KLzH=oq1ZlZ;>_KL z3ah)M8MATGpCtvZOyAZ pd{;=_MWvoHVV7-Jn_v0$8)5a;tl7&um&FC%x8|<7LhP=C zT;UKwC6faG9I$dnA$7Mc+6`)_O~4)nyA>T_PU3k8TA7s%g+VMR@a)zXnA;uQNh|36 zW8P}CjkQ_zq&keOSS6jHQC`vRrheg14-}2M3z{ih!vxQVxdOQNX?qM2QunE-EJb@i z6;ZnQgtk&>s#7vgWP0GZwd>7Pgmtx>!^IK=yC{h?ouQ<2j srr25?_ zJMC{wcELI|-G|!%zV_z_EksG~DJa@P&zW&IlxcxoC-*cZsJ;W5bfPV#FB1dT9KEH1 z$m?z?I!07oY452leC9AyQRgl#6p&7u^|jrDe_zws3_y2cWqxFbS)Ghauo{3D{c^aO zG~LyZA8z(z?_yG5v)4a1o4oD=hSoXsLRn=fpSO-5p2zgSOOscfBVC7B&TYWN=wedU zarSck@%CSA6-xJ|WVlqvuL$xm=77gc9cAi}-S<;cRBc5QCu~9A^sO71%nbl%ob^yn zM0Pg`J*ca~3B576nTdgy^t#TBWcRSOB3@pRp#SI&NpVF3nH-oucb~LK?O|_)YsGAP zdwO!Wll@84kxJTkRVD#Fq62{kZ2irw?%drn1=v!=uae5C?Ib(rAG!Pn5!>BFxCP#M zGtZ1o<4*vt95VTQX`mPVb{r__EIoEuhGR=q|ETI0LdtBEs_b}n-W^Aog^qiQK>JcU zD<-?M6ZjK=m(F@?ihP3m8XFU%y##@`K>q^wXneFO)I$jArW|wPNRLv!*Qbp6ftQ{( zc#ufm*_j_j{2^5F(+Nvi{=r5dJ@B@Jm+vj??miHui>epxO{52|d+0);bRU{@U5kt& z+p#V>@Hx|e?jbJZY_9}`Q^vOg`*zsvRT0$PCUO<&s!%SS&u-_|nwy@!{!L*%i&}EC z2_BK;_mI%HZnKE7@WA8t``}?|!ri-~=pMnezR6!{#-7bzoN`s23xBNpajdfSG=Bnc zX4n6oB%k2EbfZr&6~yR0^eXVeBTuWtd`4j~-5y^SXE%E@69ePz=iD#ix@#QSTq@|J zbUa>A*hb^Mk9*W?=DN?qI-`bwM-dmZ)WDA?cY8>rb~kd|0b}3Zfbk4P0~cL=mnooi zALkU2l*PBL>)Z1D%cg?XJ%EaE5nF2(6WH> zI_{k0>b7%O^|#d@8BTZ00%ux>qvx}rz|n_|>@OehZU;F!#9W9(ae^7c0NCKCl-WIU z_hK~NwWq>tWnK1sxANd|twmaQe?Y-RvN}$$+iA14ZQ#=_kGv?v?)^oP1fLYTm{kBA z)+cS&!0x7+k}YxkQ)m@<*S)31BBr|^kR5P)w!h%JGt7Rq`*`K>7*U$FJz32X1K+5B zwn;>~N8z}!DwNOE&c4`Xi+A2r?+Q_gdmzX`1 hbUaR3s!Xex 06Q&45>ReY}Z$gnQzgT{rk~wlSx!gi}3iAJ%w(YP%WI zhWqrODv)r)rsb;s<}U!2epzg;-g7reM7v7h*{pHk#=dtSDFVAkc~tf%SJl9CAZ`E- z*)3mBNZq|P@0Azs<+Ycq>&NyR e{2Qe*h-x)&|3axvruIF6ZGFK|F zi+k@o=t`5|b>~&r8sfO0;>9SCX!Y4|yM8G0meBw1=%jR!31YwSNIlb3Fgb8U+u3HO zai6~^xXy<8Ox{>#1%BD+;N>E+d$_7qtPDCtH9~oQ)Ym?b|Jey+uapMdbq$Z9-V;~4 z#=nQIfkXa#@Ce~`Um4Lb#9l}_pNzI$N4J4@n<{npnT8(~QRjkb44P*}bew7%%l98V zVs1|Ho(v-COf@du(PLjJX#pz jL$K`j%|GjAD6Kdwadnfvt>TcywYqpDN?WQQ$PtiNGg^ zEH?qGyZ=+y9#X118BfU>DrC4p4xDmu+u5RNcabS-GHGJy6s*99rhmOiSlt5!*=sWA z3lVXF8u-C8|21dd-6usFD73)kI+q)m7P$GAlI9|@J1yxUSuJnH+x~R-ePU*R(p|mk z;4R-HZ)Y#h`D?F3L|8aKw_!~~PEX$U0`$$vf7~RL#m eU-bLI5@b~(Uo7IK;W(v4Vv-DOD&r!E9Gw`UU*O #f=eultyZ<*HM P?RGm*5qaMbj zz(2e8{Za%)$l;~{V|VfjYt4tp)^bC@X6u_gC=I!Xreq$8aIR9yitMC)=K4pBH+8oT zK2K6OF=(eZ7k{?gM5FFCR{A~>wYM39@Y{qmO)_y))bHM*G$`d7^5Lv!;LRWW_L=C} z-AhrBVXDn+O}z5&rDoCT?mv(~A#v$VgsKYKE-X}AV6OpQ8`$;rf6P^;?%JSzA}Ni4 z^8u-HLT?>xB53dA0WxEl73j+ESd9IX9sKt{c-af0a(B I$Az@WJRc;J5`(n=1$1;}2Se)0+sK zrndX7`Jkvdt%C%an=WVpp)^p;f&!oX`K!sIU3c@sMJk*;u@`D%UM?I(bRP|fnGp-n zdQFKtlEno!n=sFmYq)!QV#U%S9V-i0E9#4x8hCq~15JLz-4@8d!Nh3iO%dC{^P3}H zS?#Z4s)~^(UhTV>-r0PWDXVjjS`v|RotIL=+IRIG@##0uiLmYp)}zhJc-ez(^UcQ? z@9yr1L!sW?dxv_YBJ|cUy(tq7b)liBvqyF>_ByLmcah(H?#optO^Adw35GLpcDp0% z3#)rhN^6DgMl7#=&yzj*4eGP{DQUyqcgAwjs4nVAvfRLu<9>QpINjG+C2B*NOuAb( zo7Oe$#Y_%dcjEY!LXO{V&WN}8tlIOli317;{^!WcjbnC?No%~;HL|i@+qUvlkh1s7 zxgp@_mV21N>7jM A3}z|V9`M-lyL==v ObP6=dG#Do2htL5Qr7Tv^u#dv zBjq^k$?JyuK5i&2xOb!dRC$Qy1~$0oJhN-yu8K&MwQD =5_*ug1F1L 0pLLu$FZzvey6=!upV@a~!L#X7K4lxrSsTFUdB>Sj zB6l5QaVhmCwqI`j+DbE^-6tnXqT&6|!lf)NSzzF`KQ}c&x%-4o0&iRSY0p!4Zn@jU z1MZTO-s2g29S@btw7U4vtw%_gy2k?Qcz`uwBLV_5@b!;B+C`Y%J8`6SQKRkak9+2P zbB@ 5~2xrQn~>$&G&5PnH0F+ zs{PEasCxnieyF;f-!*B)w7{*+dhaN*x+e*=elzk!u3Zk&>X&1#5@PoiCbFw)tC4Qk zNb&J>y*9?T!{mU)2miiQ+VGfD=x+aTLY_^xJx8w9T;q@2WoN%fJ_*OU?0caXv+TfW zI~}`BWOpBkDk!J&A-OW$9*AE~`7$ib?sJPgq)^PV0#}atk16fJV%9A-;7f0GrA)1B zZ|s?T)`o{neV}{bNOMgB&&kkvQ#x-I%1OW4`;vq1yu>8i++7s)tGVQ2Flz_6>8}mn zi@x2hP~UqmIqjaz3mo?B_$9(yOuyZ > GE1N>0ZdBz-Bj&zef7-9Qy4hF->J5b@#cdjZV-R^K^>d zB^OUPg?kcsLer%t1L>}EeY+%ODAWgB#UB8iwR) p 54bgRtN>tmmk0uT+0&i3y>4IMdhk z(-`qa m&T$I_t`t9YTA`bvP=rRwEP#dB6mM`ME*V& zFIU^)=H+mE+4#Wfv{{h5cVeVMZ0!V=7+5i4(I8PnH~Q`7>ev^-3F#%BUWZ~`2xA70 zI=W3(8gSP$mMZ+da0QbB&wM ewU4m@Co+ l zihE|63_XSPJq4%M0djlSZ%VTjW_{=Gs3vMCiM%JSF<{Rsq>%RAmX}DKUy7y3mEfqO}AZT|LIq6?judO zYXl{P;&RJbaNr&f>~pfPx=#{Zctnc>TGsF_z~h-6_~x_cn<>-Xd(p@VQEjievKAg2 zo*cO8yftPQteAd#dM|9;DW7{jPxQcZ?)|1xbmAUyW6 5n%GU|V7L3o)GmeMphSqAiH?Nem>@E6*TdibK}2?6_HE;^3Qj!5 zjR4R2?Icsu=RW;&JXg4B+&VrziCY1FTEDefPPoTk=45%ngH2^}V4~%OQqhxpFQ@}_ za0pgpVb5|G^dEh?u)F(5^5`{8(oROaT0UitFuTumq >V`|{umkxMCWOfh#tvD`RN` JIbn4tWM#TCoUks1grHD9@SyPzJSOz+QwQ~GAr!SUVv85; z_JPp4hZcC~NnVPaz|$!3uK}l-OsTsrtQQyxk1xO~pbOyh*;mYlsCybud$0_jiL+N+ zhraOB;i3%pxek?9+rAn8PW_L~X!J> u9$k3!MT z _zF6_lABbl -*Hm4&8$z7UfJhO$J@KE}{+>EiUZ@Lf%BTc|asUX8?EA+;tZQKFS4XxL z#kiXWRmv5r @bL;$Mvz@O!@8OT07jAbih3RXXezeVd>Pa^rDD)UeZldcG zJ=PI8TPs)fozq^Z-6MsXCxtNbplx93+>^~5>F%J|$ob@g^_ng=n$QHW`-NYcMWMU# z(X(^PL|QW=@Z&alldW}U%%t@J3v94KM&LUiF6iQ~UK)Clbb5GP2Y4%(7ufN_7kBgL zC4 <74?$`?5~qFegj9TE9SrpVuf4a=tHSRtH4PFI0Z(IA;5CQ*a*wdOFNF$sx!JM$ z)uA^1gtM61aO+5Q^9Rb<%znx7EHChdm+vvTG #$m`lOAl5 zdjm&s8^Au#bm${(xO Lxf&^ysSU5&1A3Ro{;E z>+e55Ckl6uKe3CgN{Z>-0Hv4 w8)XW#}maw81wHAV&@(2e!O_ zQ5{?~-`b_(19|lgz76ca 0zd6Orw+50R*9-z zQwBJcnSnp7n`9;#cPA*!c$Ej6?{v_KFMt}rZ2-@| 1yrAw`ttCb~&1EoC`@#YgovH*C4va->4;5$wgBz&2G^{2*ewcO1r_IY) a@R0z*M-XRe5*lkrUeeTByG+@7SnG>`_i{1kbjUH6YSAkbmgf# zi!uWD9u>`Iitq;wGu&3CoZHVVF>rN@A$tpJV2KN?xSd4R`=z&YtKH#=&69-NLt?se zC(H?X*cG}Cn0)%adcqobd!isQDtsc@c&S#!t4s`h=h%l#*42YJMyZ&Jq#Ol0oJ${o zUtaUk3XwQ)XjhP!9I+8vSFto=a^U |hr`>hSJkX5hq!&TB5rfxTye*<6mZiaCMHUir3%aC(@X<%^0~&%nE0 z`06%cEumHd4ef%YSyiS9c}vr}V0bf&3_O0*id91Hp$6KI*XcC7ZuOlv#}o;tTc`Cn zr=)jL7gGqYd`1;Z3tThv;+QZ8_V@)=&}|eQ?Z+x190oV=)%YpxgxaI;vQcEwl)z27 z?||vKQ_QsQq25lValI^oSAe9zTNggxQzQ*MgA|m2F_FyagVGN$E%3GX`wkUa4+W5~ z2uJiB{T8zV+uXPMWMK^)UKWH^56Ua8KE|ZLJ(f2=UPw=*-;N`qTyKopjAbwN9Vd() zhJ{=H?Ge_2O#qnB%p5J$9(oNYD4f(;m$s||;M&;XW+CIF*Mv-)FET0c=RGfePDDkS zpQBze1#t$>j;+t<7Jy9_pZ%J&;4#zjq|ayh4rDC@Ke%Coagu?vodrAN&ZBW*>Xx2i zv4K~<`K!6U$Aeu>&>?!jF*`EOH(fPg*@1t&aq?JEiihzjc0GZrky4+jf!$XP+P@Ce zv{hUqXj#WP0S?%@Y>H5O*!2iiWTFJdH%p9FG;{qI!s=llN*CBJQN;Ev`k!e-%$|8M zHRx#DSd;20l+TFU9k}D}jb@0@9;%>RySPp}zM8UI=oex2m^%{GbxI4rvU-76@88u7 z6Ax3vbZ`4P`=ETk>&Bb;!)?~bFr*b;Sv93?^L!3wUp8XkymNPJDT?q=ueC+npILz$ zKaZIjCJ#%)1_{cg^cxVrvyOp%pBp?z#4VxUj+T~GQ3}1>guAm;2f`I&d;qJ@>}hUG z@h}R*2`>gtV4F{_+AIQlaH8jwoc8Lj_l%HP90cCSDEMPcs3x|wS2R04bdK?r9=v#+ z$gD=~PMa|MnTJIO9yVs}FxW%*g;Vz2Ls&gRHA;M#sM4NAUu@F z9;)D4QhO?GaK-StsKPp8Qjdolu*dZubQYOCRADa=A7 R<8lm+VY~ |uAN z`|N09{H9ynj|LW;yb9LzoS)}IyY||-#pliIi^LvE##Dy~5Y>FD)Nv6j8MyWIpC1r% zkJ(>|ZYDl^f?9NVPqQECA+?^K{x8#*cj21PL~4&t%*X|4x3MOG_xC>HIN|g#H&x}n z?fP`~Lxs&p4_2MDQoVL?Jv}sl*;C%Txel_@y+(8@L9uRR4FLbTaQI2WT1>wkM>9o& zH78R$c3susWK&w^VP`OeP?A=TN@#nQ?)}%HKZ?*E#Af1C#64NZz>}AxrV6pgL``K` zdD?JPw06F==##!C6Xro{SNZngz5_nJwDLER)_<1LXV2&yEA7{7TedH-nY`&-leF+y zG^u#rx&s&c+VJ(j7iJ%9LT`^L3I|I