From 5e0ae917d07740b9a06f3255591245acfcd9389e Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Mon, 13 Jul 2020 22:21:26 -0700 Subject: [PATCH] 6645 - heap allocations in Mu - allocate var - populate var, n Both rely on the type of `var` to compute the size of the allocation. No need to repeat the name of the type like in C, C++ or Java. --- 308allocate-array.subx | 19 +++ apps/mu | Bin 347319 -> 352146 bytes apps/mu.subx | 305 ++++++++++++++++++++++++++++++++++++++++- mu.md | 16 +++ mu_instructions | 8 ++ 5 files changed, 346 insertions(+), 2 deletions(-) create mode 100644 308allocate-array.subx diff --git a/308allocate-array.subx b/308allocate-array.subx new file mode 100644 index 00000000..7040106c --- /dev/null +++ b/308allocate-array.subx @@ -0,0 +1,19 @@ +# 2-arg version of allocate-array. + +allocate-array2: # ad: (addr allocation-descriptor), elem-size: int, array-len: int, out: (addr handle array _) + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # . save registers + 50/push-eax + # + 8b/-> *(ebp+0xc) 0/r32/eax + f7 4/subop/multiply-into 0/r32/eax *(ebp+0x10) + (allocate-array *(ebp+8) %eax *(ebp+0x14)) +$allocate-array2:end: + # . restore registers + 58/pop-to-eax + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return diff --git a/apps/mu b/apps/mu index 156e04004371f4ec501f11d023668ef458c07094..2cfa2ea6cf9bf492a09728bdd3a59c5cb06b3924 100755 GIT binary patch literal 352146 zcmb@v2Xs}%_x_zg2mwNmbP$n_NReXby-7*vy(%0~5C{>aNoW$TK|mA)M3Ev2q9Q_& z-lRwokS0ix;=xE&>5~6E&$(ysdvC5^e`~$3YdJ8_XJ*fyJ>|?P32!!T*(5YHG{pTc zT}b*6$gu#7t%gcNM`(B z=Xkmh{2%V+$uMwWd~$mJu_HOm`zPuj7{4PK)NGr;vYSB zY)Ca3yN7{Rsrn(AEd+pxZF&`wurt!6j`e8QdOJ_!2v3j5=#%kztwyMWAlVZQPS^?4 zDHS}ea>P37U{NiE#SuG;n3|!BQM);=*x!s#7vd=l#oqszT`@iB*vT_Cf?e>$M<#ra z4y`x;ha@ARXVHhpMor5&tq6NJBERwLiTX{Oq}bCkQi;#V;HP9@jb1%X&(U$KIb0ur z#@-cwtX2>)Rxx%Cs_6d?YqFFbpk?2N2rpvnOU7L%Ry(XckS*A)sbvqT-DID#=^D6Y zvuoK*5FNX3`;@IEWiL`isI7Whwzp5&I4QeM%f6vytN4^%C1pKYcCD6;@F@$g=vv~1 zSPS#se!?iuuzNyxn-_jg^v&vb7sV4#M&d@nQ#e3oPem5lJm0B6p*aklpnVxR8XcnETOt;=;cV z38|NI$62JPVJdjb(6nQuRfILwjB%`;UYzk{fRdPDl1US;!dhap2sPs@?%JRj?d+aT z5gn7d=Z$Qa)IED-JG;Eu8=Y`F3%h7&Mo)I`B0hy8q)=!^E^T_0S`|i3OwuANkUne+!% zrkHoS6celNn8tSWFpQpTsjr1aw+^Z5ky7F|i z*9%D5{7#cFu4FFSv|%k}u8dYRI)A}z5{@0KF7m@Ptc?*2XVDD5|DW;v$+T|ug^B5E z(n5Zm=7%7kO`8~@O=SP?CWfJj#V}D$O@4;_1{n(LOXOE*{#!I*f@QXemG}O$7unFn z4Vc)&70p@kw`;;XE5hu)V##XM*c7g*?X@s@-zgMkSCzuvX>MkQvl=@@CJhhsq)Unn zH&@-HUXh-RNm1!NO~aCErH?)sSA-)NeIl-`*;G&Cnj3x6*`D*83+~xUTg@dGQ;rj0 zMBoK?68uDO>ExSd_#`%=JDrKu`*&AB6sZZJb zON?`UuLqxjoe+(L024U<7we1aC&^vD<)<*~LuWc$6>}Qbb&CZ<`~eSV~zQNLxjCa(cQ% z7@X8SKlb>XW{+>qKI6&|8Y;m%k7)Ge;$!d@qHT(^b1*I4>V zHL*!d#HxwyBGyuIH^hdGeC$T3T`m*ntP!5nKHMBf(VRJ_L}!dI;G8$i!q^*qJTA96 zZDfz$6CcLYhA9+c&Yy@^ub$3n!g5fH&Ws)SmphNV zbHFiMOwDF(>c+1FdW4xSh2@&$J?XU$GeNI(1iMhpY-0;fYm_b0S&KPp<~7;wdBe>YMh9#Yp^CmbjINF?SNi6W3W)ot``eG zau;W?c8ch8F#G|cGX~Rxn{BFQLz}rn`-Ym$D&jr~sud;Tw<;Ed=yai2@U~8K@-s3m z#X?qXtCNU5)of1@o2&Sewzc+F&~Uw~ZM`oRGOC4nYGH&}uzr%FXLP_$YSHFWRF6Qs zllVf4>x?TTh20q!W46@DyC;(xWr)NcAG*6ff)V1JVm*zDhdHO9+zHP^9+AbFZ=;Kd?UVy?xVt!8ihy3 zc$$Pce>ROsYLwCBGx85RnpJQ?3C$SVB&=6Yuj&6^EVZ9nHfB zbBPO&EVJESc|A2XG+b`!x$T$cuE8n$2v?GPn(vEnu}}+M8_;PBg&gsm&NT}qF%mI$ z#0_^Gtm#mfA))2ka<{O=!VGyPx&A&If42byW6)o7-+=BJCxuk!MMa3sU_ z?s^e;xM;DRuG-E#RB%F5Qrj^@7`Q()F}0l?D5XY>*&xi*IIP3}xj}rut=wmW(Cw5@ z^o)UVVV*o($aNyiJg`%Km#33>!oy8P4upH)Di)(%Bn5#*-<-qeQd7-|aAmGiMzD7l zGYN`m{!dh=*q&~2rXcUs^tlnZkCORca7hon8E}doFx!oH=cT<(ntu|tDBj@7DWH)h zx@wC{$z8!pj?$84P_l)%bC3he11>HoF$S2^wEd=7G1oB&Lqy=y5=h-ta<2&W%ns;o z+Z@z3VKv)Cjw#&9F2eywD3h9+1$>eV2iZz{%_40aIki#t9H~vidbu|fxI{+qcB7)b zQC7Eeg>>Tfo|tf!@np?o20C*yj!TPi<6Qkjms&T(V1fi<7l+a3q+eC-ab1+q{9C9+ zu@kQYv_C)^eXP-Dqvf^HnW(v48jaCLvClDN*=x3m7@N}#N@QwACnnYb)Z&C4Z2M2x zzkYKkYyuY@CoE&YYlG8g`j`S6nOmBK@q($g!< z+{0CjK02moVz01HKF@MfxK09-oyU2w`?-;zJn$HfO z7_7h%yUD?4r93F~ym+5my?5+SRC}}^r}?^KKex_^77($IIk$Ti?cpYn&gsbVfMHs5 zzr)d~gTNiNGa2w^c!rARj~y90AvMEi9$`jqv%^YcH+lP%X@<|mipyj$*kPMo<~#+* z$Z#ujda=oDKi>TSk3AgmL-qO)JWD~sG0e&tC}ZgBLkG8=!E&}1AEI66JkkyDAzFQ4 zB+F=?K5?Xy)FUU#Sw@=Xhkv2&W1oSEj_Z$#8jxx~9# z@7pXhr;{fc7o3Mb8Q@oJjCo1peU(8!r@=+6lNh_oC3p3BF9FGmf>o}?PP6iIt$g=l zVC6%>DyMQavGQ?LHVvDWze`g&q;(LteGWt!4fj?a8(5h-6ZADnTdb&+ngv!$ZWXM> z7_Hm^m7PFkNmF@Tu*$i$@)WIn@YldVtqNB8xNe*4wDQcr%CT*o%d96yQu`cXZDZ|c zOhBE(kUY*XWxSKkaIBd$+}uT(5*;GV72uA!287n;Gz_o58T~a`PQ;wfLs6k~sJAuvEi+XR^m zPiy5;hFdMnyMh>dXqw8MgH^twL(?0T@rp9WelAVrcY;;^Oe@buW%M}4zH>g%?ajd| zzoM0QqB7q7$Jp!BRK6Xoas{n?AC=7aBSUBw2hqc&O z+Gcqz#)&`XsoIQMf!gTLo8jfr`5m?4&Y1A>JUm!?P@QMHnP<`c2m@oR_BqTw$0{ya z?0B7HtQaUhj~SRh$a4_)MExA1x!7@TYJU8MPt>imrX?KSBjtw9d%%ClqbM4-u6oPZ zBBjPhq0)T4aYajzcKVcwv>U1`7)@N=%bQ~}t_RjD#`n~!BhZ7YoC;{mj_M`v>B~DV znyWqTI8e8QDdC*Q@Cu?{7%xGF#n^}ViWU|EZUV6nuF+V#bE-`2uvpU&SZZbau`%sEbJj6(yVT)f_V22Vl%mhsM^#=8xhgEM zUv{#hYd{$d@`RQ-X&wj)aa_VzMeZ$HrLA1)rfkTFNOS0lj)>397(0u(d|Njj4^R8Y zV}i+>ZP};87u#9*uF38y^Ueoe@Z@$r-DzjH<(k1&Bz0I=Y9;S;6~xb~Ynn^gj(OZR z#{P{hqFfrceGNNCDl)V*(iJ|NT4qyRA||~3^{IHJqvP%h8E7AP!BfO>x1;^aKkn!x z7V#hEY54z9N8LMa?5MFFLOQ)X@ zXAWXZ^G+ob7(O}9=6nrj!eicxM%eoB)@Kw#w|Vj;wa*jQwqtCJ{S&wI9LAD)XXox+ zd@aid_;lF9v`@U^GvC}$K9XVj*HCthwYzH=!`i#Cscg?aDPgQ)WQK9PYW;kQ4ip(P zy0U%fp*uaS*(k>KThVSH#jM?seWF@Q(LJCjiE36M{}R=RN_)*&(tLoI@%!+QCiPSP z_Kj4Ps@19|UhriQdj35y&)RnrTWToHz>{}cCg6@UjdCdk+=eK z`i!dCGhxWvnfB}qW`?I>nAO)bW46KbYy+-xU$$1Dbv&|29U5Wp5a_&!cYEu8y4IRs zyXCFfDPn9(JUcJRXXiaQhtMPE*?FBSZa2Jdoy-Z|JT#x$C~su_27Cb;zbUbGL}FgN zWp-k4LSpdiF}Jc4gMlXRJeRn`KJ!$>JHtFwGe?`zO~ECz=IK-tloc7Y(Dy zj?C5kbm_=Gz4oGzQ?s*1Zw^X+AsuNfx1rwXHB_T)YuJ2a>>rOJLfjvnZ_k`cl?_Ct z542L&PNtHPO{Mv1Dxtiz^rBWOhe}RM{R1oE=_uYq@DL5eXL1%! zsgxqo>CGn_JGi#+$;NH-$wvBVneoX+!v^L9QIz)HF8SWv_AspmJY%t5G+L}ZSqJZB zb?t{E0YONf7{tOfT4<;iX2Jqoh_MsXSokuCg>|$Lsunh@g{EmNoC{*%5-n`e*^#0a zG6Y)i*%>cbSv#};S~JQBUhjW69N7QL1_nm(d0J?w7HX-5#6SyvZTDi$Oj@%aYC6-R zO<>LBw+#$z8&Qt6ck^%aiO&POH9_3jV6<3!rViv*xZ`wa+>e35yb;909a?Ck z79OaDT4^kl=#n-h&loM%&Z-tF8^PpiX?>@~?nO^tvl80!>zP2*h( zX6qth^%+m$<-pKj=;l(;feJKjQEuPJHg@yg2_P z`Q#?SI>3v6KkWeX7kJU4kyhx-5b01@&<^3Xavo35u*6ek4*Q?gXWnopozGd_*~!Z$ zMkJI*8!_$LhHi^Z*vh}#`FO6x39U1>Z|5u&4+l6}$M^e>Ru7Z+KM$JQM&1!s*3;rdEtyO3YYG;f1rHzn~i^p0G2YN##`N{SF5Y zS326wjmyr|GTTm)`P3~jBlS_ZQG@JRGCp5tZjIsaz!5t6lH&C90>xa4cxL|LG9GmYj27#{lwi+Vg zv(k4nx9EKAFg4Jcnf;y2tu7uOjg4x{o4G;8s`spsv8}mvds%)gAkoA`@7|J&7_&ah z&u9F8>%{Jx%Ff9IeX>fL;+!#_?B({v+W+j6ezyTZUp#HXfPNL^_SrCRxV@&eF}oT& z$|hceA(Vxo?B-k)XefEX|H0?W+~#O-Nr1s-fd;vI@H3q-PZ8X{of@0fIsTd-k1-!J z-!O+>T{N5yKOI2FIduDAo?^Hhfqf><0^J0Tpd^-?_Y>VPdy}~fbcV@$j2)wPZ;Rbk zJkDW8`q*uxcJH|z6uU2}U9*Z~Vx7~U`AD>g>01e>Z?%gWgCm}BJ`>Hx*TN$**2c#s z=<^Bo*}G4$cNe%e+2z9B-7e==*H~yey<(vfDCF1MLwlsR^vZiEg2h1fmM zOGkjef9O^D>ooq(QM>;!n)#g3%;}6~W{xIenRYaDt81skwZ`gN;Aoyt<5j4iS9q;! zer$@nkU8@0iOV!CU-Z%V^z~By^d9h%v-j}dYKofJncZazrwn)2yru-FOqp%5_M-14 zn#uKoSDmC)oA_4kuT@RJV!fWht?Uzrm^#z)B|JpyBg~(8@irny!oy7XGa})kvjFO) z9PP$?yW|o6O&fz{7t*t?H29TI@rgh5doQ@_LDCK zuj&(!6ja3{L{#nIQ?+o8i z_Wn)#$Fdt*b^E$xr*ACH292BV*odU|IV0PeZwL6Neb$tAuJ>j3l*a@z5194RX4T1T zUe}c4TIUjc7Y$JCA!k$TW4Eu#Aoy0Mj5O^O9>c)U!Y&l%kD<7QAMJ4cbgy!3;9IT@ z*7-$R{f&D&=grkLt$rhhoL0lN)xy03Tb&|>{aUT7tu{g(x-v{#jfH5!6e4}CEry)J z&clBCJq3mFv`z}=kiveg?&V@*omJB6L++^PE32EIj>MI~X`~$YI#$?(3Q`KuU$H$P zpjb!F3;L~i3IBw71z*gV8j+=Tck_q&UZj4CT|aS;&s}7SG3s-qF|+Jj29uG$hZfN` z=60RH#**{*4y^lz)-7S6EU9#9>UKy|x3<>p>s$BxZ2_H3em6~BpGOz-QP;RkpQi=Z z{g=gorSxBmBOBK?M`AD9;Do8iD+7ad!fjaQK%}(p6!uvh8T%Luev9MW)_`t0b>?z` zvDLDu!&dk4P{vlPLqvC_)%V4aQ`l#5yq2cbfl}CSnikVmmrJYdrPZ|4)cFA%y15P& z@LEzl3JYw+*`ds5B%Gy@W|o#Q<#Fx3nYc$jM@hbEEcwq(W5|1-Y&~}Sg1Pz0mVn?T zm+c!^caqkvZlKKT{%PtCPgA#<)*X$y2sqj;8(236pRl{%HzzfT#8*^!Uo`oq>$o$` zd~USf&SG}nuem@NzXjP%ev#%m;xjeB1`bf%!R?yU0C{UJYK~M_ng4+2Y+Bxknm;39 zn;U~2?K`dKcYo-hc?rq8P~1;u;b%HiLyvfbhs8Z&J&= z<~c${Quik#J3F`6na$5S=A0U8ev<0Cc@8dj(!at5Y;pG6o7}KC&%tw>ymK1-m}`e_ zfZYKG&bc?wXM|uDzJW0tQnuS!S4Sd0(ZU0maR|`3YqAA z=*2djk|8gp@glP{V?76&)8C7f^{$hCUM%6Rz_nw_yHB0G-FCjTWVc_0Nt7@hD`!4) zT@Yx_eP!1%jK!EFn&&B)`)$on6J5K8_7NIa8yV*Pi3N&w<;(7K1mfW zIBLd}tNE z7K}S)QO-?c;qM?89?`uCFIXjNdr=|xl;3*CZPc##%5 zst*HU!Rf`3bpdg3eljeZdAS`|!mP$JdurqQF(N;nt@9()5!sv#Bb&2f_(#M&R~hBQZAXcOo{^5$Tbdu!$0S~*vm%C~}5ep)M=4=&x#A6pyH`Q*X_0tdjj z?el4Bal^f_pPQy~`(TxQK27bWmAj>>{C2R)KA)z}MrCKriUd~XJK*MFW{B#i*2cG+ ze3j+>#SZSf;N-2rTG*_C*`w}lG`A+so|b$uSgomA>v#2Qiq!IMGI)Z?AHXpm4|d35 z-rgP_TfAK-`%}HoEoz+YWEYjQ{k9bI#r#P|U60MDxPwmW)GDsuc0~^`TRiP2vsChPG z+)s5P=IjdE$WJ^TvF3Q#|5zHiyG6of&JFkp!}v%}NG9%PZ+-`j+3p|zhO*AizMLOA z!J>0iE#48A>a&+nA_61VgWtVI*!$(KC#6Uy`?$OiF<*l5i=q|(xDGfKd-ar$y%_2f zTo&5t-I7oK-1NeKU%kLp9P0$(nSkMRo(R*@SLpvf3Bql&Uc4_bydO)j>F&~$#X)T; z`Q*bvn#LG-oBo=+vc|tXkC$xv1X{f%O^*!T^aU0=?p+mZMqg(?JP|v1aCTpYgc=H zTJp)g|98{%0-C<4&xtIwI!l@k58m`pY0Bw!Z^lKH(3%9krO4zqsc~ey7e4 z9IeNusaQLsY0TLkd{Foxpg+ux?nPV_*{D9yshYAAU=!Td8lY)LHHV0ZD({ufos;M@--D-p z&S(4>fK%_}7j7XZ%Dqh9Y`y;-<-QEVBI9tHC=Vii$*6uB}|7~tpbmsOKyaFJW9EG=K&iRZ& zH0QR*99JXas^E)iJK~rdH1l<}`H_bx`(v&VxNE*j2n|pCF#~LR*MqehzHyiau5@cU z;l8=z{}}G0#zd@LnHLdU^Q_ab=|*cP%`%F2q2q7ni`p(Crw+@JIxN!Oe8_Fy%Kfq_ zSHUDP_GX>o_-PMk6;(GV)^=_P*S<6^fdkU_MM2%hnd?SpTMnBSlUfRw#8?KKsl;>EUUVyK9md`%KzZ z$@ju$G_j@WVKH%s&;IwUcmETUG41R@vR-^<$kXXtMWq~cX2_G~Q{>QaeDa^pOa=2( zEbd(JKBl));T9)D_s?Bloyl;~Jem0)YtQu9yW5!$QcAsItYEb45`1&XvF9k@%kNk_ zpU#vDDC!Pe6Sm3HZJ~Pyu7b$kft!86_05V$xw$5Zv1iM=YHNKAnI0_WA`0~2eXdQ8 z76=1K=*p^g~(nHa;XQ`Q7-3Tc#zA-gZxHuJa{Uo2T|(5Qz%;01Q2tn zfiz_`g6^G5fBp~%BJBnb82#LF+b3Q-DRw^ zyL>KtlDoTH`PmIwu-#=AeB*@5vfOppnNYJn{a+I*dA+F^xGl>DVD@I`4um7P4Q;q1 zn2ybGye~rcj$n#u%^6tl2*&*2x?^P+V#<{=NsJvMOI9z;rm=5yuqvRi+t_5R2oITbmyofkUe|UJPgI(vK+FkA;nwV;Bts1xn)iyH6+G@lC&JTg})YlToogS|lC!I;>t=L~G4rWDs zHrmB8-PMW*#8SbJ>(!L12|J%L8h@$Qza7^m@tz63b9ffZ=OR9fIq(pSvFOHAHv9aJ zX&h2Bk-WoG?YOKH9L!LrxRl{NB!*}HH*P6sc)nfiGdy*uJ)!pz){ zla1&e-u}l0StoHp<5a9Y`)@ZQ&dhz9>L9)GF9+Y2+gN| z!~b$4l)Tsof!i@0H0txCB(w1) zllO2XKAG`IOHNWj6_vK@2X~Fr8Ms+mL9|C$-^X*}dFNAvYVubPa z`H`t-8EuL^Q1VqIwBg*WAQsMRNb`{!f1fOutn({H@CwNJ7}S|J?t@@FEw)}amSXJ& zSKL0Z@BHTu;=5Z3ge8K(x|WA9A^;*J@x`p!gejN(%@X>&5;g1AT4+kz_1Qmejh~x* z3^!D}j)|nR3t0zIs-TuS#ZruaJ}vbKrJP^HPFop=!xsK(-(D!T${N)^WHv1C7qZn^ z3RhTrzn1EbQa%su2eA}eT&AUFpwvXQwUDLQ;&?5!6Qz1+seLTP7Q0F*owa;aZho_K zi!e{F(0!G*n#VkO84>fFWjfg_ZMP@&Q!e{_EA2d@`zL{f8&raY7Rdcs_@Nt}*`?yZlJw1Q#TGVG7E_ry}SK z3pmF@I2!8+&uAP@Nw=~HM+<03r0=jQ~VJgO+r_=+A;}PHbI(W2T@9;VeRtfIn zSK?wrQX}d9BtzWO5w{_{78f2bunqi$`NlUPMtn+ zPcPW7QyaP30y|~3gavx>E4O5yxaU+ax}cQ57YpV|XcvIuU)S*QVys|U-1>XyqVW8o zQTE7$jPR$I_gnT~V1~QQujc0(oESUTm4PPjTq5p#2*O_U>D%u`M>IWihvYtNwn=u88%tm^dGbW(jj!tauh;O^b|Ldi zkMYx_1)U#?^W`b$|LuoMEn^S!g@62-dOP)&{gy7ikk?J1_zd8tT{_S+0?sJ^`c1Wd zIn;;g)SI^bUO>I#}e0x^LroyRmZXGk6{6Uu)6v<_D*oam?i&5!|$o#(LNqm z3p9-H2{;&VHEB9$cph_7GC#{3_q=l+K>)*eZ^Z6wGo*-;hd#vlq4JcSscTB$;+^`Z z`3w4Hclyo^6hoJ^8SQjR{LM4TDfkugsTJ+4$!<83rb3F&8`sWls=EE=0oO`mMnj^N zyrxdPMN@a}t6!rqGKrzye+-N$F=NVSPQ>+xS#fwa1-<8+E5S!G^^Wy9BFSgK&hr_> zBXunstY*iqbA3;}X(AS-SG#X~M)uoxr4Qb>-98PQCXPxIy*Pq?Od`vWn z8QcEc4&ViL*u?TTbDCe`Wqz~jq~e$h<(8D-v~zNu6HEMMa6$&8&=V#RbJnckUsJ1s z*^Ab@j(cd4ccECF-X7bCgLg`A^Y$b4mfOX@7+v`Eo%uh+Y_Isc*_n4ZFD$J)LyB1+O5M>SdMhAe zc17ccV0+9@%etfEGLsEYffWH%9AzyBlpWu=1k zqZ2XbScuMO^rz{Y-k+UPw|VSBDR&&tt8&gMb5Imx$vZ;z)Y4U_)N(E54Qg*bdT@gJ zj89N~7Dt>^vaTC5&Y<-aF>PEM2($i{3gtyiTOp?~>ycD=^uD`krLAyYn3aB%>(UP* zrmgU$Fe|fEm?vV|3gd)XxuwED6?Ja3SFwwjB||Qswz6c%^Dk|!GNpsG zWquc)`Oi6G@^46VZLgO-&y#?@IPaO<74AJszU`drb2cdRllesw=07HhS5oiTQ>UX< z>=)*`b;sU18(GZiwn+0 z3JfOh-u)IVhL~E3*+YMF?mztEYR;Z0>2WVK=JL(f?|RRqYf9ijyq+Q6<((aj@*7EW zWW-6(`@2Fjz3p}-VPgqX1fv)-u98*4%r)<(VV7de(WdiMJh#0mb2{%;%K5inQ>s{~ z%gZM>Mk|MTGG-Swn)jMBS^R)BKU86a|#_Y~eAu1#@TJ~fJH-Aga@W2fJ z?hFM?YDDupDvQY9ipk$f%HPV$-=6jU&A84Wc+d0R)6_>#h8lkm34d-+j{`st13=uH z!GS3TGj^*bu0{F&l+TblF|3#{R%;wFnrfcUQmbp8k7!G2-qi6163=6;7N~xL$6rn- zKBTR&&<&(j9-BfdBsAQEQxm?qn-2Zi%_XY-tkXQJeX4o-Ge`5WuuUU-XS#F6>M7zH z6@z(RIKcDq`rPS7IxU_*!95M0TeBf<6!K8+{j7r!?+Ce|B;#m9Dj;Epb}MNPahQ-V zluU%ULdd&Hc0s%*Y8`PU-Q*roAK^q9!q%d zu^WllNW~T+R#35%hy_#(HZl_*!Me_=D|}o^mwUj*J4op4Xqi*i9Ef{`^igseV%D*4 zou*2PK#UPmUdbSc3xwoWvI^pPA@}8`&UygxnQvs;W0Sh`bMixzqfjc{+YT^PFj$G`|A2In!<=$xPcK;?F7un?DU7_|KnZJZE$M?1GJJ z;(1N+-1-}0;RKV=xu=v=fY?b$MkN-+8A7gc!{I*hIm9DEjw-nXF>-=Q*v@(-B_XyJ z@{y805EF$=7UCE0u~YoxJy`Q>s)yzo?^c?h3)_tMo80bky|Gq`I7r3KB6d(Q*dT1a z=RXKf@g9JKuoE`^Mnb>VayMYu{(<=HM3*d3QV-%VArq8LfcT9NOUVI{YpkaTqb0-lC2PL z3z@4V!xTfRBca#hg!oN^*CzQ-gZ`RlwT_zSG-#svCa}$E@H%&WPJ_N8_ET|$h^urn}ba3-OyZ(c}GRO&QJ8iTs-9tjVPLoUqMVQN z!tc0s$|!jjVoxF2mAnpdxsbojZMAp9{}SRkA-Li8l6w$K&oBvn+oq%=#3@2PRk9f3 zQ6Wi6eukKNrfV%uNpXlBgmh6d0ODLBb(O4!cu`0RC3hf}nq?AtokfV>tVur(-Q*DP zr1$4o$+Ox;&2!cq)qFMB=B&xU>kwznOCsK!2ul>lh@Ii+MN#1lfcC^-u;$83|( zgQZH!K7gAeEKZx%Od0NSGh^K{QQt~&%((jvu zUfA{7%L7A}&>N zi-UGtxGg?Xvwq$>^^U68P^tGVYfczq$x5i(cF zXAsW{8K>k1#Nu;ZYcDFP12IlW3nil^A+IU<0b=Mv*IIWaxgj$U-w_ecScH{;l84I zF5}~xzXjV|#u2=NaG%fhkt;fv5sKwSJj-hb#pguat75QqSowGVb@(1HV_b(X!p0mV zbha!{!5qzxAs!WyL&;@``95~*+~Fp`I%Obs7jj0)YY;yZvR%nn5HAW@uH+wx6&IO= zzD-xs2;xW~Bb1DT__dI(O7=rc6;e-0&QA5A_jhQ z#re;tX_}|OQJUv`8l-vt3|d#s^Jman zXr6NeiTTNL91~M-+b_@w&YVf`jI*)l8*qW*Oc9%_xJ1M%BBtJUek4s_n|yrPopq); zzBmcxRhIJ(KfY$);uVMa&tdWk5_U3*vz(Fs9b)0-CSmtp;WkJT0}*dpQ&+==J!6PF zMIGn)qiRl%8V~mmYE{j%y%L&dP@m8|Tg{+(2KDb@V$ZbfeOD<#y)y=s@k@Y@3~DA` zLnuxc@h@H|D1Ij5ITbgExKG5ik*;5_xdAW)h}pB^fa;dc0g=Goo`%`?&~H2)o1VXS_6O#--E#62pW z6Y(1rZ;QB4MUDYO-sfe!=!VOgmV@-M&^_3w_qj>vZ0abtpH?%7GlX1L@(IM> zh5Vr8A;g9&Tx(w|=>c)6kU2_LLi|g}SS49k8qxs?ee0*>6^LtuG*@yNV)-xJIu(?3 zfw)M>6H1mtyd~tJPLM3C3~7&q9$Zk;AL5rnb}QKnG1r%FoiCJ>fH*|RyF&c7Lk|}< zXENv0XwB1!mo?A%)J^kaVVm=V3MH2z7W~GwHd9Geh%XBn zsbnm~Z-n$vasXobHLkUWO7cK#DWr@LznS*bD;P$dX*o5|&W389Gws&PQob8(bEZAb z3k5fHOT=s{z9-^+UP4%MnTVHE3^vnRo%Nq-U+F`pm9TLN37u`sEs!H~0b;gqT~ba- zQHZUC^&aDa0c}eo=A?V)$B<(1RUHo`l#^$Y)9{i0=t`N69x3&kKoH zl5w3ORgkcqZc5rf94n;0l1UI(3n`^!Kg0(@vMPy8Hlzj;w(}=90mh&`#0f%9DR~d# z4k25F_|3F+17+rLPy1B!Y-*0?In&|nHP6$?0L^pOAkib9rMuS=c*c1;`c=5V z*>_IF{wk)57%O7hgU6=R?tF9)9z}R?(}PDg&1YC|8n1=DI{VW6>ExEL&dHl zmQe9k5p$@>(Fr(>yz#ReL+3PdhSxzxFdjD6B4H1PaT{S=HbYDm(n(3q4TiKu!aB8; z^nDnt9|cF{u6V(<{5_1G|!3of##j%pn0zLH#E=rghW^SC_2Fz{0uyE&Of|V zQH&Pxbrm~{*iXfgBDPlXZ4skIOuH{EJ>kx2cV7tSHCOkAJG|B~KMN)gAYnN2%e{ql z7-ITuCSf3kaVKKr>q7L|7vAfQ27%J-3oW>1uqAG`H8jum%4(kBFQEBX(Fz0DauDn@ zfHOp_uHq6Ai>dgzh*?$KC*nQs+O&B=#EU9&a051rmdD+|I-A9pyj-z!zrjY9?IvNj z8gbWQu%aM7FQlxJ77&LBads-!c@yGdA$N38HbJ}~F(vOpOcoNMWFN#ELauYsGX|M<8}cj?dhnBy`VjjI`A&%6wz!&0R@dbx zny0~8n&-Nlpn2{F!!^%sv9IR2a**h@=(DfI!!xex*ZRw<9xq}a6=#arQpNcqR#$P6 zh{aU=M#QWlrrj&wIN~m8cdz`J*B(ZOkID9FemzWP-Qx!R+5pt$aO8y89SNh;m^%(h z5=5W9a$q;NQkuQ8NG~8AlWdyjm^|(&oMUob^KA93<~b$@H6LV54(VQZ96oYPe&zP- z?1~~DQ1PmW$tvCuaj}Y_dtIB;MNAw12S1`qzR%9O@d~Qpe?jvZVX^}fhGPhal|k+T zaUl{0;(H!0Nj5|D3IFe1{x$p`^^oxLQuU7J+1{I)XZT;$JX`Ihd4|7@=7WSkhCVXV zq5F)F41d3VaDif^h^>QVtEm>tN6T#5Bj^FhXBqihsbtsjh!9Fs$R+)!CfMf^_1J|Zqvae#<3R2(njXc5zf-}!gQ ze8b<27ex*K^O~Omlc$j|9Njq94F5TZ<@TF|f%t~UR+1hNeZqgD0kDUFV!bgTbh8Gr!t3|A-;&&pJRB@|_IaNF*;v;UX zu$eae)_!!^H~f2f1=aAc*Zet{eD;7z7>+X>RtC8;#MhB95LI+td;rlW{GB`eYxuKr zv(nlB4;PBg{%e|N_>2bbvTR$k$3fgLp~E93>$~4XKHQ*2XI70&%vGeoDTDcvDDoC0Twlq$v_w ztDvMc#A!mFP_hK#c_9zES1<;*AwGM|wRS;CGl-Lf>{c=d;!z=A2=TiaTFN~@XWDz3 zr{j|~&zTml`Cnn1GwoAu)|^x~M4Y8!_Tz5Ju_{&&(NeLAi0xDyEMgrMCyQ7{#f2h9 zsTgebj@{)yd(ZPC#V{;^jgv?ifOzgB9EI}`qfWS_o05_cy9%kV@Oza__R~f4B}WJ(Mo1O+$H2mA%3ed zZw#iTuEva-XH$3E21r?&Xdv|7AUa;BArjqXV3>|vfR z8J8C!&K0sw$>$Ky3i(jU4Tw))bgfNPQXAqhAp@1X4soTBHcECuyf37xk|!=1(i{oB zE~sPx#Q8!(m28K2N62q-!)oQcY)BI%w01yAD~J<>e4}Im#KS^9P;wDszALV^HX1B<$oS zIqO@6AvQ8#9+~5Y*xs`A(s0`~bun}dOgx#{a zV=!2SAhr{7P{~UW7YJFSF#W`6NVhDDsqFT*pg59cz%rEpusQ@mDC zd@SNl6?6aPR{v7Pf+EfnG3_NZe670<+)L;HeR9Q1XeZ4-1(Po!VK_$d9Kf+32yqD# z2I2@;Imu3lK9|rtbE~KWK#k{GypeHS^!DI9J6o zB2HA1qZ4oq{9}z98Rr_|NJdGbK$RCJ1>}$wv^63W-v39b(yguC)g`;*}r{ z7II$6TM%~$`CiE}h&k`O)>bMh2XTOqSxQDhTr1>tA$}`&XgwJmPMzMGXHa7_S z^SfZ1Q)f6YSX^dDMC_sBEfJfkcwfZlR4nkowOK^PVj^ZzG1$x-zS@809pe><*QV02 z(Hsf8HHar~&aYUA!-d2snFMjEkZMZSLOda)kdj*vb3HT(+exP+Kg1eBZ0;@epdG{! zLYxCH$qa~J3t6Le4ne#r#M!A>=RU*&k4!=j#%rDDAa)SaUr9W~IYL@0`55AMA(fS! zf%sTRJ|+48F{CCEdhnRr1$}D(@kJq*l#GM;v5B~L?a zEM$xjzqvo6w*TCJQS&s|Uh|y$jWpjLwmJ7-L@cJ_ z*CJ+B@p}>PaVKZ%!4^cHFZ~z9PF^{=Aojz?A4u5OE zsNui7GH9Mn{T(fw%j>e{=fO6YS6*IkIKe*^F`bIvi+HUr%(3J_5l^akL&O~_-W73` zijiS%>mR5XY=kl7O`Hry7<&|7Z7EM197ppiy#OW$d6Y&idSBUtciu*-uqvB5@ z)==@Ph$U1Ew&tcU_g{0jc&Xum24Psa}lhA`lJUC*s{Z{Z_mHk)nCC#(iPnzcn-l_TAu+0^G=XqJdMMb=zVqFpU ztJqV-bt=Y*_=$?amSC2p{!4I(KHYf(HdY{E57JA=t#2S+7IKxVoD1MC#4_34I){|h zfcT1#ZstJ z0Ajq5)S8GEdpZN+4k4G7?1T7^kRO!f&1FanB=q`gCEX#uBV>+}&mf)=GFHhAh{bZd z*7^zYo0#1y`cKRkG*2gLYMv9boaQURHYa8eUT=6Ft0Q7F6?=&IoQh*aETZB}5i_Y6 zY+?@o#D8KQgY8wqLof7+krg^1I>E^PEh!oJ2;M@bHa1u;=b7bWu{ZWK~i z$pMJhg_KYdQNWNgNZ3vmB^4pY3c1AEd3VkaRPmAndZrjTn@WfbN@ z{7%SGB|kyDBV@gjh{A@HMM4igQql-we<72Vya92(ke7w{EtP&{;TR_lZz zJeSIIn&;b#r!~*lIJq^?d5c6}<3!O3uBp%A85de9UP>tL5;2#Gmqh%h0-R;ZJ0jX5 zrhQ}6egP`@{!GBPy!^4hd}Fgz^N(P%eG!weXL~BSLzd>{%d=(tgH}ZI3|cnLGiZ-X zOZm>Q&u&)~zpXeC3#vFv#Bddthl@x&3SV$2i9U&$N2~#p3;`c&+=TVmJ9DsOF$d5{L7B!?668g4QNmq!I zg)C6A4B}xS6O^2UnEol(nx&*L#O6X;E9nODEg@BuEP{AINC741Ax0K63B3*x;5)osw@M9ui`6O>+jEhxkCqK_yX78}cj?wzEb_Rfuhb%u`}P zoFHVplEn}=3F)uoH;AFdO~Q6sDv5wtOh{!VwIFs9l26G%h?9go=89!c7eZVwcfhu6a5UrFpK#FwN(MZLY>@rDP8;C*o5oJ||+N zicLkl%j*Ica}N=JRdJYz2UHvPdZNlPRIf!S0EO8)+F>`f|9BbUlw9183FNg zA+43{fOua>6(wO645@*H?G#Yb7vcv(LX_-<7*f%#bA<;(#vlvC2152LX$5hTkkv}Q zhG+|!t0ZqFLs}!DZ{w77fjC3Ri%Paayep)IlBmjtynuw(Dk^CY(IX^}lBE#O2zkUK zFME0sVu9yeYriU~0`X-bdz6fYxJJk-B?lp9sN!0itt21BHbO=T@ms;e3;VC&zM5xe z+iIRGxPj(-!Zug%h^J)*4;QhQisMCWq2dQ3R#kD0h(%T0BVra6kBNAvn6&?fqOl6Z(;3(2NrJH*FA{^G_$Yx$}f z(jEx|{j-v85a$Tls^lw(e+XHo1dGDVY!PCn2vZ zxel>ZBiC9_B{d+%327w6Z_U-pioq6Q>RbK`u`e%vT!>jG*V<=FxZ=#LTT+Ya5glg4kQgA|<0BZWi*ElEV<6Xzf}XEW~eFzmyAu zqnFYSnr9dqYo5!xs^*KsHkb8)e6lVpiP%=fXc23x*iyvOD)tsJw~8Y~e4JMr8YALW z6@x9-wv$jtubSWTn#CSZfQ`*a*w+@^b2v!fLrmAkB^8xKL5vZSM@b)u9}0QIJ%rZQ zLHtw5uSy<3tQKPuday@H8;BkutCY-!_@j{7O0GgI5$jqTrKAqTQ9^nvnGA8ekS0og zhghnuYwZ~&ogmH@l1s@>h@tJ=I`;}7_KZO!#O6ZIDtQCqS|K}?T!Q#id)M0MO3FeU zAY_J;1c;l3yryIq#B?28Yu%L;g4jh!10^p*TrQ-vlI;*vg=ABbtD_-pkZ?@@;^7l9 z@LPC)WJ73l;hoVutL@i37v4tA_k?XOyz5c29$psll!|d8?o@G#h+nGsfr#@|{6fUZ zDt;^CP!)qMyi?=-7hbKR(&G)V5z@&G(P6H2PLl|Tt%R&o(hK4eAs;IF7UBaT6O}}D zHlzy@#&n>P-Vm1xX`^H_#PnU{Zem;xZv$D%lD#yq8<&Jtg@e_7XB$ zh~L7C%OcZ|H;?@^Pbb=Go(r#`=7+#G7hZf$S$LyG?5*NN5noX8eG#jvxLCxeR9q)w zq>5WayqiN>54P}nj|J8%-VR=)xYg`}jmX|^@H#(%k{qNch~0$LQ8F0f8X?7%?1C8C z$F-JONlA!+5giKX(31Yc^uC*ab zx(o$^9bzXTMU@PLxL!!OlC2OUUUIGdky~P24B{XmN0f|#xKl{7 zlCuy?_IIrkuoKB3|@5kpk`Tf~&C=oeiIwieot0@k&#P9Ft5gpK+G+=#a1 z$(D1pImCB_R93PG;%`FoDY*x+j^$c=%ymm^ogpq1a!JWjh$%w$DG3{BNDCw!oUfF$ zgZP1v_m!-Mcu&X}B{>Hf(g_Kz^;Oar;%7pdDLD)=-^*^DXO%RA_>Pb$C0ihdzv9+; zz-@{#$O*Btkn>8WLOdkodnNxsY&6)lwo*wSh|7h{Qt~y#dqQ4Ul52<|U63#aJ(cu^ z_^FUaO143ac-5^_R!ISfeT3vtG8*D`A$PLNsy_y?&`{Uf86ke_^rtZYb-GjYbbO8G zxlWg8z8q|GogU9Di{g0^x2f1r#FZ*`6mgD%Un%R zvABu{M9i+@c@ZCEkm|pScv;1C$t)yS_r~pZGiEAOl1j>)A!DXWrIZvZ z8tm&fxD;jR{MYAMdwrh0&prBm`}caaS?|wU&sytQ&l>hV`y8;*4;OJjep#l(*Mk7J zQ2DhWY>2W4u*#FJ%x+a~08FE@T9tW#e^8mL%4xusW1O{AReAxgq|#574S*LVyE1K5 zDFgU0m3peA0`8$wR+WQ*b;detc~of$IEPB6oGHZz3jxnk`BarEPZ{NLT*RX*R9Ogk zmdXpNR7f$(AY7zOvMOT$Kc~`1l>>k^QeBz5RA~nI0+l+dd;nPHX;-F{DwP0-Qi->;t@ZoU`_kDop@qQdy$PLcp_BrmIqNyixk%B0hLRl~I77Q0Yk}GPmzP z^N$Hoy+LT9X))M9(=xZKY5D+c%iQjAo=#4}rV9TgtfR0%nk!yTVKKsj3M&!*k((7& zC;U#~^@JZPOf&S7ia`#EeDEOPN-AHgvI+3w39ifrRjvhmlFEEl z76Hbnq^nY3qER~GBCQ^vN^ihbR63}#0kG&KSEivV)c~KMa)l}r01r|rsLE-;yCyqp zzvtn4&<$`Yl`pA8X5+_yMQ7tWO-q*+X!+`6lJgLf8fLG0MWqPU76mS-m7OK1lSY)Ov zQ%jXnfc>bHR3#PgD=KH@=qEk>1F-QdXYB`7S^>UH@NX*DQi;sdEB}nn(@Qih&C9E4nWumL!Tbeg zn+jx}RyoaidI@1Mh2;s)o?^~AgucRtgu4~qL%3eygM@D=96>l$VG7}s3ZEr>NMWKG zy}NgGMqe*`rOfEbuyF_%an(n%G)Tl80laaJQpf zJv~)<6mUJ2W~zJzSmh;GriLmt0mo3eM3r>FeN;}L#aP)H0C>mC&e}m$S^>U9WxFb? z0Smq2$}CdlO2DC1rl|57;7KZvt5Rj2QHJ9pKIp2-EWj)(cdBv%u*s{gOf^-y11_af zRF&@mYt46MPRb!sd~hRRI+X*eOb7I-ysygdfVaHnti7R1C%}bNCaAIwu*d>eW{4_P z0UxJg54_U0X8{jTxs_!ibG?2x=dOHmbd{#Xsiib6bG@LZe}Qe8>kUqF2LDZ1Sz+$i zUCyEkixZwX!Q$lz4=b!g__@N{3D+sSkMMPcJqf2M>_<3SVWPQyxJPuZHN{C9#P=Hk^S|Mgt*Vp)>_%mwDgyvlQJJL5=YXZ&bk>HcQXa4ml`g7`0o+dI zc2#x(mR#tpU8PD*z+qI9RGA3)6_r2#<|=Rq@angmwSB7G4wz15lPa$P{zheiD&-a# zr8h3((F|1v0IsGoNR{1yW!`pW?o*{1;3O(Ht1=7l5S1%cIRkjdJI-2RRayW}p^`0! zQyJ|=fPYf?N|pSJjnWDi>5o0|N}0ZZOQ_7#GFt#ISmMg0QHjjkeF_^B-l4EHVGV`72umv*N|;ySvxG;Fu}RYi_bHr1 zxJ_ZAd0V4vbly&uJx%8AtFUn#7jab;S(9W`P6IYy>XZvr=?u7#%5hmVq|AGOg_pT9 zU#oH@;9x2nR2d2QA(i>6`~X;cxwDq8N&~=Ws0>i$dB7j3bWr6iV9OQGT0>Pj04|_% zg(@2XFIwr!6jY@e;7BUJ%P~-Vun_Pxl`mDP_AbicBEDX$%8P)%PKN($f?RAy6&%=PCpqjNn~)8f=2nwGiVOVdBVw#@bEzjI<8B^;}; z@Ov)jBMK8utUdQfCsutq)62vv3L7nPk#>C|6I`5gFW>|!%T;+9a6gqH`j@a;Yj)0Y9bkkE}S-pVNT#HaKfPs?rE> z1eFg}nF_dz%3@Ux0hZh7tW8tp2Ef5oMyWCm@O>&hs6;}i)8T07G}p8Y(T$px(79UE z@^cZTH7!4cQApDg8@T8XVHB1|$g`Qx(J~3Va1IQ2_S7ualS5x3-LXT3`Zk7dD<_^K)40fn6jcPLCW zNo#dq{;-q_oysT^MB^_`zm23^Fj{yIs@|7wVZ!^lRxJW(gRJj*$ER}gwBGdPU9~fD3cb2Yc zF*s7w5^4Q3JqflY(q_wcAVD>UaJ<4bgo6|&3ab6>qCs`DY?u;M8(|~YcGuA_WO_@0 z6aZ{WWsNGG0B2EoNtK0wSyY}@CGQTS+=+|y|6x^H3Z!z6D)RwOg+DM#3tYsS zU8$ti{QwtIIbX|s1$gO)uFMgc#!}{Tz;0A_sWJj^EtQq3d<Dji?c=}zo4~eHzuu%^eX>5wDcH-rm0lQFnNR|G88B|)UG6(QID%Y#B2k;Ln zm#K0Zu++!qA}u&imD+%5uJPRFOI5xB{F_Q`RSJJz9e_Ql{3FYQjKWaB=c)WiB@%=C zzm3M=PEAWy?`c|M@GVWh3fmHc-~I?A5`$X_KTw!WxLjeeU9R|Cg^6OYK$~a`_LEId zV(?P2fr~UY7yIZn27H*x&psnyG~laLcB--ha37VWs{9F9<}-7VdS<9n5wIzh(W-O@ z97p9rRptSHK&81VCjrZTZZ1+!O;s8JK1ij6DpLX1QaK|NS|VT%;8`k%R5^dQQL5o0 z_3TjPPQZt$ysgS;!1+|Bs`MbfXf9!H)Z*G1yeoQtSpzOAJ=k zbPd>+80;j6L5aaOgm)?&O;}UmT*5L66UAW4-O(64EW3@w;C$Hl0vBoQC^>nG|MvqH z{?aKuR4EJCl1fumx(K9FU6t1Wzob%JmHmK)_qcja$yrufPzkUtmG4#Q4>*U)HdS^4 zo~H7aDwlm_loq&1PbaI=8*mzx;i}9A{FurEsvHI^xz|~{LzSxl@1t_HDuV#$QMpK! zm4H7}IU!35d=QDW-@cAU+P9jPE`6eDiL~{a{u8z((vE(|)$Y8n9o(m|Ea5hVjR==0 zOcZIQTSg=83E9;o((ZtbLAXd`i?NU1NWeF#{3T~hiGcS2v#5Nl${E0F-#BYqRJjvy zFqJn|8436%m5Hjn4|t5qP*pD7XOt$mNUJ-m(g$!FmD^NV3V4u8RaKJq8|7wP#99$m z`UB3T@`p@l@xdCvBUHXorNjZFG{!}&ZB*qhz$d7@rpk1{?Npvs#WMPfIX<(rpjo*WmKxF@)=;hL(Wuz$_}2RQU(+ zx}VHN#-|XK9FKwi+0D3@oAci^ZNov+GH*W7^zE=Ok)P`u7?H?tO_(J+gTT>*dlb$k z+@$bh!nYJA+5|3X?1JAu8?qa!g#K>WIE9P!;6e@c^L{q)DqKW4et@Cg0I&y@uT>cY zIE%^#Rh9$pqcUHWLx2Sjn~T(wu1ZC~W>f~K(n}zf4ywEf_!*Uks{9IA+;{a{p-OGQ zPE-o2G8=F!mEUE7kxB49V1Z0$?Mqdz0Bk|Uu2fRy9>5V)Ue+>G0pFuCPL)ppPf&S8 zm5YuTPuDz!;TdGH+!dOZ{S$X1GW_dsS%-IEKo4Rb~QyK;>0cegeGYS7+@RRq6otr1F?5 zPXfL}rM)U21O7whCRJ|z%_swLkyck!B?E9hl>(}K4Or-RSH>QA#Ro+JZ=>>stU#i4 z2F#$cMwPjMyQsXR$`QaaN6kgr_OvS10lQLpm`Ws=AN(X5%=c3FhlG{U~fp zF!%lfMkE?X61GwJ2H{N#za*@pFj3r2yd@g9$7P?9xZMXEN!hOV(xKZxL zMe13l%6P!{sLWC2E5Hl>aAi_dxfrl1m4{U60XUsXYgOI={FaJ6@Jg%y0=)K5bCI@P zre$sc975$hDv?M#^-(m^j%Zp8exqrLv=23%0^1U4XJjpvNSj1>Sm8#(&lUbkxK3fB zNUPi^8fj^=p-H42hmD#iT<^=tQY(JB0dNSF^HmuKxP{7*FBzR*0v0>ztnE_e8o<6( zR;uzC;36t7s`cW|Wdz{6RPI(K8?gG{&f0aVGy@z*rL-!~0q&%d zOO>AiE1h!IewL{&e!CuUFqNIEJO{Xw%2HLn11x*mS(`y65@{1Zh(_8NO-rObrfG?^ zZkoOZwk6Uge+nZKY4r)8P}rW(Q#g#Ut-|?)jT9ydzXc7V;a5nuR0+R@u(1yp>A_q% zAB!7*0KE8&Q&LsA60jYWeya2aoJOUMDvJTXr&3Rq!+<5vnv1lctSU7DyHUxb%F}== zsbqf639tt+-#^aUr>ay0yobsPRUQL;naT^Q{0dku=By>FQXlXkDt%O$2DqKdU8;Nn z7^6~0l~TFRGw(d%B0eakN@u_fDlu7SWPBC??xpgRDp`P+<#yISq7n(__qRoZd6}lA z5%V-H!8}FN)nHqKdFxIF^9_WH6}BUML18lC(+U&C?e8~4i17Cg@>AFEOZup^aas`LeXjmk__HUgfd@}w%~=P}ByxJV0nsnQ8>I+YfxtOGnn zrIsqC&o@d3T*O*QRR#errgB!MxPcEDsR*HVc@=apNc(Rqoc#X)&BEz$Ys`^-NP zwk0~Ne8}jWO;}9fTEerkQp=+36Z#4hMQ5AqqtUrsHYbVB-(cgq0=<>V}0 ze+lplDt%P>8L;$4uFPGkR0HfvrH(3(11_RcN|oh+K9!hEUTHz@qDHBUi?r=0RoVci zQu#=gd4OM0S)$5uz$(R@wdtzd2{?kv6RIo)JWQphD&;OVN?Tl{ZOv496mTAu8mg=Z zJWk~jRZaocDDJGCmSstN&IBT`ub?> zkJPkuwx6aY_V3qpKiHPo&yeL?*4yEP!xb(d?5S`E;oS<)FX3#~S6GLzlEOr>pHVX! z`$uIrlGv{g8$)rCZl&(vsyiBREtP(%d<_K_;> z0jE+~qRIlmpQucy5{dl@YooFMq^70e{WUGI-&NCpz_!HxB-sok_H&nYaFoItgmxQ| zoVO9)qdA`-Y^ZP{VO52RVt>-L(b)e(_Bx6EC9v@uF4C>Et&IH>fOX0_rN1h70*GICnZdGmo971KaD$fFb zKxM8fKLK7*!C6aH#RGheNZ$S);I~xDs`58ry(^rxJgPJT z97QEl4!`1qX@Fl)`Bask0V`E<)>f#}2yhgY7gU)5_%W4aDv??7_^Rlv=&NZ7pZhc| zv!a=%_rtc#3cHO+tY;GTmc2vZrB}L~Z4_1`yh&jn!YT@<5f)RJXjY88Iyx)9m0eI~ z#fz|U2p8$rpv{~WM*wS9cFKLK+y*$F%FU|G1pJQ5m8$#=cykqJt*|PM1yaeD2`=M4 zA25r`SE}T%YLvThkyfu$r61rDD)Us?0a)ZJS0+uBs{sd4>95L4z_V1^sdC-bMj45V zw4i}1(*O@psh~>1YDQ^|il#;Pw<@IpyHi=M${@fsROYJk z1z?$LowZa|ssj$8(vM1HR`gsEofU00EnT`@(=sdSXgUS9Wmfc(4MZluY{J$GHxo8c zm_=AwVe#tDW>JNu3D2xSYo($pgohPgNBFtITM5@GOf;z~SBXxlG}&HdQZ<2%5x9s~ z%5C6qjs;vn<$P7P1D>LCL}s*1gTgh8(g+u^wo8?cfaz3LsxldHE0q^j`4+HfO=oSa zD%S#bqvEOZ9N;D@cdK#$@SCfxvxAuU~ zP}!-@|r*0gk~ zqNZhn6w~xs*p>-$hwLR1w}q~Au!h1?gryZ;PMBBWHH1gstbM6UUBHo4)>4UtjMrnnM1Vw*UMgp#<(oU7FfCU=4G7VHI z57?7R1yzOsuA-7(mCpe$x!GC!RhA&}K~=zhRCcQ}0&pFb)v9a-EO3jnHdmF>fL*Ah zs`4n{5-R;v`3SJct;3g_{Rrvz2WK(CYj4G7@`%=lR z$^gLSR1PoWin|T4U^8d!V^vB6cA>INm0^HusLWJlCty-@XYENsEoAY)*VNHcugk=;KYvGFLQ&^5Ldl79` zBHXXAA>np~Jqed897;G_;V8oK3eyM&DV#?5fWmo%%@ih@_DkhoB+zMpiEN`X?cacn zzi<&xzbWg7OrU=N?`r9kiK=u3e4ENpRW<+?xyzO5tV&hDVN`BYWi;T&RH~}-BVe7o zowXvWGzXkX<&VV-`Ne=SD&MG5rj=11!bN(zQI%H!k5PF|mGfI0EZC#l? zs@woLp2~ZwOa%O%$}6fI1HA2CXKlPHZ2{*|c~q5kfETuNW$sm_IN*a+ZdBz7z>lev zS0xj$etTyvpDKL--=*@4%wh4tUcjmyT$#^RxgBr{l~t1z7$*SEjWpbpW5Day^yEqF8-ibWtp)X=y|eP0OPA&nwJ78Mb9ntoa5P zu(^a~6uwQEPvIWIY*}dK9%et`eubHY+ZCQ5T&gfnC)cFe3KOkW`Q)Ef(6!2LsIpcS zgpInmhy(t4i?hBVU|%XfsxlIA0hJF`Sq1nbmBp(319Q>7MQ7b>Gv84CCc zl^&|B2K}8Nhd`+(9K0@i)E12$okVuF)fwYr30@w7Q=v4+2i1(ngiH0S{2Ar^=6j#d|nwWmTyT_yCnW zsyqhx5|vC@UBm}#0FO}lRF$)U*Y-3QY4r*!k#JlzI~tC&H7&(5G%exygr;wTZ3)MB zWR;c`v>D+nh3yGb74{^2OkrQb`xTBPY^-n|VJ(G;!f}@T`#>6wXJsd{=R(-`&z)RmKBur*cB(u?+bS zfE9Z?Yx`B{1UQq*W>uC09;foUDyIN%?BlFGr^>y6Q>hGAyG?LeYH%_%Ye^BpBr@z}+-`7$z(Ab*_9$ zPCgO7M+?`lnp zr%P*EYAvK`@${+bw3oosrzK9rsqN54@pO?nC?c>2;oq{93rr^bQQ=F3pDNryxJKb_ z!ufsDv{A-n#ETr0LxjB)9w%(A z@X|+I@dkuBJ-tBwJ)N+p3&`%Tp8iWV8cCOf$@aKN&&x=th^IRNrr{!e9waN9D4PL8 zo}NDGoStqeOOVtgp1w)bQr|V27EfQM>EBU{`08%i2E>792CkgRvQ4DC8FV7@`-Vgp{5P*EBJhDNXLGv^$=0?$Pkw7+CVN=u|Z zU(+&rdo?Y!?$ET1-YQKe7`@e8e7pf@qm158IZMgtjV63oVFuwV3g;7MC|pfAT;T@7 zo(gvo-mUO!!uo_cM{j-%9t)3NKG{!o^iIguBI)m7vfN;E5pR}~P?0gJ2-p!9@#6ql zK}5*_42|CNzRdQPWc2)tZ*kE3Ij%wUDM|^iHKS8WN1&X|71#CbUsT zuZZkmGJ2m7{w<5GzypLoD*T7=Q-$XbaW>Z|EJ`?EVL8HyggFQ5%-Q&X>LUB84%A(m zt^||4a1qBnCIKMB(HHP#Tx`JW5bgpD4b(4BpL3vImKmr6HA&M_U$UlUpay7KYVEFR z8K^dzPB2jS=!%qYsA;1NRIiC>os7xFgsl};By6Ct1z}}{Z3v4he1PzbEZ|a6Kf=R= zIR~oknfQTPF2^<B97ZG0U!gl67V-%#ATPu3M@+5VFrc<>h{!g4%A;V z*>s?MO-p@yH7x_RL(@|0Dox8ky{_p51N8>i8LutcCfLAC|*oqe!{b|ri#ttgucS733n@$*oeD#yy^34@Zb?HzQ5`M360O3aphY_w+ zm_qon!bybB66TE9zfL+Iy2qmT$wn*PlY??IO;3l(-MEP39+uISxcmyR&7 zOq2$Ip@{XzoHJr)r$i$*L(@{<6PlKRdPLJwYZpz+K;5P31Os(97hLaQv{3@qZX+@# zj}x|(y+q)6!g>mq5mr>Vn(#t}+X(+kLtn+_Zo(f3a}HFi6Y&GJST->osFyVTHB6Qm zX)fZp_ay*iI7$QFjf=Rfj4Wn$X#ork)Xh(xbD;hh8y%=0H7)ghp=lYYEt-~Emup%E z>QzlA7^wNWh%7}LWuWXfBL3SzI8XKxfu9gQr|%%6QQ72_nlYz@K%5>;PT*PsuB~)ZM8Ua3xi@0o{EQO*x4;UJ#X-}MUpjsqH z2daUlrM_yKmVqjxX{oiare&Z`%j7-R(szdIjJFAGlz~c;ZN-iW;VD^C1s)*$N#SpV zyA&3G!r5G_uo~fO3TqKgQrL)al)@H-eF$?7>F#6kLwcP)mXaZ@r0F&=IRO`OaT5s@ z8MrBcJ8%)_&eg#_4Hz2I_eY*{NQcX`lp&Bi8c)+wUq?;LkT%tH_0gsl8I%#Sg^B+g z5cX2ol(4nJc7zQS-cMLrp+{I$;Z(vivMx*QD+muO{DJUug|aZj9RM0+yK%7xfH|`F zif=Muqs)`$B3`K@E31sc6@cxilv1S+;7lqp9l19F_fz>vl@owf$C!)M^N}hw0J~FJ zqRI%sx2Q~4We4CXDo?0#X|hq8<0AF+RHZlI3@Xi3SqYd)rG_fkj5SJET*TTXs*C_! zMCG*1Uh&%wz|&L?s&d{_MyZR7Slg~jE5NZ-7O657a66SLsvHC?p5m-Mu1XcaPE@*5 zi5&MjjEb&#O*AddtEXw1AXPNo7q(@B+$TGdgy>MhI}|=eSVQ4N!qN(76XsPokMO9h zuu{=t!hH(&6K+#@eyVHd5`~E-Na^3A6XXfmN@ao+f{nXy5w8@J9pDTqf5{XU z|BDN@rCz0iHkJ zmAOrol7OA4R8{2>z$H|QsPZ{ri8N>J4_SxA2Xz34QTaxdIe>?#Y*eM-Ge)@!7wOMy zs`LPSjmopCtOblw8K_F>bfY|gi&*QZN-w}Ss5DaLeZc(Bx-ykiDFxVtN+DH-0j{NT zl((ARCxFE=oV7hvA`|hG;n9h>UenU>w>2#jagL@dz_v`pU87+{=0|nHwF(;$zNWA# z;UtCa2uCTrpRkWYkMJIaQwbX?e2=iI!bB5s(vj#y{6lsfnTVTVBkyz0nQ5|0NT^*1 z*qTazReAu*|KcLc2l_P-FCp&9xRA~V?fl579Rsx=) zQdX4;Q;gCJ7wJzPRgwX>Qpx1~tM?6Hxv8$qr>fKe97bh@Dw6^CPY{0tDJ8Q|R z+ypp=N*`5b0e(y6E>(^KUN_BItE0-@fRm||Qe{41CY6|+95LFFX?=2VbXp(Qw7Bjo zP0O_2uIayETc-8jBRH+|PIvG}g~bRzRd_k!8im&o&R1BQaH7JS2}dgIN7!586v8$N z6HV(iKS!r^S=mKpTF-=y{kVu%mdg4dQ|Cv(Dl?oiLzVh~qo|BlB?E95l?PQh0(k9A zXRWy^*8vWrQd5w^Txa=@chHmP#nE9eU@Qf7fFtpL-hWT-M9@F0~zs`!AF<~eKksnQVeaVj^f z@;u;YRIXIzcfe||I%|bhX#)5ZmF&mi6Y1$Rz}-~7QsrmBE9N_E>r}ZOa1fPws!Rp^ zj7pj+zX4Wz%~|WO$~}M+sI*gMCE#%?4OB^5V3d})$S71$r90ppD*07e26&XpuW~{a zALM=AD7WDv)^@AX1#lLX)vBxjJVs@%Dt`lB|Aw=cs!D6X3@ZIpnG3j|N*h&90M>ca zS*xc?W5B1Vl%?X9f~$+=D%85oJ#E`}Nd6_4c_8K43uXc)O4>pB!~XryhSDat$!8qm z*$cA#5X<&=Ka60(go$OxmS2hEyML2BBEw&k>zhliq?EpN7&tZ15G)-D;i0%j9rSsyxA#%$hz?-svC>Ex6OFQvR{oSiXFR!!q2aqGL1 zig>B%oz6>{=J!Nm!D#p&$*PJ`u*+3f%wL(gmCV=)gb~*VWSnesGI~Kg_v#&5 z;=@_5mT#GWc#no`u971`IAa~!bWL+bhMC5IK^=Ql$0w%b8w!|8}VS8kX1A zPnYL}(bi99zK-6CQ27z$L4eos?L$i`?mBd50*kk>q_;C<@G4>#8dD!U$AI4VG6&@E zkcGqIfUrw?$Spw*mo)9~%Kzs@^G8`a#G5fxo$XKL`z*n%>VExKs-V)drxPIB5n?}C~?#n>lVo4UP6{m(sRw15km324#k9h$Tqg2jnc#l$P*Dg{JlpRor-t~h zUv4|_kBG<_bbUAcQpt)3<3(8^ueRcrcrjQZ&(ZbOg>!WMUU|kC*Y*E#g{*u_wClmT z_C^I@^fi8ktbtYs8_N+M1RUu#C~o@rw|9>tE^C1~ZbEn?LN=%6uvwHg-5LYe_$T|Z z{FqSr_AIY!jD2VsL_yH@>de>C8y6~Hf}AVlAM*S%TKsou6qq+VRC+J5>t@@5uK$tN z*Vops36-D0^4j_#395gL`8s-=LghP>bA`NKi@O!_3Psp4WXUhblHT5s!TiJ~Bf9Gk z?CLrc5NDy@iyV-=i!?~KiUY)ZK~=ZN-iF|cxTNw!uDn?x?PH)X9&mMeg^fuI^YwE1 zs$Gejv9yEsrp&BP`*acbWh3m%#r(zGO?vpl!w3K7{wv#>y6I2+I-txncW;nio?*(s zUWO_gqbo=Ke9{tG7?;?qIOA(QGdt(%fj@0?Y$C3VH<*4%TDJ7{|aw!+&_Y}=ksrP52HZO>}&>WBpO zt5UTDbw`wtpx)CBc`+C{){BLl?8*OAP+yRpBdF~|OIY_Nqsq_C#W-OPXI&(y-+0`$ zCFItqSH{dvvZ#AI}BFThrKlZb8Gf4!I8+6O7r_RlFr z+Fpxwg#3P)LiKxoLhs7u# zWue@mW%GCaq{BzcQKRE>uPh?4&@H@G_U6Fjod*`hu`CDdrOFIPrIme22!Y}w^0ff zD*I48-5#dWpTk(x*$tHR zc5oZxfq``VA@&-Sq>RM7mNHWsbTOg5M8=b65kPlD`2 z|4j4b!umT+GG{(u#0>dsTrDmVUC+yz$DKA7GsdF-|3`Lw@DL7N_ptDJcqWM3?|4%p z0U>v&AM!TKTOZ20T(bs+Yw)2{Bpff1Bl@|*@psN;&$N%>80TNpzMzLP=9SE+7(rL+ zqtxKhCWFlPNNCKEhgFF}!{?K|w9Ve>^F;;e*{wIf;f5XYOLgq{0P?>b?JGiyc zex?vR;lCv74C=7!WrHHy%_mJJ9OQ#A{4FWt3vH>!ZG>W zEOUveRzCF`k~edb5gJy6TFlfClPB@0A#*r{st{bU-XK?n$-O4wn({<*t*yM_gKunj zA^xb-un_*ZMrd)c z9rzS2*d$kNG4mz8K*qBLAm+uTO>6U+v7F~O-0jvG??aQ#!fe?S(2I~84%xrUJ^wMu zXV#eEf4Sh}-TB3jx_*bw9sfMyp!XT7Ie{sB)IWO{usA1t$G1y!pGIz3sA~GRH+Q+c zimM&AhlZ*uHG^cD?rzyHq~!eZn8|T2f4n0tf{(lrFeFYoC?~A{#UI|u9RA3|&V>B& zo2<=ZF&Wh?GZ*8JUt78!#+J(Aa;Y3HH)`%x$o-qmy&;s_`Va>F$(s95%AjQDRqGq^4_PEocAV~9Ov@h0BMnUZ#oQ#_vXo|?SJv!)hBXzZz~_|g}k?z z(3^{DcAJaw-a9SWjlICq4eP-I>_+5_+(!*vwAPdeT=h*88fr{zU9~}_QIJBedX;KhzoAh~_JEnE+>k5aw*M!ikgKD~)iwU&GI+c0@hXQTxov!ndK>LTMW^)Lf z!7{b|{-OLBI=hVepD@3-1Gxj&-pbtGU%=+jW|ld)!LLjywp7j_vY`5@G!$Db_HFJ* ziM^`p)&9XdTLdXErF*<&Ti_4Vq^+sQT$CBBbYXC*6jX zj5xS-!>;(_;w$k-!&}W|RFQ_A%pXtYUxl7$-u8LKZ%_-TB1@XQ2(}Xv0}K4ohTSWb)XNJL-?iVd0u{Sy-zU zYKJV`nZv@}=dxg)UpYVA8?ulmhlR(^Wucy07#gy$>9%-3Og@)|Kjm;NewYCZ7(g?1 zp3Grk`ME4CQwwWC78>TTu;*MB2B?MoAq%H(jqgS5To!7mg}fWJ7prqvsA<%MG5M=` zEi8!1>q8cX<*?A>Tox9p1utZwZoGxo@u&UmdFvF>)t2>8p^S#=`x!6245z#$0`J*QkEDvehGseko!jH|S z@uoj`S0{LNs_Oz*CT8DD33wB78(smfNgNXon3Z9#gg&BCKaakZi@SUE@j85bkC);$ z9K)cYk>*9l<#I?s+2Fy$xnF%uGvi}QG~x-&-n>6*Ouj08llfpQ1$UU=8`sG>FBlo; z34_Hm!8&S|QPUi`)tALMRx@_eJ_vfyymx6oRJP5{yvQtI-gCAY@A7mLH2hu@3+ZxC z-;@imeMr_9U47>Nt97Qo$52n7hJA`_L6{ifv!XX!{0tmQj>TTD)h1Ky`Ow z#-UYBYZE)AReYtV%`E;G+wopEZzq`B&BV5kSBUG-Tw~i!qq>-H!PxnS`XQ$bf-u2Vxd)T*!UHF?r~SF!nwUl^dhw zf{dr-h%UpA<-(N5VEPB;jEeGhH3+tEewJUA9|oo8%8L~wZPQgd%@ZZ_w;;d|ndshRG=qHJTggW4_0vx7TK9PZFzJ1KvL7my##XQYJ4@`gs|X;r86S zU_&CwE;Dw@Of_AzEV#Y%W2W9coHDNw&G{KvF}i|F0* zk-1pcp<7SrHHV2|=3<6!ow-j9Mt_OyLw49EYVJ|Uy~yUCz}(();LvFLb<~gq(-Jhm zZ=!~LmZ<5kVQ#PF7H7zg=3JE;Lo!y}gXk1W!D!02JtT)*(hjac?hyFFOjKDuLU&fp z+qss;-&xJ#ISBh=uy7SH7X3OVRwA3rezc0`n$LdXW|!@6lXvrUBT8M2HVrX-F_X7f zS5yw0c0Wm-V*Vg2 z=w#aVWV}g`Yj9oHE_ViLFE0*DQ$yb>@k@q^X1yP`k$EHG#9+}s)6{uV#z9t_!#y1H zri8M7rdfl+Et?>tEC9hUqqlx-uE)X6yLlk+o}5-fF_k08ewGHHEB=ljTp(oFuf_50 zgtBtij!fQ68w#Cx)G_bOAe6+y)3jisWu%-Ubl_9JK>3$!`O+*Ogwl2+CZ9H!T!XI* zZu7;p{^qvMEs}F^3G5VR^1p4u!cP9orl!=thhcm`NJyP9&6cRk_SYFl+F0O22@`H2 z+5rw0KYI`>b}@2GxaBg@77Vm}a}9Ibdo474#bmG$PVt9dI4Si8_<=7v$Op()NhxO(ZWE$txSoF}S9&A6+#hNP-YKVMqQFGbT1p zvf3v9Z5}k_8dAoTlRycw)G6ZPGV9+>25a33A8&tHqrnH%-k#9NeI}2u69v%g{J=v4 zXdZKW2SP@kB{r?S)YRwa=OZz@5!%lCzsivowP6wYSC<6s4*~+;U9p`oaSneZW2|!x z&TGF6b}ZDGm{gspM|*g3)*gMv+}__IBWs9FBVo&R>?N)&UeT?(;yx43FCNHyn+xHH z2eRa>>pUP|yN zv3X5#zKQ)I&+BP=5L!Vf4nj@-r#z+D+0rK#J`6p@5>~D0l{8-Q(C*k#ub#O}^;eC6 zBQR#^W|10a{&f3$ebXS*Ns;oT)U4J*fs& z4auMOtR#}N(5TGg^0c$O`K$ddu&k){LL<3R9(AGX@hj?dxuJog;WL@Jy+$D;BZ=d} zr~CbG{quT-^0x@*m+;vpCvG?-5-bh5luym0t=`YQyrVZTWM&I_ z>)2vhtrkmTW+$*QgLyl8$srqK$m6=+o6D{@DU`pp=68qm>Itg5irKt3L#2xmy9t`n zDB-*tB*$~O!K^&`GK_fxCOn}qO=`pEi%lK&>Dpr6`oxag2Wq$Qrwf9Z+GciXvpu_m zw`oaqrAJU27%ccQH-csDuhZDm;NxJ}?6NilUlb0q%gEVD;^T>oJ(NVUC#B>yf?WyM zgq-uIxFRqR{2}AHPw$y_h4OC==a-DP$abA03MZPK5$OJw*}=!fJpbYw}} zl>E2(BiG};#7g#rcAcMb&c@2?~I_lqVgwUPHkY+*VAcucVhMR?k1mlUK{>2nLlf0?>_x%b5DCSglGUga045Xw#hC1`GV+No)61?{XI!zo1lohSGI56M64Xs^E`g& z;j=2PW?7$yT$KEqEQ5H#PW9YrOKyLpV)o@l4K6QB{on_E#>ALx8 zasB)EW-s^|*5t=Ho{!yHdu6cbT3(Yk9621ynvl99x4P6R3czt35&)iL=A|%y0F>7+PslAgT=*mqK{yimYtDX25IKC z|2jxJ(*B1*dIZ*FkbaVAOf*PkjCVqVRQ?%PZSW*9+YkNvIby&J(rKw2K9s?bOWL^y zsp0QA2B|dfFw7tgL^FdyO0Sr3kn}O5_X2WnH5W5TnOAD=&>+3XhmstmH*%tBMBXmg zJZo(}Pn&KBz=|l#cXq7q%Fuh6=^~bU1gcuD;P48 zk62e_*~Na*7vD;S^6%l1z~q;VZDe1|vE9|<@@F4?m;r(l(kCHjdcm|^SM6ws?j=2k z4ce=3>ktPYi5^^sJm%eORT-Xp!z~cM20P!4+T!7%{FTD_#ll>9h#PJ(2FXvY?k45G ze((qrcDm1!3T5bmKnViWxJEj1rM#;G<3V_GGan;2I>_|DM2as5HmNB5719PYk~31` zpA_(ckZt;Ra-aGyO@Bz9_@n9Zcl4%nGELxr}31%9lwzUPoP>mQ8{bj z37xghhM6#UfyGsFP)?Q7XgA|-2wBG??~F0hHoJX!2H3UJSU^|IA1G~I@V)t)ePZO! z7v{rSb5@cS;bg4t=1|Rjv}X6baXk;wY1>VErBC_IUr>+z39DrLo{dT88r7YNowJ7{ znZ@+*|EFtsxPp~wm1)es41S1c}`6c+?j=odX-sBOni^*Xh;+l`N%-?P7 znAa7Knx|KLMMOR>vundg|4@8k%j6znrw?m0{)^ZcrZ(ggreN^95r@22J+@eCu^&Y> zWR}Q#q?L)&$4Hde?=l4SZu!WZj_k`c`I4o`xKLnvwiSfW1 zo?s2;LyZl{jQ^5SKQq_R5Fq-(%hr{=5y+S>HN@QxERi?%(Om0_@FR1-pw_uLL%w)s ztjnRqj>D7kpiRt%zy0w!pFrA;X1hdIK2yi`F>n$7+djs1Vfz@=j{mlgg}cmMQ_Kv$ zjGnv{l6GFYybxl)UgbuNtFZZu#7z{}n%d%~ISSe3RA2%>VE!kD)R9IrMk@%;PVm(JBOuKACUF z<=wsO_!o4%>$v*^KD0mP?~tj1vi9IAKlA9liv!LvzYm|F2I5rM;A0T@K|Y!}=6Bx$ zn;4EZ=J!F4#ZKaL8T?XF##Z+0z90PLvrr>+_#D*6819?*xtLJwzB=8+3f@EmJ z4Bq}wxf_XH#ue3^!(reat9>VLmgn^ERl!MCTB(4g;~pGBad7_XqI|p0zb%u@i-JSv;ld zO4wor7R=hJ3q0ROPF{~T;J>7dS>|ffn5Ri8`22YL)6zzh-hfQuZPnk#d=7?= z^lfBVF=~N}{hj&*1~(N3OQ0;R=#KO_4+q;oq=_f_RL(qdlkbcUDHW3&F?&|`_k=P8 z2w!Wo&2^u1MLv`ZRxdjvQ|>aE8=|R0@~@I@!Uu9vQ6yGqG0v3uee`;GTYL#RNbn1~<`4%n8PCCPdI=4t>XDJUi+0mzAb8>RvBm)78mlS zW5{WrNna)*qUo7@9u%2#Kg;_s$Y$qU3om9O&zktUstYHZZm%Ye`jt$PV4(_6#c8yc z^)|P-aK9t7%VX}eOGn;oYVI@NIHWwc5`GvLYy#>uV zOyF7Ri@Ik-WiFlNX=^Vt#cJ7N8?L5H)YcMavze-^t!ruPS!S}+%4Y4K$X<75wVA$^ zhewzUUVYlTiJ9#DwOKDuWUnZ*+Dy;UUXB$l>8Vj>yYlX2HD5|!te*%s5<0&u&}i$z zY%?{ROix?;D9ze~Ss#td8mr~Eln>cavw1QsW7dqByoXrwIzpGNj8>pybRn}@ThGXz zC_WuXTfR6(s+2X+X8ni}b3WSjLR&H6O6PL9iJ$IE}XmJ21<@E%%P8-6cK z+bTZ0f`R%XtEjcV(k}E>ye?b}kMi8$T<|T4r!M$F zq0Gm|6aOQe*NMa4V6PBlv_QirbnAcdB z6IuLyhCQG{%4tXzb9sE~pXNCrXmLd}D0=r8m^NS8HJZJ%rcHNmWY397DeF+&9Rugk zc<}LjrE^*CVmfRsXLU=y0mt{GRB_EYTGE*<$*P%r1D^W+d;V)Qe{guUM=t*~&jxAR zGV7UE@F^YMvVx=hr{(^Ni`w985_clVy}+z^wkMg`ZX)6F94iZKn_#Hb!_8P5rqvQ# z$9=D~=1F;{7SlMZN33pji9P&F6n?D)#=q$P-;7sO<9Rdn-H1A7Hk$eoO#atpU5GO- zL*eumj~VjFN=htX39nhm&_rTqy6|OgYDezWvx~bLakt>e-PXT;TIOPGH&#J&X5gr6HV<%!7n_=I02T5`x0u_ZT{vau!CnX6xhnbS7OuLH>) z(gS+ym}nG#uHw97?m%Xvf!Y4Xe2&>T{r6e0EI((#*JeU^^R1DQ|H;S@H8K@O7F#3N z|0g5$)JQ8BS!<1C=lw6;`P)3_3?_9U7};ixy!D@qtW_gh5sDvMBYpmpk@n^(OVE-r zFtW!Qsra9aT&hMIz{vO3$bs|!i%-5WlRIe12?X*nYh=cMGV-DtSpp+xtdX|=$;bn0 zo@S#L(k^f|*yc)s&oOl%u)?nP**skm6m0Xxsn*cF;%%yV0I_*!d6!mM%e=}~j zgwpcGZ4`}s7}z>$CMk8a8M|hY2Qt^jWl70^k%W7w?TV=_W~|t!!p$Pp9pnMpPWU_R zLX?zp%l~b2A#LhMS4pX6CgyUlQWwV<1zXC~C7plVjg9+gw+q{#+et^}_R55e+)5nT z8OkKEP=Z;#${`Ce^TA+ncNjEm#3dlu`6C-rw<0d1_jIWI29}TS#xy;E^ZE58=Jql| zMn(`vx^Zs;3$2*dn-Q{b1F`e(GTA_LbYtd)t{Y}wZJpz_x`R9sN5bMm;@|^PvjufB z59qDuBvgj9H|$|ydTJ^jY&7Ze$&k%g-Lz2V$-hLXZzmgOgC5OtH1;~SD$>}p#HO(( zCe0@y{vxxph8tT??!%2RHBKn!$-(A?KQd0pn~9ITY-_xI*7Y*c*YTucI&0RG;BzZ; zKRuOq5)#OgdjfNNheAe%6EloL2dowe3^is6@7Iu_8pOd0;J;ZcKAz!ye`4WKAOz1% z6aEqTVb{pQvs~_s&`ufIq?8xT8pa3x)2QN|c?@XqxaSEK-cN2|xH-m;fh@mcZtwB^ zj?84gUV79&(jhX0gIg!BMn~{pQc6WLIQDkh{*1AIDa-4JRY|Eu%<(qzp?P*W=Y_QQ z(_cW~nt$JH+xNIHVH78&d}aRbp(4597i&$fnfeWz;O!rO9y}yEn-(uUyE;CStek+$7s1EJb$Dio9R(nup3KvwVCbIwojD zTjuuKgpAxo>>BZ|Y;rjoF`M@g-sn*IGu+wZ8?jqHzQ;hQCq7|rFEwQ3U1HaW+KC%+ zsW#$`Q2AjjAK!?(6Evb3b9;+JMrsqgMl8Aj6(*>O41U`6a~e;V{|4As+-*mZVyp@bv5I*)6+ zH!xKGQkIYJ?C(4m>&PDA*}!`|WMnt-2K?)kvE_4R4GYfAE2w%CLWSlKb738opvqy) z<}D1B?ndnTy{}-xes4OD{az9(U!LXT`+ZVR%yj-S@u>{*s*sU=#C(Tqb%N5%na$f3 zDm|Onb>Y&)UHB(AyO0$s--YGlyKr5CM$}+#?^wvlrNpigQ{+imj>+=4HsZ36b+YW0 zCc`uFjd(|Hm!fOro6PN95i&A`Sl))h-swL{=CuiB^@tONT63yiw@{%v#IBQX%eIrF zlT&j!Pn(;dgooaQFme(O-kFR{`*}Qkno829CQFE9|K4pAhj<0#c=e;h> z96846fj{m2rUh@>1`gQG3nuU`{u3xyb7H3kKrj_ zFzFw}-Lkvc@R&I={n`*mCcT-@GWPP%4f)rEGI2haB#ao$r5N+MnLH>*zy@~=GM|rz z-199D6!9apLeJft&x@JcI~g)Elb9nkEJ5jk%;ufh&PI)yOu1@TdeF$VYl>M9A3!8M`w zcH-eCehg}5o?Z)60MQqM&mh|om z8GM@9jX`eNm2-^2;lG@FB2SU(v8uQ=wVVo@GgHjV%n8@jheJ&{&Er74dq3x~SsnB- zb9;kAMphEjy;BpEp1^G0=uqk5#LgSXWh=?yjjvBSZ@6Vd*3{=iwyvSA`0nIM(4c=} z&Y<^V$jD)0c4sTk(&~(j%;qf!m41WRb*EC|?i6Bo^f84wlX+%Aa<5SM*|$f|9P;}! z=0p>D_rV{7)0FJI!O<<@OTXu_3npl?eSH2KdeApG$*?NeedUfht9HWog4gpXZEVP@ z;6KGO?jzQOwWmZ%$^tH@1ixQc$oAVNXx2ostQQhCt4i30ZPqU=6W^@B!gY}so`2%; zIe2ONl4N=B*lbg|lBNdV8VY{@od)mW%g3Sqyg*BEkv$F}lKrt1(kBAMby*182Vd(7e1Gqmu{aA5r1g^8e+1YDa3F85J?ki1v}U3QegH%I(@md9gQkzuo6zWFSUC#Lj9xK_~ne>zGz`p83b^?5~zMPpqO%(*)D%$amJ-c36X^ za9SaVf)7saV5R((kUQDSDk{F8Hbsu1$NfL#7b7v#a&M08o`3T!oVF=z8Gq9np9!{+ zfBOj4y4Sn##ZtcBwINh8SVn4^j>+@?gdgnjw+;Wk);S^>zhz{mKufc zK^PSP53d`|S*iCvhU=(b`A0W^L7A7(;MHh0{!2=I$XsLYSHOdSlrb)D{_(ZoNxhSW z&+iV7zj_~qLgHH*end(AhCg260|(!p#l${uFEXnbStwM{iq-^|gHMMEXOI^h~0@0)z$fB3?A zhQptV@d*F!e58%nX-y?VH9f+bGXJthLvzc+%VF~LOq_ot2^C3?-oV(w^Jm=2+kHFF0zQV^GnQPB{Jz9leUj^&UYQAopZzgC4mHlCWZlu< za&&&j8*%n4_t6q@-6_NFWSIpAF%`V9*_<~E=7r5(=4YTdX5pEABWHqZiSsvd`TNbA ztadaWxIgp?4^A*rmHc3>{TFKeuX%>%XLs9(qQBe_{uufy6I7;dX;ikKE>i=}Pum>K z=y~W#VazwuB&jL`6J&Ly$gx+VQT z_Pzv8?xM;+iYN|B7F000;12>Mfi%-SJ$JZ*g8ab??}*3t%=Dy(%uEm6J!C?R8pR_* z6m?gPvL4HNqbuHm$8rdGpm?Fd1CdoaX4mELK9>J`uc}^E{eJbU{#{`|pa0*6)O7!T z^}er;SFc{Zy81Y(rPJ=aPa(L9u@M9J6#(OZ~SW;@zF+j|Z{z~PC`ZdlJRgbW|@6irB zHHQ6Z^wHP#BOKNez0@e;>I;$|C2Ukl&x7V6D`|^SNtfQMlB8?nrTUrK=RKF1HeQVg zcXw+)QN$!oox>V$FrbGRM(EAM8t*aQ9>#B3^z|48Q!IxvKVzRAtOC6f0pPmVA6tAE z4{3Z}ytsv5sPOYe@LNRH6cjMb2-QAnkpafBgTIF{buP)*Scsj%A zvOAS(p4!5#MsC;eV`Wd0?_Ns4#Shx~sR!XM=bbx{Qf^Tn`{wdj{x=qcTFCx=_V?|$ zZtN|X#O0TK6GHj@)t|-4_jNC&yVJGx^6Gcvb1O4v@miur*GT27?pEc>2Tj(Pr_SRG zIa=d42KDLu7(|lvt`y0&{G#zkBmQIf@!kXFxn>WCGT@VPsg2-Se?lEzT-o`l3Ko*M zl*1^bwW#D&A$^<;X}_wl<``a~!5YG?V=p%2dTzv8)E{wErF`31WrtvkoR{71!2m;Y59)hhqX`LQhj zI^Eh5TmCC`LY`qHeydTORMz2Z>i0!vhz*YH6EpQpt z?8WcIhAwv|-~SmBJX#agy@4(M9XDWQ%|kq{tPkmzH;%nq=nC8bZY_+u$cQ9PGhcqu z;TY-nun_S%KTzc=D(PY5CfNITG9#~tmPmdC@{>s)7bshlM$5VU1ZF~|g-PiSLLfRL z!iFvAAZW|>{yoLOa_S;8BL?^&B5pKNG2+67tJ#d^f#@O+MBl|Pt#rLsKgL!>Tx+-5 zd43FoY~a{?!2?4*3iXZMQ~3o9TwkTS9o3b|Z4+=90SXyxoz(`vCdsF<;vruUpJJ;kVHq zItOh3Zxli}o#KDiRktnfyr_zaV5ko>l!kbI2x4^Xe_nRNbDy{KQ$)J+3+oUed=!o7 zCU?9R-@W9;+iygs+ixJ&uidc@+diu@DH3A9A{>0(qc|PhFi&Jz*`HrZS)l^$1eW;! zjE!rMjxSIFD-i(`%4OYs%%CvOJ_N&Yv8xu+?znc%V{kNcG5PIwY!}MJXx9x!fr@|T z9z{nLzx<*vU@`oP+O%a@-Sc!+O^vqE4IFou5*&~t*<&x~!9e5nM%4R%$x$ujw`t@{ zjp(=N=#2d7Jqn_6nGyAU9Chz0Vy@<8BeuO!)jU365Y958$nxH6bO%Pq2kT-Jb=y6j zje9WKuSTeQy8C}yrAn6JS|~#(3~YMvM;eR-B}?e5Xtt3lz6T|v@f88|gA)?NgnPQTQsLoyQ9NVY|9C(AczMMHc_D*<1B{!e z*icB&zXA7H<9@8bd%M55*^-3Ce!FeH?QB(^jfZ|)4@z!fA7BpZz#b*Eok8 zIIq(XQ|K1OFM73edxFU-9)R)f2%oBpX{b%WoMtpVByY2%PPHoT|p@8aT5W z=T8D>%#XA8OfG^4eMigc(Trn`KtVvLS+n{faXAbclk`;I-Q7!b>Db$b#~Ij)#N=%E zvwN*FT7J2_jMdy?dN!$t?{1Ufh`%7GI7e~^O%6@VEIMg z1Wbj0Z3KTcM;AAs-QB%vr79Hyc>eN>E&(cw$9-%QNFL`IJYGz(jVyeHW9tJp8;=qN zjs?^GyOv`$`dl5%}exqu@%<^-nD+0cY{A^eu%D+i{#?9YX{2Hel z^lO$G7mIpx1FWdV_FhoCmyD~&& zOMqi|#OY(Unw&XZ$y(!6A~Dpe{)I{aziM|F95relVY1Lw$)LOu*(N62`^@cEqoszQ z&KZp_8`x)XByqlrQv9oKSAdP1jOd4P^v2D`<7N8sci^$OibiM%aUacUT2M^wvaDEK z&jQx?xqp;P&g?`o}h5EGjtDN=0aVw4}U5zeN~SNIVOu6XZZXALAmTGLcawqm^&(j;u* zy+dO29z0mqgXn0;i6mM^qp!w6A_tV&r`)D$SY`jlAL0{J#4$nLkMa= zy6NYbUiyY@q3@i=wfUb$0e_U;kb~wNe?VnKl6rS{5dMZGel3gk zo>x*5C@!rN>K?#JP<<#U9`J==0%RBc3toQEfQd_JN!`tm2V+pO{G#It*2vkFOrvvl z#Sc^!H6pa^n#dk{JA4 z!jBtI07gQ|%KN@o*eiY)+Wr(Z)fZ-7J3si?F0YJZexM%GB({A+EyO z+QX(Xl%Z;v-_sB6Z3|cP3y%9ieq^_wi^J{b{$K zq0NYA8`nC5g^S5=6%wP*FjchGy_sz# z)#_TXBFk!ZO^%{k-Gg9w?{9VMm`0b!FsHInGZOyDFd;1#yI*MNLm ztS=-Q+3K$6_z?9f5>jWYyQlk)_o<@({m=Jv720-|#>Pe?wda4=ZhH@b<8fJBsqN7T ztKD&(5+$tK?y+3Tf5$N!bHK=IdrzU&z;@f~vivl*843I0cT~c>ZLhXYm0#mE2K76b zniUCg6>AXY*iga#kLrhZYjvN^FLX8k39A-LSJRPMWsY!cgXLZN;RuVt!wu|%89UTF{J#4XC_-gjsaEwPmKuE>#@&64{Pza( zXTPb+Pv0gGb^=_a4R6yLoiiR&35hQGx$eiO@MF=Xgif*u__e66?p?Q_Dkdox7lOdm zym<09XK4_C;# z;D^jC{e_bs0apm~LfKz7skv zEh2aGIyNoj71zC32VtGfQKW@<9a@!EgTJe)1g0@*2uJXBm2qpM_Mh1NPUN(3mk`zsis0YGAQgReB@V=@UDIwvx|R^794&;v@$aZ}$=W*vj;Cb#k1m zYz4JW>Z#Pw$w-pGml7~lihT02$dg(9#IcO}O>n)dv^F|M_P_R3E>*SA;)85A=@ebg z(Ha*T)R*vM-Ck*4lZ4Hx)q|P8wfkb7gV`{nLb=LPkZu_gxhn%v*)un6JYV227*j9s0dEQdW4eUL&Lc`FCG)qbdLr7<#seo0TdndVH>qD)WEq zSCH6Lb6CLLFMLU1lEca<&*c|g1`$+cOO)NPI7~=4_Y-%pO=1~vU*pG?RU-~W!8)`2 zlOMT3C4<&7Q+;2`;@Nn&(H368QMDMHW2Jk0G~Gu=)4hfh$XPj*A6bbzh&k$p`X?$* zOlRW*M&j<|$8m{Uj(XVH24oRm08S<;sA`n(GHq0;N1OPOmDEY*uao+8eg=IM39{+J zI*NgC^)hDVp6>AXU>qY!O|C@TE;(x=4|1BN=`^MwX@nfT? z>>lcL+Wtg^{4;~{WlX6?Cgv)!bF^*54gD!hVKvobIjTr^Nf+9QP_s(VNo`S?b$`Rw z@ZN7Ueqp5PS8OgAxls#)c|FmmnH+A6`4XyJ{B)jWEI@m5W3K`G7KXJJR%(M^r?|mU z_uw*X1O6Bd5BDbGRugJpZ^u})eqzsShyWD=e#}U?a#=>I!7FQv$z5!~i(RisyLhrC zkKeskNd_-)yOODN+OObfX8)$HEQF<=KfaDla#&A6BPg-Nbdu3_-0(R}z}QXOI*ogb zB76p8>#U#1&l-O)q8`JKb<+B{^)&u!ME%n>Dr4l^+WR_J!Y_UUb*I1UzWZ90{0H4M zcFnf48V|lzkKX=`p|mmok1Vi_M;cKt;;7rNK~=u@6E<75Er$%4O7{%5^W(&=^W?@M z2L92EZx!gBd+pQ2 zZ)O`BP7}Wx+?OPpYN()=RAVcYd!DUzu5Z-TH}G=l3-!YrY4!8-KCCK$QnA=aJoa3U z{flX@tk;BqM!HPQZ>-iYZWQ}g7Y|iytWhBdyl0^Tz=cE06o>W5LEVCSC)*#;WPaB@ z0b}bmS&HN!Br$iVUBP5KZm>qqZ_zJq+%pX&XBkP0`Yq&zDwcL*cVDPqsJ#3=ry7_q z+jBAJXghr4ckq4Lo+bpGqk|cWa`Zxs9nBH;4_1zDV{0Xpqighw8~6MJ$^xdxT$66f z19ug#*JL;F!C6#$ba89b(RiAt@b`zg_z!=gXl8GCm8{Q+aAlP*$* z%V!2a7{qOvSCD*TSs1b5*D?t~gm>z9&k7@Ba(4Vu-Gkg1W8`PXA!{)4jWUERLodRt zcHDXYeT_31|6UR&O!>}NVf%w@J&Rv{pI?e28#Fv#mjp8ZyT;qGn2-A|ni8n`#P9$4 zED91;!zKi~6a%WDw~!T&?5ujb_Hj9lSaaInWIxczlhH(N!6Xq_A(lsT2gg4zkE5r^h?$E$P=ce>VuzVAvxd& zAW*{?kW`)YF?xC0m0#XTgH6m}B%Ouo%dljRatdmk0+#I4`Q?-NWl@s-BF660c+-;X z^Z4c0`K4d713Gw1>+Ii<7mh4}S0dQQF(Ap_@j<6#Z~tdovd`DQ_km>J%o+UEmsN6h zDofyd{PJdgsih(+*%5ix2@Xm2j~Kbl$gXk~=c-5}>nn7tye`^Z)ag;tb`kGkyH(Mi z@Bx(<%g8$RGP`IG)xUL0=^N=r3P|WpJA@|$)WD>jpWX^l*USa+2WU>qV3hR zf4-BBS%Y5TI0ie0!FIk<_6h_1@&JAr;`B_>Nl;dQ8G2`S%6I8^qV+vD+`ELTd5n2q z@{ck*gJ0HRV2^s45U zavneU1(io#PU0IDi*Wyh3yjKK*W^VEb}oZ)OXXuD5IQ zh!1haJmfa0#3x`tHTlW+Dp0FUe&nr8KsEVJ{Tp+u^G1azg6yjIEKClm-bZsDxh9{^ zFMt0zl~#klPL9_9KM%jhSF(n5{7_qdF7tU~9G`tw$uDN!k7C|EE4fbdA-aDZqh6Hy z*E-@|gaK9ZH{Y!a&Z^`a{?V@F&*!jw@z^$U-?N@ zzO0dF`DLA7hASDFBr>7e4E9(CV-spCzx*?K930{lZLS4X^DCM6%b9o2YX0^Y>}q}= zb+6Q1cOu@$FraE4Co4Bn%>!?=tNAGXJ9#xHZm!?qJihZvRn3`e@-_y08iR37{+wS{ z_+^OGKC8(+%=^>q&F@*04}%$JbBf?c)Q3_{{s!?L^J7($3uNU+YO=A@uF2=?-^pu| zVkT*@XJB$jA%2@Y7?>PxuutQcpW>HB;j_3TYOv2?u#GM-Oz}Re$rmy2z3f5nS(7Jy z-mb}m-^CTvK)f9oP@8-|S-Fv#eAmTHK*sPJ^lz#k9Z;`ELBts5Lhhw{ui`vDjPqzz zR)|@4Q|Mae^X`wvwEcZnk6&ZnE17rCdR&Ba+RYaEf2gCR7WsX|`x6FKk3S_tHd2qb z?y&3e2K`%?Dt+_RBfsxekENeLa;Qa~LLL#TMGo=Hqxj{%sN@rw&sFT05AoS&mHZ^; zeKPazS;?1v+OFg&>L#g@pN@DP45*U-NQP{rlJ9w~UCDRo-}|7F-^zJ>0Xa*oN`4o= zJc(b13Sa!x8Y7c2{66OMeH!OuB0_xjStWmzd2e9eJuCSmpR_Ca<lUH)$WfS}T6p}+Nd6DM;Lgj0^cv38z=wsx^GqSVvFjs2v z!rUk9(p&#F&ir!38^wT1?^ZG%Bc=DviB0ID%!n$#(v?_#xOPM={&bmY*eCZH~?VJ+uc#NfX$xDFa^_g5Gk3_7_xiorWDxE_O>UkAZ~ z&?9$0gu$ONcGeFL}w_vdIQV9M7gR?<% zba!HKIdl}={oVq>FxUm%H(_wWTv zSck!t7##LF2wsQ5A2B!&T)y2uV=!+Q0fPU;;3+pka0LdtZh~O>S0Q*c27kuj{I5Z97Y6%% z1A?iWA^7GuA-MGx2#)$L1m}Jqg5TZ>!Lxn{!NP6`Zo3VFzx)V-^*@2&l%GQI6AZTA z4#8J2IOAs!^xXl$=@|Sw25?W;Se1A z1PI;}K+t~_1Rq)n!OCMG_~&CGIBYcpFFg)|{ZD}4yfOse8i3#lgAn{>7=qnn5Ik!g z1g}07g4^MGhwj*uA^6={5WN1W5Ipl45G*|lf)73$g5A%Bpl<^NZ+RgE&-e!j9ytZU zOE*IBv`r9PI}gEd3xd^)5PW?Jg2`|1V_M8;N5dR1i^|cAh_dW5S(!(1Rwb%1ntj2@QBYt z@V=`dxa><1yyY4Q{`GnYK7Atu-~Ji|=iUs#LEnbpn(yJW-4J}~#}J%(I|Sdk1A>t| zA-L>6AUOV)5L|i}1kdS0@W(w6ym&7J5B@I*uKqOyox34;?7a|t;XVld;kOV>{SJZy z{s6%he}v!}e}>?Qzd|s+?0(?39|V^^41$RRA^6bY5Zr$R1m8Lmg15t^UERx1fZ)gd z5Ind7!8$lry8HA&2rj|ks~9|V2!bbK@CppRh{2yQ7#W73gTa*;{2GJp>mhjf6Cv2| zSrA0d$c zw*Q3Sg>V*p_sF{;_zyUXqI*4@7}EXM-$L+{-`#&d?(Y@Xd*PP=gZ^dfCnn*q_~7!w zqu?K`xTWR%^0D;?dvf(r-|_GI)8IeY#jif<9sX9|Dc<_^>-*rJil-KatKa5dMQ1+4 z@83H+@D z{=Y2&9D1wFNA>M1)T{r+zaN7=5Q@D{A?{L9A5*uP-2U3FnE+gV!bU~kaut3D` z&w}r$C-M7>;XC5u_Zj$({U?6!z;{%Y`2FSZ9gakz@2`jNm?C`sPw*WN1jO&}f$#8# zzJD0LEBsHvcZL5Y_^$A8g6|6dJMdlM{}{e2{9nR%g^zUg+7hy&uao-gl>R!QzqS`R z?u7o@hCE7yDf)_OtIgs={5Hworuf?gf2+}AGm6LGruf@L0|4lQwg=|_@%>Zv3;H{q zEo6;+T3RG$$yjlJur|@6K>tSo|5n34{Dhw$4bSl1TKHFne}nMvMEHjvELrr5sK2-d z1;3lWaXBM?6fVY5Jk96kcZ{QcBR+l*6ERF|d`=%Ih7-Y`@nrb-H2C*i`1ca{Hv|7V z@b4Ay@AdFcMgM>C@6nhkRXD0*mC1+&hXsiRiz0*n&V+yX!M`Y&7t0H6@%vlhJI2B9 z?}hKGX%S%+gF8Ww*K8MJ@zUlqTf zC*PkT->csrlJsYdig^Dm;PP>i5<1{VPWVJ+uKzkNSPDeE*;F{h)lW zem_?7`_+)3d%k?HexEMiKSt8OO1@XWPmu2wzqt_qbLIP2Nc^|U_v-g|;60Wney|)* zIYp%7!g2kaUdjODY=C<{@h|=h({GmaZ}!md^3eaAr2nvoez%AIE=hl_hknIj@#%lU zsp8#j9{LR)`sYdddp-2K4Ek$g%D-=2eEIM8(5v!4%0s{6u{!@@{;K@PJ@gwq^s4-y z>7n1{p;zU9o`-(7hhCNcD?RipR_Oer{GuGc`6ON5`1=L$TdErPr9b#?Lx^6z#dmKw zS>Pc(YQyjcErmXc%07v2C1LkDCJhQ|6$M<3fC+L z}^X|Z=PKlpC9L9fz}<%jPS|J9N{ zTm~3t#pC1iujtfIhDLSNy%s|6P)QxcremuKYI`^eX+~^1nsWt1`s2HiUw zpQ4TA-=J6N50^jEE4py`uQ*)ie|wDlzt>a#8yxg1-RkcvJmtU3puZ$W{*gYe{C6Al zD*fT|e~YL5R~!+af0h2Pc*=i+L9fyuE`OwtEB{>v{g-0o|2&WW+3lcL=~jQw_UNA# zPtf_lDMtR0KCb*X81yRr;qrfxNB`_{(1+#!vxO8;MF`XLEygDLtIN9+8n^oQja=`lWj zR2~%l27~@Gng7q6EHKsIQ$6Y5<)HuCNy+JV8}uKQ{Eq|vBDJE8oFn4=vRXLhM(has(*w2vN(Fsr*ZTvj??)^ ze`7cv^0>|;zZ(pC^e4LL`#tir%b-Vpt&9H69{Sw|J^FK9^!Iq^R~)bNkN#2@{R=$u zx51!Cf2@oCD<1k?20i+lUG%Fw^0V8ZM}M-5{D|=(O>PN?|SGr81(25chNuD zBfq;0`a5Ite~L$bcN_G|e~$K#N(ag>`nT0@{Hyvwe7B;c^RN8lVS4nx$I)*v=+*o~ zm>%aB;^=o7^lE-0Opo&!arCaJDDO`NJrA6gG_KtJh6n^T6H4m zsXH<;ibNL7urwx{a|^Xr9g~AI?~~1iE%;r$TG%3s2CfaFSEY$99g2%H@fepL7?Gyx zldbw(eI6FYEL(aCGS(v2)!@*~>rHZcEV$s2f?Zt^st2Rl6f;`mk(sZji zhcqanOM)EZ!&j!qLMT`IA(66}QE1Cme1Mb)S00kDOLE;07D9Qf-#|eDE>FM{q`@4O zr_^gj^eB8f9gGh2pSL(i)xxC}xL*a-3i_vJ+6&bI1jaj691sDPv=I%LaA35m#YvRw zkumQgyn?uhA!aE1$ZU|AktpGsp3vh63%EZu947>hi&GF~h{1)-9qxD@fmcZ|iQ|fD zm>FnkRYetk7hx30)I=hNa-$?*#9~H`KtY6FMOY~b2*(R?Qk62voJgsu5-}b}IH*c7 z%OqkD&^wiDgMtY{r=OR5QFQb*9j1>op+~|4WX+=KOT?;%M zR8fWGVA;ddA^B8^3Ra869+t0UT^}L{M&wh&NWqS5bgW<0DgBt}7nP13Y}LWX-z*B1x-&;-eg=+%=EOb zpNc}Jr_=hWC}K?7MMSid+2UA>dH(QHj4~Sz}SQE?~I@nbn5L+N%f2Ki?g$( zP4(7%eYVu@v}WcvQukM?&n%~q%05^2R@EELpKIU(_EbAF?u1rqwKhA>h|qB79wAPZI0 zl&lz}Tib(7*M~(a5sq+DQzeM#ZHhQGDdRi2&CHXyNhy-TS8C5(SQpe2idvNLV@#en z3a&%k`Hi!6l-DO>@Fcv#hRZ@ksVywj=cn56Vi^j3=&dNHSxAZCAwoyQ_GE3oG(FR5 zcXY(bDf~V;b$k?;qPI8AEVN4q-YzZ9cV=cw)6KZ)>>Pu5m_YbTDdZXgOQz|r5tKL~`&9_U~^DfPF z5=Ij$=O_~sgd9{A>EiJ~pavJzW*6%?USQ5fEP-b@?1g<7XRy*P`JpZFv} zVzqaQs4`KeY=FvaPJ@n|mHIrIOd8cqEKW~@GF6Ed*hfbaYsZx?j{2$|@u0g=iIBnw z!nd(;To1BV9rZ@LB+`aVULth^HS6&JwR3$c=rjX*j$bgNQmI(2+a#0~Bl4(=+|qDX ze5q)V;E7MdW_daqisOMLAA-UzAg#pKKNQGnVAzCOor_8pYiW9Ru?<}UaulQ+QM-xM z(Col?&|K^U&FP@M0G)py`lnd9jA({3U5`y4+O4InWg=`5kP(qN#K#Id$%GHlkYNP| zbG01xIyyF1lku(YG8CT~LR_Lh$~eB}dcfykpg13nS%O0`C&0`r zjltYnspf)lKAesuq((5)=(n7ihfZ{6DgbmCqt`$M8`>C)YCJ$jwb|L`Bjv(1`8IFgXiWGO)skg}h# z9Xt(35DMkQ-dq-7p;?Mh zz9L_UvOw^Mi(ZbZP$%djt#5>+s2anrT)pbEjA!*!xC>(I&GK3}X(Ba-!!4F{CkZ{2 z;vvbay@}BO6X4(grAm@{dBs((TZ+lQG#+@XHRNnSA3dfjw)8BWCVcuv{7A`Jx-$~p zQEFE0L!jl8TGDMl2!hV3s zViSbwoLd`5H`8I&ILAoDo`FSoFML{^)?(fE4v;M%UQX9$+jYz4FiBxC5{$iCozg}~ z2aZ8I&^wf1Sc6?HSjX~@)pbdF^Z?>(Frj5ER~pDqNNGT`0_|-X*&37>kkF|%OX&PW ztH){7ha;1lwO10TFt8HVPe4G6PQqnLN!5N-jAmJbCSOsuIc z(nTUR)djf!(3vZSSY+wKDxf-XrWiEA47e>V#)AJ;;7>93n~E1Db@HeL1f>CNkz$}isj)|mGV7M?8j4}2svc_N`LTnL1P@AyY4LN)|%}sSM8K`nB1oJJlQp*O> z@6eN^z%3CrqTnjBk}Ngiv(hZ_n25mAsu*W9%{>Ux#I8+Pjt%m(q9nG3*BFLzC>pg1 z%Q|z!0zdP7owDCoo3NV-dUtI|aJ7R|mb?sD!?lSZFw4P!pKo?JAs7`Z&MMoOsFWI! z@S_tTqroc@(r4=jopduHM)I8%ZX}AF-8dGWnHTjg5@n6Re9^69wJcW`l`dB1C(CzD zl2TA3oqNl7bUz!_wN>9bY-c!63ep^^* zH8WS64H+C(ujz>XAV3+jl#wG+35SFjvuw$qD<+$X zU-VLl8+Hh#O4-T|cwJ@52nS|qLU{Nrb376W-F-b{*yR?*5RSk#kSH(*twf9m(8&a~ zfC`CxdSp?L2Uxji^;up;GNeH2r=-yrHSEMo&=x3!L9jBYS-u7afMKMV>f79C&cd{9 za}IY_NLWju^&|miR%?$Em?I6Elxt3-@~utu&&$Jgt5##S zqnaZ>NRpm2fH@UQPCR5ySS&^Yj#Y?Bv$S$NA=AJy@8g!N1I=s=+V3gjSPz&Bh+++a zbPOtV%NnT9&2(s5L=K*DV$G5gj=PmI#Je339Nz zsnSG$f}J&Xkw_b0VT=bG>!83k)whsJrG-^OjZQYFNO_UH?Hy&Xca%u!_a+(c9c83<6t0q$kt&f6CbyJZ)|Xu)MAvWIXRa8P zo)}ymJ!4jT#u)4wBT@%FDTaH-80i^*}u$RbsOHd74O?fioCI_*a5X+-7m-mOpSM7 zri-S@amKF=1It-Gt!8zWL_#((&bZ+hvg*;Q5c_!Lqsp*)R2jzlDlfr?x4F5|0KRjd zjGGGhAks2hNLoV(o_eM&{Sz@^WczWHHYvAhl17f%|KalYbk%BaE8Nl1FK3OVr;TPIVbmxmV^O2~sO7lQDpLoO@xUCoKBEVydkE`K z=vXF9nS9G7TK^MMpVjmrhBU3^5HVe8Vy=C*^{G1fd1UexZ=V%krFXBspPWcz@oWT=L7MF)?bRJm?SGV;;~Lk+)GLXwr7V zNx;QER47*Gw}8=LE&@)suvVJTb4a3{aEy#8H26TABz!2E;A2hgq1FV~xZDDzC+5X^ zAZsek5moPiB1LNX6gWDq51{vLCmyU%F`|fV86cFf#RwJo9eK5xj8RJ{y;aLFn$HiD|F(X5G=Hsv(1f* z^@NlI)M*4mL;cvGOZAC`goIVJmVcsZqhXsRC+3a-0Np79Z!e+q)hYQOM|lQC%5vV1gAYjMS&07Q|BS6xOa zA^~kJ0;wq-!jKvxDi*0BJOYv$%ONVMF+4((8p|aoAIixSnroz**9H?xMT`9FN}Z6c*3T4NqTpHG zxHyAbTw(mVv6pek<>#PuwA<9&qYXDTgs0`E#!^i;HDP?)O%0W*@lLKujjvj7YC=!* zO^xMfzfM!eD}SB_oF2^8g43gfn=pD~+)cQ2vh+#y!_j@JRin2okk5k?O95`73Tk~~ zj4E79_?Vl$Z1kw^BO^jCI<@Lb(CdCW6_um0r=pKG^i<@YMxF{sHSknK@r^qb3^(ji zJmN2ibi**;B)k1Gx*$?vkD$jhfKT|`$5bezvSUw0G#1~hhkTL3vlSvT*rVhYZR0ZXD93>r=ZK#SSE4hb+{J$%Q%aQ85_?+?NCWsV4_+n3yMcEWr0(=DGM#RsE?*% zZfdqz6-0LwZV&&5$03%5j#;@%dtOd_rh=x5m|p6#lhY~w9@d>W(fr+uB{Ja| zO+c-f$b>_iz}>4RGT~L1r!`4p3T!ZBl31!qFwvT*qER^2kVYQcYAp=g zk=t;F73gHRssm01hO-A~158ZeSVyV!K(UGlxA_=Fg#C#ssdfN|=XM%(vC#vIY*h!g zs&A?XwRxBr=X6z5OjIRjLGkF{ zEO1KMW}%JOtXa_La2M2bFtAX!wBmj>nBkmU$^tloI}j0Y!n$2GfQxhSps_5Fqr93c zbX#v0urXo&fyu5HgTqcW%5PeW9c8>i=Wg_LwuX!y7{wDY&7T%CtRcLCw4T_C`)^5T`71wBxt!mi%!aW1?s&r2WJ7W-oO?|h`s%W$mCJm88 zucaZ6>a#S|p?WoEaMHji{gs9$UT>vA@#?EIKyi9XI%(2Cjjog`Z?%$);LLi>befQM zS(66Sr>6YtQK<#0glP4YipZmuQsFq%Q7Zb7xSDDx6^={&qyq4&9o(@VYgAR#VAvXg z8zXZZ<-%n`KF5KTR2Qk`EjS;NBV9G9^XhOpEnKzJ0*?S)WJos`fkWk~i|c|qI92K` z9P76_!KzAmm2$JJDle^qlQht`vj}H%PRwjvY%aFf25>jA)QJK32q1zyN%aKlU>s)> zW1I>-EK>b?OVnT;lm_b-m%(ZsY~ohr@;+DW0ob|ThLcFCZ|1drd4U`XKQCmo6Ud7g zYH4Q2kQZ8Y7I|^vJCMA{-cBVicw9##4dT4;qcQfjbkygCAB(fSEthD9=2a0&21w0{DQ_=W3dVVr?8t-cP~TDcoXZgt8yv7%h~zyLO$Lca?`Y}nlfS6Puq zW)*a~biFWLC5wkRp`T{emQ~g!gII35e?46AieK?6RwU{Tbg-gbdhF4Zk)@w}VQWwhnZztcEIElYl_2 z0Z9C>l90RBaU`J&FWg8%LuZBJ=8q(i9V<7JkVO}2CZY1I z%S=M9mSHA|I~qNeK`yyWLOsUD3LNtfn|a0gP)o`=m;hoxx!aP&bqr$%#>G0uB;=0K zYZ9`ME-?qKNyuGe)g*M`Au6stMpX{oXk;Z49^e)P8`>2CdY0S zPHo4P1g)8kjgEhw1wnjyGUmpO0)7Z20?JeNgJx-(CkUODFxPmm;xyd#N$H1sf#a83 ztj~yOm7wbLjS>VAfCPvFY+HwnI=gjIVBuuDi>jwA%3|HfLU?wHOwQHjwofw2?OJ5S+pyCJs0C>irdvR< zWy>U-ny~Ct)8>@B+jcJjjWq42q~K3Yn-d_uxR#(jF*BxBc1HkANDx)ymWfECeC@<1 zC_Q6t-qXBIDSS@Cd`FtM8jkupnxqxw0k=vQXIkyjRjHt!Th?y4sVD6~eW}pR-SRXX z1qrfz_{ua7 z*mNpq2UUaZ>ANPWC@JwaL_RU>77Z}Ga3AGvu zFSN)3;TRBBd0tmN z-cgnX&UL6x7M$?0I(V8Ij^JQWEPMF1!4`FJr|#jU9}4Aw`{*TOUUx#D_o$WZ*!|(`ynE1kR8tl>hpNf~6B2q;b!CBbsj@6MUe%`dI!APu#c6SV(|mLDJT4=n z{p>#1y0vmTN@%&w)l@AkLVZh;1H6L9X7;$fcrcYgI zX-e%sma-kdW+GT(9qI$}fH-=BJaEzeAP<_SSI7ga`i49h@jXNyRNYVHK^Z~8B(bFX zzVblDcNBS0Q+F5RIhsk@P9qmD-F4)Gq4m{NgJQXDE-=-1ZAh~cI{YWl6Pj8Y7 z*VU)w0`&GQ2Z){pmJ@H4do*$C)fhC{V~A7D<`EvZ;09Tv+whI0tThWgaZ(MfhEgTb zSm9+&je9*~Y9Ec23$bap)Na(KnzVGV-kNK|h2h{1!{KEcOGmAr(4(sC5RU#dJ6ND45?h~xb1QeX5UA64#$t-WH7#kz%X z`L$0JDrGUpj6R#tNmJ5y(i1_Ox;>+M{2@JQtA{~WFqw`6r+N}gLD|+bqS#l8yA$== z9J#WwC+%?571EPtB>pJ=p0uM5_eM{mF`px&hgp?c9UV+n=G-}sV#k6ht+Lsf3+iDN z)gzumL-nADDySX=9{tpVQmLmN(c-mJ4??eU>OtE>H}#;_s;NiBc+F(#w5R}7%8!%n z-F>EBFY*c|4An)PUh4%w_jd>YhsNneT~)e!Td$ao0k!fG_aYs7w9MmR=s>?-guc~i zy=c`|_+Ifm_d53?b?kxfK{DXEw7D0lYwvq6n()5&yha_Y@4%JVxDQD!-x}okL5~*2 z-Xp9Us>{^=qdOQJ9&|GeGe)3ARw+sz^8lrqo`Tfg@hjF`sl0 z8_uDGmL#O6bZG6=7*SoG8X{Dk<~p?0SW54wCXDY5QbT$Bh}393dXCh1aT6=jSWS%= zd)j7yT0!<6ubCcAou`?e(&0K)E4R{vIZn(>4?@PgdxKSaFxQ!w=~0p&f@vK4gIk${ zsAoB1H9KN&t^mOo^m)VoI`jjhGV1qYrCK zDY3LRw6`?NX`Ym5-tEjOvEsHeOTCI`zHztSTW~AoIDcbWpbCyoV@%$(SOc+GwWYLJ zYK2r~uAH1=%ZL7RDkmie|RxWbN zDb}egj!Du!(_RrBnz$E9RQ2|v@aWoJq)NH=iWjdxpLrISy`1F=A}-GMXD=Uhkq6`$HwW@^Q~Ao^hVi7h2KcOa~Elan~qZ*txZdIyxvZ4x1wWgl4GeuN0L)` zjvBG{e|kl(;y7U>1-0j3krXJd^F&gRhmR5QG+|@C)5Elsgq}fLN~9rG zMAa#E>`DpF7o;P8)X^&`A>)_Og#4qu#Y+tnQ>MT(XiSOZ7(%8)@C_(aBDsc_DIvlO zc<^iyeT1Ai%Ut=*)VU+HeY7+)T{`(BY5N5MZVJXnaBM>BMCS=5xU3P|9meF&@WJqK zTVH}Zo+nzh`N;;1P@~hrnW!E8U?!YscbEyr(<^4eQ=MZb;`lx?6CAG)*_w$w{+NPi_KFt!u?)W--r zaIT!m#ipW*VOzF@4rqiV2hcdOT3usg6-%BJZ8lxAhDameF~bXm5lQY^z>a042Ox411)N3EzWjk7G~>wyr0<( z8@JBohjMhu`9Y(-bAC)uN1Y#B_1XE6;=Aws*t#drj}_mk=f~zPajyNywWa(F#*Art zdl7@Y=aW@-6y4us%)wp5b?%T4p41HQYU!jnzb`KfYYK!$mzaPgULlRSww zjG|-?r98}r(p^=QhZVQVZFx{U=lStn0?%JaC>p5_w=TAzTMit}HEtscE$o0+`x-DTHfEJEjnx+}yVn0_U-83c*(^0Y5^`sA>wxlK= z67=xAFGRQvd=7*{&>VecA-K^lvk+KMk68%5>M#odi|;QBf!Ez-A#m}%Wg+nKon;~L zrY9jm@7ueXC3hth!!ETip%}KQr#^~dYq}GPK}_vWD28oHhe9z-hrK3RF+4_i8Er9m zjuouRKr4p9*nXm~Ed)(0X|-2rDf6rt21duLE|Dz;m@HxUiRQ&HsEWChp{f1_IC`Vg zEY&9#ia{Pckg9O9+TW^o7F+X{X(nc`=@M}@d4mUGi3`VgiEYfX+(+}6#xUQ48lNH( zz^!GIt@>OY?k-#E6Uo3a5RQBpJG^}NYyj=Cws5{VFHZ66-Qn=WP_eLvoGrAPv(1f* z^h|Me6M2O$1b z@D!+(PBpRPO0I1xIM*YlIBhE!eAFz`WUHVGPQln(qew?9uurhPI01+H;L7-8>ahBj zZ{U{a1{TYIpe)V~6_u(g)bQ69%+5SCpTH)GEzt8i8o(^}nHIQ&5J;ZNbbt0$03SLS~bTea{s32QS zE22?{J+Kzv;J&i>2KT+iH@MF&zQG61;v3vY7T@3lX7LT~GmCFFrXou!;b%le+A6{2Ds{wOnJ94U7d!}%P)d$+H zgv#1?b|rv6V0I<&GL|Gi5OuY$%t*+|J~Sf%eczao&^MN&gNS|ODg<8p+>8Vs511JV zy!O2r2~3ijk?9vVAH?HfWlg5L10c=X0ee@sSWF#v!cD=rhSaH*%ms6Zx)cj$;PEIH z%t<*E3x3eT?_+du@-|CZ>Sc7ukF)f@ZwKjC@-sI}74#p07|4q~pLMHA`I(hm>b26vUNV^0tBi9ZNRVNe2aS zP)9Tt1m`)Vu^0}nV;T!W_8in$5C_*$jRiq_4{J=idQjguhQ}dn5!aACk}W3O3mALQ zL7d5yW&^fuJ0ZK+Bd?2vb(m1aGKiW|#o~KRs$v-_)2dk1coVBwKCGa(7K>|o0*ghC zH@1r9V;WuAU5u_K>oL9xX5=%%3TBns7%P~6Y9C<1{0G$vC0ux<7fxo}E#6!2S4;suD^mgIXr&_a|reQrsJ<*PAM5%3DrKeb1|SCOJE7CsGZ)rTsWs|woMCgZv#{6++KuMo>{KvO z59)IZoh?ALY)uc!daKoJ1#|UwySA}@K180K>C{`bS=6`njrCSLsI}@rZFX~QOFIBw z@H}|x;<}(d(`nROLAz6Hb%Iru@~Qyu9uI24s`ApRpwq-eEY8>FCT2D+HW%A#1KqPCZy!8;r;f#VRJ5&eAm4t9UP0iLO;wWV#DU zL*(c*(vU~Hi8R!qCSrCBX<$@WkcK8+`KLh{7EQ!;CHUl08laKKk<`E@iZQ*idU8pv ztWEiE1uFawf?$k>pbOXVe^_qEzS1LUMO$5ylS{l=TNP$)PW(i+ZFxlSIw@bXVBMA%$D{7@ zLOV2IUdT`rF_mIoXqTSMi|JLJV$KOIUpS;2EY7}TsN2H_6aDoX8+GuC>^QXWz*L3F zDd7je-aOJ3%1GKy^Tu*0MQ{A5%JW7K)t0HyymU%kc_YOuBQM$Tqo|Z4rviJ4M&eDd z+LD)YbWpMzof0;es>S10!!hv3mzSo+XL5}mx|jP~)d4SRyoFR-!fjx&Vo@n48Go1M z*{gmib&8Kamgh(wKcVA%9Y2BRupB?3>*O0hMfez-!=cRO*bLgT7>gN$u&sTf)FVyX zh@%E-wLSzBW4lSA2GIKluV?G?8)1|=A)7xsfg<%R;*`LMB517!62*3?gG6*uwUCI+ zqaG5`D>acQa=f}oMD7`c)s_+=@VvB7Y_7wRGUUwOcwopVfr^tX{pT7GNHIr6ltV zwo)QF##Sj2Lc(kgrBWifMouXqyaOfCjmUwLJtL}ZC8^77TS*O-lF7+@2|VqSo6@Q$ zMV47TDS)i%NzsRD)EsW5D}Z$BNwLqXo)pe7+AINl{L`E1vNZDd5;Sf~GacNhZ$Ow1 zif=8p?Ls*&EQjsFWDQG|Wu=Vqu`rXGb}8|BIa z@T)^2QX)An7fy-bxkNZ6lIybIln~xafpK<07?@yFnw~7jaJOs>cW0)S#AK#a;&cpH zwNJyr>!@37W_}80W&wI_0044uY;DwQ)i=^An5p`-n9Xd}Yg5>nw`+6t61<&h!?f>s zAf|)c9e6$Gnoh1jzSu@c2CDm#EX0l;B@0ZnU&(^v>0PqGsXitPZG2CY1F#A0NO(@QEk# z1y2L;WH8*lWnx^7bu>&aWda1cXE1ms2_t_Z@3_q`bph&B#Z9oERqpMyN6_S zo(>@yfa(I0#g13{$>_amJ{d$0#hwhrtICr>^ibYMgY>hVqSnYn#H&&+KwT$f6+cRt zTuKNr;8Dp5A=DrsVRVo2pAf-e^e3eB82bqkTteiG19wnO+Nom`ZWbtY@C6HJDro`%@h*P3@HF8R< z9;&&NL^W%{O>0t@T_$x}o<3_jEtb!aPK%{%=(Kbm^EoY)!*Wgw;W3)iLb>ealo&;t z%6g51rOCmfrR7V8A|H@mnsTDnKnu|2%6x4UXP|Yc^9(3am7W2_qt-K^Db=2VG+w=D z0Q0K&40t`%dCHiMJ@{VPDB=DW#HzUaI~B@aYnjuS1Q@(S;s82o~g$y zaE|%MEHI&VU`|42fpg77X2J1JM{0}J=|Eu1Ro-Hums?nBk)t{E;#eZRsFqXMLc+Fg z9uSA7%mWuynR(DcGGk72=7Cj8G!I6+HqC?TRjYY`d+66Z(8(3;aM%T$hpkWJj^}7q zta@{Scyw?sT!%8wg%@gJrdG~{>r&6T0KIy81$FhbY@`LVdvOa#Xx0&@70p@4flRZG z3CD_Ra-LOnN;-#jPKgjz$SDCr5@PD$lt@bLrX-8kv?+lSt~N=D+H<){N<5E?B4(XM z)ElP6PP-`V=}B7JTOCL^f>dag@|p1_HOK|b`qjd-e!S};GX0m9dAwt}wv-kt)%ugP z;L7)$md@jZP7CGmMyG}FxTVuVx%|^7+o}y3y&^ab1xprg*)t6M3M_|#J8B_an3OY z`gZUDgbc2q(*UsN+&xbamEe39TC*P0-xPx8=y(djjrKr=z>_*mL#7A{wuE+hj2u5_M_npo(Hxs=lolG*2g2 z3KikV#`lC7 zz`Qdi8Sr{clw?5k^kb7t8Su1I&pz8t_Pxm_K`rsBl-1EC!(;t(i?f}Xh1o51n43Og zK%Nt#A5`$@k}S+BRci6^6Z5clz_qw33$OU4q@leOvD5N)LB%has@Z!p65`2Lv@J{C z9Cui&;a?WG;pnI@3k+TH;vVc}fg5#<@v`8I`G$5Wr}_0xNj(7&Dw$HV(RNja{>Fh)Lg)-Z_Neb>11=^I(pk& zc%E)I7p|-S%?0S~i1mQZx!z6T(Kz&?@Z)ScK$ zdA%GvngdmJzMecs#XMinJ!;LBgnirl#^gJH?;8VLO)}-F4hhXwZod6Nxq#JXp-O}NMM#iS*x zSy2pkpM6mbhg60}F)V!+M=>0f=}`=t#|9~efx{Rn2H0bj6vMz}o)m%{u~Qxc1B~#Y z%CM_>Yu}OV)PG6MJe*E!c_vGxX5Z_eFY8i{i;Xa;{gT?+V9AIGC%?x>+#+YK9}dhr zTNdg;2U3DRf}ddI8@@F(8a)nzCP)vskB^>ktx&>THh1{6>ClmX4v7o~@Z zbUdiY`O-%*TP@GQ?qul%&`}nz$;Ck%aGT#O9hXW!7u)rg=oIRrhtSb2<*{Be$7!aIa>t7vHhUI1;IAw*q4=e zvUXP~9|~aZogIbX8*Q<^Ff-fSxL7X)m#$@TFa9Y6zq*_Xd1$I1ZmBK7@tJV3Rw2NH zLgDf;q7MT;sEond4yob;C%#HEVLSOm;`7>;mwB)LiY4j}6I>RC#nn zY$o8K`c32cp&iGE5MPeWQ=0 z1~@d-zp&VDV8@vsa}3QC-QAlL=Le-@d31^k71eyYD;jPuPh?) zJ%aIKJ{c^+c=4Qpo?EB<%~ly5>xYXkkEs{h0aX5GtDq+#zj*%5R#~X`5B$GntAyMr zE7^3hZl)EJsp{hNTA%i|sJpO@`C0I`i2Ju`e)cFvgpE_t8C9B~UFs7i+RXf9t3FqU z%eIeG*NCN>VLcmot^CpP#Jvmxb%5SWt%_r&tD28>v|Q(5TWJTolVl zxqFI5jr08!%O%bcR4kV`uTZgEJhR8OrD9o)sr}B5v%x18z_xQNB`@QC=cg3f@GEkR zE4^ZP{rZ}MIrvUZESOcILlw)?-&Qbhb>?Ehu!C`)xPtjO&TA}~gXcKMf;qWPdn}km z_%O(V;m4FKuUK5uqow?M1#_rGoO}f{2u<*ropQmPWQ*QfFzg`OkM_*!fS8min9)$Y z$76D-U|z#w-z4}oC;Ce#^X!UrP?-CnXt`3s+(*QD2thDC4fme57bltv{f2=Jws^q| zM`L{>g|kw#`o-p;>X_dj7#DLq1#>cn0cxhdU=AUbV0u&v=H#0FFPKGm9e{697GAL@ zuE&dA!V61%Gp*po#Ve8VB`hAs-NUnL)z(aHVipFEsRH(Az@&QJ*R6ab9*2)L0v{*irc&(NX*Q@37L1)%_`PlljU_NA}6;I67 zpnO^~C$iDVl-A6N=+UA%kzHCfC!|Zu@+KwWY?PanV2f*?J{S`wb#V$79tN<^0_JlA z7z&r=!g%XwA$TVgWT)9I&DG|&lxF6ei=Fm(03n?E9JCwF#o4J~q8`-e7CKu%P?lM{ zt>OXdtyZ%Y%+=fN+Q#}Opc5${589o%4kik$Q&^0QOd+MnbX_plY>u=M?KAh2-tSQcYCxl+KuP zeLNMTv0_q6s61#!zXk!G&;lHJEj>Oq_1_Wrxd?s&AZWcj~P~HS6oVLd{xB>V!D_G?}ETg>7Z%a&OYDs~IPD)vlmeqxoccx`4evK%U2T>2rWca&(OGVYVTJa+Mr zCA7tQFCk1&qGasmD^U}|Dp52ZqWVE<=~a`f0+8kTCf>J_P+SG6Ol_Pd4V9-J9N5NF z%0fH|@)D=ojb!=tfn`dB1ydIzHAZs~alEe}soBFY1+)Sx1sHaC z>DvFdyK8N3JJvV#618maB(lNz=1mIA-4GMax}xdg96*jxMQoei(75I zxv~|VZLvggR7?%*v*P2a&;#&v$k2Av9;n0IijSwn;$V2Am^*4w`@fna2!o%^c1$Oc z_H9+;M)9O4C+ca3o@7%yxw%4W1`TgRfm3}RcDJEmBV5g9ys*&N9p;=Z{5X}-8HDz>F(<;6$qYgY4Dr6bv@5ytB$&v{g#gr(!pIx*ZN-ZutjrJ%Hss| z)(0}jS4h9C2W6xGENm;e>?pgl!Mm`?He>F-A^?~X*E2MGRTjz;-xZRZ%(GW!wIy>4 z`1UPXZH&zqW3?eF-i6i1vai2t3zom}str}~k}F=-M%!|Lw>Dno4yoE`TW%2YOm~;g z-0kv+q{6>~<0nEjh?gfXU%C^2*R??AIeHjve+&Fb=*dS;Kx3`gHY&|HMt;9R&| zyW2okPxOufG7fj&4hJ?62h&6gmpwOpxzDFZg0(X=1*TYfL=ss*8uD~ z`|fug*75deyLpZKdYWF28a5Z!0jl}14xo*Pb--Nfn|ZR3z=#0g4TW_;I#^f->_dii zfInzLKI6xK1Tjj#@j zgiVEY#LvRI23NfZe2}n?z~y0G@G>Cb4;a<~zNxT|P=^cah~9iyN7Oaf*9%nl)%7x_NEYGgSUF5>H5a2AV$}hu(AU=2NZ}|u?1o4GK%&+JLAoe+ z5Zo#j;SgNQy%mBXuBv#|E(ErKn=1saf~zY8wurkc1aFAHIG4 z6aFsKWHn6&IPwe*g=sWSzDdSvFuBEUWgGzh0aCP>OyLl!K3g_R2IF{ii}dj&4nr#J zk8Tsa-D2Xm{20CB$9LPl{|$*OwU@e1;vvw?=`|c}xm9gIzf9xX><w#}DSH{4!)E&1KTC?)# zleXJN1n*}~YI!E+z3!+9lQ*}&*E2V-IR3cR7*e+}q+Ym|w0VY?$eL;M~H{eKFNO!bDmKD=$R42V@;m~ z&JQ>5K=SwK;q@#dn{^!X;SmoCd$YZpBvr4k@!u44yHR>2^Z|W4iJ|zaPgTR2-oqc) z(V0AnP%y*yhxl2-Q0B7wa9c_pZts??yIZo}PnffuJvQa_js_N#S1i$Xr>yWEZ^BkF zE6+T!@865uw+a``I(C!sXC1rA^mJo#-p@%#Wl3l8XpGJf4X)!^jCFyT4uGU_J%*6= ztP2FKhAQ=1Ag7hHmsEE@sjLTCC4ExSk!`)C8!ZYdK>HMpeHwydvoRga3mDe4Zbh1Q5&Prs~T4m(Eh%J}LT34BgR#(mR z-J0opHPfHgO#h^2`ZEp__hY_FaVOU5D#hnaaUNHcyh+vz#)@Ixmjig8c!~=`@=1_UrBp4h z6O!`|Zny;8UZ_QUBlKPw>a6usi0MU2p+9y_tcQu)r35_STRd6BS05m4c>+d8)&Zms zwKJ%h#E z`)ZlWB?<0VoBJ>E>t~`<;nAG0e>Wf>3dn6d=3EEwnY87~Ol3To+;FC{oLWpH^9zx& zO{$2DF(n?(Wk_hV&$i7AtJgCOCBWcVVFou29>Q*R{#$&iDt>k!UMlaq(mz08vpB?Kdz)0JZHw6MfD{i(f^%Du4>ZQwyu|T%9X^QHmWAv-qFM7j{3pB}~}r9g8)h+ffb*i%e?`XT$Lcq!-=UaGHn3R;`6W^e7QAL9v3)f3Ab zo?TeC=1Dzb)S{TMP%&S9w1e1es^tO>->cOw;( z3tLIu2{t6{wuy{N*9xqwyqeyW!&{Ew)GM^MD00S|%^w`_6vn=AcnbalP3 zh1eAJNhJ%?=~k!FW?i-*83#|pZ_kogMebA-YP*l#mU#p+o|IBli_GSJ?(KUmV0iQ`fba7bssp&GChBPCw~2{p@gCa zal`OaLz^;P&ac%2%83E-lShzn+2uJwp9tE+;JmYG%CPj-_bt|R`NrB7paAmAM%?)TMR2T+gUPB zc!#AdW@2qkFIu!I;l^l=U|S_q(Om0U59fxkqN6&=xeH*v{MM%dbJJEu^cAPDL zlw3?dVxN|mM>3(xPu-Y=hwWR$8+1?R*Q3jYIx{x?>XmxHj>JCoyftPL-u)y?FEFM# z!!T{qh&1zt{jr)S2+oJ0gPA=S* zZJHeI*?Daj&ABr^((-wiAX&)ZqP-vO;z$pz{9io~?L0c-b8R$Cth9>6h$Pt~ojB8; zv#&=4z&1%v^xT4g_l2GVUbAD##?rw|hLL-C?k4^TE-#Aa%ZpVcb8~n7*~1cHQ^L;b zQvZ8?Y|6nu7{R>~(By~9+uJ*q`jPijS>e2wI%S398k?*KaUrUxig1zfs@a0=RQe;7 zr%bhTjN*euZ30>3zwhlHQ zQI4(#`jzfT@rvUw7lyE+vYu?cTxOo9vC484G@b7Ra_AqH z6VoIs%(k#0^#HL;&gjuvwI*lw%u|Lgx)tru1wAv@V|K|1J;clCgW@WhPGf7uOyJOI zX_pW1pBv8B+@M|SjJSZoVEX9NY0G)#W7`}8$6e4n!Fk2zaREk0z-O(GB^FT((3B!Y zr6tvGaVCOunP-Nd?PA*Eh?y}?=FbqzBuvX&ip#as`4jKv$}Nvvvc>5j?u9tT?mnD) xN##APX;SJC!8R+8@omNcL?$d8QuHMv_)mobx{KbFOnOGsZmEqH$(OdOw(Ki2Y%DdV2e$b8+!)+IqT&ds;>$ZbCbr_7R@Ec9Ma0Q7rcqG}5(8=T1o% zyQlt;ZZdXv1FhXnLULGe02AAcDkO1Bgh?IiF|PHtp69|n-6LX-B^0zSpbng5k25%N z3rwdy>1i1i@2LGnwcr*<>?C4(mUN?bb-H4|I4o0$=P@Yuu7@0o8A*qZo>Ac(f+ry& zaVrM2#{3_Wf`mPb**_}($###WA96UtiK^*uHx({su+K&^+Z#*?8{oV8btIW&OU3p>-Z|wdL42k?AFn;2@oB- zDL!QvN!i?5_8YZ3#i#5aQuYj0xY|0eWqbLQE!52I!}nUY7(}PP)qTpgld>Ky+fB=c z`;DM?uh7+?I57Y?ambQ3vAnKK)` zVOUp2p#55cO#9*c&a|6JPYCynitt3n>V62IqT$tG5Zp7Hg1x3)juM<0Wl3@o?#MugigjRh|a{N zo6fnDyan=3lx?YH_d+ynnt(XyQ#KuP*5^&x5?VHw$$Ra7=~MPe$Td;+rcOp(h>qR2 zv@BM-*C{_s+4O`cuhn=dNiSRdVPps_r%EqUxm#d4Hw{m25gxG(jf8Bg566WhZbaE>roIb$v=DYuC`EgiY4@26>F;n;(y9f~amL5DU1y|PFG$%Jv}_+OJJ_e}R4H3S%YL9` zoA{L7AZ4>_+3gUWuzFO>a$7Sesg~i%@e!WT+PyMhsd&Mms?HedQMT>vuR|!#`mif&L=Q5L< zcXH85#p;{O2zz`Uv&T2%m~mwY4Hf52gg1I~@zHsW&^E;xI%m&AjO}e)1cDv57h81B zYb;$%O}r>3;?;yD;xj7thuE-@kKJ&!%Vpx6HL@nR%W96JXwIBdVzMO^cFr4SVf-9( zWNHwGNDCDrUovCxj20?n=!v8y>*W;pGa{%!n`Ym<(lL@>9qH#i%+3O}1OXFmo4> zFSbG2>DW32N9LgClUjwzJwU)5+~nfos0y_*E@1eS)loez;&64=6A+y_ICni@RE~xD zYPP3X*vDO*&U!^epM&8bh|V0m8{BLYHT$Jl7@=lYinv3ZYONJnnhk61`mmXbIUzc2eRnOWy9Q`m&xnO=YN5Vb7$O#|H>K!Fov_hb zw3!suBM|Q-mPv7qxFS;6jkq|orAFL7mfR>y1orsQZLx4hh;xedGZnQ zoSqhshsP#04f7OF^>lkY+|GP8Jsk%xPAQY5Qx;6b+4Ciq;_MPe>13@%x3SBn4-B)X znVQb|*V%4)e#7zYaZ|v1Kst>ICL2P}+TEp!yBEOWsME%@<<$ar>W^tI+@xtw%Y9VV zH{}j_}^@6xHV0-$>1mkw)qVYvi!34IlSxRB-~T8}AtR{B_B755nBsG?-ht zR^fG8g^jF~+}NCRKH`#sPpbYLmtNC;Q>?g8XH00Or)4+isYa1e>5apk+j_@W-K4U0 zAj-^T3(bEcBN)wV5*@k+g%Y@~I18&$D3<+<)qXm*L(~>+U*+OqwG(2yWPt5LYMX62 zr$|;hjY{S~VtjJ=qWHvVYlhlpTjMoPGn+Z7G?P8vn1M^;>~{mrwA5-eQ&;oVQH}96 zfR_ijBL%j%)epzRMT_lp(RS*ig5#Pp+K!pR!2O}IsqO4QX|?0b24SAYVIBU@4dNqi zrXAF!E^AzAht`|}MuAO#4o=)Nk4>uJ#5WbGCVlmo9)8JT)%{hF2ZmKz> zuEteL4`$74f}o`4KSFhi?bt0w3i3`(pBsUXQE~$kda}FT3^>AWv)y=iUfTOn^FK)= zS9o#?Xyh|pwL7HbPr*vQsU`QKkc0hOA=A^a`tJ6AS{YN2h6Bg!G+y!^yz^f~F* zPLegz0qFNsWp{HEf)=%aqk;XO4@{aG|kx zblySDuSTEftiTz&%E@P?btv?k^gf^V-myPU?a}^V&7Twd`7|P~Lc~7i-0oGe-!P7J zPDfVNwuT|Bx!>XF)Lvj}-RuU8$(p5#`6D$;N2F%@%p=T*O?Fu6+$L`yH_h<5*y9om z20QFWmpMfSyf9!r9Hm2$VVW?L&LFo&IvRmOjL| z%z306(1#f913g(@^XwC6Dp~u)d}Fr4nfegj`$78Hk7oqwWBi&T7}zGmag5Bz3l4ga zc*i6mBg>dx9<&`_O*ihNA5Y2{68}OQX$O2agGqmh)0TWR$?LRf+QDt;%Ngm=F*o*kse#%c$d52Hy|x{baTY3I&zS-%dO zg=+2_Jn>IvysYs|@zD3c84O5@%OG>#iQ}B_O3q zu*%PH(5&1_E8jj7SUDkB<#etlRvwAUreV|a+6)mrI9oPW5m`J zXD>S)=%B5^DwopAyHWXh^R6Jy9+;u>!(f%q>(pfJU@GGkWt{y~hRQVz%&>YEYvtOg zj1kA#w@w9i`=wx&U(?F3pfcY5$JuK#RGt;A@{?NmV^lUVV(th=23C$Yvzd4YlQ#0P z#5=ezA6=w$PxD9OoxUa=W8e$s&r#X9`FNi}^5AAYX>@yyk89D4(M%s7k!DgY*tXx( zV&_oISsa&tcl}_YW&1TPbyrJmmr|)#Z4`S>i{%_U!#ytb?{$NsBS?N0z8duNAI~@r=n@34>3qi|&lfT8W1T>vdG; z*>3u87=E~can{`e=APqgE?Mk&o#L!pP<$RUFu#ZAAnu9!IYcwD_M%`i_5=4+)>Pi_<)Rwp)Wa70q5&mr{#Gj3-Va+M$2PWueW4B4XuRDiT>^Uv8UjnNW=Z@s17$PF6I%Y5c_1jn=@Pywa&OV9ZsbZgWkZHU zm_t`gctQ^P*jda6VTn)7=jCYY*JnNh<17;*U1;O9#7!aI3Uw*-W14kzGMrcKSDsgANZi zn0W4?W*TBzMkVAjpI61S%%9-A)$zF%ZW(1R(@CLbijrc(d_H#2rILEz?WoUEagKG- zNt+Tkq4A{fq)nMyMwkc5-lKDUIExcp_!s{P{>0qB;Fbp0{)puGFw;;QtjKP`nn?=x ze)r`c68M@2A<={phz|VM5}B+^#6s7+OXP&)4Trhj#1hj_c2x^W3c z#p>tlB8X^;^YmAjPcykbS&bR?&Q*{NmMI zLjJ|8;Z=V&XG!w`Ubd}SLmJ1X-SqWT^%^y6C7t$esXyzwKZHh18@0@yvh=7sP zDL1O>f!lo|67QNaAqg=_o3n5X3Hf<*IpL05!}DBz_d=5t7anIn$)$`Ob&7L|?QinISHN=&B(8uwKC^1}Oc?SGrX2@^$nZ1_v%x;ts&w z=ArqdMg=2c8}J2a!jDOL_!!DE!#SZl6ktjjn0)*J|Fssv+?%W183(>#=}nY3b`OXX&!BgCv#6QdtthHY3%FG zf-p^Q&N$@u#PQ~%Chs_A5f=@;$$`w$e05Z(_jc&D7lj&N;R!V-FFs}%?0n4QUgx+^F~NQJ9`>6f zo(XH%eBSZf(3LT&Q8i;p?wew-Dx3I zExe=_nq;srA&7;^w6H;=W4c<%5@^9^XFP4KWX%a$bFJ3gxj%6H#|#X(&$fP}g@$V3 z54DgKXu+@TEIr}->{>Is5xl-{9auA^nt_3B!^`pZHXaVc&EKu3VF7BKoh#6S^Vl74 zIK!SW&)m%>60>7W8Ba~`w?F3nNYxYOYM9G>{Zq_*ff5mmuc)|yJ0nr zj23V2)M<$}f_D@t87wpkVxc)LB&mfqu;5I~&74u#) z((D<0n-cCR7ISTIRLsFq(Rfg1UY0~Oj7__kRLti#bTLfwdNAH>g1)z*IZYlX4DR+H zaQ$GfN!gmQr}0jqq3ZA5FnbOOs~_euz-K27(p$d!x#sik=S5y{(I(&he^#G<#SJ>2v%0gBS4av^EQdDY+O`SZ6rZ?}f48G~uEYtg6Si;XEc7Tkz}Y&o z%YU}Io4o&d(A+lij;IDB1sg+(c@7kG_h3{eooO52#;!^iV5ZE$&^ZP+GPUCDvSP++ zj$SwmdKtTc;)z?LO)95C?{_$OxYEIHX1eTzmf3ca&8Kcj*{FYM?wI^_^HR2l-l;Hl z3UkGC5=;Z`6A|lWbb(?B zMa|esJ7cR0TSFdkJ`;`PYvCc;>f&P)jQJ?X?A<5W;AyT+4mnl2mQTCJLhrIyEVMJj zX!mZH(XvnWCvkl&YqlxyzJ8^2a#Eb51J{`=i zkJrngr16%{=9O(SKF99YT&eU%yx2X(OGiL|FX~mfBTD*3$%kt9KV~!9naw=TZ06u> z!j~CmGoN;CjCAce?ONb$PR!7&P`_T`wXXTGDegk%$hUoP_Q}yP2NN>aPy5?@z)M+e zO!zL_;>LGociF&@;m-P_+erCM@%ATM#hWSTgI67|RWJHh?WFvLsKk5O@n?AAJ!b*bPdnI^_jW0TU-Ij<>F{E<$_XrKAm<7lzWS4N z7_A0%$PizLbnrLrZnqnBRNY}8mqys1ruI`N2e0bmkm;z3M~JA}-luA6@T$$U)t^z- z)MVAdS~Y_&pE7mCmyddVna}IXoQ^LsV%L{<{hRjpWoRFtv3|D2*Oz94#?5zpcyhZu z5pB%31N_te&3MMS-k0BAiPyH+Fuk-{XU(PAeu8VAOE3lvQ0y*eQ>!sVj5P%W-^!Gi zrk%ng=@?pg6@|@}R14ovb^GaF<=DV#t_{{1C$0X;y`6D0HAAZ_#gNl#R&6ykL#q>| zuwSdsYO5Ed)j`_o?F_Bf6+=#|&clB8yJBB6)~vo`jgrECt^Ul##yag#hYq;M9Tj7x zU(HWPVn=h>6Wr@q;YC!CQtfR@I&xmnZ^TRZN6ahulE&1KoOQdIKg{8#2@#p>=nnuDhf%WvF{EL*2SsH~eLv zx?48|3^FCgVE;b*Ji3TQUDIXud2(Rge_0&ZHvVgIL~?C&CI+AlPF;Oo8R)E0Zo{%T zBBXVvu+QRHhQfY}It{Dc% zTlG+Ln0A%_NiA*Ht~kJ3=q5Z>oFiN2_lRqUt|V ze|cd2;#!{$VJpY<;Q0VmE4|{jKQOTVDaJheZ@#7Q4r-Rxe+pH*N&PB;^%rRUTT;K1 z*6)p~bEN)Nh61L9KSyCM0(=JT{kSKW^Ks7@pV!UK2R!EX-n}zh2wQMfoZW7nyPCWo z@GRD1+fdAT{!mGZIUn$h(^7wFsccfp`vFfkEtd0DY4g+%(xy2%nbWcJNlldVElqZQ zOM@-Ss)9QF9HyGwPI6-ww_vUJ1-SduOFUU(&E~%5 z2B-N+raDwnGF(ygoc?v#WYh!+z=+Y&$57)TburTjWEKszo zopWb}8(M;y&xnrpF{@`RK6Rmvd^cfp|4Bjt{EyZ>|leE?}?bk%9 z<=tfP1d~62V?G{iA7$R&?jQAd+m7~^dY@a|bhe{iT+a5J(##k0$MgWh@@ z*)D4yQ(-Md!Xuc|FFv$kKC3=X`U?Ggp?C3+6xhTsA~?Fr9b~F=Oq;28+0I1G^ER=1 zUbmg%9KW_Rp9ehla5vhyj)Z;R#M1?j3yx4#jk1vvnr9om_sO!w0rk2$-7Hgbr^Bi1Yf`;DcM+Z)7P=G=gvFiePGKr(SRd-FSJ z%y$3qPn30b_C@^A2^O8B>f;@7ss8OON`zzPGUEw{k#@;lPg>EA_7Qm@V!j097ez}S zxE*jR_Us`ad(qWLxh!-3FfDb!_y>v;uABAZeSzWq zSb|M=lcp?AY75Dy3=7gU=D^$Z3hv74|8_iHvguK1^+RcTSn#G#bJ6Lj_e(zIlmFdx z&48wl>vNi=Xm!6deV@k!bkaRNaMXRJDQDCjB%gBPe>eSuOrJySr$vQCOT>Ch@en8V_^f^(ascAipgu}}kyy=0`lr!pHl23{K-%bB?-whsT z)Rs2g60MGsraf|$_d1;4MusQ1GH+g!^XD-SoN75Q-ICwKSXHwq~PgdNoQ!c$N1` zzyB`YXTCd6`;2G(frDeq+(M3*dz!r2djH$Y;e+7iPfUk1csYt_qM(#$BRD^*#P{HB z;*$R0RGA-4a!##uY;jXcygr}(f}Zm9zt^6tvrr$ki<|P8vtCmB-(tIp6Whyp1%NL( z3sWTKd}bkrvF$O()$qa9@kO;Ae%N)I`MTQt$U}a60oMq+YraYd&6>0?3v7DVgVhOr z<23dA%B|_R`|8sFqq|2K6Y+L6UPN%svl3y`jnRQLOE1oYj=z~NYCDUZJ}4@EP=vjH zuiLz}2IUT$B+g#15sshsa8}W;2F2UX4IvvmhYD_k>89V_8`97>v_V^BZ-Xth!N*W8 z#w2le%U})08We9kH-v1k87dSvBf*TmE0(Q3(6Ro_2#1NBKB!3gplJK#9vNXG%FQ!L zoP9Fms^oiNGn?4b^stze>a+h<_U?aTGOn%timVr(2q~4hW&X51PJ|RQpCX55#V7xn zOemP2VsT@^`jHFdEIlEzHELx45*xo+zvYd_1>5NE1*((nu>wjvTOimZ+7lL zID;>v4R;1Ju^G;H5_InjrkU29iS^E4+)lSU)>4$)ZIU=UPL`}*m`!6Vb+QioHuiy7 zwQl<~Hd(I;Eiz{?}-$X$P9afEz9Or6sFBbZ@jg_(Dg^ zou{{UU@FS3FiD)(c(R2m6Ga=mP`!B|2Pk%Cq&zKd4l9=V2x=J(w`#n>J)7s z5yAUgK%(tbm2iKXo>0WD&7(CeInmSZb4HKV4lg2pV}E#fIE(xq$^Y9?!Ps%PEBdUB zy@sb)c2&a6I$=5;Z+HF&-bARiu}&HL))}~vA$EZUoF4+`sqZ?F8;e6tC!L`4R*V?x zR?KJq7H{LT(aw(PF4m)fSSt8&y*g4gaZ5#`@t11-+i`6?@0rkdPS27 zF1qrR%`w+7jYDcGl6QJ)9+7q8{CsA#{kW9jJtU@Q&PunGGd-(6^_iY$xg>RZo|OFm zVR}-!o1S^1le^1#9s9+tfGO(_=VHp*#@pY*>s_6R>0%85 zac69c>9+$?W*D6(!lcYRFPYy1?VZI1KDPS$+4>U1oxg=7jB zaQcz;nZg|0k5i239^U@P1zCf5lj&5vJ>#b95hrqgruvHB`0q#GT|cZ_==#C>3%Yj~ z{aj@4#+F06ZG{dq<;<_9H~UHs*?ye1N*FcXc7BBomrZ$;#W>>ZHe&MM_8_l^KK=<^ z5)ZAHgU|nW55=;7Z`^P_l+w%yf!i@UZY~8~)MN1&h3m1&pNPi>K=*oVu*hDI9h27@ zRx-*hHHrD%MW4B~Q&t+`U)pwl-7-D+1L`^+jFKk29yCuKoi|KAKdjY6e^_fd+rn~m zepqYza@VnrCnNci$@{}vX`2InPU|=t<^{d>0=J&C<~M!pzI<#YEjYi?sGjEeLqL@^ ze;4NXLZ}xnMwnlpADOC5Z&S=X+?0F-32itxEAWN$8q$2^#@{E)CF}f35xfF&J_dE- z#(fZsr^QxLV=3NlaNZpQ$IgH5AfcO8maud%_^efxFgyUlB?%?1+JtH6{LK>jyb?9* z)@o!*+OZrTx5hY=kK=}F*E61Ub|GsBNYxttTtq-&Xa)l87VoG5x$_?mVH1xjdhvgRU|E7rXc< z!#>Id$x)bs^6+U32Ezi*u@D`NcZ7=Shg~Rzy7Dbe%3RmqR*p9fbl>{IRGd9qX;n}h zkNDQt!EXunPOsBo_26CX01ND57hXDiy6E$hH9b+v?@Ojfq!nvr#xCBTBLlb!DzAi{ zE*=x?*Tv~vR)JphI_%y9m}KBQ@s=@Z2JOBQP6}?WK~Qtn%c#u}TXL!Qw(+61F&w4v zh=7ZGnTbu1hce;Fj#;_dME*^o+fjJ6l}aV5I5A zBmTV@C0G`>{vNvgc>d5RcSK?~^rxryTlR4PnF`w+4*H94-WYGQuC(7JE%_99W(aLdXJXb!)aE1E zx^gaX@@x5=3T2&n+5e$)#zzm>4QE`)n$JlZm_N)7j`*>YH5-;uJw%6goLCu6nV*tt6dAtF{14Up8(Tw18yg&A z7e4C)bMi;|07r*-d8W@0(HUomD1fP(BvWUVfla5oV~t-Nr+2dIK{lmLcl-IsZ6Tvs zbN&@M$SCr9BAwq%hf#QY-%ol!mlLABFBH)GD*wCp)3o>RYVS9jN`4_@USXRn-m21Q z$Fr_9g2_`LreH!1-+#S^ueOVrUwVw6CVkZTp*UZjcIw}LxRl;8@nXz|B>j(Nffq(435or24ePp@L< zN^#whJPA@v!NG0arfS(^cDq)RvKbPiWT|U$1tZeP(v``!WXa z+istRO%o%eiJqK6za}n!=Qd%Dl1Z&%zwjS6@ilYmv6-J&yLL@8-uQb* z+VX~`+gcfEO}~7=cmIK_^|X~|tm)&ECNXo{m)ik)fgLuf(#&Y{OT5f)RvrI1V&RF; zN;B-7T&JYcvkgwnf)sk*>>+-R?RXDHd|3w~-(2#TKJE{4FW_-?3Y!}aQ;VASpJetY; z&Hi3Q`)!j?++q^D zYmQW?Bx1%2d4yRDrNaH0?xvNo!YN_aVyUoG#Eccb5oRry3bRGbSYfmBPF&8qC(7p75yoLFymAG&%e;ZXtG@$NV~^ETHD!>-7FUCG0Zh9hNy` zm=Yn07x^0tvCD+&F4NT1^JFcRWx1)Dl+`m4GhQmoD&+WgQ#zBDE^JC0YvwxWcQSEK zXx?wG|Glk~lhIbrEGa&1<;=3~U)uWGln&CC`CWMCKj(S-YvlHOb^0>^Nc&6{c&g}?={E6f5|ni zx`n#D7;>AlzQZ%M;zsj+L&Uvs^~bJLoPTU~m$?Tt2hzB0Sq>Kt$$^$VS-vuVOUkmK zkoh+)vTQU{YDDuJC(SR;@cwPP{B4)~ZJ+$@koRw<>-kMZuSea1>?|B=`U7YAb9?RU z02pBa`1sA>z!ZZS`{VhpMfsYP&!v*+R!qNjBaiXK2+i}!Xg|&Kfoo^Yn>t=c;_0e& z71fXOFw5ZJBiGmFyN^Zqcm|f01&UB#$5_Wc(#FSMR z;s7DVLQ($X$NtlkSCNZfOtSi9wp}>7M$Q(yDhhM zRvCz$h5V}I1&A|*q$>FW;&CC1m0W=M*hG`C*He|$g7}J%1SKOOej}u-lAj^o7ZR%^ z_dA9(K*Dy)3h|4yVrCEZKGx+?~xqlEDx^6EarGQivyo^i^^bVi}J~*f(dVV&B?9oFJr{)|mqFM03}$JbLz<*{hQV;nUxaOj!4mHJ z41@4wSNuT5!Xl1UF<2OUf6G4%TJXBaFenZiZIG~Er@5%<>Mjtc2-&7&KE!=OmMJ+6 zG2gqcwfB`&g4k2Y2qk?X&Jxm7$qI;PggmDt&s0MiB4MweQ1U#)kwWq)nF(>bklV=; z2ERbeHO;m5tCF%1y9h~D(jVdiA&Z6hg~2Cp`-j1F&9mc)nr9dc()>5D%`o_sTQ@VuFx{O5TOIPDptr7a&Hz?^?^Pqzc3yLT>U9%klJq z_`Z-6N|r%9DP)t9%Mc%%VG{QGOC_}+_7#$>WCX-TLIw-*i<(!*`bSMy&9kZInrGD1 z(fs$Y&8X?m3k##>yojAtd>~>&74v=IRJwA?^|Kx4E(QUJC9*toWfx z*z4m;nn4^PWP_5i5SI)2T*(fI_k?(qe~S`H?G@RI#Lpxm0{w#DB)253C+6YM#96A2nNe z@nqE0gN=bm*xAn9v=}wRAubW}tdeyQFAFKHBpqVa*{-#mN}59)CFB~9yKHAX#P5V0 zRk9ai=p5JDk4m0|_=1p6m5hh@osc9YKSI1BWPp!h*CNhRaf^uKR16k$YcKf+U29&d8FV{fBOM9HdUgUzG8n?=8?i1Dk{wD~ zLmV$;xsnec?hrCl$ytbnK6b5*R8kybdm+7*41oBVkfusfAYKwuS;-BEKg-wHXY+6Di0xQ&-FuEQK(m@d>s z!p?T%cEXuy3~_{z21+~-*9$49WG}=_U%J*Jl@x*4TF4D<9Biip#3UiVDESoP5g{9u zT!8r4B9pM!UnqGTVn-oUl)M4)b0Kdi`5t1LkWNanEH)$t3EQcsqy@yWLLL|57aK)} z`o~6u=4tSLf^f#hMa@rzZN^5?kute+Ma-_^G7)d^3c-NcAfj^_p%^SS3fTU!v6L4p z#>P*uaTf_YTc2lL&RM1Peg5JwA%P%;(b79rQipj}$~4Pw5fuC-%I3PWry zWW5se%R$T!nhN<$$ts9{37M><;8%vUK*C-RR5BdmG9ew5tb%w!$TLd9mKjnT39Xe> z(gNb!Lc*2Ig?K>7Wv*rV;2gw9zjm!165aDs^ERGcN^ zJ{37T_+XY1=)BL%cE)v=6P9y%38S;-!^U|e>}*vH!^;qBu5d{~B~2kt6Y}6q*EiND z5dRW#MoH#x4QY;q?fk5y4aC_(zEQFg;yocBD9O9hkS<7Q?JXr9hzEtdpd=k)lT~h= zCQ4dC{7^_GB`YA_6_QU$#A-v@BViBjXiyD+m?GqNB|9PJ|IV%RlMuh{@JB9cP7b%j zWtwMG^EA(RO4fWS*k(L!7=k%r=u{DLiHfa7{6NK*L>#MPuz33Zlz%+6;02Lgeg!r@ zM#9dX=E~-h`V!(vA={K(hFI!*x6U#p)gks1^1hOB5L1MVP_hBy4Iw?1T@Th?ls{qGZO)LD}EjcyuqkYk5K9(0JipqWS7D`6?0) zayL&4oVNiG=ON+nN^?^s$-B;oK9_@LFQY-A3>V&qulPIlvgX;|Z`-Sm;B9bgQPyhL?OqOya(~15ND@ytU;{2-nI6*)~Nw;s1T2msSx)G8KmSQ#7Y}n zYaNv|hd4z@T_sB(rU@yfB=bf?o~a%?uF1rl28FT`)P_p$r~v%Th7?K#aeFl%VuSq_@#YJWuYK~{SK zc7nm$6+L5Em*=I5q9tN}72gpto#!o<{6fSFD*hniVG%R#3%P%BW7^#p7V?^_`@(yg z-vpEQkKOcBjOAdqqevWjZrb!X7SxI^g}=9Y0e8K-C6)P zY9ryWPI1?vvl>EtS;$r;BOuNb;_Otc^EJc+Lf+Fl7a>OdWD>SBTuDKQb%gX#(jMXn zA&rzwgt$aV1tlvW9u^X%m#B?BRTAf$s3ziqJipD|f(+BHAkM z5b>aj`$Sx?;vXU|7BS;qdFGJ2q}{!8D6et4SN7Gs4U^C8FbRE>#4`-1y*@+_5_;z} z_YsnH5PkN_EIrU5P=>v7?F-^V&dCzZv%T4x=bTK|JX?KJ^PH1cG#_M6Ue&!W%TCir z&dF$=@aX<15&NkaEn+(ri;DQHid96cAYw-MzjQFr{kQdr3y-jWYQ82+jz>awE-YKCp6FY9@RYEpHuT}^HhRSFhQ}7h!<3BA>v^bJBYYZ#cm=lRqm&A+u ztcP>bR`dN~avc)-Xej5JbFvX)*4-wdclPLPm4)atC)c~6!JtdxORg5(rasg>+j~dz zoReXiXR9x3o^#Ss^FijMlkP~bqK}-DS6`Aj87g826{m?9tKv)%E2{X7hy_K==>GV9 zf$l%c3y9&uf~x!5Yd#VtyCb1HhI3l!Ub&+Mi5q;dB(BWU* zUxE9QMt@<=v%MUer~B`6A!+nq&^+D$i{^v4|Ag!b*7N8i-G7{K!e;u;|< zlpKVZ`>1Q}LnS33b{8^A$uNj3g}kU_E5uC4Tx-pQ_}vV}au3i*tEzcUUJ1=J((-6N z4{S5i8uHr4NGmF0Wfkj*SV+YlB8I7$AmSBn*t9uU#9vfgCE`yi?iO*miov4y&u#wE zJCfI5y5S&fWIOKqEf0^nobB8Y8w$D2&4i>q#3UiVDwz#&kC0R)HpC*on1qgAtfUmg zjzXp?83^$+Aqh%0LcAfQtCGAY3~7vn?ZhhS4RNNBvPxD#{7XnKC6Ol$X^4c@{^lk@ zAM}JcL&$L@-$MLT$Oa`5zZw#Ygw{S+(ih?!As!{)K}-`eNJ-Y;45@>J)|>+``_=)X zM@U_*^B%-)LP{w)4Y9!QuC?q+%0cWd{vH{`^AwLN5Ta7E*`0x9l zYMw)SU-Mjz<20Z7lxcvgaWyXnTsg%>T%clo5uM8jOZF6TsFn=2a+YoJUpWnU?dHnq z0~<+5*x938*7VDCh^vMCsAL<&G$EfVxeu}UY1dkklG+e^2pOQH55y!P?UgKqxK&6U zC4WH7`iDu_>k>+;L+m6Zo05qTmk7DU&4wfW3E~AI2bEldSm2CF*v=XyRUoz(^0AVa zAx;r8LCF^ocM5q`$!`!dpEU{Fi5KD*Y0cvNBP~YrtX5w0jI=_U&kNg(wC21RFn)@O zSX0G%B0855mW&rMLQ4jVw1%7gBkdTkV2remu;D?%&i0qPXzP85+k~`LavWl=b8ej& zB}E~&5mHRaYY-O*$)e;-h$n=k$&I9S17f-JCSl+9D`^CAxRCFa%!If@$UG(2AeR2q zwKh&keTWG{`Y9O+afOi9N_IjFv0ZC5l;nljM98B`UVu1LNT`y<5PuW$CpQkP0>4Q6 zy`_Jo?bSRTv_bQXv~M)e6ZFTL=dHw4%`<9{n5Q+~kG-bp?sW-0W1N247F}TU-4*d& z6?6UNmK-5s#v6o{8{Bww9}YF5G^1MN5bK)kb7Wj z7DS&Lgu_kUN*Ny5O>P0imifH&P0h2tS2RzjcG3K1v_iK`;njm~*(>5O6_1M8Tg3|^ zwp8(%0nap^!{Uet>vgh^k|EyVj~HsSWWBA<;^vK-?naq1?Dy zM<7OCajl(IQVwD-Av=@|hPYJ7av^@(#-e8a5k5=vbi*XgGs1^!el2V>!k4s$5k~kn z5kFAzu!v(-v_*VX#rq<5P%-SP+fb~E!6JP45B?FJix*`^cn;WTf`r3b$PI`w*&5;$ zA(NEMhj>EB>q;&{EPu_l)=o)7h+~D+R`L$SEkcSb`4wW}>#nt|N=iZOCFCL(ID7p% z#HB(GDA@ur^l#T%ijt}j2MC$3WFEv5LdGjO3$f%4*V-#eszMwfBu>dth^vIuRI&$R z#7);)5hX<-b`z3G$xw)^gxK+zWBOnl#4NX5YkP$FMfldn{t^D2<{1iKXr2*1Q}euX zOw>Ftj6*fg7(}8M#$oIPmqLE@jO)X>j8H5gVgj!f6f23?OT`8vHdpa^5o?N=@e(>P z#a##PB{Vay*Ln&4o0mi8<6v?I61t;6EAj6vhzF6-5wG)XO3(id(dQESUaVUw!zHxI zbN=qHrFphjR`Ya!LCsgZZCarNn>B|K`YJ}m>MC{;v6za%c8Ct&!;pSok;dx`{m=t8 zK0?BNIXe|c`w7I8Li%zOBDoB){6B7;7D{SEOb}8{$yA6tghVUZ4>977Ywe-VL}`ef zg`8EA0CBmH9ZL2<%yieawp__$5IYN*siYUgxk5%N`3~ZBA-$D^-7};<68f#Fk}eQu z3aPAQF~oC1@(b}>xe*QhL+5@2$+M}8nrG;o)cg(DX6Qung2m7Yz3+;5c;us4T*R{~ zmJ@NWip@k^t75!}pQ{)w@=mVukGw&=9y9Vf!p3kU99CAIycu6(A$}s{BG)|0N{EMq z98hu&V%7()wG<`AA;t=sucRr&enQ48c^l%VLYxCHd$0lGDIsxM=OM&m4^6`HI6D>V zl!MqzND-~m8{&8&nUs76ajOuU3!K*WLcAtqkCL3}hEzhr9;{N*6yhsFW-A#4@qHm< zl`Mm}S4dwary*tz3H7$qLdjzgpA}L~NgIemghUJRi~Xqj66?J42+=%;boE)`jQvxZ z9|zlv{k*(XG0dll_<$QM#cxEkRs3GWgDM^qalMMCL|m-mO%Z3P7;Hi8T;abUdhyE1 z1#u5H9t|}K$9j`Xm{VQ~VnZP(l(dJKAY_x0i4eaK@}-iE5Kjq7R`MsrY?(~L9t>7e z9AbSTot1QhI8w;7N@hb`E2OlNRETGUDdWS%_J}Ou}}OloW$lU&sI@ogj`7(q737h^vLvQL+x=uR=;FxeYNoi%Hmn zY)UFXY%b(d6GRMs&4=E)RlF%;l8O&R9HL^;tgg+TDwYxPc@^u3SVP5N%j>nT{g+oLud!TSv9Qq< z3CHRjcDR~xR7a_xyyb19GAw86Q3vsuQ zMoNxAye6cAlAPHMDT9PPh*DAyVrL<@8cEm>fjCvjNhLEOt`M?W$xevpg)CC?55#;q zOu`<#tE3Xdrb31&=?ZbEkS;>}mRFk?|K-&{^K7b`=DEB|YJLK2b9uGnC5_ALJrSQ( zafOH#R9qwCBP#wPVu*_OL`YYh--wjQL-80Z$h3{avNg)Tqa=;iYloFv9*veB?BN%5pqFpG_55Nw+Y#& z*~$$5yGqfEjce5<4Y#HWPJ65_Xlr`3?q?Gt>CH)}I5fZOtHN-!K)KYR8V)48tVGkZt5(Dv7 zA(@rD196RzzqkXj*GC~{&*xg(tE4Q%&O%lz83ge&A#;>$fOuU>7RkX1@% zLHt?BY$azP<}d788>^%Y#EwGxDj5WEp^z3zRzo~5q?!=FV6ITbKbQ+^o{ zC#C#N*k&+StSP}9^{6WrRI#LpnN+MG;wA3fJpD8m@tBHjMNC!E+?{({|60XhVSnxu z|FD0Pmo##8u3CEhdHcE10KZKYfnwQRq_nP9zseh83}Q|keo`^Lp&wq8h01^ z-~q&9MNPtXjw&e!@p&OXDtQUwL?NFlnGbQJkR&DBApRv}fRfC`3@MF-J!r3_7R1g% z>L?iu@dF_xlq`a{Lr69ueoH02BEo}#!vo0`&9f7~Yo1GGujcvoVuR-S8s{6$Gj5US zYn9!TarBG}EtQuNiZ?|3TE%?D-I5=vSX#vKB4&JJvwl9>^ZkjKcwQJeUViit ztNABjavTzl?4|0ci_pmM@@2;p{!Uw~c{**0=IONAntw<7y{oGDVxfrNtGG$Tg(@Bt zFE%V%wJ6|Pq=GBkmJ`NjUB}~H3Ugl22B@h9zmXJeAnn4^QWUZ135SI&C zpkxQcn?fckxeu{yNt3V#uPLby@l_#hlq5l1CFE%(harZPa;+6rl8vH}FeNP@4i|Dk z=GvMJ@jD^=l)Wz)uOtSdCFCv-fUGkD;vylZlx&80O~_Uy z|3EBT-X!e7S4!$b93bR9B_4=tg$!463}UtluC*RYq98siq>++N5GM(74!j)C7Z8sK ziPAc^AeMQ;B<%GqZUwB<4B`kOCzZ^ExK+qzC3_*J3t6P3P(?$UAz?f3DtQg!Tp>f0 zd=K$YAzhSQhFG+cYpuSLry*KG$|!jg;u0YdO140}A>?{x*~PL|Hl!93_WGC*zty;} zl>chnsCiafu6eG;1)6UR+gyzYxUqAQbP@4K6?==gNX4NdzOUjG5l5@IK*WA3E)%hx zimOF@R>feeap(vBt1&09q+E?Zz{WKsbie}c3XG~d5TAU~B@>mzLL4UKH6@cEt{2iq z$uWqLRa|RND|rNBb0I~QyaaK!kT4~mLOd?y0yiV}`Z~mNRZYV2>{Id-#C}4)Q!*Xm zb|G_>`~&gHYOb}nmDGkfNQk9mB*c|MS}8dNvEWm#wdzV5LmVZfu#!m-HwXz)as^_U z>aMl(JfzYG4I#cMWS5e05Z4O%R>>iVIcvDqW+}-Fv6+z3N?wFGTgXdFzJhp0$n#1b zK&)QVB%GfrN}50%Eu?@DzZD!=+EGBsxysUYy;NLW#4BK46QDsnxEBF%;@0Awu z8xhZ|xLw5kDxMK>or4XP;8oMnIsHPb8Ly38!Fge$6%sn& zH*N)tgANei6S76gXAn;bS)$|`#7a-Q)}|?G0&$#>p-Lu0+$yA-lHVad8sl1PpyY9g zy@Zrg@;byNLL!x{hImcLjdJh_M_Q=1Asvv=2frwJ3u20pjY?7>hSYKEe4!*K#HK=~ zC`o|$t&lgA9D$hc8P{4TB}E~26;e-$2jX@ik1II`v1DD>S`H;oK(vHh<#CZd7zS~b zkRwWdfcTG)bxQKqGo&>V`fZ_-7a-0TGD%4a#G681R}%iLAxrIrii&!oGRko5@Pdn5zndkjfneH z{9eQ#R1CI)uP4L0uHbigHKQATgpHd>=zt>Joj9itAl9hwl1xgPKpZ2)=Jvrl(;#ja zvPa1u5DUk;)>bJg0kN}?*-GAkxJ1ZUB`YDO3F)gOtbrlVAmMmgC}{$5jF4(dW?+)cZBRv64uC&x=7f!ohA^nRsLtbF$o7%833JJaPK6eSac>=`kLPjY01>$2(-8wy$ zRE9W6$a6|O5cddqLdju>(al_Id6ZOzI7G;8?l$b(D2N+{{Ho+Q#3IkT)>4(!hB!*d zVkPq+o)$7y$wi1&n!DB#lr)2wETpTFMG!9viB(dpg&{8@p|8s-c^~3YA-RpVw17BGh)2nX5Kjmhq~s>VnAWbfj!K$C zoGPTQlEn}&2`Qx{B+igVNa&sHLj0C>=p+8i`dWU;v)XCRb6M}#d|TM&vd;XdEbCq( zUM?)6CE{@v-x6_)ic>}WM#WD>oUP(g5hth^Y_YDJh<@l*GoDvKF4h&WaR~{>dY-GE z!Eh5|)p(ceQqmCO7$M&(nFeu}kXcI3LoC_GwKiHwd5C?4yrg6_#I-`6SCR@bT}Txr z(QOTBhlJxPprk*<#X{~s2A^=Gs~}zz@`sW_?F{LFgx0nznFuje$k$5#hFGP&TW5xn zIuM5oc~i+Ei06d#Qj)KOA#q69gT_iaL!2q3qLSqhFA2%314z z$Ztw!Lp&;Ei;`;)D|d3OEm0B+akP+WLi`rqq&%1cy`B!&JO^uOo(r#&=96KY3vY5k zS!1(BOi*#5h`m%?En;&Ow~JU)#gihIQ1PsY5h?~-cn!z-FT7*C5^=;AVB^WouJihH z|KL>Af;du0TP5#8JSZea$ytcyySUbhDQO6Cl8`J)rb0XejAM52>8>6Ha#8E=} zD47cJu#o0Tu0X8uf@`g+lBN*f6;e=$-@?ls>A&#Ob4i{~y`p(8yx%oH54O4R^6)aq z$3II%yq^!2D1IyApDO+&;sF&8i1?$5=S5tk;$;!vS25Va+c5_H&?{a~eSmcXHtO_t zop*yPm|@=#;$$JeD47fKjF62=Za}Q_qHFC7CG8>36*5K1rw}g)c|%F&mkfCx3Fo1c zlC}_M3#q4MCB(Zz9#@jDk0D)<&{_^9lOXOBad$Li}4uJ0-a+L)s(Zcxo%LATAeDT!>%TN9U9<=QERV z&C}pNIfOIpZOw0hZH9eeUW6FoyF|>Q;vo^QM!_6Q{wd-K74M0-RmI%>+=f=DSVY9R zDn2gaJ1PcS3+qRsAG#LW@@mYBPzBf+h=dNXxuh8f!y&F0vPa22hy`A8>#R~z7Gi%P zvz5F9akr4MN)ACR{HklMuac)Aju6s9$=eXO3#q2$G{my6xz?hU)Q31x$U|-)9O-n3 z$Ap|!64Kw0CP?U=9ZH5lTrXs~lFJZlyzbVSsiZ!{cZ7^o@;$_dLV7EyIKYs>NZ5m> zN~S?PDx|WKQxMAzbnE0-5({yXkh^&i7xckYh)0B+QgRhytwFA}txB3foF?QeB}*V) z6Y`#tur~~8j)dbGF2rx04$LO&kn6OU=2!h757*>{gNoVlN>pmAnb@XCWUc*$1&$f@^Jz zlBXfQBczX#X%K%G(p<>}h%rN5YgLuBf%u7#f=a%Ecwfka+!Fkc3^Sw;5=Pe_@a zAwCq6Pf6vs3>l4tBfZ08AZL3X#7jbcSMm?UrX$@tKPl-A@mnEFm7IcDWt3ZIx{?@( zNkWDx`2gZMA>EZ+g!s&8*IGj*9Uy)oq`Z<8h~Z=0I?jQYBP|K>4IwwVdPycgJS^md z5WmgoU?%^~DOK}y>PpRXbNW>CXJMP0)8TO09$u2ShxC26$^=&sA5$S zUsJJ;h#ggIC}IN@gY7OOhWPI;k-W6>5YY@aW+R~kKIJw=k1mAxw~!i6R42b81WK(h(;(o*b2XUd0$CP{n zG4vg`PG%($5PJyui|1YXU^v7bLiQ^82jcUSTx+Y9w1xP&kU2_LK+K%v)=5;717bHJ zFDn@eal4R~N`8S@ak6XeDJ6{|&Jt2c$x?_9g#16wz64&U>U-aiDZ`BhM42f`B18$5 zB7_K;Q#cU~uA(HDE8VVZh@?`H5GhlcGm9jpP)bFUbIq5c6z_jOYoGnBbKd*v*Z1%9 zvG3i_v-jF-ueJ7g&ime20XO?c#`fuR=gf{sFQg7=Uc&Ti&CA%{tocIerU4n-e_g<_ zU6SB03RWcexq@{Gu28Ts!I=uSB{*Ket^}V}uouDJ3MLxcuRj_c+cjm?6f^XLj8#a) z0Gnl!kOY1nSY@1(_PsJS0j84Kpv>z4kCB<9Oqub9c?^lzZJaU_ z0scy6kTS;s-a5h6>8wl_fbWxOtju13)n9aVswh(zU>cdi%De>d0GX3{-B|FB0&FzV zN!z1LCxG+FtWjn)z>6liIy0523UDZybY;c?+)w5)GLg~v(BIL~c%SCQsLeDlqp_am zk3+VM#(p_D8qX4JuVDU{T*<}?UQMu?g0%=1SFj1eTne@#cq9i~??CVy1rv?Nr2f&- z__nNBG8(%=#`{Rb0QK_Fb4vi`o9vh}%9I4ymrNdIo(8y$%psX1WGws!u%^hm`pY;FYhqI<1ts1>krxwUv1d;1M#V zl*#+5VLBoa4RR{;B*0I|9LP= z!vKCkrk65%0akzANo%f5ZGfZ6T(8V@fG5cmS0>LJhUtJrY;ab#rQ+?!0B#`jvogB@ zUiGG{^9h;AI9+!-I!+gAUYeS&c^Rh@G+!68Wt?s}3n6k`zn$Rw3brEnih?}}rYiU_ z!ABHKA=pX5i3FP{IEP>j1s4-6rQk|}c@<1Fq8mIE9noLPdL$!y9b^=p<}BPtCK2&U zNq`TLX{pT906!&DOPRd@t4(*(N-A>)z{zA{G6hLHuLC?n=2vC%zGay9NW_hwD$^a{ zd@>7_Spo3E8LrOD%2WV2kjyj63Mv%wd2H<~V6ZmFWQR9Wr*qD>hgOu+Usr=X=@Of{Bdv zT_>YseUs*;vma_+#`;Xnmx62=>tFxHv3?c7^$OM?_@08d5uBo6OM)X6>`8Edf{zot zPr>I2-mc(_1g}%@Rf3l*m}soqzty9c?Z3%dBV&CUWE?;urg~Z?4YB<(fOXz=%>BwV z1vrk(oytrDc!12c%H*79n5Iaior{%e1#mK%zy9F}m=Ew2nIDyj0lecqCvB55-2u)b z^R6;$0Ooz))tR77QGoZ6c~Y6j0j?m^RheA?ubA(o-KI=SfG?4`TA678eKJYP zDdYAl$SD7Tv+xF)0K_X*0S+NEN11eh-;x=p%prjFKXlRtDbo(%3^JXSnG5hQGL4lf zw!|>^BM~=NQKm1zB@WyuXUov*XE7DQ{?j$o>>-+|=&PPsKe`Q(&oJOXt zGK&G`UhV4CBNG|x*B|Csmd9u1G%uYks(BgfIW=DlvSqB-I>8ZKhTxS7)+bm%!9)YA zQMc&8+9k`846H_w@iY?AtFO!?Vz!Y0SCeV2%ohL)u5oqhC{r3>2QsCVc?{q@GP#sl z4Dcu!U*-tWAm3WU+=@hW+pdfUa0ZzVl-U6A9GO>@sk+WEy^)Bt;mY&}IEPGcWi|ke zk!hh!(e;LDiA1E;RHhHW8DvT*vjpG?GUtAGgFX^Er!u3V^PA?Ssok2F(D_*N@^ukQ zG%sI-F-!9j8%XqvFlLJqa^}mq!Kf#Jw?bAP0gDivsbE!t;|XT}&Wo*`UDUa6Deo!^ zqr{zj=S54+*MP|0NTidGW;xqX31HqWuFh^{$^yKf%qnFD0{no?Tgq$) znDmL0_PjFX0X{%x0GY^m?EM>^BU5>M%}bZ=(7c3B9nC)u*%CUQ%O=I?@RiNRlFA&?mCNAPn6UnaOh!DR$zDwrq+ z_ud5i+fnc^%*eGIf;s1>l8WIBBJosSogeGP#r)3UCG) zUxvEaU@pKNWVS1F2w<@tCK0VaP^Kcl=44(~rWe35WQHsACcux$^d=LD!EXDbF?hG; zMTuK9FELnM^SdBhVz9>n2$2{(O|ZFw6~A;P>nPZSU^xX7#bC#_(HJ};tBu59bI5oK zi6}eb5F>2_z=dQyWi|jjLFR5{a(@LulHeN2Dv$`smVn46J^v|-BJ25=ym2bIYH_z{`Al=&QB zj7$w>O71pHGbGZ^Wy*8`IEKtWGNojj?SB6u8fm|1UIgycyhPeY&A$fO5^1MoGboYv z4#E8jZXmc#!Cwe2RWMPc9c>+rw2`u^Nu(WwjFMlw-j`q>y>b9slQ}1QOd07t0Zt(E zi!yHk+(BlmGKTgiKFm3hyz@%}Au3rpj~# zIGRj#Wj+M>E164_x%6AZG(jTL&d7ik8}tA;p3FXFRslRr=3`|}0<7?zlQvJ81_1k$ zc~O~X0nR5gSeZ`%{zaynGKKaU=4K?K_3dOLGvv*Cqj6hJ^HQy}<|S?mX# za&kMYd5J+JdU87=`%DS&=Fm){KF3cGAz(*>hh!!e@Hv9J6`W0Qor1dv&Lf!pjQ3kh zHxAqxZ-}gHG7{vB_mJklgUD*%n?$-hMm8zp`x*dyArV9U@+*2FOn-oHk=d%u2LLn4 zEKueQ!0Uc+(k3g@4B#*_LzNi?a0Qv3%6tVd|Bp^uQ)MawypK$EWu62$kIW^?Yyo(d z%o&+xq^G6!8Kw;qvB5rNCIQ?^=3`}k1z2jot20lTIshLg^P(~X0nQ;aSeXp~|02^( znSwtVrZEy5|H^a*IDt%6W!?t(Et!kRWILQ+u!nIkC#>JUVcv#==4IUM)O;r7OXTPM zk&%CjV3w>568RN>b|v>J*o5F_1qTvbq+p^&AoDI4{Pq}c7gP!TA&@Z*iS*!N4fS^b zeop2u8L$!n`vKrP-Y9jV`QFGrr@uJsVNDz zHC>fy4e&`aw<$9b;0iKVEAtJ&9KS&%q$MeH8^C^K{*VbqZ15bw_sM*x%qIY|$k>@m z>ih|?>;aQVJF~S;eSkg5WGIsia4MOB$}9o+1DX4j$pTo?H;J^88rpzFKGs*lZ<5r}t0eFne56YYZSoxqy zM1zgWGz9nvnYqfO16)aFyfS+L7C7XjJ)uk`fcKK=qRc>mZ97GZMEckntfBQFiS2jN6X@W|2u&CigMJ)I}n7Iw{i>;7~G+l$i{0E1Am5>;RbO zxRX{$nJWR_L*|4GWAXC4`+Nep{Jm04^f)f-=hi9wqar zGWky!rU4R>)?S%b08`1>4XYmWO(N|T$k>fUl&vUJ zt=Q!UfTezS%!SHa3$QPlM z%yr618=y>CfL+P7Q|4uWJIT~n<`}?hPdjO4mAL`n<7DzGGX~&RGKXcTi{17Dy!=lm z?Mr2D0QfkWWy*{KxPiQ=;7A4k zAvi$6EB!!Oao;y0DeTKf-<`S=Kb4AE1*m@fL+KOlff%m4+S`n%r0fN z0Q{58N@Xtl$1ryy5v`{yGZElMGNYCG5#U8q znOx@#QwxdcmPeVE0Edw|Br}lMU;@DPWOk5=1oJ1KMuT~|=B24QnwMaHMe{o#TY~vh znR{i1{DI&S1^*^EUBN0bSAC3viQ;xcgJ|4#ltobD_FBm3i$s(?vWrvT;{fNA`AV5} z0MC(Gu1r#nTo-yRkchN5mFW#|2ANUH%msLWOh09EV`a~Y;R5|Nf$nehO(lgX4xKq4R$V3pji&gaUs1vr7shssO=xSPyt${Yt+{Q@T~ zMVUqbhmq-{%oKpT$+T1^6JV7*PFgK8k?6eUlW267(!7|Vpynky|K7s#bs$@!^V-h= zN_5^vu!Ms56U?pPSb|4o`j+a6qO;OX(db+ui<3m>B*^#{i74Aj_O{}gp8#H!*Di~Zyvsjq|`3=(wiD>;PE2fUDC>nKl5YkZG>WVt{AJT(3;!3k}mBiD*z6!Y!KV~_ieN7VUnAIB!QBLJQt*PpuA#~bCW_;(H%8<5gsd?V#}`7zEl8wWqh;qT zR=)$_Q)K!pGX~&VGHsRF0WePyC#{|`WdOD%Q%0Fi0LPNaqs(l8-;p^aBUp4h4e**I zlZe(klxYU=88SJVuLyW`;qxfnNa{&kXfwEX8?0u?4-RyCKCG- zHbi4TMf1|7$22dof4}C7Lbk;IM47&2YQ2)+Fa=u@d`Q6o1luV%mtaE$_YkbAV4~Q+ zU;YSyzVClZRwIf1A0eakCC(b@pK)%j2=IO~k0~<{-~uuolvxMx9GM2nl(^I|_aYJV zRZyl2z*oo=P-YRpV`PrW02jX(yv#67k%+Wi%Jc>}gUm{0)&Ts6%yeZgFK(EQNJQFb zWyS;CPNu&yc}f`OHY8G~tuoyJP9;-MnWX^#AX7$}e*o4m>7?aRrX9c+$sCgHso3Cc zfIpGhq0B!3>tF7qEmfu^z;rUNlZnLsOKYRCKT7k`*+H6@*zcwJS0P(s|7BSWB=%<$ z9HHPYf_52^l0LzXTCzeZC-XK1+Yqd-V4~RXRWmy8pOLjrV!s1qOhO{v8n>0PKNa8} zGJ}*k1n{cTu1;rV>H&O$Ok-un1N@9k6=ik;EP92LR#=&;0Q-sowPN|)CBklnVHI@1N?+cx-vz|7^VdhvCd=4j0CujOb2E50=&GetJ6T4I{>DV zsi4f80KX?wK$%|vmM`a|9h1$k*x+V>Pm$TB%ou=M$*ff77l7ro0L~!OS($GEmb=Q;X{^l607sIkqRf1Nr^pmmrs&m%>4-$MKDmir=nilenLWy^ z1(>g@tFuO#k^p;L(uHagNxfJ}2;E^@xg0%iE!EY2iKyZVCi3Zh~ zYodc{oGh<0sE$BJ*=o+16*tnIR{`uy=0auq1DrQ34KWo`i2hfF(VMgm+yroJ-A0am=uNh_;NH-Ima z$*atJ0QZwQyqKt|n~&Un|Zqx%{HOeJ%%GLr#*N9HdX zvJ&=(0bXCrN&8Wm<^ac&*`&TSyO1-O9B)yixIcu^f!CrO#|06j8)$h;#q7y)n#neUYO4q&;uPTD#$k#Jo8 zK{OoaXkHY5Me`DlX_~JA*%FQ`WfGTgyoul}1@9s_LBaL}hbq{GU>^ks5WGjhWP%M8 zOd)ucf@29@tl(<|&n;)%CyM6Um7|mRR$2EXnx{j?&q%~n-B&Z3GXY+6qhp#V(*WSJ zWUf(WJisr>6jkOh!0Pp!w9_(r#rw4ZK1t?#WyS*hg3JbG4gkEmzLPdbnMMFdkQt}U zVt{{;8Kg|Pn+)?H60t#NW%>bppG;$AJ_cCeW>=?*GNk}^BU4zJ!2nm1IVn?+*kC)r zq79t1J<5~?_yCzT%Jc*HKAD-ytOc0+7AGxTnM(k6AoG|qj{*FEOb2B?23Vk>lh#0) z3IKbPsi4ddfUC$9AQKt4ITuF9ZPo(j#S!~8FXMKH=0AmO8MnD*ZIN-io8ZwU91mv* z?olvbBUgQ+f`tjrSFjAhR~4*8aFl{I2|lV|LxPp! z9#Lj9zzdr=Y4<8q5nvxOH!1TJz>mn3Q)U~$q&u9ne99CD*on-MWt?#z1~{M0SIVpf znEOsAZMia60PI2LO=TVj_#v55%6ty6SW_phpE8vIdSu#=iHzH3?{S>UGn9IomteeF z^D=HrYW_*cmT}vBF^A{~f^`&}K(L&G%Lo=ya3jIfizss|!JicTnc!y%7HH;FTBcxW zf-@8>PjIY)*AX0|;LQXdRInMrRthE>_Rq=R&e6?hDOpBk*tdd=H;{;>7s&h}1L$pl zC&^4!CeK}lX@^AW3{|EVzz@juRAxKCE1J7HO_iw#a3GoL%Dez@51C7pIS#O43n%T& zhYb1l0B4ffr_4Hl7qxVCK31kFz$s+rDKi(~88R;_bLriN>4ijWFj$!h0QZyWri>5p z##XM*?aH(UIE_qIWflR<)!Nm$NSV?AA0~53_MqaqX90drX0I|o0Ic4|Nn5W>9e~e~ zc}JNk0DUrJmH7)`vwNJhWMv)zxR^{QWmW*Zu&t}pNSO)%2a>6*%s7BQk}0H2;dX}U zibT9{LdLMzU>LydWWG@*6JWi2U7gj+Gy*uD%-hP$1$c(c3(6E~Z>_a zWZEmU2jJBmT%DWAL?*=>-ic0%6*VtSU7~rJ6fe;HjgT#qVx9Lnfi)pmPQi8r3n@61 z;Axp?WiK>>;7CR5tHf1URY)xj7 zGJOHQOlFEQa{%rpGfbJ|0I%p`64ClWWoiKIO6D#yk%+%_W;Eh!YF-4E*Sti0G0i^= z*%I-$zsrapM({cXXA!(y!FdGpD7c*9@wt@wF~RQ?{EFbm3MLBfv-0O`G`L@sB~5~R z4`k%;>Wo)qKAIHwT?DWpnZnAn0XUq@Ng2XYX9B>rWcDcYEx-cZOd>X2qs&DB8+sIHs}FxJegg}%mDZmnU!QB;kfv%XgJQ$ymV=z<|Q0QYW^q4mT>$~W@VW{j}e@v z;6DV@6)bSStNw(7Nd)g#upGe_3N|BHSHVQ#I6%JoU&ArCtgLol2pMCMNMEPSV>nI* zxQom%WexzW+|$*0P?@>_pCEIWGUEY$PNs%3y8&MMfRlEaGSvb0C-aXCS#fz9z%68c zQYOcPhG~dI`m;ruP5@sa^S(0E0PZ6*NtrVM>-Tcfo>Ha-z%gWcC^HM-Z)EOJ<}ZNt zdOK;=$V9@i;lSJ_6iZ^BEAi6^ZmbZ8n2* zJHT9hOd@^WKZnd?07GB%l;<@^W&0%QiZ^IEIgZZNytMbK=Ec%4XkJ=3*W47*1%duMeA6a1}zZW7) zc_xvbmzm{^=9K|>FB0kVlQPrDAlwWvWa-ylah0-Jy7lW(OE=QIv{ys(V(GG)msT&* zyjVJi<`Y;tr_P3dLr1anB{OL0{0})WCR4eXzY4*F3f@6*mx8?ru2pad!FLH}_sOsF z_in;I87wQD`oz=xvk>_a60uRb_*yK#4&W&yVx6DWTTS~KFyxbbQ_ky?RWdN7Wr_ZI znwR#bYF>OYM)T6@P|b@^9@cyUpY#_U#nMkhNAbz<>Ga9-1p6uY3c>aYt|r)+V0KGC zEq@CrZ0RDh`m3eS$wDLfjS%?{66tw42^Fz)j(!Hb4vF-6h|FxlcmP9|etq(JEq%|c zpw!a0YF^r_sd=$W5AWZD-4zD2O1f?EhyRq#84mntaUIdxeM^O`S`<3-KK zty{>SEP%P}htv1V+60v&Yt!>G#I+}bH7`B!G%r2rsCltpQ_V}v+^G2kF;kDTo421G zX(7v**x@L_x(c2pSYE+O4?8m!R`42vf6BxyGH)dKvw}?sZYP*Ms^*q33NW^4$H5iWp424|PN#_l@A774!+~=B?_SR@#95r9_ z((0R<7e|fLd;&*}=alDN(ckDO0XswHXfbM4f@2lDiQo_gA0YT3!R(fPL;e_0*wWX_ z;;NP|r}>8OYNYkn0({*6Qo_nHKNxFZIz_9G?{lbuu-rUDE( zs`!NSI%=DY7IoAr%}aapG%t>ts(ER3jON8rLp7hkQP1c+vkW?lqsGg`E|%Uz@M#5i z66~$uuLRpDSol#V^JWDvCRjzmvIL7McrC%RG6O@U?B1&@f8{6ay{)qTsrOcBz7|A2 zjzp~ay+nn0?+JkOkl28iDO8xB0fxMH-?;O7ugFAD>b-L^A|)^F9o4*e?+49GtJ^g% z-dnBt1m0W2$;T`Hn9)(Z_oeKm#CsJ9exzV6g6}BUoZv(SyAvFyU@w9XDfl?Sb_zaA zupz2IUNXU$Otu1! zBzRE4w+Zf2a4x~M3N9u1u7Vp0P9~V$QD4X(=?OdP0a;JgQEfH96(S1`G>I7Q2?+pk zM-sq0k=TG&7d`PgK@t9>*tj_RQK1di&cGtxZh zD30p)60{SaEGO7r!7T(EE0{&Fnu4bZ7FY0sWYErj!49CpGg3Sqq+c`ghWhMNoHVSHUJDcs@V(Yb<{Z-Z0e|^nwR!|(7ZTm zyXK|U)tVPay|4KMj+)PT#`_C8ilf%clq`y-T9b~l41WPFR9>LrSt{`|+ zCRSZ)-BA_(j(5}&S;W*)vo!xKM6N<2hWkVUK-{qw z;O|JpWaVTs6Q=SI1BM*cB=x+GIx{-zsDql9_P*7;IBKirrPURh7e~$2d;&+ktMf%i z=qQe|%ZT`-7r{BQmI#LBqQpq zENbGoIS{!Ii5RY|go?Q17l6f{GKrXMuuO%*+ypS>sHr2)>!>!*MIF^x^U~h+niofv z)4a4=RP*AfoSIMIs9ZW-_koV$s7qy8u|6S~L&1>*56L_$B_|Qwt>6lR>lEBUaGru+ z6MR|0UkHv+FpFS+g4ta<`*gfZ>+7|YxU{O~PeWwwr%fUzZYiN6j;jZ701`3oOm+5j zfFYNDGW@(Q9VWw4C&>Ytm-f18UR-*&=69kMamsL6!o<}33HDR)D8cp${!Os4f;ope znbj05La?}k^$F%uurt9UGFgjCX#~GfP~t6a1CVse`NeJk-j=mjY%>lr)*%tA)RUQ2 zyzmLYzsZzQrtmX{X^2GXzvxd0^iD=zQnJxgwk*TfBmjLq&cXdiBQx;%bGC7qQ0B|~)12Tlg zqVE9wj?8Du`~mQ)6qATL85?rU?euDE9JWB9o1^*^ELcyHr zuA%-479rSC!TJPmQ?Mt&>Ix`7*gGQ$9_BQsN(od8RWbJEh4xdz}PWFAvyJiwh~Iw+F`u=aQ-t${LK08S%QL7B|} z3r=u#3Mf+rU_Ua)cz*SU1Kdbvmoj?*Uh$%nwo;iJ0S+ZIU742wen)1sGCu*VJkd$( zuS_F=sbtzJGa2BwWa=sNJHQ(!Ica5-X%284nLK17!}{!y=&(Mbc?qBIH7~>ZGtIvN z*)ptS&vID5OYoqA%LwjLa1+6`3VuoOT?M}(I9b7838pAm^d+a#!wS|T*g?TW!+PwY z=&-IJtEdd?hLAA=iCATs%nvejUI6$RnKzXA5n%bru1=~lwE#Xrrmr&N0e(fMwKCrV zyy9git&TEv01hEjTA7ysenTdgGN%C6o8qMTJal^Z0-Qo-yE5+rJVxdNWpce@m^+Y& zbzW7b55RZH3|D3gz(TLOI=z*t1@K8SEtGi!;7?>~Dsv9tt*<$0C6ws^@HH~$WPd20 zTLAEPGQTL3G}SO|kw|~GDl-7!A~Fkk$MmR&X4_b5FD6 zRDzib&LOx{!TAK&D7cE?Tm^lCFDZD@n@-Q+3MLxXOAkOfT;tnwWeZsmWmsPZ8TTL& ztL&HgL4u|PFfRX zZUXounQN4J3E&PgMU^=M@angmw9~_26Y1&A0EdwIUYRifKOwV0nY{o@&T!J^C{rKc zlVrvzGYQ}hGJ}-)6JYJPowUx%bOHDZna0X|2=D}%D$3-WX_(uQh))YEb05ITWKPNs zRc!DsK%dMWWpd9lOd}*BZH+RW0Zt(^Q<*mb?j@71%qf7iW;!X``hv*JKwqnX#;_q3t0jbIm!^uUl-t`iLc9v7ld5%NS5^84oj1P+ zPKoQ^6y960f5)WDkQCP?bf`i;w2q#fSK0ZjA67QaYSKOPLMYwDD!qtLYy+i-p;dT! zXGzyfbHh5Vr18WLmpi0Qs5|>j%pCU{wQyW)p&0IZ|7vQHtrvmaOSE!bvF5xl^O3W$ zSY~;nf|h>?)gVk(nHl*-~ZJa7Ay_<|l`Wme-;|^RLV8akl11 z%0?VbnZGxUL5@&DV0-3&5K7_kZ3ePw8s+_xC7jW`sc1UO|8%nJOE5|Y8|!-0E%|;t z*%{<)OHPOO5@%J#J~pG5~wT4dyS z>nvFyo?HTQvn3Dn;b>6v6|2E{tn{7fNSu|1@_9Wx62_)A(hcaK7{|57i&W`mJM2MUlFGXSr<@na7>(?OCp)S1wfl z7UHo5QoV*>I$B*KsW^*ybwjmt5O(c6En9L(ifDho?CGJB*Dh3lt@IVJYX7?26GpY4 z!g3wG&Y}9li3b5*%eR-7Qr&f^c>;-du%`ETNZ@sZU1+@e(0Lr%eHI<^W=O&jF@Urm z1c@g{f@~(aJK5F$pC`>a0-b^%||`3=9fc;- z4~&L!)5N`Uw1SaB)5NI#GEInk{$(;P*O=2p9!wKlFZvb*A=R_|Ub1V5@A@X&feYe0 z@D=Q`)shFKCd34Gks0y}OKy!PgBkKXU0+@>Th}|u9b;VA|KkiA9NiG z5GSF*bUNhSkc3ag0AjtMsXJtCLvTe*Qtc5}-^`Hq8tB^xTwC5kBhrF}`nq!0RKj5_ zZNEK~nb~Q-P6CJ5LcS#C7jv5Q@WaD{e{=rIvZ8MO1K%EUICednJdCa! z_X~+8GBGZ+sTku&-7`Dm>V`jUeQXhW8LR0pWjXI8q?UbGq%P@+u86!vHWjI9TDp=c zXsuMk|EHTP?cGOMn)UZ9l>rKUjV*vk|6@|_Y%Vu!&q~wcgmtJP;6m@brhQH)ng3+k z{U@`Tc9EQB#I*a-AqM&)%^{EUa|L# z>}Do0;r4nDr%f!Z`=eU=Zj=sm|GA4R?TsO9b>E`YR!||`-y;>#y%5_7>3*7f;WX9# zCxTx7_l@j^CNaA2@9wmT=>CD0z8$3l-K$UwZvy?^(!QZ{?<{+;CuY(9)YxIxz0mPR>kT(FG2+#+|QJXHX&IP9hZv40~ybo`!V) zfjj6>V0=Q*n+e&zNsLXl=wJ!!{+gCPLM3bXMW}^WcVSfbllQS(DWF2Se?uywdtJ5> z(!IQbYWKnfy-y*#$Rg3bP*>MvB&dHJ>ip?lYzjKN-$O0Du7s`K>nb%HR7m&Iq+$#0 znj|Z;J!8e$y*C>U*}V-xFAK73FBaWfa~#DMmp1Li7RwQ{f|jmt3VNe$>GGk{p=t9E zebO-&rGp6bIy$>}dkEW}wp6O(2hpC^Bo*<}1hx_K(ohA}OMM7>k3jZflb8tW-Pvgq z>1jPJy$q%Ed?=-F43!S`w4jzQWD2^T4(s4#dmRYdo<5+|TcAQdZAvPbsO+V9y4_5r zkHuWo?1cg;`*9_m@>hM6CXG61(wI;pN)ofn$?~oP;Vyn3k&6+z^spN%ck@-Q7Pjr^ zk-3)>-dz>cc*=!q+UBS@+5Y(U6AMx$%O51W5GW|8mO+rKUmV7#%Y--4$3$fZ$&272K zKuLeOY{Ml?CfP7?yVU~R^rx-&>R7oI;^n?*WTfYGPgBg`+wih;l=L>ajj_OB+0!$I zk{g)D!&iSA8T}ZJarQO(1w9m>S2RyCg09pj^*fQXFcPt4EDub?l2RAp`X9}@X{w$ei(1x8aZz{6c zJZUoFAP>UuTT;eOlV+qAfy!z5u3!6t{k1_glOI$tCeO_>7n)|}so$VHnG+1rpgh=O zriDE6b~0MX91P+r5UyHpAXkTxb|&LgdFC!{t*pV5>o+KjAGI1>h#%ENR#Iv?lMx|F zspfV)hbWemYVLA!1j@<7NtyFqH>7vnyV;v*W1Bcv4mEXc_?tgC8;cF<6$*oW=FvfT z@+~g=TnPkOvCMg=67M6WtVG9EOG1;cln$l}M2KxG7;xq(m(d8%cLQ%NHzjgpOh%>j zD>J5EiC^k{y9}BQtQ@NuXybp+J%?RW3N%hx53?WoDs2m%q6LfOvc6`#r035VlOJRr zByC!oXU4Lh-_+L4Gv1@7m<3PEnt)z}%vw41aREW^ zNi;JRL-@F#TUr<6gin0CA9o_W=_oA|RSmycE5Io2Z6Rzo4b_!82FjFiNA`1_5Wz|Ms1@w?2;BC!gZxz8lV9w*zl9>x~Q=5mp2 zES2);OZ?sY)K!pPBVN%X|n@oxGS+9s_B-Z;Bg2Z}_?)|UUTc`JFZkyI~fU6v` zUQ2@B9yF70rC6_p4y8f{2?yHDyIkiZfp!4}nN8p=tW(n;6eA79qZw4XgN%xaWk7D#)#@g9VZVzuLb(RlrqjXIx%hAJUFB;oU> z&Mq!E7o1PRS=kOtWG)Fw$jBz)%kxQCsS>^kNobx;!tdvkFhnJs2}vlBO~Pd#oyU@O zRYGY~##wUno$+?K@q7~gkj=5!;TA}M1I@%UDw~8(=aaBlCG-eMxGkH6q34tEm`WHC zl8`f-gqi1)aGgqcHzZ-r9r1S9eLe|C%xhsmOzsUycqW^K{HxF7i+5E*5mUxl@}_tR zt>bt5oAd0sJjaC?1i@uP^f+_eyxtR>S5EoZX4_X_x_6VeH|(Lk?SFaW&`6ORw%WIw z195Oc(Z?Cc+?ojKZcWa3U@$$TZO#}is|g>QP3ECLcvmNQb*k4qS0`rQO9}9n#H~>R zxDMf%SisB-KS<~!8ufYfot%^1tB*I}@jYIOTXOYUT6Gc zYTV8pm_57?Fe2ZUzR7qnl7bWFK4UuB=LMc|mN2kbCYVQ!0!AG<>dRyts}VbG?fjs5 z@6tY0w(4e@Z+VS*H&``3;_fC;yq$@KbUD*E~)=V3f{(;tR+}YV6Sibozzd9cV zrRT_l86<7p)!WRClKCwN@SjX{^laif9AEz^uL!*%HYA>rU0{9~=eVglfLU*tEzpHX ztoANg`-ERcZl0x19zf~2GG2t)bAACC5=nNNu|sB(iBs#Bly$&U)}d<7ZNWv9^fc51 zy!RRm!#PJeE12>8u?Dm3XPqx=n|Kn%j=QChv2LDXuqNl55z4vz?IOeck{+ zIm_W9&=ucH*dS$%7UoBI{t6a?V6X<$@uI&tdj--TmsTZK1EfbbgLl2;g zEN<=)aRpUNzXD@EZ3>!89}fL(m^9ZmI%ykO{=I!+aG1o-)v2!-Cz}O2kZe78P~Oaj z$jnJ5NlG1SQWaQ$0=-ojEm{6bkqUhSsq;}GPU@eO%C{izz2CY2d=8c{3QTd_A0scT zi6PVG40Ey=efl{1n1*FG&Rk_ggl07V_4kcfr)PoMXo!H}Fa;sOpGJ zedbVTjY@bjn}id32^5|VztOoTm=TsYqE5v^5-U-nneik*f@RVFN1mxm0AbaUS^Bi- z3(PAS60(o53j%+&)^-BlRfqy-v8GocByb#I*Ybsl`+58>=Q%SO+N1RwGT9(Jy-r4? z1;3Dq9g6EtQ+z5(+Hcuj12A)`pE;c-GZpPSL{i>-93*&==x*8YN;J90a~tJJJ(^1U z*y{xiFmcA}__c3>IElt3pzQ-af0CA8$4@FeOVE1`BIdz3$NgcqI1%1Lz(z`r*g|p5 z*Y!z#2TG!0q0F4CNJZXBD5Y%_TyH&XHe3-Jy>@n6&yRQ-HVFC z;*61~A(tPw$*KYq{149PGVT9##=0|{y`3}a%Hw-9Wt=e;8kqebobgUQXRg>1>pld( zpO59eb=pJJ_n*)jE~59yBXg0iuG>h^I}Q<7tP|I5xS0(uly%6uZL*dwZwh*CZRwX- z+Uo>3W8LS91~3O%^hG4ISEltjXFlwhJIMRpPD_)$Ai{|;Nf zEb9lMwAqj;f14yn@(sZ;Urg(7>FCTNC6h11N@3>h_f1&XsXw!+srBz+7!9{zSe-Iz zOVnlg9~nd1Sm33E2{$3FgM-P>Zp4aRjM5TrIZU(#j+RfZVQhOXLhdUe&Vu{mHv`AG z!+I-TechGVX_jZs`u!p>|K?Rd*82RBj zDSDVWWj%kX@rjL-Lv2(3G8YXw29+}PBv67PwTig7JoN7(gSqaMkGDUp(BJ{JH#FqA zujTqWQ2@Qq2Ob(gb6DCN84~g$VWVvc)1F_LS7LS{w4L`)%9a+bVG{XQlLYz)0fEo1 z*iM)@hdol@>m12>?1#aogp|ocW#Wg#UhbT=M_-Gg(8zl;BxEgNqa;|@v00p1yrrS? z|Gb(RY`0LNd?mF-Fs`yh&b)NE(M5wv5TBYaZK2KM?F0 zFtoVGWz!DS`zmQf9#frfVt>K?dYW#8RuU8gp(TG8cPVzX^ofNxLussG*&5zQ#ws54 zjve>DH>Xs8^|LSpe3ot|snO=ATi@#$g-j=f%AJ-seI$lUnsoM1=SVZ<}IeHP!0 z{n{4WOv);022Bmhmo`Q+DTkm`=1IBjENgzXp9Pi~_4|+~KbEU5bUi+NUY7$67!98( zEbaXg5|TnVE`0iM?(qt4&;`3qxV(hVHra7!n?DydaC4VeG*rJR>$i^A`hYw&k81rB z*Yb{DiIAAB#9PM}$ZWMhl$nu0#v3f#(W?@Y@f`8Eu0JeuCKU1NhRV0s@@|uULxSe6 zV==FFsCEg$Zh%g_E#bHuBHMGcZe|{R8OFQ;6CO|)CN-g9d((!!U0cGVPwb?2^>^NnF=QQ82U|(gkuU;K0 z8#yPR0Blnd<@v zl_cSzQCB_}VfXZ_%{}dn3!wlla0?YlTj!?!yg_t+kQdW^z1>M8?nD)LR<>{5M5O$w z`+0oP!`IcErZPVdx+vwSOoMpAPVCZ+Z*tj_ezEEtK0`4Efu%d9o`E_SIf@1dD591ywEJ$uQQJQbv~SKZ9x0}SA7$%9SZE1-k`;J5(mS%(PvO|ptdEY_iSu3*cpWmx9gXiAHd z-mLkrPTD^9KRD@PNE0U=l4wliq*BH@AtzNH=b8;}60`i!x1S>hjFWP*kaY~;wDUWu z!Le*kD$5gwaZ(AW88~S|m4r^xYeugzO7}B~aniA>S~}#U^}Lj%ljdiKrV{d=fXo?I z=4+JcRshV1GJR*oYIg~}$DJj+L@}!S5MxuyGQKQe-3? zkG`N@BGfTy&E9bJqma!x;I80AWml?qV7=hD(1zQZU}2*huA&ItbX8z!Z+=KfA;N*B zob(g=;@g@~`Mul{xPl#IUCXxIHQ@ATuRenHE`0(@rWZ*2;_598(7mLwSfIThZ5v|X zSVBjwlVJu7 zUSM&J9FSe5DD6hvEg|W+^3E78y4mH+Gk{%KjRf(JjTCEweTK9*Ms9y$9@d(@lFSIF zW3|0d%l)-wci*^?o9ML7MqlYuKJyFOv0q`8V&Ahd`5eiQ7!9yFG(VuAuN(f9W#~Kp zC6}}xX|}Hg`VX*yL*E5zr6;95kJ9Pm5WH#6qfui*NK8vIzo3OQ;lfW@(W$bAF;5w5 z4-R!|itJp)oUT*HxNkRM8FVVA>y+#rO$G+C^IEuvUR)2~rl|AwFoi`-5C4CRGBde`*x|$0jQt`qo>3X{geh=-Z^9w#RgW!@R_vpw+gK#>9%(hg>BA*T z>}MH*cGvC8byJ>s=7u5Z^|khU;<)_YgE)aTLtWo5FQh?XAM2&)a! zv|cZN@@47c(RNz#^zky*UWSH;J`J~WPxw8L17bF@Ll9aO84qk>BwH{KHP)ao{w0mt zVbYKb5Pjik>lz*eGG3Mz;*J9g<&Ax)YfTZpGWV0T&Gi}b!80RWJ{o2HFiI}kL~Que zAK&l>(k?WcC9?9GHZ~83iSTdpaMy*+!_hkaZ5{!0nNw5DIA6RcFNLJ#N|zTx?8mE| z$2bd{XC!WrK)4-lemm-5+z45sv5lm_KxW*n9*8v@blS%$x0oL}29?0K8t!0>zQt$D z@!#U7uUU%ugHN*BG4UV1D|5S_$PS0>-g0tytF^z zZvu9pU^@&1DbRrhyb+;#jR?DfD{DBzyZdBV zz@IK>RP@tqlT2CsW+C0W-QYxMwZ+=d6H2F0s6kb;SZQM?qEke}{E;CZhBS0$hS`&^4Plh{+fWx#^c_ zFjbFusx9TFPeJ*5Q)NUZ7Y-t3`!WOCiN%Gy=@?4dJL&QgBAS1b_d$^{cUazkK`}e# zntL-%j&vDj1#-w7Ta_k zO`@`vvY0J&gUb4fvR-5%JFINcL5bw`VNqM?7r8vbVDNsVyjxkwj$d1}QX+Z9S=1Jq zM0wd}w4{+k&2r@(Vl&@KUu+l={FtD#%X=Daxj%OC^QIP);b~hRp+)nvXmVW9*!BKB z@{nDOf85q=#X{aitXZF+xj+`zmeU5*M;Ei0Ei_)%M6qcJ$~r2BktStMv_*Gls8nIm z4WXhK$hPP#En1C5r^FSt{_-EM<3h2t|RxZTKc23J2 zYL*)+eHts;^DjkN zI}q?Td@EUN5kSGpx6=%q$PAq0dFKKzg9@ZmjCpIRmeur8ZSQ3k?8$=md3?}+EjpD& z>&6w0)$%XR)~SN5X(#$BUha$BWO$1E24{j_hLjDAvjui^bD+wRO|JXYI0hBn*(wb=eIzTV9wLHyS>opW0&yAd%P zqACUq9*-@+jv=<7tV#VRSUGdG*(9+Ao`mIA(!N-57t0#yvLlN>XV?uYsO*BoM{<4Y z=cJ%O99SsAL@~EBew5J zqr^1l(WHwh5tOfyawBei|Gj)QEgx)N?Uu{WNfpyR&a7*+;4K~AvVx)f=j43FNiDfr z;!Xsm@ioO(vrH^Ek?@$rjYuHd1jB)@Zp4ZMlCMcD9p_%rW~Ldz_7H!lXRP*4i9P%! z3cqdw;V=A;!ken_Jem4##2zymP5THY|Htw!#2J^Na9YG|hFn=mjrUl?I~Ec&nXnUG zw458-k(2uAlCDLZ7F@tZw#+xNS#xXq2O2r$Us~8z6T>Er+GN!C{;}krh2qF}K<3#j zHNT4|(?KR#a&?p(^te~f5;Nn7`<8DgZT{qkeTCyrKJ^*T{fx2DDgTkUS`}goZ#1pN z7T#b|{{a?GTPNS`Bj=lLdhko+gX*D5-ZfAz%g-Ne=KqM{tMf62TVdy0%L>_0Fk-a- zL&za>Hy8|r3nAndD`eRJB;-96vdIiXubCB6?|%~Vhzc1FA?>V?-!J@Mx^uk>xd}o# zTOsrRCn4L+fCy}I3NiJd71H;A5;9hWEQF8&R!F7)Nl0rI@-T!9w?g(6_+M;NOod=g zOFVN0^A^qnw(I(gkAr!+2@o?cmyi@&6#t>BQAJw(n{YFYUM?SYM%BmzwDM6gNu!1t z-!+R|V#K2Rgrw9A2uZl^*shq?Vn&Lcgqua0TO5^@+{6z5q|`?Lx6F4bQy=#vjWQ!K zhkO0_1^6hKhC5#2?Bfmt?s2H@dvpq}%F^D1kdTWBM`qI_x^?Dtt6$o+=S>Ys*g@DS z)}j;&VzrD+;x#W}{eMFBC$N5eH@pN&JiyXk?k#GI7K9_+sGLATITrPbgd|)@*mYyn ztvlg|^_A1(9Zl5DzF_m!eP|-~Md)p&~uyo4uG^oA7jtZtbjZ1>*Jzbur z*mBj4hB8k6B|?2W*f1J&JCjY>ywob9>@n_yjj|>t&C>(_x;SO)%GuQrm&FlRda@Zf z<)6Jb+PyrPX8sJc@!D9^%RnC|hDI&ZSu>vm&w9)mv^N!zK$g{n$W`;pA!{=@Ae4oPmEvK$@3zogXi z#yR!~YQOr|KPV?1*iawvB#kO!wuF%f%^O%OZA1EN2;A67|3&${38OeE^=tFHhlV7< zx4fECy?){YuHcOse-NeFfnmP#DSX@9o^&K$8xl@i7Z~y$vz&0lRVKuzEQe3cF5f)l zD1|S@S)$OXX-MA9wQ~ArbVZ zFBA=bo~dngttr*{2>Vkzcj)Z>=e?Fz?`a74Uy-6V<6A8Oz zr-&?*kQ7-xf9LkyTN|q1mi6P6sG2~DN-XVd4hbnj*eQ`Fi(ED(^r+(f9;&~cD|@^W zGs`*~sU@bdwD)&NNE%_M#080!ILMv9SLPGl0yJa&cqPgvP@)t|dzC{%E+Fibc(xdN zkj)akREc(>`Wv}9h*#n@dH9dWQcFx`X|Hog$g_kalhb`F!3~f*vO~2L;?Au)1$vK$ z+9^)hb@oMB(z11SFwYg{Cgq}_3`N#7^^$&8jkMHa{-9l4|RV?it3kjJ?c+E6<1@BFn z!-5U{XtG|Ots2;m66VBucY-FHv6xpbRJ$f&*YEd|683vye&;ir#e36e`xIa|?I@XVOUETyr3N71=&^xcQv^fMN-1NGK@8M_M!JBuHfj*MkZL`S@Z*lr6 zvEH4bi<<3I${EvZvti8>-r+T1;mF3VGU2ohDa&Cl{7b$iveDHIzbUj50}}tt`yb)m z^j_XTn&(sQTZJ|gjI_EyVe>a|{T{}(p<`ass7uVA!rN=jE(eUUV&q_qMGio{R20UT zldPbk{-iZYfU9X$`#~^{x)pp2zKivqlwJQ?ps4aBe5l#kq8+ zVMtaF%8Kt!-2@8NWNGh?kdRV@*`2@4ThTU7)fjp~>a_{g{+=5G*PV{CYG&)sEx9N& zd@dTxrZDK`Kqg=5;15!QgZ@$6>ji`UL7b1>@uDdUM~2_^gd>CAjA!w^{81jiP^b{c z^J(1&hYtn&6vlXNCRgJa7s0Vl#&hqGc~)}^5$~awR1`yIJWG51LqdiSriVHtsC^HM zd4of>Zz4={mDJj9Jm*!2>f~fiZ(K;=L2eJ6%X`T}m(AtPbI|3^QE%$5I{eY-=Lv`A z)PV#eAEWM~Fnn;+$+JPMhJEl>NZq53=84Ryy5WzTQ_pd8oVGqQ z)x7eXa8CUxq{?^P0K}Vj5oPH#@*YcjnIR#Q3DdmE32HyWV&3ne+8qfyYkVb3Nj7UN zKkKaFrV*J_3vScZst{$xcjsr_Khr%wh}AIzc*R0OHWOxdbi=R4n8sq>6`|T`gk5(o zNZg%+|G4hx#e~^~c}5-gqJf{%D6;2}Z)q_*n#dah{&4K3tR;Lk_9yO#P0(cd z2TdzB;$-9{CmE~?R$qz2Lp2k=J^MyjhRh27NY-(WG84A`V5Fu@;Bph{HxCn8e%l0U zjVE^KwS;Qr3(K%-9cG<)wE_t@L|zNt#0_)sYV)Nj@^-FSrg9`r3O-vCd`mh7-osaP zL;ZQ0l8l+dZyxs~kv<-w9h0xQv*X%tLNan2SDkRWd{WGOMqpVP=cCj6daB5M8td*r~(!ls1ke>{X!DvjpyV3 zKzaQHyp8LI5j%g+?J=Z?+w4cwHt2Gw$1nL3)SIE2!8B6CbWCpi6F$o0Hvpzpb%sd6 zH~yF*&;mQ)EdNp2ghI<8jPe5y&l^?Qs8Bjk)j2 z4gykqe2MuJWx?INqXna9?TfdW#2Y!Eq||C5j?zlQ<7{Zys^kle+cpW4kxPk904&toJC0c!8~?EqF{k zJE*KTBvG-eSS)70`8?uG&%99=I5Q>G!z^w$GN&5bn6oy#7O7cXYmN@pT*{j9w#h5@ zhb^+XW)%Dp{&x0AOB>DC%LF=Rgj#CJmNNgeLPKNA!%J9lUna&sm;@0R?3vq4l2Xs? zf^rP%ss)q;hHzRzgPf9)0D>K0G~X? z<{kaULl-|2O|mrR`C3=|cU=AD+(Ywe-7G@U?>7iPc)r>Mm1$d)%JS1?Xu!N_ z>w{Tp2Kp48CbRsSrifLH<(@X>Qm(}shiQ?$g)D!}eJGA!y@{c?x%7-1UXhjRm~O?f z=NAbF|8hkmbJ|yg6PaX|3c`dhCcVBH!^j>11H7c-_%3rPtKY}xKL7TP)gBS#cVOG* z?@rjL@^2&NEesW{M%WdceH#6NrQBo2vXGf^+;vmdHFiqeV|U&=^uo@aVOM8|-c<-T zl=^`w?H`Dc_;JA|CO*)CPC6EH(xZPmm2`v9MX~UjSBH&ye?!7?zp=R?w2qf(N-pkQ z@R=O@q{T}q#?G6?y~{%EX)zHBGW7L~0@!XO{I$HZGoRL~0s&e6CqG5n9aPM_&Jqhq zxbpzMc20~D{yR_)Q>J&Lsc0XQANQU#(e1x;9U@398nNGOzKO#DScziPc4gTuuSKZ0 z1qi$Sq`bEhL_m7Zj1O|+v%nc?=y~u#?t0skMjV47-0R*S^1d%^L%oSmF=@P_I0&V0+ahrDhfEgv}L?8>iWY|J*bk2kZJ*EdwV5@8dPGVcZ< zS%`%9NT~cD=8q-W=s8p{`1Y>?#s>U8Ss5evMm#$mreB}&!Syhb{nHg8BUQsB=ZrKy zr<(!PNCi!Sl$E#;$G@c1;U-Og4yLwo`&iUEtJ-m>JRQ=v3H6QqW#}?&P%U&hi$>Qgl^vr>G*eRFQEZMOOXp45uwlXMlOLLq#XBXkg)O=JVn47Ip^C znK4PC&>Fbj)}#^lz_RXvOdXy@%rVV1z{~(e*V6k8GYpF$C@v&I05#R!)l=nkSG85uOb?TBL?^}(aZ6%cFbNt> z)VSdi+!zsA+%+nSqKFIDI7UGd0k{6nxy!ltzIWfPx7;S*@B1v6+g0z~^FMbz=iGBQ zYx%RI5v=9E9!ADOpIooyF8s+~_OOl%^jW<(Nqx@e+k45>{*xe?v<^LgC(^J1y zOUQbHQ5=s`ZT$OM)Waz1RX;;9wD+A*{xEu#Qh-n3i3TpqUr2##nQpxLE!fe;{@taI zGV6wU`+M&si+}g6SXoVoN0qf(y}WJwpSY~RZPLb4sA(+{Kl6L#uA?#1gRt~)_3_>AhJ!#&j{Ro9;66{6qp7r`Y?z1H&{5 z(~Z4=UckWhWm4@(RVKD4z?OY%WU#?h8T^7LsL_I%S2$W(XRwFNZ(#8L2m>~9T`2IY z8-%g=Dk4!#&Lt-MCd4oqh%`lev4yCN;+9!7*7@>@F#k=r$H8(8l z+05Yg;i4+e1Ty$O${^deE)Vcz&7NO#@O~BjGgrTfbq?NtgkIq0&{e;{_!!(Y-4 zZ6Y3Lm(;9$)zdH+H%Q&kEgNm*EQ$`tdED1K{yQ?ItV?jmFPvP7toFVZI|O_&x5u+w zh@LDQaO-$id+|Bf>{^HVjO>YTlEFOA&cfO8WY!-ri@mo%p!J9DL0A0}8zG$G@P~Dk z9Shg&s$e1r>XihgAT9|(jE(={#iu>@;%h$4NU!$0u0<%O(OQ zl+C((wMLa#Cf&Y>X2ilRaihlV^`K-R;%gSoL`{(kpX$!1Y$dA^de?Ubi zm}<#F;YD;($pQYXpg z^3ahO18Md?$)Lxc*?TVtNG=}8wBQ2_!A4()-Tbwz2oe{U(IYVJs4g&NV5HtkP9vB+ z(H9zM2EQDu9!@}p9Q`dBzPn-N0qS~Ca=&7pHkSPBnD2~b?wP)!ufNB^HdGz`}az!`XwCaJ#L)GDV!H*IBy^veY^(+#JV+!AJ$wzwg}+@ z%5EQiv2ekHAGL@`aR_?kVA;us8PwXu8a5$(Rp}C0Z{pNldUGA4yZ%VvN zy0GPerHr4v_&FjF_+JK0iT{}h{+lT}zm@C0-d%yLB?fTG%3ZGlDuYLjhy;%pYCN9L zVry9#rP%7w$NGzSfum&Vo%j=(M|3(VO4w@kTXOu7T<`t*$1?gQ_19@I->2tLR}AyagkK-{w}5ZPK{lUT#1oX-$>?+D!h+T^h@dwYcSW*bD6NG*pu-nN(Q)@M0Lr@ zc&Pam`yK~9Vf_!J*(Vp=UUW4-5z7>lSDz`{TK({^Dk1a)N{n(o!SR>+u^K=8g)9x0 zH`W=yM^4Or&$;RoXcyt9`_%f;8ukqoiJv(F*=59UqDELhNsGRlqSsH+9=FxwB0T2T zqi_kq??`zwTjR_6Wl^#iQ7q2TuudW@{qPQP2QW+9^d>5%r)h-$bq|$+DV4rKFW9j$ zlK-dZF+5>C;XLRj+^kon_*!a^^+}D{ONdw>w_rCjmL#0740dVSjM5_*%Fy1v?pjEM zuw7X(nOXP@0CUT8-!R`C$Li8ebOLl5L9~L6b?UP`2Q0HU{y-}(_GJ8Se4_U>Oi=IG zZ_9}FyEOV2N9Z4B{<;YL-QSY*!V_yY`ZsK(+C2Yjs?i@y@WQQVl=+)>QvXjp@7TvB7PZLeQ6-&S{S^*C3!TrAJ_(ejJA+_*uE@ z&ru8L3#3aFk;`IO+j5jF2cbn?29!(Jvy5DiNWI_F(g2l_hgg}jjBM62at}QYHLC}D z8y`Yp#9Hcoz2~wu11#}4P+;BbAE{~YeJM)(F=5tSM#C~( z?)^K(hp2C3QWoF9epa(DKF}L@P!`&QKV%EDR61MKQ0rT@biUwwvemN#TK2vKTr|{@ z*;tj`CevG^(jXAuH~nnqX^$ncyJ#dIvS;`ZZd@ZY6cE z`HyjsXLie_b+XdxZ_ub;LDb|jVO+Vjbr~fQ%1~zKsp_G*NuWS4DDF}8$m~B?hx^a{ z%6vdI3-woF16yo}qW^r1Rkha2K1DRD_HH2kUB6z-=5_Qq)D-UTE&aD_3c&OTHdZwI z&-1B;)^E@tFC@sTnU^TkjMflUwAUR#375UD4eOtbUUv^!>9W_YIzm>UD33_5doR(b z^7uD$P1g5liGLkE-uod|teQ-iA(%S6!m9W;cAuzL6<0DE(d$MiK14m0^&V@lyTA8$ z56Gf^@Q3@`3he=EjrCi!)c)vBv+o@MN48RPWqpsG`q}$;vOuT-D!a#UJiL@**1rIZ zjJ|gxTYPNxy-QWXzN;ndd`g(J@4akHR$cwa8uep|ngj{s%4huVCPM}FAFCg>H>!6l zy-?NsC|W*am_+X;RZkOhuOMoROXmSLMa*@HR39&(c3yu#OZ+nxw7wo?Ex}V29HBkZ z#NQHG!Sz3ct6&{lBWzZ|x2Vb15BX1JSKLO{h*<@u^xJQgYT!tX_?1K~YvBIgh#Ka? zQbesnE~Erg*4EJ@HC3>3*KX(?^;0x9tB8%!2!BtOv8u?2$YoeBX$bewW97HFm6}g| zOpE$ain{lFOvnc9-J9v%{;y@mDY?V8DX{Z2f(8-5LMOeRH>tEsy>OcLNUP@~>2du+ zKsLJCMQk~+S zjl1`H0)tl0o;;5E>riePW9bLJD7k{ID<|)6fLJiYg?j46k3Qq3z5DI^m7IDIDKgv% zN09wxcuJPY&Yb9!_&yGuomF4=iatXJy(T4nHG%@!8&OB#%$c-}&QLTB8Jde?Bc z{j@?o;}u$Q&y)Ys*f@GV0pfyrrT|L4VS1?Aagpfjuhw9nM32SlM80@VjMuJSCD&*O zrs8>ro^y>P9$!w6jZD9j>?EjM))2#!39P}9ef)v1qgG;SL;(MQ0khnRCtr>{`J{Sc zS=RYFxRg=&Q{SXz|0we2QsF6sUlra1kJU?g!UsuP8`WqLewMd$AAQy^?xg~`OvyiLw|AO z0H0=NcV*$x^o)*c=S?&m*mwEqkkS3Vh#(q_t@JdCTmh!d9K`b zEkux&El}=+#VWjYljtf@!VML76g@WN{wg-S!8$X{mEW?|VNI~LmH4Ii18Sc2&uV?) zs}xl=gJ&D*zABn-IGiP%?rmhk&(FP6Gzo|&ZlSfFKUUa(BrtotwcF&?E|8S zuYh5=XsA-Zewhp)O6n)*k&)C7eOXqgO6ot+Gtg12A?t(uHUYuJ>>Zeu`+M6zCQ+F3 zfK{A#Yk7Po;nnx@_!mUt->=0#R>l8~_V^%rtQD21q0WJIFhZ6d_;qFYefdi=dD3>% zSFKz}_KYfmYl*_>s#j1{p3j1!SPyMTHgqPoSefCsNmtYGhF)4`qvvV z7F)`*_vMTL1pyU0pqvt=+=+WitwKaTV?%K^sIig7IlFh ztE62@&9r{J7WI6J%0~bDUSUi4)vspi^w+(WaPKlt{(iTQ-?ZcW`f3eo>GLx4YE#6I zsX5ilTGVe))T?g7!q|7c$yRO?z<02;>|}1xY#&g_wD=4Q-qJE9Kk8Vp8y9BYnpPX zAeVSzFBE$)jdgc-lc~J>R$9LKdG+u%wi@$aKO{?trD9=#@!0!z)GxZd@;XHbXiS!I z5AdRTaU0)9w{V19^N9k1<6VRT0GC#*kQ_E42YGj4g+QQb{JM7<##TimNe)30eYec- z$ZUZu>c`OhNWHji?+lcjVIfTJGxB&BrQI?=XL{=#l_wLy@M3MRh93Txgx|m0MT%35We%ofmtSA zFyRBfVDV!7cG`zc7{VYDi5qA4GDl*Gx7-6AI#_aw1`b@O;{b;Mgjb?oJ{-2i{4J{i z%w7FVyouyx>NlpBC7K7=-kEQuj?HEFJ=!an!CGRkp3UBAZ+O&e*!8DyWyHnM82BA` zzheyw%R-9{zg7qcM))K3?xHX}tC#_IU;SQsxtd;v ziqxpoaQSL+LzVhpg#0Depe@aXd;6HC47U*8gsyoR>$>;Ve?wp|A+T#+Ci1ZVH)O-) zUB~1kQXFoRTEbPCqfg;crt?Hp0sgV>A z>@o~ktGebttgY&=|D6a}t6EUMRSwxVAFXPUGWZK-o*S)dC%ya{y;SAOzGZAxFDK-! zamdMA)!!1>$pl8N>RNjFIC`n_upF(5%jTb6!!G6p$#fm1;A%D&VMY8mqS3#PUN-6F z#o=D0>OGabyp^yICv1|JU#FMC&k>8Xp`$HeLw(R%3 ziwIcDevA68a_FsP4`Ff+KN1A}6DWfuFW1q_2ifowbFW%Ov}LPz5or>VmuC|4TjP+E zx9n#U*s}GUcu!!7%Hl!6bk@u<gl9qMN0>W-5b{G112WDS4GEZV(H>9L}H9O9jd0V~=U zGpiRt4I}G{cbG*xqkgNDvTr`r;Te?2yKj>5difc887kU-UHgaEuw$PH3V^s5n zUoflrQ6HsRt0CS?FksdE5ATzpMm4|Y?L@$I!%p=(c{LvdQCSW2v!$=2JU(=bOpYoi z{tb(TyMMw3#>!mP9z|fEy;*Y7z%a$pnp6?=+DzRik0;*e5%0b=`ElmyS2fwZ zo+@T7;+>5FtI7S}BQs?5$>07H5wJeFPyNQ+s=Tp6J-!k(q~eGA@^<2LH}eKy>ki>8TP44Ycux`UzLosVTTH>b zTltP&iFohAfK~D_%-W80*CYPXtmH?l->Q_@H&(Q&d^1(@EtJQdpN>@W=jr7ny$lsT z|EUs@sgl1&e15Y>CL+XV*(&)?;{9Uc-M5nOyVbj(-Vz3^lE?p5X2|Ht zrEASfK2H5kUdabxU%;a8CzFr+HYA71+vtt@8tE!VkW7_-IT}wWJ7(dN0P{| zqn96{m!VFST(`cF!0H4>Ce%OE%M0jbh|{uF^S=`BuY5w*NZ)GS^l7u2|L5IQYu6** z*D+w#{7Po!Mr86!-$(>Z@wV0P`$qz!ntaTikZ~p$ zuA-MAPRmx4hY;@riFeN4)#i{2z-sc>%*u__k8fg%lGWpH5bxOU$a*}D8M2XjJn3)EdOSk?R;9|mv7%Mw zo5|jN4km|5yw`k0_7m!nm(t5Ny$lsT|EUs@$=0z$q;)U;h#4Nqn{WBHD5aKxZ%YaP0_R z{PAq%+j(g*B;-a9zR=q{CRqeEPDIx{{2#K z4F=D|;0g@hios_w*oVO{UkSkxS3__*2GbaP41?=l1;M=-th)w+3N)$SRT$ij!RgRH zdyjuD1QQrkF?a~^j`i}2=2k)wO}Fi)cwXVGK&3gL(}NuEXGK82rhj_u=s@cf{VTh!H4gF;FxbiaME`mXx|0Fd%h3BIX{5l?e{?N z=^sLH@{b{S`cEKu-MtXJ=BE(g!2rE4V1P#<^xlBMr9Xqw0;l4HEUJ5ulca5-J?H*hy$?*(u- zXz%@SOKI;cxYxJ$sQ`j!odChzCqnQSt0CyEfnf4v2<|!sg69?>`08m843{9daR`D{ zqY%7e9D;98K=6^%A$a{65Ipuw2sWGx!5hzq;8)Lp;Qh~r;H*D`;NXiPC|wFc^)d)v z|2zn8egOnepMu~|HbZdh3n3V8LhzV21lt!N_~jx5_iTq?*G>qYvI~L-{sw}-x*CFG zUjxCT{}zIey#a!MelrAjTnoWT{|Le5{|v!*-v+^@?|@*>ze3P{Hw5o^F9dTRfMEDT z5WM*#5G?%%1h;)0g1`I}1P||l;J(j5@Y7o$c<6Qr{saz_?w$A*2;ToS2qwP?!4qN6 zSntH|LvZ*#5M28s2u`{ef~$WD!F@dlcK!^4AMbou-1{L|`2YmB z|2G7)zlPw@hamXy!w}r?8wf7{9Rw@>0Kva3LD1fBX{q<>10Xp3AP9bZFa#f63Bm7= zgW#f75Ue^0f}fWlco0sr?G=Y0chLaR}@B1GJe){XB zCEV4^FB!rw0S1FBHcd{!U;e>Gg~!7`SZB)?@r%dCAJn<>BfsO{O=rS?a8RcF$anZ# zerNGEZQ3*d|71MeV;1+3bm8~<^OqmWvxISAhi3SLnf(9!^J8lXp+5l&ht52iw#qTTOJL*sTeiVF1QHkH-tb_qL zO_zNy!gov&K3@ml@t`#P{#5u5f7thD!FP#&DSVgs)9_v5H{rX)Uxe=x|E2I<;=c;M zOMIlORTq&J`#Pn*POGnz>T747;!disod!LfW?wOF)meOq-=^r>G<}<-Z&kKrg~g+9 z)AVh!4glzX2AN-3Avm~z7#P93jJI2B9=fZc{wVngtW!HKhe3xCQ4&SqPA-%Hz!xd*BYw;IT z&>deffPXJNo&UXI!uLk&f)mMCiR@X6amIrg4+i1Fa8VDAN^GRZp=Zy@#uJZ zIFFlQKg&VC(?NfYpszdV_c-Wp5%e!{&@VaYe=q3Y=%C+tjLQG!nDYOCgMO!jUY7su z4*ER~dRhKIaL_L~=wM!z)1 z(=vQ6|110dT_7hUu3iqvW644<^DX~=3h0r)PK$Uf|HrBPKS{{1e}nYmd;DM=q(@rR zF8T-G?bPUH`my}*o#g*zK_4yyjI+l=FY_0A&jC`10SW(aZFQ%OB}wxrNJrk4C>*w7+oqpX(_9 zB@4YwxBPpOqx?6Xpz>diY5zzcSN=OSdYS%k`Hwrwe~*P;=3l0Ni=+IPGdw>+P{T9-2Sh1l>d@OFVi0`f25Bq|BY)@{#Oh8L-LpM|Jbvl?H}=2 z`*+Yw`)}AmzsEr@?Y|2g^h*wUY5!Fn^c&a4=U>`?TOIT}9rV)vyT(Dk$3idLt^E5% zQU9_IQ5MPaU()C+qW;4A6X`L&u6rc?#*?G@54Ybt1-&jmB>hecy=*@+{cnf-OIoDE zkEGwD(aZFQ+b_~fI++JazogNhDe`~$IXqAD@4b%nZ#+fiU((N?ot%EBMt_mu|5c#p zx#WH1K}-4Ld+a}ZH2MLde`WcfC-QNS$iFN@q^108^nWV&e=@}Xdk*=v@l=(6Ngr-M zF8ZAo`X7h*-w*t;-eetO`tif^Z=ruEM1SBWRi3i`CH<0xK7ev#3lD=c3=K(f^syAF|!czlXZyzlC1be-ip7jUN3sGT-tqmhmRdev!}dFTUG&n#w== zXY}_n&c8e8cWU(L|FY3P;q>TpiM>aoNB@|OzU`o2(&*9uWTXFK1~|ISALE(iS{jUN4THu{4$MxRUmOBy};|7`RP2mQvP%0K!SZS|8jmJOpo&!ar8Sidg=cU)8qU=9Q_`RUd}Is>2dxb zj($m_m-8oKdYs>gqu)5J@-OE{!t^-*5=XyNqnGn9VS1dOiKE}6(aZUrF#Yuo`X!AX zkGCrs~Zzk4)#l)tw0yV~!PMla{n!u(zB zcjKtaznrfM)4SU5PK{p9hlS}~?RSqxFX#Kh^se^1q|wXyyfD41{caRKcPw`~Ul^u$ zwcni@y_}B>)4SU59*rL5udV*$+OOhv^z#R*>c+OBmv_!H-T;b)=SqIgXf z4=0_>?OJsU#={QFeiRxrh4uL4VB^W@kx0=e8zN*ISR@1KIQ9r` zaZ>Cs@r>ol$Wwb{#wZe*GsDuDYR%18+ciuM&b&{x=C|Q@{%U@kC>ppyki9BQZtJqR zI1`U?*#j-obZx3#o2xau2!d3NruG0i%(hx=kqN%U?^K9btn`3oMvoGCz%r)O@I2{H zc=WGLY2(eLxvxY%6NpMaz5BX<`!nVjrmztU^sYewPn$@+SGI~VrOBp+pbQr zLO~w#cVVX8nnN0FqKljy`#9IF;8t-$^&V7*{)y3v`hlo9yYn0Q#yS~Oh3 zft)G^Ctj|{#k`B~3gRM$m|@#TW<$h`RW+{Z2|bRmcycsO2pkuuAj&X-^EQVkXNR9h z;AIkY;vmF87S#wbP_0!KRrpJGsFe1e;s1bwptWik@`tw)@Mx+n}Sw1tw zfYpLboAx*YFUv=d6GCVGe&XwEj?BJxt5+u{kfK&n*Ll%&y4<@rw7~1SScuC#epE# zG!Hy2iKj}nz{4RKmA4!$dw4o5p30_z)grJ*#4AzPhjW5a@l-QXP?3#|5Ar%?KPCrx zrK6%8s}7=tqCFU64|sHJL1Wkiz-~b?Dy%?E!sHl#+-=FiW>2wQF(ar@<3-J$R@GBp z(CjI;HxZW?GkaQ7PkAA;r!(p)FJesE)F>4(B4O#E8CDx-LI8ha{}DeU{T|C$z6b0pYg+{a6Db!xHP@P2vr(x_N`1jPH5Oiyu zZb9nB=ECf3VN0#utj!iW-FBn7nW?`*ZEn5`(y-mGZo@$cY!DnvL*8sPEf9k?2pe-u zx5j*WDg!0(f}M?)EV~(EnQxjbB_!0Md;cM5^o6# zC9G4MYJqvoak|wu^v$jHTD!*6P?)XFbPKJS8IE#6X8OVTHe=N2HlY8_R2#DkZC(_M z*%O8K)8uTm9$;{ip0;LfvC9giFjwt@*y(I6G+X?80Xxu&#IegP=bIA8ub_p;HX9$; zCqXP_IR2s>?o)0E0`0ReBSm6w0XSL~7W2Aoz}{0=z;J zJl19HNy>o)oL3nADJDDB*{#)W9o7$_Y-UhToYR^?YD1T%q8==-0(!0D!Bfg5Q@hq( zXg50r)Vzz0Zo+6>^XkHj0&M*^lqI{ zR1D9fDsn@@8S#anL4vc+#%_5I8j2Hv(LOkZSwKpNZF)42Rl%?c^*S4sEY`xz>_P`r z0&?V}n^C&))UersiJ-O64O%lnXC9RQ0Q#q>acR*sVY&&sKJ;5dT8l)OO+Z9M<`5q% z>~tMIM8ga#FqmuYx!QCCnki2_)Dg?WbbvDWj4S{PO$mWz+riDD);!j0i&#O$YM{r^ z$`>Mtrc`4VN3qJ{!@ge)k;jLORLTV)VBY@4VsUJ2e7q{+8|pF?pBO|5D?{i;prk{0 z#smQ;Ea=Kmb(Q^Xp$<;LS+JL8Yh5T^W(QV=USxE8g~bORVCOYJgKP$ERBa>tiz-8g z@(L5og1D0L4auWLWJ(@YVR5lijYE@(EiM+oj+$vKB0&LiXNVFFRT4C7o2%W%6*V+U z3djM6Tb9D2;*bOoS+K&MY?8t3Tc;+AnR`S#vkkJ63)79w4O#q#E{r8)U6a#^q8Ku4 z-B>~+l|`fWVrj0dwOg!-Rt!lQ8^0(D0&BcbOh_cl(NIjRtJJ_gD->~jP4$4!!9cM- z95)&ci#Z8qUSS-jFbh>1jP>D6Bq3D>GlPE1MiZ21V>$qI7^7D~1Z&b5i)tc3M%CHb z))dGfsUZdoOGCabw5wYSorS3>@KsI(om#gOuvZ0O06qZTGKcl-J1FO?+h$u;jc_y} zq0Ul(Bp@X}V<)%}M-UQaeSfYC^B{_ABCpWrTFqd()|qNI=DV#ndQic`xn*HqDA$1_ zbwvJ37MdXl#Vh6ukroL4u+fWA70Luvq_xeE6j@`a%H^v8!+4fYxw{~?-VCpWl_pYS zINYL^ZY5z4Me`8kmHtHN{|Rt#fUQc9IeEoZuDumA|I$R@tk#gT0e$qCs@T#qWE%JB zYw;r`XUNV-bW5ojwG$<X$e43a z4h+i>WojDr0FlKe2*o+|Hj1vN!>DnJk%&D3b9K*sTHW?S&GZg1TY$fusm^w4hRvaq z!eS&Cd$qfT&5#ZpgLXkX6ku3`surwc@yAeIf*w79_!>-T5zCea<|kxnK(hkvZ4ucR zlxUEkR9gjfexlW5HR{8WnVYp=5?EniC2X36fGs)+mnBQ8@}puj!y452^0HNtIkGYK z(4(`6s5C?}S>6m;#ACC%0QVm{bNLX9S-P+asK(4)C_hZrYWNpQy-vv!$DOl+Ay1#B z8R&F0JVOhF@eDai7f%g);U?K2Tw)F-MIe z>qgtvB8%7JkI@{pSR{Z%Jgj1#b1?pRPED@5Ckm>|7=wifu}1_!b<*fJ%;D2*ZK;9D zz$(W;(BDEYHEa;|4n0W{+-SmD6kJ7C5T(ZWtkO$7CL*vjD#jX3aSwttv8$7YV}p5G zu_bo6*BFLz*fgq>hIM9%1%Bpcjb(qJI%#$l^zNFF;A#h_Eb}s84Ob_FKraUkzS-(h zLNF>+oKdzhQCVtu!cRzmj0P`H$bcyyRMPc?Xvw!$xRxm9?8dQhqsi-?C(0OsxuP4z zYFMr|Dpjn+Pn7T4B&8tJC<@vXTrouyk75z|>G+MHV(;>%KC#Q~w zk;hE5opO0$OvD({iKUQ7LU-cv)nM}Y!EIMY3!BF&G&VO|upp(tns3LzT@}fJm4+wy z^5YpF!*54fK5UB$|b@Cb@ zTZ_#mnqqE-PR+K!=L0^HTGOa$Ts^6b0qh%*_?RhR5KOLx*0ipFe9D%kVMV)Qgk6Z7 z*F5nz91pBUq5#%LU>1{Ui&(QwlE=uu;e?3cPt|1humfd9CCLL}=v9pk1S)#kQ2D~# zP*Zv`7HUualKX98p;cq9IvX-L46SL2z8|2B8^XvEsenU5j9E0=pDiYtiOkE`K{Zk; z8miDnCEalty)bSRpeuSI#0?cfp;R=o1725AGTeb#nB*Ql!yJ!9LU&)^7-qReF}Nde zEhGxeK_d|p0VtWE8n8lQK0RhpPXt)GX!RLhMP^7rtDhD|U(~SUFF{&hBMgF7LDldz z5C9A#`BdN5dTSP@ZCi7=vqHcc0P`^F~xQip2Vd^_m#9YBT~PD(|+1W_6DF-GP9kPZ?^_ zAfa}KDZ+#k(ew%MizKX_h@}mic4f$50WF3(c3DzH>*VtX$O7jBh76av8DI7pZOQ>D z0zEw@1$pDKoCb>(qcfXP^^qSWNzEC+oQly-9Aqt6EXEo*Rv{+Mkjn9dL<7gXPZ(_- zXlAR>e>YBGJzy>%iZKLIF<7A+)Z zQ$s-fRwxh7v|7i}HA*SuJk6(kM}$7FZg<(}Q&hQJA2Dzk?@5Sx{V)4Yp~d z2)GcKnjVB-MiUIN;^bg=vr6Oo1eGrOrFsjF(7=$INW(F17V9D{WEV1QZN8F0z-H_wmu*Al{SmchlBaU~Y zj(1}c`-E^|iW$_nGBxaEqf7aJ=^tgNf0Rh+_a_IUamtvk%TS8ncjhJ{9$yfe0>|f$9)rRwJ z$@w;tB4_LhDxeOm`-OG^Q{!Ej>0;C5IOErWf#s~4Rx^|(BVjf%&bZ+hX4Rur!T0fs zN2L+@s5FB0Ra}G(Z*y~F0emN&jGGGVic#&own5y&{W-eCx1mrS7)iY}s1>`K{? zPqx^VGMW_7Uf6EpF~c4V#ivNXMh<*pnQD>TfUfQMA}Y6Qpn74GO56tl*{)5c~YVbmxlV^N~J zsKvO_C{qiQi9jE?KC2I?eF*DL=y)bfk$l4?WJ$g~K`c{aN%>la%8vtD@Q9+5m-VNh zUtLi;gd1`erY_p(4`O4v#7PNLL)~E0k3bN$`PO(tKh<219=J-526mMPHh33vNdmrR^ugGz@YOp z-lC$ota#dKmFETSI76qMHu^l|!nSKo1oN;+7TrjE5o~}PL5#%({5_=1Sbxc%Vv>y9 z@W(1GaW7dSus_R0pb-JCtUAaFmIPev!wSVve)AX&<|5#93uC1Tdk#r76ONHFg&H4- zlY|e8#`zdidnh%*H7>S5sfl^M9>|zVvqV)ppqL;vd*_08)PLD|Xy#p3K7T*_gTXos&U+LD zYtF>*vN^OJE~|{K8)mQg&msEB=u30#&k+AJ%Kr?{VFE7OSRS6`UrJ^1r950mae#Xo zjgp7`Rz3yxeN? zkw4H)B#d7|^9r4~rv>xv)@*C@LMnJJB6cz6&ybfGpmpOCPE)^ZTAZScW~KnMHn z+m-Sl%zY=AD$irfr9I9lV^Ms=bwULsxrtu ze@h_rx?Y67V#EsY^HMzmR^hHx~H)L53Lk{ZL&Xi{U@ znonwwa6>ZYU!-hsHIWi?MM5i^NKa~MBu97YZ<6D|bLds|xNl55u7zq(9tsx<$qX{HLu+@7) z(j=9A2-88dqC02``@*oqqzobLBCEfE$0tp;rnjkfke1NWAksoaTSi(0M-xd4HH3y> z5NuCNH~d7PI{{6#BJ6%+pV9;#eKV03Y2;*nvUsdX)=(TR9;1UJT>gI(8ZgGY2=jMLKA(fwn($a5JbB}i1)DVuI zn;J`Y-PDBfeK$2!s?IyLHZ{KNy{QQu-8VIsrTSUczMOPGWs5dXhfq0~<%K*uNS$8}pr=|F z4{+#XP!cl0@VeT~bulM{dS6L_lynw3kP;y(2~q+$WI;+KDGgGR#mj?~Kq)0cO7u~j zM?sljoTm*(W3m~&lweXcq$G0)hXkVsy}{bVLs|%jfJh5v6A@`KG6{*ve#U}JNVx4Z zHm29g9F}o1w;&ElQ&U<5MQV(ws7MXr5EiMiq_{{;7%wnVLnRj(FsV=}r^aV%>QHEy z2PEUP%%T(>sX?XiNKNPvA8y;+(v)oiBt3{jgro<#o6g2a7n1iW!^8 zLTwRASzw}4DGQ22FlB+0vMCEKb5Wnbij{^S!tdLOX_y zJd!8wY|MgZaafdrL;R@Q-hf?B$4q!Ow?!tPu;(HZNCnqc@LHe91fb2c$khj#aE2ep z+Mu=;Ars7qIil28CS<}BEqZ$<;xY6GpCC$?I%=6u5oAIf$ALcf)V>}GW=v$^Q7+=p z7kThIe!^}K*jP+i$adh67Z#ZyD~GU5>#mGUI74Rp)2Aph;SH~3 z=`yA%G69W*{2Tdg4jepn8k-Xv9RqGdNr_(og|*~xptNQ^q^Gsm4(UOnmP2|Bhux4K zOj-@;DIGRLdN8ZSkRC?b3+X9c)+Xsli@ISRbzEo3K`IBc0vZ2u$5q}SmQeP z3RtSfeG~&+3es#vuqehCZUc;4{cxD%ENoE5?TD}?dro;GvJhK(Zx)zn|ILEp=)qaw zWFO8#8}FFNf;PfOfk7}b#+HD>+5_fl%z`y4O%vx5h8g~u>NC8sx2Q4P+k%!!#MJ?M zmW&d%tEW=Vl813Io#NK8_Qdh-Z(l5t2~X<+a>Ya@9JUGEzG@;9US(xklO(3VhC(KZ zA(}W7C5cLMm6NeEMG9tdIy{&Gpp+ezvK@)I3eY?T7S+6cNR|jyr2cFC^3CFTF1I%Vn<%e`wJJ9)G`3Yz7`7vK;0!B}$#7K%oC*wQ53mg|F@<9srP2q* zC?eeEqZJYA6IoK701nUX)@yvD2Nv1tE^JlbQVXh0m>8#YRZ`>t?;Wre9G_Gb1-AyT zSi=R9YX^91V&|K}nYoLn21TLR&eoaA)8~zj?Tdxhho%1Z1?^DjzF63_yf190;>RmWLJy9VW%3)Z(55T+jxncyV2L# z8ZvfZ6wip+{HdQ|4Z|y^^|Z#ME7abTds<`ghCB>wSO$k(!y4Q=8Y|sO(keAfVa-HF za}#d$a9QxiNYB0K~wbAHq zcZ1cX;%YhGSzTOQ4O`lAkhK7ZpvouMhilWAYHW?f-c5ySxyQ=vvg0?q|% zlfMZfTNGyks;F*EK;%$=38+_C8P zXtDMw3H3M`D{$U6?5g7jwJgd}dIE^D9QP)PYZ>O2C-{P*B;=M+Z4$DOEYSzCNyu$u z)+BV{Au28cL{SbWNkol^`?$ zNB}Ruj&a(bRju;^3n$xNRDIi`DAvu?2ro#H$+>ECTY_>sGb^M~aKg^gn;sM#CP9?k z8JXEAV@_*jd>NwfqRZ{d;6<114n;HT#jrV`$~QFYo%z`bQ=>XFZ+Lxs^LhDzjWR{c zI;J~|ZV>LzPtD2QTGVETwiK-1uhTS8?AJUa&W@d?ff|rTVcHug_H2=aGZL1a?Anxa zd*ANYKqFoI=_&ZLu1yKxUuP6O^7dN#^L@dMo_% zg!ztiZ#f)wDVn4e|oL1b9StdC9FG@vxCaPc6Nk# zM{;&drwchdY@G90tm(`SJchau0TvydaxePA@ zBHKwQL~vvcOa?sVTr-!zBwzm@Zs7bHMNHxtTy}?@W&s*#WP!7tZjl8ie7*%9 zYlI^>7!(T)e`>Hzo}i~RyzoO|J0KmsIG`qOC)L4way{ra`*fnz+wA7&nWlMuRsgBd zrkZSVEgClgRaCt>CNOciqaKAPaGuvcsUyi{=5>}Q`L=v)4ThoUNNyu&Ef+Td#0f6e>mSr17+PK3m zWYIV7SdAWey^3@Y8RyX`_elm?i$utP5|t1cKti?H*9LbNij*K35)v;_GJrWG%#_^* zcjrsl;8qJaLkh?EppxxA9Ubf}Ou~(ZA`NV5w$r?KCpKR6#8^&lIC6hjm3JRnhiJ+I zXAxCdU_y;v7hPH4Y@#d+j#ISBO@|TLWpG+(ZfUl*HgOpl+gR#yts5(+qlAXrTu#-( zA{1Dc&3Mq3Oq}RGNmpqWtQhAvpY7T%1ha61Gh1%pP(Z{X5V+LaHN0CB940*a4q>Jl z>)QLdzG1EVBrLbyqU3fqa*OEB1{9Uv*>FN_Sr_2h0HqAiMjbE4v*C>#DB8jHZ1kh( zeKVKQie*FD@YpgWY?qN^4zl5m;~Gl_7vm5Yw>8lA%OQxb8IPeul|vIg)apw`Y2h-B zBX5PkbN^0+d$yEkL9E`+$fYD}Yez-^%c^I&a4I8WWq(${Srf#THJj~6I_@(jXc$-N z@Eg|TPR@)-q1AV~8q0_{YT34w5o*k}acO`R!3lWb6s)%4OjAn#@s#}lHWR@T>yQq} z17gtxdElb@AP<^DE98Ndx*-onyoShws`Nx2lu>M$tXZ;)ck)2RD~dd*snx|qj&71x zY2@OiR7Wltw!WIxAYX2q3ry;cTp$h&k_*?OM{?mgv`H>pn@-6E=+rC+am@nDiMNYA znmF~U4Vug`#2I?`2#;HEgRG`DTw^I?%|c(CR70!bR7uoUco|dUPS2R!M`PrIZ`v(% z>ecBMTRK>4&$Zy@UT}xu@UnxYBiB!;QB`&bi$2W`7S*QNu^hTIJE+v8*%9LPXa;wb z(_xl9jd6QK#o-7U66$hp8OusiHQ!QMj1qD{ux4T(Dda%aw)4o*LJl;?ZIn4sZ8ucr zfD7MRnMRIDhmu@mhHKWXTQp5IfYH^Uns3M~Ov47r0^6dm#9P0J79rM;Br2-43MNMG8@k&qQkrsd?9zQm%T?C2Yj?<>XKiE3?*SlQT@b|mTw=}R*jeO&C~P<;p-@~ID{ z6iO-wWQ=f?OlF5*1(FRZ|9wqv_{cx*(lq0qm^6X`^9ryu-cE*vIo8o zN!f9GYClrj-uHeq;eGFUjXGH0fh)0bACg?YHAM4+4k?P-BP>O6jIT_**ccYc85=h$ zGh?GVq-89Pl#{U$;w5A(iBmSlQuUFFv2;ov#zu*kglO1UE72_jrx)W1b?IlW;}uq2 zJgH0WxmYTR7mw|bb@4>8QZAmvCEwzyq-2Ya;gD(ZL>6fl8`&kt;)!e$EI#%lBD+w4 zqVkLxu?{B@ZhsonFZ7!n9dRrI&JjB*;vA73Le4=Y#hfEbyr6RsIYpg=u8**DP%3ff zh!ijIo)llP{Y0LNw6D-}5!1d0ySeEit;Cv|!~E1#7x56j#GYau*t#f(9hB3HE=rnR z+~JDFhNh+mP#UH#ve@HZT|_QFsDqA9v2n$5EZTFCSr+HHqK8C+zIwq$W?O9Mitk)h z*Jt>yUR!;L+|0C|0g9(dkc9$ww!tAVh0c5fj(CyBe6oYsa1JH3Bq24WMQW$Uh|2QR z5TWYS*P*4xl5#&aVZ1g-4dv7ksnPmqj?{Q@6Dz`4O^p|O+U8)|hU`3EGd-F-PcuEG z#dRuIZlwpaoS2y&gc zX=rX~7SlW_(VW|vQ)0z!WfpQ3&wL}b-oN3NigEtNv_K^soyM5FX|c+&Sk=X}SaO9_ zS~`ngLkj1#P?mL2X(1d-pVC6vRy(D|2rqEL`Vu={VIRDCcn390OJ$|=^V z%a2J?KGS{?Et0q&NmTUqqj1RDexy>k_KO!UP5V(Qk!S88v(0Slb33A>mH(h0qj)ER zG1F<`;r1j9+Cppk4N^EAjiE$sCy|0$a-~cc=mOOMMIfdh>5o7yToNDA`sF(QsGtW6&?qpG-A85%g8)uO(Xe6cbtcA^?nnCzZ} za9@p$Vd=nhxo1!#(}R-z$K$WhuL-f%h+B5J3?vMwR}Lx2bR(h7_!O;WBjdP`MZk$Z|>s-)BkTicCpx7I|R z+-Npy?XXuo9hs$5r2~lev~={2?w1Zo_Q`Zq@f|fCj??Fp4oZ!GtS+B)U}`j!jxK&| zWVng?Hp_k^rL<_V)1g8}ro<~9%X*(~b4)ivHb+WG_rNSAm>Q;~Bym$UPoqvqZK0CGm*z1Q<4d8>@lPP zvZZJI1OfO zQ&PpSBU?ht3L(h>G?uJZ)@oVBlB`fkq8Qn5x`*N%LNkb!rK31eB;_j2VO16xOLIh3 zyZ!WcaoA0ff5z5ktF%!Z0P*6GZ7X-?$>hwKb<03g`kOOlk`{7hqjoIu$_8jz{FMzT zq$KoZVc7s}3&ye`g_n}q%n0*j8-DaVY^VYM!4_^z1b8^b01oD{g&GzGe>RAmUAr9H7bo$pI2N z|0V~LZh_>0Nov+4m8Ik3o3$%ElASMtDGjFvobA%&xxE_q;W z2238jBxa2ChVc7Z1MM&+0hKwD5g^_pk`Yk1NHRiL<_{_psK+LZL%Qr%xUFfc z#qy{gN5%%{7dmz6f6j_o!qxwXhacxSn+}!D%Brje^vTYZ&B~~v`5v-jSY{6@;-r$S zki&FnK~@B|^wjG4%G{>p>_OHfIi?Y^LR#h%GD5i~7P3OxW*D+!rI~8b=h$IYZ+M4A zaX>0kb(EplAIy(P=j&9km$TJxc$o7xq6sTs_hs7b+~~Q5*=}QgwnoSM>1tTJbuK@Y zMJ4A4jcVuom<~mqA6)9}{7CWYJ3qG4Pyd z0KMDC71yVWm5NHwZTA3IdLksr)Goqc@c>TyNKgWWY!?sk72M5+(D*4<22s47Y@UWc zwpOibU>7raU^|r7r18L0_hEQ|v)B~U(D8t-`7R>IJXIGxFivSg7&nK9C%!(x%D*5pPW8099604v={BDFb=o+HM@q1LxQykq6eciy{wRc%Ma5%Rw3w za&k>Z7GIpxYy zFHCi-#S36+^Ti9-ly;04p48oUc!6_RHeT?hiQ@&#Ve9z7w;4TNa2?i<7krx;&=1VG;RZAZ;Q)Xz^B&AAAy&+x_6hTSk8H z<8329_~YpY-Di90lcnO50EbQR(7Ib~S*Rx_>bf0IfR>Xby7Y@U!EXR~?YU^}wS6Lk0_x1=5esTBLoH5i)o0M?h}#6toNPy0f++rZ^O@PcO1 znO<uC0SY)-` zGk8TFAc^4aQ*1nQ9@2MUCEFO~IR(T2>nRusp!u_cXMtSlROLIa#M&m$xgOP<(+>h`MLJf3eS)2ZNjTI8SH`pJWawC7ac-br{^cS+JCs+dtWeEg>zSQ? zXo6>Giw9S(koU}~lFqO0nfnk8tULn`9|TQN^yLZ9*dzP1X70KFmMwGHa+Kvc17nA< z46F)H3*>OiGY2-+Z69~}^8D@Ubf3vy)$v% z)tYq1;t&#wY;ppoB_0_IxuUkS`n3ltgUfCqR|c2cLaq!xVis~`aCt1`%HShqAy)>M z%R;UUE}w;58GNKHam zDT;R{Nmr$Wj*jby>)qBD0)As5S#|P?Xp~`(ti?C9To&KZ@>_gE%Wm-vJ#rS`&@x$k zLywrnH?(XP-_SBzd_#lIBk4K~zXPG6LH&Tb8eD5Ozm2V!>%iS_{GLp|;tKkqeq5b* z@c6^)yt69nGux3<%{mS53@eYcT?v)7e0C*(KVo(z@Y0qfKN5AdTxKNXWEss!Kwlm+ z5_DrRI*3>vS0V6Pb~6%qJYr@f@LGN|5||`4BhxQ#K7_`@(wa|SM9++rJJB<+?oIRz9q&x^%t-eorZHF( zbY6!m(Kjd8nr7d;jBRd7roMeApmHh+>12zKeJ5b3zjf=IrGA96Z*0eT%D!2RrgNG4 zX0MK3_KiHQJ4`);(=p7xaUEwe`(|Z1pxHNzkU^lI*6f>=?dWFTJhGnSEa$spcJDow zWG6E?V|MLHknpn71bY(`C`Q_z=LgPW%=!V2+OU3bLoHQ58rly7X|ei2i#JsL;4Ayo z4_^G~3x4q9ZBsw^x=EV)pcd;e(qV~uV&F1BJ+Vk_cY5NhpReEv(sE#toTc`}A>~;L zp14v^-r)(*vSd@9bl{1DJfhJPoa2y2KOAhwGiamzkGC~E4z!))@2>WmuE&UBg`|a)W(=+{;7R{p7{^S6-v19 zNG+VqxLdrx+%M@4K+kz``2Rd}O6mUd%w2i^JOdlfKfl=I`|}LzaQ%7aWbyoY<`B~T zy5r9?C!62TGYhBN??`5file&LRNL+9HaKjn8&uW~JPKaz7#M}H&$e%Vh8Cm6d)V+g z`nlSiTFjUo!eT^b2a6hv*|9H2CrH#Gz(YO+O5Lm zwr;JX?h>6^o1MX!yd{=SPFgJT&lF#TmmPY1jYzv|Qn4h~`X#u$EvBWHiu*G@J90oc z#Agmvi>STH6M;G4oZ{|JSv^I?U8yMLT^VAKyyG&h)3~yRLaknd;|yC1 z-T8%X(5bf;W~YP6T2Pyt?`{L46>IxY*4ph>JD96=I@Qg!7eVCNMz_|k&Z4}nZLYOD zLA6~AsyT2c2%U-3?ZkimL;>dpxKHtBZ@PgKi5GvCyo} zO*S?!v=%z22EYX_cetVk(HmWiFkPE!%vEPkTiq{(ix409bQe0fDSM_Fz*Shm_5oX| zp#V@?V!e(mm=|Wi2*t~`3hb_Qz3;SUxB!W$ikvtWeUTF}sx)!}hWe1MIdURP^^p@M zUWeoaPNYaGYjbjm*CrLNO>*KVQYpnz&g=Ai-GcN=UL1#V$qQ}KFnJ+ET|`$id7*8( zCNHK_;c!*5b));PmBFiiBW^Yj(dFY0chiABBIZncG6Izb7a1%JrsBjb74xDgPgint+8p>Rl zM9`Ocx1|B|S}>D%sbgO^y0#Wa?l!CrAQ%?|Q(O$-pc`J#)|#8axSJH+AIDyidggHo zU_>!!B?c13wupm7bWyR8h|D1#646UBktlM!xJX1k;*tP~5Xc=lHaS?>5Xk;7#$)QrRcG4_> zgKKI_TJa>wGK(h(kX1ZM`cRGP!>x1$kWM^F_IbsV#2G=GC4i56Rv}%MMxP=;<7N`l z!Hv1h!E{h`S*U3jig95vY!@c$Sh6fjMU0PynbfpPiBGFQBAdsniz%VXNrt9!MkXb; zyaO~PnPus$+?$;e$#SP>N(9H$qBuW7QN zInCiLfTQTULzz1{rVft5kvaGLXMuF+o2kVtfa8?Lah1lY#X!u27*m}In|i6VQRLg= z>xAr|5e*p>3}(IIUPhJ@ zr8<&Dw?cI98TkoGoyI*5Zn^i^ zDn3pBaRTdJ;ThIF;aJUk>u4q1!Y%&hlynx6ni3%@TT=o!gltMADQ#1d#f#mPKu-Ca z6046OPKoA}$SJY&#=zUF~WE@(%>F5owCf=< z{g;+`ykoh#m=-J5`jfQa()XN}&f$bk3uW;}r-g91rPD&${L^VMoQ`Uz_)qVvNNAOa zZjsL>w}M!tex5W%RX`pzhd#&yE0seYjCf6v2Q{JE$it$q4#@-VR493X#~mIPrVdE> zM?5SEO+kC_aBVip1zbwAEHM|S^8QSd?#KngdZKwJrCcnM3wJ2GXe1XNyW_~dcqA9@ zh-DE;F2GUOVv?h*V+{1|-~k93Tt8<5VBfiWnjk7jqb^3@ctNu$9xu324deyZp^CiV zOP%BeEM7Tzfls8RDr>#)idR=+O`#VqPQB%YLvjT+6ZTx4<)iaDw@v!tkVvJ;gDU*6 zl)B9innTI?VPMgAet;cn&kqBe{_}(ERD_;aRgRKgZOzQ^O#y4*Tc-x+7K!69rdo4w z+ENX4A$ttoJ-z`zrNo$Tk!0F5G*G6Rh+gP4nwtf`v=h+=twp0In_V^3+J05%EGB)K>zL_H|s(Ir`!l`5>q$4|^7U(0@hEWF~El7{wD#7@hb1r@(ws%q}d zNQftT(T*&6vs@i3hkse%Mxvv>EHLb51^Zwx3*4AxjF$yx+%>dIIn5uMP>OD28;e(I zv=$&vr>V3UI*sV8N-d!mN1nH5v}u}}$^&9ib9vyR`YsQeL-FN-l^QS)M!YJ_gX+|Y zd4T&U$2`zZEtvs>o+I=ySh$g6kls2=pL9oUQBwL_1^9Fm!*RgT9WnF7Xg zBG0Kkv8CcBF?Q4ks`7k2agK_9zMg&5nkxy*t9@hgonQOL09TSsdCEgVbCsKGe^4%9 zxmhR|h-2qaE?mntqFi{6Jw>^2Z5xd80J?V@sX?w)&(mNxUeQ0|L+q3jPWJ9bV{I>J z7Uk~+H);iVfpwSzUht(|-~}w+K=1=wmW?;Spy$cma1B5h7%=a3*bI}}FQ}dxENT(qBGdInA(etJ09@+@-)w|;ago0qmu zt2?_uspMGAY;x1LvSj5J@AZyZ6W~s~OVwp43#r#KkUErD1~iMt%7EffPZ`i`x+pzN zMDd^?r@PkpY_&KCyPHJ`prb5a321k*0TaHYc%f5kbEQz@8bYZBA7Bz(ZW%(lMfs z0X`^G>ii7gqaCiL|K}cZMEj}S5ll* z&Yj{ok(?WN3^)7+@L7XhCpu#ndNQ?kZElvy?&uUM01rsb)&J<&ko-ucCq$afBpg(~ zWgW>DCxU15e!4khBsJfV2)AyO{%#9y0UaE_5ov$b&@I8X@qCXk( zVZ1obK+i2x{%EU=jSs@DLnqd}DuB`-Z58w+07I_!8Ha|<#t89MuctV7YQ_&e!HbJ{6){HlrQ|;PZ4KCY0SzaTSYKHX! z;FV{z2$$o+Wn?q8cC9&88!U3yjbBiUAIC3)sEyw&;!ORTYd)ir;Y|Rg91~%B@o*9nC`bNC7lC%1Lb5OC& z@0Ta|9FJ#C+Au)Q^n2zI5(&CT#WN?{?7wFg;dKD6MOk>o9={$hb_p*m_06<`7Z< zhFd8h;>J=bARGgwsl^mHNk>8Y>Ag&WtWDlL9Y-8aEvCUqc95YMU8Dh)#}%fbVXfG- zBIMCaX<#fz52hh^959#$#&(Qg8v5{If!cbgDqjz^jFR#cM^mI#cd%$`0lj@nSf(Sh z$jfv9QIVOB-XS&90ZGA`jw)Vuro(aUXP8<{2Q}KygCmUJi0n$o#${@zLz0%{si_*Q zYb9t(B&`ukOE4vZ!_rHMWV7T_Lf9;|#H%gyil}vIDv>YT+|q1qZL*D5N($wJ(JEA0 zarpqFQYs&wLu%y%mQpMqO1xCdhwGGb`JgjPy?kt4QZOH~l#1(fbtspV%!#aZGAT84 zB08jKPGp-@%?W9fvb0HwI~&C&B{-XFKpl(;le#zs3l9TWX94rM0StwUVqv^-v=F@G z08p;Y|w^ckqt=(?5gSlF# zQ{7zK0(3m(6G5jt*TqDEbqb4-ktw7UnXU`wTAgk%-)_vo#@H)rouIQYKi_IY>@I)R z-3kl;g*n+dHK#L2EY(C6&(axFu1{vgsI8b3EmRyd zqh3P;o>UDu@>+O&OzJ}!_|&PvBsF?bMaD@w(JJCC-Pz=gGjAOTMg?7HsUWR(1l#_N zzSXRWc5Q6pbtNOF{3Gr9II0jKGRzJ0z=HPKpv6y4G2-0>msoRQZnD;PHE_dLx6&E~ zH*77qRufLeMt%U$4m#k5gQEvQ7<7X9S{npLw>E8zo9%pJN=7YTF-{kN7Pb~!lW2i_ zg)sty7&sYZsuTi-^f;Ib6$ju0zJ}kpOl8LamJL+{`Xt$&wyo_J9GE}TsLg^@jhEbp zk#8q9DguuRH>5VuK$h?%gw@^ELA~063IP$1^&jBE-r97qdfRH859yP}T1-7eT4=h` zGjv-hgOk-xjg0_YC1i-WcmSi6@YKs_DWQ~GU0of_Er3d^SFflARVXwly48U?`oYjs z4t6o6bvSV5K5%Ghyz6$?dTwxrev3;{BU?3w!f4%u!kxd(g@qp0sD3l>fXp8k-I2A0jYpO0frsU_8(%CtWln*8l_z1DzCa`X2LQRX2qqk zk`^X_7_D-d3KQ8RD@>d!vrOPlwpz2bYI8ZubI3<|0*FzbxXmTn%b8&&EixwWXV{>a zSxl=JR|l;bvZs=^SLB?mh_Q|>MO+6>Ig9F%8@H}j%PkCC>a7uJJM4LmqxD&>5aN9SnCqK6~I!u8`hM;ws_G(qYdK@B

