From d98c1b892500074541b1ec6c14ceee178a1f6d20 Mon Sep 17 00:00:00 2001 From: "petros.anastasiadis"
>41?wsXfph3WSM>|D_g~9|}nAT7R~Le9av#l0Vqo;jgZt!4L@h18uGC zQggVoRSI!>OBXse+yXOKQ3)Rk!W!7ZMooKjYX|j1PqP>P>}d^4%RTPerQZ3K^DAkf zW7k3di6rtGmFR*(B{W=vf}_#$bma_K#ch}qv_8rBi(J@> OyA?xU3??Chl9bK&7M6c4( zX@4M6jgGG0W7u_cvHp{cqNCILE>gXYuHPrD)zQUXfMl9 *} zkB&}z36Zwx==wd$4jrBLOd|E`=(Il(=^-7R_9!Cl($Q)EBGPUhUF^?@w?{{(y`4yV zb#(pyXHZ9{{hvr -Ts^b#z%220W&tU!tSOb@WSh^l=?s>?etRT1Tfn zX(}yiVp$sh nE82<6!qHRj=aN&XE!VQaMDOv8vuW5!I zIl?!QWa3y7seB#bG{q8!7`~ctnp%lLhOZ!;rc`1N!)pnrsg&5o@XHCODU|4E_ NDP0MaGD~C@h?Frf1Pj&SBYZ`|0CfvRT767ewc8YB8fqUKTSAI zjl>>?? )%gm*Fg?+B- ?zTL*Q#Yn=^G3ilZV*Q>({5f-@?FcROZS6O7H0sMSZLLqP `=}mAl?!3WmPSg91ezSBBzOD~5y0b6 qB5GL!aj ++0LQWUY=VCW4Dd(%;WNo(hCh_P!{KEkpPSG3VQ5&NvJN6YWh3&Y8QaK# zK=VgEF^6H~^BeOIj(pm%f8^83A-8Gy7;BO3P~>IBcS`B|I8tzc;=;iFbL^6JF!86) zlS#ryKEJ*|hPr`=LElR@B!<9B_0Px$*PkyDe-H5~TtH&V#~8OGpH}QoJV0gj{YUmL zCVL-65$mA!skEKN|L%#|4I>}iSp4kBsfMRv=NRl9RC D*bMZ0p7P1j-eY-+ZCo)eKdAJ6Imz_Bw^@Plk cw) =}U^~$+p!*4{&p2F}LGz<@IomJ@W9h4Q@&~5K|42SD% z&xOlJPT!`)YSB?s^It?Q-P4rb{YJt@726Bl-(>UyD8%{+KijAh%o eH zG^eF7z8jsb^qmZU1M@BZPe3pfKp!6Z&eZ%rDZK~KjmINzV}6)#Sns$ImSR3S8r|yi zSxVWMzkw^e(E1XM!#LrYnof9ZCqw9?;X?PUlh%)KaL1OMfZi3cQtEBVu|Bc*Qy9di zqvJ-$dgeFBbuMetajjeZm}>rlwS=la(zpiImhqOn@>w!j*Y|OFNx$`_y1qBVm!-!0 zHBsjmk`kM9l-d(Nh;mvZA?T7kwl^ZLxO+zpb+%6;BdEEI8tPc@xXIz=@xXB%uUxBC z;U?%SZ|0S+SQ%UL7PZ7>J(;Rsvu9=sk1y4m;CvZj?0|vnc-!4OV(=KgsIz?(c{ Lx>JcQiKo1mX#0e9Wrfb6Z2V9>S>=gM|DEQj!=702^OP0qMO`fa3R)lfo(h*~ z@yv{nFj|QIl01enx9xP~gu8dY!K02Uy$1{3w!@KUu;irH8&9mkf}ru{F-J0Znu4^} zfiE~39Sx4vaM#vBm|)ueJ Y=Q_ zHHN@7 d>$ZIc+{ NN-?g 9g^#8M}n^^QP*C#VbE RAWV>qGv2st4VKmDn~GIhm Z#{prN0 zE3^)}`VQY=q4D7H<=^e`6@QnSGeoLaM)OC9?}G7T4%_}akI@>ePZT6D)YZ4+|M)Qm z`lr_o_6 cQ=S_-!R938Hxug1@Swxm3Q3HEAyobpAH4=Mj9qle?BeWw-mmG}ryPt0j4 z1rJumJQnjl35pdA`{MX*A0?BRm8E@ycevS9*BJTx&Y>det0Y;bi513IP+^xuo`}^O z)JDk`w&aH=VT7nI$$`P PrJdXzA$heOtB8GpY<$_oW!etPA0WL zgFOf8K7KeAZynb;)j`L#P|7T|o #Kx)3V>z*9s?s}>?~3~8=40F7vc0i2q4*AYVzo)Q|G_iIC!xJ{ z>R5EXTRp6(zweD3>S9XLJ?k^2_uYJl?Sn0^+lIC}Jb4Y4afce7o9|R-D$yG)rybFT z%6zPqW@l%iBRU_v%6x}3&i^QrL8B_hZvd)Il$ty4Vhx?*neP^ajP#l)Mwmk(ur|p zajLI*)IWRF_dIGc{&$$}C|-eP0+^k)W2Sp%LdvNgt5eU^sqZ_~5t1@H)dZ9J(xbi; zZ_}jaXi}w4TikTd?=hL2YP=4?S{){lQc)2^-jCZfkt$83j8&vE5ma=7*HV^I%Op*t zS`(S>u#K2vS7+BUJ)@T2V+W6R)Mz5I!!~S+eT31>nj>nFGiuqTi7e4X3Rx}xL?UQH zVMfVrtz mQ!reMgty!8rEPE9z}qiH`{P%I_qjM W9A&c^BHHf4NBNNnq#^10YZy4w9Qgzy0;NyiD*j%O*Y*-4K(zF6Z5%7 z#DM9hdw&PD@HLgL7NyHf_x3U}D_tc@mzwUS4&$Zgh|*@$z3;>1I`xY>^&L`Q!33`G zTP&uX{{tL^8AUfn#eTqX9R?q5!Jc(A)~O?Wpdx_(#?sG1XSIbzR+`F%9@_gTqv%Dj zaMA0u*eMhDzMl@bmtx~Ar1#k !|o)6t^a|{K0fyp-B*bJd;on|9g!v8 #(t0`h%>rU&=W+HcyoAL=c1?XU&q25zAubT7uEzWu>JgwG!c5rHlN7{S!H zleA&^co?>0S-B(?4~f`MM83XkX9dLi;`mJu6ve$Ddenrrvd}_ >TBx*y;%iQW@ zx9=)t=pAGHZy9Zl1-Ki_5omdF6*Q79R8&J O%c|{_g!DaS+Fp(f zGfA@!wLdsyx^Mri=S=%fA@p0YQuURh43t%){5{_w)6g!3EnOe8u5_s uFiLYEx0RUbACw;gv;Hr z;#o?pw8A p~g61FE-qSY1`D#sSm3=@>7*&UtiiI%V(*}F=txT1HK!O=Ts zmSJhM`WH5 q(%lM~`cP9&3VELPND>O}ON)^66^*J+cBw$9cXY{O`|^OvGoiMePu z8z@TjF*f@>>L>9ZVO!_+O-lTdVhD{QMcwa=PGUC^(ftG8$1sH3fAelKnV3Qm4{VT| zDjE4 lge)k3KvPl$Wn9+8 G?r>f^~I0?z}3+Xus!#CuRLsrq?J)rOR+y~t5JG)tk*40XI^ zqw$-;O>w9qR1m=~43$xZ(Fm0se}aZ3Rr_n$m9EyntNm@N+T(H20tXbcJ6(TK`#4$l z1SUGuzCJ_y&!}I~sOMAKV=3)#Ag9-!YEi+gOGIA{)Guq2;xChp(Sjn7sR5V6tW*zW zc%n(~2}CpDqk>muh_Zn&8h-=hIn^NZzz!S6<8lZpYQb(QHtITkbGaSG&;Mac>c!-t z0V{~{YjNj`3#YaJ0Ohzrcbzx{N2tH`Ft Y_D^sD`8)*Ow6+eBNBN#PQJxD>_}{nn#Wq-fwO zs^b#W(YtkAip->%e1}N2Zw&o)^v@=9K^`83DC)CR_ZT9qRs_sAG2g~o&8O2X2!KrT z5SX}c{{A3m9A+-rNu2=i?IcChU{ut#6IZOI1J}U>ZSJ0W3w`o7Msl=q4>V!i_M~{v zgQu`!k~Drb9I%ZcirPmLR};|M9V;Hus_NSW4!ixx&9BAYL33NWOjA~wi&+`+ce>2l ztTLa$#Q5;rn5I7=_tjGzjk4OX+X|N pEkA`)#f>TMn{r7!&?}oSI4 DqmHkNTNM{n&}C^JJ;G#~*x`ZbKlPx6#JVZz=O2 zC(}-=!h`FcDvabBVWbi*c%lp*z^pAok6S-ZT#7c}mdi(4D`@Mo=GXnTO}H1vo-SSi zWAR)j87|fC|Mng)#B;_dp4XjDMovLB9=<_2m5!Te7=UtsMwyljcxPpq!|ic7=Sa zOm7T@r0|tMTIBXnk>u-a@A9VbIWq9}G+rcO2vWLJ=sUIPjUA7le)B2~*RBsG`@MF; zw{5R 24&zr-_bEfRY(OKuL!9i1KW?SWutAapqj6-n-n?&h{uzr3s!FCevtdol=e z!{)AlTrs;6j9HS5_l59oR}bv%4Epg3S2!Tyg`mL3Kv2S~Pi<0Yb9;LLC4ADxKt~`5 ziqOtEn`KlM30z)|MkCb+JMr36yWH9#r$l9XiAwImJ7 ma)|XP#yC< Z~zq2lvrN)ldmezn@cF? iwaAAy1TJ4VxDULG!$gkw7RsuPYGV9PA9u zYY5^6G#D^%RU}OBzs++7Hbgeg^F?Ysjy08?k+5`|q_N}{cw6?-dw=QH6-hK3x#JiZ zzq _0s(w*9O2@583qEXr>)$0lj z(pC~_kp1G_?}C| A$kuSbE(El*d_hKhJzr+T)X(BnPRpEEWRS+?N-TA>{KyL{ ztBNY|jxyd^mP75{1q+KRoBjS^AQbY3@P4_xsG7DB5dG`C$#Ud>5&dht|7s5W|9#&4 z^U@8=Xw6h`nM|n$7qgUz&ere+c7}@|L9bbqN%wkJUhAz} 8iV4M;bu#{h=` jB3AdjR8r_W>4SBl)j@6@VWCDuCzU)*QX@JTwk@z!v~_1AYWJ25343dBAGGLJYiH z0V@D^11f-f0h<67ypFH~kW#4zB*X2iB}0$da8dE(Lh?Pm2uy!_pHC*)-oa5~zT3ET z%A|S};Brd<_kd4(FUeVACP4Zc@JDht5`ib8w^9CuWO5p(5g__@{1t*elL$N!{m1x| zLBCoM0g3(?{uI!Iuv4Tt$UK9;Js2a`5V5wzywm6|DZ4w*St9r5FDt3KwM2H5l%XB9 zC54g)Mb6;w5Xv*VP(EgKm6YwwbC<|>=Q~R(dJCK-RqaJ370XIwFi>DcNuld&;5e8j z5J;1joB$r!GY);X6A9dVN#8wrt`a$xzoMjKC+WL;lB1-ice1mj-dJB!<0z?elvLD~ z$hAyA)RCV1p{D|4x-X>%Y_6v^rN=Gw+%%CM^8KHnrwe+1ov8=a#qwRG2i4y_$w_*a zmoyo-6qVF0FR21YZxA(j0z0W6mSAojg8oL*&lB0-0D2kb;xP4(s~9&T%#)1W(sHxO z*xh3;F?M&kO?lmGCz+=hyEmDOjonQSbDpugKJP&T3fHj##`+(6c3}=%g>pdF|Dcb7 z&Mr>TyT*=^!fNoI0lf-y{8cIs|L-)SzwgfTQ2#qi?8ZlnbR)n)R~#6&_{&EOI10H3 zi2%8n5&qtphhDxrAKlYiV8kepuPG_R7)KYmzUI&rX#+r0#QGn4st{A?(QS7Bvwma# zUP}Hpo<6JRsd9`V{M`>dg?L)?5Za^ZVg1kgEv<)-qiu$~JB<_d5NXr&y$OA55z~(4 zgOD{Y)8l~a>o?@B%EL%FduXzTPKSzW=!xTQ<3w?R_zmE{3_hFZB5thK;s)`<;2#11 zT;wIe*Sej>ocqB)2) 4|%eN!?i5+ l z4`DB|GhEOsI4;&@aeoI-KUoquo~Yv%8sgYFc1B0PF =X_S^|G`h$vL;r` z-dYW2SNRj(KaX&@kHcp E~IV>^p`Z=uR@G1^ha(EMm9UR`l;XNGwgu_QT%=XXnrAsfDD{%V9 zEV;U}x^l5RzsfqlYJqiuT(KHArWHIUVf4AynpsjtVH-Z^#=Tc@&sE%mP2H8H$05Nk z+<)y12Pz%4?z!RSjZ)>N=Fldo(!aR_f*Qmp*p(YQBH|WB2I2)T7-(xI0iNq>3ro16 zi*Ks&^rHvAEkMBQ^y9$--R13f`)g#i@8j15Hqw&-Ttk7`&c2EFw)&;Yz$R}? zu(>_p-Q-6#0+T9z;m%+PwrSvIADF1VxgF1PDmQkbM*LJVGqfr<;Q34?J*T2d{;TOC zD4-A{=9Of$14H5jT5t4;hocl}CUP{lh5U4*9T=TU!+<1fAoVNalpxUF5zAdl-fpx5 zlMu%kkZO2^LQcdDfiFfeid~|95#M@vT-wbc)j_I+yofV&?LtL_yoi@F4_G2Tq6kab z?OzTm#U>#y;?ey)psnO`!d_8Mzy|Os)(Kq1yEvD(b9vz-VLvBJK4eI@kQec_f(Llf zPEo&*7xeZlc@eMeTwcU?k|#fB%ijhX`9!QQVtwkG0wR*AN5j(Vl)!_?=;e3tc({Yh zSBZvk0nrY2F$)@fFrb$g=S&TnG=aTY16as$by9DZyjV|r=4d5KL_rQk{er9_L-h+Y z`}um@&*k^>@h8e>*Z+eod2t^{snR4W#KOoG2>%OxKhBcx!m9?9x@-(ciUv}@+48>x zM{oaLF29${U!0QEGE`Qdegi}=FV2+`=S|T)BYn#D-_u$0^;g(g@%k$?sX1cfprNVp z$5H7BGE{|dvp9cCoXaJPf*fYI|0U4%^7N%IrCqfQu=6dnoc5b7|2oKe`8`~I50}p_ zpN+o*d73-IezC6*=Yz?7VA1@iB;>_78V5~Zzc^RpsFM}XX}{3(QI@>e-^ICn1u54h zAt&IM;OXl(FKc3@&C4_)VW) Shf7a}%%sTv3qIvrwjocadIP>RP3th1>yjEp`L`g#98e()6CF z{vNL;e}~wpYiP=Dj{ZfEN2QJSv&zspE@GY5GxK1H-Dua7SUwLcj96Fo%si~zV!h0y zPm;tsm`R_U+Rtaw3nj5`Wzx@)>_v7xiRJTfs+(A6^vpc0P-6Yaq!*{oAIzjrkwm=D zq?bq{j%U*Gc^|*eo=G<&-rDsfme0f62qK>9nRz(jOT@`c`gxLwf0^{s)VYG0^z#v? zn)D==&%>#9A`a=9c{o8%#FtEZnIz&yCjIM@hzFVU3neknGwBy$-Ztq;ET6~jT4a)G z9vN{}d%|STV9 6ELz{}V;1y$@ye?-PuEp43xo zM=qU4ku^-v@4p9~+GXea5+RX5W+Fe2=b)d-L8tgVk)Gll^b0^Izg1=VrwVkkvx56a z+<&-+mlw~qgg-ZejwdQ-&Bq`spPr8*&eHeV6WRH%T)&;$!_-1EeN#wwDp_`Z3Od=@ zHPcQ8r0$b^3yT2Jr wl@%GodO`*M4lvg)0JMTqPd_s!V7J;(@u()R )-((l7kqlSLQ) zr#EpaW&8hkoSyCf?B}V%|MZ$KrE>P0_WzEodJpk-iTjn={-;-nDP{YAl+%U(FTn=e zfRjP9 ZFO!H?3myV(HL@ntt|-4mG(r zy^oI{abI~u4n13V`A2wpH?vlf{swfJ=k?%MpijkVyJEk`hl#W=hyKGvHx^4WUr&V} z{=mu?OHCF#Q_r4VA@_a`Jq42|_QMQD$3Em-O%KIiO7lRMSuXR(4Z3-Pd3P<>Q^o!H zAQy`;dZrG-=zRs6r~PGi# t7l;C;}asBMs zFqj|Z&~r|qX3sIcADGD%UCQbEviy8Gql? qbt0I*0yOa?nq5J@sGL^uNmW zOgcxir$5V{uYoRNFE7f#B{}E|bI{$4UM%f8U#s`mT-nVz%13h0)f{xXZ#t1bf0U#A z9!AHw<#G6SZqL8vDE~GuZ|3&*@$&h&&ZhBi=lyaXr<)m_BRWvd%YQP{&ZzuyUs}NF zgIte@SIaq_&d;O7p6vp982#+)+10$fna6>vnUo~8GCD`}z=zlObtef+zF;^Mj^Ilm zIxBW*!>ZL@k9$o69Wd;5W?(Cprda8-alPSoFV3m$z{fJ;P+T3!>-BefH@0 $dq%=)iG*9*&?fD37;k46^7K(p5RiRy0f>|5Z^29Ykqwe}oo9ZPb_g<_%`A=J zIgNsEGU&YDtdo(oW04!7oC(d>`1N=g1Z4p~q#+xUv}Zj|dh`R`)`ebr`lEe{(Lhg! z!tGr>En#mJ() 9Dd@P| kJa1S>h;gxuxLZghAP%B z>haVgJya0P=<#Z6mA=RM_b*g`y1%W93D-{Z=0|wD{Vp4G039G*U*F(uznPr8xH@+e ztQk$v*Xy;R!SvltssVI5G>l*FSyk)scvmf3w#L=qZE)1$O;1b%f2h-|4HqD+znX)= z=FQ$fhd-0Rj+&Od&g)k?>fB2udKRf2KMh;0HX7Y{$=i!lyu)66ZPgyy*ez*?R@?3R z)2P!YTxZg?L$Whz{E%y3DB@*LUA^mS@HHF;VY9!!zI9ENx4z!L#!LUzBg(C_-5P22 z-LeKBtAXjQ_qVo6+(PoMb|CsX>%#7UPirWht?liq_qVsBsq3tZcuWa)-i9%IGj#>D zx3}|eq0)zye}xm<=_{zrw$QQMnUu4}fuyyP=*t6PPwHrPG@IPpf)m{_NwtH+GgYw@ z$TLZ29T1+yUT4G1$ArUM`e|>ivsR0a)cP M(%@=cWA$QSu%2Q~UZWko z?_D?F3cc(bOdM^`hZMfrgd`JMgP4MGnI3Mw&Ne>W#Astm^~dLXy)aR%it85pLIHeD z= u+BQ)M`MOt$)+1WJ3q6ItbZPW zyhp*N<92WA Hj4I?b!WHwc6qPnKX3Ze0<_4dX7cJbfCb{A@%&9 zKG2T*&y;6u_9-Q-VJ~d(v->lP=>|Zm3JehnMH&CRLAKQVs)>vfF>E1bE#ej?AOD8~ wvc*}PX4awOG28h_5u*gbh5jW0*3)2DQJ)2FjWoAmLi-VKVIBXM3NjV{2SG`qrT_o{ diff --git a/GPUs/cuBLAS.cu b/GPUs/cuBLAS.cu index dfffef9..d05d5f2 100644 --- a/GPUs/cuBLAS.cu +++ b/GPUs/cuBLAS.cu @@ -1,7 +1,10 @@ /* - * A Serial implementation of the Matrix-Vector multiplication + * A cuBLAS implementation of the Matrix-Vector multiplication * * Author: Petros Anastasiadis(panastas@cslab.ece.ntua.gr) + * + * For more info about cuBLAS see http://docs.nvidia.com/cuda/cublas/index.html + * */ #include @@ -11,16 +14,17 @@ #include #include #include -#include "/users/guest/petyros/Training/External_Functions/matrix_op.h" -#include "/users/guest/petyros/Training/External_Functions/util.h" -#include "/users/guest/petyros/Training/External_Functions/input.h" -#include "/users/guest/petyros/Training/External_Functions/gpu_util.h" +/* Need to include External_Functions for these */ +#include "matrix_op.h" +#include "util.h" +#include "input.h" +#include "gpu_util.h" int main(int argc, char **argv) { /* Initializations */ - int i, j, k, n, m; + int i, j, n, m; int *I, *cooCol, n_z, sparse=0; double *cooVal, timer; @@ -60,14 +64,13 @@ int main(int argc, char **argv) cudaGetDeviceCount(&device_num); if (!device_num) printf("No available Cuda Devices"); else { - printf("Single GPU CUDA Version(N=%d, M=%d): ", n, m); + printf("Single GPU cuBLAS Version(N=%d, M=%d): ", n, m); double alf=1.0; /* Y=a*A*x+b */ double beta=0.0; - cublasStatus_t stat; cublasHandle_t handle; double *A, * y, *x_c; - /* Initialize Unified memmory */ + /* Initialize Unified memmory visible and accesible from both CPU and GPU */ cudaMallocManaged(&A, m*n * sizeof(double)); cudaMallocManaged(&y, n * sizeof(double)); cudaMallocManaged(&x_c, m * sizeof(double)); @@ -75,16 +78,16 @@ int main(int argc, char **argv) cudaCheckErrors("Unified Alloc failed"); if ( !A || !y || !x_c) error("unified alloc failed"); for (i = 0; i < m; i++) x_c[i] = x[i]; - matrix_col_major(M, A, n, m); - stat = cublasCreate(&handle); + matrix_col_major(M, A, n, m); /* We transpose the matrix because cuBLAS works with column-major format */ + cublasCreate(&handle); /* Warmup */ - stat=cublasDgemv(handle, CUBLAS_OP_N, n, m, &alf, A , n, x_c, 1, &beta, y, 1); + cublasDgemv(handle, CUBLAS_OP_N, n, m, &alf, A , n, x_c, 1, &beta, y, 1); cudaDeviceSynchronize(); timer=csecond(); for (j = 0; j < NR_ITER; ++j) { - stat=cublasDgemv(handle, CUBLAS_OP_N, n, m, &alf, A , n, x_c, 1, &beta, y, 1); + cublasDgemv(handle, CUBLAS_OP_N, n, m, &alf, A , n, x_c, 1, &beta, y, 1); cudaDeviceSynchronize(); } timer = csecond() - timer; @@ -93,9 +96,9 @@ int main(int argc, char **argv) #ifdef _DEBUG_ /* Output y vector to a file for debugging */ FILE * fp; - char * filename = "/users/guest/petyros/Training/Outputs/Debug/cuBLAS.out" ; + char filename[] = "cuBLAS.debug" ; /* Common directory for all implementations, change if needed */ if(( fp = fopen( filename, "w")) == NULL) error("Output file creation failed\n"); - for (k = 0; k < n; ++k) fprintf(fp, "%lf ", y[k]) ; + for (i = 0; i < n; ++i) fprintf(fp, "%lf ", y[i]) ; fclose(fp) ; #endif report_results(timer); diff --git a/GPUs/cuBLAS_MultiGPU b/GPUs/cuBLAS_MultiGPU deleted file mode 100755 index 2858f12eccb121447a9fe7f78619b120ac1f2986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84009 zcmce<3tUuX{s%n3prqo#R?AA)sc3^P3Th>(#pnQMXb|scrf3LdsrXkgw^e}#(!+7e z?XtC9Hf!76YTI<%HqA_CKt%1P(w3zeYUYerv=VR0`~5!WnPCP8FTJ1l9i8*Loac9W zzRz=>=Ug7 D5dG9- zvIqt3n5#+Dj&uq)_!u %scW_lns%KPbLnZKX<>&LqB+e7Z}5t#~! zaw>_*Cblh9U;*9my+u>WH|{kGH116mjGuOr{`}N$Hv)D>{S3PcZT)%nnLh3Q+xz#K zKK0h=(`FXWyLH}x+i$(SfA2Ykz59y% _-{+cEFdP0r=YRW&Km|y%FC#@#W_pgP5+C^e)iL zB+okDj&CBqL-0+*w-3I_`0_K@AY%JF$=?P#2wywCJ*DnaiNAgQcAfkTX!{_Z>~HX8 zdj%gKvRj+FKp%_m#eUe%{B$&kDM3;awmsWD3Ey~pd*Rz1Uw&>ii0QYWS4#dC(0=$T zQudQO{0u1jiNF6|CG}R&&XRA7j7GySpVptXs6aS9+c=#5lQzn;KZYy+6ynC2jy9)W zF(o8)K}7iS6GWb9fkCOF{BUVifClb@-my&j@wc}Z`@_X`v{B!cZRGz-8~P-FK6e`V zOqTg r_`sf@+BW=*X#+PNo8fTi)&>s0Z=*a% zuglS!w$-G9Yxzt78_vJpMxGUI#C3}Du_m{~vs8vS)`p+THtIX54gYgQo*hjwSEfqO z2B{GG5S0)(-dN66o1XKxOUx8wFY@DOK^uAA(MCS5HuRhf!r__MhJKI4ZRx;Nk;g2t zHJM%o4d>^ >^v5R9IKYxRs$NPh_pBq|}>1i IDw5rc~L_{o{YfHvIn&S%k~~hBo}0a2_{f)-;~DCHFPu<~}f^aAxkDqA9bB za&t|&nR9bT=07lPPEr2sq0^_#nUg=qlr`L*Yo9r-NHC-FrW9eHsbF?~zEBLwn=+@! zlv^-u<}@LvPn$Vq`m{%log?$77U$)ga }fEk&!L4gX5`NC7ZuX%DKj4y z`*Mn=&B$k_dBsza8Iv8*JIO?8RDO{yf9^E6rIa;g`t-s)!Di$arOlpQID1sl>}fL} z5UO-$nVZXkV`k2l^-7;oGz3Y`{=MJIff@))p)j0}`u)tj2WJ<~WO{}JKP;i a zX8m3kAxc?=Q;Vk?xgjCL+0eq`nMFoz?gywXwV^b0cK(#2{M@;H5uLK_f&3YBDT><9 znKfnhoP56pn~wbL+-bm)Y{~-w59dCRU*yMZR?&m-Ih6&ISa9levce%6zMxPV3dNkF zsd+cwZ1~KzkIu@Sn(xPHbk@-6g){RMRQDZ=gdO$6%|lhRQRyz zAz2pUbeI;;L`CyVGxBH5$uD9V{5MUPWzaW;|Cv%oDf%q{LUZy>GmNeR`}~=6VTzif zAJ55~GE)Sb32W0-X^F!k9|fjQn_-%hpU+(3db$Zkpr2!!(~=Z=iK#%QJi~8o&!&AI zx&<3i9$ho0Oq&UBB09R%yeYY8_jx!la`UH7DVl=9_s^MQl!a>MR8yZRvu4fdlUImF zn+|yU0G9meeWpR|b6fAE-u-$f^&em;d0jT`{ywwwr{_ 4VQxmImpA=Z80f^w-mY{HzGl^IF>fSrw$W`IVsC zq@LH7M9cqa2-5qp;XZGW9#d1`(-@?eP>6jeg7m@HsiyV@4vZUoT^kdm_g}-)QCyJT ze~n6g_aJ@nwX!8hAAB905Tp;jK1~YJvu*vK0YQ3RZ~H%~L3&;r`#)-szMEeOIy^}4 zzeeZoaY1_j^)vO8gY^FEW9lCa();gQP(Le3e+?D#GcQOVd{3e@NY86`|7UTKp4a*Q z&(a|MwSFb&^FjLfApNo+{S86-H-hy3`zGAIB1nH@Q2A9s`rvyK?jZe5LFG3D>2D6w zZw}J){)GRtElBUbm%)7vL3*Cs`#;_weP6#4v@uA}dmsMKi6A}iYXv^?dW?NP_`XO? zkbXd*F#3OxJ|#%sJxK4ruf^S#ApO9g@(DqD-mCI|l7jTX_qGNE>F@Fv22BmpTZ8m! zkbX#zet3|6XpnwfkUlL)KRHOB5u|@GNYDFh{?Du+eWqUtIxk4idqMt>>O2_ZeGwy= z_bm)p-io(PCe^tvrl$F}*N#|B%{RP`t PGKWZ? zTga7^IW+oK2>CI}91?xYg#0LF4u!s@LY_^Tx59j-LVk!cyM=F-kng9=+bq7xLcW(W zrw-q6A&;cYq0*Ns V4nyY9=vyk}W0W~0 z`bveopE8F+-z*{Trre$KWFdb;nM0y)xRAF}=1}NM74jy^90GkwLawIF+rmDJkXKXY zQ0R*j^1GBd1o})uev2}PK40T6tp972EtDIC`~qbTfxgW`ev0ySl-)wEq 74k!rIRyG<3Hg4?9Qu5dg?umNM9Ra3Jd!epKwqkm zGbwZE^Cby+2xSg=K8uj=q|Bkt7boPtlzUS)3Hc_ VOA8oI5H&myZ)H+Y2Aa$il zsU~j@;{LRBDUVTAkB&HKF{u^qqR8gW;t*XL{8^QO8>wT|TX|nZb)M*~YJ2BivkK9K zNtcOL+|k@np!6!I(loKAfS=xec`f&kQOgbs2cEN0aG+|9s>ge`8nIs8a<-^jz*|SZ zH>DT-D7|bZQ|VyeDGN^Xa>u}M)Q3rUyrh;LNFXt?ug7lHb2>_O9*9s=w#|t*>{O>a zLe--Gi@nWVYejiI`X4NtvTgQm?+rj;ee@HMBUtAN6MvNPs&EYh*LRzWqs8$aNbV>T zXx=>0cN0uo5EA2D4uG%XkmdapTuA-ZimgTIwWs5{UH=9iZfs0;gO9xtywa-_1}2E+ zI)}>|QG5D6^ZMG8qpNFA_V(D7j18g&DVvMGRr8Lj6~~LCYdBt3nb)P7lHI;_r<$87 z*Pb39-S7{Ssj3_FtHiMRCUyndqxQ$~-Q3)7;eHOIu!wyhn%a{I)xHHR8{A&Z_YUSe z2St+I$s1ep?DV s9C3cFLk3M1jWI(_Px5Q$;A{heTpsGGZV`D&>cz7zZ&* zDL*2`?hwsNd7~695ZfsgN2Qpsx*a$*WxZ0q5RAi>-fY*7+7mtYM7P~#KcjklkxbU% z>gvLNlO3Vv-s*6f>)0xnZ& <4wAT z`5Y?hiQ~)r9|-6Q(696Sp^JHk>a0OC9w`0+$3xtNiPrm&DULtu7`yhrR!&8q--9WE z&aO`0&VK04gTGKu2OTMg=Aez%#n=-MB_E$)cMUoSznQMCY;BWuqOa;ibF*>yS?{w> z6u4P)(vq94W9`~;M*c bxc zucF;g6ApXI5$3ZF`TUrba lo{3>qx-0z>O4?@ ju~fxbS42@2XV*SOGuRVrRZl}y zmTSxzyJvqStAy_JETM2{3syN?gCbGgwB(IyMB}=$1qo(_?Xm9Fd0osg>;AgnDqBok zgx%?}WTkvD`#V)nTV;=M+f! 5RFl5?hVKRYNtC=jo2pk zIG|Nz>4 dL?{SdEd-VpX1Yt0{HZ zT4OM(ZN%wZvb$w|Fjq4Unh7&+%7)@Yq0Wo{D*6M)#|hSZ{RiDdyX*cFJYxv7rwzR> zCfS` b?pc5Yd<$P z*PhIASGbGEsd`a-3 bm#4pvdvp=zyybQHx-LBI&d1_Bjihgt%c47z#%|INczo3V$-GvF4!-mEC z{7*PGv>HwY<(O3w@;mQ3=my gihm;iw$K-Om9-~SZKwCpvF2un%NE}i z`;e8(5g)g9796YS_MN<+ql!2xyH>at+Qp%6>@ctWJ&S1H(XzW?79;S`(@aFdH9SHa zV@fHCHy5=-57E+0R&+L7%GCI-C2LV9ix~f_y4PY{{}2fo=Qc-w#EB1&t1+V-`qcOY z%=AwzKy@(ur6q5zJ(`1a1yhFB^-Z*0a;AREkz{wlQnZ_`)}+<&tme_kqApo^-&oQ2 zMGI~ls`Yq@ZHk8cio>BT J(x^jX|`?AW33MIQICVs}A *tu@D{xvgX2RAicb2t&Y+s#X-=sA^xT+UWQbYTgzMkK)L)X}0)- z!(6xAVUO6ErccBv!=Nt@D59UHIN}e^@1iWCU0-)Pl}ZZ+Gq>s9@} z_!CxrbZ;}}$~aqLj8*T8eZ9?A?Q%?vHGr!FXHiEXN5DwmA27jN^)V)^R%{ZEXx3i) zja9$Gs&}wzomJfdhr$@W(lAzN8Z;0GA793N!Zt+LR0%-5Eybg_X5jn-vy5H)(yD!8 z*P3nUSMfG&mqR<|&<;DaX76h_+)+FM)dY#Nr8Fo{Tn{Uo){v#0$ *$i#27P;`$lASyaa##S#)_nPD=>Fo_XS z{z(&5Att2cT%%+smNdts;DXt5oV4j?z#0V5Jt*oL$5hZ|zFjcTUrzH`wQVgp#-muk z&gM#O)@ljwt*E%oH3LV^fs#*b`gAxE$I&hECC^gqWQfz_W0WVypf6E3$gi^~PhJTf z+QEk7d4PWm=%GCMDck~UmhSH_-CcRoDb%8LlD~9U R%0oHE z!E+zA4y}k?xX87|r;_pBc%)^(y$&bNe(SYwVi@s$a0q)j7N6ko?kb8;Rkg2I^A3;d znjb&F`(`8d>)_VbvG_M|mfURcpSAER4+8H;p^60W+lJx=SlYF9-j^YA@` Le*yO;SD9IpK>eDRVP*}YpdZtp4SfZQLbt`i|`(mL;K;!zZZ3@ z+Cv2|0fa)SSVC`@K4u&i)5^7h@sP@KRLc3qAqx2C7wZ}?9C;TV#4MxvjG2WK4f-9x z6!%j(hxGU6i+W%-Q8^gw`+#WG;VY6Z&%rQIb zfxiPa?{3%H+w<;HJ^LcPdxh?nc*u54N6 4CwS^AY(JdGQOgE~vk!j%Ww zuQ!E?jY|0qU_?qrc8LC*M|r9`af`C{D2D!c%v2R!Q3lTXqx=&+nHuV)imB_kXv#G0 zphMey;8uD3X+;TU{W7a_U8L2y9_L{=$=Yw#9EoO(t+qR3Y?wUzFP!J#c$bxTP)xX) zu3P@a3IcMwt5c%t>Y9-3_TCJ@dFmXK=^7-?$yL37d>Vq|6fzDesCt}TZ|~4Mi!-wQ zs;g6iGcm&Iyd^PWsNVn0lw_r177o%hZ5 83Ocs-k`l?JFyW zoaBuT?KAJ?xU^^Me{-O@8I2i_`kP=7j{|R9(1CYOyYUPKCt>}0WB{P=IeEr8^jqTD zW-(}lC)kYs<5eKwKi^1p1B1U|ugUJ}dJ{qL-hxK7W3pm}*@$R6qu!#ryLpm}y53|| zI0e0> cs6LMIs_I|t_;;akd?!yse2HQoiu)nLC%T63MHDoS(FYCl zVK6sNhQ8l#?24-zVC?D_*tHS6s-A}y$0kBv9oVq~J9vqLi;@#K$;Js@^sQbCZgmMI zuG6&zXY{l)TAlX_9FQA@+It$!2hG>0N}!+x9=zUN+>>_3x!{bc=vKpSCsfEC&b_L( zzRI*7_k7qK-e 94I}dT`>dJtt z%z&!~)Qt5AxQlD4S)KPWlnd-(AOtAJSr~#bpk7Q28b4sSWY|5(t0ioN40~%JZ2dle z4W=QixYKoB?~Tmt103kWdqs%%zp`CXskDIi;(+t-QCi)gOQGw^h}HxT)#=mO1Lt zv!P}Ms$m#tp%5gza307NqgkN!GiWM00_u w^!I&jf5%lmy3pm45> |vQLh!FVPO9?+&@p%2E}`?Vt9Q}JbFQS{9^dDuExfe>|Wh5#^kVS zTdX68b6~dO%35DybcLV4H<}OU_cragD44v_$^>oRtFSK+=eOR~dvRwwVZ$*c&hUOr zxer2@B_dSC_JtE{(y8-wC*_H2&1j%)Sz3ctS?<9Vlz~JZuL`Xna%@RUK5lmv)tc;y zjrNqyX-f8w_NHwHSD$v-mrD6}I3#!~-51aN>dNES!G<3m59GaX?LjAbPw==4e@E4P z^c)Q9L!tH#L+ZG`E?c(^B_~*OaU&78#8mCz#G0z-QO^4<`i6LpgyUcX%KW+MtoD^R z2US!>>)^rm-8>HBMB8f_ji_nH3GeNM3q6y)#XDR~ rCIH0|CaG#O#SbA?mDZ)2 zv~TR1C)o{Xd61z^*MabKBFVdN7qER71w|L*dA~!O9-ow!bljm$jZeiv@4%JG0OYwY z`FL=W)-l@GJYh`|$syea;gdN&O-PyJDfqRXU2iQtJ9Yj?RbJ%8yBVknB6wfK9ceL$ zdGmIM^vZZx`FkZ33iL_};i1nxiCQdSby39Ty*$)mJw(4l9z+3$6gWnHAdaS0=$+$m zTd>X?PcMu_xcp~CsG=L9_gQ%3@aR8|l!~oX&x9HnqVM>3AdLU8qFSkV3+1XB&>m~g zuz3ywdb?JaRne@JzmHuwd|>)KIMc$xq7^ pA|>%AT@*{x!-a{A$?>Mj#7~3V{oX&eMI}iHOEN@bS!OipjPH<~P2=7%8 zcweB4R4#*CZzbmg*^9jkAn*__2K7C_hjB5;(K{JU?i+|%+U{(|^s^pz4y{3THYm7} z8~a9krQ$zOiBk!yhDSuRBJC+n%96i8Y1OuCJ2BjUowz O63jIr%0rHnvx@UkoPFAq +>PN7T+^VGce#54#{aiNEn zi2l0^T`KXIw=;+KpqUHTY_+Hhj(9m14HiDi<4c9IWyXpYN0-rHrlOoIJQ%`6k47~W zWs=S_6%9!%|6Zvu;h?~=&aQ#ynoVCvEfM`0d4I-4dNPr`jcVRAB15BJoIqB-Iv$xe z)>%UjJMeDRWKn s%OL2nt<|okTv2THBr||G2PA%Ki84uv=PzMtnbP*4( z -x>d?8;5m$CUBWvs^e6@H>|I+dpja-)%XJ>0eoyVOCaV zM>_I4*gd;qaC_FGdUoNWF#5kJp?35rEALP{u6O9&T#)ZkmYXB)i86PwUte=fRc>-K zmKm{lWx}fOk3;n>1zP(8Ehn--%Qgc*Tu_!0&XD@`p?AI8a6w`dK|< 2Wgi%B 1jY@eDM0*pL7@L#|ULV? B_oWt>5GP zB?0RrzH?OUQOddY*ZE7L;`|tl>WVG?%z~cL!>3kkSISpHS2_@<=I@Xh6c6s7Oo&S< zUIxS49;0ysfb$&_;3Y#0sP}FvweKjKDEASCmWZA9s83Z4uGHg mBGXQH>IgJg;5b zdEkat{ >z^0gZmv9H){HA?dSIX1C1%9wRZwep?U_Y;3DPzBHj*2J9y7S{yl34 zz!)=tt5ZCDj)MBYNB- 7ZnDTfFD>z2&OsxO93I|F*-0(W={d*Zg{s~zw_&+qS9^G!e1tX0(9xAx%EZDRX zrUp0z{op)8Z#xm9V5uDo0JM{;cFc}-I;yszxV^2igKhC;H4azLQuZY0iI|eB9T6T! zM0K{_wI 1H%t1qv|l9cACmUj(teP%? N!lHe^c!hk zC+&-*y zw!Z jcT4+PX}?0+zbx%DrF}1HA1UqjN&1DfUn%WhllD(a`$5vai?shq(yyicdTIZr zw0}n0mr48H(mqPs{UGVb(tee+e^J^$F74+?dyBOHS<-FN{v&Dsmb7 PYOwSp-fM|9XNG*X73a zBPJ~rGy9f6jnia@UO607g+tQ>(O(!Rq(2LyS57we38FvsppgD3h+fIZj<6F%e`=nw zPY^w`)S=l+9s0<{4sFC@hn~3<@>0mpLw+9eGRVsyzXACT$SWYPfV>LwD#&igZpa%T zZ-BfR@@B|b@i1Z= )mejJ@S^DNGm>}Od?p6?)8LG(&4QGq0gUOCZ_1ko$=4M`Baa)u!ZqE{9h zk|28J0z(o+Yu3Iun7x `UU70pgTZ!fPN49Jt)>n*bjpK1o{)|dIr@z z!}h$#NJkL8a+DznqE}8ZBti7bJVO#huYA~$1ko$!7?L1* c1^q-*r1pN=_e?UJ3{SXwFTy|ud`7!9np!J~jpxZ&WgYE&{19|}T z0O*gPKcb4K*_^26X@6^G8fgilW1nb0LG;Rd4M`Ba@_s`SM6Z0vkOa{yXB(0rdgY^r zB#55*7(zdW6e>Y0L7xJB3iJig7eHSFeGT+2(6>O}1$`HEHRx*4YS3!XO`w}Vw}Ng3 z#r3=$H{~;TgYE|14~h%%Of2=YA4647q5F $1ko$U8 o=#{@WBti7dG6XL}5*nxm`bW?|g8muw&!De@z6$y#=$oMb z2K_ha2cRE-dO$s(So~t&2)YFn_ro&32K^dz7w9ffAE*!XDCkjC_9QEdWA$D(E(C1^ zj@R+c^8TB1@QjZwrbwk?4<>lbxeDjpin*BGZF+3K^%hfB$_C}h_0ilZ?)xj{i74rC zb>p9G*>U^Lxkvd?DU2*oN;s* juN+sPaDQ~s#GfPspq;WDX689nhEX`y0 z_{_N5Yj#9zbVO{*O58w2w%%hC()|t6#U;KCcgU5(ds&eo7S%P KxC zkH2WYzm9%?)Chmng!OmLdHl8W`|IHMM~(1DO;~>)qbIdh-}Zigm-+osBm7Yl*54n_ z<1fbV4~)^i)Chmng!OmxdHf*>qrV_6!yh%mA2nh9ZO0MSR(%1I;SaDG{-_cDs0r&& zKaW2&qTvtCYWSl@_@gGQKQ4W2D?fBH!ymex;g1^OkD9Rl4qy~$%O4H`!ygU{!yh%m zA2nh9y?7pfI7khDk$!*F2!GUs^LJpF7+=DV2N*yMe;87X{HPKBs0rr}1KZ| eO5O%_RUa@Y{2H; zMu;OCuo>UDpbBx`fKgimsPfK<;4yS5(gp&BnHWP$ka~$d4v|Zt8EL`h-Xy3-fGZgf zu5d^yiw?&<)Het=22UtT?88}nGK*ss*Hfj&t`Sg_jE6#_V!?B){{hzDxKkUbeBgFu zIf{u{ZDN&})k=yEL>Azht^=-3VhD#ry9}2oF}P%j!}Qr5mo0IaLc0?b6tO^`fc+Ne z6R @oslmxxX)kpe?A%>}Olejm>_0{5rI$_CW?2~m68FO~FBNoPq~AnARQ zj+9iDl%1rMEmF#!vXsrTlpSOlxDm_POIENwR %zk-<+nP`ryxQRp%-E#a+++Nc|B@R$iy4)rc?Eh_A9D zzP2{+QaT12yp*Y@4mi7T0+MRSyZp|5jriL;{KeV^HSwexu}Mw*OphJ*kp+KLy9s|v zt1NowMx4_)cPUCaanfVE YOHq?Q zR}+l@ht{+NxHZ8aU=)UTJ@#wtLx8`u3efWRV)#>=IQ0C^_~Ss(5{3DzWv5uTAFWD> z>5*Z8BX#yoO2Y4ygkf!dQ!vFeyn%yirNaj#CnIEJ|W-61=3s1HN^s23iRECZ5~a z^SVBbAp<987@#>m=&|WWy6D=ait{7HLHH2gNF&sF*?y*@Bow472{VT)33Dea2@7## zzAw~?52PxIg~OG^M *41yy4=9_9p9BhdUtPglA>;l^+UQp))h9YKaD981rWlCUX&>%y7Cv6(v=n?UNS zQ89$Xq$<)W$$?QxE{sYZfKf>yj7lDXQAtb1T&*jH$1^Pz^Lr{xho_c`WzesznDdln z_HVJ1cA`)mYR~ Rp;S2`UG<%w8uC^kGVxjNN+@! zX+W3Rj4tC=5;GdnXByCFHlxqDnKhi?dn6T+{tz0;zy3gvy<)ZK-bR1<7n&BShk8aD zty~9s%nJ0FW#} >W5RQhg6acNmO9<^bn~0{iOR7{Mirok6$> Z4>dPfFKMEsH*n3Uwgq~rmZloZ0G BksT{ e|B(kg*+Z|%NHv%0Uo&Qtx zb);0nY~yCfV9=C_-pD*ff zfHefqUoM1aEb#1!{BA{lg9CU*1@OelJn)1p@#IzTufVh9!HdH)e7+LTLlVz#k?*I- z_oD!wBFlQQ-66Jnqb>!{T@Qq0cOE>?TnNujz_SPP!{jh?PykPJ08d Oi z6?pau&A83}89rZ$=Rt|*4&?g@@?8_aQ)F2$wmZajulZ8&{3FhV!<|r^+dofV2+xkd z^BUxLGx8f4z%x34CoYD8CuE5y?}GdaJip5i$+%5C!{;mUJRtGhj(k5xz8?ng6j|1b z?GCZs8+|EwT0^rtPyal1Av`+(RFiPIqVC8Njn$08gCU0Z+&hPoC`k3Ot{jdU1G$ z&sXBPU*h=<^2KC3b9Deuk!8Ku?hxC(?Jfn+qj@3Ood?g87sB&0;CU7DOGJJt0X*9W z@WdG>@PsV!g#2spygM}GHv4Dzd?lVfiRahIcO&xsAb_XHvR-U=i0$6?mxAZ3_n#ln z8!+1&=SwHf!87D+DF$eEM|KIwZa@Idm;jnF0!_#gO~}D$b`3pSGUh|$gb6235nl$M zH{rBo|CDfPhs>Yn=G#%}{ 4EwL@x^ h{ zS>nmNz`p{|?A(jPGkm@h&mSb7Un1Z2$oKsKo+8V7vE3oIdpleTp8uW{lHGam{P{w7 zMgz}o$nOT^cUu6@jsZMzQw4ZJmU!|m_^-gTd16S$ZT8Rb`AR(ZN<9CEd~1>Ke*<`m zEbGN~huH4zcqw>J3C-?2c>Z)DJk7wfEAop+e!R{%t~Wac@Wfqz;0amc$)^Cn0?+05 zT^yd_^ObmhFY){W`L090?*;G_S=Ni~4zb)DafzDGk3zp;Tb+(iRT`PXFc+*LB9V9;3=}K7uy|TyB9YWE`C1p z+#8bJdGI`TAv`02=jF)nI^@TDmPY^V9Kf@)z!S2>6Y{UYQwhzu&Eq|Mz7kLTLMrd! zOxlWktC8=!0X#*P^ ZL{KevV^g?(>Aipli?^@)S9Kcfv;EAVR=%0`! zo_q@S*`?oKsu~xPahrIC&sXBPOX9f&`FfD=zXN!REbGN~huH2_E(OnPL$eF*pLo8I zz6zUR8ytE%Rt^rss=={dhdv2^dp_*MkGSiHy(QULXPAMth1pnFn1eNix%eH5>=XR6 zGupdRbo069V}-dJC9yiOwRH}y@jQU`ZH5jX)qq!4qpi^Ai7KwM{r8u{rQJrh!Y&k{ zu~<(TjESgKEB}5pS=NtTOF08+?jxoxdVhYZJ{G_G(V{0_E7@Lks5zEH4#QH&u~-H< z2}>Z;oAj|~*kmYBl3fP~ux2v*JA}nr$y}_H%xKbb&eVk9M}JlHhb5LRzTn&M3p-1) zu?Dln5Bv&0f%d~H&Ge8|g3PgsGb1F67HfeM zN* `4#Seyu~_ap3BM0J>}T1&C{U7(b+Q>)8=H-F zu{l^1n|la8e-7KeA6>{F3S5f6^QG2iRzdZ{s@|~G!iwK>YjbY 5T?TrE@*;p!^f#t#3SQ?yzWx=@z5#y(@?Y)Nnu$nlmFYGMI#&Y9x{RGD6 z^QF>e7D4UXR_HdOwjQ6uq0m;{*}kn23s<+`_6 @#gF|`@Ujhz z{cO+w5PvLrPRBCmVOZik7R#F_;b(q_{m9uF_-CL*Nj4TnXJ9dOHWotXU=eig0XW4^ zr;54T7POut{X_c0(&_NNu(u=|i>t%>5$8+iP2~bvus#Ugc2&Yh4#GRU>3Qnjsz01t z>o)2t>{_E82HRHtTUw@78;ElLRtsvI5PN;>X?+;Fz-cY}jQ{-hUA7n2fv02b_b{yc z9*Z^KllH^YF@O7`L`gPQi)Ubkcs5pt=U`=cE`Ag_`&hX4Urm2lPafVE_LgL0#d%mi zqW#aC$_27u`?nc7d{neOy007$+Ct$xbq~QeT&>%vtFUX0b{K41`EO~NR&5~4`CBch zZ9?qzv8P1)p9*UKf3v-?G(H{6;fG-<{8%i5pX7t5qyF|siIQwApwGaf`D`qh&%t8( zTpwZ_4cGo3&>xoAhxdiOCD~YnAJ&g(|MRADfh^emZH5jXwRQW4Md3Vk55YHFt=p)p zuxpKW7;IblZ)urUZ6M0|TP>( ur#lu~hCF!2VGWO1%jKHeC@aVXU9J** z{WVN)WRV7J#%{)Dk{g?X71+#NhRxii*tA-&w2upg_Hn(`KCV~V$Ms74xL#==*DLMg zdZm4Gz0xbewd)U8=R`AZf}HCTNxH=i6H&9fGD2z=^qclv&slbAsR=6r`(v%<+^Y;g zfJTRV3>*B^>TkF{5vr9EAioOtHv;QB?OYh@U*CB$E79Xf+~kP(jBiL03p()&l33iB z|FlIs%X7we=O3~3-0Q%zJ!3Um@B+`4^_O~VUz%*$#V3G^7UJa+#@ai9g~OH6$TtZf zfFt>HN8)FQ83 |R?TB8fcW$FP{jGOIMN otMt|h1jWa%$%U>*!?M9_EE~+VVI^ZBHp5C} zEeq0c*Kk9G4GGUGuz{~5pMeASPUS3?ew7R-_cORhQpp_zSC~X@4>+zd#Z5 LC%xg3l@KU_8J%vx*WI zs1ek;%PAd(L}(YjLa7PTBg 4^OyUnt;tx*Z4^H9_PT~*l zBJkgSPT%q4&%_TCxlQmS@ZU+P9+JQxH #Q0{>4a?O;6O zzlIVQ%nAJ8rgRvR!2cymO^^)yml*g%Ht^@)XdC#8`d$M5J5w)=|7lbsWIY}5zX$kF zApQ>%|38G_A8kWz<@irt;*X_kvj2mV_=A)9gOm7!llX(X2>d6s>Ow8}Gw}mNZWBBS z{I^r8ha~X-n9>f$BmN&!;sQH?|34`mh9vNRkx~;R1ApDXAF_cz|A5@UU)1*!@Sk+| zh4DXyYJ{x61OA!7|6bz%5b=LB1pjtH_>-6TW2u|OADqM=oWviT#2=i*AKXRYzr9r# zYQdk0? B4W)WW0{=~vb}%0CUrmV%@&x{GQ92As;Qs=pCP)VUl?MKh4gC36 z?FRm$zL$Xi&cPSP|0JprvR)7P+kyXh;y;b}|2_o&_CffQm-u68oWviT#2=i*ADqM= zoWvj8Mc_Z7RTpZ(pNad3+$MMu_~S2}fj=aH|3*qX7?1dWK#2?Z1paSQIt)qR|7S`~ zkPQ4a1AoW{{^Aecc<$#B^}PiACk?tV{wGk4kQIKwUj_c-i2sAce_jawF+uo~m-u5T zox~rU#2=i*ADqM=oWvj8Mc}`^RTpZ(pNV^k+$MMu_-~_B4@uy^fzl4fBmS!>alxO! z{|!oqAqo8PWBI@zl7atX1AoW{{`~D6qyLNgUIP9*@w Rs$4+8&m;6Il5<1#B@*xV5OI|SiRUgD3XdJ=zd5`S &!|SodPCr!2K>hm|9s+K9D;wxApFTo{IRr8;tx*Z4^H9_ zPT~(v;t%d3@So7C3$@_S#P<@pP4Fb}{~x7#NCN*_N;?>j`2Uv@7a$7!|3>LBB!U04 zl$szJ_*WSCLpJc|&m$T5i~3#y{*!LM0RC8aH0&qT!;Gu 6Er{!xTKkMPe4fj>3~e)1B2EFF~agOl)slkkI+@Pm`^gKL4m z?fXBix=>61XX1N^+$MMu_~WNzfIlRGKNhn9f5s#J|DnVMjspL`QaTJt;QutGCP)VU zP6L0)2LAjxDFc5|-%G%M5`OOeLiis;HA2=u0{ OJkPZC#8&?MYqP~}a|IXwK<9`&@2w5)){H?%$1o59j{QoZm ze LW;QuP6!;l32f27m|$-uwNz#p=KKYw=1z+cq&67Zjt)E54@&)-=Lx4a3D z2O4qwAqM^kgC5)M4;DU4cm!`P+QQ#@C_80}!wuiZ|Bl ^^vXi_a zsyy~5Z1G#%6quR(Q~d7Y&u;M7H~g6drTZe|M-vuNl0}fw#Uu%w@cir|ek~z5L&eE^ z7lEw!a~^mc5Yy_Y5YHpTZ+#$_bo_*fc>2PpKK8_u#?u!)w&eHWTjh1s_hMSb_%Q$z zehdIXhVkLrSUy~v#D{AIe7H7~57*}M;o8EbKiZH;snIUkjcAFS25fRSvrXLC6t2ML zk!9GFEX67Ez6|m71JA}v=PU_s6F&b6)IO+9#L{E539><(7}6q2Ep2jfDY8Y7UkURo zVSXjduY~!PFuxL!UrA7YWg#aScu903o8-1zLl2at$CSqOQalmQC?$udjU^dE2YgC0 zmQe?|N-|cE19~MHcw0teI>5xQGmvW_*Fdh3T%&(op8xq6_B_tx8ao$}vSb-cmXZ4- zxj&M7mE5c3_^dzU-{d^xJmj{J+d^&^HiWDsV;45r=fuN`0jwGr#x=cI8z9zD^GLz+ zigFSY%pd1C5939o^!XUwJx1;+a!-+ajofSGxb`IDU2@gr@Me<6^sVH!lG}}qk yJ|CV3!gvuWeU{UEIk{)ZJwxtwa<7x)V!Mp@$gLx{j@%dIz99EK zHby?*Ll-umpRgbR&Gi#k1hDTt&g%daUPMYC74%j??pborlKUIEzmenO&W!((t0h-U z?tkR|M{X}RM*O|dg^mBS5&!2vd|n5l@FG(Bc%0rIC-*0Ee fCnKo>UtaU=fmKz!Z@K;cEC^s$KE7Lj|7+;imqLGB;qxEMWSCAm6s zb>zMx_Z7K)*ckEmK^HcDlM%lu5TEyfP <9f1;)#Nsj z+eGdga^H~KkBt$3KXl>ZhpvZ0@y9urqVOV8`q1f3C-)+`7s>sT+&{^2J!8g) F p@ZcaXtq`;YFnM;i5MextGbkOzvOg{zZ<9u`@m*_bItg z$$d-iTXKi6G2$PB?%ennT5k;V$N5|s#*0Yl^9g!?g4|!o{e|2+ )ToO48ISaWs za&h3=foU(s_w*9#O1QU>Tp_t!a=GNP$z_wfo7~;x`jG2Gt{1sp Z=Q&O-|{O28* z|J$p2XUr$
!ECXpLPZWy_{$lXP*H@V*AeoOAR ^+|A@}CU*_FYshuPM#Sp~RdBp0BOWfxB%Y7b=26-_ zMD8JS_maDpTqe0pa(9xuliW?@ZX$OzxvR-_z(&OD09A0jNF!ckAl~n3^LyG%BR7rQ zcyi;(*~!_-rI1S@mq;#=+*RbRB6k@!BHm?C1;>jp;^A#YvVQYuGmkb8l6#QcICA62 zspM301IP^^mq0FoTz7Ka$;DtJ;>AD}6z>XEyRzl)tyuCA+B`z;0dfzJ%ORITE`wYK zxjV?+LGDI!H ?ZZtU?IUBkD Mp)b3eKJ$&Dm8lH3q-L&)_d*O%ON wl9pmqQJKid2sZKjZ$LT&`P5#+4otmKl(C6l|B+_mJokn2J& z0vi!80;-mH?_aU_O7SLgV-aiM{e1iZb5(mryz^Dnj5mPth1kn*(ddBu2B=MWe_N)@ z{4!WB4ed>G^EMT41n&cDyjDy}oOe`7oV80yd~l1BIN75lj{CQgIQ&&5QT?Nmm|BL{ z{#mu-X%&Z*@=6#x2Tz}D!3$J|sjk5 !N=rja0o;%z c=%#b0m_$+r?4XqQ0i`vknaAKLQP zdKCfxKkO*St=d=UE@+YB8?DY?B9wCWF;rxs1=VtU^YFqLfXFQ5i@j@{gL_WGPSKql zEQRhALk&LOdY0Fs*F3~pvOBe>JALp!p|Ixx?byWO*d@BtR}&2**`0cR4B03XEz4AF z7u~6w?@4%(-RYRO524mPX%)>2N6TJ>W!gx({M=sjOnfPK;RrK&(KG&Dbaks<)Pae+ zVxyooaM&g6J_iQ5c%uvunchnvGJ;YlB6zjnhhtDH*KI1wsQLgH-OD6f6>|-C#{;7( zhC=t79@72Zgx{9#H-S;K8oU^@C=Ia}!!FSM)<>DV9gXhx$!|sHn`mTse{d LI-*~*mxr%)ymeger1AHT<0*j+?``n!7q3|K#)cHZ`utHCAhk37 z+{$ZsO|w_KFaDtBh;PIT)_+RvdmJxL_TmjsZrlR5I?tes)`AnSBvoFsYMZT^$Lef| z&^{mLGN+-RU>tR;&JE_KYEvl$CC$w@4Ldi+KmiRD9o)Is#&MZivg$s_o8A7NL&J zQqrokv>Lnf<5ZzALxDfXTd$UV27jieIuS!jTc7%V1P#kJnV@N^ QgA3X53w&*UXz(2-Qynm#^0=YL|Gg{O*N JcZ88f^Lyzj8Z-qAyK&q{P_Ha2(8+=yPfk?JEbC*85sbf5k%p*piD|7K+G 1W*Q@9tq$7t&VAjT&E1Q8Fqpa;Ma48_@3@(nr3%aH8ycV<%#Bj94cnHo zXj0J!MGGK7lc-gUs8xhX{SX><1(RAu&Vnyux^3Dv8356ss5SzpVt1eg@eA;29{$i= zslDSi;m>4-ss+vnp^T)%_4bY@j3TL!>fn1Y4bgsqb~2@k0v5a;8oSWnL?)gr`mSb% z?7B8>gU8#+inpHJ& dNx=+p6N_YpP~lrPf*9%upL)*1D+L#D?LcMvPp=2+C_I6PFcVnKI_};>%OA-YAZ( zOFKyasy=3$7J2XZ3FF|uAChIe8dCX8PX=DRIlkwhh~nbX z-3{*j(aQT<@w#pE5WT$T4(v= Ux$h@l&;DH^Z;0)v;*+ z7Nu3}(HtH_;29LLFl$ic!oGu|7G4=Bk(vYq`vbuNKyXlt+5&Yv)Co}E(xQ%ox+~P( zq3%IwmG?y&A8-t`YW4W*HM?g|r1O+$XNQvgb-(5;yz=^q)7Wp*#;maOmGBcA99q8H zq0PYW TPCaSUqja1H(k zX6>PsU7JdGw^!ajrdAv;nxs0 fv1%vcSC2>$E?6HdTKJ9qlY H5`Eo62&aG*D$@)gClP^6V zgx-l*HQ0mUOesGq0Ek{md4Oqd-%;{}N1M1q8}q%E_R|Ce{~qHs%9)E|tgG3(4|KGa z?dCvk_3X!DjOYqj>!u3#-0m26=0mVzigk6H3ocE^>d)o)4aaV?Sm<)=z|EpmfhdJ) zcbgni>fVr2!vm! UoV>$efhnBDXLnF?gA#tW8HFM%L%BP z$6HKVbOd*5u~)!{?{|O(W9%wxanXbMGmECFuK)7MkgBD})ungOvu4>AkL{t2ou_JZ zXBpig&8w$1hVKYziw9Qlxq?#hIbhM#mJCcQS1NcCq^B(%n1&;2CHT6uZ3v2iqu4Dy zy7jbeVLbxu@*r&M(i&h`3d;@Ba)X}M5Z1EnBUYmwO3zNOOItxk)&9$)Saxc%dfJMx z#>&dH#{j7o{qZ=9X^U5jt^>7c-5PMI1oA%+)s=r@!o-@ov@eiR_&M$i*3y{czQ7!Z zZgw9GeNUnP198{H_kw0RZ36DV4t-Cp8@fi!aie-@zhR>O`R!#~cr+LHOnH{ad~vrF z7ypEs6WwM3r9NhrG0`DN(|ydY+fN{R+GaiLJxp|3JI-;pp=@2n5*%U78FSq8U@^ya zhc66#%hHU2o6{UsRV;Oh(;S@})0{gEfAgF7EEWCmH}eaYsTEt5C*FlijI~QK);`aW zsg-MDnMLa2)1`ZQmY$9%ek8SYUqh<<2>wdu{bsvopV_9r9s3fBC@Wuz<;A 33k+`|<<$Hl-=cf3|uK zcd%;n@4$S0-yNOOwElOf&A5E=#Hj _@=U7eN&!en?o_TbQ62B%^&eCZ 5 zS+NwNF7}5VLlB1sHVn$X7@WO}8Su2w)OZebE!!g|#;={HF)@B`6y!_(fCkR`y=G(L z#1*z;?YO~tvK=lUKK8Bof7<&N_^7ID@104AF~SfOZB%TJHQ3;Vkc0pOf=-f2NFa}C z9vBflnaoU*(aB7lM+|&^x6vp+sJ!as+Su!D)7EP2r7f*WskSx+N~s@~)LNu1RqUsh ztM=Zs*ZR?C?tksQ_Pm&(_I3OFe&xWbTJ=Vz-}|#j>Hqr{ z&2*#1i{6pjb`<>7UF|6C&*u~^dj38~(VQ{6W2WQRkI@2arsIuw4rE1_VV@{6Yv$+Y z6y29oG{;C8ucS=Vuo|-9-#y&1n$~W0Qll-i*zz12OgxQl+Hc#CxCedxr ;6@rEs)qLX#o7EG-$V1aW_69JA7Ek=qa8@Ak8gjW#O7fsX+zh!Hf_ZoKH>bJa8 z_l@6W*Kc|8)c0D^V3DRdWj~_%Lc^9{H*9&wvE@H2r)Hn18$OU#x9rUjzE!inD6j55 ze^EiheV!tm`{ge(8t#h}6*t^>XHjY0@Ijm2a>kC-tZMYW*k#JEyRV?^oqvC}ZEC9Q z`8R*5_M_!|rx~s+6k=^ o;Tm`3C%baeuymNzjEh zsji>*{@=|{o__T@ mCILp zY>6S<@n6=yONA{I0O0$J;j$lfMHv**S=4jz%cLZe-SQqn;BY()NIag$)!5 ziYu{bgy{431w$JYm?%hkDc{}RI})=^aO`S~`XfGBpw;b;$_0(idSk6O6h=0Sn@~;j zjYjzwB_3Yb6!gI6fYD7Dwlv>pbA@lyjPShWMoh21Sr`pN-NK%zHyl~m?~QB-1;Y#5 zLM~qbHo8#dI=s-~?TYp+bVsWiDqBsNBt%#ej7C_^ XMYim#^tu^Fi7|=z;Z{-`13KQ=DONtN>uY!nhHan}E+CZxt8rvH_ z==dP8O4Ma-*^+9KuUy+9S{yA+4&2u^R*I^|deN{>iio;~8qw0$NMU50po`1Or3$g8 zsk*6N$pfnul@8L=T2li>DqKC(EtYb%?F|h#8ud-hEsmNN!`aeYUDMjy+`{2%S~wlh z cfnNyz>CaD19S8p~_=mwi41Ndr zh2Wpw4IcRWz#jpB1pE>3i@`tjS%d|D4E)XD_k!OGelPf^#~=g#2>65GcYt3EelhsP z;O_%}5d04CZQvJze+qdxg*==>9tOd;fnNyzX{7Nu@-PPe82Dr0+rU4KG#o}6$G{%} zzZd*o@O!~O{U~to2f^ H64b^?R^VaOLkw)dmZ3Hdz8cKi$YkUtIix=%nS TWUqt!JY=tf z`wrx8f%^~0{Ue+e?&FXxfqMqBO>i$kE&%s?$ZdzKfO{CS6>tY3+XnY4 ?j_`!(b~40jpaXCb>B?pesLgL?yV z8{rJNosc!)_CVGSHv!pBxJk$j!4<%bLbeoc9I{ThlaT9&y990%WG{hx1hPxu4ncM; z-0P4VfXjt@0J2xZ?S*VD+%d>?!%c^~6SC9c9)j$AxUWLC0qz9k{BXa8+*Y_baJwP9 z0`3Up*27ugLXfq<-4EIK!+i;|RdCNkwhQhTkh>f1Lby*swj6Fh <5U &1+mQ9Zy#QGU+zXK3 z2-#ml_ExwzAbTs^8<4#f?hVM^3ik$NZ-sjUvg_cUh3s;;XCdDY`ANuj!kvU{C)`QM zcEX*6Y$x1F$acb=gsc;89I~ZwTk!|jFqddQ!EYy;d8$Tq+ofoucZ5y&>c9f52E+!4sGfZGk(IdHon-vasPAzKBv zAF@?&`ypEew;!@qaQh)!1-Bov<#3;Z?1gZjf_xq14@1@lw-2&5xP6ed!R>>r4Q?M~ zZE*V_TMRb>**v%r$lD;l53 +^+Xo7H+tZ+sw><+2 zdD}NYA#Xbf3VGYNKp}5?c52EOa+`hOo)Wh!B4~nC9Snpcu0X`-4+Z;OJ!%>xXO%Rg zG{VuYaKsmh(zI&ca)hsKZfUH<=-5)z*51;DE$oKoD)OISzo;CGk3r)~T7wLV^IH|* zQGkcW&hu+2Ot(b3$zQ*uf&wp(%h4^#N`?nMEl;;f2eINhsxY$;dojuM7%rZn3N ha3Svz)b>auSKj6DE}Mp5lv#3442J z{%eMP8@ HV&9mGvs-oT9-jESQ;f10BBj|QVLm@Bb%UFE5A?qFV z$q8+}tU|wUqq0(*NsPr&SI}?tV!h#q2DQK_F=W-FkUd^ml1*)nh6bZA=!s&HKqcB8 zj0R8|EfIgUt3MJAdC>|~WkmySxq^s=qJ?B2;_>@S;81?85tsY68(jX|3?J&0myJlH zt1Cb&MZbT;8PSWHLASSGs)Y=u@L`1aL_?U!8)$p(+l)J)4?e1&R$os53l$V(ENnWA zmff(Ge$iULs=l2B= zxi8X-yRK;94j)<(tP4vIL)vr~C9a#x1WWqJ2G|y!%NDoHGo17YA=*c`jkMmAHjRp* zHK7cYQ00g-CYN9cGUisq+G8|fsa21jC=`|DPaTh3ooAMlixAXK8kwZ_-`0zQM5H|- zS04&GEDfM5>hnh^t7LDe;SIrP2*wnSc>C~vS{0cGwbYhqU_l#pR*dRiFG`{oYhD-& znI$$ILO!|vl`ZHG%1}S6`-b#dQAV;DK^rQYR)L)L`Xlp*E{XcRSmB?U>6F;gCvv$# zZ8|CMWT#zTszaEKM_LoQ7=~1*ix#UopM*G!8(?g~JHkeX(^yimpvxCAYCPznkx*Vo z8|9^?iwqQXz 8x#Ly(ub}uK#c;84DC6HKCh2EYjkG;!{y-`M#Gc( 7k@f<)OOVQvn-6zSDjU=XVqYT3CjSch=Nq)KA`^pMmC7bZQqGcM$DYhzK7Zx& z4Qz$XH{=%1d;>c;^9^j_$OK_O=4`1svmXD_>7xNNVJt`~jdvBl90Xiw@IFkAsUxD% zLX8x1q@qb%;s8h0j&Tz+Y9b*F7zxp|!?-X(@dXm3(3klze1 _RnaBC@RX&*?Vc{&)V@Oc7Yhfvl_ZAA}h-d+RJ{z=sFLtnq8%C<= Y#&dB$4Nlh+@e(hsM^i0N`5?J>dnL+IobUG1a@uZ-xv<`? z-Cmp_qH}he-tO#NUgzvq6@<1wviCp5ZnMz8) QuF7Kx$^{*Ej5{&&>8oN_B z7v*P(NuxxsH5QkY=9fgUGvbXH;XZTG;`|cK!a`Vyt9^_m74*0hqUYL8N tGjAx% v6)r*i(YW&`$+&4Ytu-5)9qkP@X1znC zc=21B%d@YYj) |DxeR;3 z7#}A RbsupgTcFK?|;f9?(h9Ny4v(9t`e#?9c=1tj4n> z(9$|QUqUBX18N6d584SD038DTGUzC1ZatnSfEu7DLH`jH6H0Lc)BycCs2#LmHRM6B z0UZKu1|0?633`%fE7Ai)8U-ylAL#)t1w9Gc0b0<8asllJ-3&SbItuD+M}9y@K_@^9 z)}nksJ3(o4d>ph8bON*#^dx8<=p<+-=+FPDJ=R?8}4h3?Y6@)H)wRIf5G4cejH& zzm0u=n!p`_{B+=;$3g9&y?8gO6VC-EK@B`V=(GaI^QH;VNl+W!a}; 34 B3!Jk4P(?aQ|o*IErQ zpm4P{ujT@9Dy1d>q)A;4koibY!4f<-V|_bF-}dYptFbL-wY7LF>D!cBX|)ZX=de00 zPOGibT3Tr>uCf|cQa{v@o(S~RLC?K0Jz%q*s+gX7t>>0>dZ_H_R~0*<=jmiUhz`H6 zBRz F0~mUjf{PKH(tMPtA0^ zs8x__84#-qW?BXY3#^ub{`#5O10A^qGb{tW1=B49os|XImH}t>N3#&P5f-NG;!fxp zM_+ s#rR=ef#`~(ZAq=o`< zxK|-}8gd^c0CL+bDDSP=sO3#LsGi|z7FdC?###s)M-|mvP^lCt15k=&{iAPlqK}(R z`35tw{$;(%@~)=xwwykr<|%U3Mk3HtjJ|OM=~8-R{mXib>tQ<@%F6zbC0z|kb<)lc zLf;_z){{9}U)(O^cEI{}W@R^L!xGLkO_|X-P%#^N@~Wn$ Lg>5G8> zDe&he%6G=)cY*&X_$w3ngK<8=SsR_yU!N}~F13?ifKC1ObhsjThf3{);^C+wB8QCD zT95-<5z})~r#aN67Gzs(b7l-pA+a-# }`1Dog6GN10!$g>`ur1HdRj{Z<3!5JQ+t#KHh0+yi_Bcqi`lMfjb-Po}|l z0WV&IIf@PpO5t|{-w8Z%zl-pLzz+lOPYHhlxY2NC__u*~0Pjo*Kb_`2zzb6FBH$xw z@D;#!ror2QZ%)DQgib$j(TI4-24(+^es5bg`n~NrtE>}wmcWkO*5UIu v zx CXCy|kVV}T-j%Ix zjJtExP4PX`)J^HVxw0p)+BTo3ZtPp~a$u9<+l(JpwDg-Sd5~4@SG4dOiWZD3N@hjr zIfC@q|5E9Ju0JO|_dt9-rXUk|m&U+&qswR5qVk6MN6t~SgCojYpt?(I9_Mh_0zRhh zXXVSKKxTPJqs_s+ih#ZQu|}eFU_7pt{eS3C pIe~A4Qmi(L9kF781-^qU3EF%6W`)Nr*{wLT^Yd`WI zWIvYB(tm>ew2UMEY4+2aiQ>%rt{s1|5d}y7Iqb(2UHTpDr!^Syd)ZHqO~}8C{j^s? z{=@92_m;^2D*G>F|D5OTxD( &VLxqM5MLa#(_i^s z4f!8t{-wB=^310_Nb( x+VNM2e}E(ZIQ!?be~`m3V1MUvJMQrE7aWD(!~BKp7eBD$PJIHE_@|g( zhI{hQ`Mw>0g(!z3zn#M`V*e=nE7))R(2hGH7Q<2a^(?=H{X5yel>K|yPw#n9_;HqB z#{L(WznuN{AK7sy#I I-yJA8riQ~yNQSdLv%>Tl?JiUp~^p{r04aWPX(I9Xym*CioNwm8l5vpFF3 zdvv`=5m9iVUEXPYXqNI*e@NF(MPl3kI{x2JO$CW%aCr3V(y!BjEq>|0yTHyG{x)QD zo+^)%mnoVl6-G{a{t~XwTBd86b~7Ddx{2unOdnyom+2v<$C$p(^c|+Tg{qt`VR|*w zB}{9Xu4UTIbb#q5rVlWEgy~+UhnOB?`a08hnC4!}@iV=e=@O>3OxH5)W;(!h6VnHn zKEiY_(?d*;F@2rsJ4|yg @w5<6 z9?bvR$O}TuGUwm%COX%Z Y_r-=;=MV z?34H`%=T%YcpnDi_Cx!A`qfq;$|h{KhcH zxHM!ZkgMAy9=G;tefxu?kH&8>mPGGg@;a$f7N#R4>sX( z(=|_iy&d&Ccl9rJeeqiCs~`QzmZPwvpMInD?R!zb-IsoEo&O_3Y=}HvzJ5FU&&I5l zYzziBb^mVQ=7T~!yY`s}UqqigqkqLCA45WRx!sS@*BxfwVym;G{sWuZ=gi(L#4804 z+8%fl<461cHUBk?cV7SX_l<)`@t*zGmCY+kVL!LNH1yg}FuspHy8oj4g;;t+^h1wc zgy+#)r#<`R1b*N4{Mzqc`CIhQ?<;F)z~t-iJ^w}DqFTrE(8G$_n66;zU|Pr2$+V5> zdZr$xex?zocQU<)=~kvAOdn$UFw-%ndze1KbRW}krU#iGW;(%C=jR0bUuF6h(@CbM zndW_4<=bF7pQ(+hgJ~Vp2BsZMJxr+#(_QGwVso-|{J%7ob=Q#m*0t7~b(hF0pfudA z=}=aoW)jZ)1nAGYwcI_F)tN>Ea50ny*O29Ifu8`NJ>$nGxFc$zi8SyWqSCJ?Us@=E zN e(!V#r% zAd38FlRo4V)FKS2Cz}@8vYZs2O_O2pbBGU`eQ+WB?J`_$Y_g2_{?-@OPhz$Gq58^# zeUKRtB{`x7Q# Ie2Zgvg1ah7_gx({@Z03AfxMvLzqwf$hM;^{nLYf{)~h zs`^*$fczv+^{?zl;?f?H?IMfnJ@v|_c=ci|m3hwpcUuC|eqc|MQa?-fMGY*&1-`aB zX^+yM*nm^yz|ZD>E1UbR>~!|2#SlJ+!{=~#*^g=dAEJ=YrE_y6tz+8xhot_Nd=x%4 zcsqyzmvXJDu3l~wuWD+aXH=9_lq|)s?aRtb7nR|s>@D~ie;s}gE%60qws|5c@UoI} zvB2Z)cHs+n__gYC{>3W&-ctV_Q~y3Q_KQvVv)6w7HZvIUmQ+^NFNnB$*w+(?me7xE zJqvsuQPS%Q_lgqFh5&Ra8VQLK3d6r>O7fWCg}i nCc@TCMCt&Yj)$C5ni*`gJ`r*l(-}K zhzZiB$gOTLNjD_~(a1#8S5lDBAfm^g5}76ye;2+%S%RMg( QzK2`q1z^Gg) zeRS#l*gW3w)bS{;N~^vndM{j}yutf(2FrI+rV}n*?|NvU{3Xf{U1pb|hb~h>9giuh z|7tnye*ia$@_PUH_yHBdssl3B@oV@Y+>pF3e{s;RSO*p9Oep|E!Lh#&<1SHN|BkHl zgbGqj55^KMUH%&S0&WuJH@{|=tj({f5Os>g{-(;0gOeyf!SWL -;Yz|#VNZAeoB#h^v1sO#_W&1;-|QwG{w!t#VnQ5VjYlaYW}f> zlq6q_FE-OvEYUOHJ5QDWWs1Cw2JDk zAXM+G8}fxz5$i`|?UO}yJ1BrW{>RF1h@WQ+ #boE-U)nEG^2O8QVd>6D_KJB3Mj=a6 za4k>cL*k{hDjCA5o7HhAhP$8RFV_OhO!3ONQ<{hjS!bw_9o!FI2{Z(!%T0GH)IFq& ze{`vm-=Zs8YK^Cxy=NtAL1{lDOg4HuJx@qvW+Nqf{7=SnV$b1{@oBN=Z^?MB(Bp72 zexA_dYcie}doGrYpD*-yn2hJgp2H>M7sSS|WPG~N<5Ds{L+J4)8MnrsLnh-h@j&06 z2+4a|!03KIk(mwa(*1cdexcC)bTWRC(EV>RJ{u3Z?TL`Q&z4U$U1{)3(Ep{w--GWH zq{9o*Po%>yjrB)~kz|X@gzjgO@ylb+QF_!UC8_hdYE)KYeD5i`VYo*(G& z)P8fs&!@Cs(>b`wN>e`9Nc_z5u}S>Q@~Ht%@lK?~OY=s;3of_gE`IglmT+eZJ`6ky zPr-G5vsmPQ#_PD>)BVFJaMClLq9;>+cS}7N3nQf-zasJ3V(6E4+{LeN;Wi6TwNvfk zd%!8)(F68)VBGyXT)J|e%z*zk15U$QIz9CJxpcVdhR r~bXZE;pOR SbhMrMgKHz7oN9RxMDj@&;G{RH7L(3Gdhr0t({}o~=C7s7P zeCqE8r#SrPl<-zeSSi0dQ}BhrrJZxUdj6p8XJ1Nw={pM4pA>NW()RWdiC-vQ=J2{4 zJ_($Dy|U+LDqrNI>kGismCrL$&lO^X)2Zis6B3^(jKg**uj73!gPvbxz%7_ZW#Lzu zqtjhd548unE|l}DpC|pchVaW7=U@cM>ng^zU( UWzV<+a(?!zb0S@blu5%a#Hkc(|Wj^VFdDeP~(LvUX6bmc)E1% z1y1%;`X#%RH#ni+&k+7q)-Nts`jr$;UzPYAVQ@P21ThZ=K>GFjpn4zVLf~Z2cGjcI z=Y7D_rL# HRTrcr6$9*qwk!Cy{$bfH=dd{2=d;<7|IuQx< zaf#0m4cxElFh>~Qv%)Sz>;B;t!Ywm|{R;}0zuiQL$qf4GH)t24JSSPtkkp3vx)|?Y zsq}QR{VbL^2TCB<6OMRG_p9*Qu5Zc^K9~WINF4P$N9kG5aeP?gS1P=n@y`G+z&uCK z9~hRuO{Vk|Xgg%aA=WctS9 g= z`7oqeu+LF$Um7=n>pG3cD#W}D_)3Y-5Vx>B)Uy!%#(9=yj+mdKKa@ewrVRK)tUvYl z`k!Q6EVs)TJ2~F540^uC;qCKO_>-LBA2R+9r(ciPr-0A0T!Qr~_cN^jml^cuV}VHJ z*~#r4!Q^!*aI$AnWS9Pz6)egbx4%!}8yRnudeHypC--kR%J3X0f%LJSp{tahF!MH$ z9?KQtR7yYmU