From f958f435c1520b47366815ffbcc1e12118c0aaed Mon Sep 17 00:00:00 2001 From: Robert MacGregor Date: Mon, 18 Aug 2014 15:22:13 -0400 Subject: [PATCH] Experimental C++ API; added .deleteObject() --- Mod Sources/TSExtension/TSExtension.opensdf | Bin 0 -> 64 bytes Mod Sources/TSExtension/TSExtension.suo | Bin 21504 -> 32768 bytes .../Debug/TSExtension.lastbuildstate | 2 + ...sion.vcxprojResolveAssemblyReference.cache | Bin 0 -> 713 bytes .../TSExtension/TSExtension/Debug/vc100.idb | Bin 0 -> 642048 bytes .../Release/TSExtension.lastbuildstate | 2 + ...sion.vcxprojResolveAssemblyReference.cache | Bin 0 -> 713 bytes .../TSExtension/TSExtension.vcxproj | 29 +++- .../TSExtension/TSExtension.vcxproj.filters | 91 ++++++++++-- .../TSExtension/TSExtension/include/DXAPI.h | 136 ------------------ .../TSExtension/include/DXAPI/DXAPI.h | 43 ++++++ .../TSExtension/include/DXAPI/FlyingVehicle.h | 13 ++ .../TSExtension/include/DXAPI/GameBase.h | 12 ++ .../include/DXAPI/GrenadeProjectile.h | 13 ++ .../TSExtension/include/DXAPI/NetObject.h | 12 ++ .../TSExtension/include/DXAPI/Player.h | 26 ++++ .../TSExtension/include/DXAPI/Point3F.h | 17 +++ .../TSExtension/include/DXAPI/Projectile.h | 17 +++ .../TSExtension/include/DXAPI/SceneObject.h | 16 +++ .../TSExtension/include/DXAPI/ShapeBase.h | 12 ++ .../TSExtension/include/DXAPI/SimObject.h | 15 ++ .../TSExtension/include/DXAPI/StaticShape.h | 19 +++ .../TSExtension/include/DXAPI/Vehicle.h | 13 ++ .../TSExtension/include/DXConCmds.h | 1 + .../TSExtension/source/BaseMod.cpp | 24 ---- .../TSExtension/TSExtension/source/DXAPI.cpp | 109 -------------- .../TSExtension/source/DXAPI/DXAPI.cpp | 38 +++++ .../source/DXAPI/FlyingVehicle.cpp | 8 ++ .../TSExtension/source/DXAPI/GameBase.cpp | 8 ++ .../source/DXAPI/GrenadeProjectile.cpp | 8 ++ .../TSExtension/source/DXAPI/NetObject.cpp | 8 ++ .../TSExtension/source/DXAPI/Player.cpp | 13 ++ .../TSExtension/source/DXAPI/Point3F.cpp | 8 ++ .../TSExtension/source/DXAPI/Projectile.cpp | 10 ++ .../TSExtension/source/DXAPI/SceneObject.cpp | 10 ++ .../TSExtension/source/DXAPI/ShapeBase.cpp | 8 ++ .../TSExtension/source/DXAPI/SimObject.cpp | 24 ++++ .../TSExtension/source/DXAPI/StaticShape.cpp | 10 ++ .../TSExtension/source/DXAPI/Vehicle.cpp | 8 ++ .../TSExtension/source/DXConCmds.cpp | 25 ++-- .../TSExtension/source/dllmain.cpp | 27 ++++ 41 files changed, 547 insertions(+), 288 deletions(-) create mode 100644 Mod Sources/TSExtension/TSExtension.opensdf create mode 100644 Mod Sources/TSExtension/TSExtension/Debug/TSExtension.lastbuildstate create mode 100644 Mod Sources/TSExtension/TSExtension/Debug/TSExtension.vcxprojResolveAssemblyReference.cache create mode 100644 Mod Sources/TSExtension/TSExtension/Debug/vc100.idb create mode 100644 Mod Sources/TSExtension/TSExtension/Release/TSExtension.lastbuildstate create mode 100644 Mod Sources/TSExtension/TSExtension/Release/TSExtension.vcxprojResolveAssemblyReference.cache delete mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/DXAPI.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/FlyingVehicle.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/GameBase.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/GrenadeProjectile.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/NetObject.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/Player.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/Point3F.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/Projectile.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/SceneObject.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/ShapeBase.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/SimObject.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/StaticShape.h create mode 100644 Mod Sources/TSExtension/TSExtension/include/DXAPI/Vehicle.h delete mode 100644 Mod Sources/TSExtension/TSExtension/source/BaseMod.cpp delete mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/DXAPI.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/FlyingVehicle.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/GameBase.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/GrenadeProjectile.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/NetObject.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/Player.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/Point3F.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/Projectile.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/SceneObject.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/ShapeBase.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/SimObject.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/StaticShape.cpp create mode 100644 Mod Sources/TSExtension/TSExtension/source/DXAPI/Vehicle.cpp diff --git a/Mod Sources/TSExtension/TSExtension.opensdf b/Mod Sources/TSExtension/TSExtension.opensdf new file mode 100644 index 0000000000000000000000000000000000000000..4c4fcb5cb1b2ad6523b9cb1545db786dc5a75429 GIT binary patch literal 64 zcmWN{F%CdL6adk86c8AQllwLTrpYLx{-J1VMz#YHNMq3sJ#QGvB`V23lm+oVC8S&v*9O z_w2LpKKq=SkNBFJpttROu-9P<64E%1V{?O2e>WT*Gmroz0f|5|kP4Obt40#E#Y zzYQ`27y*m~vVcq=8^{B4fLws)KJktZ;p>FC{p@o>Ccd$&kq?H#?($U&#VR$A34RR* zn67XbYY%m)xdi?Hnjqxo##w#aiq{A{);!o}x`L!9qk)Nz504$G~Jdxc-> ztBN}+sChlUtCSaE9^*-2h)jH*p$kG-ZE^@}wk5L#sUNbYkv4WDxq(GkY`)l}Ej)h` ztFLEA)3RByMZ;2UO+s4Q>q?evYi2@Lly)?}B(oV3~{^BkcULuQAjNoB$~Bryx%Q-^lzdWD9Uk=HEho z2V9W(zahT|F3J2y$jiV_GQSFW4Y)4z8<01FTM~Ep@1WBL+?59W_aN^B4`kj6`4ISz z%pa2k{4!^}b+EQSNT9`1hb3BXX@4G@a13Vq64QfuW)uea>{+T{fs&C@$mhv*32eV$ z@wGeLDuMEu=|<^Tsu0RNB`(si_7XQcAfz&n)2*UJr^J`i&v{gPGG_JJHQWy2YK^+S zwIlxz9McwB>c)MpeXeBHmHODlQ@+YNZM#3|ew9*GJikw?_t-w}bL$JsXRgL2D=%cM zR6~(e=h~$$&WzmLaeMZ#ZxWNucfBu9=?8_a&OKVqo3J7sIdN5w+oj-#iA-`-aSY@K z)@d~JnM^OlFuO(&=u`%FqG$p+&pLHxX2{X2yG|;7PH_^tYrf9$hxxE+6QitOZgY=W znXL zG;1>E&gG_ZRa^zPShU%im^5>Hv#w9^Z#LDQyZXY|VAz=J>^eS;>2pnNY;2<94BWUP zx#*stI1kn?F{fV5Q#qkhB078#o!g?W!KtSor1^nH0BZZl5mUgC0`5hw+x5eGk7cbR zG`4oa8b|m@S3S9rz#k_IYrvwED~H?j0T(xon+;jcdBjZ=Y=3=^cKD>|8K;_dd(W{! zWF5yJCF_)c_4AnTdCGEe>y?gurJvV~`#8Ju*T3@bAj|k3mZjWF+`OkOPe-j^dtzKv zh;GgXyD zX9U&iP=G$9X-9`FsQq$#rTG6-xrNwdKI9Te%7~cdjWORoYTL3|U%vJBV2Aj3&vQV`OIu*twBG3%Y*8OUNr}P2*dy zuBxxQl~?(iQyp1$Ukr?%KSZ_(-L?x5)cN=!R&I>w>7ng^{U|+gX<_5_HTLT2yYC2C z(L~|2vW*S{<&vTUo9>VTll!bt1SSUe5jtW714k?@UBU5`q+$$9aH;}#m>5F=Ix20{ zn#rq-fLCL%hbqypncO7oW)}M8UHjVj=DgW!bK2TI*_+2NfB&kOWYH8$m)A_^>X$nz z$G=#}<*xeiT0>)A+9A)(ia#pDFN$$o#>0akAQ+(Pu7FemAu?A(_5u3JTm#t;=r40E zAL1qIvGN;#p)VyUu{8LBUgDmuj@$SxK%HU0QVSnEg%h9rv zMVsm_6{JvJ#8D=?yh)R}?z!DrFGW7i8sk5|cm0*6Z{_rj+#9}zBClsPMgwbb8dUVa zp_^MwAQe2st7E8HR5>uL2&h7#x+$tqoy8;!!^nN9#JN%a=+#6oCNZ-jprc!r8cwIn zn=qMs`gBSDtzFT6^IztoeV1-D8P!_eDVC3}Z0ebPl1@UZeJGM%v zvWZr*P%L^ckCJV3`l?S%lLr)DzEG-v!@athY-8wdaCzCnArad6f}PYuh2@!PFW z7T@^&BGQZZKswXA4btOoEcPWv>=|sdRf?Dc$15M>_JD4P7$AzKA=e-jh{N(_sDnzX zYzQ$2F`hP-(dXURJg-@WtRvq!RR30)Vb z8NK3*%Fvzu%V#VdltD3F8PwagAlX&4+zYPQ;_TS+ilM=seEcu8rk?WFK1R0I*q{qs3N2L7Mg z|6N=q`#q~$=RI7~8Ct(<_mqx1hxe0xRF8|J=fRl8y;}76Zx#K^RnEIxjE`%Ii^$5< z^?Q4}yQS3@&e0609i0Cp_mSbJ_L5eyuqLXgGrRATw&pXayFN!=Ce=cGqj#OPk+(oY<&*K$nK>{{3^_2F(Lz#;1*i}LbPs^c0|A$-2$z|J0(}7rK_OI$GsfN^ z%UD6`#Ww3%Ninm4*q}h!Tw?1F4JRF#&=LPaK*cmZQw3&_)eiG1-2;7|v0 zv|$1z-T{+c^@Fi#eAHJs$TPf(n1;=I6eo?r6! z7XI#fFFutCEa7)ZFuV4_^5pM1}gzhB&U6cPiJ5DxWVVxAo?I_VdmBbKdKT%`Wfr5Ocj- zo?oR4KI^qH}yyth8OYBcg4mZZnn2Rrl*jDfii=5&sr#a z=fS3n=B7jM4?ne;rtIk3_>YCNOc!_tm{6*XS?6uXCWR;)i%9?c34e`g17YSPLdr;S z>khS$xdajMN21x0XNUw`K`A_`2aIgSodYv3LXXZ@X+1V!Q=;Wl7q_|Y)IzDy0yque~ ztmho)?dxl1;!w9GgVSS72VM&PnP^HsfTtf6r)WUYz~4v%13rF`OVfq^aC-dFQ2yZ$ z{dXVX`U56kaf${M4g9q<@CTOd%RcHd_NwR~z|znCK7Q1Fh2kpq|JSN>CAW$OWDS&A z?5AqjWKd4r%bg9$s#PH3kGRs`HYzpqX0a*ECn4D&jj%wpKh^{F|o-$-rf=F#OQd0 zk3g^%QrG0j1ZOcJ=dziVD|tjDd|KnAt5eb<dIOCK36W_Q9*?(W=!MZWN zLGUk(Co=v^lqV@BHZn0XJ}X6?5|NUWmK+T>F)1}NRh^XhPm1|jPw{7rDjglvKhtNS zC6tyD+c`2ZZqV>^2OhtReA^VSs%&VYj|HP+Z zk59!)G8+FsYtx^)_CI4q(I{2CI_gU(56Ngxdzw=R4Czs6aau1@CWhOn$dp*^Cxjt4 zGG6=Xpe=lnX_u7D7ikMIv6<1aJyW$_MN%>t`Tp~i$o{X}58oW4G5;rCZAA88LmdAx z4bOzZV&MDF)A={2;M6gEiFBl7zCdG${Sre_LS#IQ^$U~+&ESjJYGwkKjmcSBZ*GaP z8Cp*xGc8peuTIr|Vg93Z$o{`^TlrXX{ZD)qasJ;5<9}CHV3~{oC@v#L>w1gMi0&4d zto3BXRK9@eWTdJSV!hRg@mentt@)z5et{yTX7!BioSGc@B^JzIYF+-N77uapNs-#0 zAc(2_)0RN?|H8tuuBQDH|BWY&|AVpr*Ok%ffPcRDN0ZA)PW-0{e%enb^Glj5r6uhYV{cd68-rgop)b(Lqe**TARSuZ zk^Nul)}x80{S&W$kL9@)RR&;F;ZHYPSIP5T?`DOoA0u?d}HlarIQKW~UeGKt#X z{t;980&O7$b1kvWeR|O2OD-S|6FvN-PE3zYPQe44o+&=jRsPgtiBFF|3RkSOTS1yC zT)Fwv_d=G-hnGT@`e}FQ-;_)CPtW}p_Gr?Gd@Im{__?#28Ib)q!~8#zt+t4)v;q5p z&6xwksQ@daXco) zzji0^%Mm~Og^94(V!+VG;8%mE{58x;`t}?6>nVTlOoaItySOv~zlq~}bl1$J_&-y8 z-6BG2v9^yh!SCYvyL0|-Gm3u@c(6$kVbQ^bZL+{0<9P6iUDt!n7(2^4F||-c0HioY z1Aj>kko}j=v%NU{m$st)Q)fW@iZd$M|4~Da0;NK?z)V17XE++nuuaH}L5fo}plIN) zrvbA6Zxh>8(tQ3$d=(u1Q?ZHS^S{4dsgxWm8c;Ow?`S}t|C^YV6vux$@?Uks&&%GY z(fGf_P|Z@9TL-c&eeJ+j|DtPeIA+KG5t*PPuoFoB@iMcxflW&R9ZDNfPA*U$jj{{_AIt0un4 zKmSX-qdtxQl`#INe2r`=X(}2}H1Gv9Admmu<}-2pr?q^Igep3|waNb5>CpLK(`%~V zlF=Wu*9j2E@2VxIcO8R?!dRVfrgktB)?S=^J_qCbZJm-Lt{ZVHnf4J4bXDTJ!+MKP z?5&3J-cZ+(?Zk@*ui}2NDGR)mt}eUgVkT65mDS81xVx^i7~k)%>PXd$n$^M{xQvG-|c<7)D!b@6?23AGq&G&@PYd158V0l_oLOurk}v? zUaSbqYhxxX7&6DFCiqI2?IRjHZ?+*mv@K(mStA{FJ7xY3l_*Zpz<;F%$o@~&F4sl2 ze|r8;yeZcADi(S0YwA@0|5g9RKP3 zpJ(ihh>PO+pN6o1Zx-77sy98aZ-mjG#{bF7SLC|FZ;JiC+@3{+2)hmkJi#~Pc>J() zx7@+E1Rk7HR7f6V<>U{(HOC)rs_5jnlCf~+teclsRGB|OH;Pj<@HI3*_P=nFnJg$cB=Hq5(w% zUqJ(8|KC`&JD@rK6aNMieHC-X_}}#_HDqAiuZrVi}vqfSaVzueox@%d(+2^csmvQgGtPv<-HP={d-cN;uH=11vNnS zZyeAlUbcVg42W-SLgRlc<^1nouuhdMD;oHBH6V}w^8BC1e}^oud$q;q|3TvVfAXDM z>zm{ED!B2F@KGPC?ecQLJpt?z%dxUl#{Yj;*-AJ?1OH_jknLX{|GkjEN%|RGCyD3( zI>P?d?AKB3>ND&IbYd2w{r8Pn9rJ@FV~Oktn^)6PXzsUd*EGbdrjpJF(YHmZm^Cq( zxOpvD{5H7E?*u<+#V#{?U$CZ14=W11Z?rYcgZMg#Pxph2Egfs%2)>?5x<6#W%+yU#8bDe&`od>LQB@da}d+u8$P%**$KoA(Pkf3*}mmA~TIChmdom+|<9#&&J$ zfnUz!&$CS1T^syL9)G)eEx&f)S9AQeRU6~-;MZ|{cF3;zRQ~n6{;Ee`Tudk@x%{T>K z2d%upA47POzu7WWRRQDEDODhAFhUuBpql^K$@Z@~{$FpWYj+$Chu;6C_y790@vIsE z-yOeD`*gqVw{j&e3M!2gfgW=d{r|_xS0XAJ_{tg}`!|ov^p@=(LpCG6zBvD{4*RDY z02HTaK+(Y8Q3LY$FTej+423+?*3$ijIR6ia{dZ%Sy z*k!Xl&G+8}&o;9X?1D0yP<)k+6#p9w+je%q&2*5yrIj%H@}k9r7v=ac!%nqH501ct zZLNfw&0BaAUYz5%8_e!MB8M>#o$@*!PF6zwa`E*_V!qTy&qU0h#U1CAaW2r0-bm(A z!AjX5fi4yI->CtzfA{J;duxvW#6J|z|M)AT|9@w-DY;TKP$(LZ$A5YMkJk5T!jjBX zYg+#=hy8oAUw%HB<0`={c`_D}c!otyW3=gU`8WpFcsc4`O zG(h$rw6fcgHv?yg_y5vlfcP!q`M(er%sLlBDvAh21BwRz8#O@oU)w2hw9S-;;`hJF z{)w-J7wlAQDDMCC`)|y)k|#w2iUtZn17!b#XM1l=`zOAS`2J60W&f`bbgYO_H1OZ5 z0kZ!$Cu(JD+CTB-`qTI?=&SLTj^Y#zC>r>CYJlv2`7-r(&GSFR7sZ8tDpm>Sf3yCc z1y@R?Xh6{bBl{;cbeoUEzHs$HuWm0|*c==EDpm^f|5Ub5?*})!zr_{r>(c)Jma>yd z6o*guf#9(o8)0kfOZNtq21@s{)G6t|hVJk2;JAGMjVE}*&z+2HK<@{8A$;zcQo^#k zTdGw7@6F}+9C6`tY4E;0zFt(gKE2QD$K|(O=a5GC|M(+3r7z2`#O3#UQEhB0ehDYDa~u0i5#x;+j*-VE8q`QT(gc)AlrmUmMRWDSuYBXPVISj(WhaT`DD5 z4m(!50r&h|ezmikub_@ZZ0G#4a$y`#I^xqR4 z#kcfSSEl!?lc5j7ZQl+mMd8zV`X$fnhh>7#;`kWvjwh)-^yT>5`&BMa1wVl4i}8D2 z(!Wjm8p83}rNiu8A$T~R2b26?U%fD=`-`S?+-usiBed%@3n<~y5vg-<9F5K4ct^qQ zax?JrIsRkYTc_#%p@kg(ZkSeGeF zw+ZE;@`uMo-HHOg4SepMQo^hjD|df`@H?0(tDR@8d*+nEAZkxXAdig4x&4eKL-5CO zW+vk5OMSd(|NJs*2phn2@|sCbWFKX5{}Q#o7MbO13IbU-nmqjlTMu2PexMe;Ki|w%xVGJk zk-gUC_?Y$kLdiZuATPUxtMIJW3H8eouf5Rfn2g}d@sXrsWgfor*HL?G%%>Tbe zy(noa8u$_#Ap1|>b=XpK{ZG909kPFSBjx*FU!oS2G!zYd9Sz9qfBF0`t<#zhE?+td z69Mf1WBnh?R&U?CZVG<4#CneA?=>47dr0dgTX3{~(z*52mG%c5z|s2YLzUuw)xpzg zVZzU5Zz+8Yeo0nD#8dBv`%-vMtgj;dyoG5!6Uxp4?_EHCMIQe`xn7-UeO;-5{K^I7 zSC!@4p59Xp;p;(u@GW1Vb5Yari@-N5AU}-9AJ>A3-#2MdKz^$N^4oIxUX8x}NcoR~ z{Okw5!p&o?T2ubx3drxljcu|Jv=*4N3mU0`f-}kUy5oU--64KqZ8qPV(RS3I<~x&dvZoyMX)!JpQYf_rIm^ ziwnqKT0s7CF2Cl4mRBkx{Ewu69Y4XkXt83X|4jwt|IFk6F5e`NfOTeEgApe3azuLs6l%LB5KaTn3F4fnY0`lJ#kpGd(kGx|3(g^ltg8S-5*!q3d^{;II^7wCs za)jSBU;7+}D}Dbnj;UU}?o92=4do&GA28}ci%|GwpdVF9KOwEoOvk$5y}%Q`cC&p# z1j^^bOrR0;8>>%Mz5_l8{0;OEelH&XWB0OGhT`vDs9%aduZ@i!?br0D_yK;xs~WRCs-hs-{QmQ`bynBkrO()S z>;M{9{krvsY${ICz<;a(vj1NqOHY!=f0zj)J`5YED%MYV|Mx%EtP)Ytz<<963V{D+&PuOBqU^Fy3A$XTrPA5e|r6b*b8 z4HUG0I(N~!LB-^7ECi(ezc@A~uJ3|G{7$De$o}Q^w>AFO{Jt0Qw0;iUxu`asSFuKD zTL16rA-K?fpe;DsADnS?f)Ax*&++MfI;Ye54cadx{Lr?bK6E~&B*Ihtj3?nywBO*u z@wxRsw#M}V*pHCTr%c&7cscFYl;!xOsYmmI!F%!ehlkvMPkedWAAtOt52H*cfcL|F z1s*5-gyn0>t=o%)f>=>V$S)tIsaZbaseDH(wXAXke}^JI(0P}x z92Y8%{}2M6&ht?EoevKFh4$y@JP)OR!@u67An%(J?O$bZ{0F0~W`y_RxRXZ`}uw{0SUy*mLyQWxyw6zlP*rx_f3Ar8l4B z{UgE*sXZ;?^2^38`i&GV=XmjcrUqpHRmJCj4$VWREX42C zaGur`{*hjnt*4^Dtb-?hxd$S`?$+3Um7ceC#QD=YsTBl^HNo$HF{bgWExQJMOV>r+ z(}8b7{Cfi{2<`5)f7sOs-+zQeiXWAD@!kNeH{P=f?B3)G!ic879dJZ=ADl0w{=en8 z``vuu`+=wNE#mc&eKZzV#Q8+RL+?~PP2Up=#MAiy;D&i(Tm0QrRaA`M$#cqGlHZZX z?;ZZU8{j>0{*m%e4lGM4AfI@WU%yMA2lPFo6fS>$(V>~xj%5S6 zeD%=F1NQ(Qtg;a0-{^43lg7V^_#P?AuU2l)#W3*GkRIu0YNOGcX*`_C(_bD`cRD?f zouiWGFL4j;#}o&@gyU58;CF&2JSO$!Dtf-OhvS(`uFk3hem|G* zU#!gH#*lYVh37*kUnh?thiE=VD?ahk8Z;P@#Ai}V=quQ@)<>-G++pSK*}9l7pO zbMPNH?iO2mOgZpOSCTJ(A6HjbI)7ie`EBw0sd~E7{MJ0F^kbTj8tF>ur!}n7k?h5U z$G6H@P?OrD8OH-(r&!bjUzFpuW=yJ(2Huk6^7(peq(|ionSUu`;&{f2>Hegbmsn8< zxfgYOIrM+Tun1;Y`Sa)Vm?LQFk9bY}oi~*9HzP;gh4vFJf+zWM`K}mB<&)FD3ZC$a z)8jflPsaDa3=iviO!xm=&(EM1#VH!lng(e6?|I>bkG%g6GiJmOFr)Dw->*~d|JR!C z6~T%IzP1L){_{3GJgI5_#5-W(qQdh&_1DgzlD?t=MFU#XfV}=UF)K++f4p&`*`d>)BOHsrCs}Jy*&x58(QCtkG^_{)`wI0{;E8GpAHFx z$7KZHn}LbN4D7Gd{C$I$@eSI)miK3yFyH62K9cumZ#|lmPMMMSXU|`svyRrIYq)%4 zx14IU-ui*3zhYUFM0y_ZBY*$3^KPT^v|q3V`OW?zP#96I+DKZ@Z0GrBrTZKs`MbbV z{wmKoYC`h%fusEOS*ZV}8TbQ8k8peAcHg%~{tsh6n((Z#r>tqcf1cxKXD#1h4*ViN z-jR~u=&kW;P3MMhrM}r#tZxdp8uT-R)!&Tp<@#yIak+jXI4;*uCyvYY6UlKM zKgVe`AU~Spa{a`C7u)Z&8L5P;IWE^vJdZyta@!!XuSAZ^_47@E`bp#Uv+mxtZ-*d! zFYqek%0l>atCh5$&>!;X{pTW!dYMvvWfKm+Q%2_zo#7AVcrmkxF>&CBbNtu9nlUNh z$8h|&hZ_xgf**_YDgLTDyB|iwpTO~j*TfcDNsk+-&s}ZRna0SYgNeGzp%2h{{h`7 z?myE2jsHH&p5E4+{}UezL&N)j%KHC5Q>zk7(ZF9q1M>V|KK~bqTsL#-8=dY*_J08L z{}i_OVOWcj82b(~8*%*2`Elrn>*yb@;SC^qezz^Jco03mF~WH6`Z7om)~_nzhVZ5; zD-pl2b9G;uZ$u{Z5YRq%&T_o2}E7!gp>hvpmQFkTa$ z*rd%gdVb{1@r)CRz3PCc=YfPLz5BH;%?~Sbyz$EwU8Z4tti+!`tt|3WFBFQ&R8TJFshud=eaPR)*XuZ;& z;~mr6tf1#Z9XYwcy85s8MHo#<@kkmI_BlUcjfrATD7dg z!FT7l$CEO46rb*Aq4I?`46ENCJnm-^^OxTD)<=q;%<+jywa<43pT^@iYUAIF&eLRY z{N22r;`6><93OkT>Xll+`*2(cIkTL~*PqKz$!$J~=BEQW{=D1cE%f|u2#=o^nmm*0 ze;CKBS9(5|)=MKf{x~hVXKnDKIUXB(=E*GZG`}SMc5S+J$$Wm; z?d*3on}eUh@!|7T6CQ$}&2d&THHzwg0mt2nEjNk+znG{0VruI$v_4wO@eP}*=hE}K z<-m7j1?m14l(K{B|9g(dS)I4&1AaBn-v)!rhGaiKa6GZyy9s5%Z{YHWbv2(#?foZ? z>poi8KOX!R9zX2+8EvV($*-@$e&0^LUXpxz-b(G`anzkP)c($L`De0wWmEe<&+*b@4wa(y+eMDA zX{$54HTcVrNAV4MH`k^5z0UE`+wZm_`@PBIFIhLV%5hZOZI!)Pe^=55ETr^Uf%!Su z&+J!62lngB1e27y%TFMfCq_dnb@9ytH!ksiRy@c3P`s{MEayr)hPG5?d#mi&$S zp8(9~sr)TV8|Zz9^s4};{&RBgpI`a`55fFi*Q$yT_P*%(!N42n7>juMnr?BlUT8t` zZK?<(%-Xe_4ZbyasDMqe4!J`8M>tP^;F#*)TLb8zBb`6c+tH{i-vux&9|UXCK*r69fAGm*Nx+C>r>CYJlv&e9DRL z^8Ft){u5usjqE=T@Bb@K(SV|XzpDnw{x?)ex6-tK;>%=^{fFr(<7mxj!U)^!m#M6Bp zsv*sU2lr<*sDkixzc1lB3%XAz4&RgTk37`x^!ykD;yqaKgl5X~E$BpX|C<`1@!xq< z^7OcuI~$S)$WDka55vRw5BpDMF|iTRDXB3rv2n~NA=yWrm>!#)5*riSGsP#mN<`1( zq^`-43C?lq_}CQZvYC}Dc|;_rqmz?TlHyXG)72?yk@3zcscA9lBxgTgZ{LXY=m>RU zbbK0#jZIEYOe$=tsaZW^)roP1E;l+MGPPS_XO=V@uZ}8gvFfCh!WNmCNs8^9njEQ4 zEp*|?Z(K%9VP_f2O;#s%Eo`yz>I5yQAX+~~E!Bf48;vUj1ILuPzZv{r04IW;D#YvJb?)*G7{9osXtu-jN{x5CeCW=w2UTA^D* zbX@pkJ~hr;ofu!( z%1DCMKpTZEHZv|GIkKl;VT(;mRmZDSv;L)6vj4XCD>Un(G5!;u?m+gx8T0>WrZHis z;W;us_Fszqf35>03orckkd_kLIWjRtUHFo=6qi)Iu{s!^YyS@YR!o$#lKfExjin-+g@h(QAil-N&M)4N^1Tf2dj6jvhylvoWX71LBn~OS-0; zvB&71`oh=6G=*L@s)gqRwc)$qia~nxV2SsilHsq!bAUwnKGwMY6aE9d=Z7flY%zL# zAUQpFqd{h%7$5qK9$wulPoJyD700%CEfD@{1j3*AU;$nu0{w(=qu|Fn;d)Z|8}Yhi zbNKu5-WEG24{f$%3Afqa*MKir-^Q^?p} zD8>bTQOL)WSf)aLYr;Qig6lZpzd-ns@Lxh7Rp9I3cQ^Q*Q9mdu9<<;(4^RxK2&gfh z*VKpqBa}EC{`NAAQI#4(SQ7k|$RCQ#enPlV_tN65W?tci4-Ij0lz(z*93l9 zq+1z2eI^1~WQJ`Kk|tpu_P3_9sE-$ zY&85m;M>DLfb=@TKjA^wkfV7*zs=xZMTI8!Kd=DtKH~dy8 z%wYI_s4OJS?jhYV@JAtj5BLricwH3!7Bu5P_|p*%S!IjM(PtL%Xbb6gfZqvvs0zO& z!c~Ib&zwGM$JhV}jfFo}hpxp&zVJIe!nz0{RHxlhAIKu>gZzcS5A~wYIigI^|1kKL z&=b89XA3>0!QTSDE&R=>k8j|Yfm|fX2B18B;Cn(pk?`k0PJj6RC`Whros1ZBhVO!Z zI>9fB#srnIO$PLMj!YKUT7X_c9*V;HK~5C>_bBHe_&#L++cxf<5u-8w6F){P9+IvNq03|=Y3H81dwJEKnEUqyPz5?cZsMG?zv2;Uy{7!JQP%F`2mQ>2#-za=t* zs$?A?rzreqAgB(XS)|8-h^NmOnjmvSAu{1p9ifQK3`!pXpL7P*GG{cp2Jm&E&!O;h zP|!N?ALI8%@be%q0Dd3H$%1c!M8n|!hRhCtuQ){miUyzovj4&H#mi{gKk;}K7548g z8kwe|oWbb9c+vm-E-l3GgE>a;*B1;IBV!uz7YAb+_%JSt6E_;1Xuxv;RRC24`GHDav2OR(%1RVk$1|0z%1sww&2b}<&1f2q%2Au(&1)T$( z2mJ!N0J;de1iB2m0=f#i2D%Qq0lEqL6?6-98*~Sh2f7Qo2f7b>0D1^|40-~33VH^5 z4*CuB0`wB}3iLhbHRuiKE$AKSJ?Ifgaf$~1t{NcwKm2Qx)tdHCyr%u@pztaX`Q+Z~ zOTO~2q5(w%e{BuaZPC(sq9evUoU5ghID#e0$w~jZZ(j%N{8u>>gJdFthKq6ju98k*@E4d-i>;+V$tMHy>$+ zh;@l{S6V#>7ER?91*jQ;L`>TqW&LB5mo@FWyv0*UVB&ksotfi&^daI#zrO#FyMxmgpR zCS@K_Ev~8&5P!;Yr=lE0VpyH|U92V^P#vcUr-qZmp2ozCNOZhxP$ndb?HAL>yKXTalm<$t%PPU;I zpEq_nZ0KC9aX_NuWqVeS^W2le_CX~OY1T!#&ztY3c6JtvCL+=CJUnyfJojX|LuOzj z9V9v)wsJ4I6-qzLVFQO@GZrK|-p=ggI_E#jVeiMI-aw+`I-AP-2mb4)HYr@k8V@8o zu7}$9e_v-#$QqHThk+Bnp?b6XJm@Dqyzhd(1SGniIE%fq=gH zC&blsa@b2{u?7T*VR`=$T%a$J!@jhDy@ABAyxta>X-dt{ukan(14wkdE(~c?OT)=J zD>@Z>10d0H{Wi1u{jgD1*jxu`=68*pK`ugOdtlK^q$xMF8t1tu=OKMM9;Sdq$8D%S z`V37chn>&}dnzE&@iuuLdD3)p*xBY7%Ryp(dA)7_K{I5&&W>V?CDPQd^|;>;dj@qx zq^XCO1#DB+Lk8-INHeVdAG8NUj5$P_VT{`>wVYASG5{ZuMA;m#6WPV@L1wRu}++9mrj-v4`sy`U+sMX7Q zxQ#K0NOU|8MU6jKnw$rkQxOrbYxLfTueX|N&T~)BLp6*~L^NI;>HeV+>Gw2v zax`Ad!r!u1bm}7OjW>DjoOF^ZThTd{7r4F)Z(^ zqyE6=mm@PoVp!hql*;%#53*d_S=eU=iO%N09kPqZ6Fv_s=eLG{`8r5554At9icjsg z=~3)UgG9&mFoHfht>I+3AMatG86-Mh$La+d0r96Cmd0jzd~R*=T5Ri4ZSup?xGsm) zD~rEDVt)CUwXkGQ^wUHXHgC$KMYJaSAS;PS zki(9{A4HmR`=QP?ogDTC`cop&@p^0J@_B~kWUdd#-ZDsZ+~zy|@Ok5r!!{iPJ%B{V z+s^I|oade#cF;pSXa|Xox8FHyIL|#f><5g+L}J-^dzcyWd04q@<1q#iiH?s$iJqT_ zmF0E`MZXTx412pkpDKr?w*aL#0TG(#_uL=IH8I9|2PEc~x5-s~Ki99E-_vKY-UNw` z*TvAN&nJ{}9y|x*zynBhT)!*P?lheo_TF^t_k%>o`$^vd{f->AMLeE8fkemUmZlRk z8cq)Dh4~ec=y-l_RnZ8DKjpBY=ue46$L*p)5zcc@4!aFSCL*0hO-mH_AN&f0m36jf z8rA_I(eeD=%;r4zWVzW{I79&w9S_^%v5ZPT%iL4+y+mTY@&4DyjmPDloQEN>Eg~^2 zZ<8xNueMJ%KMDOQk?6S2KFWFGKg)Tr496iDkY?CFTEDFsif=!GM916YE-^#=H+ZsK z<4Kqsfkemi5E{*S?#W?kTqGjiY<5@}jhpx7I>&D`rb11k>jQfs5*?TONBM1B7S9?% znmT)3U=A+pHx_+5krmyxvTMc%HZ?houiX6NzE@epD99qv_MeZG3>*(DakDls2co19!_BnO(cfp`Zd491s0I|@)6dX zAkp#u_fU1tb5G81Rm_u#M9152{{mx{9Cp$W*bqo`+>X~47&qmx*Uw#2KGHx$VMD&V6he8>L0nBIhfTM^ninL>`&M53>_po-gbT{!Fle zIL|#fziqc;PZuOQUN$|~-ygd-$Kh-ONHgp-|Ia%US?(3sA(5yD-hNxihQLM0dN_&x zlt>KA+hp}}JWzqKlgr{f3rGyhb=J7y?}uFp(;^bX@;vnO`~9$WupT4Q44c{N_roTl zKP3_!uZwLdpNEz8P#k>>k!F7PMtmMt*24vi6+~iK-cSCK&Pt$PCejRBzs2v%jW2`4 zy&%o7#n1<6Iyn!H7zc^Ouv}-3&YB_f`-h|Bv5p0aj_Y9x>Ri*wdT8K)vq2zDxuJhh z$L?pb)&q%-%e^PhJ^0VE+_o5lh(x)(J#3Rf9#$^fpSVyX6Za@YMW+1wFX++pztyN8 zJpTJg*^u+Vvm_qkz6pl%-N$#I@6LB01JAv;tMSy9b)NXD>PeStAMXz|ct1ey4l1Dj zhyqYI z_DqRlV3*|TA#I}iJbhQ}Z4l7`ZgPj}NMywGLkIMU_Huk&0M?fvYqSA!?~#9^Z+Q3$ zkVVvnhd+z55S8WS`33Tc+Le^zcR*fg{^%LBRnTr{ ziI4Wd!FW&}w*x)oizthyZ{~@)D`-5=U$;OU#0OP&l;S@^*@$lO@N+OnA)3zh)fc)X z>cP`H=8CggpqD(nJIYSv!sUD6Zz6&7Ay2`b?%24?}tJJBtk zUmbtUxj>JhBXV^fNVMNsWLYbuMRb#==ZU-%IrIGQcgMLpkOORhoGR6J6o@a712+`t$rahoHQm6+FH#@GI@T7x4;WGpk^HZ6?rFm!t-AXc_WJ8`D+hd z5Iy1gI0{)r!?`@Ywy-ZyJ1#E`a)@^D{Oe(iAsWc}ONdJ}na6(sjA$&!JEQDGH8?*S zZI`GupNG9gUWs&g{5MFOD4D09g|3q7dM$74lR}E@8jZfEsXgQrvckpRB zoljRmXgQte{QJ(doKni~-8%4(_K9EqjEVm1+qJY@%>2uFw49LU)kRuPDt|QAazgw9 zRV}9?U*4kSWaJA9wVceSOG31r&SzJrX*sb^m)>eQo&4*Uw4M;%4JY1|r{$FLcX+j( zkbKpfmecukN3WLC$-gX0>j{0j5?0G8XE=f*rxVTZOxJQUpDr%c zayn>o{OWHlC!~2Ny0()NFJ{(y|MO}8SKGz;{OcWBPK~+-X{T7r3CXvKYQLVa9HJ6^ zfjMKed^5e4btf(GzCeNG?@nmBJfB~MujRz#PZw!9nNQbiYdIaw3#Fw8J-*}u;tKtn zJf9wa6z->_@*8vE%FUm?7qVPFycDw3|L^%fy8nls@yqxB(lLZ@imG~!z!?P> z&;QgTcbW|ZzY+0s+dBv`tzs&E0KbVz-zOB>_WpGU_*_cAvx9JB`x3tZ$lJ-&AJ?)* z^aSAhaVj!9+JT?!zz>R3H1HSGfNcNW`2D}<(avqNE0!+@gI2NoDjeNocRQ_nTLbgU0msKiQ;|!Y43zl=tT$t6}xOgz|J-Sl*`(Mnd zeE|G^T|=h2WG?i|367$29@CZjpLKyt?u-C`g7B;6!qiRb?l_{w&hz+Tdy8yo4gMl{ z)eUo@(wLCfIHJa`aC}yo!%dffzpiV{a(*=zjDwCJs0sca$LpTlakb7FoO#r>)AP7h zRCw3gb1CKDz(~qpkMRQ=Q2%3WWWZEwEQANG8d#QqzKR;TOa0&Kb2V|~jQJa(f7)mv zR6Z11g!Eg9$9H<~I)+|H4I+HAg%B{gYZ#TkD#xqoKUGnE)*yVFh0r0lY}8}$wTvu8 z`LS0rT$9iani-ih^$rVR^9?J@vcNm>_?1UL@g1XwGkivlEPJ0ozXnQynPme?~yVs>3WUI7A7KIV^V0_A9ZjirA0}WciTc(^x#?562_2c z(MrVi4!EV|Le6>%Gp2rKAyggIbHikW-(g`Z;;xYuAFSAj`mm^Ns4gW4I(Z#$n?Sy! zoh1L_@|vfPfp@pFU@9*`m|lJFSWn0gu#@CZiQ8W^6Y@vcp?)h0pX86TljL_QqVC)V z_!2wlr=}o`G1$6=UbD-wljbJHaoH_mS?tRKHw*#X~ZFSY-f#h*SJ1b&mf0n6(n2wC54 z+ltPBZMQcT<*zIiaT!g4?YDPiIRgZtQ{O0K(&tTksr+pcpX~NV_33@R< z8u&ANssDKMy!w=(t#HQNev2w^v>>cDUYw@}zRpn^-#d2cKC(LG|Kw=La*qhYlc7~& zf`K1*l;Y28T&ATdM%~knJy_mxLFn=_RKGs(T22zaXF<-aB=B{?t1jl_p&Z}ZbzL~6 z*Vqa6dnF$aXX%*stw*(%1Js)qw@!l&vs`mump73Au@s1pCr{8a)3-lj}i-dCS z2!hk7gh$^Ze1emtA9u&%b4Y%w6Xq`u^YL_!tM)BWk-qu@&wY}Q_vd&m&qfK6z=sn4 zTRuLV<27vO=i~t&3qJR?AdJ1=s#PlZ$xc%HsG2R@j0Zo1(tn?i&*J#95xd+;Kl6bH zGs{o$7jis#ZCqYg;5opvb@TD%9JjofW<>f~O}MkAu(#}-(9Pi2I!Wz&MFP1IzKX6hf^{ z%hT%+PZ1u?id|TcaUb0;dk+0%2UrRjF7G!t0{@oR--*6%Y4qOFN2hd_SJ_f<>G5I| z%}3LUOZj)Gtv|dQ_`b!VpVpQ_uhKor(0s6eamhX`)Rqf67~{-#@ro?Fou!am?CweG zZ#Ng0+UK`rJt}lI!Wr}8^;lknrEnObY!a@Felc9#~)wC(Y8JK7z`S@-&hI*Qc_R0fIW6a zCrjmT6F2PVX7GC=d~Uj>5PmgkH(iU6iWjvA7fP0!)uRMHq)_5#mNU*$n38eb-UYu` zDJi92bNajecqM{W1E0IrQdn5g z@b^eBrKBRTH6!h2OvD@XIAX={iorN zC~3rU&R7aH0!zCz1V5g~?=rH+mIUwZgLlHkW%1WrZsqso`-@~1y_Pyq%%ajI) zKh_!JTURTgU9qiI`vaeX{80Tpx;=FR^(V6sKRD4!XjvqD@KS`I<7_748=`_NLV&Lz z`6*Vy^{w+m&x2pd5y{F40P!qO=t;O{5-{jCJ^ z$@4-=0YB(0&420{O&LEB_-T?q*h=U&r2Cq4;LmdTA7*weItct_ia)|ih^g4>SL&~? z^77Aa7%(^s{7vAhF;;?O)TWNE;BSGa^fy&c*?SZI9n$|;E1~c8^JBjU|B#oz#Juv| zss5f*`V*`K_Z?0NrNF=7@sC&DIg9fDisY}c5)ACT3~7G###!ng9*_RkXe{{mz=MCV z5)9i^b!`d$Bgc~u%s2QBybcE0>)mbZ{zSF_0^{IYbr26U7?tob@;427!WhHDiZ`6SDv(iPf zk4|F~=X3(Uj?#Z?B~+E}AalYZI;U2oqC_IDG#T#mK1u*SnN zh3vaxDM|m`>|zcy24ATZ7^wCJgaaUe-dS&y$Yx!8hmlOy4V$`+{#r@_np@GClS-eg(cmDXINh4PhN( zF#g1rTFE^8t%bBR>33p*Te(X5?=`&9ENX9du9)A1Sqqu>8xE=fzND*^|L+XCU!Mtm zlyWs;s+QJ5>|Co8r2lfRQvMc>o>2O?xmZ8BKGIdU1HO7h$LFA7Oz85o(&qL$cqhz5>YtqbS!Js45gr)d_7oE`V;*m_0zR7K$7_@tUJn&D z%fp!kA1Ed?X}qd9-s4^L|`{WhmU?5X~$ zgH!aD&E*0m9=)~t##GiR)er@x3VDm$Rj0pJro zO<1m#jnH9Ut08B=&-Rq`x29#~7TeK&7JF7=9`-gu@aoke6@g#$l=OdjUYF`?z+XXl z4|f}3`p!uk8$choJv~JEKN|abMFY3+Li_Nu5oR8cYuN}HO=C=G{?yz{vcGK|%~sO9Id8wtzmo8ZmVv8=-C7{Fc3u zzvW(1`2#nMJ>jnKMkg}N1xpY>kS{G#suMyo@BZ>Ri6*a&^?o1Mebi|z1| z>c7o`A+9rlpM*S*Y#U)u#Lb1{A^!p||D_*&({>fbJHK8HSk7=8LBGlIzLb82a*}?& zKjk@NGUC@Nr_a=@ZG?Fjm(8VXmqIu`V2R7T&6b!imFvqqezFm4_Ec-I8{v;3JhH)> zotpgXVfd%ZnXuriHo}|7FHQs*puWnL5%DYEn^sE(ZcrZchc`CD{;J-Kt3m(9<(-%- ze&3OL@Qeurxr0}m+6spkpBiemG8*ta-p;yHSoduIn!2{S$Xp*m@6~&;qBAy zoaa*TMSb*GaBo|oG;3V_BzP+yDgOrdhU;tu@8F})atGN8&u$GncNBa{jyEorS}GO! zDeY5?K%xS#t<%9OM$yRu$ zrT$6(I4IP31PvPYz6y?>E8|m?%^x7 zk1+Fy@id?E!AA&HPi%!g*UG=12Hub3ds8>;rTJeV@ZjHUg-2)0j~xO&h~xVE7I&ca zVNHtv+E#e$w{;KMd$6yhpFMu(ylDS1#Mg;szq1v*t)JUp0v_or_5Xvr{P;c_`S0#) z!8~;Agpiu$#ubHrdT~6ueAS`55Pp!aA@eY{6E=*wZew=lO-z)}xKIG+E+6irzUVPaOzc1(c>m6cgMe~PMlz$sLp(q^|#U2h6Ov>2?NS*^qd5FM|`FJA*R%nIyC-XB>ni?2?qkqFI575 z*;lfU5p@n0i$q55B7Rmx%yq~FR;NFG|Z=Q6;?evbXtew4=6W*TVKUKRnd=c~+iTK&S*a=l!XS=rtA74?@zeBG3bh3xciYk_U z%}#jneVg@!XK}p2;y#vl%TBN??^24c9B$$-&5tJc$;>}?c0W^l>gzA*uZ3IIYZ`z0gU>Ov7j%lP zyw(DIHpiQ98C-Td>SvIDeWrG{7s3Vv%nt^Bz+ci&huJmnEI@jPksl9Vd%^kMWplFE zv;LBPcD?G5vH|VkvOoIg0DIy5^to$pQ+xB5_E&Z54ew|MToqu(f@|3etxwOcMf=(2 z0aE=f^li~?H{@FeV0@@=FO2Tm%!S6=;sH|nE(?1{lRlgS44HAXy^uS$_CQ*1mErg# zpWEMd1@0MOjP;qlFi>rvPx`LN<@b&oY7q-QFaY(}!(N#2_R_>`gbzY~sD1ec`-%Ix z^$E603O*;zUYI?w`I(R4TLeh;(;-x4-2&rjM1T*= z>18jxyR+e2>W@bSIEnIIZ#`RqsR3IOV9oO8+6&%m_BXhL_?rWy{{39bUolg|`~l?& zUTiPS54T!X2Kn2`)1NhPbZ18o>>mdRD)mx(VaRO@FB;#@Rg(0xs?5Vf^nt|-m9T%l z+g`Z;a)7NL@H-q|SS9foeY@*kr6Nqd-(KigCwV;S_eCX1|AE1!{N90oQwjBZ*j||K z)~`wkc)dUgUp95mWh><0C{SQ|$Lxh+zvYIZ@~xOL;l(y88sUG zM2?5AepQU{>4ZPB7mi09ergYXZlKh@-{qdJPwiuVAfEqPI0*4gfAI(czJlj}{?0ac zNk6NRAGNiEuxZPNH&nhY9M1{*=K4T4=s)l%_WT`$SC#C#Gyp!fvQ&OYlYK8}eK?^q z`j0*iLfHu`%2x+Jsj{U1mM*LJ(fBkKxN3ld;L+yJdRl)?2T$eeo%!?;;WH`zKnKD0 z?8)ypgP+aiuc#9?g8IYxz=MZ62-jCymT(8ZkjKALBX0dH@QV>Xc!YxxHSPE=WS1@D z_*=d2Do+K!g7DD}!t~7x4QM}Mb!BP%f3jvq6g`jG2t0e7gRr9J`5vUdEj<3q-J{nh zf!_u`dxC>d`e{&uYT&o?@-;3wW=0zLorF(z5ISwK>(CGUZjS43zA$nO_wy}@?m|n_sZTZdx3*6c0on)I#YunseZDWTsxA8@Ftiv2Cs4uI?SANxhr^6j*mR$ zv4Zy7EP}AUSquH&e|4Ak9~}^$>c^*%`BmyaoxtaAa1c%os{5SQ4<&-6`dzUi-XC2h za|yC%s?82U^{Ug`G=jV;LDKr`W#^UwOMo{G!t=3H4#FU-GD$Q)QuFvNKHjT%9pU4H zEHM9Z5VjSuF*ZiReS)O@sf=H&4K1C}{)4%0IKD z=l@5=Zw<hNahTA>Qw*Elzz8-+=b)k4=!Co`EvoD-8~@pFthxjsyP;yjtuW$u;J#-S+qay~|6(eOzwx|{=YYP~qBunZiU$7r8Ynpb&qk4K ziw!&&SAuN*38QuIHltm2pTmEO+kt6*u>Qw73xnZ*K#!1n$5H4~^2EnM;2ED^#IBqy z&foQE{&L?@nAI+~K}*1f{Cx0@WmShKfT#I&?juLR-+6xjj^NFB{FOI74C(xgrOKLR zKXVjbTh(```DkgCv_C(lTI&ZRFk$ggbyMZMaul}qIo#{g|FQQK;87jj`*&j`AvTae zfB=hU<3g0kF2UWcl;|cb#E4@hi@R%aD3st(C{Q#7N}&{YFD=lZ#ihvqJ$q-f8w2`< z{-5vnJ=`agyXU@V&YU^pa_54777nQ-{giF1AH0YAN&~E~c{?z-8VlJY&>Q*w;Vadi zj{ge$I}Mm1^LJo(uOGiqrwr!L4aE8BXwPY9seg0F0Qxm_V7;O&>P!RwJp*xmYQ(#{ zKhb>IW8jje4s6uLz+uZ#IX>m`8|~S8r~z;R`-yW~In;kvNV6}kNv`=|G~YzLate3oMnjp(-97APx~tU8{zqOzJK_vUtl`f zYZv6JM>w#xgAUY=2EE5nod4K&**+~6^garIv;(Vq^qN17Eq*c-*C#sLsVtPhj{{ds zbYL$sY(`Lj_atad_|N-vj{todv}B47Kg;n)9^GG1|M5KN+-VN1+|aNaUxU7g{nF%r z*WK^@yWxJF{Lgk^6$74apz+2Z+`qip@^j&!Z<7D79oWHN5+syA{^a`Ck3IiKXV7=a z{{jbg!uc0BC(!qK{O8V5O$Y@25VT~m0~@kaI<5}rO01Ke+W5y9GG+cVH2o7`V9P}|B{4JZL1H)_|#~>an5B2 zc5#1#9gVGiG#BT0+x4y9qdxNAVe=)D8s=45C(AmKi-9Lvi1Rl_7Dud>)WiClMKyyw z$EvL3o(Yq&REKZviSyrs`YssuZB>*bt4$JBL{)ZuhT{ki_*dD8>o-mIcJ8uMhW@Zk zZ-cx!Rau*giNDtXezlyKe(Ox`d_4pM(A(u^8{}N5%1*9dGQjOiMGCbHE{>R&i`X3nI&wo=G_Ji6jG|ZD$W74)4_M8E~5BB>~{F~+UmMgJ7 z*Pv2!LH12GCUJRPZY}%|uOybQUz+Xq4F%txQQH{w?{-7lM2aeZY5py~f{&!Zg6!LagV;L8w zx{n5Z2>Y2yzs>cB?xXy30shtdtFhg!Z0-?$k>mTGzMD(y6L%24`cO6I-DlJ5_27TT z_b1Qs8dKpGHUz$@G{rLKDD)pO>Q!6d6YGiNC(qpFV{T$Y!?b$Q2C{?I+0cD5QyOnR zlZoYH{_E>~I=saGC7FHMyed-Ww0~Z+0l;ne{Cs2Mcbi*-w)MgI@~o8ge;S@bxE;sW zb~XKFIQDN;@)<9vE=ZZ7EZuc6@MT!fp!oeBKKoTx9n9bQY?H_m>#&5b&}T*k;3x2rVe((2 z^Yxl%alh<`@#(C3ENooe%=w_N@%i;-6F0Vf0s1Cz#k_iK+lz*Oso_7*Pt2cPZ#4bu zIOIR~^Ac1`>aqSc+xSv_DdY3A*3aHXM527S_$On1q8^)F+aPl(@Oju|K;i$`wwdM= z5ld)(_G&%$s_vY9Q}O&8jz_oK-?9zpmB7`%*JG**heBxnbTywp_5ZrnPMQy+39{))HXQvUimKuo{m z(|XPS67*4$|DqlJtK zk=?5G^h3)K7peCrZU%6=Ez_{fgT33 zc8(0JpZou?!RPC<1^(A8K>hz;xLYj#U1uNH7c$&X=j%AR2cEK0Y^^Iiz(RM(ZnCf-J|8wKF>xX$F6D z`27BrpZ=Us9{YzDOIiqd+Z@^IZWpcw!~Y%bU$VODilLzY!u-Gbnj>p-J>zsb=x5yj z>iZVn*eWW#mDCqhe>gJdM@!cd?uGY(ssHkF`+#fIe+n?b{)Kyv%)MH>iZtE}#(1Cb zrmy`YXx^f+0mg@hGFCHTk0b53Zw7wCmsPo1CI$Caz;n%HjHP)Er~YGG1F`?uUNWKG zCd>zPG6)dzEM@HHvrA9+06u~HU+!>t2lel#fL7F(u@<$D*C2cb$Jg{8c9Gr>nFD>) z?PTo2lGcx@zqXjq5A^7gTfQmyS7Xy?Zf6-AJ$ThZ!q;#-DeLrxUZA%cSP1GKGWO;D z)3<*B|2{tdV883HYc#$;MDr89WbF5@)zehqKMa0~-=(M@s+`C8?VLdqAty%0zUv{o zMg8e&eEe)QW`ml>+cju>Jy6E3WG5R@f4LUNJ?6E3mj${mXvJ4DrZije%LLFeL$Uw< zn_1;Ymq5E4;{BJQGFBmb>vUJpe%ybDmh2VvuLD6#M#|W;L90f}K?n2k{iSDp>jXky zg`v5i8Y5%fOzk^&0N#@04<1deeFSt{;JFiIten}ai5N}`-TC~%^LVzD#*1G-e(q!$ z3z?M_NAnH6xc^NJrCVOny-ihP4-EDDj7)q^LX&*&XTcLUW;>o z1)Yre5PqoDx${?X&jKx(Cu0xT&Zsba44%{v^d3Vy4L-ePi^Fm7ubE%jAY(Q!YYip*EXQYcZh314 z6uE1N_oKJU*vX$>OgIC)tWhP6|Ijv)j12g%jX)IpWGw3b_lpUy%kdWDrd`LYi9)Cm z_LuxBW1-_^W98s)Yb37kjTu~fhd<~J@Gm(bV_%#|Jxq8fj%Q5V^ix%&Pgf&L>|c?w ztvBrc9tk|gNKF5SH)nnI73e-jD1YZYF_D+F3$t4+6ADOU} z@N|x=IzY2$-vdGWUS-dpZp1*%JF4+4?BJf`fJFOy_2!O&am3OK`$^8)Bk9vg-?G5y%h0L z89K33*8M}qfzILKORHoJrSi50^72fan0+7nhP1zSvynKz6ys%LP3gan^s{tg`_Epi zO!!Y69~wTs>Mqcyjj%pj-ifs|aP?0F|4lC6d1l@LqHn`Km>XeNdK=pkeUIb*@y=st zE&QPo&Nryy#C*S~wRI8j*IfV5?h(^lftFxWF}J!C-mlC&O}L@47{5X7%=WsL$NmQ6 zv4X6Y6RY2I*5oK{XOwqo7;-yl3|6A@p1^6X8jUn-km z{vyhW-Fqf$M0gdBhxe`MGYAu$bxmRNHOQHLD?bqz0lGPtuLzyF?lR~$;LjQ2%xb>7xhM?fxvRODKD7dC zO|b?YWsd!e!=0I*?b9!&fIrb(EPuk&FP}b#AyUj8@cxK1d$rVO!A9T{xqLV0xf>|| zP9y!NII|zSHyA$&^i0rXKUJs8>!|$B0j-$s%<9an?`R19=OH}8y)t8V625})1`(EEA(2Zt_pqi+KrGp{SCHaN49X$PB7`FUn8)=%mu zZkkW=zD9bew<3KTtvC`4{4JLsYu=;95YUpcWrV!#&Mace(Tzc%P0Nb*Yt_1KY#3;Z zvhcs#nXS2CD3 z9+*PqWf9_|uH(Y2s`PC``hHVZwBLX&7PY5Azm;XH2r8Kii|cn;S{?X)$U`&)Z=;8; z$eurgmbkgF!@{bAa?rnU`&b!`e$yQEQNlf4Sk{?QHiVzx_>;Fk&uW44d#0?rpsMe} zMwbgQy8_(ULY&{Uc{;NLl`m@xv`?WfY?9Tag@iMXhyCgEnD#?g0j&;mVY^InTQ>n- z$3jfMX9go5JOC}TK>wtv3wvWeFftbL@w5=&bnvDj$=hay^CND%Fz?B!r?Nrsv=Z%ee%l6*Zf4m3YUL&5-E(2JesvvB<>@K- z$vz&x%^E!r`SYcfRLFVi!p!F0h>yVYO4cI2D7sqo3cKjr8Z*z-t}ku^4}oC*0K3TP=&fO_3rRos=xoT5!0{g*9|&7HAj76 z<0s^GaAo6HHrpHod$}@k|9|a=byocXI*?fizeTvRHp|LZUJd_Em{>k-2K@b#H|RE4 zR8tIhWtlNIVhL}{@ks_f*ZNdJea*%Sd81s}{VL0cQvLE96XQ2%a@S?cT=5-1W-H0N z=*lcMdR;sO{AD>2Z?Syo;Aqfq%3*(4bvHIH@8@r&(8r*>7{1iJ{W}$K^YXxJxv{1- z7G1CdZH-O&WS@EKPi-FxepVj+hdOR7TyPsF!*hr7qWwBQoc->1;ML1p3KCa0_QlCF zecge(aJ=rbn)Z}F?w}R*-I#IKs-;~)dvUy+EYGz$XdloLKR0&j*y^0wp#95>`j@+D z5=P^#Ai@LP*rLjo=~TW#xqrtKPLn9VG$cIOjs3df@J}wF8*{wYtm~%zKsSRtiQJ9d zbsHK-?R6`TcWrnjCJl63;EFIeW_hId4>6!Sa$K>jp{Bm;0y?*e8~bBNlUyb6?p(ja z2P@`M{`nHPq=g%6|DvuR**~JZm_HoN|FG@}Iu^LPHNx*`-UZzqLB-{-RF57_?NdDA z?cCVF?`oTo{3I@ayXAub%Fn4Jzmpp?Ir;5i8dqnO7xTa8@ysptfe!|*=<3E+``sK- z4|Fz{-+XeD@l?KsQT%$qeqHT7kX?jP98Zj}HfRBQENJzYZmiOoX$vU+6FA;}(47mb zKu<>gP)E42HE$|>P4=I`@r?O>(#L?F4f*OAH}+(4#WN&-9>;4fYg%;!=!Nhv>Fvhi z&o=v-@NYQ2wuRiC+KX@DUlQ-es@k+2K=EJ2?brKQ_39HrZy^1X-PmtuZUj;O+syr6 zs`R7=^&hr^mZZ6{yvD!Wr1oSx_$mMP_$&Pn8V~Fye2N=8QhVl5 z3Akdq8#|rqP?z%OLFh~VB|koV&=mJ0z;kE0G1IXVzK;NX95mre(<2T><9>?l^R*j$ z8aD2B7U=U_{;>ALnv*`4N&W&i7JaZ~;&{;4xO@}yfB-e<8;GxZu^XEtJJ28#^c^1m zw2RB<$U#4ZfAw-V)}Yyy?h`;i;r@g7SKNLc^h@Li$x1gi&&MBz>Sp~Ran;W~; z-|owvz^g$X#lLFuq`g#r>ewRvcA|dyWX&Y;L;RY>D~&K-vK7bQyDLGwGLxIqC#;3v3Ab`*!e4bN4Fi7DR@@&_Db@Z* z>Q6ieF0pfGb%ls@st;ZvK2TE#NXPhVolU6xSOU+j2KnW8WVA#0Hhh1;^&$1vlKm?aUeldeu=5OZjeVgjnFoc)e(mlU^ZN~L?3_syb^z6e3qAls)33zS?clIRW?Ft{zT|txmW*vL}H}!XVQ23qQ+5Le#&{IKsz~z6n zH|49&pd-nDH-sOxbxwQGG2H*}BNEbYf{wGp`s)|&?4)haDQiF{^YE+4B%vzM>5!+6 zaAyx1EU}^T(Vxd}>D`I*)u4xfKQG3e`8Zm-)4K=5Ic_vu_VgO?v33}r^mb?62R$nv z3497@(%(dKIb#y;v&sKZclK_+>R2D(^Es}{Y;l0>`wjG!jB;nY9=Dia3jA9xKlz2S z7Ui!s6u+_V`T2jnotXb$ui5>A%I7}d>M8DQ-<8k_dq5xH@*55LYDg>4M}RA4==>k& z{?ESXdaI`~>PI{5Z<^=MLbfJPuLXYd3ZnhlqFY-Ope-w)|GCVaC3?nGSOnU-f|&kG zr9G6BkYDU7SYv+Koqg5R#!e2pb_KEgWk24a#L)#paD@;dXQMkyYBliJ+VDS+%YRTK zr-cIX{i;Gm>>ok?`+SvX0qy*MEMNbl{MFI=$AQmqmk4a>wfp~XK;7DXPmf>UoXY>t2Gou{mfqV( z_5DGtmr?z2y5W%5!*M^1^)iKr2kSp>b8W(pbKGTW*No1ne@_`$3c21M?DeBAJ3N8^ z#_=;R=Jq}U`VXw^D_R^k5s;4o#r`!dSk(bN8nGyA7Zxfj@Vu2b*i-@moCT8Qg!`rq#B(|G43*Dw0iaJQMD&(ZqRw;pVm&(a0{ zpy@nevhUmJrc=j2zpI8;f@GBk`?JD;?G(Rz+<$Jz?sW#B{d;7n#`!VOZ`guUWdBsY zJ}_p9r(t;qtX~<0No3nR*pL~n73ILU8;kuvhaVe9)BfY##@<5S5fApLy2qvd2=9@x zxW3`MEbvq;_$3%rsLyz?RV&JCa03$&-?Xc>5zUV<6DvV+$%ED3HzA1TC#v)Hfkl>v zCe;6MBLCMt*vKvZ0fakqd{*TX7t_$5`==GZE+if@)r}Dr1BB zZIcO@U-Mv%PafWt4g7(L*grVY_f}K`v`0@(T!g$g9?YRvv?2AUYm^b=cd~sjqyA?d z&}w5(w#=*Bx744JaXi=AuHIoe`ln?~4Dw7pS?W8Fn6bdU`TW1h#^Yzd0^Pt2`Mb9# z>;1z$Yj4nUzJ74}`u4+>(Z2~Z^Ad9UdNK#cRs*O%l@5MNzvFACq=%s49AMT@l9S@e zd~L@xyN%~}`2OMH%Zzr=`2Q)*Pp|i6*V9ZqmxF$8F81&0V7W6A^jpF=d9sSZ5l&vP zpMd#ZlE1$}=;KDXTcXpbKIzG_2hBb~xE05pJ$sF#cTua9#roPggnvQE*aH6AWkvhu zRWv)(2Dn?ptdf+aaJQ@cC!=U5BnN20ab9j?N|TfJCbV8EL( zpilAfXXxr#Kka}%mu>BY8oRyn-;aKTI*s%{v~BRoTDU)ge8rDm%(d0cto@*$*oyj( zs8jFccj#Zevu!Tq{p7{`Pdkir1l|n&ZSw!prQ`Gr3}9Q@Ju}ET;>C`PYFVDf0}6W) zZx`B4(T~!{-WBto-YhS#{^n)C`|KCx*E*_UZIv!P)(`NQm2ksI6Z zcZ9d*cz^RF6KTBJ*%9aSg!r)Qle%XS9>MW#y&fNG54tz}tHXTQwL4FT5w7BR)n0Sn ztVV;^&vB?Euc;5~u_f!wOUQdH6W=dz{c*w=m`5;iLizjJhrMwrvygC8ClPNH5|H#7 z_Nn58^XC@(u)yP9T`2whoW%4SF!EV%%1^;gs9#q2u+5uoej5zBA;;YorUi8Z-3;;- zt9@9`8y^G0TX4LpNw@W55nekdw7=`&|Lx66Uch@fiT2ys!zZeNxvdM=%a(MKN z`U5fie8kM4zJDq}$CLc6J}gSzeGK7=9Dn`&xaW%@Kf}oe-zV^4^EU*(Y6E6IWm=ffJTk-T|9{LW(i`)ujdeY8F} z1?LIoz4bx=X@-Fl@P*Ez{#SipxUWO~u*A70_VoC&*ztESE&;yJSxkSAWg~a3M|nQ% zTtUbw>x=mv`wL;fuRDwS^*&=>h0g!I>0DWmF<-WE!5j}dze;cs+o#UY8@V?GY3Ty} z?S0wxg=N|kZq4yAH=mhcsX}mYu@_`MzAUa~zXfP6h59a{em0|ikIMqTANW-PzO3U5 z|JTESH*yifzuEiLrTM6znz?)_Y~V}K z&!AuAE?+jFSME8ge~diD^bhH0yVDc>D+`Y%f^4rZ+iBPQ{tDn7JjD2KbNbyZ2l=O` z2hMjp-I0{)dA0c@DTe)1GZU2Ve6Z)8|TsG zob+Yi1+DyQ8~A_msH^dBb#DK6&k+7Yta{|V^ksc6O!)H!_^WwV*5D&wZmCZ7fxl-( zA;-XvU1<37HQA@Fr)a;LEiZ3~2HnvU<-d#{vv7ZLhuWWR{Cqjt-03}ULeX$f(Ax=*z+BZUaLTl=Ke3ej{PGN^d#Vlihk_s&d9($ zpr?3>_KE6Uvn-ukl55fMKUZVbvRvy1^hkeyv zcz>#gADiuUA|Vv?crUSj?NMWA;}&TDrg}9HRK5I|QOfC9%Fn-giT3~H;Bu?x4ElSG z5b~mNNZ9A=zt#eU$NzTFv|fkT);)LA_{q3;^`C~PI|8vy(yARNP6TZWyA;}9r*8JGRV8SMFM10$qvke=I-q_b|5#81EW=EvV}Hvw;E2M) zLzI^Qp`xHV>(8Pt*PWRRydC!+_h$bL1;XzPJm<1MyW{-#Unp)uJmgXMo!Xho!*Ndp zExGQ`CiV54TN!jR$L)r9|E?YA6bkUr`=L~e0g*1)_UWxU^^ns88T5-#t#q7OU ztqkgeEWGVR@*n2Z2-UQIIPW0uo-H|^n zM*v^V@%pjpLumZ65%Sfq{8@`YyCn}nZ{qRavM$go4)iVx|D8X3n9yGC3VIK>@A7ix z)>HpsFX09OEU#|=05{P4Io`m$(d!7%KZ8~n2e728(>3#zzX)ReY1q)uT@CyM?5Q#f zV2itNde)2YjyIV4MG|SK;zc`M>`2Au}o$ZK?QoO%e^s; z0gMsE_O1KEhrPPs`7C_@QZe##`u|@|`_FoRwg8p?MZW~T)UN-b85D?iuS(_rq^A8x zQ;grA&;Rg!H;Jjd5O?Blo$9g2R~UntoTz`|-j&-@LznvY*^3t_!zJ!LfHD{=#v zakE2bVnL7R{_i}9t4HgZQ%L^402XC5J%;e993S0agW*aH*k=iAjbuN69-qK8pRdmr zDAod0{>RswrPS~L6TKM~fdn&bH2?Rx|6i=>K0o|yf&cRsDBS*6LX4(1Q*_^l^<9b3 z1?9iD;8nf+%cFSSmCuhGWaX}=^|c6aD3Su%ALAYB5+2F%duIj>G^mL4L4?~vPHG@K z?3~w}){i^kydRohtdo4xzCG?eB=A2hkkz{-T~GKI98Vt5t#V83?}(Jt74k*~vPG9$ z+@bx7qc|SB{HKIw@IQh4PY7h8ucy`}d?LpajeqOxjQVT3WVDbsIgmYdY&4}N_#JRw z4u${o+aU+K;$97#5Y%4>vMcQ}+z7AE@#HQ>(>p<44FfYlF+Y%v{IU9=NZ?L1Z2GoOFB9x#NB`Fmj|XwAQHPFFddEiltv?H$7tJpk570YP*cKzaPR@up zIMD31%5)MHK z@4|=tI>-IDA>-$pyc&9J!sLT(_dLKcV47<4UlLF%J@?jWL zz&(OJxd_e#AH`fRpes3J$S=rWh&fxNs{|w7a6@229lxoZS`H~#vgJ6?N$>JPI+OE( zt;9=CH>ngyAJ7l+(s{WIUUDdVMDLJbUmfypzCBIr zYiy%opnnn^qK2rD&6Xptk$VAI`j=EJ=Heq$Q9t^BI81b=`TFSlD*9X680iAHy86f2 zAKPmMazl&QQ(9Cwo@_K1U9Cd;iy9a8Lho#nb10}k*df1=4Dub0v?Ui(45pJ#mK3jh z$jjuu$yhY|Aik-z)P-aKEDV{d3h1@tS&Z9pgTFLV?|7BDEQFnXarE>X<=Qw z69i|9`hi~s7_|?zcO#S)a{UYBPeLJ1Ctu4h_e6dm*We@5mtHa=N1IJW{k5WszlZst zoq($ioizMXxt7sJieK6K`4sf(nxdOmK!2V6z(SW86RBYO2DT*EkLQO%I%%t4(U%~| z_n@qhV_ZJWY(ww4X!DOYqzH`4^mShdxb$ZPPG+=%TeW;qLdp5D8ShyfC*n9uaWCkB)`dr>!fO9 z0bP(*6N^CE(b;1!~Hp&*cu%dZOr%rz4vA-4Not$G4{%n2z{NI+S z3&~AE`WkAU%3%(w&jpE%fndY31$j-i1<;z3Y=dmUpg!^$++WyCEata-Q3CwHi~?*a z$1m~v5&4bW`uy~zw335YYEy&rc)*Vh(vT9N7UYua$oZv(;*rh$Xl_U`ypE-DR^T(h zL#aMq;5X38_#P|zF68pizoGbAm933<8g+6MJdD?~el-;*PoG| zHUI9RZ6r5|=Lhlw-eNAwZ#eI+rsxi6<7*>iqxYxbmv9-2Q4!f>o8!xU**M>n&NxNi zR!@F0!t)=gk=Mw*g#F1F+DppymuntqR5yj$h1bZ>VE2kc_1&4Yr^#@NAcxp4}L0~{1SulLE4hLiS*Uf4|tr7^j!q&$?@s|Wv4~x?BSw{ zRJeh(BKJ@)y$F;RNUz%TNE7J?HSvxT+|BpuPwe6)hwkKha{X<}K>@))%3s?|vLSkri#KiC-2i2g+%?z~(Gf;VIbQh2O*$EEFF9M@{!+0jdKu*# zHr4`rMBuKK7+;-$YzUf-yhF|eW2yICQjSUghV9AWGm!j}Ywpql_BR44+TQ_f3pp=c z7STeu7rn~V!gvqv&l2@7=qD9%CD#-3$)384>O{IU$)x#3|N0~EldDuf9}$*{w*vn+ zp{*u2Aiuw-g^S}xUk`ONxvzPC5V61tNs|K9XM;p6GG8hL?SIphbeJ&llgrC=b(+3YzX zn1h$x6zIeCms2s9QvVrxK!5nj*WYwF;!5sVA^U@06JIe@P0@uvypIFj$z|p1uX&sw z!+cKuLyEjZ?#}!3PeY9q{5x1jbd{kK>CaPujBcds9cuK~gkX;Lg?BSa9wJBg9oCiZ^!r(oiLiW*kqJQ}@7oQwMT**DxkFQjtszmEY$}1ld zxgTjou99B*q8p}3PN~)d_0K_2`p-aFAy=&=eRO_=Z2UfoxRM)PpuF&$l&_J_Qym%B zs^MyAvY_@k7z>7%A8Tjul4IcKQnj9nxl1(jLLNX$ninEZ#i&(`tpEIxcKu&F|BtSo zF#g=q3a61FB!Zo0{$Hyf6>G{TH*5C4MeTJ3a7g?co zSYWHUZQkH{IRo+iMU$|rn)81u;=D3RS_77AVExCBz$^3h`#ZDtH&lSGh5Z8RtOji4 zWWSpGkWh6D#PeOZ{Prf4a38|IYQR)EZ4ZqB?Z>}gbbrn9z%bAuw0~e|1D5c^s`G@0 za(qkgVbf^-wTXe1kTbFY^K5l`Zx`U5xPISyMQTAIRNj&^*<$rQ}Mmyoaqf%N2zPm7`W8>9s$0%_m{dh zuNfWKGdU$GE+sNS8mo#|rb->N{C#CT6I9VDNvTP(Y0}h~zNtMkRf#c4nW;T9{MO0+VyXIiQM@LMOhbt724ZIlQ8rAb{obP7w={7;v*x! z%;?^cDdF(agJ>08vcJ?dt$(sIMinn0;XawJVqAL0#K$K@suJB0#ZM|eMj4eJmoGgj zs?R5tu2nuOGFkO+sjiXzuPGj#lo*{5llreIua*BVMIc_4*jJhI?^$0b|5HbRm(iZO z5PDPAe1C=b-fE<0YFdgaF|M>yR1l+#Oen3Gq)#J8m6TdqO|s&Xq7&0g9iixWRe~z5 z)Y|mVh>TBlD|K2&r=-OwV?TkQ)X4ZxpiNSYGBPnTzJIDJwWnAqMkXdErA4NpX(A=V z!!x48Bh!#UqterqseysLmGQ~Slmd@Zl*!7-w8*GE2I0C$kZ`C8f|!Li8xejn3SFvQ!)ee z`~XLavO{EI-20L;*W7FyM)$W&!%BTOwT3VCV8 z!2F-0<048aePKjq5Q|W0JrGA^N=jt^@I+;1c)T(( z4pp=m<;L0?Has~krL+noaX&@w&q`1xB&GB(tu~0O7)kWrdZ#31q8ck@f@Gzqsp3^> zrPk~di9yvDn;BEuNJVQVNJ=Y3BZRVQW-KPTV$k{Z_M&z}k5u{AFYv^-zN!$9$dHP@ zwzn6OE)xDl0$#b6d%B^D|`0Ec#iskobJx@8N+Jiq|dQbBP@BNr`bE@LMuVcsS(x z*8hP2_i|}cD?|uygh|0vJ}@g}ftaLpjQ@)dgmjZ?8A_RHv(i#LF*r)VAW4%wK%y(t z26NkbWZRS=4;K%vjD`ayP-49z9s?`HATlv6i1JE7o^Xvf&yVm{fQP(!7M0}bQjjYw zQY-{P1@sEfe_W8ec`BuvMrDnr`bvfCgL>IjG=)BxpR?Y}RkUmrl~l0U6~*&I(k}o- z+1`)l3(*yXq9WdhCkiW>8`Fg8$`9#R98*bZ7R&q3!snuk^+a_B*|3Nq!<#D8!ZGI= zml#x}TieYVTcsF2ojHpE^Hq5-mtJDMPsaP%3f5uolk-7N{fe#_K?Ul# zV(Pd6Fy$B}+E-qz!^4si)3Dl%1qkY6dhkAH^E50arX>}8sAI(pV^)98 zs(VTTJZa!Xb0GyJXrHPQlhf0}Ra)Vg1{b-L($k6uuo9mcnG#csmnc0pbYhg&Qd=-X@7SzHV`9F;CG70MF5m&~G9 z8cX#39-e}QutW(3*)$VlR5d^aTt^)^5P**BkJ>^h=eD_hNI-h@u`oL^hBCqDZrGWOhMI{ zss9X1gGC=|#Bi=s4w0xorI|hr57%_9G)sAjSm+hBUf%jVC$r=r(3xPAn-tK0_Ie zA0%J=m61kwv9aldOroP&ajS?}_sEn)o~Oe*!FMBNYIKS!8RfUs=GW|~;wm(v-Bryn z&)z9A4%3vHu*GO_253bMWRR{h6XC!>70(}9IyN#|SwI5H7ksM{l0{L`$a&Ej`ZGZM ziFSI>g(?vjT|ip6V0~PKi)^bmgA`4)er+H=DA*i`&k73WZI}iMkLsTonNU!SsJ=$B zo(`qV!>RpK)07FHro2a^9#1UwBCke>b{0>SDyl})B{3@MwS+4%;S)svq?*hE_UOPs z`p@l$pXh+0?xwAeymIBwsOr&rA|9lR80&;KMP zbh?)iNbkth-eNCQmw$Np>4}jk{ljC^6E!{Q!b~pt1zVSXMTK#Te}qKNS)ABUS$pSeCJ$7(}EuFF?YqmZ7$BK`iX`;W7X zHsBJYsq291$^Kx*`3GW)%RV3BUBBVc_G{jo>xyejKhk4K?WWfIN2vS0&_BxihjjSI zE%*C0`VWK^)lVoLVtVIM`2kBYIjCDK-=R7|w3qPD5YU-c}ol~d~U0i4%SC2(m1DoI4a zJXT^zh1d!P7~X_tqp=n$wgY;T!rF#H+|ttld#*F|H*lby&2IooVBsythuAb3LpN!X zKl>te`lmkm^vp+k6zAjhn2WVV;T%*fQ$Z8!@@JtuA;z?rR{Ooxt~MbGgm8KMX^jP|!^-Jv97SV=SMG1?K zOik6TeF49Dh#+J#nz3gBMeAHaPyp?9Kp1e()J z78E9SAtKE%zfMa|`Pvme|AWqtuntwX@W){uI5I+l<4lBMdHou8!d)T}&&RlartaTO zK%0P8@5lKPV&sd7hwuCK^r3hbwqa2*{_mIKRsW-;5Ldy~wt_bOkj*`cT2U`W3t0Cb zN5RMA1Il@R0QY-8?)?G(^*@kMUW6CULq%ih=_~9n;ozHP{EQ?zOIiP-Go9(8bFb*4 zbDHT4AUZd>@Rfw~kU~QWKNV>?&U3j8e{_Bvo%u{>Sg%#!e5po|=`HfCankwy2^oDQ z&Pkf+se4AhHq!w(g|0e!&*<#xS~$GM29D0K)?N$r&h(=*L+Pwh?ez|N&_(A`)71)R zl=<1=oFz^V(;SH;V)nJgJN@sEIMGFC*2O_rI`g{lg)&;?qH_l0^}^RO?5rW4FRZ2M zEGjDhDNby2l-~LOL{EerCBiqF@Bh@M!+db%!47oxwf2gY!WKB2iY_{*Hp5l?ecS+(w5Hit^m8xnbLPcMU2i1rOSfbiq7xWzaqeI zj3cn0fn_{+@E=55z@#9j3#Q za1B6O7I)FPy>ynID{Qz#E(mFj#52i>HxcKK{{WgUI%(-0XOJ{Mq@_1-*I%l1(Xp}=b>y@r^yqwS( z?sU-^;M&U<`Oq6-WVQeasIqq>r=ebx%c{46wgO=9zUI-T+-DD z;Z#KaqH{m#x{drsXWF+xoat;pI?rAS+vg!&>1?vXm$v=amjBdx<~E)mb~TC&EwY8ZZ3mski2X%Jig zU6^kM`O?i&XT11){B86__rMY zIojzhrSG@E6>oI-3XTu(3pKU6C>#78O$vIt`tCc86y#2zH0ne-e@~)jS#+XF!LF`&~7N?h2dmwunD`%eSe$M zwxQx-iqT-mmNDn>D$T3LdaDFv+c1*JYu0=gpruO9tkIvq<>%X-!zyp zuiqyV9?$XS9kau?AfQa6DuSX_F!M5s?luwlRLG<7J*N&I*$?*xM(E#n2xgm4`1sUB zcuPSOZf?`Xo2u9qICf9nC77+*duI_$C9EaK+tte%mvBzVCML|(yybSpF3y@|GayjxYoD_z`uG=Fk4aG_!!}V9CtfAvBqZ9 zAB{}h1lj&zX7BaOmAcR^#l%kI-*{(9h?!30@}395JA-} zgw3k^W@2OL_fr{B|1|-BE>OY$G5F7o31P2V*Yzd*IL8ePdi**U?cv2TUP4~q5cbuh zJ+kh=EloxL;k*C(`zZWZG&K_>86j-$yYg4kK}&I#H`!;(ta@!{;9lDl`t=WC$JbUp zL3kaG4_@PNW(OE$rWFOn;1CvHyVEHtaJi}YeaI;nR@GPtx*_-#>JYYUQ^sDxn{d2i z&*6VA0^Q6M%`fTO6KzeK3OS=f*aWNQ7K4G$G!^r|^+V^K zf#?s+G0hTGlS5eZ4lb8ckY3EJibnr!L)ksb-!5j*e`N@3Jx*yuxGTr22cI8A`Ma4J z>YwjISpUAwraHi0oy;6G{#8oW*IqL#jr?yDJ+1A~J{&hw2sy_? z^2WxpI zkpCOTvma9ai3hFj6Ur_wt-PJO;mHgy@k6MBr3H@@@LYecV&EbTP;&?#cdBd%t-#Cl%f+Q=H zZMydO6yXav{+H8*%X>gCfqeDAQ1&S5_MT~=SMd04|EaRF59qa!FPRp~p4T0=i12kB zKfh$ol|LbWvqeQAcV;Nt|M2e$-GLwG@~hq$T5me&W1tmtLz(Sm-%cJ#pHmiM{h6?7 z?4?z}uR@+=LnwP#e(q#+X@wiyK4(@s4eSN_PqP1}Q08C%k|*JL9Iy5Fpj!zD|E@&^ zLA^!i-@sC|@AR-c`^mpC4mDM8*ZDW$c=(Rt54*y@nWe3u-la>ws+MB?ac|V4-n!Q&XCVO=ys6zVp<+#=NenY5zOeFnIgtE)*%1gqNI9}^+dC5DJg%r!iLf+|6_P5vT+uML| zu@vk7MYR@>A^*F`|FuxI=){bzgzx6~?);z`!rxP4?qc6Q;?-wbc2SL81i=4H3`1MG_2Xp+g zUFCr%kss976$C|!oZY=u;Z_^qvpC-QeD&t!e=g~lA!qkxmo^YSkK-rqH87y>7ca7I zC8!3-8ANF=8XJ=Xgv!$W;<<=Jk`Bn{`j?iM=HSR_c!y5!=i2a)WSONtr|yhwn$sbt z&pWSi@w_xYNKV6Ruq2}V^h1*4)r#k(IRU&89N=4v}#d2FU@<9)A076{wOKy zkYqVk3VN3|ZuI>)a{6+=VtS1DspX~b%#qXZ-tU^4((#a_IiIJ{`q1*y_vpxJc)5LR zW@@>_yOx*6_~bOaqk0aFo_a_U>{2{0%{`FQmunFq@)jQdgH4#QuIIO-kv}CuJiFt|LWOtwtCFD z+SFedgYXDX{v!0pGVniHC@191L-^iqKPd5h2~fgcFCDk#2=2?kuU;f)Er092sSW7W zJp8B|9XGZDy`JPRm9wpXZOb6}8@c?dQMP+efZhf=_ggs&Ix%K>ThM#Bf0yPLyT(-! z@O9Jyf^3zX(Ofb)8Uuaflhjkb^{C`K{HBZQCAv7N`IaEffosx&=gDt=7J0P)wP{S> z9wevFJGg{0M00B7h&O6ZqDBYLvRaAaT`QO71j%XS@_e>uQ}Mj?y+d;PIz*9?^)9Vk znj0pk&wB?t>0er2`hFrgecndMWBQktm*(HdX?S_re4D7xsVi?0cucO4C_E{8(YG7P z>FZ#Px<&ue>OkLkB&XpG+O(%l>>tZC*2-!fX3_9AtAR;L-yz}}l z(;ZV`^LT?-Le8v)EWrPv{aoO&eEw=omELk{CRCtvw>M-Do3#FZF9MD?6vxjI=dSGB zfU>1FR0?^y4cXp(<*UTQm^U#WMEZ?9HT-@bHk$U|v+DTVhIrnVmrplO)2s=gI|wF%?4+D+m;SxO6?8X_-%Xi# z@F&n;pghXX$n(pelDD5rQhPRehJK?;XfLSF%h|Put8J-%`GNc26l3>0ji+{kR{teu zzeHyK)eQ6=j<5fHgmNLu`(Av{L-knBDm`(39S!`HwtsP4dAD8^#sk7=Bh@oGo9Q?> zY8dbcW3hj6YTu2{k3lOjUzpQE!Or%$_gxy~CGhz}$)$GJ&I3<3HW5^96)dIe4nGC( zfgH~m6d5)b<$IX1i;&k*!ED)#L)5^pGZy-n%RIn#^jZ@!&-p29T zr{ae#2fYXSs8bXy?%I@PXW)Oou~@(TaOIB0NZ?1|U!AF7EnIG#7zz9Y$CJmJq@4wR z3Gx(!6s+Zz=aLh^f9H6+`El>a|2+y{tzZ_Xx*s?W{4b6>W%O9L1o$gsjL$|WSkRb@ z6){yLyybY=T5pei0o)XWO38QybIyp!Bix+NFJ`t_WRU~h)&$>YnWA8=)wc4Az$=-E z^8+n9+;t-VwaNc%1v}u>Y7yaeIqurb$MH09Pt13!7ARP^#g>7-!2M0c`m>Fdu$cTe zg8$ra6ioHxLNMV?I38^08g~)>mkuUh2(rBjRzJdL_FM3;;qpf)m$VrKdMo@Zjwx90 z6MsJc8}ttxpPqMh0pa_BtIt6G3`_Hqpbzl**BuYLR0_ie_IeNn(qc`za2<) z;co*L{`Q~#xBZA;|J!{;>wlY%X#H>R5ncG(dfIR2QTab>^KE}^`wuet_|F#y>r}uxoM0+~5dqRpk4o|_Skd!gX68e~AtawzZnWk@ z0H0bYw!6~t_MccRHYa~-ky!;!@%!}p(#g-CSgQ8$`cEvD9~AtFrE0%n^NGc3k1+ql zVl_LdaiYN|7OOq@=Tpn2Px5F^v;M^TqV)3b5qx67n&b9AvCJ&-c%V-#HCl5n;3rQo zSQei(`P91Rf0^kM3#Oy_Ke0%?V~{_wWW3Hn-y$Qa+VMa2W}XdM+1IjrnKo05qn6Js z_j?A-p}NyqNn%r?`3xjlf4omXKBMV{he9O2e<<>%C-zND%1k6L`Oi}DX-JI>jdy%n z4PA)%v`BbRB`0Y9x#O!4I5*AR&8=r~Utl9XJr-~k{VUCvX0&GcmxJLi@fMD8(YWAA zX`;hlRQ%V&(R4NbWt(X~6Zdatf&4c3UyhIVLv#One023)@iEet|0d(_b)-6g<}aex zxzovERMoq+ZWLh7lbzfS~ zrFB|bf1Qr-cR~ie&qg-12c~aBjdA$DaNJkIAsFFZ_>f=cxc@d}{CtyFLyt|Ee6a1F z2W7FwNY^aLAa@J$slG65{XjVVI|cdjy+u5u6D=in(4uS8~RXUy#2L zbGAs+`Nz>Ye8Q#rLDQm|ypZ75shUtUOSaz3z?c**G|l_I;*5Ao7@q4#LW%>+Ni zx44~R{@O`m9AH50t$Apx7d4+ox~E2iAGJ7SYk;uCef%#>@gBcEU~x$IlHr$ zg&sPEh z)817=>(|WRv#?9({+jk(n_-*?)IgY|`0AY%zissRl_nQU<(afEpZ4Z2$q{}jDU5dT zLyn1_Sg%g($<@$VP_y4>x|)(6>6;+LxoIZaLc8A@w7L7iWr+&xsf6Y zwovU%e75O{vPS6kkMia`HrtjG3we+H4dhp^*UT^4&rgVa|?coB_8n86uZAqbdeBERD)rnlpaM=4+HS!Y9W3rL=d3UA>LHu;U0fHpmmowCd1H z=p^jxbHyV~xRD65&=GMZlz=@mJk+b@IetSr19LlgcOhiq{f6ROqG%1o)1q@7=2++x zKCqh0k0(#BN-G>}X6;~AZf_a00OT#fc22# zC!=1clT*JW7Jsrch1T#W>v$ylY0l7RhxodYNAzefONV~MJRO{RosVRnBrtmEFBY8V zGMhcHt_-LG3uGU!+iGJ}A^pIg-0OzmE&fURr9jAzrJwSj2Z%aQyn3Gcv;C4hkk1*Q zwMf%Nc_Rz@Y+I^dRGxFLQ<7BJury_Lwod5y5G|uknl*O+r{!43B)nAV{O3>gIw!S# zJ=H@PXZj=mv_iG|$2urUob!)b4O7-hbvM@EoR(!SyFAcYEd&pgH&SFv@fBqYELDDC zWN+wP4#HKGXR43nC=KOj1;Xr%<#XWhyD&+pVgJWEEXJHkMtLB`S7Na88b;#P>$GGa zWgD;ht6s-N_HAqt0A{8a_7Q%(+RCv&*mAD(BKxw4{@RmR37*oU=2!r3am+hSE z=BPY7lOE)yo~2>4BJtGl7Ne(-6%@ zFH}C^k$N4V5+1o!>!ct|be8hfnH-Q&uk#b}bte0I8lNK^h%amz<7<_B9Uz2~(Ubo= z`boZKmyg`*1jz=BF@{E);)i-2VRrasN2?sb;31Qv59sWH~- zb(q=uv-RctrIY5I9q~{-Z-?PMYm70)I$>EItfb^YSazXza%|`rGC0Ec8NOisUu0BB z!TLYCj!V9-Rr=wvM#SV=ks6Y0CTh?GV_l) zz&D-KQ|}d2-VyY9ctkH#^rocVODNedn4=S^C8u7&99^D;$M}v~Fh}=_^bwE$|29YW zrgL2Cy|7}AOUirwE9Ufa@0HCnb&N9_Z$3x&rgMe`b96Md_3H6_!5kfxP|;JWC&NU+ z{hyeln~ZQw0j7%ZsDq{6De_-7h|p~^w61SXMaG_Df{>!C2S$j!05t2HdruG^v1LGG z1jrh6&r{o{m&$KxG_u?|homayZZ}U`GU8$q>u{=Q-)HylZFKJ7xq>};DbF(ajK&$9 zfMjai`HRkk8yqHhLBuq+G*wD*ri}-8CfZJN!I@efVzS~ZJP!qwS@qXBOG>dz=cyBD zO~#xO@>yLwia;3*>FteAZK5QwcDFGX07yoJ_uJiq7eom!tsN#v&6+rm?Ylk{gKVRO z;f@#L1W4xLo?Da-EwIKxZ4|wLLxKr$k3-Hc(s=^Aj z&Fnm`=Y#VW0m%rxb(M?~j}^ULzrZ?jKr$k3>8k}Vh+_A~J-kZ;l3Cj82E}c5AHfTv z*u8)s1mgE!|2mq=WXhy$yL68S)d?~WZ_1FEBhzk@-VMhk&iIG)kl8*@hQtWF-P%c< z@sDD6<$0_}2PC7^pud%-U?1^2R{L$UihXU!q% zlA-+#1a*1HeU_hMH_{U8xd6$oI8Si0l8-{4Vwd)H5G1=p8W!d_lk*F>RU5@F?H3_P zc18Q(lB+FI?7q%f;!@EWC zRH#tc0YBqBVL+|d3+v+4MhU~T&*0KSrOvup1k@ceVcNQ*i!=l(Gfqe}oi#{|hnhJ0E4!9BJGd%}Jd z9nR{SFpC zhCYXISH7Wp$IxET|CLTYe{cNbI{l~#Jw*EZx$@p4%%gfjepJYN^{!Eh&L2LhE6)tE zuKZ)}8@?I*EfKz@tNKpw2=_WOxKDNEhxT_1{}6HuGdcV_$29wT6ZQm_HJi>1qg;8O zD=rGo|0p>BBhe`$J~lQ!PU~)0wIYD(|C6tWXDam{#hekp2;V+*?5uSD=j)ykmYAH9 z7-xbbflM^^pkuvOSj>9No|m7o&Az7>`rYxOFDDr`HKauZ;WWa6WLxI#+K0{eiP}&@dI($@iB;?t8DYH|&+s;e6QruKZ$? zzKuy(?cBW?(AUFU9=|N! zJgV$%jJJB5H)dguZoKn?%<c)GG-u)HHZwYzvs6WD2;N8#KVi0ribK}cDkJwJ>IZE8`cB8_c zLZ0w{EDl=8N_69QBR!AzM))^a$ocCws#IMnCtIX8u`3JMs_4cohJyaH-vy3rrJn8W#i}RMvK@Z1ftfc(d zPzd_>y76iw7oH&bCLvD@8h`a`d-zxAXXdcqji>ZmWS0W@6r9IP?n~EmICK}`pI*2c zGn{ne$w|0dJ1Q;-4RDD1w{jp0j-nb6g-U2JL4zb6?q~wN{lXG8>AaNs-%r&4qDa3b z+aG4oJh+a%hcmiykI%TdJ11a{rj>L90PgAA+x(_I^1BOWJ6-O(@%ZJ9E5)L|hB9|4 z{cSH!+cd(9?%x=qGdy+Uy6HRTY=yomW_n59c0~NX`Y4a>%t|stRd=2hVE1$z!h}9?hq3Dn!~x+uo!$G(moZG6CSnKEFZ*(TK=!S-Ww)` zbikqZ;gwD}G=bW%7$}{9igE>@$;kBC&vyk~wYc;0*~`Z-9lq9m`m$s(@8s0yFWR?M z>VK%H|5U#YI?qYL)nusur2*8#HL=cj@uLjh$LoP#dU$Q0rl8d@3+*z|owGPFjWAh^ zb%{819uvHvKjUx_7f>>2iy1ZG7&EZQMvP4c{TMySI8ZyxIJkj+0!#SGsN*UEL{-8j zSkN8#I2ixj1K6($`p}jdJWRslc@5A$NEt*?+M$UkvPgg$ zOF!%?q%eQpkOnl^?TPRugIYpaJSe^BBdY8R*z*ECh{;%*=UoJ4?Ld>@SqNwkB$_{H z9r#NFt+DU~L1yEtW78<80Us8+fX3IsWH4xbJnsuy7wJG@IgIcjDl8t6?GE}AA{haC z5PT2NBk-pe=noD!90xQM=^6-n36YBd4X%j`5I}!NCU}5uMR)>09gvvAKszH6V?mve zIq;HAfx7{q6>R7t7Yx?W0ki;J1UZ7n)*@3zgI0pSJwbaT-mO7tV>1m7M`8eiqQKIi zEDChG88%CTUcz%n&|jg1@~}VBA3_*}BEt6Rjv5f@ksy;fPd+roe&sgA)|>Yc*X7kNIG1oi8z6l zFC-t>R|Anq1y6Z|D6-;6^huzUW=LA4{ww`IshnRt;_rh{ufzDBvf$@cN#`l4-O&4* zgU*b9uZb(7>xqCGT;2IJuX^^Bgz-XtV(!-NyWv+NYsNCX+@PU|6dA;2VG_V>-g zC=KiY$-B7om(LzO_!9g#XlO`YwbH1CX~i*LhXQTr?#}Jgo5oPqw-n?10rq|NQM}rM z&zRxPZ+HD@^BQDp2W&_t_nCd0^q7nI1!I0MYmPg=kmXc=DV`6&d?3lYpRlX>A<9&o zE`?<+bmtZp{M1Z5|6R!MBrVH|1Ak42`yvW7ukN{nw_lxTfuc{>y*vsJo`jqZH4{&;jJ$iFa`)8|}BMujcN^RLX)S=ME= zzXhfs1>Q0Rl=>ec`hQpGIkT+AoxjmG=+LpF^uihK|JNFo1y!RH5Dz^8-HJnz8=q#s*= z-Ui)^e7|qE7M69q!H*~Rmpu5vy}N%ytA%Du*6;5%vYZ$Aso-_Ld+<|U+kW)~KV5|H zQtM*B(dXRRXz(1adGNnk`0)tvi^cbepThO#)@W`sm^aJ1<-t=M^&hhd?(YisPY(7B zq^{-x!lNta$$zhuxMM5$M?!w~(bH95LEkfU3WkcF{FcQpjj27d#e4w8|3Zn*-FKlq zv7`6@s-FDV@l4O@cwR>*&u@JH&~J7Tw6BeHHCa{-Prf0o{~`3Qtg~nzCS<<%(_pyo ziunQumuz{IkbiTMttkrs`{}Hh!QGQ@`^)KCINT?Q?;ox#ZJf0nKo%Lwx1F*E+Ixf}9j zBK%zk4KA?)>9d40DD1V{mK`d*RCm-{}!U~a)Z!wp{ zzoCDh9@HLghkcg=p1juBGnYfa?-K3f<|0jg2>`zr^7KQV{CL1jJL;eI3-=MjVy04g zJ_5P!TTkA9;*HKUBsqrr-Y9)0`!6U>LxU6MR!n!?lTX<9qD4dSXN272g8Rz|@V}D# zAF|~aguK@?GoA$p1gd{b^5rv4PWL^8c2Qmnf5Y zD+c@>a(^~EeD{U?>n5|GQh)Ra;miEZlc%4%ImrV&6Z1C~`guvDzmNse=b|TPkBhy) zsDTx+kmKi)I$;*2Pcg`KS3LPL%W2OKg15n?_Z0v3i=rOT@Sp;@zvjuicvYO#0eltV z{^^y4K8H(TsATaQbGh!xX}A*#gaK3zDQzgfq5w*VzCb^K`drF~0RY91hMRE!l}#Gj z3;e+-*hyT9reD_4&C|Bt2qzZkDH?JS;e5aaWYGf!;li~eN` ztIP}~ym(E=kZ-BJ9~1H(mZcvxMEn0EUQAqUz4-ImW2Vx0;1XIFYG1zX7-<=2i}5mQ zct&F{zWdM2XXo&|hnT9O((j&aM z{gH2vP#ZE(^gl_HBd=btL))Rd#4@72I79`eAO#9iAdeKFHGp_kM+Yt6=brl>=wiYR zowrSp?22`v27|Q0dtLSycK$##Ju^#m0pMn=e(Ytse-Z=oth;_$PtOYNK zVt3gW7+(XD395F7))Ie2100o6>=wbmh9DWSe)S`?r)s0v9pZy=6CfFp4oUQ~r80`$ zP&^|LpL@>*9-%+TUXTCBd5mWP$%rtNERr+P6utB7XaF~skE z$OHoZW1ckcd$yIlsN{vIIY2UEU2NNpISY>xhTkzLB&hAyuPk^$6uZS{BA$R`M84Ih z4oqbfyYFAZR2m=|kq#@5=ba8?F+e3qMud0WU`o|&qv-Yh8&imYWJJETrvbFeD0b=0 zZUU_rKi2<+FQxBE@MOLM=sa&FRm?nL50H!qLuK^!YNP0-v-Sy6UVO5l+L2yIbY?Yk zhS!)EjgS|BWLMPr@K@A%I&+^O*%j?hH5%lrjH0(JUUUeODRbl+)r;G+RTlA62`}9z zKv0LFL(Z&_J_(TPfa5YGO(Gp8eUvk9ir$yku@(`KjL2idD!~h)*rm1k%KH5GZ5~Ty zJ-kb{U0T<#*rj_62vT@Oo4UGcwq5$AqyybEK#=T;eLyehCJ@wiN5CJoQS{Os5CpQDHUFU{5QISY?s zH((sn0g#L+I|q6SUJ%9Zm|J)s1tcTN@A55z7eul90(~(-ikm18OWbqXRpK@ieGox1 zq92N@o71kMH`EL5I-s`uM~}Si?n7TekcWLt+NyJ*u8WLeHI`Yk!D-k30@Gz z?iln}vRL*4xa$gG8%D*Z9n3rI$UVUZ0AsmdsN=^iJ7lxCuR7~-$8 zh@VRO(mhE8vg-hI|ZZ^j6c5&Kb356#v|zZAU}wj&Jz$%r(&T1W7LD0aWN zh;O-oWJKB7Rz>iFD0UO(VQw6djELLg4uTg%u{(Aw-Y)>jh%nsCm1c@vy3dLrrGsd9 zRv!{>1yS;1x+lJ^0g@4R6LSuYjOh^Khj(c}G9tXMYA5fbO(#f3r0<~8f)_*yZ`Zx} z9tKE8#Lc35-hKD3XnYF-)OHs(&DoeJdg=Z!f|L%T{01u(L8wsDf$j+-NOnb;Y+GMg z%4L`C8zV?|MVk5fUmE(t++&BS>~dJNc?KqdV9LYP+7nDy8_T=%qX02x_~f(FUlEVwdh& zBS>~dnpM=RZD#8|J`?Y;fMi5E%txN9jgk&@ZyZ6b*XtE|T=QqV>j9Dxdao;E5Aj&h zOZVClB)y_Me5DA5T_tWIDTcVn_>`oO!7Um(h8fS`O$v+YlQbwHfmRIWeVJ#D`*8C= z86+ukKoa>w=YM>H{885UD`5~plD@xP0Yl*)?s&*?-?Nu3PCqZ#?rvGuXU?P6KiXe> zd1G|p=V?lFko#`8a}L>erIF6u_wkHEUqNuzlT^MdL%A=5c=dfM#CPs0BT7%4e3yuF zp9t}}@5`aPGzhfpjEwqzBI4C&pAoM<%ZhmQ{V&9;?}s3s?ix|wH*(fB`~Dh|=RQl3 z?$smE-Fjry_g@fy{FICXdgAa6q>&7|uY-*G>`mg;_m>c_zF&fP_4)tAtIvKSegx8! zFhEZnW9sv?iO+rZjr#m)lB@4WAl~AE47yK(OjG1Pf$pXwLwCg}_r(yu2YFBM(-X&} zyEOE5QBH(?I)_y`io=cN05 z$kavH33?HJ_4({1SKs$Sy!w76;&b0;Kzaz*mH1=Kr`$zI_FKR&LQUaci72ek17_$+ zigbj1LSvC$bnYmD?h}&aXd9LLRft!g%|*QWz82!ob&=6YPn>+uA>DUKcO8-maFs## z&5%*wKR|r$vk=vHPm)~kE`#n9BSUv_5a>P*GI!uVp^IK(|8d@Y!{dw*_6WK9ym)fa z8u>}MAo8;%(u%M^v5)@i0FWy3b0YdWLZFcUj`BmeV@ul5?jdZ15D`B0eNZGboIHp8LLwC-9q)s3++^?~}-VzrlU< zd4xHl{N%nrKz)A~>8k?Wgb+P(cqc*oN0=$nC-?nn@1yM?w9`x0rF%S;yFBSh?)x9q zcc+p(_xb+n`-@1P`~E5Q-J&FKfv^%n^~9n4SCc{ai;;;gCgXzObKj?@K6{PqtIrA~ zKKEIAuh*;RF?v8>9~UF-Kg}_AnA6ZncXrCnPRJrw!H z3B#V%caW&ryYWq&c;W&T6Z@iU-ZZf{bR?DmU7?A+F>VqxwLdwIPB5`&ly=ggS0?sH z_U0W_A)Kh9oRneWD5c`0tnjd;D3cdF+NT>9V|ss37I0=qUz5j2_U4_Gg-CfPvdN>Q z+VK3=r7mu8RAN$8WK=>@qli`^|78S#u|~o9KOqI@|GdU4Q1*yJ+oKSYa&%(a>i&Q8 z{GT^G3BlMYXq&d^r!lOiwpm-f>Or)&n(6Q`6J3Ru{feP&kd<+U`>E+Ycl5(8+ zQ*i!I(x9*y{j09|Oo_n3LU|?ne;F90BpYI*OmQSz_K;57GF@=~4~~2;IRD4^<^6x- z`9HblC6u$yB2%-^Iim@E`u^{RxqtQd|K#|@KJ<#|)VQ6ruBR~MIzU;XM89cmB<Yh5`X80_hOZF? z^M7xDoO{9i-`kyopFLPKaVv)!`@d)YPmB6*?C<0s|E1TXhC#Y##PoS2CLB!ck$jB5 zi9N|4s+-s&<6RP__D4C=)WrV8MWvX0l0MaV6t{^Z^H%<7QU4PgMzrQ5yze`RQjR%L6Guw^Vqo&hYMl8oadaZ2DFu^9$2f8E%IIiO z|8YH-@zdWcJ<47o^IsZ;)a2|tQB3WXbTNa;vnW-$|H0JJNqv{qmHd)dikdoF_)hRn zJ$eW2Y6PX;JMf1VcxX}o|8>P{YGhRSpm(ssBga)ZCN6l&)rBVZ#`t;7#Qr3yE|icL zdOMP779FYe*C6BaXKlaP$g7p8)@Z9Yd-$%gUeUd1tkpO>^qP9LsQ>YAJ(;CcqSp-U zYu;Ru-T7#%S4>}PtQ0dI1^0gz-2aI|wDOLlZ2>dR+2pA99Iz{Fi;LR6x(Pte5PB*mNl zmB|nn78z;s9)?C_i9f~IFpJ!&457!zyymt~Z&caUJ1zZ#6`oWZ6}v)H6m z)4yiMhrNRoLuw_w18Ai^R6M=&;2X zs{VYSp<2~^v4&bv;KjVXhDz06w=`6%exuP=t@x;=wPHp3L2_aKC)=2GJ6hEL#3)UaeZjly}Y1HLl4C8Ohb*Tc_l5i8b7+esnXY6 z4f>{P^J!sJuOk|2RlgQ!s5W~VSVN_%_dX4^W>3Cos8oFwl!j`J@9-MxRK9X*s1lVG zUmT@LU=6jZ7RqU;l?EBg+^dFaaiCt#S37A%%ZE2xe4^G+E5_LJ9Il2s#aLMDL`4FKC4d@+6-tdCn zs1{9&_^_&>Qlx-!)#00}&3~Ysy&dXJ_2$#XW`AAMP$|+t%!_NNRQ)1n+$W=_jZN4;QYV0Kal4C-1&dm`~UJ^`tdJywcz}}#JB8% z3eNxgm))lMmpr;BsNnp+x9cdfk4!UhS6*=bUp}kf@-N?*ACa%uGI16aod5TVE3y6` zKmYGF-~Wy8qfIR7t%Qnujyzk>7s{)f*0d+UzLcy7M7EkgEqPFua%FU8vG zMeS8Cd(l?0d~t}jI+bylwpx|5>^0Vklr_Y^`7-K%>2Pp2!dreA$X~HElc;S9sL#6B zRcESDMaS_sWoW{$5v`yfG`@co{(wPbc_kZKwSK|bQ z_64or{_j^_)UBSbd84Jj`Hy0hZ*JP=rRwS{Z57Mon15a4@Wx*_jbDMZ4epS^Ve$!# z+Nw=eF3ZzaZT6x9ZS^W|c-m*1{32$EkJEZ&YrIBF+mw*raI{Z`JWsAM<^A80Q3*+n zB3k{+cbt4yL}CS$I704C6F48GSOKLR-m0Ni)sZb4YE`Y-dzon0bu zVrxWfq_S2_bx44tqf=g0$pp7TWCx)sZkMlN#+WTGnV;zFF~9$TnXO+GIdVJgmup$~ z*!d5xIa<2CocT%0x4*1Ae{pI3#CzwLzbsy?Zp?3EpZ@i{#d}M>t{->p<;zj6Mol}v z{K|AY3rpxB)5wmowxH$>85I$Kz|Kl>=NkJE{xp)4X(*pEMr>S|HD$DZ%0MO;01e# z@RtHzjr1*w@Ma-B9)kbLp0NnfPK6nRRkk{uF+0ee0vJ0DegV?|04S1+!3z7eI?@c( z7mmun-T^QUpzA{!D*^g@S;pXmMOA`M(8!LA{Q~;l`;6THJs%7^pdUA2Y#iu^&{G!f zGT?zL_`22L2DBB@<1f&zj*LwMeICkKN!Uw9;!s)K+n=%epgzcd9jN(xjIDybvdG^- zpkE-}r-0UWVr&K|g}E3Ii1?L){R1wr1HOC}#*h>&D3r0{cs}0^y1_3-`FRG~2Z?t9 z^imDRVnFNKGZqFq5%IVJ>RS?N1^Puf#=Jo1A>Gb^u7@QKeRfC>sATEL@1~$fsxsCK zw1p32$3U0%Wb7sAa0kYQfIfjcTe$P;&6p+Vr_kRR&*Kr!?x4FXBTYc30>yzzs7Meo zTNKJfP%2Yaz(G7j6xb5@a~$-mevH+EzP_kOC%`vGU=M@#!}FSW-W#6G2LC1Utuv@! zB+>@Y4bYne{zC-15co9YPZaq3_3#_CObOHl(4SF{TtMGz$Ji&JSCQYhKzDP*74#De z^Fht5(SCvYARZQQ_ri^_Oz`W9qV9uk zLSmvwvO@^pSD=ypjGY2K?v1twbch~h0kjk1(;W105MviXm%~#t(&x=M!kMVReHIwpfow?!I(W}!SZ1GQ|8vI4pV@u?0yafrW@PMi9F5_-+rGqx4< zc>rT)LCX$6JmF6yek1DagdTYUTCW3RJ3*TSGWHwj153uLf?h;=UjubU;d=yH9^rF@ z`^7C8TM7Od?4Jj{6^nGi^W`WPqrk&CD+Jswk2(T+0r>|JYuN^MA5@3(f}k-J6Nao| z-+ChLL4QEvtO1>l`hOer1saospv@4DtDpb#UHbL7CdK=|q1n5zOw;Aj&DuQ$eKM(SGpodWyQb65{qkREg)*JN+ z_KKrCP6EHc4{auBw`imfp4%GG#(?%Ng}w>Tr*}izfqEgbBSE7PuWvwymxWHyuLq#d zgZ)QH@7>@n`!Z$^zM(T?pMmdf#h4znJQA-Q=#|clT?hTVA=(_!O*K(QK#!u*{0d6O z0vHSXNNNVLl=e|b+)wd48sV!0{kE0mv^Gb$tAG!8LEiv*f28+n(E3OO1cmiSW{{5i zs3(PC&kun>6xas{$Dg3R5RM6;dmRy1&@`myaM0Pv$eW-&;ie?$J)i^-fJ96O&1#Cg z1GTqg3_)R!Pyj2!?m?s*iUiw--!`BV5eXmAg~=*&cHMLWQ~x>Wk8?xK|g}$-?~F5_!wk*2I$ci=<`8aqA;!neU5mK0sX;& zv7w-~%@7vQXU$QjKyMbp7yvZ1BKjoIE{IvH=l`fK z+0pRDqu~4>`M6RolN38|ff&lQ(ks*Kg-SMrHkwkZ0zK&v<7~wvDyOpk3LuZ>{Y+r za=9gYQh7mlK)>J76qO1OC+@ia1c&b;Iu~jQM$nP9l)c^m9aQ~a1l&0HISIOQ{r17`Fcfc{AE1q=&x&u7` z8n%Q07>PKi@+t|GH?a>9iZXpE#NQUHgE^H3)}<#2JQni zRDTHU0A>SofVsdtU_P(_pkeDGU@@=+SPIY(ZaJ_5_z+kLEJYla0n33Ez=yy}U=^?$ zSOcsD)&c8*4B#W+V_*ZY5!eK520j6{09%1ifo;HNz~{hrU;}FBz5@0D zdx1>gYk-Ep?36m4J#s6#ye)>6N=Fs6EgaXaYC^ zwE!xc)q!e2O#p8=(kp9i(7FId^3qfRM$!y#AJVi(1JD*gYoHZC<@!CK4d4QF0GxsL zfGh9;Fb$Xv%m8Kr7m*j2fXl!Y;CDca`u_-e9s^H+r@%AdIq(8_2{1Ffh684RIY4c6 zA)qi|30MI|0BfKqPz)#zlmJQsHUI}~fl`1SP#P!$lm*HI6@ZFBC7?1;1*i(>0ej#R z1Y;}kDXVZd-;1dsxZ0@8qVU^Fli7z2z2 z#slMkiNFM4GB6340!#&F0jq%3z#3pJunt%cWB_}CkAaVX4Zv5x9v~C=8rTo)1BxJh zXv(}OK(D4WjY(6nG+jzl(=-iv0QL?7-vBhdNK*hbeM?iX^x8*LqBQMGuZA@3R{@~c zb9yDM4Cn!Spc+8a9yE2*1gH+w0BQoY0GbM+>4t^?O>@vx5ls)%D>_X((G*R608?Dj zG#^dn(zFpx1-1m<16l!XfY!hwU@_1hZ~;01u7Dfh0eAvlfDhmc_yPVv0MHQ#1cHEI zpcBv;cpvBjbOpKtJ%FA-2+#}Y4fFv*fiNH(hyWsiC?Fc>3-kl}0|S5aiN(k&=&nsfQ< zE!h7P5+N;*(>%ip_WvX&I?=qp_Ujo{`+u~k|6)lzw%8Ty|0&r2Q?UOhwPkaMkl5GU zS#Lc5McaPqb@%^hQU70O_3yv-qHp=lG=IHVsoEz@TOYO@)Ytsv<&S33N$Qsn7BN7& zTGN#NsBcI%r9bGTl&|+D_Qv?7)x`dYts18EMHDtCQ}?*Y9Ayi+DWhZjq-sh}Xf!0B zK9R#0E$V;HtvcAs{SNX)EdI$6m+Z65)ve82x16f`+)e2XGDh4sXi8rajaSi{(ibXZ zQOPL-OkM!u;-o7IO&OPnNVJ%yj)=I`+LZAyUh0>pCtB2hbpOiL)Oq?Ly&f2=rPb`|uVMM?|^v*Tmk4&qb#8MY*@u#QuaO z4av8ur26lLwc0OXK%}E9lH(Km(4f?*aXV=(yfvO<$*!~pp6s;20(s(}gO0JldT%VA zkBNB)6MN`hl~YY`v9BjNsA#D!ob?CaebBW$QD+qb}G zGQwzKe=8bILUqBngI|P7!hIivjnGcWZz8UQ)grzg_)YLsc)0ZdXip=V<+Ws3iS)HV zS`dba_&Fi0gw`T_XYrfRUGT2Wu)hVU0XJkeRFknpxPK162m?iU_aZF_T*!M=$9@*z zj^J+~F9}mbes+di!W9wTo`?&fo8WICEQDSnJgcygjSwl^ry*?!t|EPYMp_c;2)=k- z>^}l#itw2=#r`tjb~!mdUn4$*Pek~t<2iwj)gj{uU4#-sUj#PV5wd6#AWQ(lMsN|~ z>w<5=8jEfM0|WqC6%cu7qNCvinNdyhm^n`WnM;LKoq`9$_bJ754jKb0484Z6bu( z>>;CyUSipg$Zx`VWpclnzx6u+`I2NvFm;m&Z}R+#YJ7=N|9I=jpaU>oH*U&AqmCvv;vIA}@FyW& zK2XDy@kvNb>Zi@e(0s--@i9@-o%N=Si0Uv&Q+hKfZa`ehD<*-`LB% zuq+QfTb%Z<20)$}<-u$8j{Z3ge2|d8-=)J&+QZq^ya+QGJh=VnD<2vl4;A`X**5&3 z5BMm!PmlHBvzB`KJ_6s*+*;D#wCk2Q3Tz_zpXkAT&8J4jfFC5>-|lucf%Zuc#b#sO zAP@d&Sn0CQzz-L4zSq7Tx+0bixl5`CA77@IRS5Vo&}R-h;KH-&^iDJ$^30(gJTdhV zotDHV3b|F8-_p_4vnk|$qzBh^7;%&0^MQz8WX$^A&XCWBJU!imKYr2e3hnQlYi=p& ze_ZLvK~Kn+ko$2Syzqn?(ShKXnOjKmMK%NCJAq$G?k9TiB8AtNp?$}zg?#YeyPigY zUytx)PVwMl%0--|^!r#zzh=*Sy$}8qxYteh;4{Dc`AIkMTZQ`yk1D!$0slGqKg)wx zvU*&=$#+T()`eE-O;QX#edE;ofH4!OJ(0 zA$QGZn;X9J;Js60T_``sS<30N=kfu=Uf7>xX~i-Vy*NL8vyw05GcD!(v$J1tw_;uN zeU{f*)*vtbc|@ZLj*ySC67oAIU(&wi(N=|-ZmAa^I=WcZ9*|EI@=lri)2Bf`#mb85 zR(SEmxh+fghkUk`?7#2+;DGNSpKoQ&bgR60^Q;GJ(Ot6-h5PL@f5@Ocv8%0$FqgGn zJh0Evr<6Y%h5LpfQ4v&rw_xLYdWIK&w0X)Ua{sAt@3r`&&U9wO=Ww6C!HZ8w9#AqB z@;$=+;AYl-hiYI?w$*l)vDu5yIy23)1LQ-C$ni@EU71Stbwm-wZ=VUfg?8%qLVI7YTV|m$iQ9>!6~7#S_m>9NRhZ$j7r)r$^Kr|d-q%_VU##nemlVE0 zYs5dxi%;!2JDtjFH~2^O-?M!8CUnj~xOEAZb<>Mq3#(aw5uPUq_Y+exu5<)H2nQCV z-|^y~eY3c8U+^i`a`|YtzeIQ14?PU}(`~(Z^{mP^KSMr7#IJItQd8*cgGunup^P_= zOncrq1M=Czz4@XxwQ1kg#@4rvw zV~e$%|1%~=_|bmwZAc%NCf?k`a@hCVA^%diPi>H1^&a?4#3#LlH{UU$|Edu9cM$$j z{EG&5O&bFK2kVk7tBp4g7=F(codLTj!hfp$;5)Rp{tt5R?9I*At*_q-?rsSGuT);y zg!c0P1$m~cH=n#NbsyEAzlHy8F3#IBw=CYRtS2!CPj6oJvvr;;Ax|$Vr{AZ)wAo-= z9QD0u7v>O{E&oNx9kwrd6fzWJ;i7xYvbuP4o6}pHQTtVNKPCzH&X#vN)AQcyk*$eRq^C(dR4pU)Toi=QVGB zt=*S3-4-}|q-A5BI2HL$T^nfJYUj}z@W&4vB8 zLjRNSv4?tscP97ThqoIQ{{xkW4npoT_MZ79=yNCk8~gCsZ%@DX6mox|zy6{9-#smc zcTF2lmf75gXAOMvGqwMVMEI%}E%qUuiL#91-^z!lja)T?`nUB$f6Ug?d#_s|KW$nt zU0WYs<7NCsD&Loc{Q3*`*8Xt+yG;qEbN1o;Tvy!v9rAlNa{G3q!TqV9V_x==4d!oL zefaMkiY+Gp%W^sW+fQlJf#OpEe7c7ZU+~xPWiUMz9Z`S-Q;ro#4Z`oPXAjK1n)+^oiouETfAL|ITMo5REtD zh5kVoHk4k4@Fns}%%P_bukzvLmir)|CiHju`C5rsl)pK=49n`{!~14R6!f%}cT3d@Y};bZR?PSC@@qr&~PCq>HCh5Q6B&(ixMenB6Nq4M)5m(wTZ_g^At zJn|O~mC+6G;Q^Mz|0MtK2>IHmAAh@pcjpJZJIjjm;j`;Jh@<-4(N>OMy}L_W9EAQ( zwiQ`ck`J#quXkY@Z^qfm>FZPL%HKaBJOgd5S$c{O-!uM~7bG7hMtkbz?<|DKD_6-{h!gfBvWnW^zXYOqCr#S|18^L%#iNG zuXoVbcnJH;Y~}bpawxU+6zs3EEy^;+`S68bt}uKL`6dzm#6#@PWXQL|f0s!<+&A>d zxoME^67v2b80a{Zj~^ZiWy4!r$W=jW16Nd5J>X z5BEp-ezC>)Znh7PbGw)|2=W_3KKq-)ooT%J7u;uV@!_kUUEM(!%I3 zZ0obEZ9aT^vh94zFMTOFeM`6Rxvn4h>gc3(JA8Pj2JX!dg0ERhj{la~?L!@rKXpr$ zXIZ;^_=eKvH6kE)749cpYoVj@vj@4~rr)Yd(DKOpDqS{ysuJz4qOvRG-30e%*)Ll{;0L z>PMuVoPUSH{mmwV?{8ig?mpz;+b+<#Ie_725&Al$qB?Ze~O9qLQt|0LK) zwlJ>->3^X6V=3U%ANugnIM0_$k)Oltib(Qe-*ms80Qp#wKl9 z9qq#gy8vde_T|B=qAEXz{U;)R&BOjk+5-KobWxVceYs=RPHrSGT3U|(%mMwc(fE^> zM*S%5%Zrw1I4=|OilycJJ20wN(=^ESaIY)x%Wn@p9eow@dP43rcSsbCzZ`K0l&+F5 zxA|pR&kw;jE-j}|yRK`GQGe1La+j*UyhY@S6iUyQrRDsq*VScmIQZ5iujb3GXVh4H z9SPgEbQvjr_bTrVTL%9-l`g`v9DMnRMVq9vnL>pAYfmu7AxF8TGVSPm6w5VuWRPZzeybN$5HUfB7MGI z9?*sQ^P!NZxAf(8#~0bs7~vU#@KFB0_xNPX9iZcp9$D>t`N_>&mQ#GEi1@8PTK2m~ z;HQy1*q1jN@W_kKGMZgl&i_IOb=5uwzo>LEmf6*p@4fE5gw7FKi}WV_-}|RDqw|xt zz(0rHzT9`-ytdR|>=gQIZXdI4G~)YZX^!`QUtVi+iMV}`9~1c#U$5D3RGxlB{L`a+ z`KH~ikE{ZJQn)Yw)u0qQr|C4(E4`mDUtzblixv0_!hPEIKZkk1{_k+Fi}B^t$4;}J z0R9h=e$k$t+XR8XPWcz_%NtIrdY#6jH%0uG&Q2>q=P~__@EekRc^k`swHsmoxp2QN z{z&Za2*0jODV8zVm&Z5`t2zd9yE1b5a0ytoBM9!xmcjeMFkfD3+s^qbA+K6SE}v)4 z6q^CpGSNL&t5xnn|Z^1Ik`SCq12M*edfK4x7QPRK9{o=YX==%rBqZgUTNF`?QK^1@{)VM(@(t8z?)S-|69+Gdrxd}g3jow zSV1m-F$AEB>X z1-+!d)z*MLQ^2QID2MkGKW@FtJz_D^cSZ#{{pTF*ZB6aZhtTKX?#Gv3ni@&xXMI#b zj(;D|?VraWzS}C4VFq76-X^qsS!#cez(2|#+f+mF3+Vf<0>6yT2>s{q}jpHHZ8A70~~7_TxiJe7a#0^s;wvWDBLH$FSigNj?AGrQHom*G2VlkH9(~mzY-7$Ct#BL z?Z+=Ry*OwjY<9D^}Mzr2BF6XKn0vBK|Rz|Cj!>+WxW*+J{P(I)}M_ys6U@J37nj!^(2|wx-o*6H?$`1`gUw zU*g9z&u%L14Ee{E<@`(gYxSC8kZ*%rx5AHa*{Qn{jQD(BSuX#p8+`i3FOcuAjPc_- zKR!QpRtSx6jtKVy9`*i#`nw;={RThYBKf%kouziNvYdZQ4xO5~3g1D_SB_^HTm5*0 zMbY(k!+t;&xqoT3rOy;hJ+RJIYB7i1emu3$+46M$+R!R;`5kfZsU?-q2~{dGmwkSG ze^YPoeUPsd^2P(xOMZmXD)RT1 zA8$8gNf7l9UPAt2vSq}~>ZlJ@&ohU+emuc?)JJQPU-k55CI8nPC^>L5#-|30t)W>*aD({+6y%d*SX-`ZZ*A3ykZ?Ohz-#_apDtcw1;af5?> z2gCh(dpUhNPx)o|9DB?s+OJ}UF8;jNx+{L?;D66*viq@*j+UMX`(f3Jv-A*u-hB49 zOH>}>ggmf{e@X`A$s|wm=e3$~omOt-zb*NP_$b+iO z`sY;|Kb_9d>jC?j3laX+`cw6wFTA>(ew$aE`z;uJ6zN~$&kKLp?gwgr`wDri+u7FU zr7^y%9>p@2`}6IeUi`@(`i@tZ%Wu1+b3ampf2O*fE@Ov3zf`Q*FMe=;vxcmH{_Uxs zIwStKYgn_a@BR6J%XJ&kc;|_byWSW$XMSa#V6S3&MwQ!Zbd>wLHK zLj=gb<|Lirp+D~w@GO(YU#Dux?e7zpbc+Tx@O{13ZI<=SpMN@xO+5tpceUmGDRRR8 z)YD_Af3??G7>Wn*>ve0t9}0PDeK~v{Sr(t%!2oAi{bVykZ~%|nQ|tqp-}$SdEWhCF zb9*c5-`$4wSw=(vFI0O+%s$AgG?Mej;?jl*H^EnLWW@~q0{G4@v1hk}uP5Xa7Od#E z;63D5qtQA;OaTA>fREV*q~BIYIe&I`y*zNd4c=EA`>?DO=y!cyyd2zDa59t1@B7`h zobp2XujEvpWeyAAQGZ07ptA|RoaFppSaR(j%`w3q=v36qkQTs~_3*Kx@m0?za{AmE zH)}MFr^1_{{h1rUUml2A-v#o>CbIi2H=ekxM*WMy9VUi_0X%h?{~N@1NeN)lC z^v*2w0Vb@Rn*Lyxu|9y8Ub>!cr()(U}i|SWK zYdL;>maU%I7VfvSuD~*!JMs+)9^Jo&{Ag>r{ho7o;m2MG@0r%9pKcv_x7A0x-a`1U z3jJSg>$zw;(av)IjqK5! zpN9Uy&Lx;(eMf%pOtJTAJTlf8Uh2WAJ5|6hbe7u(kA9op zzYl(uGiMH4JMy~IoY&t#dEVySSc-qh)yJF7iz2<9`)*UrP$lYXEtykgu;Yu9p}11Q(R={T=y@!~^rG|4wv~`~U5K4xCfI z6y7&nCbNuhI`WX0Q&YRazGVkl|L7Bam(%wf>kcJZ`mv7ulbcyP0??k8?;wvK-So-M z!_hu9?U2Hc32ZZNi54ry; zKF{OK2-x50QJAF%1oA58Q-2KwzZX1}pSgRxjHdKD2tG3?koPSLbVS zm(Fgj>{*-{!UFmCx5wI}xU#yQa`@ZWc3wgKMI#g%U1T7y{bi%>816GCA)g;q(-Xy? zH79xBKz^pa@s!J#)5Ef@8o>YG zJu!ci7|5$Tk2yx;!^fU-{Odd#>x-;oFFlcdGXi=1gAcyXLVM7~tC5sGpLIWZI|S|3 zIIlX)VO}5~;rD0vC2+sdORhg_+FBi?_IQhzB}-o%$gi#)Gy5*&JG^B5q5B$*2}1w( zl~)}4zd-(Ix>?$6$m@H{?yv1VIa3q$#h_U^+R zb_VhVJ&)C(_t67FzxSt&Zlr-f1YWl%kguQk{d{^KKPvQ}*;Xl|OeMOKYaKIu9mt(0 zkDs#&^1(iG_~u^y!TMBngwy9T%lHoYGq8j{7V;2ZIes%zE_QH7{6l@mGl#zec`?u9 z2{b;v>MN&DhxUFmPlCVUYsnm*26DUba~mgtzbD++o$;5u4eIwpUyQ$ApnQ#aXhmma zd-}=kL+!QGi&A?SsO+ z@^~SIM~nT+u=Gkn{QcrTj-xY%w+R1Z=hk0#7wNylZw_|DrgrurM0GtV4Lo zeRA!ilj(hBBR;~p1P1Z)>$g5|2frD+9Y}uW+v(Nu`h$A{@O`*b5U=xHou1@=x6og! z>6}OD;P=9QR+k|DOB<(K8Q>2fzU2Psh=iszzBo?$dj#>U#ixA^fIop70!W?~zPrUR z(6i8&-YbZ&>V96Dzc?r4?b|oJG7IVP2lQox266Y8OT`bu{v8p2ixC?#Kefg8J%lhU zDu`pRQXgq|uhu0H=R`(@#fA@x)>?6lA=Z$rTsW-Z>9I*E35kZdxke^mcFe09JxQmp?&v17!$NcF$BbpOTR2;)_Jba+!(OqAA%fMaJ0&i_-+ zNE#f5v@k*Chz(2bM+>L5tri96|NXB%|Bvc_y{aoh)b*eEeRv_$u?P6Rg!j~lR{wIk zPyUBW6`cQ9aQ_%+8UHKwzaHv)RGlhan&Cx2hYRDW{_kr3d2lc&)5-H6waN{t+o%TSqjmLl z8D9qRgL^8i?2Y-*MrOZA7i=AEJ@_k!~ZV*R)C#cIRj!B+;K z=@QKKBir6y30^POuMarbzUEZ8uZi{H4(`D`^<_+(J&-pS^6n?CYouVlqP2N>=Hea9 zz1@SRT!y@}kXI_&WxgZacQ-H29KwRRp-ohjE%<12d49XinaTa=dtw|WQM396^E=ZX zo}u+JLqzyeE`MYj7>xKvO>R)VoG7#TWE|@ow(zo#`M_*dsTgt+gd5;g~5A37vlYccWixvfQ zcJS*FAAlcaA-`Y!-v3j5%ZYRc=IO$QWx;$<>+s!_KOseB{}W5Jx<~JS5k;-p;kupp zjf0gvhJueRD!X?*eA28qzP}_E-O3D((vCjmHf@Kx_$&ph%B|D6Z}FajVmkox3iy1~ z1avn(W3~WQZf93+uU2leR&HA-PnyHtNO;=_G_4w{2`GK$z?&Gmgy)W+zg8Dl##tjf zz$>@0E4Q>Ox0)-rq?fIOWP-ijs6Jgmch$nOAkf;-3onhgp4YXf*Jr%aqJEA7ZHjo% zE39&hyS-k%y0Rpeol=$EiQNLXB=m%XDz}C=QtE$yG5+rZ;WrC5 z_pD|`^}nN}tU}qUhw1xcAl_H${k6=t%e)n6XK?9lJMkS0;)hdWbQSN{uF<0d+Jo-} zxz42%4?Q)1HYIW>cyb@}_;Lb1@39DQnXcLLXdy2%;(iF#4+F_PvgI*Ce&%fVGn9G% zAA8>c71ffhT}_Z6ASKC25JVakR1_mhn-c~y(tyxSXfkvIVr~?3!mOAx=72f2n8loP z4w!RR{;&ERulJwjyfJG|}Pkk2AMguydn^I-7|i zz>jKnt*FlA-L1pPFBO{{$OgSn2mUpge)K}F_Gm3R$m6NT2EAE*J;Ly8Kia?Hlgn*E zpWyM{?RR$_4*E312l~6|l2LwC z6=gli3-ntaS9tg>XXX0=v}mj!z4=vBot4LD9=Bhdcx?yhZ#qV#V7wn4ySL*^f6)3r z+qWn>n3caFYu_gN(c2Riti^IRsi-R=!}9#-ee1E87{3Y5Ly4yN(E&-9Uow6Ro@| z4*1b7yRGi71?`9Pc1%BUrUR-o`;h_{9rdFL)dpm-_#^oEU7NH%C{ZPf-Ve0;!Y}>-;4ix5N23kSn?<9+9jH5%D6aU?!W)AoZbo=> zJ#PQ5*luZCwjWeo&w{A$`O!UR+WWKq&rOfpA78S1H#=&BZ#~z+{)`{38Eo%V5Bv#y z|FvcQ(DPOZpR9-THx~YMP~Y8~S>xWH$Gbh)Az_X6Abhl0V&hLg(d-2sKo8U7>^Jc7 z!P(=`!Hm=!NEFrl>00mh&(O{jU45>8rhmD4ZvJ#ewNvx5K{wRr)-N?9bXOdJd`*qS*dXh`uF}c>B{ z7$GiWJQeXUKN{wH$j;YQ!efqy;$i)}1s=A}%XDjv=LdMF;F*etwP(}u%)m1f&n!H% z@#N!~gJ&+Dd3fgIS%7CDo<(>{@t~t3B0M^HP(_Fy9%PkNz{C93m~Sbo|7;Jx8=kIs zy5Q-IrxPC5(PBHaTz((;XaE26{BIrTYDo7EhEGwzBGMZ3|2VQ?WvlrK_`QvYtA7uw zm+YSpx`W7+XvX=|ontOZd_nt)EVb=R&4v3nuyTz-c*!Jx+SWH@}^{3|-oQV2}_M)|pSSx?Uw>?UH5I$B1>-#1Cw7KI6 zjT*Fq@1Hf39DAKb{7E|IME%U4Hc5YUjP<{R`2N$aaL56;Vv(Ub&58P@KkZXcxf|QR z-LAvwFWC3xNM=7LbPR~(i$DF~bHdOK{O5Hz{bx>XyEYE^RUMok`tDC1y~D@kV!U== zN2-SMn|w=OAg4WP}`pLHiPd2~7d zjjqbVyKMjC8RFNp2%z)lum4y8{DrQCmcP3GuBk=9MQBeotpn(#aGHA#v>rb{2(A4A zdnIUBfJ@p2(1|w!XWj&D!sD(UVQuzB?T4A-@da8E!l6a>ylwPs04FBrt&HMUKAz0`+5r9;d(aTSv}Zg7BNr|CEFV(8MvW z$B%;XkX{2V|FJe3+6+QGAKwlg{>`!gYP;p; z!5Ro}r_b5Xr_3QEPJ(vOHy}o_0o26oY$)^ZbC^y4V zJNnKlxlI#AtUhkhHzr2;0aVrIz_6*n z_vv%<&%IMtE{{U{@K(RMNU=PCe%Y9Rm(B0$8F2OUvc-T?UP!Nz0nP`U4xj_4W?i`h zyqy7Oe;s~2U&q?&?l`}#eic9me;6}154bvk|0;_>I>+P4_$9zU^ZL29-s{O%(4{Q>>Vfoe(4)(&&otoA zkK1&6;(H6Uu_4+I+d!JMDm{j^Zxl`>NS5ray~dU0#{%Is_K>fDY##;M8t35|e%G_% z=`VQKVCT=B18JM;6MEQ#uFdmzY+(4YCGt}T=i?>fKpJD4xRd429p~X0zhB_`r>viD zj`T(C0_m-3eMhqT?hT`4_`y?Q>skHm09@1Ymwes%_{YY@v}gJ2!SF7DI6s;^>ptiJ zq{sNTwm#luD$)xx#Q3gPAdS80{h5s&QhE7JBW(g$U!RHiG=YKiTmSB#UV!e0{4oBY zZ1L7Rc&icr(a=EJD`~@rlhF4lLn|#_FZug^Holt+{Yat%X{%*twoC!Oz>sSnn%$?W zuCVvjhSf>I&_L=wT%FYf@*L*R=O5edZx9OlxFOCj)3_O;{uZ?}=J_2;S5zd#*3#3y#te;2`U$PM=Kb&^-YC``0MrdCa z2U1P!3Zv1$CmV6?`;7zc9?U-Gv-<&72GUNC8#dn!dO2vOzx?7N?SA$;BiPs4Kss#V z!)9zewFT)hypT?|j@IUDakWA_7Wg?{HRJJ}2L z8=gNnwy;SL&>tASBalX}bY0aD^f#Wr_ZrPDKhUMXCA$OZjh3funf>bX=g<8vCM~Xl z{1_TnB$9oB)T3~LejaEG{{Dc96Ydrr1zpY9oG1zG|c{Gr&Y~|(0&g=KUd47hU?b^KQ2D}5={Q-9ZX_U*P%I$!M^LS|U5PNoBC&t*0 zl-v)bJ<^K5jY4|4m~=3Hr>vd>PMfgv|2>J~X&|+Hm(;l}e!tAiA5r^wFV>!1!=XFT zH`LFSFP3|QzQN-*vEQawsfKa5aVQa&2GZK03zzRS!g^>$w!#8GYTpGl*jPCq>uHiM zL3Gu5@2-m>-=c~RT0FvU;Vm}4D5{9_qdq}2*W#cD>wiyGP)E)%pLF+p_Q z=?6U-UWCiFSpISbxx8m{gG<2GiXd8PX|^gI`MYUiuf;ESt76L9!ymvkNkKGX&H%e( z;MX_h{4?K<4cg4=v#lx4U!(<5e{<98%-`SDlpCKs-RA$0%{#nIk$y%HJy&&M4~DnL zq9aQ`e9dF!LsURtQxB22Ul46@rF93Uk6bfu{ql%)@X{QFABW4u#CwBit1T(3J%P_L zqs;QgQ%^+`VMRk^xBN8 zpKjA?X_h%a-)5aeiq}DOs`I8{to}&&^X18QQyX^#-GQB-?-Wc|HW)D>5OgR0e0X!O zgYz#!zV7B&U+)%7r_GvZ!Tedn%sKtoy`0di1Mp09%zq~Z)1#8L&TMX%1DfT(^1OY| zJL5fp#XtQQK8eRKIGnh{=2>&t`T6`{I$=|l!FP<&Uz*2g`Rmrb9NQN0=}{AMbZ0P4 zx;)V30%&ub_h#{LXwDuwY9k`U55zVP!I=_bhSvEe8 z=kfJc7wL82DZs_&f@yI3+*&Tc2l40IJ)7rl9|~Lz`AaSa(~PyB?>m7W51Ps6^VBeR z2HMwIv>K6I4W@=({rcINV?0PzTKr6xGvio$PzRS>h;BoFuO8%H1>LwZ=Re*_{cO`2 z(Cu-)TXHX$7M<#QnayW<@#niwrTIGS1Relf{3w|AUL4Su=_j%>r=L|jAAQ^cT88uD z>L;DxzKB&h9?-igEfJ>eS)2RK^OS3?y@$s+h(`IHN=uF@u8bZ?&hZMg? zdIOOj%U@~pm#5kIWmM&AL}3#`7Zq=~m4@FJ@%#%dYF3TGgnD`94y433geKN{)A>I1 z@vO3^mcRX6(H?fcKrM>~q@->L{W$j8X-qAMuf8^m z`j(vil+>7czZDh~jV&7!g;xl5@%9bwY=H5urJt7n(5VU4mqMOAoOc#=38Br?##^*N zd^0U;a`>0+VXYwlW=ovk>ls4l4E*?NH}E5tj#_-np&Ra#!2cBIq1FB&)H5ecIR^L( zOU}Q2UIn+nt-y_NURNC)LK`&7dc)egN><$X;o67()7X60iJgCyhR~&py_1Fjcedij z_gzk(GiUy_O>q8pbVLYs-|wbh8?=PS-K)KBT^)2U;75mr(AKegUav%aQvQ7LuB1wB z8v>W(d~3mo5W2dK?pJpHBgv|^R{nL{Jk}P2o^0hv6k|iECj5~LJAbj+s+txb(&h0i zYw(|9=Wi#5(4?$0yV&~8B`a?Jw!hQ9q*X|-1o@Lp386hkz1uez^h-Ydndu(;?t%V@ z^d-|nXwSw+J3j_ZaNZTklAO4SE|c*#u!er}!GFB{(-hFA{Q1@+!*UDWgEmKa$-EGH z@N&)WVW4ez{xSE)R67RR7W|rpA@r-f%65CuPS#xec)Ll(jjX?Ru{I|qOG2or=ULDG zkiVHV*M8JK)^+wfgztg#x{8${)N9rTqh}Dz&swaNugBU`YBql!i1WXSbs_YYVbJx) zz$aQ)(c-hZxi}<)e>u+gsyBtut~+io?F_uYx}FwyQK;^)^15JcLX5VB(6;v?jaXSM!kD|RZ2j*$ zQABhk{+o_=Q{wj@sND=d?4%lzo_hlWCacUPc`s6`;V5L_N)V&^XVZz8p!)0B>y+dR_WwUE1A$-Az`sfZKkfgg{~w!2 zem$*wF4LOX{{gN4PlpB1Jst4-L7Zn{{eOm2>&k5Z=rH_&M8=_Xj-9JRKIr58`I(qT zJ1a5#G;oboD9szU;|m)fp6Ac6ybi5@dnxE^2(NYsr4#C(a%bmNZxe2PCHBG0c6q>G z0N1#O()pL>u3+iE<PpMJP4g(Ww@jpM2)iUu@R+48wmgJS3Ek$TGdT z2egieo1d60kb1N9jYLR4I+T8B|JkDf(l--v=_k)gTJ_x)>))coq(B);BbUD0>xl68 z`2E57V>6^|ed+=DMN>j)LFl9&Y`x?O_A8lwZaH}^ABg$xM^R1OZxTv(o*nMM_${$t z$Z+R-#V;7YHT-u(=R#?}M}dPofxo&A$Df>;qBkG&VHce~q~uX3{b+yrWF3Uh;r9=t zhMlZ-#tG|9Ivyg$+fZTr1>FdL|C|PX+W*h}|4oQyQfOSYo~WoIxHPinHMQncF zkhiasI#<&|L3<*Eq_LDHy0kpX@TNR|ww|>E+fQgkus+vRN~Jf`CO2dAQ@A6t`aieN zggC|@27Zx5N*ArTE@OB&k4I}7i`e>@3jFHMQW|i4h(#lWAHv&z+TM%v`+!!1mUNfW zUCSr8?G1Vu?48Bm@`-aF7XL`ZujwhJ)#p@w!thZ%Uc9Twg~>M#@r(SVG=2QAS*-n- z!TT>Zv2Sso@y})Q1xx7xo3+~*K99%0H*OTh7b>MQd);Y+<#?PQ01A?txUcsDYahSdpN_l@wk;upePpl*a^=Rag3CX z%Gmy+Ch%fD{;aWCZJ2x~!LN>&QeT~;eHqTq8?yK%`ExT_{?0J{CH>;R&g0pV1U2Ko z34Tf1FaBFRelDbc_;jpS-hqp&SS6($E`D#_8S!=G+eeX|rJAkp`eRc-G*U{B-B_Y# zcmR)Ia#|?q0$L_Q`s1W@5x2fEZeG{7jDH09CDXv)>1Hd2kL2-wkJn9P z@y!RnWUiDJOgMXmt!J+kapn7RTbIzTpx2^3R&SEh_K)9gzYG5LB5wV9`rMB;EdHa2 zU$aw6+uRmUW%w~3uh}^E@E5GF-xHyJACS_aC-&LYLwF0meO(mj{EhAZS!0u0Q!K^) z?71%tx8d=C^PXe?66&S+ZzIR=G*s$F3t-XzYF-)=cLrI_-hcu#XMdp zZ(k)F{B?DZzl&1ZazV~WchH{j_h9AsrQn$tzm)NZGX4irTC&+_@glXukQ0|GX4eN z*L;=IwnlOvhA-stI*&E&82>7kJ_)1F*Xv$l>&aVmxb>|CYyH)X{|NXchG8_&X#G@% zALa3GWLDNa@L$ux{oM9pv`byjE{o9LmgsQnn~N50&@g^oID<**hSB@?6BaE7uBXf4 zW0&fI5FblF-ECX|wwK`Fi1Za<^yPZZK!y+E@rI9Hc;rSrKe%LU7!5hH zL1zT$C%peryQWV@>_qu})U8ewdB4)H41XGyexISoy_x>n=- zqdG@}7czad;r&0u3zD`n{&wJ(EDNKD(grzd>l2S_T0f3%4f#9k+2MYXU-HND@?~5L z7|r@O1^6{be#sxtm0yiU=etMK0^2p_Pm8XM=-g#SQEL^#c}F)F$S+L8Btp9G#`zN^9Khmr#=vJULDd9A(dUv~v zpxfYk3QWE!17izWd(xTV8R7I=x9xeXedxyfKXiS4R6h+g^Y@Tshtn-3;Z@Q>`||1c zKlkn>v#%f~-@tJCer;M&D(Da%A6C%dE#nUdt{xgr0|UO-W9zqldHmkhk|WdIaDc_A zo{nO8_#gEruOip}J>8*c5svWFu<0w>7yd{6na<;5N8P$R6XiD>{sHQuaC-S^vQagJ zUy6^xvHUfevc59oUk-lB;c(i$t=%n#ui)`k2ig_XYk>Z|qN7N0JDgTMb-E7I*9jAD zd}QB$_USm#r%fQgL&P8WSst%lQjl-2kNp>u+N8uOffsi2Wldpnu!HpX2`+{`?P?^~v(P-ofF}kBFpd=l^G3cs}2T z_BxGlra+->NL{zOfn_Oc5E0 z^?&q(`q57nc#pz*6|>)^t9MMrRFRC=!To}1k#u9gS)04?=UA-crNzG_pB+_D8S8mE z)8YRYiTl&{mDUAcCV#%iXiT+sn}KKR&LD~{k<`RuOnfjRHrM0)EACA-U(gxtM_oM? zDcKcCm&pC^n;5b2L_2N#u{WH?v+s1?)hi_8Ly@$Z=4@aB+L!72T>Da`-2%HKkY}NO z5GgnoNx${Vl)6FQPx{>bLKeflp4lrWjy`z_@kLay zAma0p^itHte0F9fy#m*N&+vbD5UvVjK!xt4k4abn?_!@v($;MVWrcNdL3f%wl? z@F$8Jk<_EN?b%AeU3mXxN2jaZw}Zc-0q)Pg6G<Jx|d$9i})%Sn&JBbk+h1h_Z_xAVaek)-d0f00$vsVv67dO zRC)czPIR}V9`9c}Excx%VMxyn9}iW(iKON?91X6bKkaTCl_f_-qW~D$rN24^N(2t_GGv_oJ3w$b%?}_o$`wo1WQ94nWMA3c? zZro~y_^aT1OsxJGJ)GQAiT=aWcmRA%qNvq^Wha;8_YM5_g$A`)l1HJRt;XGmxLOp= zw>B`gMf^GyIscib-@1;$)uDt|9E|(rqNriv1;0Yj6DxMs#xMQ&ddTP6@Mo!5L8Ry$ zMNRrHo@)<%+<-qKOaH^NWry++{{s^rQsNUu9XHE&k4F5BOu77>U1@l_8su+pnnJ{W zQM7~Q!Y|!`Z!+cT&%iHR-lUn~{%X@(msm_+*c9RY%$iTGPku70^C)*5{U`SYQvq+m@H9pSxiE4%M}H|6{*XE~S##6h2DXa-Si zj-qP}bE7Y#{5n>4*2W*(s7HTe3(P+%&&BsOqG)ET4{Gs6}r0;CO<=+YZ+uUo(p=qBtH! zyG>jc6N~Wc`0slhT$NCC7jz-`)n}uqPmQeRtbXp{`7Pf~k!FGav_%^HSEA^)?Ym4? zAiRYCK83~Yi~~1O{+%p?Ny(cin&1?Qo21dc@ZZN6VdVVH(*reV6_l;yvwkDx;bwq=BxXyYG~u%xG{Hh zEsTF}T74o4R~g-`H||3r;=2fcEtY=rjjLb9r2n`IcYbBm zF~7&`z@9cJj0)o}mq3>iJRzww8W;BQu)Tc4au zEXG}c{q(Lro0QB&`NWlON7W-wt8?dX20rLv9EJsx8a4J4#ZnnvRJ~|yG2*{jgR`&O z&nBJhg76P&bR~)c8Eya2v#s|01%H2j8;dt>ZUJvr6ZeO%kyE59}#bsQM0py7e7V$*Rnf4`woYUXUv`w(9ANJcNeiSX+L`k)Tk)St6<^|k5m`F_#E5A~zet{*9RC8PNjKJVFz^s?+Z{l81T z+e?JvXGEFx|tr|!1dV@tvR!h!3boDFT8FNHq7J46sgCpoP<{rEoruCuPRBp*`jNGtJsdgxZ5}hB>k-g? zjyQi4D5phLp3Z58_(L7J`++CjGB3G_`kn3=PYR@R8Z>3j_8SO)9pMp-?2_GIyaVyy zckD?@`pRi;H8OKAe)n+V%J-66u}LoQ7EWD>I9g7dB)Xo#(MmGhiOYXpaqapKp`RH} zQhdKvPA6M;_x}L?w@zIAL&MHIGBdXxoK8>hS;PDfot(Mx-Qxi_ZqEbm?i@%8 zrpRfFZabZ}BK=%vPJU<8Sx4+4|2XHaq+o`e4i(?1e*pN;`|tZ)n{%rj_-{D-k%D|V zopC(x<6Fevpbl4lx^K5y^g#Kw!B?FW3*7ZDfA>C$4~&TPHRQOx0+CQW`g67e?>`;&rga+=qP zOl0+UxR}$=B-7H=dcY@&dtm%5r!%c$Di;91!SlD?`1O((@F(C`XykO6Pg%M?MDrhR2(= zE7->5`|OJQ@lVR>fk>I<5v1RxE+>EN$U2QZ5r1G^q<>CMx3=8X@HX(3b-D4AOKN@H z8Q|Yi*N>E3l2fal8=ElsjOuazr$1U2+D=6Mt6C5D|6iBW)V;b#7=OQd9Dk+gGfQWJ ze|SAV_@Bz@qQUMh8UH1oU)Si~lUd+@1b*>DIc;U=x$!>uJJ#p;JFHF_UIc#M`hG<5 zL{9JD{hFQ&{-yP~^e-%LevW;Mesg`;_e(jxLf7yrJMU=e#`zCiOzfG0ris*Y3&8nB zIsLqRv%CoU$#UcLm+9<~Jv!EW_+6rbcYVb4m<3E-<5aJctuFXuGqcVh#TAHJez zqVd_}i1wQ_5E=^XU| zF8uw+YJkoEhwd4lE&bE|pN!5ysf)-0?fTz;Z03cG2^uKp8u;7wKQ_d+zM}w*NNfKe?h| zq$EFv23Du7S^sK?{dxo=j`Mu+RV3zLF&^s^G4$N}b#0&E_r?7ETXT=4>vll@v`VKp zDOedpZ;x3V$Ib(?`=%JbuDrTj4P0Nh2NAD}q1#6H+`!JS_~E_^hF6^TZ1gJhzhS!J zq-0YJJ>*Dtu=Bh-b-DEoo1poRzajlox=TpOju@Kt;i}gi%!ibEy|w(Csx3+!YmfCE zy%JLJG=`S?H>|+MmuvL7^g|u)&JRRFTlDSmeXbZ<@HO>9bEJQf$LqHl;O>U;%`N>% zBK{mhtq!DIdWrQD?+Q-Z_;1X}{pyGLpS%L**A-&vonX4ACF0ZP*Z;B)o$Is{{d*My zH7PNVrPjS4?#8FB$t(kI{IP28qJc-D-vR^d&s2$}VI}$vR{^hT$nDPzpKBJ|8u2$Y z%p+pESh_hauVOsp-_M_qzhLj-ng#j@)(h26vAADvN1K|UPw?x5ldn(d!u&B$;k>(~ zPAq+CU+U$C@y9hoZhTO`{m%EPnBToKoKF<)v9zCq`~o{~IfXwzewVC&{RZ`8fl(4E z=nzZEh-yV_zs?lrp&=%58tPl2DdekXJdKp}h^4oat~A1ML;F2)h95~?Yqb^gxkJWX z@%_qJ`e^02+D<4>^NMY?{M&lZZrlI@`&PU`6n$c8|49~4y^y{;7Ks^uH~$trvLIhG zlVwB^6-$GjuP#~y{H6&v{wyA7ckm+QduozN#IdpTN8s1QcrZqqa`jh!c4YWIjGwYh z@%^r0v2@eg!w`%`&;gLv;pI@2c|wmJSvvff8O&b+b?XypYNS?(!hBj!Z*eF zU-j5nD!Ht8>Hz9rCo^t*=DE9Mn_X-8DVX_-)RUo~f8pOx`~SKB$MokA++k!X@-HGW zu>Ux+eepX-PsksO8-qLaFQ z9Np;h`a)ySdi?!fW?vpQ_6BVLTGAknifZ&8%;GoZaox_R{TXfwTI3N&bsi)-v-r$; z|IrJ!eeRBf{Fd-n&@_povkxu(8V1~%=bzfTVkb7<5W`l8o|9R^Dh#%Uh)k7s){jjR5n@c!sOHE_g`HN*WJbPJ28eo zsboSNZBgT+ooH=EGinx?o+{6rbxlQIQnRb^Qfo5SMc|n z<)(Y@Vg6rh5x?ec9PL!G`mvRWZ<7w!e=hydd>GTmA>a}{1@&LQRTB&PIIo}4cBP9q zApB{hFEUinj?wa^KY%~r{ZG3uHGg>;ihik6n@CI*^ltYLOY9NelJ_q(eO9{sG-wBW z#8XjSL2HG6ICUTVp1l8MlaHS(z;z7YMsGnRwG}jGZ^E-Kzz6XDp=qX{Qd#|H_eHCl zDrmi(4dR);bNK!5aqo0mF?n<0?q!5;L!VgFJ=J4C*1Zin$E(dYKxuO==XSc(Gl(pQQKLKQUs zYWSl()Q|NQ>S*~Jz1*y+ic!a<3X_OJuAp19rv$U~Vhyg-LMO$~HJf6vGtM zKzF=oEyjPH4Y~cFf!^B&twjGXH^lgUjDi;1?6PPD{zrz~_%!C@+abp=zWQjWf`6uh z_I|QzvOmO2;QiaOV!fx{2AyJr`{iaT=$JdItNX#9ZN!!D$p>}bPe6Xh8DW2Su7Xxk z4tycOdbu&~yJ7Yb+`PlM0hp*n8_yG!6e(z5_lnjNF<#L%>8Qm|cwBIA-2&^4Cc{Mq zHxzWrneb-Az;^=oxiJ1$qw0OVi}!g`v|qUOWB-#UH}Av#ZkoDl@gT?VpZCJROwFDX zg-bj&(ao6S2gWaE-2RBNQ)>H*cGxeg^nfTD$J1`@cDi+k{O>Ap`8SRq+WH;JL(d%F z_ii0ecLa~?eiV3^Ij3Lag&tS8Lf#Z}d_T8+JdNrI_#$_+y55ji-k4 zMO8OI-ky|Ozq@|x-rf$7H-L5_;-2wzt0-+B^9PuRllm-wCr9ne$OFEN;(WGWJl*X* zz1dj+uPL|x;CXm}YzWH7q;euD2#%+346O2IK;C|py|w%yR|1UFtKd9BWew^_JpJZ% zxiZsNHow0+a!dM;)`)+oMR!sV7f-XZbmO)n{bCDl{dDxm@e_9Uzi_f&Rin{fts)2t6GU`f94ii#rw1; z#Jec=6s2T8U=3M^!_Ppz!0{o`=CXqNjfoe823%ZH)^Z5IB)Ds@68n?rK zc4d6uc|Zbve8R(?>Cc(>KPY+>xbk!-j9)BwiNwPbXx(Y?`ZdwMJivW2O#TC_zumC+ zMtfid`6ndMT$2Q49OCcK-`~-A;e*rNq5okvIiiy32{iE3t}z&D5dEqge}y$$7Tp3) ztBw|xY)kl~{AO3<}EMqexV6A%Sjr_7e9E4(Olku3>*Cfx6k($*B&YjXhUCR-W4(wi)XW zz3t(D_B?^Q9y#0n2J-jVp4*?Z++%K=g!=Q@9^Y4emq5GE4;;Q4@(pv~`Ue`Sd)2rG z_GcVUL&u5KeL``_1+5FUjL$ z&JpyFBWm}@_tg{Wj#jJ9*nT;2=K6=1HC&fZM18D){Y^=q#Q(DW{b~O{&;O|r&F!;+ zF&~nd{SVUm|Ml!%bQM<{;ye&{ex_KywuT1!pQ$sFl&nak@&1b?r@&{2^BPS5&Jz#S zh(msyb%TgveIlK`ZGhV|{60vR>z@Ly_;~mN&(($h&E`Z}tIqsLF&J;?a_cW!2i`r^ z)e`&3x?6~NcOsovVd}oV$bSKUKWg6D(zmS;-!`-tq6dkz#;WHB+4yxQf4-nW%b7=y zgWk*TZ+)Cd)9OAR)fxPU^tkoM&>m|)VE91JgJ1JJk%qNMc46b$OZ@qQHTPro3_<<8 zp(iJz*NODj-Vb@-&^}1?Yisj2wo$JoC()k8=x-EM4bb95cVKNa_3GJdx^r*qz+eDe)6 ziK1T;HSSjHS|D(W@fyRIc|UdYgS}NZ3Mb;hNi-!?apnMi&*slx=qNu9bcK9FjiNDr zOrrHJ4rtgB{15o^4`wqv7R4a_7e={6yd;T^@|{_E3C5F3<3MfvW4@|hEZ9PAM^19>bHXl#y@9~zu~@5_QRgzO|rE76PFz;T3iSIaVC{T z1$UC@v7EH3*P)-c{QZ6ztNgAmhJGrTVSVyp620HKZ_kR5PYI_5mcIsyh&B6=zX4_# ze?3j2siAGhufgwkabF+9y?tsl%R%`)HpBk!n&d+< z!GG>!5?xb&O|c62As%o0WN)A&;y+zUN(#OwQI&&g44bdi!$*Hv{4Ix`Y`7KjH8oEl zV%=og$7h9jK7d8$oc~1Tl6H~b>!STLzf8mxlj*9pvg0609_8BKkYSO_oS^@y6zi8& zlj+>1Ihh|3|7YB1$KqdDFnK0hA2+Cs{o%IB^j*Hw(-y!LmAUriwxxBh0m>)6@&L3? z$<$rl@dC52=luO{dA|DL%zoZfhW+$PrggVjRY!M4-owd=#eXDl;)HW}f3A%CrTmg< zlzHv=1OOrnuKj=WcJ|&Z#9!3{_v2?I)AjY{9iEKxna2C?MaVx}Zb$pO+#;VS1}4+x z?i;4aAzxcdPQR)BqC1AcKD%2MpnfG&NzlKM71qbcB-5kq zOoO|FKii7qCpXT&i-&%OS;gUg!(_T{WYaBgP@kS!)zixV!GD6zBh)7w>#6V$Nv5vm zHD>NXepd1KlSTWs31i>?*=QY#^Iyqyty=km-KS~F_n)3i9)Es^`fP18o|G&@`9vF} zu0s2<*oJFARz6;9eYgwsWHV1B-kD5QYr35^1b<9bPXFFM<7AVNzm%#AP(PDtE$f%E zhiES=Rpb1_T#K@1TVsF5yV^pc_?AqoNJN(HkpDZ?xbkgkGx~Zy`j3~@)?f~wLU;FT z-TOT9H>Wzc|In`F(-dcC^gq>ap#G%LBl`{Gdn5h1HMsicIL6QmM|;SM8gf!#o&Q>3s?p#iV1hQ5V<@@+Z!i$Wwey}-Z3whfVlr_e49 zi)~Cn-?Qzg)$iBSEx)uy|0uRQitm@F&}^@&;-Z`j`^;Cb}g=c=I^Yjk57pcuUcsTwx!U< zD+3DKfqzpiuKpwqTU2)x%71q)>@V#}p>s7M4;!O=t2=V@;|ZzC#m7+pnmXcq(ZLj& zVgDn42IQIL$h9BQJ}o~KBfj~L=0tong`OXE=%^C-I^Mslqkr%!W%2290%SF;h_fNo>Q!mK>xl@4~XV_%6~b2Kycwt z(14(Ue^U+o9RL4Z|Cb;i6)(NJBu9HKBJo54dPLZrb4~D0Kk>Z!EtMsl9v zvv~Z2te_*q=P-WTR65FkP=q_^`8>Y;{=kVH`|`!0*E0UvsdR-;rI`%hz~ixD^Jcq(E(EQ1Nu>?ij|ye!Z{=~( z(}l*2e+OuhB$bYrh0d!BdN+^HOt~|X@$X~&?NV_*XK^zoUlET#Gj{1-5A-3%-!YXE zo6XM{ew4>8N2g6_0J<2orgJLowl(}kL(r#q{7LR<7lxk&E$Nm@Exm^Xu=2UUbXI8!}v-O7ku*f5_6W$m2^QXb!t?*$nrMh=-@r`>Tr^^Q6Hp$ z`>mX9R}aDXbErs73a+C3tBg%3#P1^BKgD68x1|SYBkX5rUZ&DCp33|NRx|i2Wno zOyQrcn??$1rBT_w8v4b+4e`B5#_u?9^UJjsxW7bi4H1jesFkCq6^2vfFy_Mye_MUn zv0UW;n4W@kX_!Xwlkg{KK+wQ{pa%Z7|Hm|jv_Egq`Bf*@|J&%W{@-=nkJ#OK|7^dy z>o@+o8|&ZpIuk_&$D--mvmPE!XwTO1>wlSFN|r^T{n?`HL++Tx2<^vzV7(Et^q--D zzqNk@WXojJ@^Stfnf+J62mt#56Gzr!{*6`n@j=Ztl22^?y$0?Bl7ywxms@&_8xH%o z<-ZSI>auyJ1b7|b>d183e}4AJ{-DJ?|C(m@3x;9;qaM!h7v!W1?E`cp{0SQPS7_jG z?Vt7k3-VScY{LXgM0#uY|A*F|w`d4{_vPnLvwNS?evdi;{&bp>bUJC+>l}OFA-Io` z%^%X!>f9;Cd@2f1ow}Cp8i~t z(--RpNrYQ}Fg!c@5vB(u2O%`y)9KNw_B$9pjK^mNUHi=Z(Pk1OBGOmVHE)(}?}Ub7 zA>r?Xnfv6YfGe&SOp8{ymW{<|+a z&Zhl9cS3t4X{^Nh)s~wK@5f3MjXNZk{8lak&_T9Vho0bBdTk-y(N{LAA;jK2Z9-?WdC?lv;5+B7vi!|*&F zm$x+T8eob2Q=LgfoUWvG?b?0rkMe2CpMQ!U9W#=xuXWSK{gw-n|M3l5GQ2yF@3Zar z`8DM4tLsS$Rw(J%l;%O~zR>CLe{}@k;r@=Tu=R`kL#;^3dL?x=8y3y{AGh%MsD8cu zLlI7c`$i>am9$r9)B0>Z@-Xk;+Vs7B>$RYd!5>6@UP-&FN`tCZVE2J?`3tyZEMokR z;ZLi%uB3O|rh75`8ILc1al=i5`l+MmPsI0?baSLb^KgU@l~Ut2`L=6!f=he--We^yzel&*1SnFATgoq5YjD!u@kWD%w4@ z&c+tNSM&3SVNY%lmd-ka*GN?~=FxZAThJTOU!z+gZIU+F%kbWf{#D&qMGen4xytZ8 zJWj?pw%m<|>KNy4K|L>E$ftT|5Hn*|o*nW@*=Up_JD%zooaUFZ)$ACYd z(z9iarp%v{0vGjH(K+Yd#P~unHvIYN{?98pW&*Fx&fg4HQJGuca8K~N^8C}pm$OFz zZ_Lies8zK7#G}vWfNsv8zsdXdqsIi$t$?eCt7zalufk~15+3j0FRNQ3==My$kt$k> zKaiv=^2Ex=<-z$7A1#gjwK2bNA09tl@5*2qiWf1+;9@L@cD%5LJk2*fuM=ba?$RW$ptXz5holX!e^L4&ju&{Ns?sZd2{=fB;^ z@M%0ge9H44-@!jirxKBDMfu#idc+s_3LX~^uX&t}i&ukRy;DU`_v&K9@HIT{L9UxI z|DFxt*X&Wz%9UH&vhm?QK7Z75Rcs%GKgReEsHob)O3d)%JbqDcny(CszM$g-{~#5e zY})WGvxm=o`FuP)$vhDBH9?(IcMfX*7^Ona$86L{xvv+nJkE947$del?!a)|8GvX^J8tl zHG9O`ySfDH`;HmZO>Jec9O3H|&VTccPM3iM4U{)p*aC5eVBh~|OJ5MIyla5j|A_&1 zwC|tp|6=rIt^LD4nkdV=iiG?N8u*XZz|a2wr~TvD26q9Vf|k{HG{q$d}($&(6)p-f3VXfcjiFQ zwGf+nMg~nNE*Z?`bF~S#K5sSEcfJa=D{x7E28~>}Zopj7^$B-AtKQm(!|9-#VEiFk zkUKnC@< z-+%lta39Fa_@k!uugd(L0!alTK9)guckG)K09wlP2QPToUJ5z_@oP?G&_ma9WDM`i z<8QhdzdnKZWdz^%I+H;wIz3r$3OWP#rLg$b9W>k6d}s*xC6_X&>x#Mk7(SH8lNZ;z zVGaF{!F@}T>lt)yy-hx&5dP=)30vPS{2T>^&BYhwO6~~bE2u{J`zJNP?0@q*MZ(YZ zKU71)XnPpAhO?Zq6O&Ss|LRmy5~KeY6sC+$&xE!!|LWW%Df=b;<)xnz`M;nsXe;%9AsG~Z zWQHo`uPzr^N>Y+MG4}5z!|cBq?D^03pNx^N3iJMG(obva7>a7&%JK1NP@3^VI&NNY0E-S4PXDQPxin|UDvf(Cx80m1%%s}|u$K?CJN1A_gRi((csDQMug8W8ONw`vi76f{sSG{Eft zf4cwo$L1VcoRdYSYxn2Mb_pa_Ue+s1NlD6Vr7Bvx2v>%(rl-o1m1Qk!LUej^bfPjf zT2|HzL0QSkWxZha#|~{7YW3GvX&FY!YHMmrigweoY@?M&$CUBf;-7Z$%2rgN|1THK zypTyj1HaXPVE?~Wi}0hMfpVb%!T!rdF$9}k;|jY zcuplxS1{j~zhG9)JD4;pYk?DE%Xj1pLAjGF2HTz`JLa zVeR6UZBolv&h+R=aqxMfg$BK)KL>VE^T!n1xIV8u+aS1pEK3T7(}3 z4U`KF2=-qtido2{pn>0NK(PPcszvxw&_KD+fMEaSqL_tD3L5yW1_b;6ty+X11r3x7 z4G8vME{a*mq@aP{YCy36->OCUQP4oS(12k7<)WB{ObQzKtp)`9|E*et9|aAR3k?YN zUoMJS$fTfw-)ex_e`g?n{{F|G@Be1s12)FP?g3B0!~WQ}e;EDq`#Z#KTcKt>ANpwC~8J>LUNY&vj}AvsWLJ#LYa|T*5_6K_=Zmzikckd z(V(o4)uzhivgoqTd}>N6`zk;g%gQbpOOloOm3WGzzxlMoKl^0>q5s!5X~O>m4U|g_ z2=-qti(SaHpaHE01p5~%f}nx&s{z6O%Wv5WITth_*uPK*1Pzp54G8vMe#>6Sxu5~T z{)IXqXrTORK(PPvTlPZE1q}%HFVq1+1Lao(g8i4@vKMkLXh5)kp$-TdD8CvI?7#e$ zy^wQ31A_evbwJQS`PG16|K+#rg`5i-5bR&51A+$1uLcDBFTZ6k@w`@i*oRlvjU z`?kfy{@B0S9pFFj|Nbu*{!^84>{{irUR1>bXlC?Zu<)-)k*N~PcmY@`&y0|#DUdXwi0m1%-Iv{AE{Axh3|MFY*Le2#Z2=*`3 z0YL-hR|A6mm*27%axQ2?PuDkGE`si|e`Y^%yl$tdgFEEGveWh^D!VWVTp+S6JYot}xho>|7SvRiEAWo-jc zfIKDZzt@1!{|kM9pn>wM0m1&uZ`lhu7c?N)zfcDR4U}IE2=-ro%U;O2paH@Dg*qT; zp!{k;u>bN~_Cn4D4G8ux)B!;Qae7jiCWK(K$I4hR}3zZwwizx)qr6C<+tpGoC_Kd>|dw@f(FX31_b*rzhy7vT+o1E|3V!QG*EsuAlQHT zEqfv7f(8Wp7wUkZf%2;X!T!r{*$X)rG$7c&PzMAJlwS=9_FsO>UdXwi0m1%-Iv{AE z{Axh3|MFY*Le2#ZF#GQeHI(9yX~P7MDkVK4DpDEUuu*HG584=y2u}hY_SXtOGWt8- z!}JI_q)UjqtcCQSz6TsPAj@UZWqhqNZa~h!jm>2oYf4l+Q%xDi`lma)%Q)s#Wn5~c zETJ)rR*{vkhmwMyDO42 zqtlhq^5|40D`%!wr8GSyDmq?wEHzb{lp?oRrevhc zqLosWGP<8CI$5bmN&f%-{W}pFqh>kj5KK2Jb%A2=T%Dy%f9% ze+H4P1AP>g-U{z7eF*uA_uSTmY{1(q7-8{FaUmoVZ*OZt+TyK1U~jx#kg;ZXPxAy1 z-jf0D#5=YNA;ox4{dg~ELCA7OyAv`7 z?_vmh3GaEW2w9DHHFH8d@V?%gkh^$43?$?=-oCX7Ng_n(|Dg-vPtZU))qr6C<+R|1 zYzrEI1_b*Ts)3+^@~Z*C{>yLK3pp1wAlSc92Luh2UkwQMUw+G8$hn{a!TyChAZVcc zYCy36@>}*o&IJv~)0Osm6@KY~`SR3;PtSF@8o+~roQIDO`(y1yA%6R_pAd(@#Q^^Z z#lzeZSXAG2-h3I^&o{;RR@-x5-52clyw^8-8{%bum1e>h6&9B=QD-jva6hnFrYx!7U>dG7X2^Ht^p#G>ec^;3$kYQeO@vH~kgwLS;En=$ZQ}`< z0ymTm$Ws7hdX0EBgWsVlSMWa73A^21^9i> zsj7SH_Vf(#O;7&6|K~@4=1kqHI(4e*)Tyddr|Q<7vuh9t>}mN)vI%~0`_drzE3^eh zK%A8SmdcaxUSR1~;-5%=5%|Vd;(r5K6Uc5Q{+?Cp3S0{Q_}|Vp$hjQP0$1RwS@qa6 z!+_|C{t9mdR)D`X{J9idfuXI$@1(8*XKW?D^!quK)bICnpI{Ie0^~QtI4}MGf1Cp% zD=B#3%Zh*gSLA$0K;-36Kz{NpXMo-L-(VvFUpY7k&cc0$9`JJ9>nlO98<@Xk@_PpV zPY(}*9^4YtKn<>6#RNqB+>Rjl1^%mAnGkUI2PDILk7QE9T|%P$!MhXBvACaENoU4= z_<$fFNl-lmnz+6BAovyTshv#txc4!EJ&gPLSED50UI(26NcUMXNa8>42-4u5#z6Ha z+%9^|`*B4H*$ceUfgq5xsJAm2pMZPj3M!7f{i#9l3Gfa$CJ4rGZ#gLl-h+GeTpcU5 z%*@R}f%?51{5uoi;6DiN!HVFll|irv;U9$Sx8wiF*+KAk+zQOQANRr8LC}wT+~Gmc zjVlxJL%2)!f>*e=9EjqAdnJ7PCGKZH+8cWN!VgFW7c;0Yz}<3K5WE5Rlrw|ihq%|g zo<_z!|5y|%+`p1;AJVm-69hZq-VFVDgbz{9<+!)L5}x3`7uW-M*G@(N_Bon~0RMbI zhRnObrwYN<Eav2=Km5 zxv#)qgRh7}aO`nG@Fv_|GQAdeN0|OW-0gPd{4(yD)MF;;o=>5?;s5k*Mxp)!%tR!E z?^3?oaC>t>@H5`cEmUB-Irsws5?%_UOU`Q=H?X<$k(7Dx~(Z2qw z@%DFbs*Xsm|Ld1eYQ5`vd)M)T1365E4)2@v4sDRPC|;Dx`o7v&cmJ%~=vZ&x(5$(0 zPMou1eNXs8Ms;J)@aWXZ)JA)|N7if&9XL>1VT-?F{V6BT=?=>xq1Dw>Co;HI6`G_V z@i$~%l*5xz>h7=9#)gNdSShbSO(!=x($~{OhE>Lz(1^Vweex2}aJ6TvM0~Oa=v`lF z9<_DVk-=(zGs-3Jb&b|~k&8;9m`|olrF^l{(V1&W7lTS$G2dCJBwAZD9hvg-pwgPn zC(3i@Eea~xM6oSh$#j&{ZGzZY=g)R#QXpkYZOmy4N}&T<;85@DGXoXWIj(#1-mv)rC9 zY6m06L^nzj5395%O6@@h%H4JtOf^74Wim}LscEX`yY(@DT+XW79>Sju;Z;7a(o zY&1MXJ*zWaA}Oe0P$A0%P|hz&cT_q{GQyf?on4@6d|}pMNWP2C{7n7D1FOd$n3%-nMqPqomWhANXpM&x3iPH(&n9Bmnj9=6L_or$c7LB5r+ z;?j(EWMm~*V1&wdXiY0Rs|A%a^DQ9J|BJ;0_30>ASlK#P#yt}vqg`jNR7oNTOorul z-1vxgR%gDPU~nGCJw!=S7RiZUivqRtF`vBU_DCZRncDoV)sN%Ns7(jvm}awb>T zbt7U4)URa5XdJmhHmws=Az!3JMM#!OP=t#w&MOj18^<`AOeEXW-bjJ`nE4=^Z_6;G zdAeXMU8EwKp#@&FX9~zkXD(6c$fwepu$KbE*&UcNE8`CMT2E?s}WK#gs>s=7z0YikSw~7^EcrsNV)6$t-f-KR4 zg-XLD8j0$GUZb6*;>JJMNE&AYV_}TL>1+@+qLA0}Da-uzNx`ErX(S9vMF6MKU38LzPMLbOgNT4B7Y82+MgtA2o5*_F!cA&KR zj}NLWo!0=d(voQ-rK8Fys$*Te7NzC67Mbcy`HWBG%lH$W%NVuvMrO5tdZk8ul1*IxB08NrIW(i)Foqbi-_sY_R~D^-(@1yoT~4yNW-hEbKp z7(yajXiu?X?kp=+OC)EkaK-RdT?}P6Ma@i zKR#Mm=I4v^=7c?{q_!ZJd9lngsFP8qLloH@OIsOKLpiZ+G%mb_evN%*T)0f8EPP5! zQHGi8r7HFQuDba2vU-g4GH|3|m_E?m8GPOFr3`8uXF^NGE>kj1p6_7wO))A<6UB^} zPh`o(g3T!D&ep_=idiayGK=DjhRA@EU2as0RJxo%wV)gNOTh*-!em>WLYS^Ia-4QD zpDR$jmW(bkToFUfr9sy56tRMqItwBcl%Gk`h*bjujf>pQu)@$HwmDr#*q$I-jhOZj z7aM|B(NRXP4edMPFM&juOtUB!SQOGJ#WRH{Cs+}uiwyiMv*fv;8kzHT(d-QTiQ*Dj zt4e$uN>L$S(#EtwqI1^;308^~HuUIcxwNqvDFMNrAWBl@(y2_MajFTT>{^YC%6_Rt z7tF&Wm9Wy3RGoFB17gb)!*~Vts-q-Lhb*g_Yjx6zW9Y)kJiTx^i_f-BqxMcjrBX(j z>5!RuYmmkKsusDeK}OqTXp=E-D~dsjm)hy=5$cj8wlWv&hAa*A>%w5fs#=4|ubfY! zv6!$Jmactc{lkk!q8a##jTR*hun_Hdw{46=Pi}uvys)8OtZ4ZxT0q@G)5}-Zlt^AV zlQw-_?C-kV@^M-i<|Zr=Q?|?vx>hPAGGZI@)(yvyuGZL?^hR0GZDd+6$iiwVG9PkSaK?obGC~T%NWTHaT zWx8W&rYN(}d`;3IyrDU&A%*dn^&wc@+q-DxO3>b(&o2>oNqV_BVoA%&LrbQN1zn$t zouzhppwHxsB}VGB_)RK*tm$Y$ zzjpMq_AcRS$c}_`vAVFXsdlmI$jFc!v2o^AV}GLdBG=@H%9Jd#z6c+?qQ`Ji!RRP! zFIltBJ9*BW$uUAjUq(XZLP)y-!G`ON29uR?DGIj+P3pnUV9`w2&d7;gYh_Rq71Ltr z@Iz$F(AZr3P-`F$nn=B1svuj;>))I(C6_R0`=dX{q_3$uUEwC)J9uLbG z5!2$Dyehrb^?f~6u3@e+heRHx4;crt3E3W(JyBxg0bPOh8+}CfFj<@=vUS1pQpI$e ztXksOOF7PwXHy>WGV@GbytP{9*deQnL8NqnKR!l~&F~Y?OBZdHpbBq;XiIgX=mz12 zEt;RR#Kq}4!>h8-n6KjqHcv}PNB!1pqOH`p!X8><1O|C_yo$_x4YS+ zL2Jz{6HS`cEf)8-?DB#vO6cY~;j32Px=h5lT$V&E)i|FKdfW0H(Gby=EQqC(6AmTK z#PgF6<|$af+CX(bt56ikJgWw6U)+Snbndw&-mV(TB-=K{+n7F;`w|f2SJO1s1%H1HA0Z=2q#h*1{w*Y=whe~ zgUqam!L%dgjM-Y73|rl5g%Y1mH;L4l%!tOmlwxmP>&B*>K54O*q>I>r+ti>SMan57 zaHL?$lNM~0((A-ScnNDKdRsPAhy|88{J=s=&Olg1+77m+Q^_zPf|)d1cru1KacC4cr)D!t^Ewk4Yx`wiJuzoN~UQfwELr9yVD$rU*R+rg+G7M&)v zcq)~VSGu!s$HqD@?*|wjN`Po}b>3LKOXT6Wpb#%Ze=U~d4EKCuS&qC^FOt_-u*esq zo$0Q*qGVGSgksf_4O_qB3~if7J1-tiYNcm2tCp%8a=q@MosEqJ#%5`9 zW2v&!r$67BAhJX4N*7VSIH3V?nG+UQnp9bFfXcD$3hH0 zS}=v`4x1e35>pEayUJ{;nH6Ph^MWX~AmmDI%C)XSlqT7Qf`WiM8cSL*5{a2F3d)u0 zL)6wINUDHAK9}b}WL>IwkQoErW>*8$940$sGK8KSuQW46IGMnUWLB&KW`PiSl^@Ql z>~bEBv6bfZOb(?$mb%bS<_pV3i}EU&V#Je`Oh>1(lKz%wSl1b*Bgwd()T64p;iZ8{ zPjZRY+Ze&1s&-#V%^b`kE##@`md0<|6Jr2fLlI2zO?Fw#!fvwa$hD`6LabC?F6W0_ z1LZix%F2&98hfM*l;OB8gvq^Jhb1Nl#66DKS%49&tPt&V3Ii0?c3jfhWje40N;xp! zw7?|mb1fMLmq(n|xD$I8g@=Px`Lf{8V>BX;% z)D$*A8JWUX8)u8m1yL65=`07@jSwIiE%{|8&QS9L(BZ`1?r_ac1iNMoW?_Vy03DWH z-eEn-Gwr%8&_BGkHo3&ZwAg4Bj6y!Da4Uz#oPq69Xp__n&~y?*bA|ly{2I@Z2SeJb z?nhWAe^bMHjHzq-IwdE;8aX7fPW_Z^|T>EO$PYaOaWkTS7k7s;{`BF_qLt zpyg%h==@rta=s09K1|Nr0H_JZd}h^RyHDcy<9Y2c77J0LoRu_oeV53Hp7X_fD0|}B zbPIpDV|fx;`EVMI$F zGphBrV@x*@W@wOSIRk^55)SAC(rcz!G5Hr%UGinYazi1pCNj9J~rRj`yNkrqHD9BITj{M1iY~^xD z(kyEjFzUjYH&S7?GHh~!bc#(g_4lNqFj5=oF~;+yC1WHK<-Hk_!02dkqS@!3k-I9Ds@jbg>vs*<27#TUiNAi>NZ zMcaS~L-1{&5x9_w3kBDd$SNJtu)aAck%50 zkzJ*Rah)Bqha<5xTTl0J&9%~*`Q;&V?XyQPWg9b*Wq7~w-aHK)}g?67#T(2xe^)_CF;l+5}P%19Tlt6l`5K_MkQHx|c= zfxux9v;$H z{Dx&37ZXo2zD$}R60T5q>%!w?A~B2ON8wXj0t~L2KL;(Lf_BAzy4|0*C*6#GY~Nu; z7>upmZN)pki)W)i-p=CkPnJoX2vnWfAx9w&-M)5U5vHQ-@J041s!QQF-7CdHl2;tr z&f+C@yS-lNl-GHkM-VctdU8@8eAK++kE4}VNUhI4Y3zAroF(G#L0p^g^TT-(TvlCOXs?TlVI2!>oCG{O-RGX zXiUSr3|yiZQ(7h%xtH6;R77P}ES6mLl$LWMY?+ltx$wpW+gJ0fOk3&aJcm90Zls&D zF=B(l4&ACZ(nzQ=%-4sS6994+Mzb?ylMK-83Ce~WhlZt3I6Jev9Z^gb^&JS&+GU_p ziz*jA4EJ!~-o{PI?*9H&+?bTXq%yL)yQex;4h`1iVCNJEC@IWTSMan}cWslgk_bl= z@GKd7Z_Aq0qR5axEq#OCBby4{Bi#d{n+ZnR98;6&F`=hTHPBtZ!P=P@9#m;`_!=Su zygid{8%qqHdJ2>2gWYs4F+wVB8hIxrI`%CwbeoCebc&N=j7ukDz(na}0Gdkk)Yew} z`^~M5tdR5a0*f5u)zvZG&pk4tCWePwx<}*^2ZrW$u>-p8H}K*CGI+Pk6lm|1QUuSh z@#$j`Ox=lAhj5Z=dYb9k$ z&4%rLm>w>Jmz=^fC++PE#2R4Vs*-z>EK2y!DZ3%O(W7IXqK5AiaTh^6#w9U?ry^#Q zw>G3VxvlQ4aC@Jw`!M7NYlkq^42}j^QN`h4gsk?(_&Yiz4^zpMZr|H015e*zMV;t=Mv~xx+lbYG6_t+j3HUxHA2Fcs)mUVy(#9^+aU^_EnKStB{k|XK9v## z;Ro5esS;-@bsAvuIyUTkTX*R_NVMi+DJq)QNNk5s!7 zgsK9OVo z8Ou4jmC_EsI@-~)Y3!4-7%*wP7q#TxL32%2ecU)?X)PH%i>VG(10%0}3OCk#zauUw z&5#}qa5hUBv1J`5-O7wFrkK1mAk}A_mQn)O#?j_D- z(Y`QZ>W8W*wXygdI;X+z(S#;EdFy-g+QN(jxj4=*N|Dh$q5^#G-r(C51 zMIMQeE2ZSol~5)mInyIcqnx~l5F@Ojk?xQ)TO2MZ8yk(Xo8e5}%r{(2mat9QLBNH< zS$VTX*y4gX9_|H6bwaUm4If^TYFf&@bExd_TZl5SJtCJCYm_u=C~@wN5tB&GC~AKR zF_j}!l_|>H^yj!CMdEG2aCp=d9QiTzcH9%JFwpW*!pw`4Gyrts^~l<|`Ve=&g5|(C3Zksbbw~1gjd?Z3=SP&2oF!GwUM}8AqLFtNv#vD^(Nh<4 zu_OGJg3XO*7hZtt)3$+)nxO%6RK$F##fXIr%FFuPq?qWCCLV|5!p5U&p76LP5#Zw8Z<#s%lPm&QYg>y2+oPSnHs1L07hcz$e(O#4_5rr^P@^qbu{#Yt; zxKpl#a#=xDQ1q^0xqArhl4ChGRL8*v+>{iktdX+en$lN5To}rWd6~`JlBn4&J9WW4 z(GazR>FGs7%cXJgq57dLl2JrsOz*L>YDNz-5v`NMq4JiOA5~1wt0Y@6b$Zw2n6@tE zWJqE+hqHEa1Cel8@~8`!S6mF2&Y~t_+mTVKK@dlvP(A#-<+TRkt*jJ`y5#ae&8u+z z6ffJ>u~ADV(8Y;C^aub#~$si?B5PybaMhYNq?j!cSE9P!Z8CC7~X(Wh7)u zGN+@%Zxn=eW-Q_Eec1_@+kI4_u!+M6BzIf{m)~#+B$uBwh!gEW4a+c_<)XfgIG#c* zP6`e!NjV-jy%4ugjimTk3$dATSH8D37f~7iDg!3GgE_UO|KanwTKrTV~W=l9!jG& z@S+U%aBcakW5k^$_ zi7;gJwtb|tLw7`E$Zk+b^a{iLiO}qF!Zx!nYEexlh%}WDv`G;fL`D^C5Sc_va`T|8 zzilBIc{NHWAX*{v$Tg0}0zoTj%Sgdw(PGq(aiJbb!3+}@^Le95=tm!1GR|>J-f~My zh(Mea$XpX-I2zy^49Ey5Vl4V4U&FNX&@M+SHPQi)iGci^?@6P8tYRe6y~KP&LrudWA6? z6pp2i_BdX71ue95jE7AgTR$5^zP2mY=Nt<*x{YlOnaeN?qV}t1@8#jecxClMLpmxx z?xO@&Fe>^sQbp!6n_97?cZJuJ`VqE-?&eZI%E^4AI4AIp;?yS7C_?0S!h%R-T-SNQrR@S`DRxB6 z>(bhDOcqf|wZlf}+GbPP$YN`;x?0~Y6W(LzlAR-KoK3fK5w{q-jjdL^a^N8H@xH9* zlhM=^Uof2}Zf;SI!tE$7laOgTFO41j$Hy5(TPLoll-!!wFkH(#X{6nOn;^Nq3+QNz z4#3$3<}q{ET%`Fq4-u)F3sich494dUher@XwFPgYuGsfz}yS6U+Txr+H-lespA;fIS=DoIR$yg)5e zB%@H6e-vvov;pj@6xB%US6hyCS-*KlLvlq8b~t8$lS;}VcE>HQ2f&h7%rA3Y)5O^G zYG!e&FPNKSMCbsWMRXp$OtQeLX&EQ@%;gBRR_4oHs8Wc zV{$ABpL8baRqkRr3G;5Yb!g_+JLmIm@c`f4Z30JSzA~G=YAQ8;tyl|}z1ZPNl`=DK zrMzdkK|-vP9;OTOuryZMkBcA?tP)?cV^#?L**t5J$lK1A9~PW2S}yO9n}JND1(mq} zw9_i4u`*qKgYxO&T4m0hIdGHfiP)LwFfY*6c^fC1XJ|WCYev@7IKh0Iz_mu5w{fBc zL1l!?=SHh8mA0YD>_vha6I^Js_1oW&^FkUYJ=r9+Vqy|C@H9?*ip|%Fl}T=Wjgu_m zl#J9}J`>%}i)VbRxIUn9!c#?tneF+{^e2wIo~QCC&vJLVARr~i7>kD^MV#0g-L$T{ zN#o>Zzp}`X_!tw5%R`;O2#}SdzR}ecGb@N7%~5HxBDHmRVGUk{;KHfSe|8Nz5_B-RJjMp1R&xP>Tg-5ni)%epQNc{1->?fmh9KID3$%qabWQnX z>0|t2^JnyQ<)aW>^T8o0Y@l*arx#&QX=w9C;n9KK@GOj@W%G?NqEznvgobhEW0~x0 zwsDIG3~7WU*M8_x`9_gu#5Koj>I#Duz)xX|Xx?|?rra#YP#VOW4^A)~V-Yf~)&PkK zFV`rsZuzJzNaJw~)m$WDF1R;Gi6l1Kx(QKIrJOn1DSEHSiYU~KV|sYTRZN;vw(86& z8rghC(~!$j(DLs76udgCJZnBq!9R~AHAsMvUDo*C)ZYvw3%;r^jb8WwkmY!_m&HTakocqvW zU4UJBiiEfrO=^dnFsztQv7~T2s5&Xhz955`JDXv{w9~tT?XFyo%+`e)5x4a8NH;SB z%aw^zYhMXJ1r+AB%slC=CvUd72)Vv(T%d5SvNWINyEt-2Al^@6b+YH*tyCsUOZ6Oz z`A&wBRJn>%4~4k*E$;yU`GUI3QVTB?Wjzqz&?jpcL0w4v}rc6=H{FnSOQW(R|m>&2U8mveX44F6WBRZ6iu7Rc5*G3BPlbIUTEn~h;WMl!yv`B*yFmi zoJMq_M+118jva7fMKMBXz6~tXNt=1wCEm?k=g1eNg@}_|44pXEMH;;>j4h#)nMDQf zYH2? zV!2}5REQ6BPmJNRm;}Yjt1?s%I_XPOPP4XU*WRk-q!ZZo@WPNv8z^EW8^Mv*9&3`R z7%Rp4I?$umR}78%d5=6jn<0Q(;7mYyPNWW-5I$5P2j`}`?5zzC4au^1D&-#@sjbyJ z4P{BfDKokIx{dz8%Y?d0@q;i6)nm=C532KbjVDA4cLpgzTd`Vy-Kwr_`rdRFAQ!9^=${j8nmoZ>{T$BAkdkevEJ+jFH-h9%>#wORXahSSVeg zUx>&2#2Ym@$~@+;iuF@IhB$#wB3*ToC-{q(|n zZqN5B7kY@11xOU-`C@TW=O|8V?1(5kLXV%9GQ!0O7gUPqQF0pFzF`~*eSP?Ne7zAy zhXe#XLf2sFR$|8v#mDmrr7%v4>-l1FQs5{~N^CDJjmX9W>M?|P3`04^fmF4bMN~xV z^n;`nb|kQ8QMi6*T#$#QuVQ2DV}$n*y-*L=j5YFJJ*r1Z-*1d)$0NsuD?5$O>>}Aa`45B#HKewzd>kMP#EbO9OdmW zwT~~ATOg-2nGW?==S^`w9$Iy-{nFr6X7#bbb%Pt^g49eWPeU69gM?gR5c)F7{_a|> zwYz6@h>uNAB`3<;*Q>VoBp)1-lMyPNnOrxD1#elqhk5eU-#^sj+|n>#xh{?NT10*E zIFsJUg$;w<{mG%hLB5mCRkE^2Va|k|l_BX^|7af%rZ&!((Mu;t<|>;>b7!sdKtQ&2 zr4#CHWT9uC&<=g`gABJd^d?6)2AVv_HMZ+`vo%v38yu8vn*6GBDU$K?dbaVFB__xe z6M zYgFoJk?5fjJ}DmN*xKinBaF=Q+Ih>S(P~Yqnp$eUX<$s+5+c(Irsi_eR5|k6g6Lpi zicGPLuQ)U`>ge0@l-tChjGac4Igjo;8pDLybTrT5rcfr)yS}ehE%gnqlU*fd5!uhA z?v_~GOR_LZE)A7eBxCsF5hltBZADVb_H0CxIX3S1if6?wDsSLL&Knnts7qTrd68$6 zw0)?b8%2dnIyT8AEw-~%Yc(2^Hbnd-p0hDrZ)Xo7B67n$$+g{diGKUK^|%o7)IRaz zn8-OurA>pQ-5WcqYlaZNQN)Na#=(u7ybMaCW2>B(Pv)7y!UmLVdD@4D*2&c`ru%w< zDhqN8a(D>LY>LPj!3%X0MJqo!!(Rsee{`9mAj|=Mr8<*dmBa~zm9AP#*X#f zbP=sso+}!M25Uj4t$%1$cYo-G-~CY!$x#0_BeX;ZJXx(34f-A z(QF+ZSx5w#GS>+v274uOPnGd&bYzIpFF!0uVUiNpXAiAWhMTg4*X7uOB-J;enF;n zhzplThQ=47K znF~U%Mx=(uWL%D-Y(S>GmW#~?yZic?X()h7NNQ|gV3U6LI5SB0(nUoUdJqNM1g_OY z)@WTgGc-_M%lO<&^Bd8(2{MCyqhZ;_!{AQK$z(T`S+-}*Sf3p5(w@;@E%(=CR4Gu& zz8(!Mw^_YuO4*E!^bbt=VrrBiqY-5C{ngmOCjrUsp0zO0Jurh;%e(tU6 zl;blF-G=FK;uHYMg~N@)c2ec4gJW%o_i$HV@90{3K}4yQTc1q%EEzW=L?|V#fs}(! z^MJdwue!luMb9uPg^pSp8XFPeljm~x$Qtgl@xr4~i=h)W3>`sK2j`iJ^f6hkALa@L z(I;&eK-~34g(->KKy9PmY(15-4Rsq~lb(^_L$C7bPW{AGP}#s(YQrjWNG2ZA*|DS} z--Q<8qhUQ{Vz6JnklNc|Xx5p(O4xDVO$Q_vWrdb0|m1$X9qpxs;FY_5s`E;>VHD{e?Lls(FL)dgwVy+YOxw_AG#@rkCKs3AJShwxxNOn- zDyrrp@jO6ZQ=^%!sp{NI_fN|=to_1z0j06w;h~XHFGSLZGpu;RWmB=*Gc?j`2x)@s z5Gw|{oi0^dxK_ME=c!aByCAbHmrdn!nE__r0kk8PAs5=g=Uv@%YN%&S5Ez=)h+7}- z{E{ZC3mQXNE>1zU>7{&d%7mfp$qZT@F$)_Lm>6YkvkLvfVWmxpoVP6BTW|!12K+ME z8B}M~+UUrbS^ha(kq?wST@uJjZz7PPX`lxwL);k&;?GWQk%cFE(TND|?xw;YLiVMfe9A6>I= zFvG=dvg&mUWixG~ZrWORVlPM{vYEl!D2l9Tq<#9&oAwE68SB$knMB*?ut(ZlOfQro zM9T~tC4nZ|2B?11j#Wt%VpGT{h>A$z+PQfyutp1+#Eto)Ix2C7SbYc_5;kIe(~qg^ zN?Zb9{m7`fUNWTOnqL;`5p5SbK18_h@^e_SC~q7}j@)FYMh};$grY2#nvjZ7jY}K) zbmVnt*xKZpCOTsjVgxl_XUF5*nh~QOIrK2XtxqP1@GDf8CcTj+ID2TYn&}n!T-_(S zz9S>eQimT@&gQB|uaktxLL^)$ISO8&Ux-*Rb`Ba&UbvU7<@S6QZ9!Tx-^y1&<-2v* zb~B}+)uYT^qpVU8VpRS9p*14whEp=&T3dlH6>OHW{~F4M&ZtT)&DWA-9588|bW759 z-e9mtozy}eU{7t$$PM%yRauS%k8}?YS9_gUOi9}tW`GKHwWa1mQPp1Cdxa$l)lZU% zPIH7gp(-|B>*|qzyw+_s-&##3QY|*boQfs@la{Ix3Dx?Pw0}rCnUIeM7!2MG;UnXU zLgy-Y8bUImUoa*^>t^MXe+HG$;f2q#MJ+E;nV9h4wW&~+{dtM-X;(V=z&z)I#Rk-t zE}nMUYsA3F{QBxqCbCzLo#7Ic3g&>fSpS58m<6E~dgX(f7z$||)d@l)Ll{sE4RxUn z&(Vno7)nB0UQ3e$TPZ>0{gUOn(J`fVAHrCGVry2fM#E$-mzr?&vpt_ufyEcv#Eb;9 za51L~mh#*}y@I_4=tQYeEc9Z(|FlaTlj<@qV6309lL*z|Nd)Q7ESYa6~&bR}hGUZ{s_hMo!=?+(v~$gXOA zke7~3X)1wrrvKb&B90K;iT_9^GiJ0qBhe@9>j za3~-@d4A0fLGT>#Rzdg=V7u1^!549#>j;AX#64hL5WE`9UY>UYempA(R^lGt5(Hnx zonHuo|HA#Bor2&n+y_cQ@EGpm6Yl7hOxHI+(0*V%N0=oj=ZwrF&;{N2+AowKiB}++* z`+RE<+=aW4ay)|jA@ch*Zsk=$FpT@mK0$CA?z(fKPyVg1Ck_4&?;8YX;9gF-|AKqs z{2=%M?i0ra!JBcvM|l^5|KVMN;7I&e5`QJ`-NyvM2Hf->L2v@@N6!g@ox$7Vq#$?~ z{;RS<@KfAntKkpf`}76D(YWWlJP1xF{E}tx4!51kUVyurdVL4?`~#qg`>l0Ba1!{> z!tY!0@3bZe4#$7u;vo1}{O9Z(1ha4tf_VqxK2#2Z-{XGy#2|Pl?iY>x=8W1zp!D-Ex=r`(6)UzG@guMmGO{JtLd1eickf^%sM zq4D$^5HRqv6oM)Q@1q>Q!+itgcn9w7bEqrsMey@{+{jK;VwcL zKZW}o^?obvPmT?O^Kg&ej~z<2AK z(Eq;&-9rweO>jR&dESEibPsYxKIK;J{^v@H!zJX#+`0RO^}C# z`*HsBL}hA(Qy*6EZ$wLQ1YWkUnM!B#?8Eglnc|sq{jiCiQ*~(tPvwQ_K%O6B4ivYS zxm|FjO;gB%;z>Lp&)3(<*i2tuB(06_rEP_Vq!HN6^F!d?!SfwFr*L~`;m$O)UD!;K zNt>^xLk$$%)NUqSucQMu1GC9*wz$+mWH-h0Ly|8vX3w-Z_yuP({$5Z_$=@_;Pb!@ zz&`_D0R9EI5x5EXB5*VCCE#CyF9ZJudc3&`{@OOeL`Q7yj@`~dhNa1Zb! z;K#sE08znL0yhC!Umz^ed}%_D&$ zfTI9bIJ#s#8uvH=O+GjVI00bw5u6C1MF(j9y7W5@cM)(ZAWNDA&;l$5UI!$B_W|z* zE&(nDE(0E*Egl4Z13Uyg3^b$vKMS3|0DlGk2K*g(4tO4T0SLCE4*}Z&+XFI2?*Qxw z>;&u#>;mix>;~)(>;dcv>;=3G*c;dfcsZ~yuph8LZ~$-+@Cx8y;1J-Iz@fllz%1Z! z;6{q^Mc`)OOTfPZUk3gSIFNXT<>0lHbtdi(z#D-Ppbt0~SO@e21Hd3K1PlXtfT3HL z!n@$^40HfFpa7f&6oC>@20DSIz*=Aw7z5S=HDDvK2{;dU6L3E8W?%zwA#f3JG4K}P z0^qH{X5j6>+kkfh?*QHnybE{_@Lu4bfKLF|1D^yw1$-L#4DeatcHr~C=YSi4+kkHX z-vqt|+yQ(W*aiOV3hV~R(sU1CPhcA;79j{vU&5?QvZLc{~v@Lywv~y-|YXv^{dQ8Fqhf#7fcpcwVKIef1Y;)?mf~> zzDs({1ac=cu?+B^S!pJnhtbYR5>(N=WOD6gCjJ%fsm!pCu75oQ5)8nf}A@ORBI3e$5d&4f0}OfQqh?acl%k({~0ECjYk>-q%v2OMK2 z?^{kX6YbGxcb5`QF?AEAK>cL0yE9=F;DgW%ml1c?N;7eOFl8p*kDQIdM0f>F;eOl) zXB$Q1xWkzg@V}FKJcPSsFQY)-a-dOcuY_;EB>XcV$;7)a{D5R|@ym?jxdkos4fszv z(D8Gj|6OwjG;n1T9c=+6Uxh;lB+y%nvt3s)3~J%D%ZWR%-|jy8(X ze8P4H?gF1G1Xq*KJ-D~6H52rjB}Pe~*KQR3wS>#$eGZvi4&K*kH&KYPy+#q}gRUq+ z*HP#lz`Ka{sp5b7c%%62zo$`zf4-klcuzgUD0Pp}-hTw|*1e5_eB(^o2LDPL`Rlkd z2F;|uE82M;|9trQ8{9kkjbiYNlT012Tx=A=y>>SW_`4CRN5NaM#wa7-rrcNHufbPD zAvpFpqonnoVissSE-(wZ?RGT^{+ZNcCiQrpM)@ZApWe+V^VzO_|O|ZR=%CI}2MKJh&9Toqth;>pyMxMfiFK(`q?~s?#gPK0e)k)G4|wm!UV09y)n}<6c=B6)12P5=FUv3m z|Cb4q|8IE|wdWA(Zp-ybXv^=>e?|3y&c>6mGhdH5gO+*b>ja%I?1tCMg;#t z+EIQNp*9@yCe$)`aEs`B{LUkd{B9aBZlnL-dL#CfJy3;_oz$P1-~T<1^|^NJCU0)e z`X9ELeGgo!V)jCC#dhMy$#X9tZpymyyxBePh*~x?N+WwHviIWS3cl}`=gl*tG!ifN z6LBR@+|AaNX9p?oS;DleOsRj)7gZ({l5ozX3EfI-$S_n13Uvf3p@|J0LTJo1|UnU?SYwqEJJq$&Hxqz zX&?hE1Nwj=;5^_m;A-G*U<>d);QPQ2fFA<)06zkL419&GE(fjvJ^(N+zqJ1c512L^ z?*GY@_($MRz!Sie0MnTs`xBM#Y2aUgn*f<=mjGu1Ov^9r|G@)MdoKkp10F#B9t3^^ zJOn%pG{gS?EOh43mgc%WdHxaWB-q( zz?AKO|LFeTw>!zS?l#zU(U2qPLpo-;G7_yb&1ebR_0e)_ni- zcoZ&AOISm?-=B9vo@b_#9sLWY!5e5C)Rt9zm~ZUTfrNl^WT@UuMVwQl<7}La8Bkwd48BJ z4XI3$b2@GA|Bm^p?=#QmU5}~#3-F7$UA~JRVDogCkKTvQP8-}UN=4o8zmACl z&VY~k<(wD$DfR(TMC|Xq$6?E`<$svAss9~Dn?6dKKY9E<9@~NZcA;GIJNAdhb^m|% zTWnc)j+%+Shz#C)F*+h`;(lZIyQj!K@?h3tz?QFJBRhd@fSZx46WJC!nysmQutD6- zR?i&d4&Kkfe(>`TuyujVyzOz?=n%r_E6teyzum$1(3|M9)Op9Jqw=|@TOPm`HGtjY zBghZDx%*gbIB%w$xbpio<^EM&Tb%L+6ZaVMB)@OMbN_dU3|jo&QpV=MxN+pa(&n$j z&O;x%>FsPMQl5Kn#H9_ML^ij(nlmA1(U$P#=hXYF#D5EZ$nW7_a9)9U_j@blEj(p> zpCP^cc0Gtb{#MR!kl$_(QHN_78{W^B7;Tj5HaKr5@8SIzvtG%0l1^+%ALU%$uQ_L8 zX&J2e|HIa>Hu!-F+oP_I61u?hD4xprzCoW@@g>G?^7-NS8C(9Hb;rGI3;l+9WjAa` z@UH!7>|h%W{?X?d_u`&7wdeO_?6UIx@T)jm2;I%In4h7&a2>Y957L(?+pqetA(D32 zQ?LQT#|LP`ACag0zEZ^O4d3g34;OgN3wf;nodmz{`5EVp{>j9wvSqBtD;~}^+4m?1 zysiIjPv4Z^Y1IA4*KuBmvY*1(wBx%?xcuMDxOE=wbaI~cAow3^Wxe$|c!C{nJ#Bmc zXF1zLIX(frXPABjFWv9%Uev9UPad?pIdC&HzA8#sB;hb3}1+R*1)B_Cmq6i^E;IN3T)OFlNWWW z-fQx?*S5{o-@u;Ac;8Qca!71PWbl{p<+(4jWlf!G$jU`O!u=h#>9?>2&e-=Q=q~>@ z{o{H=>oD442JN_b4l)D1X7vAm8#A=4@b`87*ukmSqE9jB!H?8>Y~#DZ7ohu6)@4K3 zke_5+g{N=A|54J`z&VFLSY~|q!mmj~`Q05wl-yv z-<%VWk$0QtVdUv8wBN(@`+s_rtz%o(v*-)%_j-7I&~5aox3U(!%Y_=ZZ7=Hnfq2+o zAB+2)FZFx#be=88wX}QTovh(L${hb*`g)T71MhBQ{C&?w$R+$(_cOCUJBxf55_i=u zj@nD^OB@)_foAmo2M@aGqzexG^|7@>4}9X}i>@Afpcb_JY_~OkfBLC^Ufk05vEZ*S zY_A!g$(SUtv-oB|`KMR6Y?-m%&YiAgGws6+TmiAg)oveLvG^R^Nl|WA5LL>^nZ@-%Z^9K z0~B}D6@MPuxMjwtPWLgXi}gxh7f{^oKECqhS8SQ_<3r=Pj_!Z_kUdU7acx_iFuyUb zj5z{|oBZ2vrM&kX&=^;x3o)@>Pl@qexi-`pQuKyhumz2aj&W>mN1&qRL%e7eV3 zd2lHl-L6|Wx&$b$t=q-dJ1pZm+{d3{jRh#~HE(!a>UMdhG4A~&5~vfcII{IU!<;Rk zbho_!4?_2bd*Z0B46-*X;NvbkqcQHs?_(|n{JO0##!KYrwto!$5Af^uRBN2B^#68( zCVKy0DDMi0B(DSHC-44?-#`EJ)KMB0{&Qt`8*{pVU*1LM?H=OEgTs}1SwL~EoE=D; z`#*>Kct7n1D6Zx2Rjwo01P)jBiv<+dwsFhjjd^wmMH5imw_Nc?X}1I8s9}G5ZY4Yb z6nFT9-wW>F(Ea_NE5i+0=4!w%uN@XcbcZYFsRU$sa`%eOc21KJM>#Y>eBx6FM27xNA@P)h||V znelGg(f>KRuQ-%5zkuRyI&sIn8LMw0t^aelvKALmTwC5m-B{vqpLrSm4NzR$ZlB!4 zry7kVd!xSzD6W;Aon*tu`#GNNbrrfbptzR51uO<*dO0zq~ggOa9N5ciqqF zPk>Li{WU&j)W+*S%vuFdTsxk%F<$sTR|c^m2`H|W$zM_?|L1T&x~I|q7ZW*A|CjPg zvrCOZ*PlGg81Pm{$cDSR{fsse@cHnJi>$-lKpP48xI0WB4?8jE2>7^r)#I{}Jo<>7_j`Iu3=edL|2i2=p6VW;j(AeWlFxZ-3Q6K{cX=CYPC#+3{C?JR8c|TVM(WwN4ZoSSW=rWJElyc@vK32R*e#kKABx;_t)M~5qYQ9$O4&#&)!Ms(#J zh1vXMzPLu>)CZs247f5hL;n}jhn!?U>DsY+mCMxT?Yy6-i3Aka&KE~)ut;^d2VBGX zIzVyv-}0FBizhCR<2pW^u{ZiU;FqB#-V`ApI_|-i0w}JPop*h%aa+9bd&WmVacvv- zeWGz0WNsD^_Setdl0xQnSKgV&@C+zjJ7-;gSe&lo*(;gb1Qge<1D+p@<2t%>?m<9t zZ6B)23uE5T(fvAOuYls-c*7A}-mqoH+eB!*pTq57>=jU4+s4Pn$%gzDJD7lv`)2a- ze~#{@%#i{ZnFRduK6090f~bw#87Bo4*UEZkx5l`)QDp(a zUG*VjtC(Ad>q>OjhZq9@zq}7!+?ejgn>cd{__*tyaJ4aMoKN;31r*ngsXNb(({*Kd z8+}Vaaji_=5O21yAAf)`Qb2KS8^1uA{GThsKFc`%5BRtft;uAMMnG|`Ox~fMh_a)* z3-(e0pKg0kgeOl9SLQka{>IIPf~WJOJn%c8{vzPhov6IoW7ziu6xZ_XFLipg<8PI5 zT0n8F>};x&b%*R8HdOwGI1^Eg1WjJ`ghsdMg zHlzQavR9n0YYW+%70@zR**T-GybkvljQ;|Dd3Qmc{hzDbZj7e_iu=c|+DK{3j7(h_ z9Iov52`H}R@1BqOR3qK!nLn|H1Qgefzu$jt9M_fibaY<<#kKN#;RJKm2i`^>0u00?c`a&Nw zqATaq1r*ovVYPZ9d{^GmE}XjnGXD|8imKoRo%+=iBJKP7DUj-D`+L(TEUPM!# z9Pa)9244Ziwe9xEF^zF$k6S=-t?Yd1(8jpKSF-m9D6XyBUs@XDZr*J6F#R$-RmU?| z-i06uD6SoMuK#YFu4{`+nA-%J(f=g}SB9q<(*?8)mcL{B#mnGuyKcu$3n;GT@601z z2~8S@EAO=k__!Zh5Fbn&?tSz_0mZfQTii8X2A7NM)e9)DmC4th&=~j1V>qu1D6Zvi z_RKi0E5jG)S^|n|%W%QmIIb&$oJkV!aW|G5;|?;O3Mj6Xo!e@0TvrBp|3knp?{`+j zaa|dH#atnvxOSYJh-Zf~E(`d$ZN{h#AQ<`wKa13umM3EKFmpR;}ge7e6!_wav?ZWnWqfZ|$txXne{ z1g>s=`v04ro6-Mw)CwKL|J&t>**18Y@I*%758@Me)J`=oPjUtn__G}wpJm(@*ulmh z%zP_wA$?MQ^N<~Zg~)~corEUrsvev*7x$e_EiRUw)~t)-32z; z`pl&)0;k*j|C48d<<@^F{18|%OUVU$RvA!8FT8=CUF;Rpj)Tl&vY7J)a~ z^4|_G1opP^XCKKq3gAiWf1I`zc#m!0GHC@Kvh|U(69UVu|8dGH@CI96xeh^~FiVRQ zB>zD9fV-{#6WGuNdM$l9QzdYjE#Gzvuzvwh9B9&ii~0!MXv=pb;R5pdz5L{ioWP#8 zy?RdK><;i-JBG=-nF0x0K0etV2&|l?$%C`0tH7`=&n@IF@MbHoa%M+h_k9iiA&g4` zb1nTvw1vP`mfk$dCa~0&Zx(eE_@Yg}_7v_50u~)?=>1D8??(WK+Vp(LH4r$%`kT@J z`F252we&8AHv)gLYTV|9{JY+DUw#dCr`L^Lv7m21ZWm8{~Vt zwQ6s5xONgB^pH;}*H(-St*VZU&Kl_M;S;)RhDKKOR%`1-&g&T-UNJD#JFBLj zudJ;Yt?>=G>Y#iwD)!uGKEAr5cVqW(A0G=jsc(4Tq_uowwK{Uri6^dT_{TSe*6@|h zS*!UrQf<~T8yB5??23WDo{^y%A5fZA>s?n{!FNOWnrCgr`cqDv)4jrFLR4?>Iw~^V z8QJWck`15B9_#L(RT~}a?Higkcg~4(R;=#{t5n_CGd#Kt@~MsX^6}B8WHd#m1QS2S* zlW|oTJMFF4yS}mwvs+gk;mh^gq-OF-n$enkDSKLH5BVDRHV}#7+S*~hwzy!rt1~<_ zEcr}(Hl{lBwoyKdraPZ?qXY8AzG?5SOobxX(_J01(XR<_gM8NXPP>9<`_9~LP#e*J zr#qX`^+RLRKIb6;gZVO2HVx$tfE+BRtz zKHR)v+Gm>$gM-uFE{s&oJ<;XJk{8jE9pL!d7jQT((VJ;8}I`w$PPp zJ>4VIKA&xvY#}TAe~Z{WnCSf<*~8xsaIWk#$a9@Fesb&e#@_0xu{BLlqbJYCOxqP* z=uUfPJ!CUDH0{}FE=`$_UW9jRyGL{qXA?*_TfT2CLX&UJOrBF8=JIOyK(opA z5A}5SyBgGOV@;*F8^=cb`uj#VHM_hUS8o{U9&S3-zM-1fleU^}{np#$teRx}7tLw< zXEURpZ3{J!-Ik_wyGdBaG}AZKGrBGEsSWgOgNdeZur@q2H0|{n9;vOJc6-@Se|6f8 z*+Z+&-4@2*vB7nN8>ZbTM`ikYr@ifaWP4`1JLcF(|G@Mc%aE{bz%cCB>lxJ7PdCp7 zY8$8D%rw-!4LAn3hPOdBG=KNl=+JbxOV7~2KyUxF+m})5y8HXqO#3LqoLO5x?KZ7} zo{iJpE`0;jZeZ*is8)J7on>}0YOAIfVYWjn#> zA*CjgMU7LVbQ4KNdk{?|>Ya(L$k|wPptFe?SoN%l6g|6AGpUA$F8)!XlbcY()8PLo z*-4C1-g2agRQ+W^6Uk1?u;s1$npo7x_|in8{!#EIk`34JO{D2gIW&Bs*?t_YduOOfn1*6}>yt!~#c~kWC~iqqaLo(L}PenLUx$M559D zcoT_IQgmP`+1mJ5a+*k;Lc2|*CQ|heTQ-p_LyO&5Z6Z-P5S}{z zN6AjEXh*L@{-bm!nPQ{er6v-E2i7j$M56veE__d}iS#M79@c5{Y~#Jb)x^Sv=fRsu zGu+Q=B2B;1-0PxEBp<%4(nOkeFQkbSMY7BZz9tg&w^Ex(R>oVULp4ZAZz6t-qk|6jA?&*a8 z8TV}NlHp32;OP~l1^>qo`4{|mZyyBv;bzX}4jJ5Q&M@C4e(f@F@egrD)_UB<+|AO0 z+XwPu++(PioWcFT$)v&kCnCRwyC%b3Qn;7cy32R8xGE($5xlE$i``tbMgBiIox2k8 z_olf=2KQs9@m(wNbI;1ValcPte~$Z6?#a0U_Z8gzG9UNev$$&#_mQRC*@9c-o|ggK zS=>!T*1>hX;6lHTyJ|oQw!DtJY;fgzUAcbc0`9RQ3mC^8FE~%Vo`2xa=6;rqJbvZi zARvq28Okr$yIc={cO(9{@Z%Z$KRukglyFNsa_5)CuQK0;o!h}(p!lzX|99f<4}cQf z%RMrExJyX1KXmTIBlk~#W+nGC;XZr-_X-hTJp`J#y?O4m!#%Z=JEU;$D}saj`B!uQ zE$(&DIe>JZC4(gX5626C=iVJ$x&P`R+$DQ)PZaJg2Xa?2?v?QEm$;t+X>aK5 z3qK$kTugf}z}<2f_h{jsawgw?!@Y*~dI9%*+G`W;UrDzQ>DtfXjw9Tgp+ArCABZkNJItuAe1AxB2zm9cM(Vxf~(2r9^Bj32EnVKw+1=+G5&cJ_HNv@ zgdautIb?D<{;$(+W!!8pydk^~x;6aQQE2%V`$e=*75~%6^NhRyp7aIWpVN;LxTl`M zJzltv(B6N)NuihJWs+6H$ejr?`o8H0pFZ&!pakAFV={0;6MFnJ!~zc|U%@yf+~ zJC5+ZXgpXHyc?l<6nDj%AUFcNZ&U6o@Ymogq7WQ=9N)CV?IqJ|ad(92AH>~mSNa6* znbbo*GxB_j?;hd*^ltQh+%LdPL^Aj;<+}~HH^=ugaPP@5_TX-sg)HF8on$BD-hCE# znBrbbrrQa<#e6>q{~YLk1NVZ%xrZ9}LHL6R2e-q=QQS-Rfk(K%MIIL7?sPh`f_oG7 zITAX9)PFASD+b^R?th=dz00^?rSs7=!D9%)UvZzLai7CoRE8GrUPQve;A^kq9yr|R zvwT|$ce~edFB$H09o#vGd%!yC3B6vPse16^S+oi6@h#+mJHNo)ez^a$6L(7CzL9oX z1pWi?{W1KD$^Tj0gDB@5!auTzJLd8Kopkr%{*iK@O!&3P$A$PIqxV2RagYvC!Tq!& zQNg0uFb3exKyD~vfVk*4j=tYU8}R%SnDj~9OBe^9zZEt@Nws@qc((@wiVQCvV369_5v}?ZdmkfBaVx ze4|D2tf18@)8fqM{fAEKRq zkNf2l8GCTQa1^qF`#n0(y}0t532X)*RtH2Y@2fEPW}a75zGI-j&npeDx2N2P;$M|u zjv)SA_@7FM^-v<6cff z{sH&(q}dDissGd7o51N<{r~@GG(rfiM7c34vhOJxj4k^ZYr_~bgJHJj9*li3p+$&N z$d;5+DOwehB~(O7ktkV0w)T?$^L?Fj-S;)q@X5zL^Zoe$uJgEG_qoow-sgSJd7t;$ z&vjkkYS11bj>SGwhqA*iSAh4TV*iFBmWFl%aziE52V57&ozFO%bW3 zafE}WCXVvBk5V3!u}cl4ZN@(x{!ikrP5JD=o=VMQ3qOsmT}vduS2D zVPA0*dBiT~LH5|M;ck!p3Ucxg?n@%$QdLLDH(>u2MSp_-N6q1hJAp!9g1x0aeLr>s zlyNckS@Jy|dwV78bD`?Ce53{UU-i%_?Bn^V>)3rt(>GyvC4Xh$Te|^mF761@I}7{a z5dH11L5(PT+`p0j$FLL7qiWFaxQg~2_u+1|8Q2AIBx9dLep|51l%-6t7n7cG*gwah zSA>hGiq7E958s!tf9=co3I968he*}Ng2)70j6GUqRPUbu`7wQ5)a+3ivY<$WGe5-7MadRUk_p*0*Ap7uoY|rp8^@%9s@FV z{1Kc0C&4Lj8k_<9DW`A2ci;f{9vlRR!4dESI0}w|`~+&CPt)N! z13V6%05idpK*pys=9&%WfTw|s)#icuU;$VNo`%m{Fb~WJ3&29~3|Iu71&hIR;CZkF z$mh*o1WUn7;AQX%SO#7NuYu)Y1$Z620p0{}fw#dsU?q4Lya!f+)nE;HAFKs3h8CS( z4>o{};6qT8Jl6uXK^;&R)C2WF18^s32<`%RgGQh+xCgvTe%}Khf=ysEka6Wl;A8L! z=mTB>Z9yAwFK7)~0U5u`xVIQ63aGl)e2;F=njgrRA62o|7iD~XJwRowxerq&YfUK( zyE$N}YR&0n+{`q=nvZ+1Y4)r+GTo-NCc=={nq$|&E(dCX+JK?6HC7h=tN_Y`il7F# z1Kb8G1BUF@+CUZT>Yy5^3K-&BbG(MwqT6=@nY%OrO+hHQ2Q&kd!J}XbmdXGLrlnSPoWz*TEa$P4E@8G|j3Jb})8+a6d=|@j&JygFpgE1W6znq<{{9 z=G&U{7Q&|ax8`r{usecIARKfC5ugj`3I>2QFc=I0UXTukf#F~T7zsv!ppnP38V089cC!9(Cd@Gy7;JO-Wti@>vBF?bF<50-#6;6?BPSPE8w)!==w7OVpw zfI`UUDo_~69JDC78WaP?K?$%Px(#3>xCZwvK-OzztySiC*MjSS%mHPcPu7@a9xijw zn}G+E1Lc9NZ`1{~K?M*3DuP>qta;oHs)6dD2B-uogR0;TPzBTkwLl#p>qD~k*8s@a zw;{M2+y!QV+29_~1T+QBKp1ENT7p*KUeE@#1?@n4&;fJ=oj^F~3?e`m&=qt8JwQ)z zABY6KKyMHQ`haNA7sP;A5C{5!{$KzY2nK-!kO-1M3b-Gn0xw7dgTW9m6r_V;U<4Qm zMuE{_49Eau!8kA;WP%641TYay0uO?Rz{B7XFc~}wrhuv7F)$s>0FQ$wz)bKYcnTB% zuc8NUfw#dsU?n(&zkI*_4p0SD1=T=x@ULI=Ejy>~`9J+aqySE25o>^VA>H$T0T!q% zg9YUL-_O*;U%;>6H=v*44xlo*=l>$z^MAhY7|^u1=l^_fmk3}r^RJ6v9Mg;YvIfQH zp8v^()3)yUpYt6-a?k%T)@Dq64P$2a{EwcCyXSxO8nt`=N3V;y=YQPuKi|+ky61n~ z^FPPY16f}yhJ6NH4czlTm;d>n!<3_Y{?9%C_XB$1p8pHn`9IkManJwgJ)RIY0A(*N z1cVv5=YRaNXk}#Lp8r86h28T%4bX@GRY)Cnp8v_d&k@c2z90s~f;i9*^an42m%(f;Qk@&>Bda)e@8dGAAessJia?A7ro#dEoj>;`+l*T6mh=brzoiXOP< z|Nis&zrT^wIiT2M3VFa9OiNCUl0z;vYc;mc#9xV@ zG!e3wB1W$7&d*#HxW<)$D}l>b0`mROP?CSX?|-r+Zav%L*8j`5jNO#G5;&g(r2flZ z*ZJyyF!${KU)E2>Y@kta#{gOu?!PO6%UJ?$|9?4`o||@80+%KMxBg$6{M^v41TJR@ zxb^>XEc4yb=W;GVH|?$j{(A|y{r`V2J2#{&fy-S2 zZvDU9OVCZfD}n!B0&e~P?`7wPbR}@POTexFmwO4i>31dY-%CL1zq|hT-^o zmVn#;U(TiHrrnjmrAff8|Cc5|H?%8(%UJ?${lA<`&rQ24flHHsJO95l`MIH830%$+ zkotc&893kjzj!66l6Qc~`@ZB|fMVp`pW=3nD*;ymm$wAm@&Dyres1br30#T<-1>hh z(sRSQ61co2;MV`kyZqeLyArq*3ApwDQl#gGbtQ0lOTexFmv{NOsdpuCDH3q&|D{OJ z4eLta@|J*G|1aJJZ~=+6nxe=LETJnVa};0!9NlEBII1kUpD66#A>^AJy+!(rPk3 zO2rmX>T4KET$68BswE#2ZCpaBML#PQc?a>`rqnJzKHiOwjGu<~rdyP1cAZi?p?m)Z zrA8K1>a%N<+KOK=e70V%R9tbTzJbU1N=miAQK_LtmAa~sQhkY|HHo?fKD+V%6}l$~ z^Cb6*6W8CwF_pLqW4{Q^4$|`%VWtq*1Mn-uy&=T8u&`1$!*d~F>JtAdK7=}#FlDMM z^&sh(KpJj_cUTLh3J}i+(3FNx1=87;_+IAT4E*1NM`z*|8J6T;PBIi3MS&N9d~fw! z)R>Q-s=j~BBTrxX$GB~ir*7)7=0ssRjER{E55Xb$%b84~wTwr^Kh`*`lF--JHd9J) z8krgvhKLY3nBPdNAV2)G(q|*i(C*TW$Tt{+9R2hKL* zgo@?ypl))ZjX%iO&MGXv!ur_kL)R`Ls|qS?evhj42#Hv!YgN1E#F5fD<$ZH{`%xuu#P1gi$MN@iV$J( zAd%T(bWQLZyqw0PtGo6psM9C^A2rh`=u3|?)IYC1%_$eKwCul=e=v1WFzz4n^!$@K zKCfM+Q6XFUb&CHPq%pD-l*yWY$l;%jhlGxzYz2*Txaa3ClGNrnx-3}a(|`Mp&kprn zanS-=K}#RKzU?vfMeD3TH!VoJK-yY;&lVIR{Amp4rWI)3tx5?B(moiIh0yl2?O^JP zU|1IYl)JF=^S8-EYoZT=yZ&YQeg&J<-)??wkI*&L6+sEZA2AotXBEH4;%dj##|jY? z+_QpGf>T-2W3wynR~+MYjJ8(ruxW1#hRF>{h9M0Vx8FpNcEJIo51xW5R zrO7QwEzhT@z!}1zgt`x16LkNFzJ+G`x!SoPEtHj@*S{>UXL#U15PRPKBE!#|2s5Z# zf@c5JEq`)+nOEuy>bv0ff6!+*>3!ElX$u9@DBmkA-%!LM?YRmno=+7ok)cA%k1fL8 z@bp2@f}Jl|E73YJ`RL%#Nut)R)jEZ?5!rXa=EPb&=tNf(I~6Kefie;)qd zMwWt6roR@!pT`uJuwHaoASELC^&5}>(s5O$3T-*4Nq!{-gvpTG9*Ky$kRf$P`Y*a| zF}0ArpsTOEEbnZ8{zCDfJA&8j^kjs>?>h1uCJ_nKHEJyU$@y4Z1L|uuC@o(9Fa@&v z?4WHHd_$X}O{fax!jq+4v-n$o$LSjdQ;a@H7-(}aqHjulSzcqKo!{argVCQwA7pqe zpyeu_aaEA$=g;sK%y96}fw|9XEV?H69r=qeY~wNM54Ak3q!&c&>MwLzP}MJDi^B2e zWTToBNYKMhzk|?!>1S30T@bV|>A6PoYswyashq~>XzEh7f`gQ=)jr^zLHW){dZGDL zkf_sq274H3NY(e0mEe@4yyT`QOL>KemzC)g<&_c~ykPo;T$@nRE{HVgFMbUPQ29LO zHtA>hsdGWvl-fgEE9jD~J}OmC2MN`d-FM$bT@>s?resG=@|gSCEhEyY^u2=XO#ds@ z>YpaqC)j>PloISaZ+`s@GGO#1x+A!fxzq)W$K3P$iR=aW{?UJFd2700p||8;hQ38m z%daB#Elry3zd!}%d*JYS)1Nhfm%Iuh;V<&^8)*~8SjA*r$=@(^Ur;Jbdh~6NwzB-M zpsyAT_l@`L+c{A))}w6}%rg3*sYPLetn^F@wd4}2{goPw9t+lz9?^g62G<^y5iCg$ zRZ`+)(3p>ri=Ykqd0ykFWkpH5;Mxn87nRSH*HUyra1Huk%QG0|^*|snWF?J5T?MUR z8tF0V50z@}k?}L>ApL~#rN3Y%c@=ESCV%Ly{OVXO)ghcx>q)yH-IspL+m}NhrMd8+ zJA$JZ)}N*p7ydR?)VPT>N%~C*h|q)mqeCnGRt#6szX+oL<#@g!Sz=1Dwvd|z8FpNrN|$sVkM;n>KTkOH7Wf7L$^qVj4yc_Qs`pBU6+6#-*lt5~E}Kr^fY9 zPK}I>^A1W&PKivb1zjZc9v$49g{6~yY+T>L{e9e%`wmo9!7#Mzw3wJ*sKzh|Z1b)e--8ots59?b5n!SfiS@vw8Q3=IuMT?$BQ1wg_5uY1=lc zYxD3%HS5)=QM*R%ns?fFY){J_Vf{z7?%tqYBMAMjs1_X?Sx$dWqPlbr57SBWWlA#P z^9t+G&5EA{bZr(D-lcs+>vqkfnzd@)tPTFnTgAwq*Hg7+3lI+QZ5a!^b!yyM4||xW zYU}b8R!VAe|J3M2PrvwtIIrjS^ak}RMJC3_q$Ycl`=xojv4gykL*tWTlZSdEht#iD zBRVoZDJEfXY+U&~2|py>J2*PQ<4qeJ8=vf{S)*Ew$RRP2(P;^Z{bDXIB{_4-mYINQ zuAgtaFr?n0FXh`I%~Lfzq8Ww4|6otmZnZsCdo~q4>xriJjA_^}Ikj_4a!Q=#7#cGm zIyH(QJ;falQW|)wrVUGpi;YjX$XXVN`ro8uXB9=oYu>JNbE;PRmYpRL|E=~!#wR9L z8=zXXZr3a-%Cf{xi|*g7L%WV0I=7CXezoWj-p=xB(mt$pSd)n6|L|zrx^sk3gg0-= zRrBy}9m2z!WcTQ%J(_iBPi>6o91%|1#jA5fkG3=iEvx{x!y=|8wQJtKOY4Z{?OKxx ziy)hyP1medlW;q|mne_8s2JMBI4@!eWE*NUF)}tiCOIi4F;@7?p2)0~^gS;rHF2lz zTi$`nuw?tS8N8oHUrV=QurIK84-#U1-L#Co_`%ejszcL9Ate!r1o+!;WE$vAZbs zOMCWZW-*@M!M?1s(#9Mkg=FDi}k)!9b`~pJ^MvpG7o%B z-+Sv-r5+ol_oQ0k3j)SS|JyDEE4k*?YT> zHKPGaz0yLjrSEU8sZJu73M=gpe*5*!`g+te*dH-prHt}3xcY$fB=%>$0lj$@-MSeZ zy@#=FbLQieMcFMn+|EcpuUqlZJ8ZQMk;f5tv1y79+6)@r)5zVZ0`+k(vb8H zWAy!gfBUKlvg}IUb}^6~xz_fD9vNLvd}ArR9&^asA$_mfPktJ?`k@kQK*)7EG7(dH zuTqukv95cNc|GA||7vFk>h4kIUFiK-L#L^gYSq%dI=_7%;cQcabaX1KT{8Eskb!;? zPYF~1R-=3 z!eK%{XPY;TOe>K;*@LXqL#Z>=3o)`r^;!b{+i3&Q<7c=xjeGmv)c55-=@b98>|2Z3 zOVXcNR- zw_DrtKd(M%-J?_$bXLqOhEFDCW1Balk;~QWL8Eu|(Z!pQ<5>9Kid@8OZLe+F|DVr1 z#WpgY-vHYr{b5F(zq4+u5iBB7$!;O`SN6w)z7!3%j{!01x`~Uwh?fn`X{HwdR@5S!rU+h@{cke&c-TQa<{{Lt8{$+kE zxW)4?_7d{xa{?E0Rv`En`fX6O!hhfoZ!zxK0xgHE|HXaI|FyFPH&M2NGXC-n^(8ik z3->HScA{*1$$X+1(y`~EJ_~mqQxu0FAPhJHT|5biNbN#Ht#hzWb*s}$> zeb(V(&uX}59h4{g#=Nthxn~_j8m1-kPfL9w`oB2qkVx!IiPfJb70zUBW8Ge!<9UBA z>%(98l4)I>W=-|I4_Mb6#+rLv)_dZ*^>e>p^=Em8g!Sc(hDXWw^t}S7*-u&Qr<1EW zl{woOlGQIK*BdKXQ(wTj)vk=8qFBd=PbO=vyXNuy(ID22OY$tzD%PpZy7$#h@MGP! z?d^VU<4Jch*3zFKoabTIT^F*SMcTTuSMVGDvp(ir&S#{3xDK-d`k3|fDXe$LvsNso zVsF;Uztz|BU*~7`64JE$2EvYM=f9Ui*kvDT_la8U(Y#MyU)1MS7Cy=Pdtdf%;3wzR zhO(D2^fC6_HnE4s{=($vc`jum`)soI{Ebo{5^i=w*31dl`$|B12J~VbdmZ~(q^I8* z)`vTgFVbV1>qu9=KKgkt+fVGJgu9hB?zWWC{a@=lr-?r&6E=lBo$%io{k^{SA~P|K z9@6$gLsPUIamwN}ra$=*^ZpyGxz8ld&YX)xK4Yh`XY&&KFY{TiFU5Fx66^IJv9EQ2 z{h`;{pCB!>!boQ`^3)s#VE(I=J$CJ(oCSY`b#v}N!u>kWD3$sgWx~Dmr_qsErS{iD zH-^wRqOVEl^eD>pFf#hd%X4gfl-ja{HTfQ##r_nXA_xi+%c_xK> z_v`CFUtrH>tx}($do_vU!M#eofqZ|SzedI;JKMjEhO*@ShUj&S}wU@iCnTM5h>cd}7Pge@vpEz(4C3#t4zA^lLtNr^yhF_FJ6|xB(?~X>jrP?mw*h0$6+RI zU-V?sh5x+CN-bxibpMx3m<+$Y#3kkv{MUdYXSCb?mltH%CMAT46#PaE;J{@PlljM) zoIgqXb~gw6CUOXD3kR^6G`D?_v}NP-=XxF{`-BH(2Qz_|Fr+EtP98W!CbOA@ijfVS z?4}EoyH$AJcmoge-r>L7iS%dA^t&HvudmDe;P?CB9sjkLwA$uW8T*QtPc-FF7iDt; zGI5%MwBN^WVnWMAR9>`V8+m{?CnE>SW{r{aDa!wP_?`I)y}FV9XtWNqKTg{%E3??aq`JT(+U@+m zvI_?c53s1Si3J;UY_6kh7kcOehw>m6x^)aa6_ZT)Khl5&fTG%cl(OEj7oFV9K|Rp{ zlP9^mpY+@2R`|;U+k->3PrqvR9sMAm?UEPWG$ucag@v9!*uL5x^p&=U-OIt&hCDEp z0Y4O|*A@)f>i;!#O zOb#?JWg%%S^elXQNFMi+-_L(Uhs!CoE|dkOpXu+B;jT}WWj1k7%qFk4V_6t^3B9$= zkZ}D%nbW%{%fpl}^lu^G0qdy$)T8hOO<8xOQmeP2ALDp&P%3n!@t!g0%`rB;I`D#! z?JQcIu(@h`1LZNi0uNKO5F;iPnw*S`VW*OxUksg1bG6Y6amP~MZS&}N$n$gC<+nQ; zeG(rJ>Fs}u|K5u`$hSkU7NN%@(Frm0DT^TVR7_pUzYl!wc!F}^z86_fX^HO4BG07Z z^H0#R;VfDq$_)Fvwu{LS!(!t<;7^=-o`#_Vz0E9Xhox0lyc} z-Q&=ha-49&ABVhTD7%R^_pghftY}a3QBD&m_rvfJGn2l@X}VBmtC#c80O5j3%R3q5 ziLx0%dC5z6zFR@xL%BarIe+&u4^cvQZ8Hw;x6xc)KH%i0uWz1_)$gyyv`rt-_E7F4 z`*KLHBz5*XO;Zt_JGu|Pkp9%Zrgn7$|fQKW0uZohj5c}t^C zlqDY<2hMPC7Zf9lCl5O+NfFaN}%aCsJ*DH|~j z$YYDQXs5Yvn;zs>UhLsPr<|r3X*_{0cZYUD7anHKp^R+$Uz6-BZJ&OI7bVcQ_8=b< z(c#wUPLFfRo-;~KXqYw3+xW=p_&C7`IGjtKTE!|IFMcM~^PrGnX zsqL?_xZZ&NkT!G{dHVz`H@Z>3w@&|ePcx>QLZ7=)yW6kQcEPo5WDsWrZH648Et8I} zuhjSAk(HQ(S8H4Te|Sk>-vO`2clrJ0YSc*dzXf%Mw&N>!K2U=8Z!3K_vfNC&@+>k~ zQBjBK_OP}KcHrToqx$+tDQ%x2@B5eP>t4wAe5QSx?_DqJQB!o-&#HC2bgTtwdfQd`;8myN|YpboOda|4F!rFzPeq`|EDTo}DP$ zw#9*4OgVi=pu8S(1mP z7qSubA@cr;{%0}rCyo0^;}-lP=wr$ez7~0?iCqD{C8xp*U5Y8ngC68rOkw2aH0z*| z7yTXE291e7wg7Er26=eSNlDv9yj#{}^%Gb1S=z7dE81=XpQZ4fi45eWd=H$W@5?|} z(fj3;@z`pbuHRGImjB}9Z3OMtyM&oHlX-!lB@YMnWqa#b2dQUQ5}8>X%-f8bo~=hJPF~BkVEsrkBWXIO7y}G+T$R zf`>k5*oNFH(hh~9H=DWtJ@vQx*T@!GcYB+cLbM@Vefn9-a^Lsl>o9qJoHqMLREf*0Ax@*gud(;`9KDr(w>P~x0`Z;U(e^Ydl+8)Mzd5KyoX}R}x`p~%Wezty=@&8vkT>6jX|A@ZM>Hl8pQA!5-v6VLQxTcs+dTI~Q*Iq}t)(x8otZ zFdkr>Nk4_XfUxgi&swMHo&RIs^t&36Zh1*$b`wTjlb1o>*aKba1PyL^`OF80DD%D4 z(=9rLyr@!4d?{_89;59O(0<)qzt}RgHS(LQ{l9uw+XvTB-#=vBy8s>Bht7Yg{pJ6U zCI0K@HZk_|>lVk-q6$Wtr9FZ##9V?{;KIzD^uqeAq40v&hc1aJnM4_7Ft4M{8c5lS38&r{rB2j>Pxld&)AzKq z@ToRQ-@oZ*)?~h+?|y?r1V2&78fpK3^Z!F(;z9;b4x;^}-rJ__t+X|d(6`ZM+h)yS z`-=KQn>Hz2yO(`L|33tsFzxJP8|e$Lr7qX^(+@{qcfoH1GK+nYG3xusw!glAH)$60 zW|X!MKv&J^Z)y0>?n@t+tY1!3mU1t4O4G@I739_oxz9o;Y*U*yQ_L#Dh#5lqB9UDO zbiUMmv}?W4E%ZK>{1&5)DD*h(Jok5#*RU?sjbC)QiKMSO<qCDTc-UFpf`8-piNHD?owY<-j2N4p+Dci z7<37T2Nr0bM$7Fx%rViSy|jzZli!H_%+n~}he%KFXBppqg03~EP5RzXf4-}t7106Y zzkxP#;c)r}u8SERm_eDXGHq}D7Z@)*$M~ol@kI0RZ+E&t1f<6$sxyWMK7r^A@ z#-}yS-K675T4I&;0g&ges%LHm%CSw?!!p&P%9qu#@R=1}Tf4C_Ga&}-6Nu`KP%kMvFC zd--JAvh}pP#~3p}x3#`3^YN%P`TuG<~X>2il7eCp6=epIv(vz8f~VS>77{Pc%J#pt<>SM^x5~*2c*!R z(|-TFkTDy4M!&9Uo&TOl)^Mr&w&_p(&p$xBUWcccI<#9;)9B;k**hptI%vm#p-sB- z8^+tWF~%IF>E5Be??bzk2Hl=s^p}Q@zRO&v7Gu}18QXLq+#2TQD`?Ycb0*RMeLRJ6 zUqKG)HDI2!pLv1wYX@nciTCM!j2ALkTcN$|Glu!Wv-F)m*<5+pcO&zLTeQ0!c|C$0 z4#7`MsNHsIr}ZB~e&dHD6L=MVm+@92{R!=1;U6?naoXlz@N=5>w2AUUaxdeZ8{5%t zQU*I4J1MeW7d@`s^H%8>j`g3-fxw;G@7qb_rw{TWp5JKS#gsO(mTP%I=+QlLrOhD9 zI=eadx%OGvk20Z+ukr?Rit|&w`2>CZA;0^H1&j%^@p*yr$jQ7%-11VdF1wk-jb?0! zd~MT;G8VHToO~^2T!_BdX7_y3{wCwS5YjY~aV5Ik&qJS%45lKtkr_5+Ry*Ho$h9$R zW5gw#JBWYVdw{X)!N8qKjR58d&_BC{y(@EeW^_!I|Lp07(0sbAN_7k z(*HK)n}n>#uVxO@mT_4U>kFiF{Tb$+o&7vg9)|8A`rO{kNtTd5=*09}ijE<}X|1V8 z=&)_Z9b!IMhWcpIbu+xh9HOrEhEIAu=J|`z?-K0M(U(3jkp2|+N8hoQVRS_3$54)9 zG77VvGlKP8WbiiiLd?PJMl!@gC)wzX)qMFX{)AM!ifOd4YBDCX7YvvWAt4K0*H$^`^vQj0Lwd z#yPFyIJp*mxPli)gdoOj;IT5})fDQ!p__3`$x%-5)sPr!d3viukwYqB2s63=_+vzUeBpr@UZ zk1kArZs23cbP4I{s_&ogf51w{o}~31%5zMQ^HKTz?;uSdl%mZ-Zr60z{y|?+mu{jh zhEF1L{Tey-MxINIoE}C0ZSzT4`lM#sb$>GTX_tLR+kbS->i!*_8ul>xsEXW^DBCfV z-z%&$B+#x6V||LU+qME3!Dk|L^O4ho*RdZ4Z!v`yAj6lK&zANGE-L5`I_d6weDkF5xT8yBK*{ zxEN20w&epROW@TSKDPO;y}tSodDL3Sn&%zJh5G)$cDPw7|ES;R`w@&qp>IOC$Egodl(lVY)YeyvcWL|at<*u}BHXMeCnsjcOLbE zI(?)p<0w-OcYL3f_O|lW3F3S!m9oFhe{aj9^zpONG30daQ~JoysfXy%)zm%tkk5NX zk;`}7hwjno=zKKm4e!&IL3iv7`tvOGKl%B|)i1PJ`H}Z}FfRuABKMzP;{lY8?2CC= z+afJzO6nBB43KHG{_4Q~Sd_BhspkpDHK={txsC(|a;?<*h7$jP*dr_FngxflFiTgqMn_AkhB z@qM(XGmsH-`F$Dn_cLTIx^hHw+0;qff9)af(APmm?H@ocUuyraRxzH0_h`!LKFX=d z%jn--==n7I!U+0F4|B%12$#Xw5V^?*q6$4vIR$XeYzT^R#>HJ6Y|OhqJnunsOB1 zsE_^kzD0-srj2r%H%~ZS$P)c?n%Lb=7kz6v>f3wTZ}NO})r7x~`gN=eb>k)Gc>5S1 zqhn&$rf6IKCsWUJGGWuT@1bP>-MMSfBie@Y=)o-mw13RajB89@`&HI{`+~{Sll1$O z8NbY-K2Wda;|ATRw*&Ay1CRGe^Ih;B*O|H7LUeW@b(QiyNjb_#wcd$jjErpWZcG0} z9^~Z+PE+GW+Lp!S2|aoLVf6kr<^a_+g*^CtA8EABXUP8VIzqFNdK&o}`L4eHVX*&xL^%Bt`K+5ny*TFgm#a38`Y#_eZTOHFvbp(V)*hCT zC+d^DWai9lWCEX`rZNtOmpt$;FBABIcFcopmpIb4usizuwKE0&>t?C`Yq<)0RlE1V z_w=Vqy71xq-7-I!fO8eausLFM?Rk5G`GLwbm{Biix^wKjJ&v4 z=tJfmCQh63&^L^0DT7Vf>ZIJ459!&aF>>tCgMQ&N#{9=^U)o^m#MLJK-%~c(Ofv%xn*~Gl726~6=YgA+m^*Hk&XN9E)Ze&)jO}k>yiZ=l9HySxW^y{?jJ5Pv6RFGX8Do#2&O&$P&o+hMetSP_ zQHk_-v(X=TZ>q$a!6?#+EoLw2-kq&1>i5$34x>+E-bdz6Q>K-6jfIC|8(z9n7Hf3-M-OM+Kxkx9<61m6+jNak?TI3<-`(5Ol`?eWRdOM!cuIC9a z=BiTE@$s}l#8>zLd3YL`JxZHN8HGh_nhC_6ay@O<&B(6{W2d={E%q|EFuXKX*8j5o z85ex4{p3SQ*-afIqwN0TUQL~dT)~)+cs}`vwq*zFNPF<7oaCcv8OW~H&y){kCFZu_ z+8!IDZTnw7+W4W-Z~3^&T=-^sSZ{@Q-9hv-GpS3YZFfBVDq-aV2!oL0e#&qgaf*2> zoIOnBp51)kkvfGw%8OE*raJQ8x|4P7$Fy%>lSU_vT!)uq{J4d5AlvNb3hJhqhUERz z1&pOhd;Krb!H2ZJ{Abc`4X2#ybzpn}{rnd6MK2(edaNfVamLeU`fQM74N66AP zn_}ss4$|%|r=4re-ZL~}_IA~F{dVjHBCA6E(1Fg3lh7~upk?7_SjT;y_B)C;ojP@Z zc-}T)N1%(F$#V?xq>Mp7z0i{0>SY*jZzSzA7$c7*F7gz&N5`|rl+B#gjI+LHEtU8b zWqBn!_$6{V`v&t`@+2Q_%Giee17o0Z%-3oAR=~H%2h@*6nwPw!A&7Det%1(K?*L() zW&q{sd6Rlwl5tfs^&fr@LMI=g=}x=R{YUnLDKY&OS2kxrFsX(|Z@=L)wRz_Y#Kmi%G@LY1aJ2+-p8< zcUQ)g!`PoBU5g*2JW1D&APLxJl)0XV{YD@7H`I5w--3=zB(9aTDT5e~5?2&7Kc2Kh zGS8ci%+@i+AuVERR6$1`($^{I(>TiS`%f9)AEGZXY3)Q^u#LRvt<);&)Og0!8*E=~ z%g0$eJf79>kHcBrwkzzYz8Y@QF^_WZIElHAJ&sO!zBKge!XdvrGgy+j^^b~3)o zPZ<(#UG664>AVaDIDC?#t4&!2Wie9N87f zw?W0oySoK_JeD)dw*kdR9#Ip>w~EBbkz9fOElg2WLCCfGzPvXj1^8nLQh#=J17XpaKzr{(Xv_=#)2qp+wBpjME+zxvN> z{`|JotJO!B+*`?eOUaYx=l6#hmX&Ti{U>TF%k7!Dr#!jycQ3O^RCPt2n zd2Dmg$5E04zY%$gk!3xBWqw`#qsXB?I_fkwUsQT(y>ZU8@_u-MW$Zc>o>kfH^tPJM&#8&IW#?%v&>}aTwuvz+>HCB+)8F8^~vFEAKDUNnUpF=h4xQ|)lOrlLB1s*tz)5@b%A9HC$hN?u9Z-Guu0ETC9VShS{nXp*fhv1#SeH-SZK%I(>rPOkpCDO!#*RyOS~!IOXtbwz_G{LAHbhPTKtE(FZxs zFL2TpGkv$65}U6)Hs*VD%*f&M^Yj<;4FZ9a?~U1LZN8zcnU(;{m~uP!gB`oJZTZUM zy8_FYcIRQ6k@2=^<@E^y%XBJ#O4^ba9K&_-w`t`&7Xr%|{e6LY?KC#6Jnkv5jFE%) zCMTtzZy&q`R@h=4I!ON(GZGJDMC&aXVaxKAz%nKc#R_E=nwUKM zCM=dU9y3lkP9?D7xqHQ$_Wd>o{npb@D_6D%WqHM3Vo|1EG#-!oqlE!T;o3A{=Ah60}+0ycx zdu~l? zzy8V*2!S&VO|uq-Pj}>Tae-xw93FfjYu;=*$Tz9%?^4-)clZ?LZz}z%z{z(sW$rXKUpda;JJMk4W<teVEfcE3KV3InpPvjOmAxDrcp&`O0IV z0w?XEY;CGdE5{K9mNDtwbsoO*eItRDUZaz*jLItCs|+hSsw%LIDT@hxvkoZjG{`Fj z1eP)KeHp!T8k<&**9t6S+Q}N(+8vuVJb|TJU>U>r)~Kw+Hmy8rFR+YBue>(FX>3~g z_Laagre3rz?4Do?8e?K(7l0N$B+f^Q1wx-2@h`k?+-q zb55_khCyH%)Bb+cC@ZaT#oW3u&GHmw|06IjO7MXHE-bK&k=d(_ zjoVl@t*lK6uAq6&zIG+u{XXv5GP`9U>*>HUCJnQSqofXF^Odavfh9B3J`8K;Amq~K z8`gqt6CkwBAN#twj8pRw)@f{7c_om*;%oHxwlPjhKVLZ}F0hP|Lq98^pWaSyXLMCy z-7ZqQXPa4@gBI<~xzCbsO4{F*RAxPD*Kj{ixw84nHv)a%2{bZ0cze#YvehiGjM1GH zx8zJK#|Q&mcN$v` z@_2#3$+y*c%Gi1w^$Wwr@I7jeJ&d=_w;O$sz~XE4VU>N;(As&s;Ahu!e(kaSDd+U~ zWUqX>S5;3;tsb8=Breq(7aN!2t$w}_a?AeTGRnvKT~DW6hTu2=B;6xxd|2ayzs}X) zb+%;V(>JQ98Nc1Nqul;;$HrZGHp6ZXvVY%EUiBh~MQ6plMkWOnOm{MdzCsY{v2I(h z(~(!|EHmXJ$3g`qj9XqGBZxEf@>&T&EcH^194ivEL^s69(Re{;6JEBX1qDrdQE|Z_kEY*Nf#WjZS3{rudk}XZ3qc7JpS=1)(8JI>zb7Re6PRBf|JNd zj2yWZZ1Px66+v8r113J__kx6CQ$>xNr~_i;IGo^Wlm42>LU5Onr#ucLxbj9#FUK$i zNA3JG9+z)9w=m)5$f`iT*CR$=Zzq`Qv7Ac2%`B*8=#Mp`{J_IT9`c$^K}{n+=l64j zgBI`YCTS6DGj4gk zi(rOv%dtE`w5dPxn5H1aw72paP(h^O@BE&Tr1v;^5iBzK=|bBfXl&^J|9*bx!o7KX zOlq<>xnG*+!lMLlS}JdAx5fxFs?`ko>fz&^DMA%;=eQ;XZY|tu;*YJvpLu=Z+wz*S z>PgXwabAnGA8&&9GN|a6Y&l~RqP^LjiOI2=c5u?5q~xJV62#}1Iyg4Y;$a0(h)*If z32D&;h)+qh{;Cg%XX}O=DVMC%5ym_F~F{x=( zy1ao{YylJuVbcMOxTUfE=L3X@DQy3Ja^{W=2l#uJ0iXm4C@qKeW z9vw|yNYCoh`ws4x>sj)z@Z_@MNtYYV$9!^I!O;ah8qMYW=xFjp7h>bmW8zZMa$R&f z8hXB5k13s+M8}uw@kqmv7xCz5@<18l@}etBj834k=0R>ygFLCL>4{7mQ-|fcx+TR8 z&Gk6a2lENF__W;5OkTyqe6JsG1<&<N=+s<~#)>5ms?N}~_{6xp8C)^v>)SsM zvXnL~B`zv0H99XQ%y~60&#TEpzl7xI+#euVvE+d!u*@(tH7O4wN>59z8Izotm={By zenVMz%=Pvs-HN7W?#Gj!m(^9`(ksQeJgS#jN}fiP2TC3z(#wN*^aL*tB1(^q>pPhJ zhFsPK?=Wv#Tw+vQYHD)sj~il$CMoxqf2>&YpoqMTwJe?E+=$-jsUfCrKL&dL@+ir_ z+H8f9DfezA<|FI>1cz z8fCz1nQY1hHl^uVM-YK!Zci!$%hk8G7+ALUWF)X$eS43AW$RnB2`pRRyg9IJ{o}d7 z@|BHHJt+<>Uuv(t*c({Jdf_mzJneBlHUk37*0(7fShoJ{xWMvt9-;{>=PZk9fo1JKViZ`u_R@A>x%w6; z0?Squ%{uV+Pqq|lsy8wTzXm@XQ`5tvRvnQ#`K@@UCLQcJ-L(hn*j55EZ6*-$9(?nG~evG1vasct*^i` z_8;j8EZI^1eUKo!wY<+a2$sTY?6K3Xn|#G&2R!Qh8$1g z+HGBIx;aZvR-Eg+wPSK>q5|I3`l7$&tpIQAAaCT*_@vn6q29 zJo^}sb@K~EWTFp9G#7qi1JzDR%Y%4O$>`L;oE`WNa*OL1knCJImZZSQ>;jQ^Q{v1b zV_;67Unr{RgedRel$6|-n+vL~NIbb7jm}Q3Jc_45 zZpSkyEm5ZUxn5lvLWo}Hc6NxyIu?-!@$`=k%ri?D=m|~TshJ14kr8liN0T-rd2p`x zd1ydVfF3!#K**MXEP7FvsdIoEa9da$CoE;@F!f1(Ot)HZ<3J zo1sZbxn3?YJc*v`RiBYYZkIe!BnIZu+zTjiY(oEB?23IxIkohZiWDzIhT$-sAm{^JF3`ZCdVYvu>aBq8rF@7v;ZrN6&>7AU-)JE!PKUqG*XRd7x;- zlaidA>-kAZ^$y7O`EqhXT&^!>CHEbe7mGjgGOnSyJ}DZs#V^o1XjA%;e}ikQmZR$%AMp{^-GJ$+=xF^0X|o^W2Vx zqd3tC@%?kX(nw!6B-iJ(i81N9EwK2+#N3Y}E-HqDaC#Rb>w%BjG4*mf@Nwa@ZWkEK zIH!OYdrIa4Z2g@|0GT?s4+6;6v0fZNt|+`&w+|pw=k8Vj**a%5fn{qpl>*4rxylzn zwt9jhH9LSzvu&~mkh8sz9zd495n2Fw`iDvZWGdQfPgerV)*K%QAX7 zd>0z_)4> zV77Yr96+XKrzDUZvmVL`AZOFTScen>$kyIu2_Q@V8e{;OW;sCSJJ1!t2+Z&-fE*p` zN`d6++jPBHrvLIZ=*6VzY;&dAa?JYzm{kAbO8}X&IO#i@89=ta zIeY+l+Pj(uU|9s;^RGr%qX+4%q_ z*uM!8K&H}a+xw^iWJ{Tu6FC87>fav=AX8FmZ-@qvD`E}s1jcc6H-PCR_xgZ;0D0QW z{sCm^+pY*8Pia=n7Igr*`i=?(kf#|7TYD)1WQzdI5x~GQ^=-%nkZle}@&m{nN!Xi6 z0p#jDY!yJZG%aRhHGoW|9k5RwUM$-S548P{LtQN23v{vm-K79Bl?FktiwBUYb0X(^ zP9}i-Nwn`&dH~rvp5O=|SKoQi0P^(hX9bX_v(W6v#RACQcUV1uJk4H606B_g>CdzT zkg0PkHGpho6su3p1du5LkSAjUJdPu&z5|5;Oe}285z+uMMFRH28v*3%II$%ktc2s<}z+0c)6Kljc4r>mr%`DWg^qD2}ee4Y8{ ziL>?ZoU^t{(&2OG#xxxB=r{8YOt~(&0DQz$=bMy#%2HiXO{odkZKC)#A#qLP`-5k2 z*J`2EI_!_zD778?F8ohp_vBlJd~#6z9I3yj{wYje!M*7UrR1}Tt$Ql#-?zJj9{cx0A63*pJsE4EAH(T#4PkHQ%bmo?`MY->Kx&hpHNM zbFjmsl`2kpx8KG0&vD1{-OIJu^BXGloVfXJ309#J%|*zQu_hMLrRo8qIedi2}j#y+^Dw z_wfgP2;cim=kl%6N)d(nmGsN!8W$no!rVWCJbuOfSvkIKi{1H3zU3_U`@)y|HQOt- z3-^=Ae?9gM01~x_?_$Pdw;|9C(5=T&3H$jze6tk$`y2VrC->vZz!N*R1K+8}zOxJ8 zEXDpN92)Ewt19&X_5%3aNVp|L&td7Z-^NqG&!{)2GW5Uy2kzL|@?9R9WN zPbQr`u-`=wx?w*8ih>8JNZeA_pp>cDqEiLI20Y1vnnOHWu~!XH>Q?ymM^8S*U5mtS z!XAKsMf`gc$#mTBQEm~~ZDWxQ{_*hj;$A?a^W)B-eByBbdwvp9^85~a9YU^!|E}sfk57au z^#=aMC_F@@9zv-OVMq2?syuWbknS0{y~q_+P?ahxH3B=9NatZ+iO^?a=evqJfqgIe z2qxU$VM@J^`?!}W7{dU6MJiG+8*p-9&`a)zF}Ptds8Q+_G8Z@ z(tN@%RH-*{*MRS8?9t_vLe;@6=!Y;;5M5tEY%6GD{|8A?)=h*q~ z;XBUQXWR2lZ0s8ckx%%=a!uCNryj}#`;Ml>fnB>J->Sv_rGQdpvG1px8bH4vxgW+I zO8mcJmm-}t@Soj4sfD=zBHTCFKa%cx_|HQ>#^8pH$`4MKvYIHhk8&_MVT ze+%l>-?(R8$9HM5r<3mAv8&aljmJKTo{YlYLVBfdn^g$;<9>qsPhf9CDTZP^G{>_F%tU5naLFLgm?m zEhZRbLXW5ww=LPnA>8F$_al9`!~dF_wXClo-M8TG+k`%X`vZ~pBJ3&%fuyK`6o&Bl zxfgW^y0#>OEU3w(;|J_sq+=rXni}L4I|F%+#GXz;9>>0qFvYOXfU7}!gg6%aNFB-! zyIcXKNQ(LmMJx^N2IPiHs1LX8BGE80wKiJKx)OXCO!O-&r-aUZ2TCS#Wx zNZX8mI{cr+U7PaRfjxoz48ShIUkLXG%B2KLY*gu}k#Ch~|~&V%f+U&GxV z`xWHmA)I`lo=a67A>V-gR}}pT{vS1mC+-9aeF^rK`t<$S4N%6#*k{T2ck1(6B1Yg`Gq63871+(~^)ryY7e-Ov9)D)kK7gk`joVyKQj4n0`f)l|r{DRm!?J}HI!j*)>hK5X=)^CU4qRxZOvBIxiw^ezAlHks=~%E+ zUnH!#A4}N^4+$g4$qOWbr^Q62Rm5vw*7)dCr!LoIL3NH8&+6{iJ+jS8j8Hh|*P*+8!^U>E6*eAg$a2m9x zOz#D4KwHobvR;7K6kQyFv326MpEK*nnGz)}Fdr-c3&AsB5qK6X z2G4=#!4mKSco8fGFM*fAD_|LT6}$$PgB9R)@CJAjyanC{?|_xyUGN@Q1y+MK;C-+b z$QW95dOg?xHi8d9P4Zj|)CP4xT~H6y2MxfTpdq*m+zlFm#^4?h3YvhXpcx1Q%|Q#$ z60`z+kjZC2#?fuSy`VLaHcQ6uGVYZ*K~X@}wdQ+td)E9w#{8&?wZ16h>+1n3W6gb- zGFfX%Vc5+9Lse@|C*x+O3D$hvgH5w%&5`Lgtu+ybyw)7M4t6cYMHi6Ax3-}0p3_bx{!8Y(I*ba7p&%ozkC-?&F0$+mN zU=R2j>;>O|eL&_sw}VPx8A*N(EC(yV>);LWCin_knr77qI~Y4ZxF4i~cp&qUK_CGn zf+QewoD|Rj(0p5S-a^;J@FPG>$S4hD)T#81C@1N znFGo?pR6&3^@J*ol-0TscmK-N5DU4h}MwVoksLY08b#bupI z)?%uFnn2d|WbIbghh*)q0g$n8LvS~^3(Nwu!9Ab}XbPHvFwg?D1g*fmpbcmX+JW|< z1Lz1kfpE|nM1U@!E9eG#fS%w!5D9vL-XIF}0nwl@hyk%64)g>4!2mE23<3!t5hQ^W za6d=|UXTU`gCSrjNC(5f2rv?i0;9ngkO9VmabP^i1P_1-U?P|V9t018hruIYGI$hB z0aL+aU^5Ks}^3J&348T$@U1ylvqKy~06R|2jC@o?I_VdmBbKdKT%`Wfr5Ocj- zo?oR4KI^qH}yyth8OYBcg4mZZnn2Rrl*jDfii=5&sr#a z=fS3n=B7jM4?ne;rtIk3_>YCNOc!_tm{6*XS?6uXCWR;)i%9?c34e`g17YSPLdr;S z>khS$xdajMN21x0XNUw`K`A_`2aIgSodYv3 - - + + + + + + + + + + + + + - + + + + + + + + + + + + + diff --git a/Mod Sources/TSExtension/TSExtension/TSExtension.vcxproj.filters b/Mod Sources/TSExtension/TSExtension/TSExtension.vcxproj.filters index 36cee7b..e7008a4 100644 --- a/Mod Sources/TSExtension/TSExtension/TSExtension.vcxproj.filters +++ b/Mod Sources/TSExtension/TSExtension/TSExtension.vcxproj.filters @@ -13,6 +13,12 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {6d8e53d2-8590-4c42-b4e2-ff67cedefcce} + + + {5269716c-2798-40ef-aa8a-2c8e784cf99b} + @@ -21,25 +27,94 @@ Source Files - - Source Files - Source Files - - Source Files + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI + + + Source Files\DXAPI Header Files - - Header Files - Header Files + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + + + Header Files\DXAPI + \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI.h deleted file mode 100644 index 060dd0e..0000000 --- a/Mod Sources/TSExtension/TSExtension/include/DXAPI.h +++ /dev/null @@ -1,136 +0,0 @@ -/** - * @file DXAPI.h - * @brief The DXAPI is an API that allows you to manipulate various game objects - * in Tribes 2 from raw C++ code. It dynamically resolves the addresses of member - * variables as you can't really trust the compiler to produce binary compatible classes, - * especially with all the inheritance involved in the original Tribes 2 codebase. - * - * This code wouldn't be possible without Linker's original gift on the-construct.net forums, - * whose files are appropriately labelled in this codebase. These files have been edited where - * appropriate in order to make that code play better with the DXAPI. - * - * @copyright (c) 2014 Robert MacGregor - */ - -#pragma once - -#include "LinkerAPI.h" - -namespace DX -{ - //! A typedef referring to some type of unresolved object in the game. - typedef void* UnresolvedObject; - - class Projectile {}; - - //! Structure representing a player object in the game. - typedef struct - { - //! Object Name - const char *name; - //! Object ID - const unsigned int &id; - - //! X Coordinate of the position. - float &position_x; - //! Y Coordinate of the position. - float &position_y; - //! Z Coordinate of the position. - float &position_z; - - //! Player Object Jetting State (readonly, writing it doesn't do anything) - const bool &is_jetting; - //! Player Object Jumping State (readonly, writing it doesn't do anything) - const bool &is_jumping; - //! Player Object Using Toggable Pack - bool &is_using_toggledpack; - } Player; - - /** - * @brief Returns a usable Player structure from a void - * pointer. - * @param obj A void pointer to attempt to resolve from. - * @return A usable Player structure to manipulate. - */ - Player GetPlayerPointer(UnresolvedObject obj); - - //! Structure representing a static shape in the game. - typedef struct - { - //! Object Name - const char *name; - //! X Coordinate of the position. - float &position_x; - //! Y Coordinate of the position. - float &position_y; - //! Z Coordinate of the position. - float &position_z; - } StaticShape; - - //! Structure representing a grenade projectile. - typedef struct - { - //! X Coordinate of the position. - float &position_x; - //! Y Coordinate of the position. - float &position_y; - //! Z Coordinate of the position. - float &position_z; - - // Note: Thile these values can be set, they're not networked properly - //! The X Coordinate of the velocity. - const float &velocity_x; - //! The Y Coordinate of the velocity. - const float &velocity_y; - //! The Z Coordinate of the velocity. - const float &velocity_z; - } GrenadeProjectile; - - /** - * @brief Returns a usable StaticShape structure from a void - * pointer. - * @param obj A void pointer to attempt to resolve from. - * @return A usable StaticShape structure to manipulate. - */ - StaticShape GetStaticShapePointer(UnresolvedObject obj); - - //! Structure representing a SimGroup in the game. - typedef struct - { - - } SimGroup; - - /** - * @brief Returns a usable SimGroup structure from a void - * pointer. - * @param obj A void pointer to attempt to resolve from. - * @return A usable SimGroup structure to manipulate. - */ - SimGroup GetSimGroupPointer(UnresolvedObject obj); - - - //! Structure representing a FlyingVehicle in the game. - typedef struct - { - //! Strafing State. 0=Not Strafing. -1=Strafing Left. 1=Strafing Right (readonly, writing it doesn't do anything) - const float &strafing_state; - } FlyingVehicle; - - /** - * @brief Returns a usable FlyingVehicle structure from a void - * pointer. - * @param obj A void pointer to attempt to resolve from. - * @return A usable FlyingVehicle structure to manipulate. - */ - FlyingVehicle GetFlyingVehiclePointer(UnresolvedObject obj); - - /** - * @brief Returns a usable GrenadeProjectile structure from a void - * pointer. - * @param obj A void pointer to attempt to resolve from. - * @return A usable GrenadeProjectile structure to manipulate. - */ - GrenadeProjectile GetGrenadeProjectilePointer(UnresolvedObject obj); - - void Projectile_explode(Projectile *obj, const Point3F &position, const Point3F &normal, const unsigned int collideType); -} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/DXAPI.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/DXAPI.h new file mode 100644 index 0000000..154a692 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/DXAPI.h @@ -0,0 +1,43 @@ +/** + * @file DXAPI.h + * @brief The DXAPI is an API that allows you to manipulate various game objects + * in Tribes 2 from raw C++ code. It dynamically resolves the addresses of member + * variables as you can't really trust the compiler to produce binary compatible classes, + * especially with all the inheritance involved in the original Tribes 2 codebase. + * + * This code wouldn't be possible without Linker's original gift on the-construct.net forums, + * whose files are appropriately labelled in this codebase. These files have been edited where + * appropriate in order to make that code play better with the DXAPI. + * + * @copyright (c) 2014 Robert MacGregor + */ + +//#pragma once + +#include "LinkerAPI.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace DX +{ + //! A typedef referring to some type of unresolved object in the game. + typedef void* UnresolvedObject; + + //! Structure representing a static shape in the game. + //typedef struct + //{ + +// } StaticShape; + + void Projectile_explode(Projectile *obj, const Point3F &position, const Point3F &normal, const unsigned int collideType); +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/FlyingVehicle.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/FlyingVehicle.h new file mode 100644 index 0000000..e729232 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/FlyingVehicle.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace DX +{ + //! Class representing a FlyingVehicle in the game. + class FlyingVehicle : public Vehicle + { + public: + FlyingVehicle(unsigned int obj); + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/GameBase.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/GameBase.h new file mode 100644 index 0000000..3a9be4a --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/GameBase.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +namespace DX +{ + class GameBase : public SceneObject + { + public: + GameBase(unsigned int obj); + }; +} // End NameSpace DX diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/GrenadeProjectile.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/GrenadeProjectile.h new file mode 100644 index 0000000..ed0b3da --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/GrenadeProjectile.h @@ -0,0 +1,13 @@ +#pragma once + +#include +#include + +namespace DX +{ + class GrenadeProjectile : public Projectile + { + public: + GrenadeProjectile(unsigned int obj); + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/NetObject.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/NetObject.h new file mode 100644 index 0000000..05b96d9 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/NetObject.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +namespace DX +{ + class NetObject : public SimObject + { + public: + NetObject(unsigned int obj); + }; +} // End NameSpace DX diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/Player.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Player.h new file mode 100644 index 0000000..be033e1 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Player.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include + +namespace DX +{ + //! Class representing a player object in the game. + class Player : public ShapeBase + { + public: + Player(unsigned int obj); + + //! Object Name + const char *name; + //! Object ID + const unsigned int &id; + + //! Player Object Jetting State (readonly, writing it doesn't do anything) + const bool &is_jetting; + //! Player Object Jumping State (readonly, writing it doesn't do anything) + const bool &is_jumping; + //! Player Object Using Toggable Pack + bool &is_using_toggledpack; + }; +} // End NameSpace DX diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/Point3F.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Point3F.h new file mode 100644 index 0000000..db62b38 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Point3F.h @@ -0,0 +1,17 @@ +#pragma once + +namespace DX +{ + /** + * @brief A class representing a referenced 3D vector of floats in Tribes 2. + */ + class Point3F + { + public: + Point3F(float &X, float &Y, float &Z); + + float &x; + float &y; + float &z; + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/Projectile.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Projectile.h new file mode 100644 index 0000000..933f20d --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Projectile.h @@ -0,0 +1,17 @@ +#pragma once + +#include + +namespace DX +{ + class Projectile : public GameBase + { + public: + Projectile(unsigned int obj); + + //! Velocity. It is constant because modifying it directly breaks the sim. + const Point3F velocity; + + bool &hidden; + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/SceneObject.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/SceneObject.h new file mode 100644 index 0000000..6186d48 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/SceneObject.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include + +namespace DX +{ + class SceneObject : public NetObject + { + public: + SceneObject(unsigned int obj); + + Point3F position; + Point3F scale; + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/ShapeBase.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/ShapeBase.h new file mode 100644 index 0000000..ccb550e --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/ShapeBase.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +namespace DX +{ + class ShapeBase : public GameBase + { + public: + ShapeBase(unsigned int obj); + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/SimObject.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/SimObject.h new file mode 100644 index 0000000..29a8e1f --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/SimObject.h @@ -0,0 +1,15 @@ +#pragma once + +namespace DX +{ + class SimObject + { + public: + SimObject(unsigned int obj); + + void deleteObject(void); + + protected: + const unsigned int base_pointer_value; + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/StaticShape.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/StaticShape.h new file mode 100644 index 0000000..1426be7 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/StaticShape.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +namespace DX +{ + //! Class representing a StaticShape in the game. + class StaticShape : public ShapeBase + { + public: + StaticShape(unsigned int obj); + + //! Object Name + //const char *name; + //! Position + //const Point3F position; + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXAPI/Vehicle.h b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Vehicle.h new file mode 100644 index 0000000..fe64e3b --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/include/DXAPI/Vehicle.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace DX +{ + //! Class representing a FlyingVehicle in the game. + class Vehicle : public ShapeBase + { + public: + Vehicle(unsigned int obj); + }; +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/include/DXConCmds.h b/Mod Sources/TSExtension/TSExtension/include/DXConCmds.h index 15fdd30..5952e35 100644 --- a/Mod Sources/TSExtension/TSExtension/include/DXConCmds.h +++ b/Mod Sources/TSExtension/TSExtension/include/DXConCmds.h @@ -27,6 +27,7 @@ const char* conGrenadeProjectileGetVelocity(SimObject *obj, S32 argc, const char // Projectile explode ------------------------------- bool conProjectileExplode(SimObject *obj, S32 argc, const char* argv[]); +bool conProjectileMakeNerf(SimObject *obj, S32 argc, const char* argv[]); // General Commands --------------------------------- const char* conSprintf(SimObject *obj, S32 argc, const char* argv[]); \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/BaseMod.cpp b/Mod Sources/TSExtension/TSExtension/source/BaseMod.cpp deleted file mode 100644 index b7a9173..0000000 --- a/Mod Sources/TSExtension/TSExtension/source/BaseMod.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// BaseMod.cpp : Defines the exported functions for the DLL application. -// - -#include -#include - -#include - -extern "C" -{ - __declspec(dllexport) void ModInitialize(void) - { - Con::addMethodB("Player", "isjumping", &conPlayerGetJumpingState,"Returns whether or not the player is jumping", 2, 2); - Con::addMethodB("Player", "isjetting", &conPlayerGetJettingState,"Returns whether or not the player is jetting", 2, 2); - - Con::addMethodB("GrenadeProjectile", "explode", &conProjectileExplode,"Explodes the given projectile", 5, 5); - Con::addMethodB("Projectile", "explode", &conProjectileExplode,"Explodes the given projectile", 5, 5); - - Con::addMethodS("GrenadeProjectile", "getposition", &conGrenadeProjectileGetPosition,"Accurately gets the position of the GrenadeProjectile", 2, 2); - Con::addMethodS("GrenadeProjectile", "getvelocity", &conGrenadeProjectileGetVelocity,"Gets the velocity of the GrenadeProjectile", 2, 2); - - Con::addMethodS(NULL, "sprintf", &conSprintf,"Formats a string. See the C sprintf.", 2, 20); - } -} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI.cpp deleted file mode 100644 index c3cf100..0000000 --- a/Mod Sources/TSExtension/TSExtension/source/DXAPI.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/** - * @file DXAPI.cpp - * @brief The DXAPI is an API that allows you to manipulate various game objects - * in Tribes 2 from raw C++ code. It dynamically resolves the addresses of member - * variables as you can't really trust the compiler to produce binary compatible classes, - * especially with all the inheritance involved in the original Tribes 2 codebase. - * - * This code wouldn't be possible without Linker's original gift on the-construct.net forums, - * whose files are appropriately labelled in this codebase. These files have been edited where - * appropriate in order to make that code play better with the DXAPI. - * - * @copyright (c) 2014 Robert MacGregor - */ - -#include "DXAPI.h" -#include "LinkerAPI.h" - -namespace DX -{ - Player GetPlayerPointer(UnresolvedObject obj) - { - // Probably some way to do all this via assembly but screw me if I know - unsigned int base_tribes_pointer = (unsigned int)obj; - - Player result = - { - 0x00, // Object Name - *(unsigned int*)(base_tribes_pointer + 32), // Object ID - *(float*)(base_tribes_pointer + 168), // Position X - *(float*)(base_tribes_pointer + 184), // Position Y - *(float*)(base_tribes_pointer + 200), // Position Z - *(bool*)(base_tribes_pointer + 735), // Jetting State - *(bool*)(base_tribes_pointer + 734), // Jumping State - *(bool*)(base_tribes_pointer + 1172) // Using Toggled Pack - }; - return result; - } - - StaticShape GetStaticShapePointer(UnresolvedObject obj) - { - unsigned int base_tribes_pointer = (unsigned int)obj; - - StaticShape result = - { - 0x00, // Object Name - *(float*)(base_tribes_pointer + 200), // Position X - *(float*)(base_tribes_pointer + 200), // Position Y - *(float*)(base_tribes_pointer + 200) // Position Z - }; - return result; - } - - SimGroup GetSimGroupPointer(UnresolvedObject obj) - { - unsigned int base_tribes_pointer = (unsigned int)obj; - - SimGroup result = - { - - }; - return result; - } - - FlyingVehicle GetFlyingVehiclePointer(UnresolvedObject obj) - { - unsigned int base_tribes_pointer = (unsigned int)obj; - - FlyingVehicle result = - { - *(float*)(base_tribes_pointer + 2200), // Strafing Status - }; - - return result; - } - - GrenadeProjectile GetGrenadeProjectilePointer(UnresolvedObject obj) - { - unsigned int base_tribes_pointer = (unsigned int)obj; - - GrenadeProjectile result = - { - *(float*)(base_tribes_pointer + 168), // Position X - *(float*)(base_tribes_pointer + 504), // Position Y - *(float*)(base_tribes_pointer + 520), // Position Z - *(float*)(base_tribes_pointer + 892), // Velocity X - *(float*)(base_tribes_pointer + 896), // Velocity Y - *(float*)(base_tribes_pointer + 900), // Velocity Z - }; - - return result; - } - - void Projectile_explode(Projectile *obj, const Point3F &position, const Point3F &normal, const unsigned int collideType) - { - typedef void (__cdecl *explodeFunc)(const Point3F &position, const Point3F &normal, const unsigned int collideType); - static explodeFunc function_call = (explodeFunc)0x62DC30; - - __asm { - push collideType; - push normal; - push position; - mov ecx,obj; - lea eax, function_call; - mov eax, [eax]; - call eax; - } -} - -} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/DXAPI.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/DXAPI.cpp new file mode 100644 index 0000000..8d607d8 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/DXAPI.cpp @@ -0,0 +1,38 @@ +/** + * @file DXAPI.cpp + * @brief The DXAPI is an API that allows you to manipulate various game objects + * in Tribes 2 from raw C++ code. It dynamically resolves the addresses of member + * variables as you can't really trust the compiler to produce binary compatible classes, + * especially with all the inheritance involved in the original Tribes 2 codebase. + * + * This code wouldn't be possible without Linker's original gift on the-construct.net forums, + * whose files are appropriately labelled in this codebase. These files have been edited where + * appropriate in order to make that code play better with the DXAPI. + * + * @copyright (c) 2014 Robert MacGregor + */ + +#include +#include + +#include + +namespace DX +{ + void Projectile_explode(Projectile *obj, const Point3F &position, const Point3F &normal, const unsigned int collideType) + { + typedef void (__cdecl *explodeFunc)(const Point3F &position, const Point3F &normal, const unsigned int collideType); + static explodeFunc function_call = (explodeFunc)0x62DC30; + + __asm + { + push collideType; + push normal; + push position; + mov ecx,obj; + lea eax, function_call; + mov eax, [eax]; + call eax; + } + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/FlyingVehicle.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/FlyingVehicle.cpp new file mode 100644 index 0000000..0a696de --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/FlyingVehicle.cpp @@ -0,0 +1,8 @@ +#include + +namespace DX +{ + FlyingVehicle::FlyingVehicle(unsigned int obj) : Vehicle(obj) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/GameBase.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/GameBase.cpp new file mode 100644 index 0000000..1c1bad9 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/GameBase.cpp @@ -0,0 +1,8 @@ +#include + +namespace DX +{ + GameBase::GameBase(unsigned int obj) : SceneObject(obj) + { + } +} // End NameSpace DX \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/GrenadeProjectile.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/GrenadeProjectile.cpp new file mode 100644 index 0000000..a54a82a --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/GrenadeProjectile.cpp @@ -0,0 +1,8 @@ +#include + +namespace DX +{ + GrenadeProjectile::GrenadeProjectile(unsigned int obj) : Projectile(obj) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/NetObject.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/NetObject.cpp new file mode 100644 index 0000000..5935089 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/NetObject.cpp @@ -0,0 +1,8 @@ +#include + +namespace DX +{ + NetObject::NetObject(unsigned int obj) : SimObject(obj) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/Player.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Player.cpp new file mode 100644 index 0000000..02bf073 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Player.cpp @@ -0,0 +1,13 @@ +#include + +namespace DX +{ + Player::Player(unsigned int obj) : ShapeBase(obj), + name(0x00), id(*(unsigned int*)(obj + 32)), + is_jetting(*(bool*)(obj + 735)), + is_jumping(*(bool*)(obj + 734)), + is_using_toggledpack(*(bool*)(obj + 1172)) + { + + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/Point3F.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Point3F.cpp new file mode 100644 index 0000000..5fd6938 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Point3F.cpp @@ -0,0 +1,8 @@ +#include + +namespace DX +{ + Point3F::Point3F(float &X, float &Y, float &Z) : x(X), y(Y), z(Z) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/Projectile.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Projectile.cpp new file mode 100644 index 0000000..a3bd7a7 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Projectile.cpp @@ -0,0 +1,10 @@ +#include + +namespace DX +{ + Projectile::Projectile(unsigned int obj) : velocity(*(float*)(obj + 892), *(float*)(obj + 896), *(float*)(obj + 900)), + hidden(*(bool*)(obj + 796)), + GameBase(obj) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/SceneObject.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/SceneObject.cpp new file mode 100644 index 0000000..938edd8 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/SceneObject.cpp @@ -0,0 +1,10 @@ +#include + +namespace DX +{ + SceneObject::SceneObject(unsigned int obj) : position(*(float*)(obj + 168), *(float*)(obj + 184), *(float*)(obj + 200)), + scale(*(float*)(obj + 284), *(float*)(obj + 288), *(float*)(obj + 292)), + NetObject(obj) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/ShapeBase.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/ShapeBase.cpp new file mode 100644 index 0000000..6cc23e1 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/ShapeBase.cpp @@ -0,0 +1,8 @@ +#include + +namespace DX +{ + ShapeBase::ShapeBase(unsigned int obj) : GameBase(obj) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/SimObject.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/SimObject.cpp new file mode 100644 index 0000000..90f9276 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/SimObject.cpp @@ -0,0 +1,24 @@ +#include + +namespace DX +{ + SimObject::SimObject(unsigned int obj) : base_pointer_value(obj) + { + } + + void SimObject::deleteObject(void) + { + void *pointer = (void*)this->base_pointer_value; + + typedef void (__cdecl *deleteObjectFunc)(void); + static deleteObjectFunc function_call = (deleteObjectFunc)0x439DE0; + + __asm + { + mov ecx, pointer; + lea eax, function_call; + mov eax, [eax]; + call eax; + } + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/StaticShape.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/StaticShape.cpp new file mode 100644 index 0000000..9afad9c --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/StaticShape.cpp @@ -0,0 +1,10 @@ +#include + +namespace DX +{ + StaticShape::StaticShape(unsigned int obj) : ShapeBase(obj) + //name(0x00), + //position(*(float*)(obj + 200), *(float*)(obj + 200), *(float*)(obj + 200)) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXAPI/Vehicle.cpp b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Vehicle.cpp new file mode 100644 index 0000000..5002fd1 --- /dev/null +++ b/Mod Sources/TSExtension/TSExtension/source/DXAPI/Vehicle.cpp @@ -0,0 +1,8 @@ +#include + +namespace DX +{ + Vehicle::Vehicle(unsigned int obj) : ShapeBase(obj) + { + } +} \ No newline at end of file diff --git a/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp b/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp index 9a49eae..978a908 100644 --- a/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp +++ b/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp @@ -3,7 +3,7 @@ */ #include -#include +#include const char *conGetAddress(SimObject *obj, S32 argc, const char *argv[]) { @@ -15,14 +15,14 @@ const char *conGetAddress(SimObject *obj, S32 argc, const char *argv[]) bool conPlayerGetJumpingState(SimObject *obj, S32 argc, const char* argv[]) { - DX::Player operand = DX::GetPlayerPointer(obj); + DX::Player operand = DX::Player((unsigned int)obj); return operand.is_jumping; } bool conPlayerGetJettingState(SimObject *obj, S32 argc, const char* argv[]) { - DX::Player operand = DX::GetPlayerPointer(obj); + DX::Player operand = DX::Player((unsigned int)obj); return operand.is_jetting; } @@ -40,7 +40,15 @@ bool conProjectileExplode(SimObject *obj, S32 argc, const char* argv[]) normal.z = 0; unsigned int collideType = atoi(argv[4]); - DX::Projectile_explode((DX::Projectile*)obj, position, normal, collideType); + //DX::Projectile_explode((DX::Projectile*)obj, position, normal, collideType); + + return true; +} + +bool conProjectileMakeNerf(SimObject *obj, S32 argc, const char* argv[]) +{ + DX::GrenadeProjectile grenade = DX::GrenadeProjectile((unsigned int)obj); + grenade.hidden = true; return true; } @@ -49,8 +57,8 @@ const char* conGrenadeProjectileGetPosition(SimObject *obj, S32 argc, const char { char result[256]; - DX::GrenadeProjectile grenade = DX::GetGrenadeProjectilePointer(obj); - sprintf_s<256>(result, "%f %f %f", grenade.position_x, grenade.position_y, grenade.position_z); + DX::GrenadeProjectile grenade = DX::GrenadeProjectile((unsigned int)obj); + sprintf_s<256>(result, "%f %f %f", grenade.position.x, grenade.position.y, grenade.position.z); return result; } @@ -58,8 +66,9 @@ const char* conGrenadeProjectileGetVelocity(SimObject *obj, S32 argc, const char { char result[256]; - DX::GrenadeProjectile grenade = DX::GetGrenadeProjectilePointer(obj); - sprintf_s<256>(result, "%f %f %f", grenade.velocity_x, grenade.velocity_y, grenade.velocity_z); + DX::GrenadeProjectile grenade((unsigned int)obj); + sprintf_s<256>(result, "%f %f %f", grenade.velocity.x, grenade.velocity.y, grenade.velocity.z); + return result; } diff --git a/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp b/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp index 676221a..701a86b 100644 --- a/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp +++ b/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp @@ -18,3 +18,30 @@ BOOL APIENTRY DllMain( HMODULE hModule, return TRUE; } +#include +#include + +#include + +extern "C" +{ + __declspec(dllexport) void ModInitialize(void) + { + Con::addMethodB("Player", "isjumping", &conPlayerGetJumpingState,"Returns whether or not the player is jumping", 2, 2); + Con::addMethodB("Player", "isjetting", &conPlayerGetJettingState,"Returns whether or not the player is jetting", 2, 2); + + Con::addMethodB("GrenadeProjectile", "explode", &conProjectileExplode,"Explodes the given projectile", 5, 5); + Con::addMethodB("Projectile", "explode", &conProjectileExplode,"Explodes the given projectile", 5, 5); + + Con::addMethodS("GrenadeProjectile", "getposition", &conGrenadeProjectileGetPosition,"Accurately gets the position of the GrenadeProjectile", 2, 2); + Con::addMethodS("GrenadeProjectile", "getvelocity", &conGrenadeProjectileGetVelocity,"Gets the velocity of the GrenadeProjectile", 2, 2); + Con::addMethodB("Projectile", "makeNerf", &conProjectileMakeNerf,"Makes the Projectile deal no damage", 2, 2); + + Con::addMethodS(NULL, "sprintf", &conSprintf,"Formats a string. See the C sprintf.", 2, 20); + + // Add this Gvar to signify that TSExtension is active + static bool is_active = true; + Con::addVariable("$TSExtension::isActive", TypeBool, &is_active); + } +} +