U zgtfNXUTfj%QXZXtwuId(#uCWl@iB_f05HlBP1|UHz%tZ4K7n3{c4Ih_%!H-L^`EP4 zW3kaeZrnyd<0o2=%~pZyHkaJ64|+6GqjXS{L`z2-D>Q}BFcuV0(d)3uL_x${J)Y$r zM=8)ltF)OzwlXo|#Um7gKsr@YmZsr%p|n$l@-j{CcX1#XWs4m?TDH{k1lwRuN%h}& z8NnJjr8Ly`>|%?zE8|Q+d_#$kDYMj+ngd_XlBLFoPK>37aLk3J#*))tsR`p}yi!9sCb_DM zsnPmu;7yI^Tp^Vjt(|o`T#sDIy-VCa$*f0| zbIMQ?T-VIjnwz_I@TIqfg0Su(=CM#iI8+5Y6|B0bG)8_XiwemP8r3QJF&#=KKe*I7 z`H|w)P=0KuUdj*OM^WWxAnw}=g5i=lsAp<1KdO)-fLa!)(~D<-4x*8UR9mUKSgFX3 zL)v!&R=m3Bj_sH9z@+pfp)4z?dD&KrgLiX*Le#^Z;At zJ`_5Z6RnT`O}j-ME3rIw%alL61)%)fEdc7>ZUM~Yvs(b%lidPH%VxI#_Hx=S0KdF; z3ovkwxN{mX0Iv*~qA*}`>jXe86}i~*X%``EX}RqpWKv#Ey9gPOv9i2&5waS3Wb7hj zMfXcgUndGnXZ>u zEwMa!VxGZp*yX`1_x04}L9aY%1z+c5ox03}OqNw2-&`IZ!wH>od3aFIlis*V&1}m9 ztjsFi4VMRTjQnr91(*kMoDg-7UJk@^G1k{MxtIsnb&7BvTzU3Z9t@_c>|VP(u$HsA z^1wOH>dFIaJG(0nUid68T=X^5L>FtPvH1Y_gR`&4z~6;tZE?Of1zVos42Ai^Z0(BL zENoJqgVoBg0eC-%F@VtmSl-R|mbGhBv(?5N#IMf4X2<{*BdF!#38%K_CE_o?A1UUpr5FkCfq~3=hKG+sjRozuxRsCT1*Vkz@ zir<@$3hVHL`3P84yNCJ*^Aeaabfr@_Fz}d3&lF;X&jf$K(*Wm+Q_9EDF7JSx<>UtS z3a6H0f)inNXTm(jGs;QQET7K$yphONWl{0cCNH&y`8$dzYK-OozuRlcY?IB2+PrCB=pXA;OXqZ z)BTgR2aZ`|XFVV$)GmEzp7kiBuQu!L2U;C!l4Py_Hf{~dT8SH znqC;Y%GtDfI8mL$iR#|$ub_nT^8u_6#A*w`BGw-q!ul>h9Kd8&)FG_zGQ=BLpT}w~ za-Kl{=*)=2V}(xw=0`E_0QpbY!|N=goOPV=;V};id$YaAI5kfX_%*@YE=lhNKA`6& zF=U_jXljg8U*S*T=p>H`TyOFIFn*R{C`*}txsFnY+nbSfHY4l)j3vw2V_RSEXkbl! zB@&%Gm6i8!6V|dhewK-S|K7-bEpyGRV>2Fq*0C8+R~wV_eoi`8)^r*rLpVd&e~6|L z)&-_I0FuV_5JDDZ*T4~oBJ~hrxT%FyxN)K{I`gVmQJH5n>@)`vgpJK5O`$%!c zSO@b43=7tGq>VLFlkP7gA!>%wIzLLOZx7X^cP#wzul7ll4;^~#8)Xr3ny8a3;?;G01|K-4#q=ZC6er4 z(W_=Mv=#D3e>{yz8omB~GigMMPpc?Ck>bNDiVvjteig;{q_~Mz)Z>N}AJWdo+s$q znS*pRz#M`un@5fVtefKeUGO<@BMYpEV)Zh~GXrdMAl{`h7N!8%dym!9%Hr;8itFtx zf?8gOoMgCo4ZT%cWonntd&xAx)9#t)}Y655Kr=l*J~wf65EijvmsrV7q6uX^n$@e1=G|^ z2!+|8Ue$C2l3F%hm54)8tZu5p-r{eqOlz3J;2wa|Dh_9N+q>2bieUa~#g?03y)u?Z zTVgx%&UWO|t6qmhJ4{j=Lq+0tQA}L{exs3SBZu!sxJAdcN!gZWuAVi}-zI zWwG?0nWb_`Lh-FD{nz;RJF%(YXl9F_t&lH8$S4|eu7meX8o4r48IH$~oT$)*hFTK+$Xt!Mx4)yOgv05^@xV> z%RIivU;>yDNZG@u=sCl?!a1Is?`D57F}U&C5H132_kd8Rfs+`V0~8NNLgzMvKDWvJ zY&^@(*!9`XFX-_|Fo^pJyzOhT_XYZHktAzz z3K523i$+KWJ>g(e3#xKvZVW#dLr26c{ulCr&g%Zp(9QJ>?QhI<{M2hHy)ln5u%IaJ zj76AlO~AhaB+~y4eh|bn@Cprm88pm2NqRR9F^Zc$i-(hvKS@epegwjeJ3psS2Qe1T z`972%`J-t}C`B|ALinCxLr<~g=|lRb^ir@Zda0h_DQFF0MQ`nypW+EZ)nls$o?BRV z;Ym9pYmrS*s93HZ?VxNn)htJcad(%+xqOE#F`Ljd^xujf>%SxP3gX=s-E%kbf4d{lBg$ZSm zWmI0@;DPx$9<#tx199g_Ihm{#uYR0)h;5EZ`!%^zLe!A{frYL?-d@Si6%&Ew-40^f z$z)V`iXfIvz-deqW;%l~aO~P0mnzvX4!FCh9xT{#suL`6x@{08G_GSX~#t}1FjP3|9ZSBYg-A0)DdPFtNpTe@rw8Iz&Kt7lD| zAvdZDt=+?DMA5@Vldbq|*-jPf!!?yuZ*jUfIvTepeG*1b6AFvJY5zDIO$QxjMrWzgk9GZ?SK5wJoZ`q_3Ck+RDod*EtY@cafmQ|xWx$~ETQY2S8C zMwE7J)#BLC_4vSjNfB4&&B&AS#2hiet~$kS$>>l3`+`mWbVLQ45t#8E*w{|Tv}Krv zpW^8lh%z~@v7z}-#4PWy*N~=OD9SxPx5bxzC2b+y=W?fMdqDodLN*6&m*w$%aWuT_ zlE>vaEPXuC$0Zt(K91(UgOJ+YvMt8U!fw}!4hG+@0o8Fukjrj2mEliuOvqJ@ih8Iy z`bB>(UsQL0I+5~4brWZc!$CzUi-$4qo|HvMtcmGjLqLuq7c*0>&np?jNX%hi%SG7T#6Gb=yl<2;p6yr@)dnoUi!#Hs5<2$2@lD)D6ijXXAj9;ZZ2)? zzJG6y=rHu1tJaVtyt7G`Ob|5LFv5sfLKh>%Y5;$2vKWKvfjJfrJHdAxSxQ*jA^I>` z*mlQ(I8oNI-Xuf)){lFaCv!y149dG2vess6d^f6J1e^Pv1UU4HbcPdSl;}VxF$8a5}PDS)+(fqI#+o<-(s85q= zGbH1F9u^k*M^7jpIuyq@u?n(f9cZYjHj z^Gjb#yJ)B4I#ImiW9b9RiSFJCGZSIQU zdjYSQI_<0wInS!9N@%r6sE^ zwzeTPL2OboJX%d_OQvUDa0H^Q=)SJ;%!buffer) + (clear-stream _test-output-stream) + (clear-stream $_test-output-buffered-file->buffer) + # + (write _test-input-stream "fn foo {\n") + (write _test-input-stream " var x/ecx: (addr handle int) <- copy 0\n") + (write _test-input-stream " allocate x\n") + (write _test-input-stream "}\n") + # convert + (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0) + (flush _test-output-buffered-file) +#? # dump _test-output-stream {{{ +#? (write 2 "^") +#? (write-stream 2 _test-output-stream) +#? (write 2 "$\n") +#? (rewind-stream _test-output-stream) +#? # }}} + # check output + (check-next-stream-line-equal _test-output-stream "foo:" "F - test-convert-function-with-allocate/0") + (check-next-stream-line-equal _test-output-stream " # . prologue" "F - test-convert-function-with-allocate/1") + (check-next-stream-line-equal _test-output-stream " 55/push-ebp" "F - test-convert-function-with-allocate/2") + (check-next-stream-line-equal _test-output-stream " 89/<- %ebp 4/r32/esp" "F - test-convert-function-with-allocate/3") + (check-next-stream-line-equal _test-output-stream " {" "F - test-convert-function-with-allocate/4") + (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:" "F - test-convert-function-with-allocate/5") + (check-next-stream-line-equal _test-output-stream " ff 6/subop/push %ecx" "F - test-convert-function-with-allocate/6") + (check-next-stream-line-equal _test-output-stream " b9/copy-to-ecx 0/imm32" "F - test-convert-function-with-allocate/7") + (check-next-stream-line-equal _test-output-stream " (allocate Heap 0x00000004 %ecx)" "F - test-convert-function-with-allocate/8") # 4 = size-of(int) + (check-next-stream-line-equal _test-output-stream " 8f 0/subop/pop %ecx" "F - test-convert-function-with-allocate/9") + (check-next-stream-line-equal _test-output-stream " }" "F - test-convert-function-with-allocate/10") + (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:" "F - test-convert-function-with-allocate/11") + (check-next-stream-line-equal _test-output-stream " # . epilogue" "F - test-convert-function-with-allocate/12") + (check-next-stream-line-equal _test-output-stream " 89/<- %esp 5/r32/ebp" "F - test-convert-function-with-allocate/13") + (check-next-stream-line-equal _test-output-stream " 5d/pop-to-ebp" "F - test-convert-function-with-allocate/14") + (check-next-stream-line-equal _test-output-stream " c3/return" "F - test-convert-function-with-allocate/15") + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + test-initializer-in-hex: # . prologue 55/push-ebp @@ -3654,6 +3699,51 @@ test-array-size-in-hex: 5d/pop-to-ebp c3/return +test-convert-function-with-populate: + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # setup + (clear-stream _test-input-stream) + (clear-stream $_test-input-buffered-file->buffer) + (clear-stream _test-output-stream) + (clear-stream $_test-output-buffered-file->buffer) + # + (write _test-input-stream "fn foo {\n") + (write _test-input-stream " var x/ecx: (addr handle array int) <- copy 0\n") + (write _test-input-stream " populate x, 7\n") + (write _test-input-stream "}\n") + # convert + (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0) + (flush _test-output-buffered-file) +#? # dump _test-output-stream {{{ +#? (write 2 "^") +#? (write-stream 2 _test-output-stream) +#? (write 2 "$\n") +#? (rewind-stream _test-output-stream) +#? # }}} + # check output + (check-next-stream-line-equal _test-output-stream "foo:" "F - test-convert-function-with-populate/0") + (check-next-stream-line-equal _test-output-stream " # . prologue" "F - test-convert-function-with-populate/1") + (check-next-stream-line-equal _test-output-stream " 55/push-ebp" "F - test-convert-function-with-populate/2") + (check-next-stream-line-equal _test-output-stream " 89/<- %ebp 4/r32/esp" "F - test-convert-function-with-populate/3") + (check-next-stream-line-equal _test-output-stream " {" "F - test-convert-function-with-populate/4") + (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:" "F - test-convert-function-with-populate/5") + (check-next-stream-line-equal _test-output-stream " ff 6/subop/push %ecx" "F - test-convert-function-with-populate/6") + (check-next-stream-line-equal _test-output-stream " b9/copy-to-ecx 0/imm32" "F - test-convert-function-with-populate/7") + (check-next-stream-line-equal _test-output-stream " (allocate-array2 Heap 0x00000004 7 %ecx)" "F - test-convert-function-with-populate/8") # 4 = size-of(int) + (check-next-stream-line-equal _test-output-stream " 8f 0/subop/pop %ecx" "F - test-convert-function-with-populate/9") + (check-next-stream-line-equal _test-output-stream " }" "F - test-convert-function-with-populate/10") + (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:" "F - test-convert-function-with-populate/11") + (check-next-stream-line-equal _test-output-stream " # . epilogue" "F - test-convert-function-with-populate/12") + (check-next-stream-line-equal _test-output-stream " 89/<- %esp 5/r32/ebp" "F - test-convert-function-with-populate/13") + (check-next-stream-line-equal _test-output-stream " 5d/pop-to-ebp" "F - test-convert-function-with-populate/14") + (check-next-stream-line-equal _test-output-stream " c3/return" "F - test-convert-function-with-populate/15") + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + # special-case for size(byte) when allocating array test-convert-function-with-local-array-of-bytes-in-mem: # . prologue @@ -11176,11 +11266,19 @@ has-primitive-name?: # stmt: (addr stmt) -> result/eax: boolean # if (name == "compute-offset") return true (string-equal? %esi "compute-offset") # => eax 3d/compare-eax-and 0/imm32/false - 75/jump-if-!= $has-primitive-name?:end/disp8 + 0f 85/jump-if-!= $has-primitive-name?:end/disp32 # if (name == "lookup") return true (string-equal? %esi "lookup") # => eax 3d/compare-eax-and 0/imm32/false - 75/jump-if-!= $has-primitive-name?:end/disp8 + 0f 85/jump-if-!= $has-primitive-name?:end/disp32 + # if (name == "allocate") return true + (string-equal? %esi "allocate") # => eax + 3d/compare-eax-and 0/imm32/false + 0f 85/jump-if-!= $has-primitive-name?:end/disp32 + # if (name == "populate") return true + (string-equal? %esi "populate") # => eax + 3d/compare-eax-and 0/imm32/false + 0f 85/jump-if-!= $has-primitive-name?:end/disp32 # var curr/ecx: (addr primitive) = Primitives b9/copy-to-ecx Primitives/imm32 { @@ -11294,6 +11392,22 @@ check-mu-primitive: # stmt: (addr stmt), fn: (addr function), err: (addr buffer (check-mu-lookup-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14)) e9/jump $check-mu-primitive:end/disp32 } + # if (op == "allocate") check-mu-allocate-stmt + { + (string-equal? %ecx "allocate") # => eax + 3d/compare-eax-and 0/imm32/false + 74/jump-if-= break/disp8 + (check-mu-allocate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14)) + e9/jump $check-mu-primitive:end/disp32 + } + # if (op == "populate") check-mu-populate-stmt + { + (string-equal? %ecx "populate") # => eax + 3d/compare-eax-and 0/imm32/false + 74/jump-if-= break/disp8 + (check-mu-populate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14)) + e9/jump $check-mu-primitive:end/disp32 + } # otherwise check-numberlike-stmt (check-mu-numberlike-primitive *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14)) $check-mu-primitive:end: @@ -11861,6 +11975,30 @@ $check-mu-lookup-stmt:end: 5d/pop-to-ebp c3/return +check-mu-allocate-stmt: # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor) + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # . save registers +$check-mu-allocate-stmt:end: + # . restore registers + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + +check-mu-populate-stmt: # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor) + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # . save registers +$check-mu-populate-stmt:end: + # . restore registers + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + check-mu-call: # stmt: (addr stmt), callee: (addr function), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor) # . prologue 55/push-ebp @@ -13747,6 +13885,24 @@ emit-subx-stmt: # out: (addr buffered-file), stmt: (addr stmt), primitives: (ad (translate-mu-get-stmt *(ebp+8) *(ebp+0xc)) e9/jump $emit-subx-stmt:end/disp32 } + # allocate scalar + { + # if (!string-equal?(stmt->operation, "allocate")) break + (string-equal? %ecx "allocate") # => eax + 3d/compare-eax-and 0/imm32 + 0f 84/jump-if-= break/disp32 + (translate-mu-allocate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18)) + e9/jump $emit-subx-stmt:end/disp32 + } + # allocate array + { + # if (!string-equal?(stmt->operation, "populate")) break + (string-equal? %ecx "populate") # => eax + 3d/compare-eax-and 0/imm32 + 0f 84/jump-if-= break/disp32 + (translate-mu-populate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18)) + e9/jump $emit-subx-stmt:end/disp32 + } # - if stmt matches a primitive, emit it { $emit-subx-stmt:check-for-primitive: @@ -14482,6 +14638,151 @@ $translate-mu-get-stmt:end: 5d/pop-to-ebp c3/return +translate-mu-allocate-stmt: # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor) + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # . save registers + 50/push-eax + 56/push-esi + 57/push-edi + # esi = stmt + 8b/-> *(ebp+0xc) 6/r32/esi + # var target/edi: (addr stmt-var) = stmt->inouts[0] + (lookup *(esi+0xc) *(esi+0x10)) # Stmt1-inouts Stmt1-inouts => eax + 89/<- %edi 0/r32/eax + # + (emit-indent *(ebp+8) *Curr-block-depth) + (write-buffered *(ebp+8) "(allocate Heap ") + (addr-handle-payload-size %edi *(ebp+0x10) *(ebp+0x14)) # => eax + (write-int32-hex-buffered *(ebp+8) %eax) + (emit-subx-call-operand *(ebp+8) %edi) + (write-buffered *(ebp+8) ")\n") +$translate-mu-allocate-stmt:end: + # . restore registers + 5f/pop-to-edi + 5e/pop-to-esi + 58/pop-to-eax + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + +addr-handle-payload-size: # s: (addr stmt-var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # var t/eax: (addr type-tree) = s->value->type + 8b/-> *(ebp+8) 0/r32/eax + (lookup *eax *(eax+4)) # Stmt-var-value Stmt-var-value => eax + (lookup *(eax+8) *(eax+0xc)) # Var-type Var-type => eax + # TODO: check eax != 0 + # TODO: check !t->is-atom? + # TODO: check t->left == addr + # t = t->right +$addr-handle-payload-size:skip-addr: + (lookup *(eax+0xc) *(eax+0x10)) # Type-tree-right Type-tree-right => eax + # TODO: check eax != 0 + # TODO: check !t->is-atom? + # TODO: check t->left == handle + # t = t->right +$addr-handle-payload-size:skip-handle: + (lookup *(eax+0xc) *(eax+0x10)) # Type-tree-right Type-tree-right => eax + # TODO: check eax != 0 + # if !t->is-atom? t = t->left + 81 7/subop/compare *eax 0/imm32/false + { + 75/jump-if-!= break/disp8 + (lookup *(eax+4) *(eax+8)) # Type-tree-left Type-tree-left => eax + } + # TODO: check t->is-atom? + # return size(t->value) + (size-of-type-id *(eax+4)) # Type-tree-value => eax +$addr-handle-payload-size:end: + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + +translate-mu-populate-stmt: # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor) + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # . save registers + 50/push-eax + 51/push-ecx + 56/push-esi + 57/push-edi + # esi = stmt + 8b/-> *(ebp+0xc) 6/r32/esi + # var target/edi: (addr stmt-var) = stmt->inouts[0] + (lookup *(esi+0xc) *(esi+0x10)) # Stmt1-inouts Stmt1-inouts => eax + 89/<- %edi 0/r32/eax + # var len/ecx: (addr stmt-var) = stmt->inouts[1] + (lookup *(edi+8) *(edi+0xc)) # Stmt-var-next Stmt-var-next => eax + 89/<- %ecx 0/r32/eax + # + (emit-indent *(ebp+8) *Curr-block-depth) + (write-buffered *(ebp+8) "(allocate-array2 Heap ") + (addr-handle-array-payload-size %edi *(ebp+0x10) *(ebp+0x14)) # => eax + (write-int32-hex-buffered *(ebp+8) %eax) + (emit-subx-call-operand *(ebp+8) %ecx) + (emit-subx-call-operand *(ebp+8) %edi) + (write-buffered *(ebp+8) ")\n") +$translate-mu-populate-stmt:end: + # . restore registers + 5f/pop-to-edi + 5e/pop-to-esi + 59/pop-to-ecx + 58/pop-to-eax + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + +addr-handle-array-payload-size: # s: (addr stmt-var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # var t/eax: (addr type-tree) = s->value->type + 8b/-> *(ebp+8) 0/r32/eax + (lookup *eax *(eax+4)) # Stmt-var-value Stmt-var-value => eax + (lookup *(eax+8) *(eax+0xc)) # Var-type Var-type => eax + # TODO: check eax != 0 + # TODO: check !t->is-atom? + # TODO: check t->left == addr + # t = t->right +$addr-handle-array-payload-size:skip-addr: + (lookup *(eax+0xc) *(eax+0x10)) # Type-tree-right Type-tree-right => eax + # TODO: check eax != 0 + # TODO: check !t->is-atom? + # TODO: check t->left == handle + # t = t->right +$addr-handle-array-payload-size:skip-handle: + (lookup *(eax+0xc) *(eax+0x10)) # Type-tree-right Type-tree-right => eax + # TODO: check eax != 0 + # TODO: check !t->is-atom? + # TODO: check t->left == array + # t = t->right +$addr-handle-array-payload-size:skip-array: + (lookup *(eax+0xc) *(eax+0x10)) # Type-tree-right Type-tree-right => eax + # TODO: check eax != 0 + # if !t->is-atom? t = t->left + 81 7/subop/compare *eax 0/imm32/false + { + 75/jump-if-!= break/disp8 + (lookup *(eax+4) *(eax+8)) # Type-tree-left Type-tree-left => eax + } +$addr-handle-array-payload-size:compute-size: + # TODO: check t->is-atom? + # return size(t->value) + (size-of-type-id-as-array-element *(eax+4)) # Type-tree-value => eax +$addr-handle-array-payload-size:end: + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + power-of-2?: # n: int, err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: boolean # precondition: n is positive # . prologue diff --git a/mu.md b/mu.md index 70932baa..429f2034 100644 --- a/mu.md +++ b/mu.md @@ -445,6 +445,22 @@ var y/reg: (addr handle T) <- index arr: (addr array handle T), n copy-handle-to *y, x ``` +To create handles to non-array types, use `allocate`: + +``` +var x: (addr handle T) +... initialize x ... +allocate x +``` + +To create handles to array types, use `populate`: + +``` +var x: (addr handle array T) +... initialize x ... +populate x, 3 # array of 3 T's +``` + You can copy handles to another variable on the stack like this: ``` diff --git a/mu_instructions b/mu_instructions index 7b38a1f8..c23606ec 100644 --- a/mu_instructions +++ b/mu_instructions @@ -258,4 +258,12 @@ out/reg: (addr T) <- lookup in: (handle T) "8b/-> *(epb+" (in.stack-offset+4) ") " reg "/r32" "81 0/subop/add %" reg " 4/imm32" # skip payload->allocid +# Allocating memory + +allocate in: (addr handle T) + => "(allocate Heap " size-of(T) " " in ")" + +populate in: (addr handle array T), num # can be literal or variable on stack or register + => "(allocate-array2 Heap " size-of(T) " " num " " in ")" + vim:ft=mu:nowrap:textwidth=0