From 660bcc6d5a9a85b3a527b7bc2be7f430ce9acba9 Mon Sep 17 00:00:00 2001 From: Ziyao Li <36321246+ZiyaoLi@users.noreply.github.com> Date: Wed, 7 Sep 2022 17:39:10 +0800 Subject: [PATCH] UF-Symmetry inference code (#44) * swap case study * add uf-symmetry inference (#21) * notebook noqa * fix arg-passing bug * fix plotting bug * fix b factor bug --- .gitignore | 1 + README.md | 52 ++++++ img/uf-symmetry-effect.gif | Bin 0 -> 2376175 bytes notebooks/unifold.ipynb | 122 ++++++++++--- run_uf_symmetry.sh | 31 ++++ setup.py | 2 +- unifold/inference_symmetry.py | 240 +++++++++++++++++++++++++ unifold/symmetry/__init__.py | 18 ++ unifold/symmetry/assemble.py | 126 ++++++++++++++ unifold/symmetry/config.py | 28 +++ unifold/symmetry/dataset.py | 53 ++++++ unifold/symmetry/geometry_utils.py | 238 +++++++++++++++++++++++++ unifold/symmetry/loss.py | 1 + unifold/symmetry/model.py | 271 +++++++++++++++++++++++++++++ unifold/symmetry/modules.py | 239 +++++++++++++++++++++++++ 15 files changed, 1392 insertions(+), 30 deletions(-) create mode 100644 img/uf-symmetry-effect.gif create mode 100644 run_uf_symmetry.sh create mode 100644 unifold/inference_symmetry.py create mode 100644 unifold/symmetry/__init__.py create mode 100644 unifold/symmetry/assemble.py create mode 100644 unifold/symmetry/config.py create mode 100644 unifold/symmetry/dataset.py create mode 100644 unifold/symmetry/geometry_utils.py create mode 100644 unifold/symmetry/loss.py create mode 100644 unifold/symmetry/model.py create mode 100644 unifold/symmetry/modules.py diff --git a/.gitignore b/.gitignore index 510b55a..e65bc18 100644 --- a/.gitignore +++ b/.gitignore @@ -120,3 +120,4 @@ test/ *.tfevents.* *.sto *.a3m +nogit/ diff --git a/README.md b/README.md index 090ba95..4c1899e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [[bioRxiv](https://www.biorxiv.org/content/10.1101/2022.08.04.502811v2)], [[Uni-Fold Colab](https://colab.research.google.com/github/dptech-corp/Uni-Fold/blob/main/notebooks/unifold.ipynb)], [[Hermite™](https://hermite.dp.tech/)] +[[UF-Symmetry bioRxiv](https://www.biorxiv.org/content/10.1101/2022.08.30.505833)] We proudly present Uni-Fold as a thoroughly open-source platform for developing protein models beyond [AlphaFold](https://github.com/deepmind/alphafold/). Uni-Fold introduces the following features: @@ -9,6 +10,7 @@ We proudly present Uni-Fold as a thoroughly open-source platform for developing - Model correctness proved by successful from-scratch training with equivalent accuracy, both monomer and multimer included. - Highest efficiency among existing AlphaFold implementations (to our knowledge). - Easy distributed training based on [Uni-Core](https://github.com/dptech-corp/Uni-Core/), as well as other conveniences including half-precision training (`float16/bfloat16`), per-sample gradient clipping, and fused CUDA kernels. +- Fast prediction of large symmetric complexes with UF-Symmetry. ![case](./img/case.png) @@ -44,6 +46,19 @@ The name Uni-Fold is inherited from our previous repository, [Uni-Fold-JAX](http --- +## NEWEST in Uni-Fold + +[2022-09-06] We released the code of Uni-Fold Symmetry (UF-Symmetry), a fast solution to fold large symmetric protein complexes. The details of UF-Symmetry can be found in [bioRxiv: Uni-Fold Symmetry: Harnessing Symmetry in Folding Large Protein Complexes](https://www.biorxiv.org/content/10.1101/2022.08.30.505833). The code of UF-Symmetry is concentrated in the folder [`unifold/symmetry`](./unifold/symmetry/). + +![case](./img/uf-symmetry-effect.png) +
N1`1kksOY2ue zZvR8cd6O}Otk3*BylzYIe+Q1tJ+BSSJ=vw7K0B(h{!Br%L^gGHf#G-NnbzGQ>eBht z0FUl}_`fGktVK;!q z-L&QO84z|k@`_WQTSjhqI)ChNYf22b7acG==!rCmHT|{Jf_1|B!F$Gl>_ObIZ6Etf zoDP578S7B}Q{;I>@Sx$L$#YxY@vNGoRkhP-YgAeNyL<#89Tro3bSEm1&lESyqkLd7 zgoWO>qDtc`3kORWGX8+Xlkr NF79xVm~|AD9Dw&9{vPMN)5J&&Gn96J^EpVB=4-saK4Q?F&_jh&ur zTZGR0gUT5h=vaPQI|?VLc#90~`kGOdS%2`Rb-MRu1c8wKJ9Zy3`0`0op7p`whtu_4 zX&rt;qXtyM)!bN<%?uZcbA>mT?*hjqjp{_CVAf^1eJwA2-yEOZOl5r7PJ~rpVseJr z;{E+M_cI{j@%77VVV>rh@`J1P=V(u#wA=jsW#=4;Q%P9fEzeU|^L7XSQ{uRJBF&?E z$M8W`O{nPu%DyloZ`SDur@3qH{xX31M+AMBQ8Fg4NQAQEvRd)e=&TwF?itm?cKso& zyZu_oPewG8>3Ms1^d*bWr1hHB?asK8)&|2FXSGT(o1r?3yi~JVGjfI^O@fUc?ML8N z%5`#|o_|#E1h%b*WvXNUP2W=9&cy~_%UlbIU9S-gE*r3a3B<5uy0XR0bjP|Waa|sn zA*79Zlf(&;hM6KZmworjH)W0p=kuBO}f50yj=-4ES +Po+s2!2FlZk2HYt2{4g`ZbygiD3#w$HS!_zE^5HznQX zFobleWx{cV5P`4excoCoOnL~x7@Zs~7~v!VJ zV#t zygra-fJ%az%@9~RFNo9^9i*+mx>p~!*Ttj!8bwjdjV`H?6cN6WF2yAZ5$+5TE|d=1 ztAyYtOC5ecrT8AJ)hw<>M|z=0T2Vxpbs?>`4-_)z0ujnx{l<2dSy@`uahggM8=&~Q zXA5-SPF+#*PWye BZ@ueiHZz{6%RiP|aN1T> zD0a{qCEh;igslpxSDB$WOkQgz6i66b8whhZw%O_!GG}u-Y;Juk_M))E*IX|z>T$K+ zppWs+YbaZXa5dk~?C|iWT)<=tF-}8TY_
W@35Ex};(LsJK= zpR}0Fk3`n#c0c-{@aRa43n?2@ye#PPye~v~Jyz}BF(gJT>WgtHk4DFZougz4K&K&S zS6DWzNo_2)iLQ`Eh1FVY(X^W#;z?~Lbz_RYjVVu-MI%6)BgW`yb!lj- K k%Fx8{85iWq|J$ 9Z_-ufoQ?pdS9 z7WkYwY7uc;y9?}QSBdj1NHVoRgmKsF91ro}7E+zra C#;+mnRZCoabSS!}-y*ONS{2Ham?vsM4 d0A%Rsqm`jyYeLJ? z&@<$SsgPM|bUT9>N)?$!D~batwOIBN>9lgQo$kt3yEaORGfG#sMlG>9iYbXKV-v=D zvu<%G-S!K!U)YJu9eRe8pTt|Lay02qUjT=wf9l&5AKuW0 +%IQu?YHq$vk_k? zvOSeT%)ZlX^gF@>lPj$s5jzA?1uE3-LjagAl%OMo694FabjwkM_eriSirNoyM%gZh z1Y$A+0E3h;Y?44~IjSWV#fvSIfEvs1LQ=R 04syoGIAAUn4Z!^O47p~JfZ77j6&BDI*5xFlUyhwMu#@Sx2J{xK{|4|rqs2? z#6#72id^>y#l#-~B2FzthbdrYh0fCoAdqAf;+KaUx7nqVOfPH5k86HrmfOU(+Wb`> zWm#*LK7 dhtUOUS-Js{#*%t!kooZ-NiSN?hm(}M z!W9)Hrg(CX5tx+(EzF_?mfQ#TNfEB%Bk2JA$zCzRD4ADci2$Se5ppLR&vELw+54 zD6&*c+K56r6B*V8qbWpzOqLV>f}auQ%R{grWNMehPYaqH=+kD!gZA-~Su6=dFN!mQ zTzbiR4PvPVnLsZoDnzX@qE_`ua}6c!4@)9MWJE!GoV2~Gp`=`g${9t+=2kKPlx*yi zZBUfBfqQo-N(wZn%pr6k;BY6aw20xbMTOc>SUgpO%1 D4W zDstBfF$}2>1T!-V?f7vtg?*qPBBV<+eXfMTg0pL-i{k5D)nyDlnBIk2+9g}ma@9@` zU!g`V?31kn;9NCo6AzV@a>R5<-d@(*wcC=kJsG`5(->PYbxR*DGak84A xr>L&7&iTT5uj;Y$s5Q_uAt>Ah{Iy3^m+SBeLKk!kNW^T#;>y#FGWiV2NEc z#r{0dM {~>8T7_gTn96LiXNoKgLb4iW%Y=t%L0i3OmPRt02hLGS{3wzm zf4Ut7h#;*ljt?iN6faYXJXIX55|(R_&ZMH^v>;Oe^D=@77!;q0@QIhMYe63z-q~Al z-=_G!TZ$c2jv5oRiJ2(#PO z0H6iH1OMCReL^x*L}p7YRnp*aang{}e4})Y5#bAUIK_i#wK${;4AP3)wV+oQEQTv% zj0zLDCl^vt^FzdeDoIG!$=S-{Pywm{K;NKVq82|&xzm;NrzBS)n^|z=;K!0JT+B8K zDrpq8iiye $*St*ifDdOc_wy7FK*eE4b z4`(T*F&e4AMk H*_t$BO=Cd%%-dZf{lg_0VdmTg;>WkTszaDmw zj6khnl&n-tnR7yFp+?NQ3DTg;VOm(|(5=4@kkJCfQm&-RLhQjiM%wkTTPX|W0$61Q zj)92lgW0n{J2k 6dC5#B~b;E>2qIjh-AT5$oyso^&AITpM&KMHat zeO9sxIaA*8 &4C>%S?-YY z$IVl>^U$W1nA&GAWZNldA7SwhRY}2{>QuTcM~QYmB(yCA?`^RjvA8B_gOTDv#UWTj zoru{Yw$lrd2Ead2Y(|&ZPST4WydW15ep|(=KyyPgNh!n{gy;QW4qV;4rEQLVDXChK zmqP5Og#{}_=Z!+hD8v|r_5e3XA+|Jv$$cS93}+UqQE{r`g_Oo5Dp(jJnJM2LtQE86 z(qyQli0NEW|I$X*f2gvtv_bZ(#s5i-^Ny70O+s`QUpiNTTE#=>Y9uMf66Le#Oa_|b zR+4R$En`Zj^Z{HhxLjGX9%IfOMT9V<_QGR9DUy4KG%hTW4O8r|5S!+9i`NYcoeE*w zR)WDQu|Ew&Gg%n9@NW#u9K)h$MM2+1A^OX4U9d?K!lx&M6dtEhMGh)>U_5*&RTd2; zPx4S5HZ)lt^l O16ESZByRAaO2zCez>dYGFgaxTk@s4 zL)dK!bYWLXCLb{uBZc(HRdN`TF597=lCP3w{DW{FEncN6UfcznuP9EXqt`2u^Axfi zH7Zq!2vJMeMp>Ftj90 oUk|R7qc$?ngymX3-S+lyN0!*RMq!5Dl}bI7O?&U};V==sk%?Ny zKqc{g&tk -OEz6V_#{%NTKrurtou%)d^wNT~;C#8%r%UYen;gyqA0I8wR-n>_ z$b9wN6M74u?hmF{KiBO|xpPAJavKw!l~Q`s`CnPr-mNLoJ6ce+_hl(u)Ko|~jUn5n zm8B?TX&Tv73}Ut%M%RN6{9#diSsGNFUbs7pD|JW4nkxY-E^KI~*p2Zd1Oii`;vl~C zQjf?D5IG80- =G4dTP8Lbd-FSmzQ14O1Lrgiq2$aEgo% zd|pgPasaWr>I}pZPp89vCyBiZ5n(BFZPe09gDp&9;6e-1M#V@5>cFJ0sI69noN@X4 z*)=Y2PrT&@Wn@lDl?3p3^(bxG_BC03h(!YAR4#y_OX+}QS<9ulDp?vPvoAtsax(~h zD6x+n%N84D@q92iMLd-W`(>u~`zvxcg1f(o>h{87AkbG}MT5W~0pPk*{O&OLJ|RN% z3Vy_uKTQQDr-1ia;DaUVnMN?uh=@^${MB$@6+ChXwI#l!9ftIb7vs`>ycjJBR5&%w zCm{ftps0_RBe E7kb8Z9d8-yUsQ{PBT*8XcLVkYzJvbG1^$Xbx76 z+`>R2AYev{ECzsustOM}U0-i2*>465Q%Oi%(L%j=Lz&2yxhz&7jbgzj8zkkQrjVAU z_I!Bh$a`}EV1{Y-?SskT>UQb{C H8t1~(jU`J);mi7bC%IrV;P7hW*wBp+ zQf19%7J368olixtH=@=VP;2O8Gl$W4W-i~VEva{!9{(HtkHUF7wPdaa#A3kNg>b4~ zwt`-a)k}Nx=KPDogz|rOvC>u&99(0${eEe!6$eNGb;BRrJxj~o=hDWs4<)4I4nc?X zbk6Z;G*&P&tQb_IE6mL;3v-)S?W*vuDbRnFaB$`R6@msc-A!bv%e<3S4TC$&Exn+V zOx@hr3MZ%K2BtUwMLOgboK*0Y*A{DSKfRpdZP``qz{y6f3JCmEeXZ!{=+oy<{+njd ziqRHRvqzZ&ruI^sfSln`zrn6b&w2l3|Mq{^BmVt2p(Oixa8_SS#k=67V_}7VNBWPy zf94pm_4kO?t4ni^-I)LEaqcs>q*QP0ob8_vsb)T5MN!vOozUO1t#S5 v%z9r?bUshf5~0Z9T|)s+CQ zs@beG @xQa`W9=KlCYytVDPVL?#mU_*>Ki*c=uy2rp3BUxQ`t<)J| zv&3+!Iw}r#qdK?UEWGf3JCUUli!nBO?GgLR!Ty_O!QWLkt+x*QA#dA78vyIM-Q0Nm zG2z48v~!7-?ew_<_-&sf)UPpSnG3#hrX@t@#yVHIJ-AJ!Gz*Ys`>6r5JyQiWWx*GO z1LVW&2Hs5TLU%{Z_`E-D>x?g#KV6^k-?cvzGmJWXWZ2i6?{f}E4hvj~LBm(uo__w@ zxBsnj(X*4eoesO||3rKrPrqxY2Y%fQdc8GmSID6--OXvo*EZ_BuLQz%POl4Gi$N2u zr61|iQuuYb<3Fx&^q>yyHl)QA7$k%th{y+Y2oDMjQ3nz7`r6PrijuH0cj8IDn5fz> ziUZ)3!uVF0(}rd*H)rBn0gS5G$U}OZaW9tK^xxWF5^PiuH)z4BOLTbdpaJd5@5Otw zv9>LSh|Th7Qnd! OG)SM|v|Y=G25kFACqsGP$vYU?WgRnI?H;N-f*Kok=Om_o z9$<8~_rBTEM3+sys3S4GZUu|Jy7GcOx~`9YnnnNC*~)4otb{l=F^uByNgrZ^qSh>s z9_6|+8As)b%ulO?7R}D3jy^EU8AkCW8Ot2Y0P->>8y&2dm>jlF8Xa;tW=H`GigrN; z4M7%@{VIJp4Pi?W*=(lBNH4UA*=iWkM*}7UEAd|1n}lFJ%x;*BwlzZZyBb;2C=b0f zJ{nb)Mp)4-CQeIzl?a!5@y+7jze!eI!v8gzI#pc=0yYO)e~P2 zu%8`I@8S%$W?VV6mEYrZxTV#BkW1V$F0p%~kM({9Nu$3H*c~o}e55*&ji$!Eh*JE3 z)`D;lK#2d<+e3wl8D^tj%+y)(Hz064lNRx$20(Tw?s@sJ5f*e2Cy{&6s~6#_{1jyo zs)tR>7R~cuwKMDVSg&RgX+xLJdvjW;f3*8iiW(xT=_p^z7(|M?jhx3l=g!kv-^CRB z3htv43@dG``VfSbOx#jLn{`uHi9f4?m>bBk`^a>q$9TW!H^0= R7 z)2W;oAaB#opSk11q8sK-dqNx2tp`#%Lp$!5WoptLzqQ2DuNZOsjDFa$p_}-*3PhZ| z6~CNu7Q+ROri^LPR`HM(?kmPipu%PAb#s!0B6Ec>GFBxd-c^CF1Q_Veg>BEHgEVDS z_Oce(?Mw(^o@fX+siB*;Efj1d9gZ%e#Mu5cO6JrJApIE}+bRWs`F@EoQ*nE~pC0bS zXQL) n!HxAzpO-&oCI=ujB| zZhm|}DyUE5H91UnX|F^SLLkD$pp6n32pdNs;y`e5xC&-f%tV?^Wx{vYso=qoh|sma zc+!PKyDI_j4;s)sRrSey2<|YV_*B~5YVqZ%%4!b)hHGH>JZ;Q$h8e A^5=CNa zE?EOLZ_N~1%2vJ1u_tZ6PSAnR))srz*HBp@J*f KIA-c>Sx47K8E2v0$r@CnVqa> -?}>Df0ZdRS=e-7-A7F5*xF?5cSb z*%Fw8<*S5KxvensA;^)IcI@kmnn`OP=$q6Tv_x38qgr>#Um ?K+u%NZ%pyAmC1ep#UAzDE3KdW%@`wX(HxRt>qvz zw=e;DMEG!l$lU-#RKwgxg?eq*6V6p5L4t_5Azwe@9KTJ;rFieLK8M}kP}wWQ=#PeGbOApNl1YZRozY~ z01Bm#V4_(FCE%!MqnU9QG(EbSZCx+2tAgR`U^^F=0w*Dqfo(e^B$O5Nj#S!}0s1?8 ziG%%S)jHx3WHnzz%+NYA;nRA=K?=?kj2=H 9k%XE{SD#j07@5N zEf-?GL%3!(j>fji))IU;_>EDBXb7Gm@?kA>phiuKSQbBVMtfUiU)#G4uZY&i{T$P^ zsn{GPI6bAUnkfmY=Y;mar+;trZPwEHpqHREh|w03QPq)3P=%usZ^q8~!SOGXumW4J zrV5b-T0}NL6qaCUrWIHg+`AXR>S2z7Y>NW6jY{k#ZJiF>p}Do2DRf8` mWO>*s=^L=fbV2&mFQM zLZ3OBuM5j!<5FNqD%+CBHm}oS28ENkb+lB+q)7tGS{(<0b1^UrO;iv7qflGD`^3Tg zvI;)o2HiD9b|NJh8+!x{;7YRUz)+ 7&co=t?e;a!wSn_jx>>XBFA(e4DkV3dQ+=s7ewsQ zMh<8ld+$&SMfCyzmn}rF0Gysp_5o1U(tt@pJ6^fAwGLMRSPhEY @yi ~wH9iQoY+NITD%t?b;5+P`#Gub{vaD-aym)#on0OsOjQRFkvjs`nj z1D^^>{H0NAH$-`=xM=FZEvi~fw2s $sjrduMa^eKnUAu~s$uq2 zGfK0_ig3cJN9R-kr)XP)>)TfJK8+Z%+!5hj_s+AUZ}IWcgV&p%*8ByT6PyT58$DYb zSq9onD$SNwyHtr^JeZSFm0(+G`#0wBAjjcWTZjrg7a<92mdwygii$V^(L#^Hwm^O> zqDRD_w4PwKx>u!9$7k9oboOd(J(9|(5}~$2kqhD~9;`4|i|hy4PT8Umzt%oA&?|Mb zGe9=ILQ _<$vt1&earo+_LUa0`55 eoSy$bkvp4Tyitas=3uCux;IVap&mbx|8*{9n)n$!POct zpi2_g&IzlRyt~#GDF7`9;*fZdiV!br6$f5id}Jp!ttDwS6AYXS2CnfAZ;=#jkOZ|r z7TSR+buY>`#&KAC&4$wD8$=F)I>J@ho z n(T2&7@ZSB z|8GZ!q{HYPJ{U8-OJrt%Gn##u&~(_aR!4!BSjV>bE^-^znb(V*l~JByB7`N|ESgQK zK8K~j{%+9POLZtW{p`B4W|nLsAF|#4X<8A4s1s)WjJm3 U4VAPez!iY*J{$nR98nPaaqAIlr22@-R zvybLlYz0VV0BRwC%7aLQb`+i`MQD!feSjGkS`G^BqG3DJbfG<*knC16Lg$;p=|F+Z zQTUV;HqD3Q&4UGXwT0`!h{B%F>l$X CNY4YG)wkg`FEY@UI ?an zSh}eUhNg=8dbQ|2Xw#?=s}`R1Jwl+0Yz9Sk8CpUC3`Z4h&(O{>K$8_Q<3VJ4E3q1I zRKguw9uTv&C?!N3)KRH0bT8n{jk2R!B;VaDn(6uO-4pFQ?eroD->1be*p&GIvKg?6 zhU(tVLI&!lwP-!&2e25O^x@~hj5ZJM8;_J$I!|Qb1`p2Qge%vx#@xfEUrg`5-&MFL zJU%Uy|1n}yB7N=Ah^?ll>({|Q?F7AetyAh@KR @{4b%D7>kvI!DRO@R8?h-+AK*LBybN}#P)h_HdWDd=fsGP4lgdP-I^ge2wqa_V zjWWS?MUIs+idq(JA)HN4$y5)+&g;dDXnzbJ#!yDx6}kM{$;N3H;0Coj%-mCNEiq#^ zy&cz*F&rO_E^t)r+Vh5xs#|vg3?32(QotF7U|K?31h*};3p^i7NRPZITVJ@ZAUD*) zYWir|?=Jxn#-ov3%UH8V!PQX#gB+Ivn9bx*F#`D9T=;Y*Cz#4vbv`)J{bx3PD0Gm+ zLbUmfn%btsYcCH0xD=-K%9;n&!2hG@T>P2bA2|LzyWcnWVQfQ4(p=I=+7J?2y6OH5 zNvKA2mXytAoBNcCQf;AhpX!t@r}GS }VqqmJ5dzdzu4ZO``oKF|02 zxxBwvgNRTeon8Usvg;_zV$p>g$P##RON>)&1alI=8BFq-JTyb^#3QdcrX=KnRxLcX zt!%*|0H47lu-fUq?E$`#zmz>Cx50=3e%6AEuhu>-82$zAt;hKS-jx!hueAD{o=B4g z#)GaFnKJAM;RR@)_D|Zjh_B~60<(()R1OPH&Vn~`l~=EynRDl>hj#u=WZ+F%7wprc z^* 4-Pt=)ssDM7-{ E94J8 L(d1K~{4 zD__Dk; e4?p%j%_h}qBzh4bW_7N^!CtU^js)1^K9f?$jUb@a&B_lJjsh}&Da@--yUTt z0zS$z2A&`N8<{0vdpQ1C-WS>2Y+2|)hi4(*y$ Zv-DSoVaGNAV+*>rNSjeCyNWrk@mB}3zbvos zcBg}wJgNI-M38NStsvr5zFBWI(0$cY?><>P%Qk{N5n+4QYn6kZOqW@_(i@xk*PZo5 z9GP|&MqK6vUIl4fz&Z9d5xVCvqW48bOdF8Sn0ztIPCv7*W4`Hj^mAlDc7#tda>3_< zv#!5=*-(@|fu7&c9A3AQ)0KJl6(#@u^Z9ZlM=T4YBOLPdGern5HG(9P`W4C=-q?Pt zjtm; wm~4))rH#-vg`86_<9%Lr2^IX0!CX%jI=@m zuy5P?hd220Bz$wZ{fyPRsTSRd$8Np_q;nT#rMOaGuk5Lj@q6{N^F}W2e~!v}8M^J| z&)feUtQO7hP+EDdxLKEz+Fi|#IS^K#yYb#Z|4mPC)^FeR@YuY6{(M$_EWD_%MgQlf zhpxhB=YQP(diBEk-wMZn{)Q|GZ^|Yy4$JHzS>gMEq z{8@ijC`Tx$v#&Q~6l0VXKAwn>^>MeYEG8z3(aGv;hZn>A}a#7(%ndL-eAhUt?8#8*r!f@!!iq__T6V1biGOU zW?mcXyEjWuS{mPx{GamhrYYgyzs`Q%8xz-_LfquMh4ks~1NLpWG!^@SxI`Vc@9_dg zD)(A?-RhoeM2CPl0g_7b=IG^wL);-0qbW9`jC4TlL7m+s8V-+P_@6>ixFR{hDvGWL zZP$xaWvGi{K59Ye9gw_+$M3MITFde$L>w}t+Qps5tw5lY$(^!ga>uT^gg~IZ1m~T> zM$ed_d( rM^KWyDE98bo%*$p>qER$*(Izs{Up^ANr(p+SZpBcy-^B@SXSd z>4DkKQ0L|}X*43I*_Nz;he;9Fy`?JN`sW_@DGkq`IfVL+u*!T)JT#HjW8lf02L5!b z_AtO59>nO$>G<#~1|f=aangVd`@@u4zhZq3s0chgDJ-2gv@fD^1r6Vb#OBr^t5zyR zTI+ce$sI^+nhBIIzbGEU)An*tS20*T7Sc)r3@M{-=A<9=xp<$C*^uUsw&ft|yJ(T; z@gC*N!{4(ig6_6C*zP{Kv+MAS-se#+FG)W)F{|f)9GHAvvv~ctH}x?`2j6MU)vt5| z6W`u3GN<$>@BjU0e+;u=>d_|WWayN;-S(t pe(LYI=k@oN-+kRqhnj zrbP&DvP)LgrEH#WlF|)4W%z_1J6*So5G_KS9s{xKc6El@f)@AXxWf%DGN@RDp^iZK z?Uo$ #_IvF*TkZh2+gO Q9~O3o&{t=`lW8TZHQS6R82JYVQ6$ykFKJO7HdYDe~QbcDEsmaZv{ zLlxtqa5B#wbI7T^TC7mOCx^3&84%y<09@j9b_m&K0%`L>DdL+5MG+fup%xS0^$~e} ztaSgGHW}hN567`( @Hp#+Ai?y^>YIT#K9=Cv=;&c?2 zIbA=2v}u43xg|$9`?3)P#wV1Q1pGfr#Ga$am2e{wNj$707b0!vI=ip edBlV+Wq|A*pSden{ z7tm?%lMGUOcqqC`LL&H6w~c5i!MF%=s0ir{=&frqWYe28=+F@s zVLw+-iZy{Y>MX}{xWj)~gCp#KFiaRHyUU6z(Y+(ilJL>?>Y2`$HRv0$B~*h6fwd@n z^L0}7R-^QE5FbsxSYo>es@hOzB$d=D<|O5iE#(IKa|kp0C%?MbZcdXS|Ks67#-@ V?4S{8(P0<)C}O{a)B!KB%hO3M zwgu=Uj 6%!%OBk)jvrdBC44_zDYB|LlSjvsnyH3%{Bh1_oLI8{37p%iA zzAPlHH30apD@wlgvq(vw0k-%NhRaE@%NIlvZtc52a||N5>uz&S;M}t!Sh)Eb9wu5H zvTno;E3+ioq96pjwgu4zq-F}V^g7-R#%vlmZgUKdKtQZwho};Sn@Wn} zvMT~&2WPrNVOY!F(CwxK;nlVPUC@Sc_ZH&wf!o$7B4KH^n{!u26wx$ADd wPFsoTY}=HFvs2l{!+q|0B{ zrMfQ8*_~2r-!0hHEi&7l%2BkK=fRyk{b+$H3nylc(KFhqg}+Hjbun0`MB!~TSc*k@ z3>lPri~x5GMidvqivYVcAu=66mjMoLeA^ZXp9f)r;X`RGa)H(_RBvC*CP*}AR hm)a#@K~*;2dt%!>V%57~A!`&>6?3#q(@dzqW>0&ezN75a02w z(AA`;pNA2Lcy?c#@f;o^omE-LBknnc;PNP^ElYDqdURnD*YYIQ+~V*Exh#A?kNB1s zVb3DIb+<}6k5fTNHw``y#(lLoavJ1Ko~?<67V*eN*y^d#lBA+Ann`;#h=U7m3s}Sx zfZZP; Wa+aEqKl-JwCn@xlZP&;Klc zSHU8;NGNV>+nZAQG6 9IUqvy6b#`ZK=CjSMjWtve4Er z@-FM8Txgf5A-2O#<9eqqJ#&c9IB8%`N}1-qPqTh)+KJlE!CSi1kD0kL#_}rX3bu ATQ%lFtYhVvfQzjouZw=<-v@P_ys5estmpF`hioL-N~27}KNxK2eZcHD{tN ztxW*M?VCGt1~##<%Z$k5zQ|6NwZXU}MM&
a6l|HdVnwFNxvu3c#T-g2==#V{#_0~G2X^C4k z3Z9UjuD50YmLWr0Z?u^Rw8T-JSD&sbQ-4vsi<=tfOurm4b0UIl!vVK9{}ei_^t(p2 zvwkE6I&GbOMel5`16{1&2bO}2RS$Qqh;%M!M6)2!UW2{`TNWRvARa 0NvA^We#&A z#RAB>E%VzY6dsFQ0i(9E@Lepl8=tfTwszH01VYBsL7J@u69-|I@#e0tAOUCG?X^yC z`S!FXybrMS3P3x)6lu}B86cI=JEL$gqri$>D5?F}h<(Abj9zp+95Y>iv`m8N2gupJ z)0YbEuIrhrLDXspY~op2>+PF58EtHr@4_#cvM*)%D;EEnzUAw(jjwm*y1$-~eu>Ik z=GYNObDxubmpLkRoe(nGgjc(SZNq$5lax8iXT~;e`uh{J7qsVSa#=i78ZR?Sf(!*Z zJT&-3iTjsj1d$OF4@5+39Nx0fxh(685ZUr&!}+K}Oqkh6x@DUYcZj#xQEC+?bo7|* zb#D~ar@>lM0Ex!9Zp%FE!R#5t(|F`i>DvDD9=%k`6^Kx%LB>juTX|N|04a_gDS&a@ z1pNeTT`Od?vmGtV&(%T-43Tg0T~A!u^iAseeeV|%GGp5n@n*ZonmIf7JEX?GzK-*p zGc0tj1EW3&o4)Ve$v^$M6f#^*FD~%)YY^j;@@On9l4UV;*ATNWk>pBCVcKk$I($ z3y!m6AAPC-mY4Ae*+Q!+BlhSQtOpqWS%S<1$W?=Op+;+*kmxZ8?|>+xPRqPVbO(^e z52(rhC*L8`O^Gf4Uj(hyCwt~y0c>j?=UK0a!1ikh1wwlCAi6+G+X@#|vr=d9@J$k@ zi&Cae$~Y~h6lf6HJbX4dOSwp_+LV6qm(u#S(i#0?FTeEC8FL;CuB?~3?0I%SV}<{T z18rm4;9S|4+}D|lG5&g`%d0`=RJ(J)e&?n^=V2*h?`gzE7H+E%8OkDZHK_Hu$QSoY z#wGSulH~$mX_qnXJxmp`fqg7|ny=*CXDMya+HIJ`kW%~{scBj#(O{g=1DgvUik09z z-k1+TPcnHquTs|jEJp>irf-3$h2CiE3@m}~EEuGZY8>QjVuglqOJjBMHi*$uL|L>@ zEky!@0f23&-rB6vGhb*MtFpvb>1C}UhwIB33r1a6*ck?-E?tAY?O^#|Il*7`K{va1 zO|lDbh0M7tZ%#~i>1A6AP|m%2MjhYb;^4^?zT+*nU6R!HGTY7xv{|dC-_qD31|6LA zlra_!Cq?$QP)>HCf+57j1e?GnhZ<|QXcUiF=tSt*3ZY{s&pJv VeYJea_y zHwbNXFkT`-G{7%>G>EVZ4g)-Uv7Xu_u_NTRMcoyuRvsP ^BwvGbduDTaibMI^HUp48StjT5bg3Ht=&kx3_7&| zq*$qolXSF}ZGRrZwDIglM2JvL^Lzm00gEb)Tz#WMg%NXIGxJ$BqCo59NvBn52#E-E zo>4yMHquG&kmme63bH#bwMvXd2l2q+S>&^)!{JM`C2cW_A7g3SGvfe70E1VKXQ{2{ zW&y}9$jY0K>T746Wm`9}tb%5&AxUjut&@sxwKd|-sK(K-lX+$G+?(q#d2K;_w5!uc z%gA-?VmAy9*7T2ExF>h*6f$q=>2h|fkZr$JN={ g*5ktYdIrm`0c4B|T`se& zqFKm`8)*YPr`~@X(>e}O!=5bPE$r(JJT>Wv!MMT>E(1cB^L(dH;jzj=`(UjtXONgO zNRz|(fVqfZK9j=+Elz0SKhEY!tyS6-)2WX!$+oM57~iEf_AG`b6>O0*FY58RTIR6O zK6ub&Vvr$MIM)q26hEh|NXlI1jj;6Cwo2B7>_uLOlRQ_DLbX;= #5;+z*H{~buKn6s!9ubVn^GnG2cy67R)1gd z%ac>LMz1wJcnVtHc23_z?DK>-B4*mBSjGrolu0gyu)(!@#w{2>!FOJ5DV}NREMsJ< z6k#^S|9MTyB=PZGY-X^K_Cn9B(_6zeD<898*6aQMVl&`JyHYv^Ur1etK*sq&`&)2@ zr-Unk@Ws6ITVdM@BkeKZbeu)F%fk}12wNVQ{pRJ0gOo1VIPLbd>bz8U2V^MZ(4b#J z|2lW-D#pWDJ0Y_=BSA*PzeO1vr3*VJmSxwG?`}6ngz|5nZvPk!(F%mNzIw}Z&Za^S zp0?-%{K{v8t|x@{huF?(gY>DbG@K&9>N8XDa`bQW&pGaK7un9Ygf_s?0j>Sj)sk=a zY0|bNOw+kFrUl2&quVE?OWYFwMDWL(X0|k6aJ0`f*KHyETkRaU 5ei3CQ` zaA&Fe&XL|6k5Vdy;S*Y@5~Oxi`Z=Wt#I5d&ZLKyotU7Z$tN#3Y+p#e#eFfuM=0)+7 zg&vEZs&SmS{r_1A0>8icG5IN#GVl7t`~EX)ey^H$ RDFh>$Wh z$*<$xTI-S)5NTq!MP6<6PbK(-NlA?B+zErswmK-M7 bcRcC-@ @>n5w`4gDcoTIT%r z(yQ>u`;RF%z7?La=%56 8%o?v>mumu|H;-U7aYB5*q7PTD$oR3*#C-!0NDaGjd9-HrGKB_-U3q z-nTVmZ;Z|95dr#uN4(Br_zL<;@Wd8GmG|mNQ8apP@1su+hTcoPzQ+ulNT*zRD<2J! z+VA*WhqUoQ!?*?ab0%7@GS1$3Rr$-Sf`9J+@|XC`)#?OOP)F}f8Asd8+Mw$o%@}Hm zObDH7`ka^>u%st*-o(w+#Y;vCS{P@38ZJMW_w7Zhx!`8xqYu|cy-#m?IIoZXc@b*| zRE#I_d8v`;kg+9ER>8}Jml)Mi#fv;xVd{3q6Tw9o;T2yaLor2?c1r4S>u(N$Y6wY4 znUEBdSge3OHm*h;%6)FEGzK4Kdqt08EL#$ZwQG<>6K3ZP0`6fcD5psnZ*P QdXF>g-raU1 zX?vn(Sl?|M`Bc3{(BXP&K<=4hlFu;fv<_#WcAqg=YM N()Tfsj9%nt1UVj51nC(^yr6BR+h!@&Yno>O_P)Yu|Ri=WY{N? zJJ-%ar)Cu610=GDo@{CeT}nD`l-XLGDPzV0M+r+d_BTZB4@7g{f>m439w%I!fXV5D zl|l%_T`^hOy~3(OajNsrSjx*oEi)Nq+Z%>`Plo*HqV67XKk}V+Jp3!aTKu9TvbDUs zd_)_vr$6$@kJy!C$GNkfkkJcJb|a%CpW2--((La_x*Sq!sO#EzxcfZ{E{0z=tDlXv zsFGd=fzncTGCONTU7_LHV$We7dAkW=h~*(@@p|Ii5eY`5mWPQ!bg1Dy+D}v**b7p& zXOvh~@Z4QgFlt>-2kJky!cC*0X*eamH{>$QW}f6e5NW+vB%@Bki^5y 9;v z;=1CeeM>60rD !HgfUY}i zZvZYC=Wb_d9C=MaWud*rj4Kc(s6qmgqqKy%h6uLDV^qu-?6)Z{o;m_6!(!XX!Dg;L z^@QMHEWHvJh?Ctn=;lSdf+?q4eEgc!^-hJFJ<|oq?nGERP5cCFQwO?TrlBK04(`jN zBOS&xRhg!bxHH^HR;Li>byn(pCBK`idPGXje(ho&zzRmcGP=sdogRKU&4xb5FWI#) G>3q|BH=mSA?Y~2Ie z`vWf02<-Dw$C$uF7Jvmk!bUk+JfllUj_kZ*wYW}tb+abWO|=I1yD56+C`4Y5dQEQ| zh;S9~m0sDrP40)G)mudfT7@>X^ts-?f`bUMI!EJMdD18SxQBz7)?<=K+)QyP zW04WohT`Og#!LSgF?0GK4Z=?%2jaI~e|*eLajm!Aaiq7VAiuwHj4`X*_3pQrfG#b0 z9qNbEb&E@z!mh~jZlwRt>6(30PZrWskb$fSd@v8i$ fn97IR=X$jsMJt~id zUa^9YjW$S;0uJAb3t_i%5m;-ar9kRNa9| Hoed&{9X;o; zRgV_?7|nMG2Nae*H2nn7j!WWA3$`n^W*Q{61_&9MAtlU8M)Wy> Bq$-$%tx}7m<&nzC&xE+yTK+o2IYmB&H01W4#*O=0GLnwy8n`OkEfC$F7Af1O^ zrbdNW+SWR+!eFEe4PR{`@#!!OPHa*!(ou(&aM06PAV*EG2zM6&>|98(REF>tVHfK* zqjzBF226$tF;j#|SK?cBgkT- 15 zAW4t~LwH7q8RbxiVGFztFB4#9LbO&5f(|WR#|xGwA?84cP#)+gS!gHN=DiPVfuC%K z!8{}WCO}zdX(vNSkrADwMlNC@Gxo0ia*6nx3EySJE;M5H>QI@QN|pqB;NaRb21HUM z`W!$^Hf)-Hl6c)P&64Q(T>^#xs3Z=;pM#3xfF~f54-fZ@Mr<^=j?w(ij#Ec NS7`_2FiwE*`po7L7=&S+g0^~d+(v5?#6@YQgptWXO zwFKiOz;Okb=>|->j&vGA_`%?M0Gr9O#En6g1Zhc_htSZc0VL-(W|qNgZT EUaq4!@ITI}}rcbM~}8XZT+$9nfbVSU&6Dy@W;<^>-S$ftLKGnEb*(9ly-3 zUq0)w32i}*S{RaX-%tkyq#Y)FCCy%HK$ob|u13(G1 zEH@Ib^FX2zaAcw1auFwV1XqX ZV;*< NaV4*2p0L8qDV zS_$cj1hE2%SZzS^VBRX0?*j>8yTpMhiQXKA5ppQsMEG@veSg5R&vU7{eijsUR>0$C9Ounxsz38O69Csa+r}p!+AL#QN+wj-b)CM&mHB#RL)NhjJ z7ix0r^Yi0C^y{5y4>h3Bk;iF%Lo9Ng2-687cPqf7I^1Or_6UG#<55D?NEg$57Zyrr z2}K)_s}0k9Vv!C;;DiL@$U)~!$FAmKV*t>56t|EAIvB*Z0=&k8jnJTNYS-=M@VBaQ zL^Vof0+||IJ`Z1DM3v}Bw*Vr~h@fczYYFHnxcp15nd!hoR+`8Uo|Ar>h_hk5g%KA! z$4~cd?;mb9m%dT`YtQA(xaxuD2KZAf5Ww!7J!5LpL*v=WT1M6ls{5TRU0~ak$R^Pf z)l8#4mY`3Wt}@4|%Lt3j0QK!kicUjnhw+oGK$qnFXBy>C7+(qDYH7Hc27DfiATkiD zbfkMQ#&I8dGahAu2@*9I7plQI0^}SKW~m9sQzP-C-s@ppFbg5;M|;8h4=*`x%>lhw zsLieDy+#}tLO%QzsN!M2EXC~N;bsH7htvdH81>d0@tX*10|)Fh;;vrRbwSiWAY8AB z`b>v^tfM^AQD*JE(pkUCEHLLu=U&BDz>BexF$1ZSMv3xZf3>AX$w`yD_CzgY%g^Nh z;G~*$lv0Q^MZ@7Z#BnvH(QfYNH0qdvIAWq+fYA*A`6rJogV>*0)J_Tdx|;MBpdMBe z#!Td74(=3-v_k-Hf^il^>SY7riHJ<(c-l#LZ4v@kH-Cc`@DX83OgJtJxk!Vu@Bseg zVkb{v#1fFM19G* ??LKe4ImT|_get6Ch~m)n!q8pNyslbq$_G=buozJAj&Lo8w1LYhe+TfHt}!^ zO}J_`xB-W>Gl)Gn7Chk%Cmxt0Yh4N{LevNjgpj<)Rq-(Px-Qc$jHd+Kp~1Uoh}pEJ zTRLRE1{Yxh6XE-Jqd*rLCV_=&Lt>gGcY6)z9!p3=yv4608aUq?+3#01Pc^AW9?vKD z^Jn(Ijfv{;^?NwF_ov3XA0~BjD3YElW?nXsObz9e55s24?P5G@y6yZ=ej}OGaS8fI zGk75%dq@M8W#axbQa)>_W{5I*m~s`uX2FynM#_I8%5OBHg%bHUhj<&p*$WV^B7a)| zoT 0SbS)R6aT7Ut)Q)AIUtUJ`_>0LeS! z-)1BqG@w@5JKtjw4jZ~44fcb9{D?)_0;4wp$h8vE0FU$sMEwUMcUpkG0aS3RNEsUy z^_CKu@bbx)m(Tuw9QHErPR$kO&|P$0)~M}?cc!aXeV=^RQQtx&>{F|m2Apcqf@Kqa zc{Vl!G!!4Qa9~kRCRC(`bc#m`U1FX!O;2{aLq2RGf7Tc$jO6 M%bmpwumeq0@hJ;@l7Lgm)d?B58 JaLx`J4`CvHL$0FY`Q4KKO!qy#xqYiAec@2>g5~v>_Y`?>c z9R}Pn76JpC<84j&8xqVyBeumr(CSE+b-2|!6i);C2sR{$kS;t-j1IFO!X8+L 0FKO~aqj5w72-yoZU`1mu?*;(R0FcMjnX0l8d2_|FCNr>JSj zKpL`Ge-i7rqdvl)dsi#l21Se;2i}?~rhv4zsP8Y)J$wIdqN-(Ahksmoxy&Y@3T+mU zXc8+)@)LA(VuUs^Dre*?U|~Na( T*`TaOa%( 0C2$wsJnQ#!qz}* lx^-!R#>-+co4CKMae5E$0wmm0_<5^R46L zY~Wz6x+(@h-Q`h?M&d;cX_ep-4ZyqsXg_<+_noZSn3`o{FRt0dR6OVInRt8u!^%fP zx6948-(M?RQ(~&w3#vR;^$jnqoxc2h+Vj5V1x5ZFA2h9c{5GK>B>&^^^T+QNYxpH^ z$KG9F{=WOavFDB0#p!cW-u|rLZWnd<3Ke(s&3`K&9=p{vX?oMK^0He@>$jmF#INzp zxtZ_Azb!rd@MCAnj-!m#2OqwgSMash(K^@ra9H}OVo579y#wPGNU$TIPvfw`p~s{6 z=+hN5=Rb;n&y!)$N}@-69kA3w+apEjd;vbX@9fTdUz;}f$s?ONE`Bt2np+o&aO(8T z3t#WwF0m%oesMloxz8_2c=U2x^R`zvw*NEnWKE{I`q+}=F5jLY@%#Szc0BUU!;>5S z`nh{*&W4Zg{`$*Y1R!sEpC~)<$EM%D3_a>Twx#7;x_yEtZpbMW62=_;<<(=(xxxo! zo0&Jp>bseVPLDi~6n)ihy50Qo+NSB-Q%c#2?LYCprwY>XomI0s7jAOi3@x0tKS^#J z+8-6Z3e&J?ZERzid$zc 46b6C#Rq>yI4&}d~g+>zpPqAyKq6YOd^Bq1TV6~o9l zZQ-Z7#P7T H{CN?o!N4~u~7?@GVve`Lus{1@`!@PG@GhkK8g3qI?Oe-^A^u7CSPkTtDYF1N@ zqE2{V`iUCfi)uIJ^shZbBtgUGb~MFX5LxLNRyS0ab*s%-9D3sUG$qlKXUR-tpYklF zWM&Lu++ve&t6g^R-0+c4dp2I%x^ 6x7lmK36B)Q3dC#o&B?iQ zhrE}qkl7bx94`<4p3#IYoOSBL$n#AON$IxH_57wg%A;jB$7|QteSZ{ltof(oCc7 u`lbvlG8WO8^66{<`0c4kBXn(Rp8C3P0u~*gr`?UGuC8|wBwxj zh=n)@!ooCi(p}Y%H9nEcuHD@9O)e*f8#JYK%bTH;!T8jKa!RiolqWr9ckf$hol{(E zp9p%{t~ttzs9STCmZHuw`bVd4KmI=Jl-;zwu`B8-{^)<)SXQw3d()+7dv<-i@$b?8 z8=J1LIjbvO)p%rvEr)k_y+fGKsdEn--_JW?L8l(P@o?3dZItCxC+lYw%9!J<#Ys`M z)j7-B?M8Kv!q<9Ki?d%d-j66agq%_iO^foV wmsDn@r8@sQ$JMSr0oUAe*Spu>>iZ|( zJ?UfJ>)zH>ukYm9bS6884}<#FrZ=wd42kY>!p6_>O-!8{cCKYptU^SppE_mmicc7# zJQpLR3)wz2DYb!3EHIP=^*$o4L$xDqxOE>s^2%m$Qki@XkLa`n7tD2cKCQCIA4YJl zF~wza5{tMmtw>&rv~Q)wxI3Ky@ZLO|5>6-kng1n7+z~x{Ur*HDcI)usyOkf(HqCwc zEpdNmr{9e4-M(9M$kyI0yDlRp{H>W^-RzQ44VG+(n$nUZ)q{wc28C+!*;Vn2ROTm% z((@>QjGua4-JN6~kiwF)8SO3;+@=d*tBQ% =3T;?Rg0w#Ti` z#G 5cZbu<7 z7sSsn9|3aW0N+_$ULQL7_V_N{$*`}mtp!E2_~zT?7j`AAesHLCP6A0!Gr&=_>{d$3 zS>!Ub%gEC)ZFLbX()l0BZBID8x+WsX)$QU2haf5W)Qi+DYriSy-mIxy!;v~V{n{N` zAx&bd+wFC%7}c;p#hlSuOvESiXt!F+XQ_)_57+5YPTGnUqX_#RQ&&LRV8zyct>_Mn z_CtW6T|djZWuTLlms6ggd+ns?!OZ2hmTt=fNkcs`zH0>)MI#a5g~{%~v%JFar$XY6yyjM$kE(DIyE5l&WBn(%JBb@_|KLF} zJ@H#iSWm>c=HU*;FSO#>Q>~PZYJFQ55R+x|NVP%jMq4Y9B4|1w(V~>yW}$8JTC4aZ z5RBI$NiiAZHT`<}16`C?!zcWru?Q-i8;Q3pyM#?CHU^r4eLkm>4@WRzu_72Xw=)7| z7P+*xfI$zeDvK_=U;4L48Ab_ucKzeK^C-_eEjhth&+uk`@U{-xss+(dD$|@{;O_Q3 zGkJ#)^-ZM;>*Zstaa!Ui@U(n{f8baDW@abd!gNzn_a+f5{?f^4duph;&=5%{xgFZ| zscdfA*dc2J;6Sn}&nY~|92IwYR^*h=vgEBQ0px!qeQ7>?obuOXv`grt%Ef6yjHM+N z)J{W^riSdZ1^uim+Uia6NajZ)Hb|}}>|ERU^bjXz+L) c=|Q> zS7Ykh@r-Wgbajr^mrs6XLp052NyP?>#%W6K_Wfv*do?(#A}r`VSW8L&Sh>JF(ml7I zPfD4HblA{Bu{Rth_*#$&eLuVGJOE_UAA^mMXn_yOpR%I?>H1fwVSZT-X5-n{6y->} z EaP;^ZW1_euIWM)On59ZcNlG;|< zGSPD<9zjKQZ4b{}csjq+N--C9b3SshJ9#Q4wWm-+{A1)c8?mG`xdmYZ84+HjM+sMc zb?4mQ_w<>4e^qXFs>}OWOz;H1a!G}|)34sq(>+8b*>xRhAj#a#eZZ#dQF*y4YwhDV zSgE$f%4lgBU7>qEN!L$xI1fx>QRHpn&RzQ(*p0Q5j$_g=R6GxDtFB9~$%ilj0{|OF zB?=TpJ+zHAn62J3H$Q5W#+6;DSBaBle%|P9Bg({8>Uvzw&PlA^N@+K}>_#h5c0-xl zA`cvpII>Ejb+RNCIw=E_Gk_5pm8+5^vj {Uhwoi9^HeMO)aY`(v3O^nAzDnseg4iigSg>^w-U{{Iz)X$8`d&xJ_L>6I zg)%|gep4jBFh)ETxsp9Sv#pqJEaq`gLJ77EaNg*MO_O*$`fMwFADCkLKO8f8Kv_Bv zd8`KCJgM9sd) =gKLd ZQGxW>}O8 z`mblq-^zE kC1hbQeO=y!i3oKI!oorNGmET{l#ag(AI$3bGhLWaMY-4qQ4ZGQnd>|GO zcIq&jV=>ahK?gJ1-ZU(6+USL}!6tK2et?W+;Zg3iD+pCWIAzZF_!@QT_sy6D7{#U` z^4bo;u?zfj?KTLN3Eu1tcVde;+?zto(_v*63(Xdnv|LBn6N~Asw9Elaqy*%M4=$r0 ztLVj^n^HHaun7ae8bND>AbOoZu{;CZ3MsC+S2xlQB%bOjGAT27E%xS=g*#~2+%!+w zjIhj4ouA{eDdNuDNrL+{Jo4<4B`!~9UtC(3(&sn;L}s9z2URA#5{kttq6n{pO202e zi@3jaWGLkwmy;L9BqhsI1SOIw;*DhD?pS3_F@|p8)N+7z5`_gonvjgk)+jPe*mMbM zvq5>e?Dt>4aZZ;X?YUWkGoX^oX>pU71c7uGM_$M7gEi4d@%Fnc4(;4JqD{buM&&Nf zl0O>{)TtJ3rDM~b9j^MqAK1$kTL%6<#muDNT7xT2;9y5@I`2?pGBYswDqOxVFY%Ca zcdUgiDNpNB76r8ZF1DL2tuCcuBfX_~7~vf9YsRMq9CM$-zD>qS29~R^ksM&9QMuEo zfQ$=9`;|F8(IaVhHq@7cQHI?H40}L+u&;z_ByKbS0d!@y1@ x6?(~>)!|V@e-9k*1)sviYE7;qRTlvz;$^3Mt^Lk zg+V-$Y`3#V9ATKslnYi%vP3PXI NQa@TW^NQe-VU(})n1`TZWdYS(GctOYy+!+f9=&R-7~4ow&>{@az2DD |lR`D}Wsl+4L96*sHT3GghR%`lm;(p4^@Y0=^nR9hA zf?OV#GY`_mrlvhl7UGeAV9%~mZWAc;Y5biu;+@KBpO^9t-k4;a6ZwfU6VI<9ugFom zq_I!NRbsb(!>-}%U1K(&gCS*}!2Y<4)kX=hT&K*zAu@DV{RAaEK(p6JBbG>R5zB~+{^iE{l^jCk5L<~u eXvfYH`Q*Wa$6h z_dJ1C<8$k7y}3Wc?!Gdz4Vh|c5BF1#bJ}*}uzo6#`3EZd=gC_ d=+B*rfkfQivqvs*LZTy}ecWg;gU+eCdsA&hMg>UBAYb zet%Q>HlzAg7JQ@>y(f63@z hgNYeo_$+v`xYflg*F?NQL!Z}>BT4( zx@Xw=V}4fg-Sr4QAwKJD@!oqyup)=9+>+s3dDQh*)z+Dq^(WNWR14W#gV_qLP47`h zCA4*#&o8f@eB)3PJGTv;1PL~lrn?_0{dEA9YymSvnBPtIx{ `E=c0 )_v>?JK3M+?@4N-9>fqwA7~Ixe_d>T2>lAy6ED5~;EcZdVXJmjSDTwWD zIZksLBi1Sdxw1JLknW8+bTsw)7SH{^*5nV!=X0<-jdDN11z)Z_5|*q{*^9Wp=Ci_n zTwg}JilhB?=z?Cco$K*#-hp#zIbr{NSV}s)IuYAbu-_?W%o+RqJ72M863tv| =uOoiT{Z3|gnzI52BC^mC-7D{Y98$#h-?+Y2n3xCfj`?wc#N#A{O?7e8fS$=Ed z^^BA?SMxWvD$=sBMResR-Qnig9D~h{;tP)&uJx~dN=sN1=FyB>( B}$6>Q8hQrZb};wj~J-(PO1BJ8!;BHi`Glw!UnKGLux(d@nb(2SU+ zVP59z|E~Vm@&U;nKb0cj%pTtBfW8mKiwkxRzxC`=Nltgwt;PS|btsvIbc>Z}XS%hZ zbBB+{TC1NwIfM&K5+iDGJ6Y!)4XkyV2U8JYy}>W94G}_1>^fDL-GW!MCQGuCkt=bi ziSajA-owAsh|IU&&S_tVbtocNPn|M2|5*M%itfdm>Hm)d`0h4ln_KS8Ttk}so!MN5 zFzJHOT#{S0P^na7?!;V@3e7c2H7V)(9YaKn5QXM`O_GXI`|bB1?3|s??frVb9#4hp z!xy^G*?=4qa^UX8^V5b_yZ(}Hox;O5txfeFBt(v+sbd14hLlTu8_weIKQ{^uPGD${ z!rrE~#a@qYiIM=>AL@Ax(=HJb+~z_b{zwGG=-z*;?|3a|@@G_@RW@weCaVi9MUvh( zoLfBi54>4*J8`Z5`%%HqYp1r7$8psysROCs;nt}QDKV`_ZxlcCzj^v#cBXLCVJEHG zSOlE((G->+_sfw!dS`FB&H2A=Wq-7Dy0y;oIHOC0UDqrk$7jF%`PCofaN*Zh5_0!` zRo6>6uYaFh@+SYI%^Y|Tu>EzsIq~P}x0O3_+FneXD s#{_2ZRpr_m8r|Wrq45m?|*)XWjuDU z4t>*C>pOk(d{ce?sn3^wO#c=9jeb#X_i23@@$>LnY3PMdqaE3 tAd3Pe1;-bK?D8>$LW7e?<1rj9+=RcVS2N*ZhATvKi#X!5{M;%s vgykEyeDq!(rFHNJ+XDCdK#LZuT;!PE8Gm<{A3hRCyUvkvLDo=!W7f z{KrMyJF88nx`9)FIqg9g{}4JoEXH$Y`Yk@~%%F~wnjsp;0c~^ro^HRZtIv56{J0{yKuuMbQ>)+yg8SAt3 z;6C$Cb`|;xX2eg&K1JET-wh%t &?>UYKPx-N5i5Iy4vd z?_1m{^s;!D@!iX6sO#xflTr2z+D_n0{%kq22@Xynj-9Vzb5F`%Z+wHh)$pjt=u<;e zKT+}i x;oiY=!AnVqxGXie&$1iC-DfmY$MwMXV|@$^yV-?dVSh`WM<$eJ zYK#_ioqf_Ln;t=Ihc>a_U$fuV*)5lz`a8OMXp2;@_L=&- z!=UCsTc%pIbX89`kK6>?{gl9k=?~Vu_psRbVT`i2xc9_6;j3elaf<(sRSoJWuI%xk zyYYlcb30M_$&llTGhWW40;*dIbRT57-*Sm3S8lUVr|xxZ3i3VIUU1@CxnY|0_a220 zJH~l-e<5PhHUg?TMD|oKmE8Khy)f@cT6uLu`p!gLvE9ac)3E(wOqHkobNm3({s9~) zX8)AtJ*^ke;N7d2G}`#q^ejXYZnI3`dRWIu-S>GgHAlK?rRZUHVA2Py`f{BswfCj} zrN8P|O?t!BJ@rSr7(4zyeCs5R#h)zfjoFxJ@5Aom0h087_Hy%FPhFDz5Vp|r-5vRE zEA*;`?AxdK>7C6p5$#vicM@!xBOw~goX)ipLwL-h`Ys1-r@eEL=w+K~iI2W6IJd*{ zQGjk0tH}4BCx4+?2*Lex9OBV$ZV_!g!Wg4&fSTBm#WvYCe40_I&@_$UDo!)ggk|KY z(^V2-6q0Hu-_g)*0D1f1Lk9upjh}9zN)+dw1I+jhM%WB@hWVB9r{$p7nab)M>i^I4 zNHVEIx4Zd_^r-QQ)Py=2(;)H%0aL_UVHh3R8=@rW>QpTmK%W>=llkfUMhn)8LO$av z7j_>K-SZw5)xvNvc)Sm#7uoF|VpMo@yxMu+Vz(EuhVqA&ZuhYj8QIHK`AAQK8nA>9 z->+0MaggEr=qfdbq52DZJ7JWX`=~v8FHSnEaeN9Lflq>jwX{iH7?Qapm#g}dq;%wR z^6RE9Xo$e#+fnCzxV-q6>MHBxbSumfib<$5I^ZK_-Rz*Q )#ykmVk)CR3V(DM;ABZv5aXb(c__Cr>{*oDzNeK5Zb=>z1zMwED*OvUU(K@kp z?lR6}(7HcEd*?(r`4@G1LWfb<)vd0QA`$MregOSMJTB$e_-?O@%RYJ)@q2%7i5Rvt zqQX %NsyANoRloj&?RxNPe#T^qx|v@0l9RT2-W3{Hjt6(V-36?Mdxslc zkyvs~)RqMH*C@4*-mstkcH`xA754ac)IsTc6Jntj+|5mw!l*3mD`c)*&_>$W>S=r> z@~-NF?|R$s3RFf!2-vqPy_I~SD3Qa}{~Xb(8T2hhUQS(wxRGJICX8feJ!V_)9tse2 z8j9(pF_eok-&onHPbKe9 8x3H^vzQS6^w| ze0F>+URw`2@5QhhI`D{ntGU1}F0lf*i_9?%89QK5c;iVwPrZHqv}a&guxCS{Qt{pk zEmzo8vSSGyu$0E!@P `q^vuDP7 z?cAI{4& Addbn#J%v zgJmo6j+Yy9!U+tWPUzz5!?~6eos^?7o8W29`lu+gby(ESUSgQN+w6hl&oZZ{Fe{ie z1B+Y5W^Gcsg^m6;bpyFJW2Ct?!rJkYh|?$CZD$VMwwZe|zSvz<{Nx?rDAGVeLkp*W z$FmIi@;9-dDSl3+nhbIF{gij1cjANVes^8Ll(_hK1y8jlr5<%w>bJmbPX8Cc%vf~8 z{;Wypx9;Je9Vd2*>JLxe`A}x} fW^F~3xc3SB<^5(YkzFpdOj?>n%q&pO`01n3S64Mj6)mPHI0G(X%d@eb-wmGQ3# zb2_>!eBvYfD&Q_yejgoL1lWWlQubhPq`FvOxHnt4ei11GDt6!DM4=IOz={SBHof&5 z`MDU2F?;zA#srG<07z*tLj!?UgNi=uuy5~^oOo+V1-ChrfMSn4G=y$O25Uuyc;#OQ zJmBiCf^;r$9S699GM;x@q3-(qef)!WvHNJ7j8 Tmf`Eef)?jbYCNn~5I1{f#?G;mWrpYxNS8*$lytUZ)D51mOq}l5bB& zo8d`z4Xsi;Ao&1}LL&FFBis`*xvTkFF&->1k4Y(}FjT&whfXM@Uj1ZV5a#+(>UYUU zdjbjL3y^pWFbNx=zw&XWFjP;pyW}d9Il_637*fZ%e8TaCc M<3aTJlkI~eBsib06YiJVHKJ`S %Efa5p4F6)t-;N zLLHd2QB5@3VlXot3nfSw# 2sjiR&uYk0lYL zhBQsfu)&isCPYIMpmqd!nFhYPt*TOszSQ7$s*Z#gjtUGHecb{tZ$#t;y}5jM?nv(q zw^#>kfKZ#{>dPVQ9VIWWK|ME)9qR2lL`$=5NbdLJT2;4?PL1F61{)2zCBWgKYt_XT z;kKT)YzZXj%Q*p*$I;q%K%>lQidNw>R%2e*VP^5>=3Ip4Wu^VJsyxwUmewKvJ{3Ad zEP?H4z~b5^l8iAVGaICP4%o1ZVFyY7EggR1bx`GBuEGxJm@k6|KgKX56&Ft{CTncJ zODPq1c24AC$pq}nHVm`P972>OgO9_zBr|zm&qQ2^Y&X+LNsVz~Nk%==)ti*NYx*}g za5>pbhosBNDmk>gH+9!1>akn$)kn9%yW5F|0U%HdQC}fD(2itR$F&Ocj~s-%mx7Hp z-O}5F4peYWA9EC6Ivmn$vqJLv*r|#K)BJrK#O%c0g^o$RmSj?oS=2!duGtbxYs& z4KhPu9sxEkLD LBXw)4#btk2!KrFbst<=5|)ImFm;v zVQK_XJfhmRntR12L-Ost(~}*Qx>PSWjT=N9_>jHoT2Vhdd)hZR) z>n*fz!PZ#rV>OaBU)1dH?oPum(*}F$O{0Ay!^7Is^@u@zul!TwPU_Q$b{Py^nu7&L z-7^MpfqEn`_(oI5eTPGxZu#{V+YH+hu6_btq$F32z*XDFk&WQ8_k-{4WbCdX2^dL} z&7LA$qqT2mtKJLWE5|zn9RhtKbdNU(na@@kVdfRDwh_Z96(4d>N-1zq_zdVir7_by zHEhk{`lWEqRvCK&0P+zWy%dJ&Ecgb;z?hEMFP@T%J0 bZ+0Gg *i>T?m!ET}N6+hZv?lvT&l^P L_t;VIgPLh1?R zq=C1yZP6R#xI zK4Y|Db$@VI&&r`;`%woWbY=GvBo`58u^SoicRnCPOG*|JbpDz~dg#%);o}$>^$bKH zO*4p#o3T6TwQh7S#!17Fq`U(XHZvgPYHXP)OOds9y&ZvTV5Qp~p0K4;R%N?SevE|{ z*T;Xi|MS&+uY6;e)P+8dOi7IHdD5e2-(fW!*1{b~VkCK_NO1B- rW-vH~ClG?`@_3eF2jeba3r`sE+4$qu cNHA?6?gHRurR9l+O7CFzXUGyO70VXVytV- zk8>}63DQh0jt3;}^*eXiNxO6M;>xef-_Kq7b8hom)Mddhx|GEsUtFMULY?U^p;gJS z-eQmvQrx#v>=TlYYzZr*(xNTCQ4-QGZlyC4GP1Wa3KIrnwlb>{vhHnVeLk1@Vk?`Q zkkhl3^FHATd+X{ le2#hn6K?i7Qc*qcXQOcV!7o|2oA~_RlDMy 3+$PN zR@Gq3$kgn7pQjgJ wf8|sOk3M^y1fGsBDEp3Z?RPZ$+SiyodkxYa z0J!y5tuqhOxbgf9Au+z8!z_l>S$(noHi>xP!o_N?Sqe$RvOA#Ekg0#s;}z;D_u|t} ze|Z0qShtS8xTo12O0rn>EI;aUk^HeW+wUSF k8#tot z0O_Jjd+6bNaxRULfRerrS_d>&Uoo&bwvyOZ(UPQ}t5zC0m*BH)X5)WF2@an~4oWuQ ziy9{{l!7Jkgc)NFFa-b}YGXIQlFzwhlmbSl5a1=PmVCGk&sHoVPyUXJ5}t5yV p&xZ^-}Xi+mWk~N-V`|{jn+7%QZn|_tMa)I zu_6Wk{@v|j|io@8yz=>YEh3uZvDeJ`#&12Anqh|5U>WK~~hgRwWBQ`PuuJ&PNk zKLq^ymkP$<%AUveLy}JT7O1{V-z~7b8|R-rT<4#RQi7i2AZ@Np$q{}Z_WYvrLbA$` zHP8O+9wRcc#yDs6Eu=xv45U^V1U?H(g({Euq9+40II1Ao2ZpC f0j<12uE!uc8%A} zU%t0s05W!4wa9I=)P6FRYwe0#jG7XY12{WGslT3_c5BQXa+`0G@!eWdjRLIq-hP^E zwca`uVNJhzZfjdtUfwU5st*7FU?ka|V5;5{<+qDdI;3@=dWG(TG)tKG+2Cw1-^x-y z=cxPUwy2*(Y}J) g%uU`<)KeQ7B!z?d>~5sr;G{ z|3)>+XzY##{-}{L>c#9aLBrldKd1DhT7KGSOL?@en1A%~eX(eIRimv|f3Lk_&7qL< z^P>~siNDeo=dL)pR$jWDxv6RlfTz1>HiOet&pm(pecnPr^x2dCX{_JilM9cf)>;l0 zkb83f)$@!OJx^a%ZTvkIykaZHDDluK-u2rK^T#_q2?K}b&VG$ul2wTs`TOGz4g0kO zcxFp?^~ROS(`J4oTSfQ7L6&aEQ%_1i5%WD$DIqpAjF$UmmGE(XV2oCfnWlbaXbg5M z_V?Jld>tiv^+s53TgG-6TjJu@iIzj@H^J2L@W8tQ!?R!0y53q^94@;u5)zf%>Rd*C zItEiZ|6pdNG^`w Se>@05ya>BzL6)GJ$Q`&FXX16f zTvWs?qYE8nlV`T_eYl`>$XUB44T|)=?%M@={27A)j8f!mV3IP!Q<;ga+5V{(8s;RG zf|Fs 7uu5_m{db-OpB~`Z4uj1$$-4Tv$1*uT+N@SgE zERmz&(4co+OrqUEqXc72DHK^CzY&F2C -Ts!u{{K3=>(r9^q)CH zx+z<*aA>U}x2;`Gfy~O5ANi4U1HchIUDsi!+YYi!TGo_N7`A`iB!2x&7__@ }@Bb_T(Rt6#z}a<-w{ZFR9&D>xNiV%z^4lS4F%|%-3{&am^s^bD5bP z@*4g9LvwFM*YhCByf*%VYIR4~1g8KY_aLU_(5U2!90soz<$?Kw!8L~I=`UZdJ-zbV z&BP4+zCcb7@`UW-37~jR7tE?ow3JzmtMNjhh8J6R-iV@T&97g#3ty?ksXwbxPqOl2 zbm!d7W6l!vsvm{h{B|)3c;-)YbkU!qFTInaLmF4JUAmM{CJU0rl9q}aMvQhL&p*>_ zytE?lze*z8Hpi)DBKuTBK6%1hYJ)dVEIhDbr`g83SI5qOILXTdOIuyAww=6l@EglT z@2Sa1cEZ-{OhtpsK;G5l5Uzn>{ccK{HGcYJmI5*0er8(}`ae2Z@4_S4K20K81rHE? z@hwLN1(1O)oRDtd#g+d^%sN@J*h1VClk77MAU$!5S)c;I@RmozR^iZ j zd`kPJxen-zysY_fU;8EiNnw9D+2nX&ZV}ju!3|u z}M01 z=jBUtt!@rq<+P=Zcxp5^9JK5_sVmZhP@cIw)NpW}IqyA~pKH x+}5EpM` z*GfJSb}`)~Dc;KOsX62~U)}|k5cwLOPbn{MVFopgePv!dJh?n)jk%6+NO`B~XdLix ze@PiVPv=v(zk_`jD0LqJCq)NKWR?BCHhb;qDH7P-HX<_BpG=F{xGeH2TQ&cZoEV}3 z5O9xr)y2U^RT7y%x1O9nXrhwnl{WpraU8g}@#I0AMz1K`Y0o5D@^$4xSk+RUC^4g_ zV?FGY^T~S8+!7@x{qUaK>pJlv^+D8my$d+Cts2GhNUzE%Kyz5EZguITL(J>SgQ#~6 zCCJ@HPBRMYcgs&^cCM`D;!xBGYYo>ubVyqK9beJ6$epB;c+G6`)x<}FEDgQ`HVo3< z%ilIiD$Z?qL=nF*8s^(@p9s-~u;@?~tTM$J*Ony0!X7G^MW%*`Yoby0xctpoKYp+( zAT_aaPER_9mRQ4L;bed7%UKXd?CMA2_o6B*RmL5ReM3rO=V {mN0|W)H--v93PUh~;uMx#TJNav%h(2~$mru&GM4=u>T;+5_MNu)%@h z`S-fM9$v*Hg0ef6rd7!q2Ui#5`BO?rCzok@G%BO$ak$gYl=8*`QrQ4-F6|ErAXo5B zKHOzSH*1&obQ|iJReZm(21Q>7WBh2}fYJIMvvsS +dE3t2sw>j z+AdN|SBQJ*TL?6X;8>| Ke* zXT(0A2Kd(={hjKVk>+zVHfoxwYpEscNr^8~CxTK>;c}WGA^>cy+E1ES9~7rucNz|L z(AxcFK6NR!nhDob8h22&IjK5{>#dxZ^w>j8U@1LUQ)-@4`l-n*@BEnSrBk-Nr=V4( znSshoZ6(0+K*m<3SrJsSgKtuCY^Us>v>kuQa;#w9?yW0si+iV9EYKG%SKaNs{&l4- z=hw0t g74PL%+}LjhT)7mP^+4FTFbom6teT; z&yG>PLySeFd;I?X*eShftj=f{TyGh-wwn1Erpt`hz5jMeLlSTynd6H^p>pb<=lFJt zskeiyjMVrM#>ymP*r#sOfY|y6ZqIAoqu18fR&yKX@5L31Y97aj6ggYIiUlN*@M$Y9 zEJER`vF$yhjrPiu348t1zERgRTqJ9nYTfsEG9=2{XMFYIYpZZYwM4v>*6X|vS&J)+ z1O7~`eC>?pWaU8o-s5WnPSe=qi%tW5f)ieC6}#@9kREP*o{_45`BV&5)91N^=j6%y z7^ymiqA <#=Fwgxm=!hTvC{4WFd-QJnHk{vYuz$Y{59(F`cda zJw gIjHtB+)keCUWOUfzRWG=BXxJj&r*dw505 ze1{zNNJ7-9cF 5x55zLf49rjR`cR~B&eiMC%lGF!d5->&!#b0tSYwX*?d9dgwN~>qPrsIW8 zZ;Hvx25%q7CVZ~G(&f&fVgc8G6Q^6s&@b0sFX=em5>gi1{<+UVBjS*YuLHf8Zs<1! zaFiNO{4#PkUwE z(V*7Xant2qtB+$puNkfSe#( z6TP7*=+CsVSO+!X EBcd$&+0=}$ z7TrawUp%I +K1&h(3DQ6U}1yQr-v?5D!s02<{K}GV9yR&Sy+yp>K?V@H> z(naGb0xdQAk6`+#*__fcP*R27MMy|Mw(Xv+Rzwv+=}GoK@9RZGLVsShuWVL*t|r?f zcDYI2eTe8{FdC=3gq@~BjT~^e*|m`<#Y3DEPk{)1i>NQZu(4O|eX-VoOSR#l_IzWF z2bmt}Eg3iVC_qB;ruu?ji)au-1XK_We_FafSZiomIzU4 M_ShwoGhD-ZG3O*<0 z@EMM9{doU&e|}Qg+=Y^M*FdZ1!LS$FlOON)SJYg6qa74t{Ji2)LZ^FIhJ${mGVM3p zT41I8yh3TSHP0V+ZTVx(aah%4l5j-W_{GI0WM3&r9S^Z$9aA(1&D?4_9GNEE)P>%? zUHz~&G)gqhH}TWcGDkBL|NCB`;P5Ix?6IdwHRh(359zJ7Z}%n?&1;uHEQ@qZ$?6mq zjM$e-D4K14d&fV((dzt*XZIBXA@hDl#7ul!=V}eLG}V ;u zJ}uU!gXfQxb|i_u3qdIb;-j7^SMSazmQ-5fdJ8J?bK1`xF`hq*ifTh@pk%d|&l;0k zdaQ8`sVqU2glkEaL!ymQl>go2uXeGViP$#v>{f}imOVC4>mQXwYj>qvch$F-qze*t zzjsJvmJ*`+O7g3M#=$EETH@0%f9O~-91(POW Y7=gsUbhkOEu50?##+zgt1 zIUE`|a=dILI`AU!#e3XurM3zQp?Ppcc~l!V!YCWfo*2zj9s@paDJ&biH8FNu`D0b! z$2)=j^%EZ-Dt~GU6#hS-UQB%YPkEdhIR2(=yk}y(UwPtv;KYZriBA&~SH@drRsts% z$|hGPCci3w{vP=GSJ~%36Q2djd~lG^RpyIL^3f_&QbAL) 70s7SdRX`dL2?W3e05P}{ znayftz@>Bpy4V%mbd0)NDY>z-BU?_qc;$Ly)tfvlDND)qQFV8r^prF_{ZUQNb$saC zQdgf!IT+MpWW2lSPXBE}=-u9W-ceo^xllJy!6%1M1)o?7b$fDm_@1wLpF~|8wy%N8 z%~H1h9^P^#?ET%qp5__egA+4v%k(}(0_) B>(W_wDEqbGa)8t3|0q-+(B=Z}}(*ZJHFdiVUv$_I96Pr1j7<}aUG;#MZ# zy?FZdGlwCj>iM$e+e}xX-qF67&%Q74s@!jT+I}5c9&L*IdEEC!5AEmrdBJ~Omu&XY zpc^-io-!S``6<~WTZFc+ezkJ$7gTs^sd8>jka*}b9SoFXCI024dfRQw$xwlRwyMzf ze_0**_UM02Udc*r!&6uO#gnn8cQ{pjmaEj!;AFWkGdTO7J5?yt |s(WSVJ@U=Z{sU>rGjZ#c46~e?t;@6h^O%%l zu)ev4wnN5RU>JV?e9)<)2J)rWJBv;4tPg12z+Mp N%ECtVYcsiJSFH zWAjP{aIUNFVCnnN(#t==GqxMlLQi1q?|L5NY^T;y`g)9dKg)Gm(AD3N9GgCuMuS@9 z*?xqywwwR04j~)P^?pa2HnG&v=2yq}=cutw)YZ!k=GBAff<)sk{pp-4wFg*OmzV7i zPS%t?>`>a;mHM wFfy%a*U7Foop6&O?TvxH0#3omxIeH<==vGWY zhCydFu5V9iK&Xg5TRM7?vC6?+wQQG*eP=e__1^2w-y!Y*LweF(=f#)Y;u`y}v^dW~ z11+7~uQ0f7 k}Eq1Z; z>|~<2y=qA%@6jgFiyLUOiB)c|{#cB$`%*`nPoF7+_UNtI+JVAE^Aa{g?>SSr0Ny5X z-`ClSK9J+hA GCp|R&iKQyDx-4Rcpwf>`e@lOjna7n|0d71WFFs#||)LChMGynv=v&NKYfY$j%nU zhI!{#8Opsh=tt23h*WQd%&=UlX-Nf2@nopt&qbJ3j#JB-Fowbg^NoHoJ3G2PS)rFu zWp%gJ?hLXG^KmP`?|ETcdzT35-)NeZ)~2f7k7%sneiw^Q2c%sjSnMO-MOKuV6&R2N zSD__oXc*>%_Esv+E_Nz#)>HRZCrh=$VRGLc)pq_?V$52Sr1wo_faswr!vL6JbyChL zlTf)q%&`4Pu!!2rHbs_P%I>J*t1 i;| zBpDFCWhlO5!i+Oo(Kb%%GPmGF%xgozRW+m +V8}S>{+&h+8PF?NN>%60tzjAgONIJB&GI ^dcE%IS&-03{@(& z)Hz%9wq~7%R7$WZY49T>FRk(m_cmwAnrFRLTT483=(Jm!)$i8a_?A$WIlj8(&Bn|l z!i|4?mjf_^0#cW*1ngggYC2N@wu=tP^2IcBnp$?#%XI6;2uExm0fy7BkbO;c)J-{- z;X6K!kP?~!)7^;uawLfm-%h*zZaMx9T=^z8RHtP TyXjhfQS$gMQ4uyX7B@ymDO47`w zz>iU;MXp6S?*4rw$GfXdu9obG6N=tui%D{`a-CMZ#vEZzUG^4@h^zDl#OTi`{oYM5 zt;|QQ1@{QtMEkOtE#4^Ev*ag&;0lwF$Ea`|OL3s?lU9hgm>*JIF=-KGpSqp|VzR&* zyd;Hi3VqtGP25ihrf-EzgU~9ZlOl*xYdoltFg$&n!a!-LiK=%Iz^YrsT^ZhV;KfSu zoDzmIhXXTPpO%~SePiRFpP^GdtuV*)I@u~z5QItSpE@E6Q~9}Hckk{qeRj|}IlWk? zTixZULfH9fC!}wpy5n^MeNU-Gwu4fY!fTdO xSV|@-h5#}wX@vz4M31v@h 4W&zWs4P14Ks1UakWB@?5 zd=VRZoAfISm_jZ9XciE9nD6UsR340^^tLGhtV4kr61i7`5ua?v2J-P6s)$&I@;X0# zVQ4q*Vi-v_3GQgw_bp2;rn0tJ2co0njokGqSvcrTG9K~HQ800kiK39C@Vs%GoC=uo zIuST1JkL4+M5;tM>>4Ei;Sk~r7dBAk=Xw%)U#P5%1xZ 9Av^fsbWo3aTWmelZh$^Ah*}iy%fM6j`(6x_={hX z3LEHkDr$x=K984iuE4^Q_kf7#b%O3VM{-Wm#^ l_#3yLz z5f<|Ox>x{9qzx|~%R@}F5E?9RA*`=K0M}7PBPjrP3e1lKwBy5X6M&cLV$F21b~-Aw zNW2M;DB~lb7^piPKtfW(SxFvQ7HYF;JbD=B)6@5nI%`qnyPnj_lILcyWbPdwyx7H}U+w2Thr zQ4m@b@M#y22K%xz6>NbK u(op8E{aI=I^2>2i_H)TVS?-^ zh}3nU2Ni5jfjF^Y&MbfeR@k5=5=szaqvE$Yr%zB3ED9`@C#I=`e83cYghe$o2~9!< zRlq`jC!o(c>_yaOe>wzMUPs}HYU6lRC{cAzQgZ==Qh;ee+2S*J1MLEB24l~1vMwVI z^^qlxp^8lM#kq7LbSWkV5Nn}`*{_3duS2~#2zNffg#yr`fra;Qd8Ux20<-QQ0x*yd ze7H3RA_f3uP@qcGh<8kJxdLPhPmI8Vy`sU)*CBy4kR0cb79SYHgejZ{sbGK}EZ9XJ z#GDDvBfy>3q4!u$(d>|-bws%daDb2gybcvQbTd4Y^<;y8pdy@vL9CGhR9M!rZaXV! z6IqEG;Alsj#`;vMkweuJ3sr3y$491Bi^1X()j;8iQy*OnDqzEp5X7qRLiWX~7AscF zHc4fHt(dU&NW>co{3!3RAq#K@gNCxfzI;F&2cCksBGkX4laZqUR6Yh#!Gr1&AdXb9 zHU(fWY-uAP{8&H*KG1^+yN5w2`a<_pM5r8S3qib*gNUMv*6~FiV&HN#*r9{yZVKQi z8xf{~US^^S)iKY_bvWA+u10!Zbw)$$*5v)@1%mhziy?{A03>T>HYJjc%8I>_DiqOc zc=&q`)PoLE!XnO7#g1Vh22|KA?}{`738lcb=+Mth@n#x~N=3Z~!1mC^hxy ^|Tl|EMpxG z0*bz-h_|redkzDd*)VA~_#_+2r=te&qECc}a7?6Wl+~hxmYH0&daLRt0gX@C^?MrS zz5m2RBeG|m)JHSS^Ec|g8sb7NQW#kgdb=1bgh&<9qyZ(DMC_=5XrAb4&BL8S=#PTH zu*9CPgW5PyJX7=w5C5HwEaW5F0ir^$7D@mLSz0p+P@V(Z&qMT4MJt?Pnk h z5a7kCYETnYONZ}OoVW1@Hl#zRQG#{kWaZvZbo>$)J#zMH=1f(O%U;W1^d=wOi4p4z z6aVNUx(8c#lz>p8017e47(U FMKFCv)LI`|k1e2@h; z#lT+iktGz-do;0BmdIrqG9Qn;Nq{KR;F@ycvsCdBs#q@_wZcSA;L+cBLP)U5UQzN7 zp+P#$_#X#FjjdiRFn*Vnoyjm+As|OI#ow|nu{aQ69^QopV+(Xeg(jQ@LF_SK*eHGq zibtQlASOdYcmRNM1cVb6o< ;?7w3i36#EKa3K|*0q0|S=A zKQm;*_R>LS6tE%|WKRGo5};7Fh_I3^lm`()kH-nuO$ZPVs>m4%tciyF=L`v>zz!h`P-5MpfDH^e>1B9S8$KmiASo=Sl-YlZOiegga)9jL+ |mIFD% zL*8jZcngV27R-_c!m~g-;UEP89jM3#>QEp)LI9Zw4rM_N`FS)xJctjD=Q){UDK50O zC@j<)1HFwG4 {SE)J#i(5+|3G*FO3-HO z+$g?|H$Iq*8H>=d*+BIJ#7l)pFk9F`$G%R0%TYr-=r9W=%!PU`7Y~b|!>q9gVH!@@ zPJfXJG3P-Ouu#!Nhz9^t#585$k^W%OS8U` 0?ED<1nutt&%ZgsACRB4w42ovSqH$Ha7E;1V==AO&QC zKa~3ks7ZsktVcLgMT0JZQt9At$3e&Npm@57G7l)ofK9q|9b>|qc?cE |z5Xv_l&lb#+l zkU9&-&;wmq2jeIr83~ys*#Si~m &s~$M=;2GKIA3e{?1J?lk>%Lk|fLT zx0?TAe2EQ|K@FSzsD8Y)nGYbX&76|8Yr0i^0pBx@6>p-I4qvqPWg~ic;@7DlMVd&Q zHV{fdm~)1|WlU%Z<$oGb69BSh(bWlvcqUMZ0*_(>t9QfXSx_G)*pl+r4~y{&0Pm*5 zE@HtZRG zW?Q-FDU9Vd4YeU7K7m26un=A>&^a2yln%Z~5q|c9R8BzT0B?kfycP?f$Oqu)pCL >y9*bBfsV!FDXL5(}tIdzPgF zJT5d$vCt^`=tVrV Rr8FlVFM|dwq|00wjHj)VefEhlQ!$R-eP&c`)i6}hseO;VH z6N!A|z32|t!iqj7z{3I&9u%S146a-NSYbuJsECpQAU!(Fk_q&oB3zlE6KwcyJoH~Y z9YsLY(FR=cY@|V_5C3x{6DCao8&H7eY?#n@Hp3wH^TDpzyP-^wats7VOAn@kNCfz1 z0Bo0e;Ur%C9Zl>%){puKbT<{5wl31iK@Sj+zX{*XZcC8kxH)l01T3*MzGyW|jBp%X z)^=hZfSjZNZW47BHioJntqgNeZ`XkjS*L 4Q} zky