From 39c2aa530544eaed349a966d253c4d3c5a1395bb Mon Sep 17 00:00:00 2001 From: Laytan Date: Sat, 31 Aug 2024 03:04:33 +0200 Subject: [PATCH] Support wasm in Odin bindings (#8) --- bindings/odin/build-clay-lib.sh | 3 +- bindings/odin/clay-odin/clay.odin | 95 +++++++++++----------------- bindings/odin/clay-odin/wasm/clay.o | Bin 0 -> 90309 bytes 3 files changed, 40 insertions(+), 58 deletions(-) create mode 100644 bindings/odin/clay-odin/wasm/clay.o diff --git a/bindings/odin/build-clay-lib.sh b/bindings/odin/build-clay-lib.sh index b4ce6e0..590f80a 100755 --- a/bindings/odin/build-clay-lib.sh +++ b/bindings/odin/build-clay-lib.sh @@ -2,5 +2,6 @@ cp ../../clay.h clay.c; clang -c -o clay.o -static -target x86_64-apple-darwin clay.c -fPIC && ar r clay-odin/macos/clay.a clay.o; clang -c -o clay.o -static clay.c -fPIC && ar r clay-odin/macos-arm64/clay.a clay.o; clang -c -o clay-odin/windows/clay.lib -target x86_64-pc-windows-msvc -fuse-ld=llvm-lib -static clay.c; +clang -c -o clay-odin/wasm/clay.o -target wasm32 -nostdlib -static clay.c; rm clay.o; -rm clay.c; \ No newline at end of file +rm clay.c; diff --git a/bindings/odin/clay-odin/clay.odin b/bindings/odin/clay-odin/clay.odin index 721d4b9..01990d8 100644 --- a/bindings/odin/clay-odin/clay.odin +++ b/bindings/odin/clay-odin/clay.odin @@ -13,6 +13,8 @@ when ODIN_OS == .Windows { } else { foreign import Clay "macos/clay.a" } +} else when ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32 { + foreign import Clay "wasm/clay.o" } String :: struct { @@ -222,7 +224,7 @@ ClayArray :: struct($type: typeid) { internalArray: [^]type, } -@(link_prefix = "Clay_") +@(link_prefix = "Clay_", default_calling_convention = "c") foreign Clay { MinMemorySize :: proc() -> c.uint32_t --- CreateArenaWithCapacityAndMemory :: proc(capacity: c.uint32_t, offset: [^]u8) -> Arena --- @@ -235,64 +237,43 @@ foreign Clay { GetScrollContainerData :: proc(id: c.uint32_t) -> ScrollContainerData --- SetMeasureTextFunction :: proc(measureTextFunction: proc(text: ^String, config: ^TextElementConfig) -> Dimensions) --- RenderCommandArray_Get :: proc(array: ^ClayArray(RenderCommand), index: c.int32_t) -> ^RenderCommand --- - @(private) - _OpenContainerElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig) --- - @(private) - _OpenRectangleElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, rectangleConfig: ^RectangleElementConfig) --- - @(private) - _OpenTextElement :: proc(id: c.uint32_t, text: String, textConfig: ^TextElementConfig) --- - @(private) - _OpenImageElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^ImageElementConfig) --- - @(private) - _OpenScrollElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^ScrollElementConfig) --- - @(private) - _OpenFloatingElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^FloatingElementConfig) --- - @(private) - _OpenBorderElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^BorderElementConfig) --- - @(private) - _OpenCustomElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^CustomElementConfig) --- - @(private) - _CloseElementWithChildren :: proc() --- - @(private) - _CloseScrollElement :: proc() --- - @(private) - _CloseFloatingElement :: proc() --- - @(private) - _layoutConfigs: ClayArray(LayoutConfig) - @(private) - _LayoutConfigArray_Add :: proc(array: ^ClayArray(LayoutConfig), config: LayoutConfig) -> ^LayoutConfig --- - @(private) - _rectangleElementConfigs: ClayArray(RectangleElementConfig) - @(private) - _RectangleElementConfigArray_Add :: proc(array: ^ClayArray(RectangleElementConfig), config: RectangleElementConfig) -> ^RectangleElementConfig --- - @(private) - _textElementConfigs: ClayArray(TextElementConfig) - @(private) - _TextElementConfigArray_Add :: proc(array: ^ClayArray(TextElementConfig), config: TextElementConfig) -> ^TextElementConfig --- - @(private) - _imageElementConfigs: ClayArray(ImageElementConfig) - @(private) - _ImageElementConfigArray_Add :: proc(array: ^ClayArray(ImageElementConfig), config: ImageElementConfig) -> ^ImageElementConfig --- - @(private) - _floatingElementConfigs: ClayArray(FloatingElementConfig) - @(private) - _FloatingElementConfigArray_Add :: proc(array: ^ClayArray(FloatingElementConfig), config: FloatingElementConfig) -> ^FloatingElementConfig --- - @(private) - _customElementConfigs: ClayArray(CustomElementConfig) - @(private) - _CustomElementConfigArray_Add :: proc(array: ^ClayArray(CustomElementConfig), config: CustomElementConfig) -> ^CustomElementConfig --- - @(private) - _scrollElementConfigs: ClayArray(ScrollElementConfig) - @(private) - _ScrollElementConfigArray_Add :: proc(array: ^ClayArray(ScrollElementConfig), config: ScrollElementConfig) -> ^ScrollElementConfig --- - @(private) - _borderElementConfigs: ClayArray(BorderElementConfig) - @(private) - _BorderElementConfigArray_Add :: proc(array: ^ClayArray(BorderElementConfig), config: BorderElementConfig) -> ^BorderElementConfig --- - @(private) - _HashString :: proc(toHash: String, index: c.uint32_t) -> c.uint32_t --- } +@(private, link_prefix = "Clay_", default_calling_convention = "c") +foreign { + _layoutConfigs: ClayArray(LayoutConfig) + _rectangleElementConfigs: ClayArray(RectangleElementConfig) + _textElementConfigs: ClayArray(TextElementConfig) + _imageElementConfigs: ClayArray(ImageElementConfig) + _floatingElementConfigs: ClayArray(FloatingElementConfig) + _customElementConfigs: ClayArray(CustomElementConfig) + _scrollElementConfigs: ClayArray(ScrollElementConfig) + _borderElementConfigs: ClayArray(BorderElementConfig) +} + +@(link_prefix = "Clay_", default_calling_convention = "c", private) +foreign Clay { + _OpenContainerElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig) --- + _OpenRectangleElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, rectangleConfig: ^RectangleElementConfig) --- + _OpenTextElement :: proc(id: c.uint32_t, text: String, textConfig: ^TextElementConfig) --- + _OpenImageElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^ImageElementConfig) --- + _OpenScrollElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^ScrollElementConfig) --- + _OpenFloatingElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^FloatingElementConfig) --- + _OpenBorderElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^BorderElementConfig) --- + _OpenCustomElement :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig, imageConfig: ^CustomElementConfig) --- + _CloseElementWithChildren :: proc() --- + _CloseScrollElement :: proc() --- + _CloseFloatingElement :: proc() --- + _LayoutConfigArray_Add :: proc(array: ^ClayArray(LayoutConfig), config: LayoutConfig) -> ^LayoutConfig --- + _RectangleElementConfigArray_Add :: proc(array: ^ClayArray(RectangleElementConfig), config: RectangleElementConfig) -> ^RectangleElementConfig --- + _TextElementConfigArray_Add :: proc(array: ^ClayArray(TextElementConfig), config: TextElementConfig) -> ^TextElementConfig --- + _ImageElementConfigArray_Add :: proc(array: ^ClayArray(ImageElementConfig), config: ImageElementConfig) -> ^ImageElementConfig --- + _FloatingElementConfigArray_Add :: proc(array: ^ClayArray(FloatingElementConfig), config: FloatingElementConfig) -> ^FloatingElementConfig --- + _CustomElementConfigArray_Add :: proc(array: ^ClayArray(CustomElementConfig), config: CustomElementConfig) -> ^CustomElementConfig --- + _ScrollElementConfigArray_Add :: proc(array: ^ClayArray(ScrollElementConfig), config: ScrollElementConfig) -> ^ScrollElementConfig --- + _BorderElementConfigArray_Add :: proc(array: ^ClayArray(BorderElementConfig), config: BorderElementConfig) -> ^BorderElementConfig --- + _HashString :: proc(toHash: String, index: c.uint32_t) -> c.uint32_t --- +} @(require_results, deferred_none = _CloseElementWithChildren) Container :: proc(id: c.uint32_t, layoutConfig: ^LayoutConfig) -> bool { diff --git a/bindings/odin/clay-odin/wasm/clay.o b/bindings/odin/clay-odin/wasm/clay.o new file mode 100644 index 0000000000000000000000000000000000000000..c814d34c034c0376ffa667d3085701af979ab55d GIT binary patch literal 90309 zcmeF43AmKS(eLM7=5Sz+a#WNfqN!F?L~#!gw=gb%O7fX}CNWV_lW5{Vj1$ppB8aG{ zsED|4sJM$FxUZ9bT;me&?_d4Soa3(d`Mk-!&rJr;yl+=mS9e!;S5^PJ zr?kUvze!4^QgY3N2@^_{?bGq&lkwYU->u-17W$cc> z%f|cb7Knba>mN&*X!Nk#j$`A)lG|;!^De*K`FA`1V(fN1?Y_$|#_s&vUA7y$!_UX; znCx0AWsj=BtxHKt4U*C)|IZ8F$B+JW{YQ!?%1qr*77*e_9Hy))Kl~Yv^I!t;eRJQcXgeRjjQZ7D|VvLv5i=7AnOI3){lt(lb7_ zTf3Mo0{x=4h%H(Ri&?uZHYm-jS?I-^USq@J*3%ZRg(WOmiIRHT64rZgT5#*I4slyD za_eJ##BC|K^|hs}@93~JY?iU5ZJDv*TehTqs}_vP*r2qnEvZzedQAgw0&gl}(iWDr zWqVc*&KK!MYvlf~b+2@M%U;R&Y_BrUDSzo({uM2iRad8pGRsG+ZTflhS=o|7=_>q5 z2c`YhVylD}Wa(xt)@>}!)k<@9pGA9>t;gWZB1OeYRvDC*swG;lWNm7OQdo$u3#s|x z(m&9CD`jdwfAaS02#Z+HGdde^u~{@-*?JAmI;^}>)LP_bppy9PL*&b2_~YN;BFl*s^ajL|P>} z(U5M|Iz~!@j`WxnDiBqqD5S1}cC<+e7K%?kq&iTEh0X}=43_p93bDv66r#lzl@hc_ z2^JIa>S#tU^kMN?j3U(1R9R*6H+eIi*?XXUkc?J;U-b^9r_t(pE$<`rC?8Ben_yP>z*t zfUR5)tGIHkBIR(_10$DJZJ@2XCko*rtd0t-MyJQ8HEazDv}VkJLY#pbtZ8f4!nYBK z?q9D^jzK&Q>Qs)wJPz)n94%4~b~lpm+7>i^J%pM6+sz#Y4+)m!t_sjp)h4>LR5oILwB0T zr`CF?c=J?>`LrXn`3%vZrh?Q1ZMO|9a7xz3TLSZi}x| z`j*;cDbyghCDaBJSPnG3=GJ>q+TIv1`ASTQ60xJRNi=cfolVjQ)=OC*TdIz__4O!Ts!Iq|JO8@dcm_)nH)6MWP#DyRk@UB5Xrf_`|wFu|2HSm^Q3?`y`(Qi-o0? zBE+n%Mr$k-#pqetKS|meYWhDXM8D9Znlo)lkV;dKVp)?Q3n9otHLYh2L1t&&7ef~` z)5Zlh*=wPOU>`R}Vh$Sg%gqvNZQsw^;B&`NtEN-6+(OZc@aZ%UJ!!}0Y`U;5qQ$r$ z1FEMjI)=$~AzQ4*h;o}`aqDG^W0TO!OYn7x8vUN=kDDhYy1ut9sV?iF`+HfR8sjC= zAC_6!G)rTwEUom|7G4(Mn4?E3GY0dX%3T zR<&6%KJ~Z$vWZrrHUn%W8!$SoOf^=qm2H(VEVV1zz#5BfZmTj1G$Tx49V{`;=2~|f zHqq)xwg#`(s4>Z|S+xG@-<0au*H@jXQFR(>qrd-Qs#A`tGxqaTr{mMAqpo$;iK_9% zs?++#suPs~+g7TvTzo=%q#Dbk8rW&J!sxJKwX9Xy`j2H{Ud~pkp)?v{JqSU_S2x|`d|8sgpQu3Fw{YmLU% zYNM0CWj2PDV<`(Y`Z>2{i|%~XyOSxvmh0@!est&Zyz;JJq3F(j-&A+@{rcTGCG%0- zunqphMseRS>DJGf+`D!wjsJgSa_<`__c5O}xj+APCiic~Zq2`*-FilvgfAK0_*F!$ zWF->A(xlflc$MQ}HG)@PZYAa)vl4UJtz!6DR$}_8rQQdsTZveKQIaKW2~EcMTVmse zA|V;(5HuT7YSsL)m7K7Nn zsX?4Fh?B2p;LrH-9{WFR&@1eSLEqIXTdh>WMaH0Cw^SI^UAwCFGrOvYH-2VUP5wGv zHTfIy#ojD^{R#K<|G2)Q7N79Gs=QKHCAN6GN9y{-CGpEUjEo*39`jj)Ys%N@v2VtE z?*H{W?82k_(ZwFA{ARCEXJZjY|?tw6gDmvmBqfP(AC#80Z#p@layM|O@Pne zzxrw>Kx{o*NR3D+QGa?`PxV7H>RO8`u6R+3x6gLgSXyx5q6M|9^Oe_?FERnX^723T z-=$({RI#z2QZY^BU!q?3rOAq4J}zY3HF{RYo%hGr85gZ_TwvT)$HxeCYgqjKi$S}>H)RR_|4{G$ouS?{ zeWw44q27PnLe=l{7OE)zm(C>Lj7fdh{}U!PwfLk-&8z=ClbVd5Z&Kgxs`eHA)l2_f z3l>%Q9HS`8|E0S2V4AGZShc>|R$8mJdbNA!v51^aycP_RXw7~0j+ImUj#Z8sH$F;S zi)*Y_El+n`NGrR*z9qP5m6|QazU5+LSg!!pV9V*%5>^8Iu|&gn@|?Y`w~QK)Bl@$X z$UGu3hDEC*E?Q0pG(-e|LnJ*|04+J_w!Wqc$DQU7*zj1fcga+tI+`a^4+m73ZTY* z_=>w@Q}gZ}>`pYo*^BbM2^`9*_E|sx+`zu(ureQ;9dY95+a-u8*Du0EJ`aJ%SnUW4 zgBSrRqRs6H6Zw8v6u;5uhq~-p`HWEZmBXhozJ#7SLhou{riI?tF^2t!B_fs~m2>Xk z5A9KQumbe4zBMe`RDax}m7lV-!j#(HHquQHkW_zYaOGbPXvlJLd%GX${c2%(()lB- z5b0orY(;HvyBLn9>q`iGCCxYktiOOm(H-A345T8C6sm{S+yP##Ss5Th$^cdo=C+^{HLI z*oI$m*YEbMn`S445dSZknY4q#%ry4%W~SCp&rE7zpP8C7i^YK-ENG%w7TLAx*W?74w#euFuIId;i?lQADwza0&t1+|uM{L&p+h&!|4MN@g z)n=8iu*(?tteSzS|93)+v5CH-*ES=|R`yAw35)-7Ge+=dpz5+N+zt8$tr?-7eO+&E z4tcR1gxP?>+md5(b3i@|nzxiKt}vUYV{*wDaBnBapy|t;u}qw2H|>Pb)WdQT z6B^hmV9qNv=Y$oR6C7Sullc->sMrb^FkS!;{EAlP zzfBiE*RhD=f4MH^NwpEx`#26=YrYO(u=8YPohvD^j^%>q=jqUFXxuXbrLQ@H6Fr>{ z`iRi=h@6hcC8Cm~zR%<*Ieb%gAaImL@T{A=PWb7&*&P_=^TJIDs_fy3_Hbbe>ZZn);T&g~Rr z>sEW>nXhZ>jpfvilWkxd*!ptFbNg)rMNN7B;jEdsYrf6Z;%R_<~J(E7u6p zrvD0y!M9+vV~|GcZv5PUgKnhb*<-aL~S^c(j;4y zrt#p7wwaym<7!cG>rKj%BNZg3dw&{AaGD%oPNu7`V9gddvi&3fMg+>XW>~i4j6_#gpfa0z#)zBe0oJgJ2@a@`yYg}3Tio7FAW( zxAmGV)~6%}jBPMhLq=pn87JSZFXGt+h~ulaU|QsHnEL&3&S8A)+8H_ z29L1eHezhpG?Hy*o7twdusLL#H_1k#!QZoy_PssA_aoVV*?-yhcMDrUwndZd2WapQ z?FaV5vEjcX*_O7Y{dX<=2(lkF$$re>{)zqAeo_lt*;YL($CurIS*oGLpA&{fixq~& zaq%#0Uum(X_ioiSzi5hg_duth(Q}86PUcjS;;?T0w?}7V5i2pkIn29=AI&Zmj)Ty} z?u_^-Z@=6Fkbc6q@SgB(VC#;}6ldETE$_W6I$gF7Doo;%eB}s|7Ap@VO?NsD{i^T! z;siCv{8I7!5&JnMG?~M`OozUhLE4IP2d!29ec9^K&c#){{TvsoA31;}_%>7?SQwOP z1=06H)mPApfRb|xc-SY-e43y5gf3USM8TO=X^mA0&a`D7tZhZv%YGxX!BDmlH3q|`{R-dhsiZX>S00~__C}k=%-i`%l zsnE*FK=dw&dRNzM+Osmbd!+@R@Z0?B#+uTv_`7IhNT$^ZNvx?~N)X$ILCpg52mUZL z$5tOItg)H~X6Uw|8(!8L!>rw{n{}^gP4PFH9sWQgu(%9Lf32snjU{-DmZ7Pz&g@(D!1AIYh_oY#K+N`1*h#U_eufXh z!b}?>iV?vB5q`KsbuG^0N5gDb=c&MYSQ#~0S>5NkRSfi^E zfLxvW#sGt@#<@VXJf@j!GMQ$)`nG*rlgJ=jQyVGT{uxX*?6Tr?y$!B~b(C#gUahMo zW<9-PRB8BcVC&ch3U9QA@A400+JT|K z6{9M*;o6aj%`^f=tT0+yHnR~dp_{dzr8bL=xp_e~k~L=YqA|Y*_4fv)dukH$7H8$L z@6*e%omha>PQ?N=vSAr-5q>}yvIwyP{V=fj*p|b?kLbc5+mGzW_3#rK`zJIus>0gS zKfTa9@u%XsMfh1E#@4pA{j3mU8{5Wy%92y*?1F8p{lh4P8C470*><*VEo`qw*@0I( z)WXm0=X&)E`-QsTm$tqAGIqg^WZMavooeA%_AA@57JjX4JM(JiTBun~uSVNwwdEN5 zwT+2g@Efx20?jV9@LT(>{iYUnRkk{>>b3AY`<-6xX1gidSliXcHoIVVNOm8b^)G6* z2aJBttKZkcA8Zf%L;IPow14E)9|xry(;|PeKQ&t9&otSd_GjC3bQnjPv$=EOv``jibwXjcOe8wq^2i?YD663`tF+uF<-MDAiH_=?OpI+|= z{r-vVpA_@SzDdu@BVFK!2@^82tfixwd$NKk)1=d3nR?$RUCrxpX7IUpSLWVKCVw<+ zTN`qBR~CiL(m45Q!eR3D1KH}Sg~(1E*Y~ zXk12DfOiie=*#XEozy4Y?8g z)xX65K{IaQFG$m6ES>+-&QM}rT~I6npSpQt8{_7UbxK?F2McaXbjojJ@!L17+q%i> z8*04(f-_jRb4bH*Lsm;Tc4|H5(qsHz%VmqT4N1B7K?Dm``_OA_TndBJbG4)-M`UhT zWTR54G&J_tbQXjbTWknz>REd6)Jw{~3d?6pyxeAq&i(Zoy+kV)z#Hi>xwc_NXp#Fq z(pmn{9`k}YMR$>#7oT1K%JB&-Fi+3NMMhMQAs zIA76YjfJ&j#d;|$3(Cf_5Z0>LS}Y9Q#?fp?tS?y%L+BHH_Bq&HLu{SxxM3rSu6jMJ zkId^gW!_+;k3Jed9`|Dd`|gl5CnVv8;D-z>^}_6;B{sCGZCDQ*(GnZmMl!fq9yYOI z!^3d6y2nuuo5FR|CfCjA&CPK>Hm?Pi0rlqh?0a*=_hX~rZP8kSYUI7r4RqgOyvKi9Av<7>ruT4O?@Ie+}1^mc_HdBGyE zchWyTvJO;l_9b;6Uk4^8?Z+!;ANABWEC$f;o7lchde#9}i2aiGtDKBvUl1DXCMTLv z4oDE`02Ye_6FV>|rnAW`7EdS15)BhIr=>j__^GK!1D2^rqgcCMl;My+m!CPOb+sf9 zO~hY~xu(@B>m~#f<-{=M3@j~0$b%<^)_r>D2`j(61XXWm25PSpDbxvLuKm$PT5VYB z3)^Dte*YPo4jyWZX@@e zmBT-FGVW_^Ey_b@ZSIgWq{ic#6pu1h6K;djTIj{gHRj$Fnh$5wDhkE5;3agkwuVqf z>wogbl8ch0XQNRv+U+y$Z}H$)1GeQouTno(sPZR;Du1C+x*d$OC{c+Pt}gICRXl9r zqE8Wu;6iaFR6m+`Lg|}m%k-0C>vZVXYs>%n4(|3zp}Ku-q2`yf!I&h?UCOL_SMoW% zd^=GQ>Hf|7%Lt$EQIgx`i__sZCsF_ACk+L>GO6Y+;FUVF#RwRbZo`c^J*tnEK1TlneGY<;tQYy6tt0#Xd#Mhg?fl-*s|=p|(`}OcjQYTGq*w*^L@ID0sFk z5u!*Vg0W-He?Zi5OWd%q9Go3gQxD6tcrCBRixz^OIFW9hxU^Bf74`m7?U@rck{uKu zn|Il)QyS@^A;kI^+{QP{FHGDUi&<8su7GZ2rw}pX`ncgZtO@?=nzmLwtc@6J+i*_%-f7@deOt?k?B3oxjx@UY^m#1}yq%2O9Oz%4Y za8P&z`SF!U9EB z5DGn(OXe}oILR=J%B>ly>TQfJ&B6)9mw0^U^*OS&z!Bz<*<%;U24;TpZ_ zr2VCZeuE*G>ve%-u8o;ow!YkfR{*D$#=1c}V~7(}Y5|-o0Vk;6ZK!U$B6r&QM zMxwd=8G#w?l`dkOt5-8uh}FaLkaPN~7h&ubs)}n z1o$Ar+CLqNnavG|hJEd@kA79d#zu>EHPfmg23s(&L36;wL!7VsAY6+_cEK>I*T$MA zqQ7|s`lR9lioiG-iEBh|}y@7a+@-EZDlWgI8nSb&uTktr073si5i+3MSU(WMp&VwN2{}`|4U2i2C zBe9Ytqlqk}QFf|Fc%f0fTo#nB15CBC+?PZjgU`FBcjM7V-qZfr9skB}2OP@)?B>P` z1YHdS%s@YOn#%IPJQ!G7hV!bJjg4ypT~iiyMOlm@xq!99R|+z85atzD6)1SrTuesU zs=dA28{?AE%8r?$mbTQ0PXu;ZJmBDq!9%XL#$yo5GBPBXAco61!^XTq%c|;MvSTxTwB>AleVsm)Z9wdOZ2@MN2@5jJ&3 z#t`4L_YoCkVZ%)B*xHc~uBx5}>B$k{t0jH#P_-TBy94#G4#SQ8FtA!QrJY(kjp>JhUw+-ST1w9%H7n< zWnauTtB1|uOq9|_j+KKthjBC9zCTUlC2Uf$O@gA(Kd>J(s*ZCik5$`043@@Q_QeL4 z`Vp8!6B?08OpvW`P=AUm`ZN2f{cL#HnxeKL7P(D5Z0nWS*7XE`w84k?quOVC+g@me z9iacY?O;EzEBv@nqfWoHU&@u;5fOH>of=t*LF%o$qSJ6ie`Pz%Z-t0ZWP^xsq~shU zIe&xi`I~y!1v!6fyWooc79Vt1s}B#qqukwaH+QRtu`cIWmlH>{!DkQKLvsG!em}63 z;D{zTqJOYI*5!yICxzmQHi-AMJqMsl<6@8Cf9h#`>=9P?35oh-@5DQ0qMT0xk97i% zaGm5{=cHt8^fKot&Nv?Ta+=)AaYPzN1zgHR9_8c&m$Hsa=@K89MEy7@v4fh<>6FB# zu#3_w9Guv}NjM~Fs>z{=9qK7llPK3=i5=#0O^b3Jp4ha+4yS}c_>*da+cM&tF^#Exysa9m=1j!D?4FI4pSq`JUopA!<}b9~dq z_5pjMiaRN>6B9cLk9h|2*$ixojv`Wca$+YpnV*u_DM+1%Q=`-~6FW7rnMi$_*qol& zX^EZATzQ7%Iy12|l5kdHXC~q7#Q1V{vRODsl;&U+zqXg}*52uEhS5*j-TGO{3b~MU&p6>fA$@ zwlx-tws5b6yDzc(n!??m*!|wt55)F)FtG;`dk|(1C3bHT9!~6`B>XiozWg;A5gt*A zk0$m=Vvj=fSYnS+p4dK~*yFH`3&<0Cvmmhr&4Qjx>`5=^Z?T}K68l?XPr>8q#GXj( zY5MaS@3gk?Y+`(U7QK8fDOQx{6XWw-QY`{rVs=vVK6ZA0`IZ51D2D zCCZNy`&VKgk#Rzr4y6kxq;ZznJGH&3Ra}QArZy41Yz_OQwoe)+rG@6ShJ91p*HiYx zR?+;qe`@=ul5BG7v)=)!O-}8AlxZxbyn|9ZFtvlyv0+MTQ_?x%;MB-^a5^mW!BMFl znTDfNJ1Pywq{f$H(&6D)NpoCk$EJ21l*h-~AD{ZNa6)P)G`XLc+KFDZlTtg0Vv;aJ zc~552O6_Fwo|4)rX|a^GhEr2Jl@{q0W~vIOrFL4A)9I<5?n!5)#%Cs#K2xvkOls9j z^T=7Loz)~iJGHaDTIYDR&Q0x{)Xt^AS*q4~sm)5m`Kg_khS{m{Wj58iK%&h_?Sj0nHDz}E0cTC9POrpD)yv=K-pPg{6Q#XX+dW2rr!*1{9W zXHVczw-syPg47l?nLnA@lSrM1zeTB^O6_l{J%!Xyi_J5sJ)PP!Y(YLNxt>ey*)%+# z+H+}mAvM0dkZu-U6y;0ISE;>3#+PGzzFf5DE2+KGEbi6RUiIQ$i^aX3+H0x3POiU; z$v;y2dusonxHnRJBMon=y(#yt)ZWrl#okQA+eL%FliEA*>KopTy#ATmyQ%#XUhky_ z(R=Bb@P2CV)7BrT4L+a+bFF51_)wMkS8D%i3ieTIACc4+CS=CvL%L<}j90dI#w;3h zP0Yx(PiFfxy`@Q+P0BPN_sxvY#B5sFPp@o0a`kdx(Ege2-=v?M+2l;EeL&_j*nycH zklBG*Jsc$7Q!<+ZZCq;(&Wz7N{0_z;N;@<&K8J8&zb98MOcnNKYE}z}Wp-E=ow=Ts zS6T;hcFx_)=z2!?v;47l8R>F8lW}byd;i6>&5*M;U=k~RWjB)clVajYYO}DLCQ|>M zfjR*kcOgSFfHV9P0h~03aA*LJ-^4Y87>-tqMI&24FWTPgWs6#`QEV_IF@94Iy?xc` z9Ty$H=`dzzdqLR=FNURx)uxSrOVX-dY$r=UVKWap68e0-*rJgp&kKBAz7)f@= zRMx}yJ^S}#b_cdZ!3nx31Kwo#VY4alBJ~mvGW@Ut#^pzm`H$_#S~h+H%;hKBhOJ%TN<+Y24`E?HfG1C6j$Hn9QBD^PP$3^oHUk$TB2<3RJMg3ZO5=v zQ#SW0+vHP*ohr5yUggfA)=b5jl!#-v9k*8D5c+T6$o6JKAV;?_)x>Vv)pl(p)S(0C zG6x^CZo5ID36afC(mklLJC)tTcDFr7hu;^wkAJ|s{C)e0jp)@M?T-!OKSBIwc0d0- zI_y~xkHa(Ev#>uM=u!%wvC-MCjZS7mjMs_sI2+T=OKA^&N5Q8XqF#GBmV)0ZX`aRV z%%7-XZ%PqI)};OlL-G?f`qN)K6^ij%wWUwI58mUP#$@4JXZ%)#Ul!XPbnmBjc>uG- z9ka%61<_Lf-5MgVpk13+&9OI`uuFA?hwaJ(2s1gzwV$wawy69aUiM`+A$LE8pRAV_ z0Dt=APXYPM4kklC$*12~@Vp)nmcQjs9tmbOP@J)y`K6CvxgQxWQ+?TeS!NkqrdY(= zZ;@#H91J1acxOTA#~baR^(?jDtZ$K|XJzfAtgb5Q2uBRDa$qDlW~dglXb{cQPrP_q z`)!}i6RY~V7LCkWYwTL_<22O?^R!>3A9?83ew?ai*-9xya(ReBTHD~%x00pN8>*kk_Jl5N?ZN3xXV32A zATkc}bKzn?gw!E}(sR48|4x-)$2w2}_GdW?>pA=NZ9QAxzSBOX!5*RwV9zE2=*)Ds zvu6i$C>bL>Q|vb+bwf7ty0G7uaR0Cls?~u{pjku0&`|IhULzFL-1766FvpW zIlBGG2KzsN=@g`scL2Va?0zcaH58cd$J+c2N3e7w)@PUlz_Mvps4GtrAxi zcaN;v?(K6L+{c7J!JPoB{b_Leu5;%W-aW~;XN@T9IC0;L)V&6!6AtK{5yn>+l!W%l zYyxW@i{IXf;5{m0A1#2!f5*39)F@?pg0B>_uh2bUdgugA?A7N>ioxO!z@vcnl!(EK zXfn~AM@3XjK?e{MDhcC*LjbjhV#AbJ;=u~V5`-mY+d0>5N!XMk4^=Rh=qVlJMY4@g zY&9dmif5p>tSU$}7NThs={q?^k%t3UDiNZEdOFmEX^%(<(RwA1Qlyp;tsUN_$PvVA zDe@SFWQp6N$(rP}BX+Eq919b|wa0mp$2-yS6nR&dnec?9x?UhUn-QX|DN=h<5@y5_ zPfiHc5}qZj+gZu=!YL~8R1eLbLW#a$R_B+(Ofi`WlhYKZRV7b%qSGny%`WXq@OE_t zZ!-e7HN|hwQvBBINYIu@F8@8FONpx!&ZWdziSapC&FXa=63!Ek^Wbs50=X)X@GUg6 z)v8^pctKL_M@SdqIS>=potqHS^#U(aWS2NDQQyug_9MhgftPsT_F@X0BsB!BMvyln z%v&SKOLSKSUhXuPQ{a>?s(M9&jYG6IBi>t6y!Wa^QC_Jkao(#H>LnoDeo{kMJHk8_ zc&$f!=TYEPFVGbA%?SF|!u5*hs=)b9GoJ#F?o!|l34nkbMSLT~M15}}o)QZrxO=mQ zcyCDB>4doQv=R2Dz}pn;CH6ZwJ>CoKrSNY?=(nZ_@Eu;@olbKn1$m;HKZto`<0tGFrWL8;$`pH*6^UD zcn~Rw4L{^kJnS?NQ^K20gZ1)P5&ab+Ld1_G4U6oka?jS!F`DqMF^8K55M$)C!Q3M? z7)Ju;M(#3Yl#3H2)gIAF2A+0GqY6WDn1y&?*Oj@aP%31q$jMmZF^8NXhkP;p>2N$snob~FMKUw@;Opp(y5J(Id2A!;zt@aI$^VT88 zet^2wv3_{bmTf<~A$8xdBCH*#gH7YC`(gTI#Sg@Y^~%;?TeLGeS;yZF$~tilV(n03 zTcuNKetHVl_}aF{;B<aW zSvT?%DGkMZsP_+~nBDjny|ab!(genlUA~B85)=eV{9IR7cyK!7#UZFJi1@7dUgod( zG@e^O@%+j39$*(Dy1v`^mV!1JC;viH$=49Np%@&WjhinZ^6Qkg!y8~LV=MmP%LqH~ z7zCdI84pyy2T2jNDKuNjT33p5sDmln24}MDfUs&#oP{FRZY8-i-!)V~J<2C@+IOT|2-N!ntPaPz}lA&)p)RrP< zAk^%7h3+pcdq4O^S(~HnA#hruZ&;R$4wA2jeq`zw0}aHG=7bfHX$27QuwRj{EAoS# z=}-xwU(@U#S!3e|0Q0CgKVi9PSOso=roFBJ68l$?cr|LcIxOO$Dc9)L3Wp!qf%F)d zz0T3$c*pMimuddvWvrdRYQSW3I&!eFH4<+ zyCwUM&^E|zLkDN3a0oS6B~+~{P8+h4_(@%~7p5Ljs)3dtCZ@w-I)aSxNTO|`(^H$- za53FjOgATObC|+Xa(`w_DVFwM@ZJJU&la`Lc#@0p-z4}sDXegYuA>oZ4wd)tl9X;M zoxJq|eoDhQIH4Z4_J-NI*)R>jJVC-y%{qclP;hvA+dhn{*r>1r+;$kk@f}yBpVPC1 zl;&_s>gV>$Z9yntX4{UoQ$74j+`WWf6(#glSV=*^ot4?Jws*GL)?qYx#@J{ZQkyci|slp)FJyF7WD7xM3HtY6r-=ANMgCWGWCl=q^$`e0a38u+aK!K z(tm`u;`LDjH={@OuqWEOXVh?E=ErG^Y%fI&#{-xj&z4`pPr6|>W5{DG@0~P_=3z3F z6B){rWCqt|AMdBV-J;dD#7-vKh>eWBJUQ9CPqQiZPZrKne)GE0#y$Z3(H|UxO2lM7 zAi-uPh%U|;$_FLkU|Gx<$TFG_Nrq!3lZ0K26+9Kn!xH2_%!`FzLnpD4rzNThhB1sW zj1L!bp^jyYZeR{$9%B(7nFzMPm!n|}W+9RFi$Q!Wl*hps*2g7k8?_mDg(RFHpaOPn z9n+W86IF0jOt*lwxj94D@4!+ioU9C|xFLKB8Qk(!FGO}Tm5RkXQ$}xHChzG<9OtV5 zQ^1fFFRa}&;U%;J)R?$fy=Oy>rF#z4YQREK&h;r`Jz2XxuVCZy^*lDM-N>CQ6BnA< z$r0fKNU&QK$%3@6EZjM49G7I_wqWBb;N^ORh3f>ExfeOX#k|lsxI{<>&#n^Be@{pTv3*~g&_6Pcza3Uv@0-{B144~DRMd2fJC*pDqo z&ip{3t%1qHH`wI#@Bp%bBR`OG8blit;2TQ9Hyp%XCg6qxg>Tpfd;|3b+5pbs5OzHe zO_^E_O`B88)KuO*z=jsk4YlB~hTwPxpbtf`*{6Xvzzr&AE5RH1OhT#k#4|Bpv0z!a# z*!t6$2kLQ(>OnuTJfA8?r&5ENDTWNFhZb-Twcv;ce}9G`53(1|6z~DWgA4?I!+VG@ z4=tb`24_0WeYUa#b7%qUPzyjF_?*o*AP=+?n1>ed4tVztcu>M@;U2^n#KSD%9tyrA zgo0=R1c6lu-?^S207MHAh+4Qv;0K$_w~O^kUoH{wL5waH9s&eJWW)=A5G_CmNLyljncd}#_bpDNiz8Z~ zk;AbJ|0I6{7%lna5XiyMd(xeMA9(bEzxYPyBVIt!IIf$M-lIrw{*E-@z~s|@c5&cf zos#3X{I~c#_#avnm-hqHH8~Z!K+EyqzHz`lLx!K7dCUQyyMGL1g-VsMHpiNa)6=@c zp=3Q)im|Y`)i5~o2#Y)2gVHORh%nr7^I6GsDGK}7?DES&$K`0p-&mCWCVnG*(~s?5 z8#~tuSQH1TSt25bB@2wY-xbt;i9BJvj!b8CSy!RCRC^75rEg2~ngcSdwefZ1V(cob zjFHARWU#;v13&fBz>q*mtexEk8AAQ4%x{gOyBst43RkJb{On`PNN^N%FOI;hRvfzU zeFQ(U1KsSTaIx3Wc7je6*xJKC;eMDqACcI-k6u8aGhG*iT@uUkBL*GXJP^EKJ&Ekw z2X%G~d zOmWv^vuS>aVAwRa0%F;Kplzh@oyX_z+xL~5ZEWqKZy{NHGoViVKOz3_w=%>Ny2C>A zDxiAU3R$-5l;x+mMeb?T2=;HSMS^=6#F!Aj#2RIz=CWPA-IRcHVcSm&JJ=4k%{0aG zz5DPh?C07mW>Sf7e8;*q>{vWH6uLtpeKF@euKjvc*clPsv8ad9zUq%IBtjwBw^r+T z7+>pWYI}5jhJ>?Ci+z>@NJykt?E1jAF*#tS%M82N7tx zBf21>!3klim_>zVCGtZq0EgHm0}jYs&%iu)q1Vh^4`?d5C`8wb7Qp{-7ld)aw5quh z7eq(o(qejM6A(Xy{=yb_pG0Wt%MP29rRaJB zf;z_5>x9!?LvC#}D4B1QS0cT~AGuwQNuePm-6>SH+A(@0chD?%$l0KfyUX{yqf1=Y1kK$f)lm&<5 zQMn!U2(l(q1%D>skvx&i3HT-%uE~(px164ob210#gqMHg<#fIbAPG-pqf)6fRB-F3 z1h<|pxOIkyG9+cl#fm+vis7X^D@Ub{o8qnae4}DBl7PqZ0v_`+I4qj7aZm7EUV`>z zWyL*t#r>3*)!EE_-dwL~aeiItcqgyPL8;3_(;|LC|RdOh=U!= zl&1+8nCKabOyPUWI}uEBqL9{e1I`H$M(lQuf|TT)09b^65;8|4WfIXD-g2!B7uCo| z5nyruh_P(AD0R6g`=&T1xG7EK^$463WWyi9NjVso1n1-s40#s?ZifnFExTl@^QWN0 zQer)LCU_~+fX3pTkaRd!FCNKsC&eGha7x(FfQz>~$ZNtdLSEyC)bU8XH;;D52dO7; zjzlF3IuE6hGv3cSP8Rq%d3&KF9HGMk?g>32vYt>*3#%RsP9X=(`pJ z3jU`El`a0KrmWMr9JnYm$$grN!!N-{Ii1HYeu;|18Od-)YB(bJ9ZrEa!Y4W`r+IPs zBpHqg#WmCn_aupkY}}JN?ul3T{4UjXKSe_yKjnfH=cH58x$;Cb^l?uvR1z~{DiUyWSX zAQ#Z=VkxJQ=A|IBr8?I})wwPOrVTo~4oDltn=hEQ;Mwz2L9_XCBT(X-#PsGa&}?&9 zb|L1ispi+)B>io)CLI?QTJ|!#x6K1Ih-Q z4J3Ow$ZX2IU)XGL*>!N)ROEp!6?rhN&LixiQXit!hlR}!5tRMl$4WhvD2#YLDo8fK zY|fFy&U!3zlU$FxTu%s^4Jf-F7D%oqg~$eh4HP>(RRFMueH?&Y2Y~Gz|Eze?e$NSn zJx5sV=Y_@gE+3GN0gP=g>O}=;wm{j;lG76~*~aH3-1b*gk5}k>&7l1m_Tg1^2Po`U z)9||B*g&yCWCO(B3_Lc~c|(Y7(AaeV*fh7@f=eS()(>#d&}$GCRjhJJU-$Uqt7tw8mUGTa~>av)P$lKxOB|%FgMm z>|B+4VP;l)HHBZJzM7ZWHCebevw2y#4yzCNL^dp3FEQt5c70~^ zp}YYx?S?4i0L-m$BdiCY`{5=K6j*xM;o)X~wNOfZcaJ$&w0dOL-J79ljY=t`;t*~YIOJ;we0N@hNl~HkbW_<3-riFWWW%u}y5dU9? zd$THliOlZJ!u^@umxTv1B-(HL~<-(74h(tl+3k8DbKBQyUHq0WrY z->LXpjjFw!8QfXiERLtgx3h9PC*L-ls|wD_?cCgE!Tdb+ z!FgT!;C#49FJ`ND7l`Er6gbDLGgpsudAu+;K1#SKw~M?w7w0x7w~M<}=Mqt0LUl@% zcxi5MzLXL#%Z<-$C0<&H-X|`~-ny5Qpz^O!`B&yu3s;HsD$2S#H$GSL?HU(no)YHq zcx`TclyF^c*SR>?=XOnQ*LM+TzNqITjv>wsxlzy!h;w7kw0e`uxmg4^!{nCSZp`h9 z-1u@+R}pE?TSas$Y)3X$>yhC$-u1@;3b*HWTORJn?e;v}nHyj3%r^~xQH$S|+h20K zivsV??QW@*@{A1kcunpV*Lx}YzTEE1!~MDOxhF3`6A$F}fLH24kv&M^BMMb~NUR^u z?V;QrhV@^4z}R0K!-aFkxjjPGj_|0O^Re6>&FwMDc|5nro#hibn-mMgcLA@T%#Du- z{+1h`C%pY0&9xRkC8DQjzafRWKO#Jx+tbednVhxw+1#GV?O8HEr^24k?YZ2Z=kbNy zUhu+RRADcP&r7_1IX6BccqKPJFM46md10@L=v5Wg7O zeabem943`*pK{o@Y<$_bJS^;2hUfle+plc=rIwgbyk z!a-&8&$KY5YBo`|#j%mXOFgb^ z$8k8NZ#cee$5VVMoS-}>mhFVHok*UO%63w@b5fq6)RW6LqiiRWdP><&A+@N&sbxFW znawQQOqhW`5c%n4JFRS|Lw-it&Y*Ca*aO%HJk#3=qvNcy@%^mwsBpG2oKv>5%XSVK z&W#eE8zokrS!J754(F9S?fCP{cD~+J?7VWAt!ACAW_9%&8ZPkGoKv<7$~Fg%b0f#O zWi`@(bV#_69R1m^yr^s!m1PQD>{6{BE-4#dFDY*uE|pN1mF?29T?UKGBa6!$&A4{B zqHI@q-Yd&?WjS2ckZ$#Gb=j`g3xEdYa821L?HZ~%PaLl;+q|+}3&-ms$Lku^91^ZC z+x6uzKQfYdH$)SiCCE@I!)(}YVX2_eNwJ0PR0qeslCrK-?fjL z?8R?o7Q3ru|Et|o{ch%BhJGF1++N{qc~bVEwGSOzt7{9Y#j|muqeQ1^Dd+^iRUI0?!>oD>oGTgPzt~%!C!gyM z`PBmI?MB;mp5#_}+NY0r0P&P&sOD-3fp8mn^nHmg&&rpwXWzG|uk`M#=B1@QFF(ep z{e0>ju?E5c#GaS_Ml3?=@ATZ6me4*iJs(G}`gc8hJGiFMa*k?HYe!18R0;|paZPE| zsr_3I1luv}VU$ZObh;?P?3%N5<)@7Acswse^B>-+Nn6d)J0 z_(Gk%^*dtO!mhZ*i6J$+68v`e3oF0^Dj<#9;thnGhMq9ymy`U4Tw6p&W+Y#5ANi z2AZA(U4^!ST#0r7$V=M*{k+!7B3%Vi|M>>LLr@9&U9D9_sw>czE>OrKT@%tSzuW*k zS%(MLgw&Q+`XEXiq#OMGtYR1pdGkjc26HwLXgpoxKNmzj{r7@&H-4-(;Ck8F>(c`p zaFTF?bxQtgW5-tnOkOQnA`C4E8$e{+(1xy?@Pkp_YVpd;jfzu)!dCc={*>d`8kW9+3G@ zJWSqCjpRS^K;3^wuVdDpY-D1%v_QQz}3VepMV6 zlsQ^M#YS7rMvn~u3vBf69EUfK!~dpnxti@d>|?0qBJ!{s_8t7-JGS7vyN$KoYk-&c z5Z~X!*TKtU1zxs4><(tRhfchMA^0-@f<0~Au#W=>Y=ZXbqKtd{_@r(V6F>yu0)!x# zR9vb?xFn&D`w2T>`?2x1zaYwP_Qu?kJ@@nquw>8yAO}VZnw;B#Ofw6ZG+gY18bnhB zQwF143kQqnV2GY}BH9Y{0MxWK=mEYT3Mck5iJ3t3P=gaVf=C38fbY}bbhwBPhv-o! zqQAL*?XDicmwA5#1P&tr!d!i*2lxP99?eS!5D3Bywt)XmPm06wsKC2Dbe@kdFkzdR z@5h6<1WCZFH+ukP22uc+U|Kjy%uZs@^<7FHklxoL%+Q+|y!pW2!0F^hwo?jl^WouC zUiomFDd>Qha)m>xI*WF0j*K4XOaL&qNha!r5$m{)G|-@?Y@HbP#}obA&1Q z_+@N`#9#|zwa(WWK5zzy3tT|>qY&L&{Q{SYj-2CA1KT0u41DUKm~vd zE~b=A*f_=fy~KBuV~+qW;0p{u6Y%{q`tNdOxUM79=Ub&Vx-WS&i`wZS-ng9o}j`JPrd_8r%LHTazTE`pp z=0>o169KX5KU>Ef5H|csJcjlB>sUI?!jgf%*6%Jap{jzvv{N zIvMD}UBsjvBM{kuI=Dw~Du55dy)bvJxX;h<-HY71y+kh=9QUgw9}q+uG;~ea=p1x( zmx?^3HxG5K$isT0(|pZ}{8g9)iSh_ZUJ;N8e1DXRJf;F3cRcjt^zRd~f1hadFH69J z#1?q&Clh-z0hHj$#sgf|37r~yWxRo-g06VnaA1mZE?PHjY9VtaE9T!B#lpimP|fd~yWO~rXnZ{BP2 zL6zRuoA;ehrFwJ^!54_tkQvCrhmKv~x`zcl0?-9;3?Fe6(-$1(hzTi_6WAD>;R^mi z55X6RUGrvU53!o4$BAsi0%O=m;A#vI&6yr>YL<24-d+0W-S zf@dJg&EqKoF?a&#g;PBvNQN0gGAJWcu_z7Pt)w+JVnq4TwVL40?}>Z{Qz@ zaf`)$^u?4)#rM46gG+P2s2&g|0yG5ktf(G@YPJ(06Nm`rS>@}|Fb}8n03Jb-qa*sK zPkYaUg#a+|s6Y__B6MNhW9g;>LICyZf`b48QCN*|d6G(a=D#@{;>omdlAhAtblR{j3N2nyM#DpFKOXOfBYG5Ud&xeqgAX+Kjd=VyOBu`*V{aqa--&;?6v)B27o+j#P zB2RC2Z}jJz-GNY$G)Z`g24o%Z#6FpT6Z>WXumoTB&o%`jfv^V%1OY;Vy+Q#aivEPl zL0JJ>pCW(+fQbUPez3|sm@;4QUVXm1fD>#QW;Nj^K#3K&33;Rox(htP>`LOaj9DIF z1n`N&sS3l(|2~A1&OJ!oK~Vspkdhps97n+Yq3+dpy9-XiE+Pz$5}Kk9bK}wct_Igx z=>0Lg2S&l?Xucf>N};=;6Ko*z2xNkf5>6B}LcD=b947>Ygli2moYBdm@5E5dfc{ix zG*byPd33adDdBV>B{aN9zdM?;msz zASp@_Ng)))g@Q$Zr2rVQxj+c;V4MD3zl~)0SpCbihI;z65+1yfGEIEXllPN;)3oMk^&e7a5BoGv;krV<_JOV^kUkT&ye%k4BG^l#IpiL2rThJ1~LMS#4ykilmQOnMWG?U zz6udR8Ey&E&aY(E@c{_LD*{3g0$10(M%R4Modcx^{<>bg&Wqcd6Ugn|g^P&Qc3gz2 z{YI=dmUv2#1D4p2(l9c~!KHfL0~m?4iIEr!M#4xs5LO38U<9{%iun|Zy3}W( zgY|eY1VAJX$u$cdn(Lk*01-k(aA}W_5nv{m=<@2N-2TkVX|c<8TSZ@y=1wIV4@^Nf&kpI00rthiqo$Qt~(z`?LXCL68N^p{B0S?hZ(zko!u(AEfJ7!3Ap*oCL6mt0@x{#1(m%Cpd&~ z5`4Kf9|2AR!LAor0*pjGfQ^{%m;^c*t-C?c2z56w2>wzK0EtupiJNfH^RWd&;ue|^ zJjAU|dYc5i4FS*f20ORA&=9xd>$V9H0SR>l6LBX}_7NmPQg#JJAkRHQMgV&l8^A-{ z3u@&)$57mtPZJ^n7KrwMun=Mj7J`=#=A*(Ffgs3)B#wemCeRO25|9v&xg?KANuCfM z0=NScom%F}95@6}h_Mj|F-PDB@;-$mj(G^rIIbXy1n%Kk7wI`69!RQygAn{d;D#aT znY70M{wo+nEc``b9VE_60!Dy^zz9^SU?2cQyn+y~q9~}!tB!7nxxqcWmIHw3)SSQP z_IGCk;^7}ks(_3T0wR|3rT`E+cJr115x^R@4L~50CIq4m1j0*sw@WDiB4TdGLr6xj z5WIXJ89xsMfjSp8bQlB}h)x+nLhQ|+aT`DgVIU^3y*j}G5kMg(b)nl=mI6MMq1PF=Gqs#gQ zO&}7-l;?tvz&I}r4S*t!6)s}BP!ZU5NIz3X1&|14L1dlL9Lh7g3o8-p>QD&{Wk3=d zBp-uGoLCO03M>(33M2tMV#McxBMNS33KOBBe3tX4Ag~c>6B{uWYy^l2JC}OQ5+*{V z=Sjfx5b$^(%ExyP4vtVa0*pYXW_AYk?!B4{%Z5myKRAzTDt2){mn*b0x*>Zbic872fKpud^mJO;q%VQ$?VUBPQv7JCY@VSe20_DKu zRC`3^TaEQl!j6LDFh$nzaEKn&=3JL-0p$-PZ8}M&kN_nc0`)NTTB;zvz zM1X!61qg!N;2!`(JV);5WA5j>{_fJyum30;pTBEDh(QE8?G1_ZX4&2-+nb2}&|5>(o%Hh4T{j(h2FB@OpFK-$?5bF=i_CeV`g!RA5 z_AhEF)9|CReMIJSJ@W*9+p|9(J!`?uJBEw(>Yli_2NNk7_WGm1H&h5sDbVtfwZ{e>!yHwWqUlosQ25U-~n z5MLjx{0H;G{p>^Zbcm9hRiEBH9IC8STWo4e!_Pjf#SSHk$n6a+;qVsY%i%4XhUpUR zh!&gPVn?uFeI&Ouw8W|(CB8>_DXKO+k8UZv?qj&Ap~a4FDZK7uMR_cgQ@d|i3diZ` zxR$}$WS?H9;`efK17hUigcduYr8v2LqR37p( z(lR`pDk*1jZ9|LAM9R}zn6ghpPWP86;q(?eof7bVTkH(JaA%F!p9%X34Jppz>ISDd zyT#6KS&690IifiSN#FG!dPRhDTQGZPwb;2WHj9ork1HIYEQRx1s?WEE*`lA#`wO_a zCQ{7d-i8)CA08z#iFB@r=JMkCRvP0%JzdDt0xx1h_i#~5b;)pXi~TR&-ZMas;#vdk zp6Q*Q9M&=xAmA$yNkjt%8RKgPA%Q?3EQF0skcG5>79pX)b-eZ}r&V0#oO5E8bIv)T zfO5_`$M>D;9__4FGQ9WWiJGPQoKvSxor>LEUEc&BCQ{WTA13i&AAUdT>p4Ev{CGbt`>X;loN=x2mA5 ztDLf~*1Xj$$Qlt{>%$r!)>3qx59^$=uGb>#DY8LCzV~5+58qQ{qYoRMvbrU^=vSNE z0&VtTlMkC&pe@?soqS{C1H%?yp4uuFZ%r>5Q*KMiZTEp;8|8M0+>Sye+bNa0%ZHsl z?4m`xeb}ulbx%Rb_DFMOE8gqF9v}Al%Bg)m?31#1)P7CdPuc+=4$ycO=%A(@B<+w7 zhr}&>x~OS~Nju`h5lNe&j%wOb(vJCXOw#()aZNi;+6f;{NLpK+)U=bNo$}$7r1h)Q zns%DBGd`RtXdp+4<0FMU%R=r=H4qZdX=j|}^G4U77koJH!v*^Dq7UR=WW`^Sl$V^8 zP6J`e%c+!Cd|>52%{dU8L>pt9|tvNPwZ0)xOw$K{b zH!lv|M~@S~Jp`+h{IneX50~wIHpfjh2$u zR;@Ix6=}IPawV-_wbr!Oq_wfphH2Tc+{Sj*uiDy9?`dbFt&MheC)M7TezMoEI@n-n zZ|A8zl8|R>|2ke`%8n_yPBs`iQm(Veb=GnzFLkle#V*C6rmGfb8}4RjRZ+%%v^ysdokBRG$PZ49#25F3MSHPi+pL+v-zFq=JM zxQ$^phTA+)OmY|@IV30h)kx7a(&oz5#wc5j=H+A5s>awDW6MxG)&_}VZFw`tj~VpU zca+Z;0Z43|jd5CZybV&vYf-A6AgU)&V4{tQwwh$~vB_i`lWa^Taf%o`)y5PXQ&|vg z%rr?cjm+sbrrTD{QRLS+BIQ)W%9(j^b*SRWt<{Rw31b~E*V|wa z#s(W3v|kuSR>~wP{)LF zjI}ycH)skUw{ctxpRjR)k>cv4jgz*VUvSFCDSMncEon}(V~tIvIb-9DPIK1AS)Jyb z&D+fLHqO~NPs=XYxIh(LuiCgs6_-TCC8`+jmj`B- z(ywz&vT>EM8+LM_U*#}o@Y`BB7(OI{DGjuR8nDiBBp0 zV5E!xZPnG!(WILnUH$0h=Z6e_boX;DE1i)K2YU#&ryo81=;{AT_0n$bEe7?bL4Ew_ z<5zwCVCdy{UnKMsZa=z-L@Md)SN;9yuU$AmSOdtSMzVVP6&uVzvWlxg!Wu+YS6KlL zmaD;ZNINlnh#y04meOfZG;NreHr$V4ehjB+Bm5w11g#qB$4I}d4o8W^Xg@~zF`7ji zvg6f-olfF~N_C;#{|All++E zmx*GsSUlNZ+9OR!mwJjHQ^@kGslu8{R%6X#si*ldO|zy8YdTrdUbI7I_%Va5u$n2X znPf@h(5zX0%woAps@Z;d*gD6L*?!Dn!RGq8^qJ?!T)&#{$2=}Y{a|E)znoeqW-sz% zp&yGVxtK1%V%D#=pO!4~V+p-bLM@f-meT)M**94Awp!-r{IJ}QWqvHD16KI4LO0)) zBDs=v!~QEPUt6srr4$RUR{O!Q%Acp!h|n6>9a?Cu7HaNS>-=DRt)B-j`oXY{u?-@= z!Sw^TQrYTzE#8<1gZshoJ#}spp-mJLKWd@PI+E*GTl`>rGd2C-2g4S|WGcm0?Lc{a zu}vCoKX&=m9zS;b)m}ds*-L-!6Myda zW1k=UDS1Hrc|iP`Tx_d@lEp##>X09Y{OT|-9~ZYA@q_UrerL)(s;`bx?3h1E?r}+V zoR=s3U=YShKTc|2pYr3FAE$ImW^h_WPgCHGA7{AS^m9Zz=f_z;&XIUt`pN}A&iiqJ z<Z75d_dBrK?=EU15kmP6ha*K+_fo#baX$J=|Fo3}UcjA?yP*_9gp7~t$d0&+Zn{TV3@(6WU0K@3RtNN+S z@BsL9eMA7md4C=NBO?Rl)u;el@8|$V1u#0m0Wp9v0e7sYma%*_rW1b`0K?coe4xzt zDqr%jGFuC8d?Td&hbz>Bv2b@`yoK?*>W!eE=H*_?|`EC_)=`8<1zm z+}&rZO+wp5=H>u42hov&H#35zwHWO zTL8OsN@lQIM0ZnQPXK!YYHxtOYF_|*1K3C6escAgdLWQ2p$-OcAb^9U9}3`*cJ<)^ zD07%b8)EJe(RPFaM*}#@)nb6d((wR}1#q0i6Y@mtWB?}uIGL(9wy{$IoT4(Q(~|l$ zb@2wp$@WYDXXxpY>TE!!#&ZFj4d5JIeLj%f*+3fc1wlEy7{K`eE(YqWO95O6;1V;t z9KdC5;uX<)g<5$}<7mAaz*U{$wN&x02f+CCKzxSo88;-!4JPTRlXSFIj%*Zb5JV1l zNe0m%s2T;qNTc8zs&SCD*dz$GvDP90iM0u$jTUVi1gULBlr2b4%^fYAbJGRi#mD-(NlDwx2u8Ov=24#I0~*9gJ8UGu!HI+{^}n@e<~ahM86;g z1V2#&Mb{wtGdPHWK@6tCAwdk%3WpS!G*m0({68!R#)nbia8WoSh!IpcGKk?pjHJR* zL5z~bA#@3<(V}=v5Tk<_L&dTm6=Q=h8}fAFDgIU81^GZaKZx&w$Pd<2wB`TCIq?kni#}{ASMP2&Pk`|CIq9F;q~ySbQ&~C5>Cq=^bn}Tgo;k z2yW?|Lxbl^9nO_TRxmry3nqEck?eWLd}g&E2!?r#Ez}KgkuVnVa&Zt0!dMc-5}v%u z!7zx0K`aeAv-2{oXt~HQr__od7?v@%QY(@#0aZ4|~vUTzA4K^U8Z*sK+83F7-8wrE9sEU6XAhZopNsck_p z{J_|Dt!RfZcJOj%5DdcD6~r#BXm=3XgV-&KWawlK?GfocB<%FKv-4i9exK0yG41{! z_6D&(n7S=?Th9Thf`dUE2;v~C;E+_oA*ljAocHCrFo?t2okxN=5|mNvXi!G2V?i7Z z;uzB$m#xbuf;b*jCxbWDA`c!ojYrBWgErjm0wns>NrUxx% zL(-}FVIcQD_eyQKp_<+y^ww(ngwRJ=A@mBVzLIZW=9{anWXbx8?*1Y43!y*DGe86e zXg{Z38q*;ILl~&tJIHbG;1C9dFqpOsk>o=|7!tzJ&{t}h3>(8k7#30^LKq%WBSTX6eeCol-a_ggI1LT+Iz(ZfKmE7lIBQ)cg=AH9y4fZ&IokhQRnj zk`{^TMN}=1)%lXruNL#|cIYYN0kuRL)zT1_gs?PJFtGDF>NPy39)g#Ju#7e@7cI-R zmeliXpIRZik&Rc?N`C(z!pcx5wMxWRIbwRiF2!usYEt#%f;If?Mz@KzAuz0F$=3-9 z>zKqvq+Ks6*0TXzJlZp) ze&8GM5Po1s+bT7;ErhKhY@^Wj5Vogvv>hSr(7k7;*3XP~iBER(FaUm7!;ZEm1hV$9 zVeSoKuNK`W2JWMQ@+L&r<9?m^tWO;X;ef8RgTx`=IZ*66ha~^QJS30ryP5wHr_~)v zbscufqahp(sbi_GLp8_w&ReTF5yA;!g>WpSPD;Kf=_qIDqTDHN|JLq2O_uJ4XLyQd z2&d`Svm$+#(oRQX$xG!K8JT7=Pps041)Xca~)x#D0MR=IljI-7Ir zFj`Yt3DqVH65E7psq>~j4okxr9ihZx-mN<5r)w{JWllpLx&EkXBbS>Gn}V-r84dv z2IIX+>LVHVVa9yj=5)ip;UrYQF#3kkk9zxu(LXGAV*|o$fdj)B5XQi8TCW@sF6fnm z!WhH?4i=?@wNkfNp7g09VW(FP4P!_cL&KfaFcBN(h`GIza>Gg0y>dhtBUt3P8W{$| zaJp%fkT8l#;%p|5@!nO9ma~kV0Hesiv}ZaEo^sQ^S}> z#nZz{-Z+Obolg$Km=RX9!eC@pxSX0TCd>(Ab{KOgIoD}(bH#|{L7$o@9+=0x=SwLT zgfTyi1z}m@?ewXI!dyt^qA*toi^EtH#$uv*8OcpPwM3Xp$Xpr*gF|2KQ_F5XR0hc82AiY*!fD!q}zV5m&plqCFzNhf;gPVA##r zKCNiKF!uBEKo|_dI2gu3t>{n~`@%S+6>)v26&(@zBa}KC2E$>-j%h{5g>jshC&FM5 z#>p^FYDK5QI2Oh!Q6#HaI^wiQpC%#4bXT!wwED9`Kg+b|!Z;Jgxv;y6b$1)FhR%m^ zUN^N1x~W|Z<3bo0*?=xdC%hcSC2oWa<8oMC4TF)ZY--n}sa+4_S{T%}L?29DZjQL5oPfY8e4ZEhC?*RuNj6D}P!?&?{7xrD(6}8Uf>7BLr=Uu%C60pgR@zh@e{pJtCi|o}#Ol{OKJ*&j@-`VV?+kX@z|X zOzNu@&gXWY2pI22h5be0fCvUq;lK#`M=+2I2SqSQ5_2saQG-SCkO&4xFocSSQVE7e zUN*Rs#(Ii>)i4nl9>K5(hErgKIATPELxebyFGfa2cuzbkf{_u7ig1&UC>TvFKYn*$ z>0yxdG$w*E5qX|AR=8uy9qUWx`qX!F`5jZ`N01*;<9Nvzk3Ka%0>;NjoM##n^wk84 zO^hVTog}Fy@p5tm48oWa!IX&fyr~gPj9{ux$qc56=rjsUk6?O4&4}>f)XWHGL@<-Y zS>)<=G&{nFQ*$Di9l;#Z=SDD>=JJb{2q-g;_8MaDe9<|b32O~Ht zillwe5ywRO7zvY8ci_jh`V&Gw!L%nMI3B^th&y&kRgC4*FM?Ba)_dx-^ouhQoQ|lo z5uAyra}h9dF7mcIFU|cz1m`2Tz~+8Yn)}66bEl3=5nST9@)vbkbXK0{_?;b_BD7r`Ms~%C1)q@4> z8AVSm+Di=VMFY8Olr}LzM4dV$sz!WO^ITP7M&UesZ+Hm zbDkzSPou!}D5gi%jHrxoQOt;9CW*769Ft~8F)NDMuJSqhY7UumqhN681Doq1sJNOJ zP4Ymt`J#0`WfnxiFpsf?Q7PymVJzb1;wTt|u_THm+OnllER14l)EPOJX+_ILemSL9 zM8U9(v6WiUDq*bRx z2VrsCWvOgs6mX31~KlM ziGe{FjbdmNlg8gThMX80$E4l(Rg;($t*OX2rF^p(7@9EFTq|lJj266X83ThbTE);x zE6Ry@ zJ(e2jIlT3dC=| z48vkFY7f`?nbC+CN9~a@jEG@mtiBo*16iYJ?C2OqYtb=c;20VxpStj~4;}^@gJlSJ7h`Y1OwL{BD#4~u+i zN(_uop(Ce?&{PVwOO46XVwk4uYPztdlf|!*XbdOo88OVDo$slcG0bG8%@T=Ol<1m~ zJZh=gaygsjnG?gDn3~H=oorrAM(z1A%!^?@*$ZMEwHL;)Aclp!Tol71-QE_*z%+|v z&ZxaaUoD})QW1c}mc_74i!P6W)a6=~Ij@kMS5RPO3@c-5Rg9zd>KInVu$sg*F^(f^ zV^|ZzT37ixeYK9v^)WCw^qZshhFJ0>-vo=+?}<24)OAE3=G0J62lR#=x7WFV>p`X#m8{?>bE{3x)oFnnP zc>6*O=VQ1a-gZ0J#TYKK?Lb{(YTdLi$2e+ViQ#e#SD5Z<3}ju6xufbXI94e#s zb-B9EtC4A=_KjGwok!)w$;ydyD`6ZAH>j#%T+D1Fj7DTMj)OrMP2y-0mp<7vj)rkG z72tD@+RfsksJX~Dr+kYz7@9HGQY&gDj8?qNje|iLt>b7Nm%+A894+H$6L%)*wpvj; zk#9$-_Hi(@Wvqi%lqZZlUUrOwK^UFl=%f{Oj-x{yowXuv8`O%rihNf}b&G?c3uE22 zq8`HN!ONa;FbJbp9KE!n-f?t~qqiv1%XFs#)9FEcNE}1rGKde2V`zMw8Wwj3@!@d{i(`1a zlNu2RrANd&sF6&h$DUDfFpMN=wB$cJo?3l#v>PLb&yS5`OdMmG<98zP9V=;khTec7 zC)_e;**+NOUGlg%^5Yms!SNzEo`SqfHdA-W6XKWzLbm7K}w(A9tQRFvAUTY@il`oW*&|v@wqFhas9`Rs^edmK9`urrRGy7}x9 zlH{~I4hG3&PaJ!6CVS)9%S`sgp+g6?KMu<8kLRfaI^(^TIv59os5}(MA+7Ro9AqD+ z)DiK)5n8b`<%6SfJ_$G$$I&>BG0pKfj?*Os0TO?njN?QcC*x_4xKG6OBkr5uOzgDO zDYsppj^k7ur`fL0q`Yu8j4ys84lxmX5Q%w_+oSto#Kr@}Zc>*LhC$9y0Xp!Ju zUCN&=6KI)`H+QWPbYN}*trEyhq&cuvqOb$ETB>!z85r6m&^m!OiB77m&XdikT>|Zx zXIQmQfT3-I??;4$4$M^ExyZ0V6?v%y9TVuN6Ld;|A&&_<3kjVifipr-ZN$c9A>}a+C2DAb zL)owdh9)p9QBMs|fMEzVkB~GY5Ek4kR-Yn4Z84YM+_FOs3>G zn!qfkoGmG5GbN8|;N1mHnv($SpOcXFUtG=AS96(iUP26>FY@zwxgY@sVJu8wA+s{n zq6Fq8u!zN#Tb{)_k=mM5@0A@lc&1ePSQLg#6yl?kk*!h!Mt zQLSP!9{XUa)d?`Zn#tBAI1j8%U`+yR6Yl18K4n^$z&dt``_=k{%rqMkSf9X#1kb}s z=wbHzgfq<2ksA}($mYV2{0lE4=F<%a~w`+<#Ss}^BX+?K#LCJL+V z2{3FWZ-^>{ZvuODUi%W*$Gr9@K;C}p zJCMrjU;+o3D6S4Az;J-P!$QJg=HU3y*@P1kA6c#8{#8*+7nSCg%R2L?Hr$+2G5Ad{>HnOtyYf+2^oMw!X3 zmTD}F#=LBj2?k*_%|z2oX{*gL(I^wmGM%MobFHX_$hV+W%SM4w#yzG?;24VEhL~pIAPbPX~qK_z&E=@=D z73sbtj7{yl?x)rF7kYoD9gvBBnHZ3nzVzhB+ygV&z6NDtU?v7pYOsh8rpr18q-n`X z=R<@vguJ1d7@Apy)v>tezRBV5QrFz`E zTK9U3_X8R5fM-Yez^B4e7BUxWrhJL#CzD(H0|-EW+a>Txni=HK6C#uQ8o~%e?{Fh? zvSvoe&`;bwDvD@)m6!{UiXj$X>BJxR`c)k9Au2%|Gbzrp@yK+?MkHdP8X1B!AVo7% z#qrV}fs3)eqRkm{#Cw?k<1u*hy@8MAluy4IwHc+ce(r~8 zkMK`B?w@f=c>eurK?Wy{v>e>x8q&aTX7Q5eY!ha|9OWZ?o>~unIzLkU%1eE4{Z_r7 zK9D>pC)RtxEq5V=wnHwI;HQTj=MB8p``zXd-wp4s>d(flLzjm#N97?J`{(2 zsEA-M-T&U?PJ_qPdr=~ri1qjJnELy1uM6i%tqJeH;ta?0JNAbXV$2uNapVCuG@~^I*pwyFi0#AOWoo7TsPlK(>Q%g|l1Soz+*2=K!)xNFGUS%g zc!YwN_c~se(VD3B?uWeP$S(Jyhd6TbJn9WPN85}^X2QP>Zq>USQfJK)#p_Dd1=q9OhE+ud>$_E#h0Z$ zuS?M@s~V^w%ZY3fvrBu3%_YRI@RckVh3NzOI|$sTpH6@l!9L?C-9>9?qZZ=F%l^D2*?_u_v!l5mv#E2DqSR)3?ezcc#x zY$DnJ4gYY<{ZE#L$I#$Jd+;(iH{X$-Q$Qf zFwwx28~279LAsHgOi#@EI;yeB`M8My+pDH>GQDahhts1OkAo(@vw8C@dhTWAIo3Rj z{$^8dWwI^jrk_Gj*=fM~cFeWCsP5pNJO7o+Gg(+U zcm9>s=<$l2JkQTQO&%vNr_OgGVzWTl^Njg-dGb6{^VIpSf?UtfKIPbXxy{#^_K;)d zrM36egjaalJnyMeC(YNFljh0k!^5Qenmk`#B>S1tclwJF{Yf7n2ga*`8jQZ5Sul6fmrB*Cm=J3{8BUe-39YT`owf|+VG}N8{Uh}WR58A zOoiDpb39G~PJ@t7UgaGfr?&tM@cWb?g2D`u8RFJ#&Gd67H^9w15k!O;C6g~`ax_yb z*E6`D&6CbGr*LORr$-Yk6c>)%oWqw5bVOKXlFCV)6{Dx5V#wr#QjBxS&v93IP9mn_ z^nv1ah;?$eGmz_PW2Bb8*U?deP2@h5zOdEBcpPFMrL0~*f6kx|t2AQT=HoD(k| zq7mBFrYcDb2y}vye3~m->3~Nl@klnOkVi|h7s^zA_{H{~7xcVs5qw4fn`936@Rx$w zDN5(O@67Z6cBEydXRWz&zmrzrc`{rYp`NJMBal0;j6nH_ocsj*#_Q&rq6>VE&{H;u zoY4Ni>v_@5I|V1?CoE3}e>ZLVw*UeW;78h^&i!WD^tFKgr04~fi&ZH(r$mnBj`s?9 zQW}x{f3HKpgB*Y?r*<5mEas_g6|Jc{OZm?6>3_28~zuxAtzO)`)#FzHZ)Mr!NsV(7;jE#2_LzbvW9!gsG#m*C;0{L!Y}Hm;(B>d zoGTwk%iT$0+up-u_hb`d=w4OA)vEg)?v4)4{#y(z{^Gjm&AqJW1csa zf^t_Z4^rEMyo1q3aH4pKY1~B|d*H)(M7Tpr|}e?MyWJ&o}#~ttmqs)EckPH?kVFP^*r-=0ng)wIs!r@lcZCO7xAKe zVfm7KSsJBFc}j3WNBp5YLJwu&WiCU&6VzT+zbRuFn4@07Z}7?|>L&0|9rZiy$=``i zk$Y9-k}8Q;k^EG>#*EA0HI%6%D>}U>aB}9tPI4~i=KKcUkeuH{IlP(2Rh=XB7Tzl5 zd0o9tm5Y z!N>Tdj`|dzrWL6Qsz}a%adWPUs*>|(_zOPE<2uhVmkT{9QkGMs&yj`CJ93p*4PSKP zI?s{e3QyL1&!&o$&4#1lgkCn@aYbq-ORBF?6JKX@X=iY0S392zy9|6&+VcXh>!40P z7k3$`TiR0^8IRM`T;ZXfyq$CMsGlssg`NX0!~}oEU-Jnql!3p|mAodrP(D|88Tf~Q zeNw@b>Yw;u{Ifv8zbM6ZUOv}%|H8kyI!#&oAN;2j#kt6Ha?*=CscWw37;=c=(n!{O zT;S1ISE#Y9@g!Ljv&{3)*ZZBb+~ZoWqb&KzZARfIK@me%emtU1Ac(m2)I@WW>%NZ_ z7ku1$Dt}t*RbOkay|~27HC0=VFxx%L}DIj;1$1RTknM~QN-__+KV zP32>>;TV%(yN;Pch;MxxSk$ zph2>(og&adawjv@B)kxzgYpDHXquTT@Ih2ConSRH#Hg7j2p=?)M$K}Jnw4hMY?FvV zQmQ#p`niG;lrI=Tb4<)*spgA<1sW-60TnEC6f8_ru*k$BtzfZ9G$6IaE!9#%{>fL% z1pS9Zey&8oWfRK@O|S8AoSIx|VkHw7Qw0BUD60khM~b(`B-oD>Z>``05&tJotuwKX z#al19KUBl-m-y&7mGFB3{2}a5L7&)Y68T5qV>hK_Hk-uxkuheA0Q?XIh^KN0iP%26 zpX`Nvweni1#lh8f{^l@79Rg*A2`7Vsl71qxcjppNcimRF%OjBGy zd>l#x50QJMsvCNU*(0~#jXWT?kta_z7SNtt)x;wZKutWKs-_+q)y&22A^x&Qj|$B_ z1#@u=0qqf^T6$P2jnk7aC_OC&h36C1S`@SqtRBMi@IYZlLEAJ1gzIUi6%eSWy@voj zPO0()cqgBTJm@GyexB(OV4hAM)mbFm!gLW_9w}beRPhMO(@htTXgl3?@rcSpZVwi( zr@->$DvilQHT-0gH?gUNeFS%h06lDyEJ$CHiM#Wnr(|lSS5ozp680B_9-d{Yp9&1{ z5Vc1Q6sR6S=3!)zr@R_0Wgg!td~lBDxskQw}bv zCP+ypuq148P79bQl!>IAbo^M7AU#wu*@Ho&SI>m&ad3JF+A~|wdI;0=7GZjrey-r~U@q;PCw9(D*~x88 z^ToXj1fWM?dKM6HUXXf-&hv&^EJ>HR*gS+?_F!pRLJiI%{vkY12H|;L^gyiPzIp-Z zk?#*ydI-=X2XCyBJP5|a(>FXs=phylPu~zc9zyTXoV96MiNLd7H!WiAXl;bu`Cd1u zjT(PvBfG~Y4>n0sew67EkR4M%b~bykg=&eg!=r|YH1&X!e5;`Bh%toQ*+ydwLEACZ z4oS6BL+xqwFX?;?BI`K$5LbsFJ6D*`Rl(CC+)f9A>A3k2Plw?e^Lat%!&`|Pl2Hz!B{-H5 zm!g4}88y)G9*$`Zy~!sDn?ooa;^c6vm6xt>B4|1JidZ=r1k5SzDMlKxbDELXTxiWn zD=w?ZVycB;?GQu9T}ZO5Ed@(QZcv`2w9o z_<7R!W=3kRuPEr}B`glXbGW1vhxSi%=m0^;k(wJQ2?sKverv<>4)S6UIVFguL-j<` z8Nw^4q(f5$8Ro?>QcJ4gUV`cnGbc|lbO^sQ!pkjKDXCE!GG`=p>jgJ;j}`Rw{zxLzl2&NQYeM%WyeLgbtor0~;90n8zIPM(9FldEQHjGfuuPl=X8TjmO6 z4xw^5+&Q+)OS6T5IPysP>wrw(v`%^S*uI6E>$Xm8wi5aDuouj+RIbBLCcC!jez zQJu1UH?N1FBG@@>V1k~bZ}n*3Ei zszZ346ReYyQYQq@IVs>cb<}C6PEMzpeMSIuL;;a>&U%TW<211If}oSHE(nSaiTtwM zODrAN*h^kqVw&Otr{i>V4W=Wz8?Fk#4k2{%6p?hUu__3k!*ti#z;1{wIeh2uMGoOG z8d!SZXL`5FpD5MV6;0m5lDwX z5|rg9?_|XZsN>w_5>BTl_t;yX5>JN(CWH=gb^5TteVqdLbqXv=`spOURsFf&l<)oN zqXCj+AWzv4+#KG#@*K95c$g46P7Xu((w{H+nZr;KAI9&C1Tv?N8cr9_L1B! zB{(^}dlm7~{Gy2aODR5vo9Z2LJ=%}uHqN{c)4ki>|8o;F=hLE?ISyiu>$izg z-9*Tl#7deh&^g4)kr#1}SEpEr|N)r@^m^m}7g4txI z#rcRJIYi8v#U!&+6*R}vApPH$^#PAYq-&r-%c|5TBowtrYX<>I--Dk>A3N1gWI|_dQQGz=WG-r zPs$)DSjzUz+)&R<`I)$;pb%^hXB32HQZD*_4A*SpU=p5{%DZ3m~cBPrJ zn`f!%vh0zv?6t6$W!c9M$9Z}N%d%e-9N?CE0nZ_bgrneKnu0^zR<9Kt7Tg?y<~Tj| zD8C`1reoaoB*YMLbcmZn%p7$ht*4&k7AIY(Q*NO&SdPqZ#Ka-(3=5@^a&iSH=bR+w zVH@1yl=8|2o{quIPSR0z<=s!%99n#d8=d$a5iPzfm3KMKULxjPVU{llU=EL*kd_$7w5H^Ba=7}ZIAj28kG74(Hp`>ePOFSO2MZ^cNH|2&Aq>u^s*UXHZ!35>XiHPt zIi|ErGo^h7+G|rf2vSB~2J&bDKSt@0fsVuv=_CpWgVRaCaOw~fN0+5bnu4wZjw5C1 zCg3>4#&If-*f>3?sb>aZaY*EOLK%XK(<_5GI0eIOA1>Q;q58Uo>X(6jx={TyKw5tm zYJdRYyZQbSF?iLt;B zgSnSUOYw>vKBnZ3Nj?TNY_E%)O--2WoCgUX8;3lIFpMn1+3I16 z>Gv_eF?fWcyy?9s3H2yRZ3JmL6Y-MMo3TLsmC}<^NkFimb{De zO^ly=Yb-pQt$vAL;+bsqoFsdmB)zNV1tIYrj12BCa;wdYQVDVO5|fptOzCXCec}5T z*-pb`zai;2*?j5pijaPb-%7Io;U=5^kz{`LJN{m!%&XZdiKJ|%-B-oMlv6nR6ob?5@CH>s#RN#(P-o#suv73WhKHlMdidYc;|%>sz$ z3futm4$1Fi^A*gysF1BHCi|M)Ok=s5X@tbLE|TT@d^hvHSXx|FX0i_`^FcOu()q#aAps z`V5~*vTCS;YK~v3Gg%g8va-3E=5tifR$oZ6FG>0`TXxV0DI3|6>??eMuUx-SrY2=- z$_An7O~nIWQ&TOHxILyezD8{q;rSc38NOt}H|%q=Ugl+8)MZ!Di|2aD#X2!J)SzC$ z7L9N5ZA#*Qsq%kc^wea!zcTvQ7d@i!Z;bx!MNfT3|IX;&U-bOV*=2SQtLGodO$J}W zSomi)_u2dl|HxMVmpp3l{fmWvXDhyT5mJtc98-$bz{LOYEsI;Qn)3FAi&$QN=x$tV zWQxMZLT=1`7)|7b47b?CCrZuVBV$Zc;WZ_XuV9*)so|@$=?!pr@}%}<6yB2Pjz$^j zTNC4pMWqaqVR=U^TMxOR4|aU5&{;G;xNDC)ELm=D%HWqq`k5fN^U3x^?pP!iw5Eh9 zC+GIC!$gqb4o4}wMtIDUDVqv!Vsvft$_ObZIqMCSFM2GQKD>ILhNWb};r7qe^GLq7 zmNAlJqaQrpSB?e@AqbvG#hsq=2$GvSEERDdGs>VCai1~jJ%t9xLQ42kTM9Y!W#VV$ zR59w|_7D8Lj=Ib9D(>PeOiH0$AlyOtvJrE4DOu_s^6$kxxHsF`LrAmrz79j(M~)u! z>TtmG%A4pIH|RWN#1zO;08}0IAYG;RgJi3cDCs)l!B}XAH*l}Jks*VX8RXBGa-M+B z-)4H@v?9kCaRVp_Y~^>I$Kl_f+N7C!aqovu9LKs0AXr|>5nf?#&g8K*+*Kpa(}|+) zD{VTA`(p>{@kY-eETTwQbRKtXzbR9Qv>dunwq!c~D|gGgd=!@jjZSqpSJL<3Zs$e5 zfqSI|X+{Z@kd@edY()3TJ+LNnH>TXLJV4?DeDabE({TonO$TcJgZ%D-yD#yOcA#{u zhoSJWG{Rz>H4JATjTYrrOqmSyM$8hb6iPi~$b9iAo{)(}_F@`%@@3;Lsaq!S^QFGY zse>={v(+>7>NE7J)a`2qXAlF=It~4ojQ*0d29fBmJEHItY1It>u>7U zsPzTv*GAQvHEUO^T0aX_>(;IMchsoGNLHpM}@s7I-~Syik59aZb2TGel= zR;y8;@mkgK*V^CKtd83Mn^pJonzjG>G;_=`LnV@0Rn=(vJD>KR4;gO@Xww_}%239K)_z zqt;ifNsqtdP+oR74a@U$sp2YC-mhPm3_V&`Nmj4!i5sR>tW1UEpUA3Qsr6WwO4$l!-zocU z2p3e zUswI&rxZV?enejKe$dIg{5#1v?o@2Tr5jfK8An+;cc}UaMNgFc@g!ox!;T5%DpX8X zmY#Ea=SQXWW`nA9Q2{!!9ZSHqYAQn92SWxDJ_bXR?=MMSD49l>Jx%t0e zt#0j_HGe|>KX>!La{|f#DJTE;%T%gZp@KBJ%E|KYmaTLLOX6I%S$DaXyjHtz^{l!- z!IEFNmfSf(_3DNUW3Dl;Rjl+nP53cm5=MQ)D(-ZDr}w+I+rF~hp&jtbt$q9yk}?KF@=8N64!My>i;b#HG`iHCkP1s!AE_oHGu|NDP5 z|4Lb3bJ73)U#oueS=DM^8P)@i?&0aEg9A$u!?pD*LWeZ|}U5 zeE0R#82U3AL)9G>XxktBmE#Ggt#S}|)+w)7tzWgg_^(#gJB*3Kye@ZG^W?H3g+n(P{ zzW-*GcarZ_DPOtlJEepF1C=xKLq zW50g>xhnNz}<{a&6=< zZ^zMgJ?GAng@&KXb+fYGtzA9q_EtXc&XWHviF6xxjdIJ-Sh-T!vQ^%#_!Kp9aNp)J1A2GL5#fmrAcK1lzc~@d9aS^1^dgriS&KUpTy5+c*83D8jkVuuRKU z_H{uQa>t4L`5u}t7i!8~K~ZjM;Cw*VP_MYT>iMXAz4Eo{)u^5&3tGeaZ81j!+gIB7 zV_MFLU4`1Yu6AeEdaeW{XScuHRv?wRlFa|d&4Hdw%fYaI=Vnpyo2*)H2I8sr^xdl5 z)aa5G*8ia7>=vdr(^W_}k1JJ~$aS(J%=dY}`_)5Y&#SJZ)AE&-aM9e#d|9Jrb>1Vr z_U-4NXVon!X_M})kfgmiPr1e$)@y0pTW=Q(tBl)VByIXi+DzSF)ks@jyDNu!4@<7E zyCs&Cg;r69RW^-PXsKyf<qeG0NO>5h=<*B)YFU2o8^@GxZa~Q zD9-!QH|};kCN|x&G%vXG`_*H{yEm((P)*9vBptWj<5Ivk?{k##5hJIEn;E7m;P$OC z#VsWo%4a$n%G9h~FLjGzSZ}#E&0=KQeUNFn#@8>nl}b7M3DNepd*7L^P4{BAMHp5E zw_9q7Lf$p3cU<>r-Yvc{tal%9EG=KFM*SL9Yu5NjR@ra9#X$V>9U^{w%g-UkCNQR*7Sx6s`8%U|6|tWwsu^{ReWGt24YFN&Bu@UY_-tc&ZtBpkOj)pw`WKh&sKqkdNP z($Zoox&v`Rt-hC4w_c5U_4$Y+Rjsb#Z=9QgihKZHzIwf1OX~OB61>g?b!+e`e%AYJ z7s;<{*ZLyW$_?xHZbb@<-gVZ<^^!Fyl>A$bdWKag)$Xd+toCh9z8@%8gDd9>dWbZw zn7jIYFIlE+nKzS_OleK-YS)o*Yo_wwzsagxyU=1^NC9~U@xIf|-lF!fdONRBKlg|g= zRHs3=+=0-ke{!b&*RsB-;m$UO_2;P8Qnprg$8m=Bkt5}rB2{ZxA3KUU?cJhP#!=Jb za~`|#RY<{j`Ad&snpUP$Q?FI5SRu8z@(VpsA^CpgDzb+Ejp5H|-i}WOUx_|lw>Ay0 z`n0Rf{Q1-R@|Mc>81ce_Pyf;|?MM*Ch z<}Vy=`Y~mCxeVi3*9eYVRjT}yc4!&J3zQXpUgt5MC}36jv4?6NG!|MCpXV?3HB z_}?B_d5ltNl0WiX$zwd0Cj4I?0eOt)(nNpa(;A~tqM!Iwg>OyMa=K;B@7}5umbv|H zzsGneO-~VvZ)!?azit_~WOv)U)xs|RksCmd@o;(@zvFF}$0*@gt6QNgiwd>G!tLr7 zD~sF+{kU}ceTc`nH@yekGH40+Ww>^*+?B>n8zw!*eQAuMHwWUE0<}f?sr5VG z*Qd$RIYsXUZnk3Wy4#8rXuJE4+HSTft)@r~=%wk+4qG&<)GX;t;~wLIw2ac%E$#qa zudsw&bYbY{VzUEmBM4(pQa{lRaRiWI|gb`6j}>< zQ^RALlianK$9OPJ?H$&Gg_}-V-Zzz`+m`Ozn*!-Rxc#c|cFrxlE-Wl@yOm*KiQBCW z|4Vx*ygK|Zf`!+I9wWU47hWNHjC<0&d&?TJa6-3}yDLDC@pQr5{8QFZUL&e=y15+S z+w&29xf%%8&Em$8r_1oEjMdj?hfM37=`rjH9@AdxF|D;3e7LkLBg3%H^N-QcXV_hQ zroEiM-9FPg5g_||fb6^=*?oeBy(nnfTlhN>G_8hVuAkb6$sWu|VcKI7 zrm-~ikU{wpZn~|KR4|S{2l(eX>_?OU=1vuFzm&}O?xAMM~j=r zq`Q6gy1N)uTi)!=6>bv{&-Crv!=j`Rt|lnf4F-oxIO9dfgwe4nOb< z!)^o9?!{j|Oye4Sb~nX1e~Xl9oK*py$q28=mRJ!IuRUDB|}K5g2w_*?(9Y4mx^w72qiil?~t zel}n&d+t&C|2fmX&R^d1rZM|@+iLj&i9=s7?MeJCf59~Je&w^r{E80cZ_TevqsfZ_ zd+kf6y^Fu|FPX-G(ze~~*Q^o#M*Nz!^lRJR_8a<=zXq?E#`0Hu_Q6+7yUA}^Q@=Hh zMZXPLXMgvMVRwDiw1@CF{Z-RA^r~%*OOm)IY1%vaJC`(#Ij{NbZLhJ~_`C6%X^bor zFgm{ekhSCW=MB42S<~*o-;lDVvA(Qr^(jZP@zg^`_qs<$(aqW$VjQwvuWSxBT zdBbQ_{vo?-dD9-m-_-If$Xh|Vn!kB(na0VtY-{S`RAdn_(MMyB&Xn zDx1dI%C^<>gWnqV)DP%F{`P-BxBeku?ffH&jXyN)KKzaU(6kzVM8$a@QSngzF=l;a z*y}%Haris`k!j5M*k^D4nCbbu^08?Q{lvCTfAX4PxBHYj_#6MJX&n4CV0HQniBtYU zXYjY{FQ(PC8Wj(zM#ap=u(wsCXZgEP%`}!)_u2caQz?J#vY1g;z#9I=8-~5| z3)9}l-{~*dgub+`Ltm2EtOjeFzY#S|<9rRD-65ORz~A(2R%CX-nppE~!`@QUv=8xj zy{2i5_}aG4eNAFsEjC;JM$~2RsBhZ2|1j--|1iC${_%Um*Y=;3{AWe);(t~$yeI!z z$!|^k*ZYPs_g}AgSNtFONB+ zk9R~v^ACo19sl~RDUHlO8peV~=1bP##*A7!n+V}j6Z2)OX;X=IXv%H0*BP~}*3E>_ ztr>-fNz~fYTnLw&o4@w9Ye5O`@D@~RH)+YNI?12m{Nr8FQu5o)zkX|RD@n1wmHCpr zCzk>XTl3FW{;@XanSVB{?w$D87~IKx#5<*v`H|sWEPt&voy?C7V`nF`l=q?#jAot9 z54>GEGiv8|ri!`pXCwc3FA34u+Qs~nb-IiBsbO5_=_PizuH+AqKhycgXxh#E#O~fr zX!2(|{}?^GlQyQiT*{v{{9}ymVSeJB*+WcN*u(tHFxK{8xe)4A${}_FE=7}}4kNLS_EbU{K@m}p?eqmW7`kG%D#-zUH z3r64m=9kuq{&L-QfccQsXMjW}4ltjy*AJkUBl4%gKo)YqKq=(8f#!$Sj6r6$VJ#nI zvi0tgzsAKureSOwZ2rl6WH80NV~3cZTi*Th*Sf^NhS6lGnY7mMkUUN|!}!abj_zC@Y(pZU~)_=QvC-EKnZ*IQCJB^dS-Ny5;HGaJLwPDN~ z&uTv}1n<5H^7s1x)55t1MR{Iv{5c3B(V`CY1#_QO~HU$kyVNb3MQacDqsXe4Jg;mvasBCfnDwk3*I23 zf>7xHyzQ6YInQ~{b2-m-mv>*jP}W>icGoJ)>$D&BbD78)6kJcvim94-XfV*4Oxw1`p-=VKv^_&jnu){|V`+aIT`IU0P;T6B?>7B}AhYg+Pb&&u_ zG}LK+!g0s2;uwwu5c|0Ryj^txv>#I31LSm^Xw&i#UM}(so4;dbK%2tD=2!e+*c>MQIARXlbSq+h&EW_(39o`S zRYeipS5Yhoo(B=!2n@GIFcUlp+T0%Oj*h`lI)?LuTS1$is-a-qq#DGp z!lt=#vzap|Od3oTDr_2_FyG|I6UGfw(IkY;6)K2tst_8VG(YE+N$hAYnKEzNuG%R~ z$C%;?K<8s-3tx}n5aBRrQ`)roDSM}J1al3DCZDr9>8T)6N>tcYhcrt8+lXT`Y+DyBZgVRNz9nZxU!} z6^CcJ8=sZiGk_6*7c;Ei+gynM8bf?3(|X-zA4vQ()B2Oh)hr9AQ)8C3lXA1IO*ETr z?WQ@8l|a5?Bpc5FeV43Ed}ypxR{vXh`HGd`x_JXl4BP?k0aVazWf?x(Z0#3W1c@?Q ztOPmVW~C4{v{}!xyTig6=K+PsI;>Yo(tLPRi`IL5D1S0wy&@wa3md03Y`rYgVGGyQ z#1KgHL)Ht@7qxIkOh&Cu92v3ph!l-lxG*Y4tpvU^ZXLEc4kE}24Qv*~s7xTR+c9f9 zFUBm)FRe{mJNW91>U<>bh=#jPPWuCEJ3U;}Ac|5M^ECk4+>*w)b|Yz=W`s|=8C8#h zL=W7&lgiS0H?8CWmp%Nlbb8=Ml3SpHDhfD}u6TJnH+oqcZ#%_1`18}M^NJ(r^AZ$m zEpduvlsd)Em2x8cOBq*JP8s8VI$g$FC0fBpQD^l9{;f<^I{xRX9RDw?&`fSK>bcnL z*k@WDdsZ7K%5IF?MPW5JX< zR!zb2vltv(Vvb{a+;Kb`M`z2QIN_aLMt0+}lfC*MC%br+6J0~Aj4x3N&l(&4WQ}ui zj$BuuRbPmrrpiO$-mD$*cIP<3_p+;Ci>@V}tnJl7WdC zbPE>wB1l}8E|{bUNEA<(om7+|o47nfbl4yMPxv!6MW1F#0ySsJZn~c>yC`;4cFD&% zsFCQOIr0k{KZcSE$JEzVk%y*R6hi>d=gA@BynH$IJYNJiavNw%CrA{^M;sD$^qG7~ z=G^0gB~=I7obQp>#C6Vts=7`BF@UcX3MM=T5-k+UR%!66+ToQK>4{f%i|>@C!>8m$ zF1?^Z%TpCZM=#1Yj#oLu(Np7ynmP#KrCXYE<+Y)afMN=ehMX1gRyl}}PgO8p?! z`{h~b@C!CwLja_nfV{wy0l}3xuau>L;4;kY!kC=sQp4>ojIk7U>qysh%Wqu%ZZr~A zd<{@`P?G4=pkyPwpy0&CO$R})sUTby6xlt9y}HMVXG{gry&l=-I^KuOO2r+3ANJ|! zeA2H&aG_tey1ovf{$hR0=l_2&_~o`;+t%^AZxtF^_X96*X8n)wDP29ju^-PD4!((J zS>_q2`gX|Pw>Izj&^))}y?6HRd4F%p_uovy&tlhac`0#A;!E@|Ewmx|jraHMP5#5% nc*cXD{T#3oHoS8%Ss$})-k0>=o;Q*XB-jW3xbNM~c>MZb==%Yn literal 0 HcmV?d00001