From 1f1952fb19378deb3e56206f53a1dfa37e4424b7 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 7 Jul 2023 16:18:01 -0700 Subject: [PATCH] Add S100 and DUO Platforms --- Doc/ChangeLog.txt | 1 + Doc/RomWBW Applications.pdf | Bin 242255 -> 242257 bytes Doc/RomWBW Disk Catalog.pdf | Bin 124413 -> 124414 bytes Doc/RomWBW Errata.pdf | Bin 28606 -> 28640 bytes Doc/RomWBW ROM Applications.pdf | Bin 159617 -> 159618 bytes Doc/RomWBW System Guide.pdf | Bin 560229 -> 560320 bytes Doc/RomWBW User Guide.pdf | Bin 613172 -> 622686 bytes ReadMe.md | 2 +- ReadMe.txt | 2 +- Source/Apps/Tune/tune.asm | 4 + Source/Apps/rtc.asm | 37 +- Source/Doc/SystemGuide.md | 3 + Source/Doc/UserGuide.md | 49 + Source/HBIOS/Build.cmd | 11 +- Source/HBIOS/Build.ps1 | 4 +- Source/HBIOS/Build.sh | 2 + Source/HBIOS/Clean.cmd | 1 + Source/HBIOS/Config/DUO_std.asm | 58 + Source/HBIOS/Config/S100_std.asm | 49 + Source/HBIOS/Makefile | 10 +- Source/HBIOS/cfg_duo.asm | 298 +++ Source/HBIOS/cfg_dyno.asm | 2 +- Source/HBIOS/cfg_master.asm | 2 +- Source/HBIOS/cfg_mbc.asm | 2 +- Source/HBIOS/cfg_mk4.asm | 2 +- Source/HBIOS/cfg_n8.asm | 2 +- Source/HBIOS/cfg_rcz180.asm | 2 +- Source/HBIOS/cfg_rcz280.asm | 2 +- Source/HBIOS/cfg_rcz80.asm | 2 +- Source/HBIOS/cfg_rph.asm | 2 +- Source/HBIOS/cfg_s100.asm | 303 +++ Source/HBIOS/cfg_sbc.asm | 2 +- Source/HBIOS/cfg_scz180.asm | 2 +- Source/HBIOS/cfg_una.asm | 2 +- Source/HBIOS/cfg_z80retro.asm | 2 +- Source/HBIOS/cfg_zeta.asm | 2 +- Source/HBIOS/cfg_zeta2.asm | 2 +- Source/HBIOS/hbios.asm | 16 + Source/HBIOS/hbios.inc | 2 + Source/HBIOS/s100mon.z80 | 3053 ++++++++++++++++++++++++++++++ Source/HBIOS/std.asm | 2 + Source/ReadMe.txt | 3 + Source/ver.inc | 2 +- Source/ver.lib | 2 +- 44 files changed, 3906 insertions(+), 38 deletions(-) create mode 100644 Source/HBIOS/Config/DUO_std.asm create mode 100644 Source/HBIOS/Config/S100_std.asm create mode 100644 Source/HBIOS/cfg_duo.asm create mode 100644 Source/HBIOS/cfg_s100.asm create mode 100644 Source/HBIOS/s100mon.z80 diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index f7304f17..584a2981 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -14,6 +14,7 @@ Version 3.3 - R?P: Added new disk images: Aztec C, MS BASIC Compiler, MS Fortran, Games, HiTech-C, Turbo Pascal, SLR Z80ASM - JBL: Added RCZ80 configuration for ColecoVision - WBW: Support for Z180 running interrupt mode 1 +- WBW: Preliminary support for S100 Computers Z180 Version 3.2.1 ------------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index d35f75a078df0fe84271e29134945e9959403564..480d5aa26f2bfe45ea2332951bcfb34788e0fab3 100644 GIT binary patch delta 15845 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 delta 15851 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 diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 8f200df24138ef95572896e741427e1ee29f96c5..28d980177c42a9228e2665b7284694bf6b0518a6 100644 GIT binary patch delta 4898 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 S*>jOD9i7k0%PSdKn)M&vW-j0W diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index 5af2c6a9221bcd368b2ea93eff35fc622eb75ec7..0f44a1d4f203c8e7e401c2dcb5b9cbb86efb2161 100644 GIT binary patch delta 8443 zcmai%bx_>R^XIW(!5sp@-51!!f_n%q!6gI;1X&5g^8jdjG>5TMn5g$M8GiueIp{v?8XgNCM-TW*R` zjkEw{s*6Vd{L=kCZl?VEw*`Z6LmVqh)*y(4``gom!DoE*0r=~LpAo{!DBL%{*ClX{ z&+088RS|Yp>F&2sW_M3&-^Cx?M#2Z5(L_djdTvrAYo*U9O?{0Z-@j{O(sV^%pj=Qr z8v^)@Ia}#{`BBU=IE*pCZZ>gvpmdT(r(|iSg0Tck3uS>c6pWwStFX2(?E5vJ0< znVa*`SWMw6>)hEO;z?_Eyk>=88>S_yDgY0%tTSz4W^STWnaW1J#?FEA-*6I=KBnjo zgnHJW60Te3hxXB%wGO&#HSXPQSA4}!tZOwRP2)!}*1z1B_LGGV_w~GMC-iy;Z+v7t z31M5FD~)^SOEYAnJB?gpgkqHbc|Nw=DdyMI8xzm*SDgFNU-@s@oi!L; z2bXNxzbUwYcg26sVRHtQJ!>?re5go+IN$_~-+^(nFV>ej;4DZ^AT$V#0gV8d7oN#) ziAa)c-a+~l^>p&$fW?o(fp>s_AOlC$h9T+_!Z^TENP_$@M=%*ctX(TEVQ(M!TT03v z-GG4hD=7i`Kr{=_0L_6ybq~S!a1Icg*#Z_Ofjd_Zv$wb-ZpmOgf%8 zMhWC02EPGhQ!orj{56)~SA;rhq2vdXT!ypK^70tA<| zPjWaTUz1ZsnB4RMd;OgzjA;{JUraHNC1tRtyK?+uLh7hZilV@1fqs!VTdDbK6L0!) zioRmZOY;ZVR!T|P{@hZLIviNu{PK&e^&_rzRK~)(H}9zba0(SHT->6s&SJ7!|6l@N z=+DbMqe!9KQA*q-Z@#WlaWpyZ)p(|;^H47aw@ObZNCOqv*->%#FdWKJi>`ihAt^DypAyYrblV}b2BxYu{xvz!*(eC zBl}!hy_ub!$Xr%ojZ0FOFg*05?p)M2t9Kt&=OW&X+*czW@q%NYvaro#;9W-;*9;HH zUTN57sb5(DuaJF?2<%Tii|F9^&+ti(;yFKkk9x~Fa{noxd;&1tJaJX72(Vxsv8Oo4slRy=<+j?<+&cb&-1J_yBvA7pAnVfRtey7>CF}2JitXW#Srx`sODGh)Bj@-QuSl@ zJnL-2?8O3J)O4>WszUE=7!DI&v03Kw?;i=(JnHAgAB#wT2nRP3%3QR}H`sYM5e#x> zTz*P8eU)KD_)PL!^!=gM)?=NRzYgiVNjDd>Gl(3MyCtVeNMqlK zv*nx6PB*!8OpmEI3JsU5u!5MDucn9~{ z#g|wI4GL~6t&xsRLJ!^ux+1cT_OUHALZQ)HY^yDBp~1vJq+06Ti(+t(lO})ss zkC;^G|Kw^7=`hBWI3&Z)zxgw_dFC6FyV-yp@{3SgrKTK|N&kqR4CKzo(mTc

yvA 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 diff --git a/Doc/RomWBW ROM Applications.pdf b/Doc/RomWBW ROM Applications.pdf index 5d762a6ada7aace67070a647b0cf5c0f0e9047d3..3db170a0ccc9554dde40ff859b3b25c6377baf77 100644 GIT binary patch delta 9002 zcmai3eXQ4I6|Y}&g9{OeX5*#Zk~?G-J?}3=SzO>IFG3(R$CL(UO(ar~o00kroiY}s zSokw&L93-QHq?@aN>olnu@4>zQ22aFW>XITlcSfpZlEWoaa2} ze9q^b@5U3u?>I61-qjy+N^Sl6M~m+tUT{#2p8e+AUGIPHrEk79W$D&opBdJ_>&)m+ zO}c97u=k4Ju3!1!nu{iFUvTb$X@9U&fB4y%|Ga6}_~+m1Ie7Phqrds%E$i<;f5$y< zylx-qx%Bpzj@-8QJN~f+XLdff`gRK~+g5&l<+@RQ zKls}G74vS5T?d~Wx%mrU-f*lo_R&KRTsP(RIgkCdXY%;r+n;%8-m2{*um16}JwMvD zIb!|7;^+k%|2^`~Ei-Ohx?$&@#mlGmEBZCN+%h2B#m zX7Bmx-3#1MukPMm|I@?2TmJsG32V+fyYu3|J^lFHPn>@BhQp`V9=`G9vQgjl zqo?eB@xndNA31mZ$KU&a>HYn;?;KOxG^X~!UyZ5NemZw}R8e~$Y^ooaUmMr)=gIlC zpInx@Rr%Asrn{^0i&7y6xu$cla?KbY>%YFDHo5TpFQuz%+8J$xDs4@2O6)UQd%4dU z7hQE9Obu~RwrJa~lgo0W&Wi5iP2x3YN!I&p_vu#>pFck`$5%Mfg7@OYfO-5`m;t)=mgx%}~5+o%xxv^UWK#F6^>5-R1jtCXlg_ zZs*}Jabq1cC6&%zW`r`|}r_XFa*!S;jeMla{V_ zLwLq3)1jjn08X!*l3wu28|eja6TQ2)IZ0V<6ybt4hHya_Lj;^QoI2V7Eo2blA{3Y= zC+U7|f#6csnq113{%^S-Fhgmg@t`u0v~2@OGo7@}cLv$TyBTCSJ=*t|iNb2oY29bi@BTAT)(y?X#8c0svF=>wpZEvOz0a z%Ykq~XIqff09GZvptGa5!&(vsf`0fw7s)=$AT-tw#>euu`wcRJg`=0o7^^7YfR|Ky zf&HOAV^M8v(HZcKdSg&*Wr&$*=%ryN)i(pM7xz{Mm7mu@fEo`os^g9^#QN6KrbhO6 zCco9*$VWq=3NoCn1|W+EH%U>=wK_#Q4=+Bj_Q|$QWr>u2M^%dTQw=-iy{wK@6=A1h zJ00;v8wOCXa&Hfxi2GRM{ea%0!%m;b@pvB!E*rEaV*+qqD#=XE0HW2(TjnQ{F3JeD z**F=PD5;b=sHps^AS%+~4kSVv=uGy7yonnk(wzm;h})qY6PP&z!XWn9Oq{SR`Asg` z?hi`rk%cJ3)$%|G1}Ab0W?mg?UY*{%_Q68 zsfha!*iHl~tMZf{J|Hw25!rz-U>=koU>VI`xqZhRDT2TqsPy@qh(ZCdsvNIGm|y}S zLKp&50a!$91K6r`IM%4<1?OBds+x}#oc4u$>VOI--4F9bV!~)Z3>^q|L+3?H#VI)7 zWH)Vu0sA6E2&n(^KscY8#E1!rjBUIKRUo9Lh%NX(f;`9@gCP!~BoH$NVr2n$IFBF@ zYup}1AG4b#aIw6wtho`rEg9&&uP<6!8(V+l5N z&?mwnpgIi?(hzM{@<|ucT?x!l0FicqMX)q!2k40!Cd`B~a|@qpwA1(;y{h|*Z=2<;S&Y*!(SHk*VEb%CfyHN&@|e|L%#&aRL?6)S6ga1v9W1kix{NR*HtB@ zEDdlHt|#_k42u&eSPGDo|T?N^N{U?JFAbrEY(b^xU?qfN#Xmt?bqG{^?_D!7`H zBkHWQWGN7C&NEt(uCPzSA=ZpE2C^882?MdO-PSfo)LCI`bt8l^N35uZ zhGGHxXv$n*vL%OVP|RNguun!mj7e3xTY?Y9lHwxR#~*>PR<^Ju{Feu>9@)4MPI|68u%P(jJCb)@Jw3A*_I3Ra DcY8P? delta 9085 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 B_N4#- delta 28027 zcmaic37F5-_kUr;WSyC8rR-V9dtXeHu?_}ftRsvVeiXtqMfCnMG1&^?Lm7;H?As)} zF_wgoB}+o9tzY2z5lLf0K8i`1aPhJ+s`&568tq(~cvL@A`+VlTE6x9W+W*mj zU-iVUF(oVB(n=n9O-}Bca>?HP^y50EN-qn0Yive#q3q(nIBh=*X@7s;t@nF**3S}x{~2HQ}3SmE^*++G^5Vco`=8HCY7lkQ9b;V0UJsmy>+sV)Z)Zj zUD_zGG+3K4D!pmMrjVbmUT)QWjPqSHrEtk}kA5$tw$}!AxY2jbjM%h>A@gcqsj~Us zqc@wz{_)3)lg{+3q7Ite;mwD$?1quybGEKqHRIVQ#^7CRDn`c^sCuU5(ocI0crqYE z4x2e?e8U|TKfbWh{IA~K@wFfRm_BXvs6jJMl{sB-eZ8@RJqd@R(mFm~|MQUz?{8lf zd*brEb!y_e6S0flAFMr!7}_D};F?o+PFFtObMAl7ogegn<(L1^E5vhQZ-eX}U#E4og`uYD47v)kD0@Iy{kyNr7^=Q|UwT}ux;^>lCNwxiPr zd{MIQ!~QdN{yXF8t5Y7N%s%hdQ;YtFWrlG=6qg_(7GwHV%Q z&(#Yly>>kt_3-I~JHOU{(*3(R?VNva-|_UyzVYk*?CkWZe=$ork0zZu;5PO&@;(3%#Y*e)%f7fTN9UF z8RIGa>V`j*Sts86@$HjujPG%3_>jf*$Jab@eSh@mp2d&;&?UUcq7T>hZC~T=uca=H z(43j8XN|bmcv;0I<$mlRdaLZeJL{hNX5rO0tG)WdgpAip51H0_)0FXcqe_=92R{fO zGpT)@Vcp})M=zeRv}%d7NmsZ0((S9-^UMA+dsOD6lZR5}>*r6MZQAQtO5nBc|B-4&$c3J4Xt_2ddCRxG8cZLxv3ORgmOJM*d##Z3=%b(CtNCE@+^>&( z{_6LI=S9~kIr7SZ)+g$>T6Lu7@VmXU|G0ehK~nb4+Rl*bTR+NNHmS(Y$5(2%o%_=K zTZcwoT%A&&+menq{s}raMLqD&!}(5|busI??AQ`_KOeGf z#O9qNHt)D_cKY56gF~lmdf~T!nr%#uODv|e+w=AHZF8!%p5>`tHZ@zR5IbO}RVq8N zo+qQ;zuW7lelTL2nl*3cjHMyjJuZ|G1KUcK3+Wjmm8pmwj}_?RWc(bnb;-H9y$ac}K$@uY9Ov zmDm5dT4eIe%J^MJ!s|Bwc=dzio@+8@?V5jj*tL0|m-?V*diR5=Mfblv{7mmN{bn8< z>(uSx; zU9!k?t$o$CE53O+?ym|rXAXay<|%*a^Uk~8>(b(l^`&k%>Ao_$de56Fub55OT zyDU`t z^A8mmKJ{33zgzW-S1UfMRfDXbukC2vrufMo?Rpi8SXB9D$4R$68_G`pY3ashgOb~w zId!>H>XsGvQ+xlj?bzoZ42;}T^KqlgBhxy5|JREr3t$B6jj1$_jrb@kc+B9qO?Jei& z;sY;sd2~88;p={9C)!o_#;v|R^!3#11H&WK?$4dya^?2gmDA!%J=uDq??0(a%OBbo zvhnRQ-MU;I`oEvqhS@@V}~>CVYTJNv)VXz7#zU;OmDXH<_% z)sBDJC;Y{6U9Jx)^~WbYdOlovtJa{mH#xJ0eNlB~^vOfddO8v6rQiOJ|GC$Yp#8O@ z&R%`;)89#VvX7LjQTCmv<+qQNTRK`BKjH3_-pvm`OqLHXe{w-?vmtCrBHc6tXfrGxL7f!&8SKfk88K)ooMjI>MMU29CJ9Www3r}R*T3l z8qTe8XvU#WrvLg?>gB0d>Lw+u9qtqeUHV?XjA_p%E$G*_HsX_{Rg%gC=D4Hc`E*wlQZ_6H@ejjLOsSn9zhy{|_e zi70kq`L~(J>ST8A8#i}V=W-*bb{U^$4lI14SlQa^X6$YG{KUe=dVCjOt7t;?vgJyz zi%DKmZN}(VTeV1gp=jOL(|#^eCav}tiS-Z9S=_#kbaq^5!K-Z+c6+gTp?4M+zuKll z`koF>NbRcxiFsMv1Hp1Dz@ zUwsAhcIw(HG9#wuke2sE2GfE7dwqFJ*Iq6-Rfzb)3Zv{S{^hs z^K6@{V=8ti*RE1IP&1~2`hN)n*UkO3bM>xeTCbe8yF-W*cXQO4;Bj|;UpM2^(+dhm zEMAZiJ7!6>lP?y%HFa!*FEcxY+=wg@u~?e7e9yi+J=1spP_yr!try~?DrF6tFk%l* zZ+mQVLN#r6aMs*fpB9=m?O6K_1vWmE#&&Ddabk(=CHFL`Zq>A+hl($o({|#amXoi& zUcg8Ua_XMXYfkP`>*9|e?}**qwr1C;VqKf>nb>|z zYRtNY)z(dJx<9_}IyJa+ZTr@v4KFP#9I+@qVf(xL;;*L`N@||@?ctx2(~ixFcOIAM zlh%3Y_2xmdrb%n66&_wANx?MMcfG%eu3!#aH~G`3v;rT$_v5EgIOEXDXEH-Wqr1*l zC&VN-GzMJi7+=2Vmz8Q+J2pSQ-z{w9vfx9z=adNs|BUpkzwPLm@#hCEZ64e``m4?> zFjIQ$#jEcXzkxpuczt|oj8tdwy2;L`eT*vp=}8Zc+Qo6=xO0XLM@WyJ-KFtzN=steBSd>erj%(ldvJbWRR#`&aVK z1qk{wbKY04)ZdfTwbh=;bo_Z!xx4Afu)CszkB2objH&;(FFN{o`ftNRz8#Q$aMifT zE+y0}+J9f|6S%?r-+5z(JF4Ne%`cX;Bk zgx-V1pN70MFxar9N>ZgEo2M=aD*SwqrrP0>r~TA|VV<>VK~)3)`(|2DwIJIHw-nF4 z@`XY@uP?-Zn`XEsc`Dxy3ib36|81Dzmg$+66cpx}zc8pukfPY(mM61xfiTZG{Cy$S z3|Bq9LxVz7$}9@PKZQ4!S@eSZSy4l=WKGj0&C|Y4kqQC-IlNAhg)wR+N&K(U;7Y+c ze~=_oH7QMzB#qHz%V0FkR6PCa7J1#lhr6d$G?@(7CBxPg_c+ZqWs{84EL~H`Hg)Wh zZ%HyGJ$F9G|2?v0v(3o1#=cS4G|RmiNzx5TW;9bLo547nY{tRI8mPF4} zk}O4KyS7xD({!EFOsYqi&oap|LH@R+5+Z1_O=+?!YfP-Rsx$HHvcmL3(b;^Gu0TJ; z`3D%4s@XbSSd(RmDw3wz>_{|Q#!RmHWK~y8vKi1+|1ovXwPsn9G>urUtf>kWtE?H8 z={>u=qmy;Wl`O0%ieY z(^BcQswMd}EpNAQFBY|5MN=ed9*U-03SC~ay><@2<(tqp+2?Dvt&`12vZ{K$j+YlS zjoGxU8dMe-XId`#2)&V2n`xx1ab=M;#UO_u!O<(^yg}35i-l)Gb2!B_=IPH#iMWpKj2y zEbo!{{I+aM{7Y;_rd~|8Rg;*L1anr{!nSTR#Z*iZHlcr#4gW-UXzMCxwp611aJ&{B zr|70iB?y{skon-fFp&6d5N(-=OMz}t_o*20QEWnppVLf@ZW=1%k7!P=-&Rb`)G4zG ze?-Kun5Jzpngu&?OAygQ)hNx96?#mHgH(|!64FQJKtMC8heI}DTjb~zTh?Wlhm$1G zkob`eLe3^WI45p;-Kc`}kY*#GY0Q7)KqR&>k^;5}l$z6&0G)Ail3+M=_Qk5Ks5V&y zG@WK1stiBlHK)8-0-E77F)vM#kPNz|pehc+7-d#8L`OPM(=|pjEt@E-sv!L$G?=GG z*8t7PNl=9Rz2XNED&k%kG}|N^EFt!)M694GET2~UNLl*m@0;my9U1B zFMh+~iGWg2=W( z(`2|aoth_jZ5r)hii%6rVlS$qx^sKTA4H9&QlJ^$6v-49OuPL>_C>00Wv$0}SdVR#K}vRwjvxitL+aP52I^in*Kd<$v%;kQmva!E1Dk z1HM7W!4cB0gMraR7MTm`6Bn-|sirDZ=cAei4AeCc;|z7MJpbGSiB}7l=zePl)kxeyqs)RzhG*9U_QRlL_rJ5SmPYmZUkcO;{2wc(-28q54 z{bbc4bSy9Z4DfT%F?xcMKntmG0gtgDionlmUtkzCt&}vA6cCJigR%^pGKil8(avX}P4gA3Aka0Jk%Gp;4DwOLC^8PXlds(L`ZRb$DDWssWv(r@7n<9AgA7GYT zKaj3432G_;F!CV|08a`pi3!<}0BEJKA|NrJ9s4!|CqTmyFgA%D6F^m==sg0%j3Vk` zVzaW2+JTB63QT=JcsUN@soWJI21O?ek%Gof+AvHyEymf@nq>op2HlbYze!XP#$zM& zlyF(8;*mA%Ns%EYau^tIF;qm{+7MGf+_PvP0F8x6czhPU1aJ*;y44;;c9)|8WTA!* zUY1p3U5+&&?Pni{D+0d)dEp&oX0$L7i%`c6rD7)tXXkfgUaT7H()mT{mllm#?{ zW?`V2w5S0s5aP{+cR;jhmLaeXYWxavC||_zidqFeM)EI=6S<>X-$A3ui=sM!Xo#VM znHfJe!*0z0sIZGFai>aiGVrpL2jg;K-%{A4Py8TSo|sm!N{0Ap@W3QEiOUp{Ld6PE+#X1=P%VQQdGFHbas;3+W|wK3JEQkpR7Uu(yDXP$}R} zgaT9o2=_M>d6PVxNIuLcD9EmHUB|p5iW8Qn;X{~b1+vbL$w4;F@@WeZ-Q}g=q+p4( z>`o846S;BO|f?)g( zE-%Tm(MLhg-9`$B+^e!h49<(zDE4ud5op>u=Z{_UN(0SJT!c7y zCPJhp`Ox@r+A`;b{3#wGV1BAdh<2>PMU`TElOnGKMdd;vM9inrB2n<>UQo97iy!Ey zNy8^-K%(5D#=)_0jB%RbX>8_`P~oqb%MeSEKq#rAGmf|$&~(~O30~MU-4X(SF0VhK z0yDZ}*g)0`C>ExE3BW!pQb9v+0hsMEjDcc3}-ZUU5Ihs`$wPQg66w=@Fi5hfLRL&Xey0IU|r zi8ixhAnvT#Kz0F!aqI$2&?sb%dq%Y3(fQDU;PrFfgbK{8Ap)IFtUnPn)+Q)AF(^g= zn(QtegjC^e$Yva|L&l6%s9%CPNVIMTFIp_f*9p|yWnx%Z#T_E2sW8PHhwj%*h=G>7 zU}hDopwU)8pf;?#3+N7)7Iy8w70FAez|5c*&{$)$pfT+ia1pf#&?uAxcvhmf{;H$m zj)rFQHs-8 zZzGlkhU%LyuPI7k@P1-$qZDWqWJD$mA^Mo}#^EA}Xf+lA#?8jDG(^=LVAk~PkXqBE z2z?0_b5f|4nAgJwX^A23hS)LTb}i?Kh5Y^EM{!Q@8eAu{(h@WVJqQ|e)mWJ67V@*e z1io92yM=+#HXrO7mk~sSz^wQpaII9i(4Ap;VtVG6UWhge8uM`1MXMBKf? z9g%{MGxMTCKze~RghgOvP%Py@^BYqgU_JDL6u2>a833B?Mvg^#0U`y^(W)Y`JWaUiUfw=)o3&Ljd0W(JYK&A|r|@x%4e6kGJy(2N+K z%2(6*(+knL$Tov=oT`p^okFb{G+JO{5tTy0puq}Un?`y8Vm{1(c3cB74k70EASSflhD6WKoydf1GD9oDS zC|T|X8cUsF^ln~Zr69884b2HmO<<&~!~sf3FP4CcGs)oQ1sNhyJ2(Q?F@k}-M;OTi zbCS5qq2OlD^$rap==9HL)0P+T^jj&4l)&ha6C4D1!X`vWV>Cd5)Tj_NnHNW%ORlqF zr53KBsP%zH?|(6lTPbKP85H;vpHI(c4Y+4&rO0ZTD*!E@MHr}!4YHCRjtUqrJ$LA( zcZ0qn0OMFb4c9{ZW-uX-*QknV6EnsEIG_sy&>}Pk1JNwO2EybS4e}>68>I^k6#%qY z+yYceuLVR)DR^^|P=6W(XpU(*+$K{b&{#SEaG0e7pz#f&BJpiH??oGKZsGRW*CB#1 zn#LDFLE=46Z?FXzCV5Kthl6Di2$7Tp0??QS9?2@DvL8!5UHi1kNWMEO0I6gFy58AYY`yGdSjguor*HmWvW& zKAyRwpNVDepjoW-ShOJUuk-h+=A9s}BH5LO=x3r)L4%|8t5aTgC_r%UrhN_;%nY&? zG%7+Y%wTNLa0L`7RxB!jAWp-TxNDpv2C^$9&{Qe~(6ApDv*6YEBD@C_MMPj}ms6dA z7gry|!HQ~w#w|gk-9wn3(Z$BA#TFRgyLR@ zN(M9v2O#1hUv=~1=?!KiM9^@D=^h9gYtIyo+O#kbA41!5k$B;Lp3bL>I@9f7H5o+{ z@l}{mq23@==EKYaCdT1v$IF~&PAEudP{ugs zbg@C43E{=H2@akRLF0=c1n_ad)O=hY7U6(kd5a0W*78C*Jwe3|`QD6@=Flinar)T!@x5=!mCTG}viM zZJ;cq(8EA9P|z>7El;IJMZz5BZqOjcMvI#bI)e&7$7vc3Z^&Z2HxRzO12lN6oE_n- zyx)!fUmA`ukll<5n&~+{L_i)swa?RBQG&8PA-D2+C*M+{fs#lBEk^mw$8J=_Grqi} z+8^r$kxz){#>7?PzK@~kxPxNdBcQRDJ>WG1;5_(z=(-q4aTU-|W4XT$%&e6f<5->m z8oUYT<)@Es1AMy9m6Z1DG5!AQZ2Kd1F18QG)Y<%(ICigp30(`}GYJnFR_=jI`F-l_QraVLlJw|L@MJwr#!C*X1uuZGUs_rj0W@gGh?v|lb{wT z{@|SR$6Xyz3@R>M4zaUCGcQT2z{`Gl31}AUiUo~TQQ$3LYM!(Yk%zD>7;S;vXW){a z=^cLCgDE%m#C#Q=c`=pHy_tJJ9)e3^YH8Rg&VdR@+&VBCzSB(uFCIm@X&Mf}ZD=A7 zfzPF-I+*c1pD{By07{Iva_({9<<+)$+sWp`%N2)w37FZ7IxK>>U+zUfW4C)cTpB+T zd>h$d&O6FHKj+Isz>Fp~x(JFccE;%VBg!p!xz1WVz5)9s4lx|&2)LUs3?Q3r#@0QV zBa!#BQ?*$in|K3C(`l^4vKEYEH|wCW1|{&qo8<1OqStYVffUS!S+y2sg@?*q?s%#~ zl|XbxldlIa>#c)j2bOBN!A=*#b4v*X@h~#Sz4#m)m|4pYX!v;;%8bV}WI~KXRqP&z zmQRKlquo59%hem+p#sbXu|=wAf|v$_1TDnlWxyOMQM(C!AaiY*E?W!%111p|sqoKLP+A-W<=z@+YNUR-8u^T+_^0Wrn z6OBCJ_0?!TYe!JvujbJe$SoU-xnM@u{FO#1dzZCnzrYpz0965yu3MCKEyf zGp{y9!vNci=)-U=0;51n6ge#P4&V_tSp==Pc%RCc*=?@oxz`vrjp6yEX?TXmr-dZl z(}EYR1#Vi7aWDnqP(FA?xOCezm|43Y2C}wQ5zcukj(n5m7$WSm&EU5!eB<(L8Vj@E zFvKDTE5UG~PH{oOOHUfSHUqj)$kRkuci?nb9*-shAAal28A0QzIM53seuOcOxQKVn z%qyb6#Bt`x-{<<__-Stjo{8Z%AL$vRfFKiM9D7Iy8q1tTZ%u%1#pOADagpg>1k46c z<3&JcRYS)#`M+RnIr{YSDVHS8AK&yJRIk5^&JRxu^y~qb~Bfv9Y{5A@eCdM(}h__ul zA4H=!Ju!@9YJpw_o#r;!H7^J7`iw>h@gr8$=ZTIo7FCgC`>XK0LK?Q~tzmo-0?bG` z+~!0>E5rlQ)91k3g{BzbWu@#>1jI`LaxbYZ+h}b?>Xm>foQ{^J4Cw~v3Ecfybi?mJ{7AdHR-v7#(p*pMVn*O>wR=% z`CpcLAzl0u0gZsdZdkr4es_TA2Y%5LH!1Fq1K0y-K+y30Uh#{njbW5H5SGy(mQWN= z)Nu6Np{bB7Ss4D(HJ^~bsLlKyDOceD0I}{t947x_G_|wL2ft{+vT4wmv{26$z|ZGb zm|Ub;?&$P@vA%(R?Gr;>D0J9i3xv^n$MWa7G9+T=`Adw7WxL5Woj)2E zYB~JK->;sq3*Qbp`7SUR?McsASxD1nAZ$2w>NDI)Qc;-`G6r}%rMwhj>*)v}Tl!!- zxYO*=0JGmX-WNYTqxai+P=@af;UtJZ z&3!+GjzCp(xL8KbNfN!1q2jZY?xz8$Bp8J^%gUL8Q;ADaWobc|srWl?w`rlCUBgo| zi;k9+@#}Pk+PFSOd$+2jY1W@AOz6Wh`*$l%Z6XdPjc@bQ5B`p#9Di)C;aR^ z0v_~8U*3^+5VP%0a}WDZVT4)yTO+DY%5Mlf#Z)f3zpR6P#*I)H-#@4|>Qpw&Quriz z4UAP_2QIVXe^albh^*+hN$Oe0-ahS5uf1=3@;nct%%?1Pr$&!O`Q)zJFSxCQ{q<*8 zWVbGbh`+%7eJ)T%9A*VF%bR`s6IV|dG4(HvRwsEH!3MRy`bX2q=6VA~kqU&rhFNc* z=em*mbH4j$0x|uBud^R19D9b%bYdC}%!Q{iU9zFqPi`^h%|%1VB`iiNO6B_0oR|dZ zq(g!4ma)Q}y+`|Z5xDA%qN3(Hnni9aX*4Y&F8zKA{m9ZB_#Uw$x7m;BjJtg}ln-YV znXFo@RspZo+=?f!o|w+!(Rhcb8)&&hvp(FX)D34pJJS>sf=wTfjVi`C!BaHWjdd6= zo3LRFG@EEe{sH^O^dlJ467aiAHE3W)#+_(#seG)+_>c4KH?Z5Sly>lX_~rKJaIvoj z)b1W)b~__vA1Z59g{T*BYDSf|Whxq!*phj!hu>;dnY8MzMhp2{g2G4Nd}vgM`f&f6 zrFhcdMlcK754k zA4h)3>Yn>@a=yz3!d46*7AwWntH{yO+p0ZtQ$E}bwT~SC8tKDR#A_+ai(JLDW6`!1 zY{5!7*W`(rbjuL;a8(pHHz z153OzZq5LSTH{sG$S4I*`@TP%c-gJ{+-VW9wqd-nF?E~`HfwG^*8Uv}empQ``0KRQ z^-m9zLPl#J*|YC1*DhHUJ2BJ6Si^IQhpWm%Y2o%-c)MmlemaaSd+_dD*D*l?S`3V< zwTqer$C8T&tlUPOV`g_h4?trY$VXLolPBAguiA5MnzKCbuoF71HrOH%_2#30dsM_6M&`j-l zjT&DKO}jS0{jzebe}9?xW&LsN9#Af=d)pXn5gTKUmyHlB}#9giM&F;Md?tsC{BZuQgXm zg;u#zPjzT&R_(I>BXMd(flhRN_M1PgKG%Nm3;~u%ywZ@N60GDhlnRTw|`yiXVB+*kw1RZIaB4heqY)Bql0Er@>5}wW#lB7Y`nP8Z$c$q~LAE;2iJHw?0P?$31X_Ky8S#I6n(u0wKhfYLEiFjcM0*(cXPUi6&93@MV< zvVWByUn&pZuK=-XCAz=N_kb7y)&{-& z>%USk?X?*^^1*33&*>?J3)>_iVH*4;uWJV@fFKRj$TiyE1E}I+n(5Ye?u?4Dd&toM zvuzVvg2(F9Vc+`n`MZXcG|y<2B1N55tYX&qpPv5or)MvsI|J*;@Pu&w>(y@1fev`J zJ7hU{krqQmtoJGO8S5%a-kxUXN1p5g5t44a8#1sS_u6{ zrlsI4Cwp{b3=>^n5na9CuiK>_)RhnxdN?n-f+oHfp22y+9$nVZGY#(;C`ubj&K-=T?!J@JGA~7Ok z@ADq?+6+;0uyxNlo+UYoYHc5}-$ci5yoDat3<;25a17uM!KJy5h(ytY$pbu7KGcON z`;s}GXFi+x{r<(~HR|_Oe!LaNLet!kvVDA_=ScVlAKb{whCM~uqT-gDPV%U|k=S-6 zbgF+M^j}AocqTgL+o-o7L;wD}ztHtUd7v2&)^V47v zabONFYh5wbh|GIop>x-&{2`+7OR=V4XzkbEefj$@SMk+y@y4K5nku_G3ebuQz^+54j`5DK|C|7LUwaWTIJFi_ENDI5?{#m#r=IY@1cxl?)X3bi{71Ox=(Q=GOBcKPa^fQjrral!cmMrBP%O@ zDU;QYcIK~(qd@B0%rF%-r*~gD+-X1#hUzu8?bug0ldV8?YuJZ-jBLw&2yLS_Vt5i( zc!-NVbyk|c$)|SIvm#ss*s=+JoSsiKC9c=?NoLg5>Mz$QVh&L`-y6Fex;WeXC&(33~oGp`ezrDwUjwaBBo|FX>`9(W&Ps zqT%(prhtBr&9qE|(r?_8;`@_awR^unAL^1TTj?4Zy{gk%$1Yo`pY9{-N5^v_SvG1{ zWG2QZpZ$<)zF8hZlxZ8?kyD|#W`e#ID(kk=NJiaII_|1xk#(8h{lwP_a@0wZQ_)<$ zV64~NI#m4H=5KJlSEx_sp}y~`9V_K399H_Yq~rEGL2cOE!J-R!h{b%bWsf`}PFr7i zM02z$Bk4lIBBfPmtc7DXfb=Vy&>uslJt( zJ;(Uo;QVmDEQs!&?Vj|s+tQrzwKA*CLH)blpyXKF^41^u(=?lt*j@VTZajZiTiiEZ z_J{(DhJ)M8vx+p+<5e>T`rn_F#rKV~pGV++_yt9*=eU0Pk{^c4j>vMoX=5q-op#-F zf$*cZFUPhmUc@Qqh#kvG-=hz2DyMbTXfoW-#ihBOEbaQZ@%Pw{w%6*{-HD8*KmNLm zt%+B&QEG?HVVc&^?R}TSZ`-1+Uua^?EkAl0^0(TEUOuYJh_OE_*&}xFC()ixzI^by zOEG}f$3hIz?F?^PcB;?TesB6*Z*E`Qou{5;H##h>wiqq&*;;RA2Kw8kE|{<>45fa} zJ#&&sX>(F(fi@^t%*m*m67t+t8o|Pvr%lo(tLTyl-_34kxQmnW>`>nYJ>zT)t`t5| z%|bTsP-?e1a#Zsw?`?3;OHtPT)?Rd!mY)V)KK3YQ*I)k5Mt$+M=Bf9m%6IbTC1j6& zT2HsbUOl2ND$JBZQlfv%hoMFGtWUzf-P0bg+kf=7T-4DS&7~GtA`i7FZ3Sy<9?S}l zc<-Wb_W7kp8eeJGz^L3N)&<}i#Na|6Ehbqf}&kQuP?FRw$FrKMT^e_@)hXrV6 zxA9;BX z?a&JGw0J_4@qq>gdYevD!T~gcEN|0mmrJVcWQuf*78Au)fJTOIIr^<}bD~r{h+-fI zr&@2QU@U>^Pz9~@1>lxTfVL%?Y>Hc<30mFS%LW>lNkL^-g`hUH9CRp_TOD8e9w&re zwX$~;bSQ@gqbooo?)jXnb*O{5nWW3{K=R^gujIZb6!rdP(uM#`PH+kx^(d2(Jla&>xwCPJ z4s|FuQ`EQb_`pojyTo0eJA*%d{l?8)O%Y;nj{`-2n>tebhBB|hqYgusK^85AhT5Q1 zO$*GA+k=PdM9o_5=|Qj6>q)Dq#n$XbTCI0rVf#ah0rD|I0?!63T`fOh3oqPAMoY9f zSONQ7O52gH`U^2?ekhEt8?~_%Pb^%Ou8%hHBWb7hUlB03R%Bp793Y}5^OsWoPQiq; zPghNVJV=$%3Ws1FDosq;cjBS4$|29?=SY5r`LdHh=|V3Vtyl|ChKqDii#)8%BSP!G zs2N2B&q-BOo0V<(`)GmH-vq7llyWlyT<2WGZ}uw9I6ZWz<_ua};kB-HK$;3a0sVG= zrD|~rSDN}Srp*}-A(%y-(QoJl<>Hk}6RZ6c@TnKv(<2f(HDJuqBmk3GaXa{R0F;j& zpdn?|6v(sUh^ln1_hThXU+(LJ-~O z3%v7zwKEe<)M(}WCIr|djcgV%D57OB1f(Yi7S}1wh0r;*vv6lnypATD%gr%PVqKf4cbPg2oN&OG}nv0^OzmCZ}MIuM5l z0bG0%2_HZuWn*cZG25@JPARpde8cfTRymZMe?dt<-Cs;%&eA(^s*nB!&Pn?2n#;m< zcSpyr<6WouWm-6*@idpp+qHM|Uw%FMx;(j_7b{M>M|X32U0;lo9={lh@z8T7{2o5) zp_uI<>c=RVhd2M2@HnJWK`!dE@<_$qbLXYA3q5awwx7(;o~^~|l78q{=P=ZV8y05o zJ`no+s)Ae{jVp?-`TDlpoM^+))OS|bMc3~yT%Il|A1=4P#5JruI0~GcE9f4bJS{%_ zeRVZoolYFhicnQuon0zvwAyF&fnF}xL|rdaf<5ck96k^hA7cXXf2ZGK-nMbA+UN;& z9lD=L-L7yN-EuyvK%)3y%DCZFRlnbIx80ILkEyOpF?RXzP^6iPPk5f%{M7!!ws~`+ zTQAeCDQIctn8#y`AlM|9m2fUMk*)HJ$ROckAJ{tHXP56yaCYvGIfOMNYHTXKnN8UT zvzV({%%?OK|HyTv1Z_FOoU0CkGnuTC)K6|=2Sa?MJNX{;%+FXb-h z=AK@CV?HZuOS-P>_Z)4evaALh3R!<5*$0FBYA8gMIokpH(b^HQSM+hBW%&YOjf82J z;iKDjxcym_IfZe{A8qT#8)J8bSXlZ_ZPO9;hUUqR$IEdlxqOVp;8Rd47W*jFcQ$){ z6^;Ezl3xmFG@)NRNt5%Z@v+{RPGDkCYl^UJ=8LeSSc~{ZOb8yhG(GMor-xNt3zu`% z1VZAmY_2ta_Hf|qczdTnZz!)gpG4sM z!UWs~$M{ufwDSFT`$w9}KYzZQUtEyF#o}N79e(rnWT-j1XIMvgr+YfsLk@iS3(8&) zOk&>5awv8bb?w?DQ11LPp=$uq!mV z<0}O_?t4QC#%re)!4F$bxR|yxJu8t`E98?}&JP>qB9%QQcpnhnKi*NF6Iu`l-UIR=089^v;gI32w?s2zXls&nd9{_K}!R6i5hD&jlu zc2)NN8tf|M&JK#;vd7SV|5Y`={nE9??(^mYO2hKoTm8%BvRKwx*~7)<#lW+=U-nh< zE~xb_w^IKttAx*TiWz5Qq(@2YjQ6X#8FB->4Et>2`F zf1Syi+*X%9Fk$$xeL@ItVzvC$Jmxab#r}H!A#LuX((v_kNHJWG@EY$vee%>|?Cl&U z&)0J1n4pNQCKTSv`J}Hp@UJ)4Ue%Q^zj&KqIt7PxP{ncYI8H#9?JS1!WVn~r+ulf= zIOT2d7G7_8u8)L<_&l0>tDj&Nd35Amn~u(ANo%w2QzrLSt+rS^7L~2ZxfK#gMwXYg z2bBm^VV}*1mAGKs3r3y&lytjN!CHR9ud-Y2-TpLtxw2#NowsV2(Y|tbR4plgSN40= z!Oh02`dz(!YT2*QvBMR6sLyro#$xBXoKf@D+XL^;M^B>bpkm*Yz{^`>?q`H-jrv;9 zomo4rE#dbysS~xAKf~F>;@vVQ6n+ge5#VOtgSKiwpf_=P^=UKL&-zmHmqyIAedg58 znTZ~S>~#d0GV$*U6;=Wcv7lPz3v!03KF;*c_@Afmzd8g$&z!y@UE}9y^)90rWv{Xc zQWb&Wzox%(do@h<2r`CY{D?vkQ5$pk-AQO#087ZxYVfL%P_X>+zNz-^+TrE`K7B+< z6P-55=4|(hZ~fVnjs zbBw28iNp+T(0KSeNTay2kvDIV9mo`1IAzplCY1nC*%32JQ!MHkOF>|O6)n>lHHZ$W z1ntuv1`@;2)x-D$Dd2@YQG=P@KagPtrRgkk-WQ+ocV4zes;6*!O zBgPD}9ik&l;Wp1VO5y&>7Gyj(6Wr8UQOaZ;psmW;J?LJBX(3yw!jnR21)(=?fXgP$JM;4*7QPOXoV&Zv)046_eX0_6&<#4n4nHvpNcFjN6e?#B#^#I&9$NdJ3QE2Pxwmm@lyeC5$D46vXvW`%FqnQ2|9BU@ZWZEkw(wn+d{!05mU7!>+>taK~5fd-{ zCPaPIO2e59N*^!QBv~kD!zY!8Z?b~;(Nu+umV-j$B>>qL;Q>ryZmsaZ2AL>RI-R&~ z8N7P>jlDMD%?}?yKn(+01C5j84)kAsM~LaHl5H6)2$7kCpTL1ux_V=%PE z0|TPawL`RVIlKN~ndZ7?xaK38(nV$V8uj%iK{5KIiC(BLG(ffrf;n&)LeT7%e|nNN zcQT^lQfqC5hr8E+OmXsq0UWec%_u4u5{H+u=5k9bn0Ub>j7~Gr@c2iKL zUvN$@jqk1wpe}P;Z>Sk1_Wp5v*9Bm=W`K%Nt(6(PXqEcfSV6I`)@hO%M+5z=G(}vDTJv3ztpE%yaC-&WbcXq}q@;<%b`VcQy zr=Y??1P7<1Fd}jA@cyR|zpXbM^Rw@D>$v6xHlyCn7*Z7SmHG4EgQqJN$B-av@f89o{~3#ID7z zh}1K?EYx@>#1?DFCVKDBTKTp6s>tW?t8e@9hqgO~Iu>`)VO!C~J1FHKk$IR%2t=MScB!|MZuu>PW{AD;iSx|8Z)3baPxcB(S^vJzlpC zkCZ=NH)Ml){WTcg29C)(Ut!!R&Tb2~b!16x|K0R7< zyv;HE^TWnEzF7C9wdS_9Ifl(R?Cd=0%pChhba88bE8foQI6l_VyO)seA)PJto9qGc z&rE{rg_=yf$KFdHj6vJ`CfvP8c7IQqhsMnSMMv*<&*{(Qv0I@XUhnQ~41FRB&-R%V zPEu}H`q+Ck^zUXlI|f9$O4kWqD`>X5_B1>#Tm`+X|0OT_>)HBT*wL0Z^ltv%bEmGS zf%3$z=?zl6&$8;AAdXdQ2SaxY{}DmELgUc%&ROESajI+U>`%Q_1NCozCS0zlJGC4n zZ;#`xr`U5pG!BkHvxfIpeX4N2qk5li4`9#tI#E2Hjy`jzouAL5G!V}c&R$nJ{C&RN za9s>nC7bPPGAN7X`s1Cz>0{!O{`2L}XzMXu=qbkP6{9UlOE-_A)?VmDZmytAW@tO@ z%kfg=_?%o`yYWWty&$dc;_Iq#9jAq-cq?+_2g#SXpkS}gbSVZ!y76Bj53gk3 zug9iH(yG3-V!+h@0h9LQfsSsAGt2p@_|}n04D3J8Sx2)Hl*2lKBWk2 zlGGt;Npz$;Xz5IZRFRCt6rvbDv$fe$HE#X833MDT@Yl|az9Nm_>4lk4XOi?K4k=UB zH@#MN2Z2n{@~bZkYf4|xbMcJ!y&_4MqK@n<;#kP5u_hDx^$sgq7PgoBJ;1u6$jKT- zP$pr*p4F2ZQ$Nm}%T;oBVuG9{Gn67nIDS#a6A7~|4ob~+Atg8puB`@&hU9r^_?Y@Y z-LAVgP6i!m(+a5CBxs4FBdI8*F&Izfj4H{aG+UWXg&5SkXf6_QflH5+>)+*I*^;Dk zy#l1TlqG3l1ffNc6fCO~v{8a621p7jjkOtA5_udPib|6Di*cnOeh_D;zQQIX2ZCb} z4TkDaRU^pPbFb$o61>ne25O({Y%g<>5k2sL;uAJTrF2&-Riwu_SE5FNk;q5Do|?FN z8f0{_X)aXs=knicKQaQ^+NeHRL7G88|6}XGbFB<%l9#u5=3h$^q0G*}vz_ zGX4QG%EvFbfcSs{o+cGgYi!4nFIPUD)!OE|2$-_L(<2bFw!=Y?Kl!NadOATKStQ+r zG-GX+5Il{C3KySBmT%!o19)t2muexJ0YCvz6S?xVcb4aEwA_Iez?<*QW5W4@tS|KK z`lg0};Fih?En^ufK8c6Q+cmM~(n4%iwY)+m<&)-$4pb69%HpwG>KX&aEx!Y5hR5hY z^>GDRtX%n{Cf;8&F);u$g{gp;3mXd+69fV?^G0ao{}3V4VM^?$kOVAOB9i}j1wsPG z#X9;=Cd+#xr4>Ou@d!?4NM&GjLMRHlJp0h*I6#H!M7=pID^wETlFI;GVj$BSsnUSa zvD!R#7G8+Cw=1egc@=&1joPgw~8ue zS~28wO68D0BE+G3Bl8=rr?$m6p2mM=2v)7Mf;}>nv zvzpHFSnMZ6PfPJoG;;?t7guLLD&{VZZqBCW zE>vJJ4}9a(3r1Kh2Nph<6ZB8Nh{*q!Ml#TzqUC{JbzHt2eK?nW#iWfPepA4XlP({;v!e%*MmX1;}u*ar1Lf z0W=$klk2a{OP>G8!0tbi!8!@V2zWq%LOwoVFee)q7cUhL2R|D(AI#W=3;t;R;uQiI z{;Cj#3Fc>m4SSH1Km>Ea1K`L^`SPw<2wd>^h3C`+U@p%8<1ZJ-|M&L;nCsto{5M1Y z;rxx6E)|%Q=U<;WdH-|$cQlxj|KEGAf1{-j3lCL*DFtQ0^gd(2*S?{kBm|El@WBzZ zP~O8{hvdR0X^7!*s7NfZtB?$sT^J^8lpFJ3#(Zcp&fmcPolr=Kid}*Vn3fBUkcPsD z59Z?jKRsZ0Kr9L)9@k&P{-+EW{uYAt1`zsd>;LM4aeaORD*@)cmy$#TbHkO-kQnRc zKWn1HomG&j@xk2x`uX2i1vfn2`32M8Me!UA#C)unnB}i!|8boAU&q1R9Kd8MRA6rK zf3E+ATOT$KSA=mSxxike{x@g$lPnRqVH<@11cMG1ll%#h8~ksSRN*18xD-tIXf6^6 zeky^43ZqDIf$64Vy!a;~+}!ZVy610T!zsA%fC@xLzzNu-iwYtSkV|R=#=79teN4DA z6ABGJnCD-U{--Y-1qh6=PL&t1tY#vVe>C#IIRah)G3NPe@&5=H4+zFq!UQ8N!GJ%U zB2mGAh&`u&4(8#5$CIHj)y9@DJzj zbU-k9{_{lf{5uNF`>*Btu$&SC*ec~eD})Y)*5C(2ZNh-J79fFOJq@75O&EXI5d2Fp3Ko2&{yBLaL(2g+T*n6m14cGPi1Y7r^50_5 z3E%Jr9??z}Y*tR-2k3uB<6q8yqQU#0XN~tC9k9AJYBc@-`t|6vkcYj}eF0+{R)F1) zs=h$;;C2k5A1ME0O4=@2F_pjAC}4Z8(@89#bqx!Or zbO5q_r+GmMqCLxfVFZ+aEfDP#AUh2Us)4_#7vDP%u45N^YkDltPCtTutX#k8eW$sJ zPh?b4-?%tr%6R;9y1(2**}mglmROnSd3zNbw)gb1*fSzG!xF+x#2XT0Oj zWXIiZu_{&R_QksYn&X?&!Hy@l+ryr0%I=a@)+9B=)B)lon|+!j54CLQ$Y*WKS;aC3 z6`sOE<;)fp`{`H~(H)z6uDyX9`1*&_Cl&`bQ7Ho z%JUX)Wdg<=9iDDBuZ}37uiONt#&GQ!__A?dFs2P&miN3}HsjAsl8`i!v(?}OOOA~x z6cSljne1yC;(jvC>-C{FNg;|Dlc?|Fzd0PSxEn@s&$m0%O!n2r)<-K-zn1!_91z)} zhYZ$o3~Q+eP5N<%77y0(&K2^jaIK-6ZxzSXNC^@=*Mxsu|1@$8osP_X^i0%VMcCFz zY*g_T9XYhUIs9=<;~y-@0H48?oF+Xzn5TageL9D{`r$0{xNqV^LBg;Y24<9L5#A=# z_jiwXj4?4Sl8dq?*(4&kn!+<3Up_22{j{rbmXa^t8)R7>-zpF0)o=PG{HNBU(VNW4 zz{z7Kx^d>D7NI;|4f@B!{JF+x58k@fb3sT04`@pm^MrkT-pNF`GEe< zd=z;w^uvS59~bAVSgg7Ir{~ac{Yc*Kj-;PqVV_vi9&%n)=lf@4(lJc`xvLHM`Si9i zty3e8k_3V6@FJh4Gx^qU&qwOjK|=Ced^*p!dtX1CH~A!dl-*G7B5^%Mi(k36sg8xb zPWZ1A-ue(YzT5a6VyRkLIWm_c6485wbxpmo$)N8%pq}uQD@~-Xh$vUfQn7;eJ*Iz4 zNw59%ZRsMKA1>aq;K~chieBR}hB>`HPgX%K#Ek@UJz2C9?8M~Hu*0P9?*mrQwiMd8 zKnCrnDh^8~C4T%+to7vIey7OeF80Je=e1W;YOPU!qOYy#E2iCE8G8i?wYLg0 zwNKJ62A36oAt>ulFqf<9&siB-n*Z&(vquuOi`F6_6dh?6dD>6Cy0*IYO+`b#&C(7d{X6Rf!xy=)`)4QvoI_TPN z9_U%_yRPL5jX1qUiJj94YUpWI500CXT1nr8BUm=p`I) zQF4{7tefR>XV%D zq2tdOhUztcERVovJVA7^o>*S}DKe5Ueq<{gy4d^p3avx12uX$45|U*u(}tf)-q9c5 z?7N{mAlHAJ$W9(+=~I07LwQ_Bu8MX4Qq0(=_ZB zX+^_vw>LyQCqTJ#42zO1h5xsHTC@mMu{CvgjI%p|)dl?GgGM5u{`N|2{4?nv!=xvWuxE0{aaCo27 zj*;zE8N5y?RYp2BsnDcNgdMgaEt-8C8MbQngMjJ^ND|5f;!j=P{Riye90*yA0Bx9;nch|v@D z9pjN*g%_G)7G2_bjQ7TY@&=9eReKMI4XFj#7Uy5oY8ZIs1^L=C3w{g5sz9#2Ep?zI z)o^Z^LDC;<_&E}_&L0W*&a*l7t+hK4@W_>$nnG`_>2}@XIna-|J3)3-mSBqW*gglsw zUP*(jZN9c$7McdkTYk2qR^-&D3Pt96b|Tsud5WFg0d` zg`-uBW>SUBgOmxuUqA;ki~Xv2Zut?8D~5oVSJIY=9j0$ zJd&!$sFuQ6ibDuA@dPQH)|B_ky_`uHE)11;;E~j~7lpETm(poQV`fmfL8E{i)*nP8 zz}b`_w7P-0!E%sgtsHapJ0k@RqcyWxRVBQ$ncw0moL()%80bh4Y1)xg9e$2(L@_Wk z!j2r1k4RWu>ZWE_29tUM8ah(5{dw5y*hKWVSZ2V1p|QjylThS9jq*{Dnm3I4HlOpFX1mQnN%hav+hgl#7GCcw;7I16QvHR9vQm?Tm-%^5<~ z>FCg{KP~!b1ZvAQv`0Rd6z0cFVdr1e`j}Qq*AyY)Ln#%CSw^qYr%s2a8gl6(qZ|Qn zIdHV*qY@=TSs;mWK+Q&_WRn?(Td9}z*}QaMxwINX&{xL#{xvf_$vkFttw?C#jKpir z_>xqlxjd?)GkLzCibP{_G?EOI3Yy#ircQ6XC6_89jrdc3A|~J@P>^!qS9V+J2XZPP zh2k1SmogZK$`cK!B3-RaQh~FATwwejWlgl|h+rvNjTFxB5@_YpRz8PFcFSfyR3-uH zbcxTAfhx|nGzJR<13M-7HPlhDCYT?W1^+L1rm--;#B%e~w9meykA!lSSv6XQOb$l5 zbcsY6P`UxmEII!@vs4Sgrwvl4TdE7-bQp0sQ3ll3x3%H`2a!mmjqp)trBM!*mCT0# zBgVN)y1nt#qG>AVCbNFB@+ol=18(Us_5e&<=rQ5v7U+#SaM+2PApk#PHW&j?QIu%3 z%rF}TWHvXM>4z43Z#8gKi5@7<%-}J0$pBw6;vzTLtH6|ibaF9q{PnBtbGHmm8V)_+ zfqbeFIe!{6^1>I$XaJE$f)#eF#$Q?vRU={It(ws{hUMWgAi~Lz_3?CGPUg(2_D!d8H5{=PiS_m>(>;y@7=IgSBarFr+ymU`zv;qL~yi(BrW+wenW*j+Og z?1=E+ZuVcYu(UBO*!{jVY~mLLHb3?cN`ndOq!S?E1oNh?CJ>sAOJuG!GIbN8$XB}h&3Oe z78XEEz-{K{Xy)Z$&g#tvVs-IyaW%L9-&(-`8`aROL-~$K<%t&0E zJlubG^aQ}S&u`nD)()9=kRQQ=Wt+&akfhUGF!;*pEG<2^sSNm@Xcm87_6SC<3ezr% zu>t^-Z2a4~?Q+@1kt0W5m%FXu{wlcWJ;r`A)yJr-t3y#kI}u}tD+~EnNw`~E)Ac1KD_@%{d~zf0n8{JCAx>nkYf2i-4Ed%LC`S6QO^kM~6LrhAs2 zN?!VAOzjUArgU!!ExMy_#&=FqE6%rF5}1O5x6Fo4GnT5=tlJ;9=d%s`@4atMdYCai zZ5^Qx58LC=!4FTgPY?SR&s19<9NUhsNg1+5pAN51*q?4q=+5(edWBAKe=cI|Y~%Bw z1p7flV!CZjpUrZ&CuQG1?ie0M_1}2!-e0aY#|ymQa?dP39CcWOu2$Oe_-)nR<~fmOA3U6aE+a41B%exD-o~zk2+5Dl)vWI( zLnTZ3_o(7C(`a{JhiVkOu`S6z&DfcV8$);!n6acy40RsMpNalJe6dS4sN%asWeoCK z_FnpYM3Y@Wa0k&Dvrnn@G}&rxt@(IgtJsjyvEm&0VU`ir`|7S`$z;gg{HRXB0UrI% znpgmDZDS4kO&pu|edq^+2HIT5w4@J*@lbC<{WWt{&FMTc(f-NevMH%=KL>~`mvbaJ zxNK&TFqz6V0r7PE$-L$EV%Wm_iaF)!p^eXjd=OST|H7nQOWoi z2JU!PXE~WH?&Km47sD6Il;4K7jZ~%Wxj)vsU47G?FG&@-?XOPGL@~*jiTQ1KqSx_@ z^TrV`<74P`MBE>Bwz^^WbAiK6`emrRM%GY+V5-Nr@U9iMSP@-6pZs!^dhw?ZNLX`*mV7a+HLb-K3kgnPH=g zkdpK-nyX!Bo$;{m*Yt+4!uO+FxWpYRQjSz+9X!DQN8q(YeZ8Hvn2*n~oV5Yn`c|M^ z$0&Jgkl^6sH)Hvis@(`zlw!ZmpBK91C}qxo#ZjWb-K_9vOpMUIIi zU-~2+_L$-;XO%<}Gv9H_kPi_iJOX^s%F*-Zj-xpWCO_RKF1$Y0J@fh4*eWe)c)>CG zLn8SM5B1jTC%+Pr<^$|L)mQ@o8lVvv9e3UN`eTIdTkF1(`U=B)uv7uAQI_XE8SPG; z@Ao7AO=^E@&!I^3GXz#bZ_JytEykVmuF&bUZV?sS!s9MA%FMM5{br{4GXf61F+wykw^N!O?hnG7u`%NVMjrRZGhgoRp2IMioS;nYMOU5PCE&R61bhegL?8mMkV#BcO-NGED2Zq9fxRCKv7g%tG- z+s>GOxJ?UF)SBa$H7+N_5komY=w=umrog~=Wg-#{6RGz7-wG*lF~GV%cnSpIa-vu_ zLGI@$SIMDrSj+r^&ErS+)=&ku*t}6T$7LmtVDSw)i4C%uSiQB`N0o)(-wA7y0w=%V zMa1`>=kAL0gJy_MLn3B6WV{vKen)?(ziiQHU}`m^-XHA5F^LWMeS#LX&{OJ`NzqBK zB!`fL8S(?2{Y;M@z*q@UhCyB&H}xn9)8y70p?j;B$5qM<47#8(`*Obc-i;=UhC#RB zoi!gN?e_lHO!CaDldX|LS_vG>9H|V5W8_tqG^Gjh44;M zdkMx*Q>bS+;l8oP(tx7oQ&fdAtEIMgHSmi*4drRX7nr4PgBD9@*O>V3x2>3Q@3g6I` zh2%rU$4<{jqTI7Vp1b{EcNopvMM4a627%A^J&DHt8IbP+&m63dfrF-&YmNVptg{S@ zqv_T)?#=`YZh-`c!3pl}?g7H!u3>N|cyM=j2`&k432wpNJrE$LdEalJv(MgtW{T>n z>h9{{y5?EWz1E1W%GHLunsw@W9`kN0&NodP7GGE?fU&Vuml8tvq5~T7&m87D$&Vrk zTVz}*S+n?Bz#esBRsIPdnq4;cy`LEAW}xeKw-yd7+%~(A_LhpD84|cXsK0&EKse;y zwj9HXpNa3y)Ay;X)$E%b`jI9Ofb{HYkhz}U(vpxO--+@S7#sYT*Tti5G$uG@5g)a` z2F+0|)3-)^dU&HIIy#Z+Dv9RqAy=h^^eX!Z^nE6R%0gn`b*dj*>{rCm@6l6=yU>Oy z&fi=OL$PRM`V!P%&l#TC%$VQJVPuRgb4g*eJFTFtXQ9`V&{pbVroZ2VQTyUWe&f?M zJE0JiHSc-`7Ui90M8w(2;zS4cS2dS1pXl(kt_GF7-HJd9<*KVOSxEZb8iuNAd|3SZ z6&u+nW@n_oAZ01u%HKAqL+l=IO0S{SBYp(%^B3!en}2uUFFO4jdGz0fO4iv-i4>sS z3L%qr?cmgynj3YFs*1_r*%-Ko%`B`3FM1Y7CE)OHkjL`BjgnCiTP92*0Z;Ok2K%@+ z<|drkaC2t8-{Fn`oh*L8tZQo=*G(WlK(#4i-+8wXG>V|Sf#HJNK0VZK#$5t6EyERn2L|4YorE@EJ zegCVAg~l&5!XiB4^>dRcf5lLVqKTP(QmFql=GDk5<@DrPv*_az6Yy`_o@hS_$iglq zOfJOu+;PpZpxR-@QUtg@en}*GE0?qBNApT&SI?3vMp75Xn9d}v`o6#i%3~c%Shzuk z*1|Z=_z2Re>!s_CaXFM(@K*jsxIpy1x>vqV@UN5|WB433yx!RFJpCmQTx# zCvE9!ZLJ-9oE=?m=#!!TLBiupY|WIvde5RpXhiw&o9^@H$4X~DL#1rmrY~vC0<)~K z%CN?-H;Kw5{8pIoi~g2H`9K?PGp|qGHGiGcR#6;aQ1E>HFu@JgjTyvoQ;sqi+4C2X zCz)(2VqNG8X-cuzYlgaLEG{gOS?XPP&7x%JwUL?LObS0L>=ICU#lCq=Dxi?DloH`J z5k)N%_9^Csmo(1P5Or%pxhmKb-r`k9=)IlDiR^VWWhdu8F(mE2J37fV5sw`e|LgK3 zce*yZ#~0#&IX{5K{#T8lyzKt2SvAIw(JHp#cf(}v$N8y23PWhhN~^gccwV@Bc8==U z=C>^;i*&@UU z(18yTsKQ?9%@9Kqeib9tewi(m?y0=eo58O|)tea>VT1U-L1!;x#HUIvELMct;nWfe2>;pxG4kthK(jf{A-8q>uK&@VV;K#Y6#F>D=EDddscVN4P4} zx#^JSN}<;3Vj=~_ibZ5vG49rz>eEHrRPVSJja)f|Una)7KE$SQ9<`*kWKt;G9E*{*|D(duM_bg!XbriO8#zb=yU?F~N zDqvU8<7OauMfyg}+TkBzX65k02^N6e=0~X1U{yZ}B@(!W7S0v=gL+7W(jwMp(xIR@yf|Rm zSHZkoOOypMjS5*xno`ZW5qJhA;IhX=Ac|;12WJ`oKYH4&worXjhRPS}#ULX}@p z3J^NfYpf2vL^y8*q2p8HXuVi5r0#VU#WY`-pYjp+3Ug(QiOM*$Z}EthmPZ;(1sox- zP%%(G%xnwcl*%fYpvXcMQvxTsW?UH)n^a>tQB`WFaYq~6AxdC96z^9N`;=ujE@rf~ zKy%0+V#rA(RBI$ljWi|y_B)Df4Rt(*PA7t6y+3ex+kaLM#72eC87V<617Su>71RNm zX#Ouv>iy(9wZPoDJQ4b7l?s_SCzBa(P-(}ANELNFl$|I}FBXm%sb;QAVL)8tNR<-5 z7eTEcyQl1iAr35Jq?l2O*yN3@iyVJbIzR7Ms%qs3{7cNimub=tA)P~F6%%4!?r$4| zsA-UXSl1EQ5ofF!66GON`if$O&y?jt+_Dovs=#T{*Q3eT%%AqW^kzn1=g(q@dWBW# zK_vsH=H|JqRi#zrTX6Am^|)kpjNauHE9_J4-`iru&Ai16My&*{FdkN;LIy|Iq=_7n z8d(&$@;W5iCi0Mn2^Zj_5|2EyJOfjy6;Bz71Ke9U9&M8r!=`TvFs}|?;~g(PO)b!5 z5773pO-Q9GpQR0lC+aMd1}+vi;&PHp=A=&c5(#+7fgK^GDHpHdUqj(b-L_Tk!=@n0 zifU}@Gjez!rnn{bL=dSba5}``(%Tu@kV}3Yumu`54=9KxC52Qhfdc;AE*^*#&pgFfd_bdz_<#;KK`HLb1De-v(> z$9evJa|s>1UC2R8F=K$ES@F9@Z2wd%nTZJE-8d2TFrYx=`N>6VNQn8npfK5{z(*bFJUW zgfQ*B^Wag|eQ<$pQ$}Z2PAClZt0UFF-@6x_tY^JR0r&|uBj5LRh&x9}755kNW4cAJ zDtqW}B5%&nM$4Y6*{X2635vlE7F-o%R~PeV!onSX(BG4qtnfudtk6Fv8!5&|tKIWQ zd-9Zw_m^u%r!7%Q8qmL=?vMJ7$@`4F=nOcLlW2|Ku@;GGrb~MLAn%51!GAB5&v<>QcjxtXTKaA|S6+R7d8zs& z`R_e6Lb1%b-JUKge!(Ic%A{~})OE6hbtTdQiM+5_lS?s_l8-UQ8x&&UVb+sPTGZy= zHT`{ZhtF(JuWDKL9ph<52Wgv6f(( zmddU9EN%{f8t5hCGt-w)S12D9r8qSxTVJ}_xmEeplo;ArFLkp*wdPXUFE-g1h7G-&JvkUz2wfrGwwm*X5JwrNv=hW*8$3}(nb1{q`Tby1_E|18 z;C@MyvW@r1QJ$%%`MyGTzh3=GPEKMJ$&Q_}Q1{uh8?SjJqpC z0q=*^#;Wf_{UikK(8+A)PbQ-W{NdSm2hHCNgl@coko#io4W$n(RDRFRfHlKNZ$Nxc zMD>~}>D)h;F{E>}wceaES8MDIIuqWNCi3>-Ik?0V7kWoct7wZcRk5;cEq4%H2_r3h zC+j@PoK$n>&#kV|Pt>kf`tf8h>}QKms8JHv!gj&6oAa==3r&hOUh;MJ=CO;-9xQl2 zUOCOQC|1=(!fkIw)}&X)EvTZ{-=yhyC4_5`(z%EY%BTqRrO}SkB4F}plTBbfC!=0`Q zKal#i)wU^w>i~B@NF93UvW1NI@OC4OHM?NEBKi9Ju|Pul>4G~AX38O7q93Kwd%`zQ z&zqiE%mbGJycVy!1#sp24h{dDB2Wm~UR8gRr&OvFIMae|UkzPt>^qk`ndu{SO$U_x zA(I)zdd%^DI$*vseG~T9!z1CXI_mOJ_n69eyP9uCwm)UJ z71!7oyw_Z7wrHE^Z{C`QezK#S>@29Cu|qpB<-?-8bE>zaDY5$--PUIN-1v_5#>eNN zPNB|i@$W?ubW!t>BZpjWtj92P>dD)yvDxlbh5HeXp^e4K@Cu^7+pF99>Yp`FD>sh= zp1g@m&6l1YiKBaM-ZddkEsF|gUCbEt=Eq;lm|Jl}qka@67me{F*;3HZG#lP!=_BbFk1)t@e#xGO<|QsE{j@ZuY%_BwA=64lLg%C z`{lyiU9Bis)qnW75;J3bN|sH?stoHQHSkLNqz~Qw>F#)xbu;*pXi@fqp(r`Vv^IWH z)$%IuVB%iU@x-^eFl~ujLCg=B#PyQ5?>Z#u)(#VWIY{d|I7thVJ*+eC`q`Hr9~~=i zjLDy->NH*3wWivgY+6CMZE>BdASx*vtD*rQX7dcH?ji)Q+ z)N%riclRpGN;!BW;f#FtMDLu(s?MZq^d06q5puYrY0nNF?PeJ@hQ8m;hdAcu`(CWn zGtDoSs{Krli3BNMs#;+lPZiCTI}wK%&6`rQxl&c+;fGXjSF*Vl1iscNA;JvJmNg5` zBdlL%aK+q)ExzN2{WvWJYExlg<0!+kB1(hK$Z$q0q%&;H7|p|B0f`W3zzgDLlF5EN zSMSgVz=8kV6I>6pq}=8(#cSlHLgI%rHGs~yl|2g|LO5(y)b*KqhLTcKfgDFv>)?3C zCVUY#>9}ZT|9D2e*{{MFLi2iT97RBFj?X>t#0stsK6Grt>k4%JL)&scOh2cXxWCvk zS+AoN_!1bR71M@61I0|+Xy)o#Z{f_cIs%w5Jn`T zjL0|yqKqY6Y9e=mW4J9f0c!&jzuXUK!~=k{>n)4Z7A$f|97@jkwPz~L`7N7kQ5-1L z9zj1|R;JLB&9&qMZfG{+I|WX56{vp^ZDFSv6_z;QI?9RVtC*$Igv$|sNr+2*$a@EB z!|!*-!{h9=EX6}Ff}z1j9)YD77>tCa!I!T>bU~=3C6=P+<^U%0#tTF%9BY{Hp>BxP zc8bM|z{$&oOVlIKB(iKkRwz>mwV?e*6M{mM$jQz`L&Z`EYk5|U&_Kj<3AdF{5(&Gd z77{~Tk|q{7Dzh!JTbr9s!^c7spN4iUSn}ay4NENVHR|z9^tME(yzGZJE5&LP8ji#f zcnq7|{_@8ThVciyW$fy}oxB+8Hi;wgL|+nAECa~|t#h#DYomkf)k1+0nG8J~cq2-rj^2|` z6>SXHVo0MsWeCo|3Uq1#CobhEz0J!SNeIp98tfb|o$*^xGxtAB)J!yaY7Bi745dhT zKsPv{7ie*HyHuF23OvS{OgN=$1q^xF(pPH0HK)VT0iP%JLJXgO{Pdz1Km8cmB&#Te zCNJAqWBBG}Os2^j=f)>((%KgKS$KBftmLw$4vOWRFH;R4{^|sX@u1Zv1$$EuFsHA) zJb$~|)~W3f4wg3o=<;bk%%Cn>c;;! zA@>W3)Y3*~|2)E03r4>cigCB_BevqFo9%z>^ppk)SbPAA$9~26zq1KA|H&p`K<4~c zQ=~jn!cqX=zuA3|7=SP1KU}C&*3sb+;K1xDaagcC|3&q~@o}aE$RQIz$=W~Dd}Yt6 znZh<88-80K*(1{Pk;|orufB6}gZj0*iG#_T=TBFwA3SW_=ep2XaA@5UCF_6Hd>I4M z`(5r24sLf220cEfpd3pc?~JZx+qRjq+?vH0EO^##vl@39`FU{<)UjWu8~q|uKA<~r zQ8?Rp2r5XGT8J|`eF!4VfDW!LeX=$`J6J8c)2E1CIsJ{b;{`A8{L~wXvm1a~J9u4x z-~x9f=0{<2N!_ugVDxLSjpcR`cVjlHi&Df?B<=IkFmM9oGIt zZgrR(O`?aBwFlC0rqDm_~Rt&d^SMg}dSaP6jU>8zF2AGeFMzKeauPZs_r z-<&K<7oKd7v)h0(VkE|y!4_sTc^RBKrfA9J)*bp@@OHy1q>p!$oU>J@^NIvCjt0h zrbG(^==W+aS5iKQNp2GV@wvkNlhPidkhkSdo#k2`VP!z$(*e~q`KcrubSm5>?SdOl zl{+T)BLd#pmDggk$u;tkv7t}ixZ#u1JAPY7?N99HIJmv{@JPswdGl`{-sbEI5tj9h z4SROy|FKh6V1ZLxIYT>faNLy8t_}2AsF(tYrB`2!tPc2apqISLCE~{6Op(=u3n4VB zz7%}de#?hZceVxXw-iLn=d@bXWt8KT4}V1#!@J7;v-w2SKZ}2Ca4~%ER8rKgqkY)7 zq)Tw}=PF2f{;KQ9{vhFXNtG)W2_zxxu_$7{oZ0=(>DgY*OJJJ5p?~2av}l35cX><_ z>&=tfR7GgQr_7tf^107)Pa3*ZT?C1-p2GV}L7)99b9nHf-a8h(5Xs+lo%3RY*;o24au*eNlHX@W zK$6p~p(X)V${$|AdS_!S=rEyAdwU9BFkFoATG+7Kkxd)j)!~x-X4>nh3bmi&*J@Wa z{5<75-WCB1g>2=OtNHfccPIMHzkfa`2_e{?=JB8$?1dH#BH2zpy=RjkJeNv|l4aiBr@JameWP6ZFkMxiJ#icY9YtJ3R{TZx_@-j++*mySdgMoR z8GRyhdbyrXUtUl*800p84L_QwCvZ6!v6C!WMuaXJI_&zBu?c;qe6SXKCX~!ts`z8% zh5?4)-n)#P(S|S&*8xKHwV)^kI|nPs++vQjR1Q@lex3DwEn^F_MkF#tgI-VyUAnL9 zdU^0U)Ny_4#>@l#IjsNq1{qb{S*E?V2G40%+_%3*dBl0EX)u3!t1HhL+ugBMbAhbp z^Cm>2&xp7(-)8^`-kv`KqZf6rzH@ki|GF;v!edy6e{eZJ?9U$>O@@aq@LJIY*uQ_4(`QGJ5 z2fglBY=$cqDOTD7FA4^xMI8VJ+@C@3U29lCprB%gGVDX0q;MA6rJ# zyr60E#;k+*I~oZX9m^?FOx1HEc5JP6k@^!?8^06e1l|%vr^0oIXujKKzniOF)Zr>w zX4^XYRC#1|41Iq6(EN^30ctrGNzuH!7?&ty&OhG3o|8uPC8*fioaZd8=+Cp;b@2dy z>Gz+}!~HIf;!a7JnS+7md9{*^;x{3%9`4W@9r6;%PnBJAB(L;>wRb1HKwlbs)jQip zGeDGn?m2HNuh}dwhbxq)9Jt$8H`7BPEUM#g{_JqiO=N^$55Y+YTQN(!&Z>0X8EjHH z=ZObs1$?H=2GZC}WR{ZuJgqQW8HNK2!=(e6Foyk1G5whQbv|NV!Th&UHDpeALwlI+iE1eeTo>mdcMLg zCt>7JCTs1R9YO=Vzx5Cz#MkL7R6NVHk5`h zJ+?MT+Z!D_^(3#VJaJ^N2Nsr#AJAgE-~01Tm(EIChQ1?m3R{8AhSW?vSNiQr@f)2Ft^kLx zerZUS`jdFGpvgEx``%$z)xkzQRG~u8a%tXw$;)G5Hg@$(x}A~Om3c&%r@F8vl@c+; zhxZ&=Mao^wz3e95FO{L*!#YbPe;2+^&uonDZfE(_#@hLF)cDc+r;*h#z6smKG3I-N zhJ15^*_5xWk*kw`u!rde({3i@H@S#67Gn-x)ia{6q`Aoq8{mF+S&f^pf%Z_`gWPCh zI}u+~c%e6dva3&olkPBKONz}VBtJjSYNem%ek`}CTtzozKUW~d!{HnLHYA;vnwQ+h zzhb+(ZKUHe_U+h~8~f85ryep(;+`hibw|5!*(<`uNaQp}`B#u(yiqI2-;a}!zmKRT zUca8zw)^Z+v3HcRV=4EfJfL}$csL^~Cmbt7KO7y;kGOA_{f_It6fT6#a(|9jT!s@KcC4vD{ycb;n5AykK% zpyH;b_PCJ&T0c*{)0=*VpTi@2PQ$f=w*j^Gvggv)>KHB-rzjs`zA8ego>7P`B@NX3 z1QDU?_m1NX9=vzv2`l91X59jI_7o-KUOC*xaxm=(eY~n$i$SK`~{i#Kx@cV<=xETVJa7VCicao&n(;gwC+I6>b?YMedK$>Ai`bR-M=uTrot#?_A z9BaANd*RM1+JU^iY2?+Kr$)fQQOXWeZ>XFgbN$d%+|3 zonLYM9#yk~2U3bI_k%^yhyJC~LxXzHZ5F1ls7`C;B<4g_sJy6ylT~cpuldUPx|gn0B-{)T5qKRWTK%R|0HG z4fh7pCqXVV6C44RbJ9cS4XRCNQ$^^9^lf9d;>_gg=jPHYe61L-V1$buc2dKqKcl)= zhD^cJI%x(?h?Ewi_`*d&es0r*lcyaj1jYN7>6II3ZVA!m5t_Xh*$WL0_g>qSS z1-8m`E=j=rlU29(2Sb3;-`6HSD5{EI%wQrQ-jrxWs)K8*XA*>Xz{=S*SkWb23A5I672LQg#J|;pF zJ>oTi1aLBP(W=N0!1+q1o${f4>4go{lcg56WCBdU{VS-lV7V%o$PxI1i0Q>M3<}Bx z)`JzD^uQ*6asHhBdh^oR5Rm}qF9cz(3{^dx67nkI@g43!IV%1?*53yN4#?vK0)(`m zoVR=!FYGd@n!pwIop)*k;NhXNuj`JNMk3Bt$b<)#&P_&$ncTd^+k~BMvs8ie>`dSd zX4|JrmY_V;q|Jw|NP+oG@ZuJdc{UM*JlZH#YR88IPOBuWIZOr6#3-H1_g59E=^&)3 zO_?MC9IY*?(k9kKR7!{t+6M%TM3QS1r7G!wN?0_=&kxL{vjRi>I5o(ff^EPP459&> z*2BtFQHy?|Dh2#IEfK(m`)>|k#3OnRB<9UFTYx5h@ndQ8l6m4b98psw0w0pq^*PH9 zt4Cw5^f}}euNeG`C)c<`NZbU?r7101MnP3!PNy9cE~x~bod1n2H-`i;%@mpkvOw@d6zknI)EQ| ziKSAtu0Y;fal@eUJP3aAA$@R~(hJ?OMuA~0W(nYj6xI2(qvi&9UNc;BPG#` zkq1|DyYS)p2vzN!tO^Rw3^1lAcP?K1{x9Ebb~-Khi}Cl3K<1=OcJnb-4bt}wB_A;U z>W~Y7HL=#O1L-X(fmJMOy^AAg!i^NgCYd7MH8keZn9M8-1k6`RhqL~D&P5awnW>Pb z5BGlpY`@#HC)ONgKiN1l4w|ogR`+00A7j7J^OMnODC|16WbBKG2c>}6VP7)a0TKVd z)93*a|H8$?ad4*0vB5IE2LH$L`zM3`zdL?Fxd6b#qu>Iwv9JNqJeY@%g@cd#A0vg@=#ph3-yaqlBePQH3Dl19{v6M7)$>ZZHcUn2VAfmOIKhej#DxD0 z#Rm}c|38DB^PfEaw{QMu4Fyi_f02Av9bG+2cDDaoImMI`0hBUM35yF9m-r_e{r?RB zgIUTT>jgch z|JQ3wITnM({7*(XFZaJ0<(*`sKvd)8m+=M#Q8jHsJ^~SDW4jf>LT17k^Z(5#Ka)O7 zC?6qLc25(}Ya7Lryikm{$QWe>q8b-Fw>LXstaz-r!Q! z@6*j?N(H-8bl#n79lOE-+QC`s>GMq@5Y^DhVYz#V2!f7pIh zS#;cAJsGgSJLh0|ZBbOUw)-VMk2pk-!A^^PMpDSmoe-u zjKOGpY8#{%z8w!X=#FN7I(@kWQ!1qW_ROIi_an+zOoysOP3;wV>KTcqZPOv%l{17# zFft6 zcoKiF6KD=9tFb6>U=B|1TI6-mLXui}a~IzBZShriEq*({{VIc7z>(*OsW)kq>~hrs z_1x`;GDZmTUnhT#srq?7j4F7pJt= zZhuhMkpB6kG-)T5i*oqwrbYV*DS~8tSq*dau_vp#vxBK_gdUzu zxcSn2(Dl2V4)Ll(|2%eleRYiAHy=;oBL%&4=T;PtSoRy?OU3AvQyLq8+& zVtUOzZtD=Y>}B%0lbuG;M9Ki6s9La;KYPjyGXK$GH@TOw@h*W#Dv7ssQPh5exr?AR zqh_gZEvRX0k++R+ZbG1To)6k3Gt34|jrBom6~(ngeN8HI zX1huhH}C|Rv{)FGS0)PA=q+pFiLFH6rmL$Xu1#al<93~-dGjn1t9uKoW{(j=#<`Af z5DHiIuT`>q%$LIpS{fmd!&23rYs;>#VH^Nid|{R z`>s3F{Q-UM%ZUeNhT1Pd%g`gFX*`Y|NRy@`ZxjvBnN@y9GqyP;pNh5ufgt6H^0eN;=w{xL=R z!!^PFO_Uw{nIYxs)GM382I)cVYC^wd-G#U(gwmp5#1k#8EL^t_lwT9cvRy0%e%3hU zH|R#^O$&V^`YJ@O1ohB*bKi;(vu65f1;6<#dGkthv{RJlInDybhyEh2KdkSHG61mYi_1v(YtX(agnv zYLuA}6mP;)C=puoy<^4q%n7rd5xS`Vg76JH$PnQ}j^0ASE@p{(L6gHA!fBCrSZYm) zGuX&46P5zIGdmK>OlTc7&-lGcltanyd-oFirt9}Gi=;mFmKpPXZm-HGwBo&2?Tsc5 zvdq-Em{+3LWe<~S3r|;+4aK@PL(TMNQQYm4vt4fcx8p&hKV$1#=exGHc?65wo7T&g z32EO`#K2JnukJ&r+r9q&tm8P-3~Hcb+7Vd^k<^Sz`Py&`-D7e(F3#pSce|CvEr> zjlZ&U{3Ej!@rA-@A5nX? z;L>7+V3QXZHvkOA!pu0Tx<-L~Ys){L>=pm}(Sl?jiOApkd<0=dBT)B{B0!duajZ`q( zg4PRwUE7ky1P=uE=^tO(Fs)pM1ny0KvryzF`Q$(N#=i>yE4f$W2(;@rrzy3P7^MqX66Xe-$~| zzlwYl?ghrheF+UjP(jOq5_PCL1#dWEGXacN4FOPMl&{ZUs9S>?*iJ-XUarUbY&vL)X8-$Xc5mqoL*Y6hDF71_ zQg+g?=k)NuJjOshNw}get1`sSF2Q_6vVdr4dIx$y`Ztsy39unvjtQ{Ia5h2Y7Sy>$ zlGH>dsxIZdf%}@Yf&b|7fRU6!h^UoFQ#COLxlRo&F2XfdvY3AU2f zs=RQxJt$?OvFiZOIz&QQQ>=I|sRVXv!Gb#y1*(};i2gSY7tOP29{5^=0<7tb6uo4V zxXr{1JRLsd|A=&TdTE>)qYT=;-co?tMddA!zEknTlR)==&W1XI#pAjubOEjZk*Yk) z1&_Lv>>m!7TXtwie!VHz2S+F;22K??PSjg|!+=990toha#1{?j{1V;(*@$QysWKQB z)&QFL(%)O*l?gCF6-M>HM0)r%6QI$}fMARxz0?c7JJMZKbh|{$F0N7`i-UnqBs2pL zT&={j?5mVYGT65kpGil$Uzgs_(MJ5E-Rndk4vGo9=KxrY$0V#!f|%6{e6D2#c{>Yb z5oD@pMTsl3Z4yvKYv}X#z6AawztW!e|rAI-u|Zy-Tz~5xp@ zRLkS!`JZAK$oo#*Xa%Kka{x;Ce;s89vj7$Q{=sp*#Qs&n1plAKpTeLA2x3xycyc%% zw*ORE1N89L(7$@vzD{Ni{v**o`5nSSX5g4zT?xW4P+?8!{%J;EGhyY{{)?zT`*FM+ zXzhE-%j^{-18490P< z&~9$80N32`{OLsT$OWcQL%mFIelH@i}u?Xwf;y< ziWI1pxXkyOe>ynPAbUN{vxSBGnmbB}rn&A7WAeRg#7X&KM!J>rPP(!ze{_V*pOZ)p zhH_UcUPbZO{q=B`i1w5j(A~++x1?Un62poS6iy+Sxm#A6*1Co#G3B}-d5nf79Y$(a z?rATPjBxDCAzJL?Zsubf-vhztSKGRPB=g;+N6TuZAgL#;9^$7q7m=F(X4U z1gp^9m%}Ebc?i-N|D;x^2ro&S~!Z6YkmAqMWm%ycp)3v_EgS>>imP z(Aj_MdcT(>$7{PrTl3ldJ}!hNFd#!D-GX=^xO2Sf^h-p+O`zVer1S zb6s}T)#v^-7WxjwNCOj>&h&g{0+r0R5FVAB6|wE!+h$b6_mqjTKXFsXdJ<+@A0lxx zTusD_;8`E$X1jB&^~m^rMun`*Sx5I|@>owxr;i#RsBz z>48G3fl=yHPq=;8=cevAHexiKEDP6^)EJXQma4d7wKP9ZqDePv?y|m3ny;lcll~gA zP5;#@pu+)>c^gE1W(FMbb@dHq^@&nY++#bF`(GY|Y5jsweP_dYX0K!|1JKr7{z1#T z%_9+~DSJYUoRzgreELj6+>pioY})d$eFUL6iZr*$fW-Q(g`h`LugufVc7Jo#Ei;^P z_18SB>E@AX<6jJaE$t5aqWIwb*zSK1lVmxFnH8^m4#P2(FfV&|$M@_Wudu88g(onq zg=nKNT1NUkG;zFV8z%@eI$bnrc?2~4YoMG3pGW%WlK(y#Gs3)0=c=#nMss=F&x4=M zfB?fm|9vOl@uInlOu!S)<`hml_C>MCi4FX3Kk}_mLtW9$_lJKmO*cL@IO+Ru-NJtM z$r98w80sr~{KjeX^y}oS`h8f5nd9l+y-f7D*f zBSg5fn1DDR7)Z|PXp&;UTCCa&&p%o-nV5aDjF3mQWrRo~R2HlGrc4^&KNbIf%wiKz+n+)d^x(B&y5% zKXw8qHVaU-)8tOW=dAVLQgY7@)j~J#iU^2C*efrf_uT^d5sZ!ae*UHHv88{EsUT`5 z=29ct8czjbm{z1sZmQC?X);o^>kfawZ{luC=_?_1C^nb_1eC}i#zMp8MP!CHnn-7n zcpX$p2daFie?A4nF7-WXWRd%?L}TlmSfBk%+D9nUdZAcxUU~|_rwtNFl8@a56^_lS-g4v8g|6K75RO%B7q$<}f0ofJ+rUyrodM1$SDfvK z&w|#9*DpJ689jFhPj;@zqV@kSJ^T4-e)oG!S^z8K?m0lYah;BMElcG~{@7 ztd08K?X6(rkb6*55wj`9W;OAvuDd9#iOJjgGc&L_qhb;au%nZcYm;to>dvmioa z;bC`%IFs4*NYqSI$WoS>h&QtI$vib<{RS!`H)}b(dnpn9OA+Yug|xe>HG}qlL?{A^>2F~yT4*_MnZm0IyS3Eb@b0f^3&v!!qqM5c9Gzn>@V( zpB$$wOoZ~QuKuiGUplgEHS4WI&oK)~TZri=&8`{cav*0m#NI4aSR!W)ZI^GJhN@&b z!}V{;hRVLSykm^5U7R>cxZk&Jz8h)sxX5HBbMc~qS@bf}7c>59tmt+pzN+3wF0FE^ zfTS+}v75bsx0c)f!okC_>uRqVbFI>J>uMTZpCV!{mhSx12dBAoubdCv(8Jz3f^I(N zzY)u~*rPWk0$!b`&2G&tq#tQQ`hCN!2MT#wKBkc^VqRu$U&t`Z6VICS|Mr0%o;}r& z`xQ>7z1|LS>>k@xi88pLt?l4Jb=BuN+6pi7<+p00U?I9P^$6_$CftbAd@90N)q%=X+LW%Ks=Rm44exMUt-HQ?Ox!-5Zry_1tCMXo8s9`tI$dL!To^_F1Tz3 zg`8EBK&6AXXpkvpoOnRz$}YzdxFR{|Vz!CQ;Flvys0NYyYVg->k{L* zD55w(X8?$_OjH?qKv+SX=xL(nf{>6?s?tCofin|)c=_0r&d!(N3;|28qY%wT5AW>t z%#a2oaunnvu8K!K&E|%=Ca1H1MFGu{2JlcqN_`M0W*$YzhfpB{+r(29e1S>H3EG_W zXL2qQ=xxYnGtrCzG5NbFfv_O3IU340$Q+0Xr9xMo@*G-esTe?&kPb#fmVwMAS>acu zgF|4h~s(kxC2ArL0X+uNfz6#?G(B_|Pp86CfkjN^NG5JF z_M)6PvBhMTA8#9Vq4c2LN@bdeb-f^+*(=4QbWsg1N;H-eSEhyr7b9GISpzf? z$cLXfg33r>7jox|u=^YNuu7dn@X>7XFq%FiyhfL@lM28L&^(eUB*M@E+KPT_h-IQ4 zI5U=@1q8P2*<9&b2q#)J(n6UoK6UAh0IzVtTkk0#C0RO96`)7h^We3PWZ1kNfs|bi zAXGqx+6;sW%oA;KEA`|9s}P%d@tc!+%Av%G7AU}wdN-39emq+tor1wTmFLq$g6qcw zW3Y6bu}sBWya|w$?xsW!*W~;fKP9CKxKSM75)f!w#w$3^rs-}PY?$RC7(j}cscQ;4~0+Ip}0@9L82uMi7 z(p?G&lF}&M-7O&9-S0u~`}f|@b3gx_Jv(P+&&-_J-SfT9%=PKRlvgVxmj*JBwiNX< zaC9D-zNQ2I%%B=6>c&9GkMWuSte&F2bQ6p)PM%_hgKRB=LVzWUb^1uVgf9A?99$&A z+s)PtR_#wDm3#&)>m~D3w^1m2RrXN#$Hu@g5JFM~mi4-lkI_5w-*@X&70^#VDFZJ4 z8FDf34Brz?wS?|_I%S~_!uxgt){1-+Bl^>sm?R*eXciz zveBIQ?Ay6psoH{NXY_ZoLpJ-WA}F?nJKX{hbKXBfqxEk8Eh&Kc_+oK-sPF(Yw*LY= z0MYyb28faFFHPZ}8p4Bp-GhekH+cZa3RuZAg86u1epDdNzZS~!!%Vyo8R7T{Zz+U>)LVe8auS4Rt2CPogH1vOhkO`rq8J%0Ub^mHoXypl1ka2-`jbch98`6 zo_c?=74?3WQ53j(wJ{oOIXw$)g6{6?&#qUESKWG5*VOHXJYHL2Eb&Ok(&0(j z^lWp4s}XNXZ8h`_wE1S2i#%=es>A(7tFZWMRhBSSByzbj(y|EGwqv{3-q1O$yBk;1 z)_H|V*WRsJ!``Rc-m_}BHE+8lE5~O<4ZL%U!n(;WJ;pp&E}WgD)1od9&uq>c7wUJ| zZuTrXaMHX7MR&%_>Oa*;x%2E>dhfeP=`F`NQ15)_zY@;)CMVXot7|JVNV&&fiYfTR zgUEsJcEchP@eBR2u>U)Z+g9k}o$E8eVcN;GU4^2Rpvj_5#2Tw&TYO_a>uxim?5=ij zwtjoSwR08Pg!`-P?y7Vb*{%2e z23|a#!UN&G+mR?CK}H8otWJJoimju46}UXogWit@4)W{Ar2WWxPr7vhX9CtV#~@YdQl#ej zu~pzi5x!hq+J4@!Aoo1n>hK6f19vslZoMXB!9sjIWV7!1zUJLFDL(-9bjlQ8==R^o zIPkSAf&mO56AOs5)CM&7Hy?>Su_2Q{+CONa%tg>5ORbH8;HpQA$I{15LX9M8j)VTA z^4?H>bT`}rgv*`U-HzRPxNCJATnUhnK>fK{Xu?)zs4|GGIPbFpWb=`Wx7kQMOo!ux z4BzI^`M)RwXhq5p*23DwKmdq@`dp7%J^<~ba_wToFs=j?(E~^fblFvt+8+;-%}*^; zP=e>dhKwpbQ|X1vOH`rJ6v(vZs+{xn(_>Qzugmwij(ofKBU59KAJ9mFR1jX3Ky;Fn{O^b#RYt$JVy@;o zSkZfoK#yA9gadFS)nXO}$r{e3afq`-!tfA&T5QlB(I({N(QZVa><=2iN*_Hdi*Lp% zJ=#wqmR1?wT1HBTUnPcvGj{~nk3X4SA(1v{2)O%*%U4K*Sn3qgKNbMkNPgsy+2;g^ zAC;|(2w8CoTa#t!G2nqxDq6!`xq%9!w93$@mV>DMi2sBmaR(7YxTX!6WNBjQ`mA0* zXMQMQ6E}?Or!pk1e>|>a<=%oX8%sOkEP>35^DPHpHMtuDP@_IHu6IuPSpewh7zLo; z5Wp!gYm{L_RAS3GhO}7Ff&mCnnC~b6Kf+arrDZ`?0gg^>LxZi<`$2j5j4uF=vBC?c z7yzwgwPaBL+IYwsZ=#)j48T?SACrfy`9CK~a?E}}A{irpRL*;rOl@L*Ad#}amf4?( zI+pA3$)&3F68Aoy-0LPC@F zC3p+MrSJo2fD)BeFTDYY3Xq0`2(_KgEfNO+LPh@C?|xdNCCJjdK!7wG(;+;RNq@}r z#p`!4I5cnS2R@ScZ#+`2$htH45P40lK)5U4CINCX^>PBkg1{_lEPy>yK?Vp%-Yozr zsh;wIloSeJmbUfaVgVQuIX1vCO6M?qh6Yq;?g;=zdYh35t<+$M91jByXK^Gi?U*3z zee~boKhI)KIY9<4-2nr7`X)x60xtRE2SAd*Kln(%Fckh@e57+&^RTvx2gd*8BL)2C zBe{+K<|8$=9;rf9c!q^l{N41dMLfO^VVps=7`z%q7OgG^p6q%Fc91Xd*;mC*EnZ#z zihsA*{PGTifLh!9&wnI8=fi&_J|K$!_kScmph9DS82-nfB>#W2QMmbGUp+vKFg-sc z971mXzx-qWo@d4j0cO4N!oJ1#aSWg!kmn9c znE=8epl@TuNO1+H9$iIiF~x5ccs|wj3YLWx(S<$`L<*VeXT|LH&I+DRHZO{1G@3;d*^@9n0SQEv4BVW=F;8zC62rKFdBh@KvC|sP`#9VWpQw?ZBE)(@k5l5}G}G zv(H^a!FRux5dpF+yLnLP$V}bP=_~ic8!JK;`>!J{=9S!s{;Ub}1Qn9H& z2vzMdA4#D9bdO3-U!Y=|?w1vX+9wM}Kb@Wm5iNUkZbjaDnva&w2U)(E`>NXR=2yE= za6S$RQf`F4lFTUJ{Lv#}Kk;H@SbcV|_PAa-_neJlUwa`Xb0iC@@3D|vW54%mYJ)&K zXdpQ@I9Uj#<-GfC%Dalkj>61xPMmzrOa;dq^T!gQ=0t<+VhDB}oC>N9CATC`ZuKTm zCJ3zJ$F?n-bE4St>*gBy#sd{&OF!a_^qdo!<2%&&(I-oI;`YrfoYuQ@4VUU)bJ`_q zT{Mku$-bd<<@s?ARXqsLc6n!&8)2!f9?FQ0zZ>1X_o1)nLca>J9xX#AX(X<@RUT>b zOAXAy4T)RG@AdAdug6Q;EB0OF-hvieANf<5guW^s*k(eb*Jn7Cc^fId-ey;LxV?1E z@uUr_-Q77n%Ima=5nAqI&{L0t{k-C>(MLG)cstE0dc-Ys3zex~A><>`2`yRZOs09a zd;9W!Y`dmc!os{G?MFSm#y&~Vy8cYZddR{xZ^(G~Ok<>wKWXY7y#W11^|Z#@fN{*t zkK^3OxO_IzHSJYhvnV<-njuQ(0l6a1RcCMu8jz_)fT7vKqO9^dwfd_;{8ggCkLWW z?a6Q7IJ&quGN;+>9^0S2Q`MH%l;}_0PgQuX{W-(bu<6Ms#iq}B$s;wMNnNDd?`cBp zq#BzpEWCv$#0uT%nn{GPwUBLPqYMxM4FkPHo^bx7p>^Fz7 ztln_drPVjkT>UK*eYQrz(|}A*MLhC+TDxv`Bf-4yTY`DjzI2{w!og@g)pE&=tD!>$f4dW(PZXvVa2)l~pu2-0)FVwKkIu=k zhGJ&QOF)|`n!7vkveUS6>!`}))xH7~ zb$mCbSE<|i`O&IP!-eT~>z!GDWD_fAj!Z~Re~zlB&vp307qPIcaE1bhn|-I(%H7wm z20NkTx@;@{bCGBcZ3v=kXh*^&0k$KZ_+mc9L>gpC#+DX5MZM1)Vd&AQFHOd_Jy3rk zOHwg&KmwIf^2c7-AaZcX&|3iJ2$EYS#-T21n7@#FNZ19460_C2Z%xKDHxb}8`)G-O zA@`~Kezi+y`FIgdgD7O&y5r1aD!6gP1SLi@gz`%71D3jwqQc){O%)u2>k5 z#mKyDi4;m4lt;>Fo=DLZ^3vag@imhn09r_;se;ehV@z%-%o)f94DH`#b#cfo#p43d0@3O#hR`~kR%_g! zkH2$i9VTT5_=S+sA+4l&XMx}zD{cOEe?UQ`$HX(H3-L&wLPwm?ybihGkI2JJChvFtt16ic0UhWxU;kOPj#I3?! z7#n{sSOyFrzDAi7C7R~L1M5L9UA0JM(n3stMIux#9G-l1iS1*-pSjSLPP@%t$Vj5< zX1tB*exNKk?zS^AY^9^?M9V7^yQXW##B@HV)v#1k&n}ch{T3t5^~07aPnuXKx+_B1 z4vrt{iThH9nj2vX2ccUss7T%{4_zpmQsALbd2~wzLnYsbC3LRX@2U)i%n*Q9;4)_@ z9+b`2Ru(GV{axPVHQpFPXxU2d))w456j_mI?m+dy2SbQ0GOPDl-JSqqVT?P^H|NVL zQ1sOAg^BS|G@f?!GkZLfNR`iOamM&i6mvPuv#H$jr$O`` zLe2YLL+FrI$c<9GR4l>JGQeQ@EVQhXp6C6UpaQV;F!+@S4p5eai*e_x!p8`J)1bZ> zm}nfSGI2g8^g=;02e*|xWsFGPgbw9nH1$Is*|Nt1B-{d1nz7aq0Ab;- z#1w7KH;xYkAKDvhlTc)+-6IgvfT{kvujcu!J@NkwBMIF10vJh#r+*ng{DXwZ4S+-c zOMK%04S8gM1*w5>0D7k11Lu*OAFzjDff*~oBVzppn`D;-xS`zqz=2w3umC5_#16y& z2LYy${1K;UYH=FQbvBUb6Z(*1;Yq+(S)65}#Cx-*YBp0yo|piRTV+D&d5lLxfD0*V zjG`GwQg>J1XS3&mw<~d~P!EsWcUPM>m6}rTN-j?h&kN@60jZE<=L2XT!?nKlSp^hGE`YZ^J<0eqUlUtBBKE-O8#PKF$sV5_ROn?*W71>Pv#)xoCg!-#gOolivC;mO@!RD1=P=Nh^MEIczj&=cVjNh z6D(tn%=Ml`E`1j7yfV~!dH!|eau9Kaomrfs*hVcZ?*$dg`@9FE+zwQnI6$?C8cE(W;sEt{7l){_Sruia)BUZ~ z+9?wE+g{+s)Z0f1mn=`>8)ye!nsVzZ-&IF=$61i%ysQXNNapNsP^>r`^)e7gT4SkB z`=zDRm*skx6s3t5Xr%n!rBA367B_58`$BM7#c;qq*_4oSf0Iwm>-n-^djRpC zOtRKHWiqhLjDn5Cg79hnygM|+mUtpShOgo-wy#qOsg!R?3bj$0+jEtxdSLkR=(pX5 zLnijUSsiKvbA8sTG{*Jn(TY;~sD0;Jnv=+~&o-A_PQU1tZVW>U+l|xjjTp1r4MGdI z-Y%Bo74&;S})7 zfLkm;86a^nvZt}L3+uDTI;B>jq`vNRh<~Ff@=75=$H#U;e&1=kvY$z~f^Ylp*Bx`@Ug_XfB1^4PIvYxKF@k-)s+&Z-VBZ{L3@PfWR;?;nbX=@o>nGHlNv>2Vslam<8bRq+BjWKkdfS7& z{-6vF<`_<%B0y^=Yabc2_o9^h>`2wezJ_IVGo#>iHY1XcL7F7Fn~|yKmNj&u$2BZl zXaR|jksPB;YI32dlZwEjnRK5#F!0MkdUe?l29>Oo8zfylr_;C~OUJU=`BfI*JGT^C zXQg?@(US%CF`JxdXgA)c;Vv`8PY|x8R;G{26RiSjyM81PE?p^9k|bdX#jLE?F939X z-nu13ZYdNHxN36>SRp6=syZYdEpfk)8-P+O3(u@%S&1LG^pV?Y$ut`}t_fCVOcN$n z5t;nf+0mciJ@(Y3N*f6QRZrqcKaRBjsB~m_Aw&#&#Gk29uTkQ@EUqHuUh3&9S;`&@?TqssUYAiS#cKO;%877y&m*ISl+rD^*? z`IY82QBp@feOE|Fe*Td3D^2c$GP1nkZ;-Ps2<-kn0yWei`r}qk?dT9(J2ysSHi-(i z0M)P}uAnQS_0SN4EVF{;gjEF`+Wa#sI+T6{#!*rUOym;!tXltsENeT45LtSK!VvoU z)d&fiSj&AGCwS8#MVeUtRN&v5@k3^`0{EkL>@%y(d1ft@XL<^fJgtBN&4j#eB|Drd zOHUU0ZV1|yi(p+@_!(3XPpic&X%!*<#8O7TYC*};rv+XSU}~*_2O)CCL7DNiW27Ie z6(m@r9^3b8A=}3K>jeN6-9iZj5=C-GtZ}zc_3)MEDJx^%*R@)v;Ek;tG_jnB=hF}xbSI?+&z!AXP`W`@_Wg~mQg!_ER@>-y3 z<|JGgZ9c2gfP00Le?6Yo+Sg6rXMstlDL{BB$+f|@`YSnWNnA(6MM zUZxfO!*T;d638I%9rdG%K!Ems8B5`SRK|k5q?Fr-;jTEeaP8+@;^5lRZI1NuLXYz_;oUNW$1e= z*_`=x$nzn)nk14qS01YsR{Doji38JWM3NF}lbI+hPrN?dIPGX6c0s2Zas+OPAtqdr zN%5Rrbq*&p;9SMx?y?yCKvr!Wpa~WjAFJ_uyc(E7ej!6&=GP#W587sx;|csrnHAuGZRvsd!N4o6K8OLhi99@j|4(x< zSY6OxOL1!^^g$o6Fh(wCNf(+$ZVB<57ZLtcQ_k~GHSq=h&9fE&^jknE7W=Om+K|7{ zU;qE<>YtRqW@roi1pxaSXw4nVDM}KXSxp1edjt9eI|~B5(*Qy>KKE~;*nd2d72t(Q zcq2T83B`jjf5XtZfs{yFkN_BX?Xd+hz~moV#0o>8|JNNdh@J^H84HNeBIAf;Z~~Cu zQ>`D+S3BQu0Gs10r2L>_q%e4NxcO>(-)^R^c?^qqN?qEDE~aJ*4Qjg2`e!atsWLh9 zxbD*0|F?zkuZ@=Rqy#Cd$VY8 z3%P&OL}Z|`o>=Xj!IqoHWk}T+!Pn{!H%HLewW*l`57n!uk-Vp!j=5PIaQgr_t{f#T01y*jX`f>qC&)ED>~@ zb`pnm#r9SFy69{BX6MT75#5o@%W;<6gK?kjm zlItg%O)VG8LF9M~Ce{>+h6&X%-5*=@J=qu#XS1zL(dMK;CiCSRT6acl?y2xEAcsadm|wr0IA8<>e#TZ zAZxZ{ZFcDO^?0#Q^h&UA?c)*`H2oTmXzM&#>*V4eR+?y97+%R~9QgD3os(H-_+5e- zyRHRqRVxhZa|zMnWmfFjMU8tV8tM~IEh(%-Q(3*!cg`(ZpDgT&^Un!ItsEpn%NB#8 zPYoSfj|}|7uFHJ7%`NNv+6+8LxZmo_Co{!hT zOsBUPDfc8XION0VSnlOpA@V?PH9JZ?)u&kDc$31iWXs)H={}ax9RIdkOCv_OlK^x4 z`ml8>dEa7FB=XKF9iLm1#c|OS`g2`4HUO)yXg+Ux4P37W zT+f0O~vxX?Lvu0ZbYj5nB9#>5zekJx+_Lh5~*uZr__*+RP53+4Sbiqbbchq+2 zMboBh>UmD}YvSvt6+&0#uO7K)9`AKw8qN&5cyC?aY9_@SCM#t&$Xu z_Bdw~zu;5n#~!jUs`7;22)CaeS!xaMA>fT7&u&JHS=roY*=*hBwYLX9`-T};FlO60 z;q6u9Q>^s$j*6uIdwFVZLKD&gZqxma`O37$f#o+ElY&dS2HPj6iFO;b zrOTBQRE=btf&0Z=r8)4DRl{epNNe zhhOXR8hLVjXWjLTliUVdSY7?jo*%+*J79P1Z%(x+dCA3D!EjV9W++yrzIpBcT5U~L=;6NzlIh7XP=KxcPN-5J?!+@4*RIaePu ze|J7YBRwPS?rg70a%u`4R`B}9A3bRybb7t}_;tQq4bK|b`aOT!>Rs{oAFt zZ1BHEQym6)tJ3SFo;2mN&vc&43D{H^v1+HOC+`QNn?m;Wf=7NmnfNd$ObwlUSK)8b zz9`#!L8Jnq>v_IfptI2vAD_vL7@6bVKQWmzlD2G(eto+2)Xvrss&nUAv%fttus6%< z;HH0GT-{h>JEwOw2mQ6eB^v3JKq8^bJL$7MX~|XZ>N(v(;FU3NQ75V(a5h}+-1a&x zJeoIzOtyQp))i?}Fl{!sED&bWzn_A*V@QDZ!&XkW@~-=4)>{7T4QHvx`uRAaBKbwX zO6Q!z$VtBl=Z52yenc}nFK>6Iy4&H`e*A-0`Olvj6{lsnAj<}5p9b&8aNDov`3%h) z!o^C@uSJs@U*v8r{+ec=j7u+UI)CQ1dn{z$;`(cXCtj?{qS3I>DXuOQPpDXArDkB} z9OmE*B7urg<__XCB&*HEYv+f|HSq@Jnz3DDq(6R75&r%2a@k1dA(3io66-c+5g2|*QFzG~@@8gwr7k7NsX(>51AgpbfYFw0mNmq@E^WLa*?|!B+Z(y)k^p^?+6L-N*VlpsSwA{^QLv1-E>QVFgekZk^{7J%9I_|j->rWlypLh6UaH8ms>^E#2@ zZGMc2nPc7thukxryq_GvbQUE*mR3zSHv3%GZXA(0@5V!vD?E#FkKj42`UK`}R# zMFp}ZJg{p`Rf&NJr?^q_QT{mI2a^;$S{V&MW5w0-5Bj>&e9U=K`UJo*4z z^(g9xGQ(?M)$u&CKLCkO{eZ+66rBa;K+(5W z@*g1atJsd>9f38s@(e-_E!`sQrA{(ggix**2&!~ZtxUK~ z(WpD31){k+50EC)4E2hhVv%b+92~gx2@k~7NwBS&HRFZCEU^j_WJG!tI z5g(}M^BiPmg+hAVRE;!rAZ!0>nF#9VK-4$PaeBK5vpJa^v}OJk$x+{dc6h@00M(l( z2faw4PyhisHv|B&X|pB_N04YVQR9GzCo0igKn4{_5I`8tZF`W`iGkrdY?$z%qFX!q z?{*EJ-BSR<_-73A(vO>I(Qy|?Sb^{ zaSl8vFJJUDoJeM&b>EjsE#GW;5zSbsqpCCp*UYe%-qn*EhMWWUt774IZ(zfG z$dBP58~|`621JebCn)&G@=pi{7i<_6j)9)zkCOh+XoBazSH2!Jx-z)b{l{KO3RKw^(cMN=yDny*PjO zAQe96zq^q0PZxrLNjPtELBwc(&uxVOWq#KvH5P;m2HyORsv;7=fTbO5Cl-jOfHdIs zDL#brzaLFJlzkNk1eU;SS{#T0?>Ft{pJCcVj_J5RAA%PTVgLixc$h-_KQGGVcOWGD z2ty#N8I1=aU}8ew&Nkrg-_G_zK?D?Cu&+_bk6|b@f9j>N9LN7bJ=M zn{fRftx8BnWW-SxsV>iSkl49_>lh_VE;ETxj1Sf zD?x*xr`!*9)1YLR)8wTD;Ld*yL`rs9dpl>!hifm(38eGIg6PR(Q{m}qx~f53Xt7@d zAIH8$B8+W8!iHIAfH7jNkyt zM0kyJY6%!K_EuIJ4gvw@hEstUYT`1$Sm$@7!K1>1{A+SL(3~MuI7Y-j^?~g#0YtEe73V-YFcX~tW>*Zx z1w;7$d|5v=fw5p8sX%mqcl;q5+ylbtcVBRqfJd+>>(-tgHu*p=#rWm%n*Yad1}tg{ zj+y|%^Y2apy7-|}{;q`35^zx-nhx_{0)8F1VC#**nhhQ<7}t1v7>enl&aWBa+iS9VWKFUc)GEweknpNkmf6@1QQtM4&!(0xh{U_YMUQ|J9d|88|$>Ww_sCf0&q$2<7mN>3dH@>Nx|mk2-bk80fKJEZ{>f&L0L#f$y8 zcvhXwl`yQqQIcvOcB>~PQT0&uvkaprA<#<)dLnQ5BRLNWRMkK%gAYRU=OMS=hEr|o zBp9<>YBZYU0;xLJueR&eIwG0l9j-$cQ|QClR359EY2jKde^l0e*STf<_({z3H&^(@ z;d{*;*$wR4oc@9W=%-{F<9`0f;=0k=nLqZMB!yD~`@^-;DaKIYXlEFqmyld~m+GI! zMRC&vA!JN}pTczcUirlMj_IQt+BUlyo-*6Tc#53Pbd1?@+SErre~S6YD!{OKLza@y z(#rI5rtR(5C|mz0hOZ1OT*%~7DBBbUfVoW16&CVGJJ`qG+GtB`Bnu@Xv=Cx2r|mzM z*Ez3w?lyBS6~Y|0BLe?D3)*S>u`ng9Mz*y8hIOf7by(ZgOCNPpJ^C`9$>@Aa>?xfo zhHo8OoSog54?G$YJFgCGoa_;vsxF#y&iKb4cAWlzjd{Li2+rW$IZ}D;Vj)YZ5)d;< zpEN@7#WTtVQ(m)ojw@Fds;+*1w*v=yjgVqt)Ysw`bf{zIB*sR~~N>O3WDd2pF={^+T=rnlyZ5qkz(}1@l zp9j9p7URU&NkiwberLPfTPNq_fiE9nUr|}7f1T$yR)jOphZeX)H{{q#tH;t($#JW{ zhuRb-E9G?CJgE$J%ILs8PYQ3pwu+QRJKXS0(Y)ib$nbo=c;P_8@G;RGCpE^TkcHrk z2>;|6ovYH>L~Er8CCRxIQZ^ZRdd5r8jbnOQL=Zn$qtrDwBMc0 z4xY-~)S8m#Pf{p-gd(ind0GCPjb>7HG2K8Dr*0`S_CEbYa5i5ioD)g)3ghxLYV0~J z9EIm}SJ-ho=zHZQ_n66*i@hIoSlC&FVOYTyGleOhXj1f?kd3~rejYIcZ^^U#=lo3M zCyhnSAD7l23HQ=s99+zPTw6>a=r&p{DkS1LPJjF~;U@>IRcTO6BxGB4Ms%NMOSP1t z$T%0bzJAWwVQ@9vTief6ijmLy(gydJiP?hkg)q8t1RsU9ImJE$9Uf*)*Yq0 zGj5;cf}^8^{-BXQN2rX2e5vw2d*lDwZ{DZhw8`LbzPqa1u{K~ZmN{HWi^F0+`A%BQ z*6oY_*?9M4|e|^nx64hT@f+x)^%tFT@IOVclr-gQ)X(kA;TWH&31r9ZAkEsHP07W(DLoNo`VjflLlrc- zss7QH(N4srdZcvr3risyp?j{!zoW_@M_bq;wMUfo(@mcpyf+ozc&< zdoeD+YCa6{Db5!Y;$7wF^{~&gGQ6BzAyefjVtZ*&>Ygfe=KgV?kUXPc^&qNDhct~ZR&}&aO}#|vcw*Q)|LQ=gV2+a&VP@-B zd28Qf>!vVvz+&(7+l!80hu3kuBIzuG%>y{A&_uFRI8L1r-6GD%X3XOIRKE4M#}oHg zqaI(LzK0L_p;DO&;ZNUTjL6B@Ib32NID3h~k@adXUJ8ZzBvp$tIg944yu}7QZWnqQ z)imp8-}5&?Uwju*vYr}0)!tYYPbFS->eDV~V|Ipz^~HrC`zJF#=8OV1G9O&u41TIi zgaW+cx2E~ZJCtpfL3@7LNn8%TT^2#UIC1@eJDTG&(;!2pYKxvW@OvPUn#1I8x-7Rt613s%X}3k-|xyPT7CgZyjI{tigx(Z+^cpPqXRB(4Oy&sj|v>{bC90ag1 z^H{RXS0)mlir_{L>5qGk(p#_A7l%SandJT)&loskwtr?4RSUd@jDGGMbK*1z)z^Y9 zgoUkTp${9|FEO4riYR893V{~1zhfp#l}M%`t|$&vdG+YzYZ8?)mbG@QxGYD)1ROrp z+EpG@+rZHM=6OzlF|eP5#Ko*&jE>!p$!IKH7B){4z%7&$6<~x6)JNTSr@GBF2m@%( z<3e2-aC^Y9MGq~=AJ|3kOHBft(2@WrG+J(hm_*J#XU0~Ksug8$B``%2j)1%1GkMz= z>MT&qw7aSn*j^|486rf8Cjd&~x2uTDWL)zp7quJE&PdbFrY6Tp;~K4XD+oQ0p8_n{c1qRp@RA_)8hySWh+7f({CPNy|85QzDuPfA@V@P zzTUl*AHD~ex2Oe25F5yl6>L^LsPMtKdR|uE*J7HMYO*HxMV1`4P=>)mj4fbjuDsMg zz<@0v4&;SKBk>C5h~tU(G2seK_?o%O`V}@%&MK!cfM-}gKT3H{`=PSQX$)0Ff=dWh zCe;&YTVd%j-)|)GG%*6xy>>fLVN*mNzzYqHUuXp1Usu7OAM{Z3VF_R$Jv+&?h*Z&# zei*Q!@ZW*Fq3CAXF%0)^w8=mob!f|uG-mw0qdBmqIV8XsII=%OUr|7>0G0+u8H#_h z2#>;#r9MSmS{#3a5n3=%HWO^Ko=odEGfulR7ZWtoi%JH%Z$SxMal2RhNC-HlNiX#r zJuGj&uatuU@{hOs6-BH?rr`ew<#_lgVS@W$RM<@nhyd>|Bl3SLQ#`+;O5FdJM|e44 zWqV*^G$6j@`4hGqz=#)taGT=|hy~`?56*(=FM~1uM4&u>BG9HKAl`crF#ZZUVX%EL zW6k;i_z5;fI-s6iZUeGSv88qfEc6oW^dLLkUxHO&yRpdVFw!d^&_7rNvx0fKU=&M0 z^w@|72l$>nB)?t)&YOh#_uHI@w?$Wg2=M#p;=@~|EAZdM;)i&b6}CkNWZ$I%)I7k1 z{Xxxx_LKG6(bn$nm2OZFMYIJ=gM$33=P`jrWl6w85Z{z& zyt!Ok^^HltGg$W)Q%AkL&L|KQyV?9scJYgtt4Sg<9F1ztkArA(Dn^Vmb}f~e2%63v z^hHzqUAI~cd+#=_NoT{6fx^XA{1aZW?DJMM3Jc8Fr6`7AA{%X>V5%zvb^NM!udU{`-Z5H|R9=yixeNxLfGWd+N zVhzlZhC6Fz*AH?ZJ%4X%?`DD*> zU1wY5>)?-_<4T+bnufibqD6OL4bh^HK{xUunv0M0t_^g7W`R(0ZjB1xAgS3$Uc=@G z4N(R6cdA@C-Yldd(wBr2)y-xKWWl~4&iwKf>iV0XR%7Z5N*hp5#+)?pGLo&ykxzc( zKcTbx?goNJs)WzRdo0F$WN*WOOwjqXJVAeJV01O2qmjZJr#*a;8s_*?#>qbZ%Z^WM zM;B2Frut-7LK#Lpg>sT?`Nz9NNYuQ6Rf7$+?j&#g{;^$9RXqW>d!`8fx`|vXs=}mz zetDU>VQ4nA+~}z8ZC1`$<}A6>esd4{`G_ysE$)OTZuX(r8JRIF6evZ{(LiCw-@$pqJSULYQ*ZtMowM2utC;c(7$+1~qPMCBzq zL*d_&eQfkUnxklbqL{BaHx45(j&t-8KIfPU=y!&;CrzZfT_v8u!i~6u!;FMgXFg(9 zgdib-JJ#e!nNGN>N#QT3dn;1DU*v zi@T~Bf#Lq@=OG@uhrWA+`4OSw$&W4TWL=xNS>{!8zgRzCx!%@yd>V+i)!}MXl^;bW zKNWu+oq)S|Ng~lR>>Y+xwIg~WeYJjcLRT5%#+loTOt`|7cAdUD;_kW$b6y8?L-X)) zZEo6aK6_(^ew&VC!!xRT$ELKZDx~O~XB^q92x>g>o-t<@rjY$PvbqseK5t}A=_2=b z!64d#6z%>bRCH_y%1}JMVOo^uP%-l+_-am;sW}(w%2hhYa;}`DgFJW0tnu;IzPUu> z%Vmv--86g0+aF!xqe69tU{{I_U1+QorWGS=Q$bwl^#wAIiN}_{jgo&QzO8{y;$qD^ zi_33!IhJLQ3PiA6J!I?+o^IJe4adJM3O>s+{Q7g-obXbcaZ5#-p+3B%OczIif<}YH zgv<{i&!=-Rd-eFs+af{jxB)pFeCRXK^>b z)8xkJMS!$mSIfV#;qy$#oATvp)|^NwZ+lafSzpLndTVLM%R}>+qigNBotP*$B|}#w zYc+O{{AXd#_984@Oe1wrm}snrZ*%z1-Trm~q13|q_Qfxdt#X+Y5|+Gwsdy+BPxtH6^4;-muush+yJ+XOH<5h1rb9xeG-nt5FTdBC zr|@BT^ghQ^`VzCeJU$E$iqvm~yuq(8uXXWmRR_10>y}L0%`UUYhlLsm{u*`qbxdwH zOU}CEQ~*uwC>7g_Br=XBT47{*zb%Ex80g;B6430>w=@ApJK6E{9{33@&ZNPPCUypY zH$zNw^6#)1LWoIwcI?XP>BPLTmg>hBkS^}H%HuzPna#Z-fv0WwL<3IB>V02!35=5kZMu$jzOPO|^b!F;tbV zQQ@EN8L0Zg6Lu!s6^-hIJPX5Pq3 zZ>;er2lYcea98pBxU`N?{JFX5oihi}-A;&uk~pcx*DZ=OxucSaAESQIRr2Q$54Y%e zj}xP-=Fj1$TN2d;N~)s$AS}$^)=qmP88Sy%xj|%#gA+e zj3+Pr|JXX~u&TE0?+Y6ckWT3o2|>DBX^=*cmImq0O-Kn!vuWw>?hp~_6r>gD4(afn zThIO7bMATnfyrERtu^c6S!0gz`Hn*Hw%47d5mF!g&4F|j0$ z;t>p#AcIw+&D4H^k{ka^o_W=3;`q4*Sa&cKucg~>4z9k#XyZh;g(hGRS4{8rNtnfjv$f1HxxfFtzU9&AbvLgv;wIF zNWwoItk98wbp<-fc;MjtuQOX*3uE`#q1EL?q`s)%ey(9H0fuQ_x}%Ep|qgG0_JG zOe-QJP8cD5>Vvdq5-_P}bS5RptoDA^Xc?OpXY!z|xml(B=Fc;A!JEUi+wCE2 z!|ZfY+G*y33TR7=A8q;yJwWx$!qz9I?F-)DM#lm%({z_s?z@Bk=JO`Zo=@y%9(rRV<|q6>yQBcByxX2$ns9qDGGSk~J;J2hUEo$&I+h_5Kji8(Ker8b4lRjQO~^YB!C8d~TvtqCRH62a1ZcrwhxGSgz7 zy6P%2HBdIUbR_KOt9M(k)R;kWRbe|gJn!c--7;XuLzk<6dR6<2rMmp&#wIkp zR#i}Ub1v?RmfV?zL8B~id;iEwc`*9ueTl#e<@8qu%}r39!CRrMpMD8TH*Wi0jWaHX z3(H;?3B(njr<)Df!*vh1F$y)38$)w9fgU`)6rgA#2ruIoo zXGM=}5R7l?SgO9+9aaiIE-PPO)6tDQJi~F$3KDcO?A3Z*epGM7%{tX)Pf|b6?Ik+= zd8$QNw5|u5RNO~dVvjYWYXsx3h0a69F8TDpG!)2eOnt1Dbx9SQj5{)Y2+HQBB z`aMj3?oW*tdty{_gsz*gI?YQJmt#;fZFzPe@v7cmPb_NxS8!SD2?0$)P#N$&w)8MN z8dqGRFTI>8YKyb?+ztOQrgwt5)(m~f*q+)Xulxx55&P7-qW1aBNGobj%Mv<)voe>w z(ATX!qms~)Q>NoXHeS+!f%UTkmhGl@vt3$e_6H?b`{ecg&Zn2C_a`%WrO02MTwvCF zoey(tKbd1b(HL0)x4P?L8Jd)w$=8&g#MiC`l~FD^vR;qY7mGZoJAI=Y77^GL(SRG( z;Y0?ldgm=4@VJhdB=6#wkFa;^!;2;on|aUoahTH})tLEVX>rXLmVB~)1y(2JqE^xO zkV)yy7rxibS!yW;@lbe|DEV z{Iry=BYG@jTlkGyPJNZ;;iAOS}!gR(?_qIJc zqdl#WdR0d`{C<+DNNR`p9z&?)X?NtWJn_#grX{C!rWFCV2A@S=JS2R2wc+~8%2#T3 zpbXm4CRqP8bFXfG|LNUD!}mco+-2!XYdZZc1ug4SDVOOlt_3kYr%qp%=2bX)vz}g@ ztXf;sw^$694D|G?5m`KTMszbX3%7VqBqw69hYaJT#_2$p0iOXGO8Cw0itfq`?tWTFr35zdg3S9#9XeKIL9T*laHMOk9 zy;sMuiJgQGiZhh|XCe zltsy_^DPmo6R{09_iBiI>Ll$(AGK0*_R^z?+_O?cOCx3zz6Y#0@sTN@7?5!_kvr{2 zh^d&@MaqivR5HJaGO)0gALoshl@WR<6p0n*XN%fB(xhx^;uq9m;sm5g&0iC(0*u%L zlTq@S*$c9Yn5!p7H88((b8E_Qk)~J&+{aYnF_M3xUiKOMutm+vDsm-}e4?%{o1Ile z@@Q<7+s$g!H0lPz{pf8d9w{qU?Hdg%ZEH*s`Pf`t`GZ34%|JZqxbnihv0NcFsAI}c zj9H50Jj9V?1`(C&(cI@61v=7rcyD7X4>w@QO3fdv;$MenF|y)><%~0;#c}Qm8_Quc zzKvrq$}}rvz$&}%ho=LHmTYmm|z)5uCf)EVPH$!gyh9=jGH=Z*@GwB&vy1xBmA^)m11(S(t( zbT-3ECTp=K4k$5`+KLruh92AxPca5KpVmFjsMtaT164rtQPPd!y?%bj4)F&Eo>GjJ zE#sr!18?q zAe<;AG{@HPR6_;ubHbXr4k_u@=jVG@%4Rc3DK4`1M%Tr&|pDcyI{(T_DiXC3Bp zj%We>dHRC%`_2p;*7Ldc#sbJ+1{d?&xC3%o;V&%l(sCYl4xr8e5B+WI0c{~b@!IZ# zt#h!f0KCC5er0kHnSMPqITy)?Yd(#Vl3ld z%LE+RrOTYsd1g=eW<8yAIpBe&L-x~R zAcpX8dkA_*ktNCVzn^pP5 z-t)n#BoP=H{y)9>Ew=WLNHjhe%?L7xQTr|F_RlK+f(k zxY)&5EvV)ITw^{0aYG~}L;{DQCab+zr5$ho$NIo81p8l^D*v75|64`?MB?f}Xz~Ar zU4l6P31|Mlll?F5lKVGz$q1jf|HUf7WD5LNxNCUG4tau2`W(vael6d6)d2g2C>2fq z{J&j-Jyr!vPp$_c#{c&|6!^Ul`TjGp{}q)j z0y~FkbNaL@UUBZ>>{1=YzyPeYF1>4)c=)m5qsI3@QLU`a@XS_B#)Eccx6mFxc%8$2 z1@?GHtM$F%tozJtUV5s67?iD6@KD)l#VzAYnLCAA`}OrrZ^7BV@~?CD&Zof_M+Jr% zewR%*m+Pk&hq1EOdba|@SF5yjwLg{~Lwzp0)djc8@)cBArIvH~Osv)P<%=fiUo?B$ zr(8_EvvnDlW)%hhVCU)0=4NL?a@~Q~eH8h0moG4(*C-_{V$V{k0os8%M3rMkx86K@ z&X?Wugu5h|_UhdyGXqD8oQs#PiuUhk&xY=>w)t2+R64GmwolrWc_})y?8;R& zbHuAuXn5t7SUe+JBUxN6OTA=gg1Zad=Rf6LP4HZ43nt^7o*8$oGTmF7tBY$$1{pV2 zdQDx9R){Agn;zxFZbKth*5#sR-!9GaounJxz@BBLQwt6=jl?wzCH&Z%b~R|X) z5L%>m6&3P7yxPvKrQ#T$R^o$P2MXW>3 zZqM@69D_JHPg6wGoIpo|ePaDPfwByltLeq|COwkGQF6NNAhP|+8T#x(up4s7f z_+Zx0J$_b4g93l3nd?NweA#OYm(&eg#7}z9raP#_PJa1jHwkDD^fo4&_3Q9$Z@Vn$ ziNo@RKJvtVe>Y;s_`G`UB~RlRwCmkH81bCzndr=E^9%F)Q$;Dp*Nz9T{SNXcYTlhT z9tXcjabF`8IN$v?=k~abo>a6_x#y$`+d$Oetc`Jx;gwW^qJ{)$_r8@8w&W9!q!Xi}*6nZtNF! zc}={GGZu5^yXZDDC-AYf)RDa*3f?ufY7yBL$-i)K3%`OAM+UX(ao6R_C*Gy7_HIj^ z3O%izagQ?Q3WaW@>tR3o`f@{uOn%-8uSlMV1@bk2O>Fbf=%%H}HhG|Xk@oG67?Xz+ z8#BF6@-n=1!yPYj8*KCQ?k5yKe7pE|V0n#cXP0;G{Yh>9zKQ4r;!E=R@ItkFj|Z~! zE!L>4lsSETkDpM7J)t$$MgMHlbI4IPQ*LWqKwg~-@yY0fTFpu*vg}#ZuIxRS7D0LY zU@)vco3&!VHOfXoj0^jc`g2)FsE(xWst;wKTcy$@PYT)3{N-Lp+0wi>JkUu;z6?=g z6GF{j3-sZ9EV#c=k8BR1=*d{5<+}WK<2zH{Q-dcsF3+|7+Vg^(rT7OM!X3FY?RpH9 zNxp2=oqeXlgVs0S;}eW+VxtHw(`Y>Ex~#89c-7GANS*t{{ANWjJ1DI9?1n2i2bljj%*rYzS674h}J@+AL~`cM(DNfOeSHv<(I68(v@F zJT@6|c71jsTf{1&xG9$Up-TS#go%u8Sz7tvn2d%9sz? zmQI(Ar#aLH=q&B*)>o6K-7kCSO1Yx69qFBLsg!qHBp-$L%OPs0i&x-i0khh?yy4Ze z{;miZS#l^bV>jB{wFdonK0kB3;*6{|-PYzvoFcC7+7=8fv0WKEO<1ZU~$%5`?8Ct-$A z(hsu#OvI;`$+DqUW^ZFr*SMdo!KisZ`Ng{=h%^JwxPOeCLWCN-LxIEnk6#(~MpfOG0CfUTv+)-gkR^_e0|(pSxxfRiOlvkzR2^ z3JfXhY;I)>;fVz^8~aa1Rb~u*Cc@w>vMw#tSo9(ijD@26-J?O0#wp*Qq5(Y6ynh+A z0wQ^+_YyFikxB^w&E=5wkzJ45C1fH}1(27yVi-ttaRhiE zv#BE|V8`e`Bd?+6;+0ym%$E1Fi)AJwX~kNuNq%CN$&|+eOe3l0R|aI&htK#^(fTWu z(6bW=Kwr1##*E%|CLwCYL2>W{HLE_xbAlI{=Yj^lCC)%S@M9VxoJtg9Ku`S=%h=7! zBx?+(66N#Zh@%uLkYmX~n#&oDHS7lq;HWmwS~YIO6{(n~2Bheg6~m29j}%F?VsMDZ zk!swZ2kJzUc?LW7DRlcg7Iis&<5rh*APko^#kyDA1%(5KfGoX9!xJ=k?=Q)R_qCiP zTrz}3?ll}rMAFog%4T>ukNK@1F8eoRTFHv87EJy;rcjVFOgfABCAchz_9`N9l3LHR zLd)qZ7P1m11W3ZfGr>W<*u(ip==yR1`r{@c{CaAp6pRSyM0FLX;H>BUfbZ)Mht_s} z{is;!73!4FPTs5*2-w57)c`dNh70%sKD3u1AqWvXFO9JaXxAzSd!1nsJh-nQ#~HHov9Mt~!U57IUyNPw_UNiOJr9X&JH ziA4GS0IrmR6Q?iY;cz0WG}x*?-EH3xf%{&h83{SncKjeaoy_&h1~hFU7t>CW+=(JG zcnYxN90;0K1A(s3J+t}jzI3pIMzJF9DH$+1z=^~+!sY)V5`Q>eZwL0;*G?42U;fNk zwB}p1+$?~zbJyAw?g;iHT*G z=7+a`JPpi+g{bKF@LmBdFOGwQnuzD$j33WmjGydZPKf{52|T~Sy}#QDe`?^p)1~I& z_+x7FfT#WggX7_d>*7&>E!jYnVFP}^V}bP=1tqSNNC4*j3Zg{-QfB_sa^L~1-)|Eb z!xr*ilJMR(1Ru@^>e&LL6Z}rJ1tuLT6a;MTTtK8@7%`w^>w`kxAZQ1P#KK5{gO|JC zI}pZaTYfJBA}7b6@p8iTZUE8tUwe~>ll?cKMD)Mo{e%0#4znPH`0xS#;naA3^LlWD zC?X0%4x^?*5QNS6LNsAlpbv3_gAy*d9_^`ilMjo(7%4#6+cs(A@KV#E}1;j##;udJd zV9;oYDl8-m41(*=AiA=^AhgEgl@y99FebC8P?;cHzzgPxg+c_?9|8zBX8W1?jdFIrX2ZA8VI>1wd ziozA3ETub?4k{{|G(TIGj=J|`qyu_&vI+VE#U5w>R@!!b6IHO}r!4a;Mzq5K zLj?o&D`ES#QN?BRN(=_Hl1};}C9(L?pd=V>{gkbT#Ot*5`6;EFC&>pd9^&Jd1RNPQ z2-?Pp-7rpV7ppWXa=ag+Ws*sqlBAk=XP1pS&5Kl_KYJxne3xrgxH?RMlxp*Mw!FIB zaNk|iK~>>LSd?3p{;wAmLuXBz!`CiE%FeS*WR^r&`U$~vjp>-?HEQOt2l`Pvc+eje zCxU##A`2p^J-N*ejvx9MQ>M_BvzEn+xwW;N*<@;Vv@^KKcn;2-hOf1#L zI%dpJ575gT&w54+PK@r04g0p3r(Ll#|62V-($63Dp1Vczn2U?W>(L7m%?~K0Ki<)I zL@^tb%&-u@YgX8hk)C6g8BWw0iN=PyCa#ZR+L8tHlJR--8tPbEqkdUoDYCFBC*+@t z2_n!hpmGZgp1YxJ|3L(Tg9S+KW6#CeAJ6MT6KJ#o?PS z53%U9FV$5)JEub;knW0l?tIcb#WhUj$q#QH+jMeo=0qtPLMCM3TRrHD?T;yjE@p=) zarM0Xs{A}@%!UsVJ+_`;6UQd{%>BuMDe2yfnN4;6$Tq)Dd15nNMk;QfkuHVU>W*#H zw-a98NQveM$MyFX3Sn_H2d|2Zxn9$K>Y$@LoPs{qj&q~JP4AzqX(Z#Bx(*ICrtu=_QZamaE2V+Zwh(q63Wvn?6 zHLcr~qg@?h+zd*#3`D<(&oZaKrf&V#`{AAl!P-nm`SOMZLkE|mqB+A+`^K0!hU28k zi&31j;6an1wDF<9%(y5f8RrkFm<>Luj!aFBZjvi$KNB^-?ap9HaB6i$FQs?cO)jv$ zI-oqPk1;gAKAuEz$Dn(jk+qRrWZ*@5?_gLRZ*&vU#M4RcyxE*@x`)zm`Z2an1^?Q|3S-_Z$HMr!NM=sKBnYwpH2AZzHSH-77lA5KIN5qw->a* zEBj#5YQA^`S~6qK4U1nFl=+@?hf4;h;bEt7jh4L6=-e@kKJQgo+HT_wR8uAP;_8L1 z$ad=XLJ3=h@72(j0(BQ_MB&fD0?Xk2g19!rQ}oahbL)XfpLkp^)T#m7s=QahwS8OiC_fvwn%KP{n?#IM#8YqjX~9J~|naT=4*jka0Y75>Z%~csN&N z&?5^arTEVU_%69_&my}`pfXH9NZ-L&T4aKQ)_!&O1++gzcd;6BSng=d6Cw0gMo&tN z3Q&GZL^$9PDOA((rocG$%1gk))WnZpYvDBhp~19fyjKwWLT0|dapZQ^1KP(=a{UB) zB9VkD-4siwt$yl#;-6BNmg_U{)+b^OS+*B+qCocyML%%hDq`d_p@kA}H|G$oOe%=l?QEX3yTXS86T3Yw? zvi@n0x!yP>QRK3F!-Vg{a)mp#=Nf5-b%gb)rD?Nn`8@e{zNB_9_v`tr<=cvhh1?u5 z2flf@l$a3P*KI7=H5C%Son5KblM>2@=pq&K(mER@`JC$8F9Pf^(p~DUv9)+w$#sEB z<#hhFtLdg+!-V1f^zu%1Ov1RSgSS-Ommc+Mk4UGRZ?-r)3SxqT7D8$tv?jh}pM7O( zc}`gF?zw#e!q<^YH~m~;BqRI+-bziMHQ2zJgS@d_+(z|)t62JtO~ApZ!}-n zk`WP8_@`}E+MvT}sKCx0vE(WxmghC==XUjc)vUzDvfd=K>JhwCuN>Dka?R8I;+G)D=sg1N>HHYd{^nM=zg#6vo?%+OCb`{nYh}~ zJOc+B!NiUQ5{o*_pVbzrL%V0rt_sp5-|y}>@z~`3dcpJKECjk&rPjQ++1%12>CQ>Z z$BMR)&J+8n+OKJS)w}zEcj!=+OHP!di!S>S{-{Cnxe-^NVsJN;h9VhXJ>l~cxzGnA z_m7FjR#Zn{1)rP93Y?+seG&-oWf-fRzkP+k-fDQq<@Ck0rKz=Rw!L|Hf!BvgEhzK` zit0q9E;?we=zRu7ziNNGwjjzGT#dgW{%qC&-zNIy^5FssWyYRK zg-Msm)nY&5q*nK1x;F=GSPU5kWCi@x#p$;GvTRwka$9zlP})xVOc&OS)499{RO1{W z_H)UnU&BI`=taJFdyA)%;Nl47D0Jw$q*Eu=uzw}L@3S~+YuC-GZdFI00V{bTv2vMD7Zr?ZDq zT2Q)eJS+*orv;tENKdTzElU1BP`AyeCZ=Sh3BFCS{%@~ zs&rxft`iL@2Zdo>VO2K5OEzb+bA?t#!x?GOzYtor$9kT*c2`&u!`kQwV+!Pcktbp<@&;SQc3 z)OezfN?jO|kJF{g!`<_=yEu!9Ry!voUshZi6J()`f@h)BeuE{caSY+`M*~INSeOPh z``M>ESDDfafycSh6f}*6(&=6NVAeA0Y3Y9WOHCGfJG}f-co(&lfy4%$gOAa^jJiUa zA^_wEG({sX7C;=pnFK|O`z33rrFS*9<)Se&6SHF9ev2ec8Wm@^Zp~5Rp6q-bFI^;n zXquUc!a#sim-w;XOczrTgiW5%Ls97pzo3U>M1u^6p9A@M*l`1iMfz}_szUHr-R~6z zgp=cxNNFBXgOq>ScQPi)5u{XXX7LJCK`PDr16sDMTSzazkRxz;fNX+Q;u>?g;yYcW zBB^Np)~N(xbd}(t{R)yG4X8FeIUycm9UBoEq!@$?B5B*kA%;T=rl7Hzt=M|t4>`Yx zv=ps$1o$(C5liamKhyBnDWR{R{&aGGXf%1sn7h)@dMqB%e0Pc^yy+>?7qEs%Af@8P zH3~ToyC;$cNJjb4D93z1Lt^M|7gF znK0`sf#VYTQUjclp1@N&js<}GRvM(U$Kt#he@#A#@Iq4E?&Kgj z0MB5!r&>1L_cT+>&g3O^-52_}__G}=Rrl4mCNCyMo`MIfBbC%cWddgI6uHtjwvI^- z(UNqPxYDbYBdFR&A=db7+Q_jBQH$hx!BbZ{->ImVq3KW+EVd1PDVGBlq>?)NMR#(r zI4C;YK30Zjl|)6V%Rq{_o73xcM+2mqd}>tJ%P>O%Pc!O96bJ^igBl681O=oRghM{_ z2YYx2O3n{&Hm88KneCP3W5TY>IF`+=yM1TP>}hTNekB^#YA|>@E@D+zxpXWzhz7Q zVX|@mHt+~}{-sgE1N2OAsewch4={mYBmZa7fog*+V5rje0T&<#ECrMaxc_C{fmTyl zz!JQu0k%2F(?$IcM;$o6fO}gTLbD;cIGFnrEQfx#m#5I1F8Q$+S2LCg>-%e~E9{4o<^NIirvlg5u0Pm^{=nKpMyb`8QaQE*$ zg^_JRuo~uTAt|_+lyHALwEbF)nj?w*PcOYT|Fa5!n)}~_1$Z_xunG{+P1u_a2rJE> zs7@Z9Ke|dhJbzi;|8XRP_FY*>BysE{T(H<)hzf9Oj!`MV*giwFV2m3O{J2bRA=vn5 zaJnG74Z%c)E4lE*9TYIZ(q|xl)N6TocwtU`U^#fwldXH#;tR7NYKX3u07DHJ&!ZEX=(Rs6zEK|`&G8<*KYjo@^&At;&Qa2MPuQv z5N-0&1xnx)NfMvRwBn7gdTtpgP8jh_a{s_4mCTpGZ(Vc8UE{UJnwIE5V+m5)b5GBm zimwK_WjE`Vt81hPQI>9$$LDKQ{YO z&8|t1?qo~OK;oh188hMVIW(AT3?bh#q@bvDIYOip{2eL#d z%$3kU+d`@NLkX^E1Y~3-)}lAD?{gyircULqne*pvamfTklG&MfkM%Y^pi}AZO^jSm zEM%7wA}eZbQx;j(l;QI!+}E%YeO*dH-E({%;7@4Pd;YLwgO0GBK^eKBxao4$PBbvL z#s2wb*@Ta68*e77!m8-09y66ImW5p#EqW*ubb8usXQ|69;YVwAgJm99*JnbjX12{+ z=4q^J;`M{(t}SBctkTMF%W^Wq&w^rKIL`~b^(KCJI{Mv}xeH6KLO-lZUR8tsAWGvh zwzrs#YJ0;qF>k#s;%mh{Rh8Kxsnm#h!la24%d(yi9cjibg8_sumS_A&p1o6%p!xQz zB@UXC8TPPRuxa$Z6p8U`KR^4R7Mf16 zf?Y&oKSwu2XOcCXsCMdlx$Wn~g?_Z9m8nlk|B|_UK8QXU{!8{(aS0aXG1ZzO2j@q{ zhdJJ24W?30Qw&%pUCfzp{Hri;1zj|`4sPn8J=6PSNo;7H8Ef7JoS8=_%?qM}&xb9Q zNYME`tjYJ(kwtrP!q9WWRXbcSCTa|=Uw63WZxY-ng6 zx~+OPgtD88B)W9ORN~z43Z26xCBw5yhT0pBZec&6EMIZ*WQp0*DKuNz=>76$#ki54 zL^5NkQkp3JJb~S&#G3cetX#DX_i74t52ciACzjG?EtQN(tL}aRe^YQ_V|$*p2UNmm zv6Jz2lSjm};NsvcK9);=J9{+O0}ajg2^9fPzR5> zUEgD5^N?Mbk8U$i#uZcVAvZ}$x*3|#b$3$EDO3Ks*xJ+Ho44lJ&Gnlr-Ljf`_7Fd} z?5~^OiM0i+NnOHI*aBD7&%17spmg8S4|Q9D7QRHt+?bx(NO*p*GK2{_IZk}%{`@*? z-YU0i6KQ=uXLtJpa$+kdRgVe|p7(3cATOPUrt5VxoDS6IFr>I0$+*5-4FweEM#uX~;qF6Sf zyFPJJXs+O}jAI(=F`M^DMmbvMsQ~R5LtxqK>3n=*R1pNIX!x8j&*aSJ&sL@~PkdI@ z9?FFfwpQh5P1|$rpPSfl(E@O&60MGZ)Q;LpEa#y-9^))JJEe_YbK^<8p>KU|na1=9 zUE)Z*c$&tu&soFzJaMgKH4{4mKmA3s)IFil0K=E-ja;mzJt@3) z^L0104=wrJ#|7_vp+A%4VndrwyWJ|~5$=CMR`$Kz)8vSM(Y4g+`!iwBXzsX@ZFcie z0Q5En-0m4u&Z4s7+4z0udy$FtYR*XLttQMmKk&#WkM-e0<&mqKFEMOtf}PJ7I#DZ1V#`SR zO&t%kVQ&t#F@@t5LT4x^jVu<1_T~&u=xmnaU#oJpJCOg7WJ-LqTMhNXp7J3b`&_iV zb>Z2-@j|hb@@{NZ&*u@_5TExP7MR?ZO?iS36Os+E3*wAR**kWTKOws$-r@Qv!q8Sm zme~?UXLw;m5?V8rRHw;NziZ@vHErv2d3-yX7$P0bG*6$9qu6VrE70rtY9OeCztNSa zQ<9<%R{W08^{q7SP+<;Ku=bU-KHZkM`6OY}E|F%ZH*ZeH9YW&LLJOb=Guaow&(&nZ zs4@P4Web%pl>{I6HQ*ROiuVmBF-q3rx2$!(G*^u80t8)EP^M=Xp({4QP-HmdDK7*O z(*h5)=dzSFm2T5`3u=*3hy48$9;N8SG3@odQZ?!G0~{h01+@zUl@`&H%jC^!QX2`* z(~uQFxS?C_*h`C8JqEQT?5PL={6<_;c{`-Z-~Ew3gLeZ(7!n*ytvBH1cmX*iIFr80 zfLN?f9`es5?=a;uk*ACvEG>Gq8=K7Y0EvdnMjnY|sFX?Sz|vev?oLoLPo4(fPFbM^ zj=eclNyo~A%cdWp70`>3{=y3oZ%+*MyPQr>^G9$*`6i32O%YqCB2&f8;7&5=?aOByy1VAt%Pa2qul4lrxp;_+x#lC&Kp+GnZcbhE1pPB^HqfZip-u)8GHhbr=Jmy666`{` z{$r5j1bTLqFhD-C(|+yQi|GQ&B%|Mm5mQLi38-6Gs|rm4T-k%sS4tb8_Kqu+Bo44} zglGgvPUe^TY)Iy$bQrNiujI1FK~ALy+i~fpoSFJkv;syP&c%H}UqQ-2|5t7q`1oJm z_tj<(`E_UxUkYrKz$!|zUzx=QIK(gFr4p{cnW)F}z{j9#+;U-=iP7(Rd(a~a`eVn1{$8K}H0 zQv=x`S>fmz^*DM2u;_tE+fbN}ss&s*CKk1e%_{b^r9^8op)}nl7Nf76!FWAUt+1`M zknY<)f0lz!1+?4qCc-TqO;2ZWp#pdIONU+dg7UJjkM|{2dJ+{#{phrJ=??Olqy)RVs-g2?xm1DfyO z#}TkBz-`O?$6EitfC9chcJSX0Cw|w!%~oL9^8PWXd3gW0t$BF=2=HUar>}|L~jEeNH z^9h*yJuv1S8UzZU4Ex&~4cpp=&_iS$abdVS5K`!dm?7}gp4Y72LlLK~1sR`(dz>EV zEk6ixiFu8K_ISy!>3NO{-x#vj_!CEz7ksBDkO zt@;Yjcz7-{WC{9Dw;weO{FgqbDK+V$auslR{5E?Nx1%VRQ}>?j;5=WFc_M%g%=~#xp8|KVSjnlqUl}J zM%9)(l;bK3-WNPOlX`ehS?^pdk&_95SKs44yx~IJSQ{L*DaM%Xg7k z098A`D7)duI2A$_rq#iRWA7Ou^}A+d?zV!XAq8*GF0PIDYxW)Md~b!ywMuKA+%&7m zW8glF))?dI`Rq!lL;T$)^;I{)6q)&|5PR#=4K7=)kVk)`$4-4GEJxCF$x{`{9p?D3=)}Qb_f;PxVM!kFai(wNBb^h1BBj*s4aEtE8$_NuGa- zdnV=6U#0(0Onv@1Ji!0q=NY%W5X)cGQ&;CrnLy?zGvQOiW)T zRDI|P9o{Q&&nfOfdGd>|ApK>v--GwN)=F0enO+9^XANeYci1CWDZZHC{ z@8#EbDV2;%VXJ@SI{%0qBY52HsP%Kn;(hzEwf&>|mQ5<+1q*CO>=t1U+t zo(dMxtC+mqLj2Rw+noZBg_?k(H$rL~#jQ2i_;)M0<6@6LHKAyBTh`NWqH=YIZGC}~ zDcI4uOOzYbJ+}W9G-X~`Tbe?o-b*Pcr62e9R4;0%V0cZ$a8^fDC)91AkPbH$|5KGJ z^~vkH&q5zL>4q$}EbF9v>;-6Sncv%KoDdT8sjHCij$lA1zPh za`iK>4}HA!0MWsgaIGx2UrNnTSp9mcbkM|5U8uxf*A?6A$po<}-zAz)3*L$2ItIJ$ z4}YPCp9wi!&d_v*;i|Q#7P&lmzc*3oMt^1>;l0iyF4)ppOh(yB;zn!>vpIm!LTz(; z?~73Mqg|NaRazo^GgFYIeK~HPyoW9TZG_~FaD|a|tu$?91vIkx)FA3CPgT8U#YrXW zss7d&YFJx5AWs^-Omm%5pM+gB`Lb!#!Sz+?kE(v^d-W1$?C z3|h1Tr!fj<*Gap#9^dn9QI6YFIVa_?=q?6BJCA+$#KjzDKa|4Eo?kynb9pRizbA`2 z=$-tLD0CWmd?J=+S7=L7kO~G4bd3bJPhG2{L^NAmR3h#`a#I}DB(#zP%-)q1Zn)3VbV@njfXlqcu?w0Mb>r4 zTzZEg?Z>iLxBCO&aF!FrlYqKh>=)%7ls@n$7m~9x z1Db!a-6UOQvp^hmVIx8S4!xr@11{rX1DR{^a=G0kX41UBIJ%D0F+*SUe0*^o@A{hJ z8~+UyB&dAn*idr(Jsm!3l>mbIG`TW*Uq9Zses#OyToT3>gaBk5zA4tg2Ylr0^C@cv zlO)+q2oinr;JtkWPZ#_>QIMF#3HU7Jal;l`nP^a3Jk@F0-H!7=M)wV+ z#@g9OdZ_XhRup-tDpPN)DKUYZulD`H(k{pO&`6x1R6a9Abi2iPl55L*mTt#+rP0-7 zz&N65x=x48HTK@2wXSk5kUOXzmtO3)FtQN#uD>PIUA~%hC(t51Lh#qrWO~ za)>+F$W7M7%B}(L?7|B?0yKgJe`-$phD0Q(U>r~+&D2#6e2LhAn(z_@({A`Rf|`T& z4+@j4?`w*(t4w^<;wbW<7IAqhw(#!Hq4_j4%xZ80dysBfG~=BnpzT5%)+~TelXNZ@ zLLHIH6(jCqBZu?lOm*H(lM@HLMHP{bk2({>PDyvU5!QSHsfHR~O{Ni_psv9MP-b?8 z*H6o+I^I3Sqi#^=iYNG3@gN4{`i(qLumK*#J7X1h(zXXC?S|uVKkkMhnjs!<%bJGl z0NIpk$)BJIaT3ZF7YH!)er&F#`c$Cgz3odrR>2PhCX@NYz{p}?*e zCcsGFz=aMa$3rsV+aej=jYRCdQ);(JK-YL8#7|3qnA6@Cw=1oGXJ#ll+m6cYAloj} zu0qL4F?wDQ@1(n=Yqw7B6Y2(V_C0kF^7tSdT$;*7^Tf&9HdeL4eY&lX%;+G_8_@|U znwaA>V3Diecx9(@slMLPS~sP2U}^Yb?;NMg+eZ(jwgXO3N1;p7mC61{8odCQN_h&Vum5Dk%#30(>ZlvT5KF-W8BY}cvKN!J1 z#3r6J9n_ETVo-A%Zy)VkuQuollGqe}rmjNZ14s*~BozlsUy2($XA^eR8=@h;09k7U%Qbr983^O>BWe>Wfqvsb>Oz}}cV_xK+ z3MqsB;CXs|m$piYG#4lI*Y$aqe5==&xZ(b{QTXWJ7Y#qR{E`wH#>gr@JJ4)NT61T) z`}Tdi$PIRs?i9k}U$zAApJ-jae>>ISpe=B!-Tlj&fEC_DqJqat!UV^w*H-hejjUYCLB?cvJ_Oy??Mn-5Zvkb%9U!@1Rh5)Q^s z2h%^DKJh=Rh!*Yrxo2+}Z9-~nIC0P3P_J^6OqF8#leW99^Kq-USMSf;sdcr$y(7(J z>bdKi)1Ei3X}#w^)3;o`6z*SKi&B4t3VQdTP4E+MztQ`)=y!X5xO($rb*W{D^kB-s z?_zhg;Qhpxj)LhZVhBO^YKPgpJ@FgSwqM&v4X}>Zq~s6;s63bfx&;XT`3(I zJjHlbV9)P(8inCBBDn9CsGOpJ6K}2<8T#masgxo~H@LuYmYAj7E5w(zcd)))y zIhz!Vp(JOq$Ozwg?V_A%)P>i~9q6%*7<++rm3J&&@23Z^%MvqI1ZyPlD^cnrZ`9{~ zU@fQLeB`2ESmEolWUSLlt#)ofE&c!4`s%Q%`fY1s(=AAMBO%@0odVJz(nu*Cn?^u7 zHVx7s-5t^m(p}QsAOhb)-*fLd_k928+`koj#eR6^oMX%}z!`Tkh%rY@erCZRbZwFG zuv=IMq-o`K*hi~gHhTrL`Pd4Q-a<|wnuYeJ`sv&~=^=~AcIKkIaa9#^IxQ>*$-SaF zr`EqZR*SpQ_Q>uH%__rt$Gcc08tOgFelm%+Eb!W;krER8Dh^2e0hlzlSZ#1D9!9{e z^VYDxA#M;$0mHd}R;i~Xm~9g0d56J_59n;YR;J|L%kZ6Ju0EK1`n^E=a24`F7%33b z10op4o-^TcI|AM=j)o)T9L6$(nucrWypD3VB}{N`5%gU;>FdF>dz+$hbMN7m1Lrz11|AJy#Kggg?O zi1oJalup_bZH~1B-t3xDSD&Tr@Cv#wc=PV0(|Sf}X)bS<8Zk5srtMDng1>DBjJtfY z$ZbHjzX799rJrHZrX#87W}4G)EZxhQjX-#cWZZt`P>mN(Az>t9%1F6OCc7Iuzt`Z^?Q%7k8-D!}VdDRZ-}&@Z4+J2*fwiyHT5Z5LOtF0`xt^3kDPp z_R&QWNj9CG3^sXxG?V?)MfF|bsc%azIbeyQ+Y@MG^>J@XdB{Elr2Fa}&js7t4n5@6 zeBqBo1t#F6xQv(e_i2SXJQvhK8Wh2K%@Ru9-}Re_+X@!2-Bb7)L@*goEpr+Sq}(nc zXEl8SdG~rg!c7b&*Ta{F)s-e;zj5W(z@9fn^Gv1iBei_q8IAV%V?`~g)eWqgjYDq_ zQkY!@1gO?D+#r~8kH&K;RJcEy+K7Heh7ObNiNZlTe+thk-T*On>8A;TzevJ9Okd4Ge4PA1i_M5tDQokL`Q_H0a7;K0k zPmy03dPd2xEI^tNHW8Jhj(a#@QdA8`yBlww7cY&%4}(=CM(2P(oy8$5KUk9`@YzH0 zWyL_5wHSuzOtDzh+80YP3)pv4yQ6h(ubFp2w8aeA9LA~|w8{fgz`xgPSN$xQl1jG%OE@?ruQl@2YXWI?(L>);LnL}{hu7SXVW>8ub=1*K#!P?&YFC@L@4)J1Y6 zgyAhn4v?-a%vYlDf6MhD3@KQ1GXJx2L<;xTW{R{@DrEqvErM|Ip86$bb_&U7Xhqe@ zJbVfrIhx(~s1+dK@>-$^KLxJk5PpK+)In>4t^LA8rf9k|m4)JFF`Wf))};S(*7|it zUvTXrmH>ix3TtX3m~Vr#W@7s>D7O2?Ye}%GIhP=&UeBwbZco~mw}z>;{uR6`5WAz4fPo8-TAM~^h^8A4Uv7oXagnBgYxm8~S2Xm! zl7A=cC&guUj^(c_L-`aY>f<5~{1l3vsbvx83J0253+2A>Mi=HQY+$2u8OR%d7|&4z z{Wy>X!75LsSyzw)Ofp~0>Cuns#?Pd(HQy=a5!KVROWhY@qUD7+Fp>c2j1z2ph1@X# zv*%1r>8~M>9S!!Bz2tupLs3kkmX!p?RZ~hHjG8JU@W&SgjOM96FCf8jBmF~06ZjVy z4IWkthjIYq3J1p+v8 z*j!-Oy0xk2^z1Y6M0*G^r`drI0u=y>%p4=P?+tXpOiaH>I-RuzP7;-5ZI0^U52jiU zr^()HoUjv_#$uWt=vrw3wVJHWWN61!QOCQW_+Ityq6Up#de0R*#mPyq9c3HL3a zY=R3a2hvOmL~9kLZIMrGka0Z_5d*sd3P1D%86D2`$wT>T6`zSns(^t*1E1;9Z4rUD zPm;Sp76D!&T&??)Uje<|7{IRSCGTHC(!VpSc-j7>SEB#btorALJxnc1RjBh#t}pv~T}7opAvx zbI&V5WFTx{jtU0_h&%trs?YJm-}uXO%m;APfPMO(W9Ppy2o=N+1Drz?74&RW?n?p9 z{tw^jn)RQ~E-W7_DS30-Yu)Vc#YK^ zWc+&d@$uax-uAoKGlAjw2#L#Ei}paqMHui76|D5y;>+eG^4>|(%EJ|klOoljp2zxC zI10BnW%1?${(<4*lHf_=3R`RYO=EmvvzI3AAUC+pr}7=i4x6xdzDN4XWSAG&hYaUk zdTZIA+>fMjy!G+?=;k%qs^MephZ*1c>+@M4JXdJ?Re$;Gp$DqR;ZB9%W-%yR<>aXa z(DjabZN6>N5fozVpo)u0g?B=gE9I=EZdvlhDw&0Y@odXj`Ovn1_1)w3k#2*w%Z!V= zO-qLurT0etW2kT}(;-zG*ya1S4XJzW+)stH#wDw_1Lun6oMTJBrkyPIa0auLa#Tz^ z_08-Co66b_O>o71#sY?XZ=`D+^5Wd+4|`*zMxi-Z2=Lf%#=02$$Kh?k7Y(^i;N@-cxNmQmM~CU- z&(;UeNt&E8IICBYVBMXeg$-gj93`{x z)vehQH%$Q`v<9mW+OAj$7g@+g%0_4SEd193pWCJa%&m0P|TO|5$-{}9^;_Y z1mXj$F7J;)l~KQ@qBM1fSbm_!wK1smM--0tu|$ezbSDgkTe3iB-{6=(zCd98v@L;c zVYxAkydCz#`}SjIJ1PI&6xF`zNq^vip*kMOpFE3GerfW>wS*rW<3YLRhi5W)PI8UcgUqPHa=hYq?%MH zlIqf5i z*bE6&6@$x7s30?!eaS5ZMhy2!{p6?XrF}-qApQh}yP4K6Qu{k^td3bZeF+kDR{LY8 z+@*`wR`5MlqIMa2=6jb}{#+MvZf7PH{tIVAuRa0S9|2`T&L;LFAD7{27aVbEenOn) zD3TVxERA{mD6b;MZ?^ONVWSiMk@o)O>twSsR?uu6Wl= zMXazwgStuPnbzGky;;K1Ho3XfSMM0f;dUGNLJ}OjtV*LL8N+iw(RNI$53^&keumiC z$0In)Tv5ux0`EK4+V{4Ac-v}3+{Eq2{X!G|%-5ZKBJB%BgU;^*cqHEy-zDe0Sf*i6 z^&m6Zb;(2D(_ewShD-aH#+vaah_Ao%ec+COt zM28DDJW(oQ`N&kfGZ6Q!I36LIRC@*Ef(7x@sTK819_IN%p3AwTnfT=H@)K`rNrK=U z($I-nWLUt`m!?-N-~4yY!pBPH*ee99HVB$s>l+js>@%Fc7qR0qqA2$an7F7VRLaOx z#5I$~l&U5Vx6aDT7nA!?jDNj6?bhHcVc$go6N$)7Ew=1`EwY25t?IDkDQ{^QuP^Or zJbKC%qP(dou+ZQla}KGu%qLd)&PKbFkc01>p!-Nf{NZH{m2pPbF?~Zqy&-3bsfRCb z(CP96>A7Wj-a8`0derqVP}cD)*jfAc8ADDoGOp1wrl*9c@KCj|z9+X9L8;AkC8Itp zU^)erKs0+81$8)AYD(|wWh~}>jGqf81*7kz?BYywT7-O_!8YK&2Tcfj^z^mv-q^N?zFxdu^N|EeHL8{Y!-83(rF=t@XwSW7lDLq*YJQ}Y|b%VokEMSIj}X46QoYo ziK)i;BFhK@@F8ax-f5aHN;5C$=fI~z@4nx>P#)>hnB({JG{idpoaXqAX)&SJ+0G3= zmaqhzav{GF2bo+jV8nGg8s3mGy4z|uvxof{4H^UwuIc~X-TS^e#0esg{_ zvhzdFoMl13Jl_;*)WBzF5Fi)S{w4FNL22ETT1TeED0ZDWfwz-|Z!g;`GY9O6>uD>S z99TdH7x-c9ATTH8_smLH?Ry=#fH|#>cQ?6(F5O8SET;t&f{t*&D5DrUiI(Wly(CvTloJOoba5Q1VXdU7~Tl`s^qsWIjDf)mCn zI~L>*zSLv5t3_foXbEro^mu{O!?a8|0I?EG~WXdiKN?)Gr=kAP`ZGXqYY!QdNr&_jyPkhB- zfrgewpDj%ZvPl@}vbk=-xu#A>5lcp&mQi>_swoXkYDtZqw#W{uOB$GT{+G}i0)Czc8B9bdvFB6el@@_};Aw*?-VzsN@Z!?P3~*Z)3%A?a%-9(qs1$c4tqJ!&%e z%2N#Cf_r?GQ6sxugPs}e#8Px!v=Jj_B8X-s+{3MYhCFHO1Jm>N}nGzRN_}uwbWvpjo zi`L~HhzDy+k0kX6?Dp8c_zaXI`G{IT)3zE~{Xo{?F^c86ZorZ(rHZM5mjvpDVe}GU zBxN3U4@t8Fn1e}z{S1^L+lXpFgBwK!L9J z*9(sCS#?^5$``i4b~at-ac<9fE=r!;7~`MvBo12i?`R9oA6>csRBPaaoT5R~tNq{l zg!>;iqW>k6{9XBnO!AM49T(p}qZfRCWe5MaUg3Kly%2<)N`ep}awMSGI5y!w^$Qb( zf)o@ENn`^_LC#1)@sQB}DQEcpS{S*o1FdEr$TS&<4pQ|u28L$nAg?(7tSddo=6~bR z=Q#Us+ylffxmo{9{(_GO0!;y;hvDP?N1ZUP5_l}UvOv{B>v6o`*liCGE%*a@7{9Mc%Qs@!t?QdZ||ya zGP4b#5ebBs)B14R7pG*Dl-jC;ZQsdTacC#<*zn-Q10TTlo2xaAEpn1Ezn!M_e&=<6 ztn?h@^83zfmW9jE!bls_lID8P3$S<8W#ryN?W#g((~x$TgF`Q9rk{uj>oi1(TCQuq;RkF=LcdV0ayQPT+nN^S@@`HWc1RkLmITKjNGuh?v#4 z9XFhgUfK^840rODd3_ToB_@7jyCq8|G7%LgSbr8}0k+3hXiE~AHn|FiocI2~6H07k z&PBPYL~3SfGq}IjcVYCtT6f~odFTGLRrfIb`v<{Ph-umz#T4}`8yB^{5|9h7`in@{ zv`<+>{a(wrjr%qkX${u;;KcVC+$v_IQcoOvWu&IaU)Baz1St@2_~_Z33DA0bt<>0h zmq~(S6kf*Q=zOxk|T6`-OHB5dps`YgLB%PID(6WbTHm1*{OXjluYWd z(e(>@oB6{Mbsa2nwa!-j51>S7sKZ4qk}Z|5AE2fX0Z{uYZO=bf^ z-4y`uI;lrN+fCKm?UdS+vq?@G=2v%eHy3mEy=?CQ>`4zu2iw4V7>CWDJxYyS#8f<2 zTjU57CU0dT%u^tD{+2tk8&s*{lOVef3Cdw_mJFGMea9=lV3n#_n1;U4I$S4p38Lw! zI9im?W|3Bwz}#EcH6(V$iRIgk5xT6keAj<#`_*i8AnC9Yn7VqBE~4nF7V z%4A2K3sapP*0+3Mj^?&2rVH*Y41?(Hz|faGqy^F2#LzMXu{rrU=L|pb4^a@HgKz`z zN^3SB2i$Q!muo-3N13&uMXH>g_OF;a5a7ZduW6>m>)g0^*jSx)QT*UtHPexUrS>Tm zaL0J+7w@j86j&ItX{3_*WHy}ybF}fo)bWu3S-y(uN=lFj{43b5g>{ERO^U!P()JQs zu*&q80r7UEV-ktu+w=!DYm=2d0ib^r9#hX;Z36RHDnH- z!PZxy5=oN|A3y4Rq(1Tp)Gy~mJ3QYN-Szk_yrKFL+SfT3yp7K0?9U+vu@9sF@i?>} zd+i;Hh8n(b2j0&Pud(T$!GB+GTpkjBixj(~YOdZNAwYl7d)KzW1XY8y-ip8T5t~?T zyX)&(h>}pidTL?ZN1V%9F$fc1+06kO4H`YFt~K9TtbkL>ot<#0-V$mKSrN$AO<3P@ zb{nar*m0ik{lb!kAZYr>k1gjI89Z__Iqs0YzP=X`b7C|I(HjTC1y4_CA299^DlX*@m(m+g}G){<^>>lr+(EStu^_2XdU1L!Jq?? zKpR1r=|BYF^AUIs!f9i2;(fn1?Xd5{nU^CdXxO*>AFbX1nqWZ;FG&4AwzA6Xn549; zlpP#2obyjp4YSo=S@g)bii8u-F5e5C-x7p122(J<6UIU$K-8<^(2*~-M!h-WZ&Ref z69~hxLv8G3=9mcYqPyrAP=3dj@3i$M-uWPnF@AD21@JEp6pU5vn`*Jy` z6p~wTvwsgc^acbk5QN`w&fv<}s}55Tgv^uacupU?)h8uE4pEbeoTg_&?yvY#J~pQ( zUe7s#rxPf}by%IWhYMjyid*?wvCuToel2?=n|2AaZZ%eE=n2?g+~N^UWTFU$^1YtH#^6w>vw{;Cz^^PFv4&ZQ|)6^Lrvc35K3kZQD=S z^_6`(Wdk0{hOdY=f^~W-3=ck-e`&yUR)Mx)_zIUAdyZs?4AGr4$vG5Eefd##-P&x& zZ0~iQUUe-OWx3w{Va)4e|1A%{hc~^%lLo)ynES2j$~KSzov#S30_Ydp;_HP*vmDQh0`z^Xf2dvLgX ziKKK8_p-PP<$C2x^#tg$sC-l5u)oSbScX8oAAMyxsy~$_AKsN#{yk%Nyd{;*{1)_) zKsTO0!p31OWi+~+w49%TtsZehh*>!ynF36Ce3zc4HDcG;+j3i~h3%weAWA=$!Exwt z3_~ZEO-}9tX=OYmJxGS7mYCGi;c}jR?XD>782-%+uY+Xi-fY{17MT}rO2O_UiD}^c zk!>UDkpksG(nY^W+MJC|@{#H0@V0R*MviOO7u`@|rk(rl{@$qwnv*v)rNr`0N>|`7 zA~pQGBd`>gd%li3t*I!XRQCyHOER7^oCvq2?0oit1+Si_G**VX+$(6AYUO$OzDK97 zZ|~X`vexo4ry#>cQN^V*HeI;U3TzoiSSCfQ*L4(n3*6;Him6DB7cW!G5Ae9rF&E|^ zg1Nh1;HPWzT3uFqY%k7K17`M>gZ$urh)W4`amKaGYAW2ir-{4rKJ2-ev{Lv2yX)7X zGURrPsaQ<2yJ{t0{uHwHb5S%aleWE*ap&n_gu z#>Q9U$d9izeZ!HDL;CRz$1^fGmm#RF%0Y|EDmIdo27PH5(FAvG-5XB{cQWPMfhAdB zt~e@&ED2~~$Zi))3xT2H2r(OorHggqus>UiU-7MKbI@kmq*#ltAy#j;b_@&Xs(xyWU87~r@}kxA3E zVf``5-MCEU-}e+ji*XvKr?71y47?plq4YQ9vIztEO_wmRBZ7-`G%k(hMpE8Ei36)x z#Kk%qIEY#!Dby1c)-%+IGle>Fn9*w0v?k*@M;+lQ%%LIl*1Y6cif^iEuw?0rB-6h@ zqpJb;NG2P>FMgQ~NMg8YNjze8ou#F68uetY?XfE>^sh=JRg{t}AmKe>tO$IE4!{d+1oh3zjENv01d zBw$J*=E8%h|6q}>UkRVFNH73KHUVIyXa}m;GZ-m4h0cJ90DzGel+R$~J7_H%xt|ED zEkNvqn+;qZv7atpIPtSEMn9i%tpxJV{g0HoQ?QcH;kiA3vD`F~=yS~cET|#quPu-( znj!ky|mgYxV$k?tqHM- zL2A``YeOfCmTFPPIiwaK*>Wl@w1%whH#tFBvoW6$vt2UcCCJEz)(ji^tJWO`wNXl>u#*<$s9u;4uyy&*!Ntf zRitkLb{2R1D%yB9DFpzc;-ldM@(={f08s0XC3duiL`73&-5ZFi2H=s>7}CJb_)rm~ ztEP8k0=iRhX}Snyzg=>HTORN)oaReLoErR~sPFR@tQXz{XpO`epJQHnal`#-8u)4g z7^to96hQXEO?yTj1G8pgWGmr;@;~T2wev69NH+zg{7e_4CAG7CLpqjN|V&w3YV&%!94V3gykD_5}jM^Rb<<`!q@v zP=B>AJ}QZk?_W`0E~$4rL2#X6eu*g4AFkd%5enZ)3E;xV^)&x3Hh84*VjNOI-t@jd zyA67ChydthdC&|mx!InP(tn36x!G7Dee57U*yjM213(@{IRC*e zpI1blSC(V}T#^;y`5fcR{fX;2Ky&~v?erAH@fVML_AXXC1L}Pa!23%a5U3}Sv!m`i z8`Zuh%7y4EzN82wX-r!`@6@q z^JefbKk6-xQ@-}yJ%os)b~bSR#V@|XDDMwCHz}(O?d@M`)4tm95#sj0Z4-I$h1MM8 z69(_Nq#3bGx3#Ds7L~4SO5O=79fhf{3qSn2+6fsmB76KeR{|U5cE4zk0e;{jd+_vm z@cP)nu=1!qc7N16uyX@meLO$iLAYTf^vEPP<*?#)Q8jej;H6iucv1(S-JdDszRVB! z(g&j@IAugQC*C6WL*5@Xg>m2<>oINKKf*7F;mg+SU?d5D#M}{{_c8UP<9pG@KKf5v z!*6HWgoFCfKT)bryjm)7N3xYUk3_-ZPFv*Kf@$~g;M?xK`}IhA(@la$_Pq+}9hIk3 zJ>r08BqO5~r6vF5gMv>F*yZXxvc(4+6%)$~n?p4&pQnnq6L({40kd8d!`@Fu=soS4 zf9IlK9C+7PIfAai*!^UFcSHuhvjWqMt;t4ed+I?E9+u%SaypT+24f!wBrFAP-4$&l zr@)yM6F&Uvu8~(?4sW}BXgGf*!w9wSnQ>nxW13Lv6(fdt^nOtmoMZ2lp(ENAdRY>I z$u!cfy6zU!z9WU45iYnA=P#FKs|oe64nw>_x&2{P+q1|?(8uz3ve$$i!kr_2s)Lap za-u+25XB~M;}t)upiY&PDnJ50HRDde}U4E=AXn!Toh`cF*l9ZYoQ1U z{1?6Z?%W8fCm0q2;2&{Q4)cAq%*$PQn#JgI*G7ZK2d^K|N(pZiw`!1 z`b9<`TTOOf=Sk%4kqw|>IXztQkCBoZMz+6a6XywXz%HQs*{7M7|2~bEb?ib3b^`bJQdB(CYEUJfRG`< zN|_V6iz~z2Qr>Fg&|LcFshXxMU#THu>xXJgzZXUmC5NG_Xlzw?L6q-9jy@SRhV4}p zOj~}OM{h+>aMG?6J@olT`n8~nd3&~Upvif*bq)fnSK#5IX+@pe_P!fwq_5!Rs-`6o z36B(5gQ@DUCkZ^C5~O9IAJAZZAaXM{o8cpV2F)5o75`53)z$ay(fnj@?;lm=(=FLQ zMPt1L7qmkO4slKD@CDo1g*YPZkX~<@HH&NfCg8uPiI$yo&c&+tPKmL0b>|f?!MzE& zF`a?x3`%u_`SIz;Mp4DB+wVG_!P{e>)0}(9Z!cZLFy~%) zme@DbGR-8{B-$c3wNipx#va5jxP8+ekGWl|`%S-xL!EHEcOG4mC2$ju%}rh|dvj zoNNQv?_F#4!1mg+McaL>U?M zi8e#IxhLv8x(&0*xx2hKIM$9B9x@q@O9zQRFa7l+uRgu0pJ{pR#d#9P42sA22_D1@ zj0|L)DtBhwzf-V2KaJ2-fRM)$`?+#>C{F)a`YzO&iZoxW&mLau_)$&>#@VJs;uX1F z*fLmH=d|Gbq>!cee!7PWwoZLmSymkSUCg&<@#rIA*>h5^RK4E10*ur1+jUfJ8N-TWnyE?;;FwA`bPkBu>wHVh(TB z0*5&4^8}_78_f2WGu!Bjx4g2V3OpJKGay}(hvND$=yRsTH?%J0;I(vqGdIeh53Ra~ zc%~=SzoWl+$Jo-=;bwYyvgrk03P9h;a$NmwXE0&l1JvkwKA_m7! z1Pt|&&zD@J>?%?otIwC+(bXFi+aAmNQxoq{ryv-iSY9E5txu&%JaQbCTxp}&I+#i_ zV<~mM#gw9xxb|dyWWs_hEbYfK(!iTKv~GmtW9Ac$Sh3wX zF@!DJsTK6z7cJ*4WL(w~+&ERX#|D4=C3R+Kf6;0_>2p;ds7}UgM6oj*v3avmulL|7 z$htjDal^t=O?Ko%*6LI^8rlXiY@R-mf)_|*pJMv@DP>5b!|b#1 zWz$BRp(Z1%!qdi9l_VX4Y2$1>M5uoSYw^44UyX)IpZrLAnRfB|Xe&2xMls_n?)-hs z(|2XZ`+&nVv8ly&s#pP2k}Z6?7(=ocBrQ6W;L`{}GQlZv%uf6qvIj_-6EK+mC~5~X z&_}-+*=0dwOJ;~;ZFrxrNI9>U!VpI<%c((owszE?v8=+XK`XcBpUhq~^fi+wAd-AV zF*&~DTQWs|r^y=*GxZ>Fnrf2RP4x6Mst1$_heQ?)4(BAT65p3vm}7hc88Qt1 zFsj(7JYN!n#%b2dFlIb$B9BHsDtA#b#bYE^!S21!S7H+r<@g{^0H0!|kX0aqyTZ4WkU^=(5cz!a({ctE?^A!|8n?yaG1UG z&vJ=3k+sfO)XxwDUeBRl&+xZI89cx%IEf0x%>goV1J8e9jn$4xCc%6*k$&$8XcI_~ z!*l}Y&5j-p#(4{qRUMa%_?|nrBUThJ#x6l`nU5B4e9e(^MLpR1-rRsm3z{96k9qZZ zJ{rcRF?32XnNyULNZpuOC68mX*j3bA0{QUS*19vJBNdGyzFF$5@X9KxmiwfZCgvB@k_?Mn18hB~skY)T z`7i#w@a(|!6+S8;vmut|&qHK{yF-yOLjO5@%|A&@Mbw-F*&n?-)e4(3=}G{El)WHU z9wpBeP$v2=UvXD#nE!=8bj$pQxUH{26D3p>KRc3_xfudQ0dHjrnCeb!3h=1$NPH+L z8`wphG)+fFoF0l#psDZI2|3`UU8sYgJSWC_ARA9dPV?+D-BPO4sPxu%q)N`D6ho=b z|CnO#&K5ly_?GWT#&rd1_v-6!uE8IwQ~$$|A%AaG;j^Op95) zNZTWD3S9UZ;>2N{9K+L3vzb`T*P_omYhzX?2D)La0PAPa!?aGhzw@%@4dPx9N9!nv z!}upHb20dJq}EbXvr1Ms)6&ob4%LAmjQ0@EAVH{iGqKSyGoxHVpoua%K+b`3T2pJB z;MP@-fOU{NH@oBc1V_Tp(k|0IMu-qU02DE4D zFeBtv5|j+h4){k9{QW#51%dchK=c88o(sYx2UO=%`apHg1+jdNF%161xzDk}-*`<9 z#0NZ92$4LnMw)>5m!r%LtY`x(I2`}g900b&{n_$NH~5e52DXg-+46sZ|L3!zD1hkW z#y>Lun^Go(&;daH0sTo5NUH*f6x|an_0(}HPfa85Yho-2*;4?h%UcgOLqQFy73#&*}{N)4fo#`DWQPmcGCe}>eeE;qk8rum5f63SP3x<=#67dX7R46tAQ zGo{vAzHGW|qnA4CovWgldE(7Xv&&+XfK)ZIy4t2w8F?Wj>|Fp*m9eFT!RUyUWrmL5 zKV^nH%dj}Cf*&96%U_Ft+kcO_yoFs^SZsedJFjmq`1X|H^XS1L%C_`azjV_Vk*$*X zbD`R8d|)j3$;~Bu^Na6h$#6GPF!}l|rNA z5iKWA5?@LFN){pNzNbfmky-F_D){h-6zY+@L5*a)0A`>{DZ@ecd6O|^FNOYFkG3X< zXMk+gLU(5j{@Yngd5urU?V}bHUL6;%52s{>&zN{ZQs!72lp_MkVgl0(i3a_bf&R-f zc^bIy4pak zN!`r9jA*ZafL9ruw{5p3T4nn+W`m05XW=2I1Ei$9`gK8B9??ceujy)`;5BEEXZF|(lC0Bsw#-n(u3|y+!D^Ii*IXx8(l=wl0 zwss{xx`yj!-6=KxS`P9Z|zOI6OQQ_IeHN?{Pa%DiL zf1e4Q5{_B#Sm%FF-&aaGQ<*Ds+?uhj>>I7P&x6_kOFFc&7*mCr;`lO^_Y=l+e@za* zcvy&f*8ricOA(_8dXeReZly3E;fo1kjh_i+c2F2&>QKYM!i??fKgau8my*_-f`zXI z2OLt?xXG)RETTdy;jN7>#VMo+Yr06=a8xqDE&6-|a}BTMP*Z02EZfhG+_~Lcja`PO zgswfYbD%Tmc0`KIG&-BL0>` z5T8(S^~d=8!?Z%^!!BmpnBoHA7=ZS0FrP1aRUXo_(=O_sH?;QI}%qeD^U^$&&XM-K*OBMcs+g37ZT;Vy}D zZYtkS+n`_^kPG2AJQUQgRhA)O=hU_sJIL%a-W3;YW* z4wLeNc0qcC&@_Yxx%?YZDlEHh_M!v3@7W5&81!4ANkz&=5Cm&vf(mWwb>LUHuLFseo*BwWsb#Yv;$$;SDAX3a=Tw^=} zOY^4B_ZyOBu4zk}yp4=EX7Rn#QQ%}yQn;Dx zji|E4lM_gpGY@v0L}^I0%?>!y^u**N1ra+!%G0^vu6&mEJMxD224dRWQ0wl93`sY! zI51v!ccJvq)!F0*-`vwPV1r>9otUktYD5nEoU?4%d<%%3=v-4_wzWLp*Ow@xFZ9Mt zDpZ}?>7DIu2VATzx2@)X&9o9EzLmsqf^o}iNdA3&^_e=HBes@bB)4p3o^RNV{i=>C z(=&_QfYpc8vbqTe37{H2xG=+w3%|YhiTTi(iX6%0c8;6kVx3cdkZU~#xjyt&`Utiyi zZ+?|&p1E6+i@Dbg;efQP;!cfE5VOyJ%cNQ8*N;=Mil>OE>VNZaEv&QNpy@V(V>-0) zxykdDHYC=f_Bg`h7E}c0b1lv?_bZ!YW{CXI+M*t4AYSSCN-*7VBGn@=^LDdIpo+Au zAcMV;4WXZKTD%gf(wYL3P=RE?kSAE@DU#I~}fQH|)jojTFfkkRbU7qk3*-ttTMw%Zf`vo7KbLRGY&UwukVnfP{hQZu@IB{sFS$AY%hZ`0@Mr?` zuo3=A>>vsbAhN&K&D?*)!T%!z0c@Xk^#L9tg3rJ33SfoG0LW}+|9!>C0LXcOEh)ej zz@bSE2Z8C|(~@%s&?^upD;v+B`FXI=kR6SHohP{G&d;3si~@-jwdUv;n)VxYE79;P zG4q%usj7h!nW)&X;^IwhBNlYqSq3$n9v+7IqKz%-%5(cm-IC2b*sz`(`a7m_|H|U&n zN0^GMK?VGDH5)?KPWrf0@fKm@;b`^A?RIf>X!40ZvwelwSh@bm=H$V#i)m{I056W# zjY!k-O^{L0zN(7(;SQ*>Lf#pHIKl0oXWUG)rP;GKf)UyUxBS$X99CVDet4aEcD1(6 z)w}7uNxyIwXIB zMFB3(zFaq{OirsTP_o%3jhdc_yH#XZv!%+V#@2hEl@&73-idv93JQwAPig9UZ^ORN z*YKn5oV0eCU)wY5B2-c3#*W6;;J@AZ8fy& zNc`BaPMRIw0WOB;Z#Xn!?9RawR$EO2QkvznA1>e4JDvCa%=FB)&RwbNY##XF>U`P9 z=YmK7_{fR$%6hO;;~}p}Xm!W9NA8FNabe>A?57%YQ}+Epo{OLRkb_g0Z)EU#@|#ojwW z2>Y7YL&zSL;|=}8ZzzsWK_e>?@fD1RbPHCA!Is3_f)TBSD$7H`gP$@9ljW?UB9@Mw zTPA|IjGT;Ta*YyY2ib8bz&mJpWikuF?ZN}!MUTF&j@+QzcrdjPOt!=@HS75^`ODeE zI?-Tf_Fq+dA%jr8;V4`SYS?5Jv>+?XsIO9EhGr3Vn{fxf;gYGaEE_$vaSKlon5yO- zw1??*QZv})=;Oq!Dt%`!6~MRo#YfGnFJIBT1XXZkK)kdq(#{Nx1g6}g8r8(@t-HOP zIKr1ito$s^kCk09pIS(5MEb+=%~o{SsAy6451(>DvK0w9SPA!&xI*LpHPbf9Et#lF zLauXjs|V??1H&iT2`|X|P--r>U1)A`vwtf5ev?IpHQnFy*qm51HW5AO!k$h$A2if@ zM5%@xy+MgSNaaB~+5>(E>qmPz3=X)cWknqQSC*)85IlpshSc^<7y7aMQnT}QcIC9`ME z3eME2hCzsK$0imuw2>1Vq9Qxw%mk%>8@$W!Q(9a?9C_75bS zYVOyC6CB9ObG*^P+M`YdABo%3saqrY3tR4vDKIUu={4(w+!=Lkh23GfHC3Mu0^QKg z9K<}#xE^Y%r_c`un%Bi#i8nL8CKJY~g`|rW2xoZtO#L$T6#fJz(h*`V7b+E=ydVv( zB1+xPF<-0dk&{h@8RU03@9P*4$-p8)#KZUzB9l&gP8UH6md-}k42FAI#gXUPc=O@6 z_>^#n%N1ncguiFqu=kX3=Uy)KG~vrMzx>SMw!Wc}+%d{h+QqbhtJH_vT+>cD$(bCU zulJ5M16`iHj+kc*T#O1EpYkOP`CIbyagoDUtdlW+*ctpv9AvQlQjlB9BuCiz2}jyT zY;j3Cw35wm4BVizsXR^U@o*wyw>b-b7!tQZM)E=$N55o|C*hf8zU2uLbN7quWDM$Z zO?Wk^(HZr_x7TlIiRL@sMn%yk+q)Eh|4L)$Q3XssMFCvw5~DU7nTo=o7Z*$cBAfI_ z*h_4#umTfSz+ZH_0_u5z?VBz)M@J_<@0aCfmools7~svIX%iHq9vgy(dBoE$UicDv zua|vhmzg-fx4cf@jKd+iuYT3Y7Y`O*w|kraV!=kkDhWcdmK!K&O-1;+I%+e4WKJ!I zndLMiWv15eLo5$f$f3epl1Q6J-Jh%sp0Lgsb0m}(@N54@d!=PVq`t0(-cI1DWcYI;z!RakFMjN^XN~OQ`y%AdP~qRaRVkz7=;eIXo?;)hBy^jdIe~>q5(rxrm2Lq|xqtp=(cT7_FVKCLyChgwB#Fbszc{mqMoVKrF-n_8ZeRGNR|D)@z z!>W4L_hEre3P?)}(jA*F=|)OGQgRd02uN*mWkNN`)C2(M&>4qt&5j&DHMt%>5VOu=YkEA&1Li_)+5vL z*HqR6y7FwoG-VX!5}ta0Son{d`-Bd2ve0r_Vz6||E& zdN8S!_bVNZx>UyX3MR=^v{>bQXzx1l=S{pQ+7+C3;;HlPGQJjAqub%q2MkEKLrfok z0+Bo&_#2EeS#R9aJ<7AkWYV+r7l$!(U05Mz=vlVvS%6RHHVN8Yf_+PV3^YH(aeO*| zARDb^Fz?nj<=6gF#0$OkU#V|ZLYrv&7Zt#oXvj}g$A29*j4t+i&cZ!<1C7u9g#6^} zLYc3;Z%&H2lMYJl*JGpg^GC@;lS)>VTK$5~}-O$=+JeIxMi+n&wnl1#ctLy61th9x$50k3iB3VUKR7UL5!DhpQEjb-6&Xsq9>;u1 zVaI>F4g9KNB=!e{64Ixj;-ZF-O^0g{4FrU8)>_ai?oosQ;UAW)8b5N;DMf5{abvJi zA-@ynsw@HhiWQPD{HK)XOFI0#@w9_9@L%CsxtpwM6>%s)U@3|!XzX{zn5I z-X79UT|vfG?q`rz&>tY@82WJlPwZVQB)YK8EqgL-_;!A1}4-8l@1hMe(v0a!hXsW@WNU`u&;@`0QJa(zt5NCJ*M zdwgC3r90TN7ZDo78=ptoDhQNOwt&-cr`jMf*0c)R6lP%I7~EP@S_OWI;W+7`VgAhI z{!EXU5XcY$bq{0+^+OENJEY1G^z=s@KopB&Zy@vY1dS>%88oUM9T}d zxrcoNSiJZ5N{Cuy;K5O$=unQd9<>CQ)Gjo4_>X(^@o@W$I6ZJO;A|bXzKSB*oJZ5e zA8~PgYl>v4k+^nK+o<;;l1y9JdvWsnx4=tjhP=QE_d)o9@Ef4+CP3_;Iv}d>dl@sJ zgU9~(eM6XJ1Hq&s_8Q1#z3BsGsxy5I6MH`+&Kf*lC3&E`i5`0qR2J_UdUvsmFR6cW z64X0KXG6V)a^daI6P2qBT0y)DxKD!nc+1jcHa#p{1tm2{ z6b87wm+}G52XlZf{B%Ewh-nK2vdtq7&lOIKN;CzKd(&g>Tk}YF1Ki&2=nKFQyWvtb zs6&LxwWHz3p{T~1vGmPIrj_J~&ynmj<0x=M88I);N;@B`%U_RgA zhKiT;eyJj*ozaiYQgrT3nKlh`rHoUDQ1L+p$8bTwD>44d!_>t(?wjv#=5FdrlXz;B zL4W~V91ECI9D58v;w>rqP#l}B81Mm@yg$=22%rFOXc&3--WYY~BV&NvJS3+7rIMQI z!v_!s-^OYYh7EiGV)(`BmSIG3`bzDC%(+9-+G1r|q~2r~tAI+es~yqTY{jLWbJm)f zs@KYyjD{t@~4UGq2c!}T{y67~@a zqWT?C!L|cw!ruFU-oU=wfrwy7J|HR>ygg82_615J52YMm&~uoZJ%||g*dM5)$U?yS zOTB^`_m_GFM&Yd{(+okmmJ>o8ken& zUVFF?Rt9_XEYhKk@GAL*RfPQgw_DfV#rx|vxn7n%_50dgWN0MMFJs$%caoy$CcEv6 zxEB3;Z*nhw^+`u=#RQuxuRBA34F(&}`+ycH34au>&X=iGD@KIxlVeos#^sKCCF z59i)m@vaL(JGSBf;gt`2dAvHS5c?Tv9ql+$%nfUlI)SDm-oiNIDMr+5-T|ydhBZ{d zs*|{z{C()oGA!euP7cMEFzI{9LhqaK&Jmbn8|nMmRMM&}SJII~N6p2QuS!jehl&j6 zNp(}27hj$%e1^C$zGJ~S-QIcDh2H~c@+4L!h>gHq_Y55kdvo2pt z#3pijP>+kb;V0tp{X#FZQw^#@Yu-_Fnj7p*WlU)sNTRJ~ZQaswI<{#cb_uP^N15!} z)Yj>Iv(z|dH;go~(GGFzWDeuie&!5~rtnYI`S*~wZxBKvZN~YwM%QvTFEcTox-7ma z*)U~*=9-vpc_gm%ZE15mbsw%ewBvu-?|pRAwQV~^739zwJ3s3JDpn2)e? zx}$m2X;1A}T8G)k1#!Ix{S7SfpNpKM>O8iZ0bNosoXkhz_t^vM;w&W-8Zg zNyfD!zUXc09T;&24Y??~FYA)!74jcSuho?Z%g=!H$Y7avKNM((VA(&&f?*4<9{*aT&& zxg+@YOQ~&5WnIm_`Rk6n*eLbVdpg&wtcRw^+IvxHx&3S3GnI47sJW0JIOVY`XE*O; zUhMO(!#A@dzwX|85XX+Qo=j`zjz1$s)T@U^3*rpgIzO(B;ve@~s(8F+rtJIlM`iAI z(dRn+98(jMTWQ|aj)2D`G^pnv+)I+wZ};?dPuG*WcdI*{#+_!P@-vE@t6wQo8fAOy zOfX?`jcs@OCu>?X}Jo1=A5fb^oxWON+PhTKxPy z^d?cqlzr29w=}ViXmvKM*UV_qG?uq)^N`h(&@g5G6|q0`2PdsGS$gB+jCYmdMIy@H z7lW9Do02P{S)%(3_oGw(sV;uDI(}jzP$@NN>Z;#~O~ofC5wejpE%tIr>9Xli5(}vL z!M*0#ie#wCt(dOvpc&NiFpvhZ7@6*?%WJsYjj!ro%zbVa54I^Xmnah4kJ`HtdOXUbBf+No9(qq% z6&bJFKshLhCNkH)G^=wi-+1>kfjml)VL-U%a<-&kvD}1v)Y}}?a?^OZ>G)kx3^w3U z>2|nav%EjEoK*JK#rwkfnf01m8fPyCY`p9sslio;C}HrHh*E*7yy&I+rHivQ@z*!I zk_()!UdH;|)?=&Hb_pa#eUdjZvrtXKnJ+xvbzexnj=ruq&l(OguIx7fiOn-9|6D&& zqMusoKD?zH+kN$X_m@k@nW0>DFiSOC9%< zTcpyjhB61MjAX70ljOqdsgbJskj9!S;wQd8gg>!h8#EF*ba@oMt!_|QBb0%b-+fhH zoBi(fQ6nmx7(*k{DbmbDD*m>|G;cbuOA7VLNi!<#pb;*c?{svS%>qXKGt_vOrkF2| zspnrATuxs$TxhtuaB%1KR@fZuzQlK=*}bgQm<~soeZ;+*K61EOC(eFo$>yn-se3`O z!6=~wM_Z8E*TTA5)>1rfvx!3kb%0?hL|(pLeA#1nW}|Q}9e6YG2=|P1Wwuz7ekUrK zNIG54DI+Y474Ji9J`>Fc6$I@f_MO-%9l|q7EBLT_LNuiBt`&H==!)(96M?>R0eS(x z44Z8@Mus@b;TY>%J-8Tu2iy$*R+wpZ;zlOCIm$&{xxB;Cw~hH7-Yae3=}g-Z#we3<{l%_ zehk6w#{x;9rMZ{mJ@3Z^$uP9H;ssdy5cz#bboB8p7}F8z#|jW_>u62rp$#PRv*>0- zR~*K9jIJ~si-xWg%YXt!S5l?t0FL9$2vdzIT-dofWp@lM!b1H5KQWjQ69nb0brTb& z;^2}Hrp94KRmUl_Gt($@v;hb=)92_4464;}6g$@Fav|(HNuGv;&N9PvgwB+!h|>C~ zNwF0_sSDY6d>etql2tYQP!WV)Ox-pSxB4jiK-Q23wOVnZ4T|oIA66a*(pCQ6j_%9y zgr{}Ll&bCdtLo53U*8_0FeDyVb1(*BGU=uPyTnosd4`0lmfCAMzx2;ohK7#5IK{MW ztk~9NG1FKb@;LoTV;!yEqWo6)Iuh`ZXj$zLe0)QND_R?^+|)=k;|!zl2q7qZ*u@ro zaUT51WLPrjOi(#fXUZye2?}vIpo6M>xda-sZ*kkUA~mugfNpyjrlthBi>&XsTEIB< z>l8x`W=%?DCb{zJuCFR%!fwD&xK#qk0BGA`urHAAN`|f|q8gw<%?EwWNr05M)ZNC2vo2=I!S3}$oIMg%p0ceR z&od9MLyh(=RTMasP%Abhh^zI3)mJ=w{Ln4>wm~PygzE(`o-<8QIsj~wbD#-5oLCtOsZosZC)czEp$*D#cL&O7M8PaKHr;MHkF!U0-(jAWn-0EyqPO z=EQg{B_2^!MkcOm?pPis8Pz6hXpZ-d-filq8ArzRy$HW#Sz43`_vgrh*%T8o?+H_j zXhG&KB@0n&`cBI)iRPs7t)AVWlm2b&s3D}`0A0c+?GWr(c& z&4KnYLOgC*c^7S`8)tb~K&|K?bm@|O*P~u_440u8p3a)Sl@X`Cx;YR|Djl_Yo|gGr zxi#>#jqp*8l;Jij`BnThr~`1dr-%@-CD4mx6L{kofx(4jKPr-4d+m?&P>u^sq?Q!o zc$x2u2Mi|^515D~4$YJ*{qWpl7iqCE><+ZSEJZY6BJ0nLTLCd5=Cb^#^3(teHyWad z_te0n4WY%EGKpWo0G_RQV=jt^wVF`8ZzA=#$NUe~i6G55tizs%Sw2H?c`noY;=)&$ zo1rbnKaraHHO`cJyxPJja1~j@u=39UsEr7?iXUCDLaI0gaFLvt&bqu9U=ss}uLe(l zKQN1S@Edd`p#5jVean|wyRY%oreW`4H8a!6FWCB+eu{XxUA}O2NGALf`{e!``{eoG z*eCbz*r&?>fZBNfz|#KV+WfBh>)LStacy}1Iz&8w<$M1FT7x;LA>zgbaKaS50sa>) zKLAoT0QrkcBZUGq#N6?!Ny70%LCCOuC@38Fe-w9lxc`P=dHyGM?=Ja8cD3-DJ0|DL`8zKrL8uwp<`Jb&Z1Lkg^5ku8<{#HmAp1{p9zGB6pLP9bavm>Cj2xLB0eC<#lTRQPoImKlc^4OvneJgfy?JUa&^KG5-xpRH!*WasQ? zV&+7_1Hc?}0OF$mc~ANOxa9wMPk-0^eNTULrK(Zz{3S5r;rr8@hwl$$lZTHFc3uep zC+|Lid|>!(K%!(!7N`)GQU$!Pw)`0JnblM<*K80J2B`$$CZQrR!?<%m?(xg(zd@AL zu>Bm+JD6bmUy4>9ei(-@GCl0F>R)Tl&kn1|1=bw+-_HeBB^bB`kkiPJ_nTMs=Mjh* zMv;q13yW$8G1m;`fn3lrA|5{9CXw4G-4^k`*W{hZfA2c*vj0Jd{%6X6YW_}{|IgI^ z^MU|;P=7}&@fGw5*7*Y@0_0GN4uL3O6jsPYFySE(HO!|9*n6lR`d3~h41XBJh`^~aqu-0V| z0Sq$$37>%XcSh-dfpB?&^iYmN5Cd@6w}&7iG$A1hwucWC&?9@0D#PXYAHXUvtStbE zA?f<>GvVdnfT;}usizNxs3G9XzdQiO{C_3Zc>!Q8whzL?eJCA}@L^iRAXb$1uN_h2 z6?~Pj$YBr>90~06Fo+iFIl0=$8`^x@(oD^&6|UFe}&JdvHGH0?fKC_^ZO zUTv5-s!0dkrpfEx-=}s3JCaqZ1(&~hyx|=;Bcx~4e7k=0EJFlH620-s@n5=IFKZFG zJBH0&*W6xpbi(Dnzf#`6*bP+co`mY(-=2P^s~KTkiE>%8_a%jj`!#0DHTxOTV#>ci zuxK7PJ0qBQsiUv^c*Zl`3+bvup)Gc`5nE8IZ|MjB6mMZfgIT`ox-FUhwH?;Z7C+97 ztUh0k)3KddW20U7*g8rgQp&Dp!A0rW2z%j$DS96~P6euLCMCtIYrLPt>Xc6$o7l9h z-ZGC!`wF`8imz8eF?M=B)S=nD5B)(#w}1=A@ax4E-B-`q>^53v7W8j(&3$#7;q35b zF#QXrvNrFd9;}Ot!MsU+2%Y*p>)y=DtmCEg{vty{&=OhgqG_;;I>x8-x4Q{6LY(mj zoK7y#`3V2o(9qMQNT~CbL$}dBUS5V^_jQAP7};g3zs6$#zo_%Xns^yEilL&Sm(EK3 zQ~0Yh+X^}FL%%z3J>4D0QOsAKKM&j@ir=#(Ti$64qARB9e~5QE#=q*qD?Hw_T+Cax zRl1t_l=Jd?T})QMC#FyDXij&cJ>!u*b(6U0O5=x&$5&$EOPnvl>CBOAX3lKbDxJdZ z6KV80(u;4U;h<-hN3)v?&4evkan1RV3Z`*l{mHADYX5#2n?kS6^RINhjlzoDA4y^` zFQn;a1qh6GSq_F)}?Zwh%8T1s298=a^mZ&xg^i|D`o92a#Y6P zN8j$dYd_+RaVPf(_0N*O#10AHjuK>aRVw|?WD{hQeQ%(0&z5KN$k8r6iBs{{(K!KI z<7q#dBah8uU)hy60Z2>sWSA?f3$p4SeU$hrAsf6@8!qi3HI!tmtJ zqSCW$BdE5}_=JvEWFx+N@r(JJTb%>EY1e1Eqq>_m7HMuxR_kZHR!4=^dJV0sAJ%P7 z9??D`n(WX_t&l>JQ~wrHUpArTJNsFB^jSLAWL~uwrO`_fsE0yy9w^ zYYn#WO=4ZUMKx3sK7OJ@FZs{uMGgA04*H}HA9kVnx0l61hB64sF=iAbQN@<(FFX?` zc{Gs&PcCYB7@7v8o@U_9j&PLX{o2F(W$lB+f=u-lyjfYJ4?ENjc+KP&IjwKCu<1yf zFhB8H$o{YywNlS zBYTr&i#_?6dUMS}_1#8Xw z{0Uc(w3QeG{g-2XMmQC{D;X>e@q;$fI7?*;5l# zX!+8Qcl1lD!B#EIQi6Betc@f+2_rvPwzSBD^~VTo{o-fTcw2;;JuhClEKh6k^1he$ zGosy^SerZeo_X&ru05P`74_v?9+m^v5)Zr{CmEgWQbw10t-!p?)JHmZEn9&n!!{1% z+G=D!;-aRX_4r!M@axxLpR#i0eEeclbpsWdz8(reP0#&)XE~CX@x*uVesH)k@{w~9 z!evFtuq+=l>7u3xhJ+E0H|dB3CvJtn=LK_k$VcywTxa}mc^oQj=}>=`^?X?ml>XLq z%!?B6jdxhno$$;phnaSn&)uo#AeU-mEP~=4=UrT9PQ}yQG*2xZ$B7d7iXYAx-b1C( z{FQ^cC))<@?CJGSwry=X_D$W4{VMxiYZ@I5q#XRAwHs=qM`ZJU&+v_p-q^cwgQ=(Atm_kGertI(f5UI}%v7WwS@zL6uRW8KzCZ!tsnYrP^kK8? zlIjzuYSsp?d8kXC+ooWI@M@)?A+PQpG^Xie^cpH|$V;%U7x_+N$x!l4`rf21{#Q0T zS69kyO!tB(UE5yxJmsvETcmFg{h`*SQs_xZ#0}TB+$K*tWUM{)vwxwbY)p*`fg*=) zOwy-2qZsB5!#F%xBAD_9B4-g94*T>>46Kqa$!)1VbIvuzY86b9(F%QebSBW%0=4<7 ztvM=jY_{gC3qvROI<@w)bu#j_b$E&x$4xXwP%ZO?-7{^ZiT9}a;@y?tF^fe+>&@Om zi6Lp|^lj<6_Oy`Z_$bMRlW&QE4{K{4QLdg3FVd}%RoNBx8`4oeg@u={&S1C;(J|qt_~!$ZoX4pp z1uvxpPw2BSzl_AeFv$uCqg81yD&D5B?Pwcph zmS%G%0k)lcDYu{SuGGoQIk^xC;EGx zKGkHMB9Dg6KCR#u3;4jHY>mb!qkQBy@Ah?^D1HXlzl2KbHa8>@?dS{h{~E!DE*=x> z_FP@n7{17w71`;d7_UT*JYCm@QcpY^{+N4TonVqWKe1Yu>5O1;uJz+YHu}~qf}c@b zXyvEWD=vj*Oy4ueJC?QX@6j0XUSd{L#Tc-z(*_KtjU-rocd*>R5F@Q%P4!A_LCnq4 zKtbP^f_*}MNeAK2e!*7zdL#?0`;p2~Wx?5O1HSXrefsxqM2q*eFZfd;p`e^SCM#y- zr6_Ycb+nVc9Av1Y`?0kjqQJVUwn%X%)!NYnx`3}Kt`%asSnNQif~Gil32h;q=oDqG ziRhHn7y_L^5op*eNgEcP{gw=5XQJwHs?$PRfs{<<)?vjIKGAZj25}(0bp`ZtAVH4Q z5Ct+MY!76@ilG=oPy(P7VJVzIjN7+A6Sfx%6yf7jC}Yr*`oGHINP_c%aN1KC)LTiP zq!RgwwgUOG;%N&JX9;K;COY3TGfFp>0IM?hE$Xv@J)h?}!0mgN z#{03>@)I7?FnvHkIxQM;e*%NQ5^&pIYLTHh2q7tPxnO*a7-gGCm+coVckXH;_qH4g`XQfP`9! zC87smXU|8Q59z$3m8qaB6bL!v)iHZv3g;*Pt^SFqW|0P9@sH`j5~|+QUhF(c)miRzPDrj{YzTP+&(%-d(-Y972qn1{j|Z5BE%I;Zp&bnU@df ziMZncpA<^0C&R_GV&aCHozIO#ftiFpN&`BeK1AuM*S9HvRN3`Te~2Ci=FnaYJR;-? z0HMhAd5|<$p(sC@_xAw{X2+zz5#?0R%WQRFsEBFHdU$ZdK!ARR+^WJa>Op*44c-NE zT#63C$%aque5^36-NU}uA(l$4xs3mwR$A^Sm|?Y?6_&SmtlH~Fy93b6|~W` zwI7Qbz6wA$1epRGerk{GfW1Go-$hWvv4MOhgbr`Yj1ahk3(DXgK#~m4RU~Wr41MaM z>}%-anWFDw0gxl2iSoJoGIAs7!Cjxv>8w) zKX53E1J_}P3fKdZ-kk0at3u^B-G(dO3na3l5@k)B#7Dq=05ro@;nKm!crqK0OuJqoLOFmQGAa)}faG6Q`Xr%V;Kax9DfkZxfItxj zz2O8npQI=N#LR2F5A!2bnZQd&1D6I&;ZtKwzha7Cu*LZlH8Q-pX53P%4=@`?EW^q; zNjF?5J8+`E-*hM`>n~zUfZC}DfeY9Nb~mj2OskFU2V5qRLL(Jmf?`|(UW8(}Ayx}D zL>?wNd$_kX+?IY8TJhzxNzW%#HHT2QpnxiQW7My9VYh5DIwY;B29F|rF9e5~CY;07 z8(<&B0(J}cvRS;8V$K;rO?p0ME+kO3>riftezuP%{UKksOLuf&AY9@j)}1U~uA zR&7ag0IQ9#qt;Bn!H+vDLM^M=A29t@kUm@ntYH;I4Q+Whtg%m|wOgE;6S&iQ+}Lrl z#c~2;?PGU#9m)Qpa>BO%;nGC+Ks~`|H%fMhm83AgLjaTYL@gzu^GLsnrc$cr zA`?sf(bF?NS?5*fJQDXg;TLydIi}{A`dW}*oCW7o#L1+!>MS1jq!$;Cw`Ka2o7*R7FJUoG-UZU64*$U=xOqIgi#C64uz* zNB^==J=L9<>VrwLhr9T+!&S=txvWSR_9evdr7Hrpp6~^_zr60V;8KmQN}a`Vn)>@X z;c>%~&PA%dq8aU9GoSLIdZ*FBN1027H_aYi(k>g(Na-@@^9P4{b%<&#aC+i(b9~ht zNTJc~pL%TR)%Cl3d=v|(QZ95UQoBTuzO3Nputbqr&SJ4fzJui0vy_&&6b*=O=GW7b z+A4gV>HW|#->a?T*Fto?fGQwDxg%)ela!Ymi)n1 zQjVQW!Y8qB?HU3ajHS-6gF+;Bt^*lIBSn?Rf}e6u&Uu z)qP%IbE;5=O*ZE2CG^W|E#YFBTYIl^cY*W=54+A$O6P(g2%*H|Q?*6UA%|SI{uA`j zN2AsF0yo@0$JouS1@Oe0(cQ;K^jjp-jjQFeJiOn`kI3&5gl{ZNUzkKx)}YU}U);7$ z(M?kb!=Eum)KztCn!3T4%`SL6b-s*AC$2VibuS->s4vP0OhKc0wF#w_C+=Xodtdfn zM_y3#DeZOIp4cD`B(ptK9Up=wFLZ6mY&qj)}=AB?sC9Qh;lF zxE3|$CsA89;2`MKi?8O~(97(v1O&lbdg_FX*MT12ImDurS&1-PXQkx|2;U8s>Oayi zFTHW&g&E>&S!&yiGSw|Jvi7I);M?R0>Kewl+&I*9k{mPCdkf}VB@^3WYiUVLla3LX zlYzg~z^7Vn8mxPnhj=504VmHDOb>rt@@#}C=EolX{O}2yHR|!6fq3#=llz=h8g4Cr=a~KaOsiRQQzusaI{?_ct=QHz9hf^H`4@d(39SaFcx{ z4O8L*)Bm&D_xO!(@vE|B{85!NxtK&Ev`vJIX{VY=-xtV!Ofizp5A*vR>c%D?bhgea z+EI}uo0j#>K@XQ$$PlJoq+En^y3pRcPSTe2Z8;|6TFk!?v9)$>{+?uXN35}Igu7uo z#xUXhxiCaf$3HdC^`Z%^B{9^6-tI+*P#~>1$EcJ-UQN@Q+bj8QcHpSKj1qle(y@Ea zD|>X#J+3LDq`}4Gr6&L3Ip)T`_D}2iryU}ARWgCuicr213nbg>tSf6Wwb~(OLUpCY%|*ta1(_Cf3@)hC81(yd8g6emz3GYk9YJ6uTDIP#zdXGS(&4VM`pm2X7!W~m3T}Ra% zHvctc4mvHN2r)Emkjxe#!XQCy6*LadNzUoMTIE3P>5;r8cyEEyvG zF>`yHgOh#bK#pIHrG-U{}JB3W8KeUM`Iic-=K}MUQfGGL5 znX58bj0k2o`yvOBzPwxN1Ond(6+{5xX*uxY`vv%scn;?3e3a2YgolqZFoZ{ilKP2( zR>dwTFTwIXm@Cnwc@SNxfbu!Wy;i6^78~$q9l6yE%mnsU}k|=$-MH6kZ5z}`uZQ(PQmP-9ze4w z2>GeLsQ7VEpg+6sw80;XSH-QLA=x*yx3bSAj#AbbiI(wDn;iick%H%>Foyy#kg`yK zHS@tq#W@Y&7G2#sS<^wD) z|1faT7XVuq5kQ8b1ISRVxRCWo3CK4pY5}EqLutoi-Oh<3fMpZ|52I-^%N7R5?}(A z2?5MhY2?AZ2X<2c9BnAc{vd#zQcRQ_LzxN~mxQe;8q|dNL(@IN6TF{v0Y!5t1fP!< z8L(p?tlx9~zMH)M>e=L8rWgHtk5EGZQ<=eM=IZ~){?%I$vI7j@ir)rsKl}m!Hz4%^ zK2$LPK-`Z#28`Ot&(sAkjOKz9AWQWVg&>*}z;gh_cC3DY#1uOOKx9J+5Y4;X-7vC= zlBpl;U+sGYSpc4Ge}pwap0+0XV8oKvHaqu*)jvv0q~-&mJlMi2?0^i)dJA0&VCU{U zK*x)lo5SbB1jKXrwwu8Mis2Vt2qCX^->hN z^bqi-zn7`KvHQCE?W}X)re0AO_9J2@~@|qz7ab|D&CVz{|-GTc(7g199-P^F5f#cr~#;Jfu`vzz=G%G{f7k)ncT7Av#rBJ==6C^e_&geHk#+faRekGY*r>?i%@TY5mDb5=UlN|yPV_Dbyx2z)*wfJHA=rT5|=N5jg3h!W`gJ^z3HKc>o+dH zsxVLQo}jW3DXN9dt|6>h_bnBJjCqiiBjH`}sNTnr5K9y+8oKmfvcBifZ|H;8f*CAbD-L|E^+wv%D*S9)UdsC52I<9&kw*~QV6+vKw7~Ac*rh{hjakz z7WNz-{az!PlUMg#Z+?A-S+iia4g4TE{9x&l>9h9jsMPIJ2yuohtytYxPDY#nKBXmy z$@kL&6kO+p>r^K2=sb;ZQ59uptOZA9ldUErLZ!s zq~^`7S^ptD^R}k5E^hM=rs&8@4^Z6=sszTUhY;g@XISJ2tbaMOZS)HJ= zl?ElnnS)URnr1QwMeA_CY_xx5Ph*X_G$_+-Yzi8eNM5XWi@qe;i!D*T3TV@CU%1<~ zCQapIvU8jRI6>Wm=32vDej)<1QP0JX$y-;+)lW2h_SEGa$H8do~%I znBT|kE}g4RJLtQnFksB8oeMX;k}OaN#xsh_^Neom7ERNMD$cpyhK-__6;~C zHOpd`)!Mej+WC8sTIXHAp6FtG|K_P6r|V-ii97E0*W(SUO%(wb9Qb5vJ9*{vi};oX z+7frOx8d<**FI)iXi79yDj8^AaTjPaCO$R8HWlj`RZN3 zNEI4zHgl@4h?vx$Fex0kiiQ##*Li(jAkNkP$RpQ)kIP+H_BMmv+^I^?(c`;ob#m`| zb0bdNjt@;h*DrLs*0vsKbz!Sr4EzG}Iv%1hxoA9%1V!y)TZ;DuML z=egB0TRpE}F1_8nu|PO%W!d65f$55ir^|J3V$*((U=tqPIGFQKZYx4rl^)0cxDmW^ zGs`L+q;c)sN}o6qDc)X{eexoaFMuf+V5%LsvaUD@uA4wlv703oH_Y1>cJbFFnRNMe zU*dY%7ae>M60?FIc)+YhwxGt!(DT}p1Y1q%2SKHd`VYNH%>zy3fv%8`Eu~?@=98{J zF8J{?{nm@*G!`YMN+c_xvf)Y}S85jsvkNT7-rFKeh4;N2#}YGx61$pn1@%>n5%#*` z6CY`$PUYXSrFMdE-E@x&Yvi0@CvCP;MI^0#E{AisQ&h8QX}ZCtKl4T#H_h9Pe#Od6 z#T-bEj+itnTQAO>^v0^!I_h>I^UC+C7N=+MAERQtsd7@QT$!hVzWF&xAhPbkZ_$rN z^GrK_NaD5DYeK=t1-6?ug%Zn2E!i<;VArPDx|*-fU+CJzv7hKAkG!__RC;<&uWc|%eYvqQprQKcjWUUp5~WK;K;H}2)!C03&E6i@ zlOO1fgZkfBfQZ>z?(a`e*w(KXdl!{qEZZY}P^-R0Hf%JCz8Wah;Qsn_6L%yUfqAUp zG;2+o%r|5%A6J&+g~1pR`gCNy=s9koSj397FkI)Bw6K3d=0d1Ia2#jt&-9umdR}%1 zhw*6)#eSb23?P62{LsL?dQlB~-#6F#jmWRgR}Mb2kmL-d*wzpSgwHEM0g{_*rG}^R zamX%JS=y1Fhx+skV98P{*jmJ)_bBDp=f1EtR0B!!N@Rja=Ua31y6cJH@nzdE6s=T@ zp}acOG4UkH5tONEl=RvRDJ02?Vq*hX$-V_7$!OEe zwm}q#AuC9Ec)n8@N~mJMPiX7I4`n<_YTQKSHlM*5Mm54ugE3r`dH_mXz7>?GXCcYU zWfnjc^nX~s>xJf%z_ zaR#|C$*EAQyaR(`DeDrc=@|pIAShXI_2bm^wD#dD43MEEBwF+szu7sCiTdWJ&WufS z=y04WjtIDDA-ZyYDsBB3iWV{RRyYAfbLVKG@G(FoyMD}%Qao^^}I>0g(wvZP{B3t*EC zy+*U2I>WyMfVPC_Q-Go(GMqD@LN7*H2Y5~~Pzu5Z)gL~#=6HNahRzb|5lfnfOCd4e zq6H-Ei)8KbL|qWn$F7T;o;o8q13Tv?ertfMgN`)^_#Y8Iwlt{Hpc;R=h*#b9zNkcT zvp{?Rt*zvFn}ttX^dV|DP)Zh?W3*R<>j#Q>lnwh%oY=KCH8y2;G&R<7a-wsLFi}fH z4k+q4P{ip+?ca}RKaacG1Du}RQ^(&ja@@P zIDXhk^#PU2F^)tJ0s~?Zze$m5SkMqLFrPc>lZReh?=M3u%gImwKc>kAhWRdmDDk=e zNK^jPL*nB6?IGd*kAug>2eacrB*F(K`Iimq-)Ko*t_QwM0QX4^<0As5(!letsQ@?n zJ(V*eL>zeF;K9Gc<9b-#|MIYa7Aaz2#w0BNIMMf^rjH3&sR&9q+JD7Oxc|gWxVV4E zO(<$KNf1piFz>I9G^cCqp8P_d3A|Bmh4!^-^66#oLV z|A7(xUGp&1hgtu@*Ya}xaVvSb|KP&)lSmK=;`g8a!M*k{0FQTD3K1iI{`o@PD3mH>SvO%D-StR> zy%veya2D&GjEqBcwS8aBb9G;H*fJ;V)pB!Kw7?^I7`*ta_U5eS`tZfh_4-hz6X|_T z(#>inc<1CraLeM|e(Apd<+T&p*fb^rSiB3mD;AlYKaq}9e#FsVWV#WCQYu&&KjRFaDp?>r&af2PqlL;21zL>-zbhF(nO`T^@ThafP#OY!Y z%4>bO5b(shw*9-M$h*B0`w5sx^{2(p@+Sc;sTqf<-e;qUmMp=Xf+-Vy2cb=GT|DPj ze^zL7yjNYdaIw9_DT+>?Ij~!4F}mh%9ymTCfKGJWRRzD;pSyNvuHYQ3CamNvYhky$ z+H;@JLy530tMh1^E)%qJOQ}(RYbAMo0{!mSd2l>GGvV3*3AA)8-qMKRJEvlEDBD$V zGug1TtyYsc_~CVWy)JujUx#_h+3iR?2P^!MW>=!|&b4s1u(XAR!1cVOzk9ZLV`1wU za>maV{^qO+pX_VP{Kfe3TvOG3(SFy2*%P9QGgr&nh*{!$n`c?UcaZlYGsmktpP?(x zUh{n{?CY9Mzbr`K5dhC<6#+f*e zC>>k>`TAqjhk7cuSf{F^qv}LWjzTCd4B$ox>Fo1jxftx4$T_=tk2=XF=3ur};QxH{ z;Bs(4`itN9K1X>d;m{&cPIhkY-e`r*B+K?sZ-p!ikLopnpj!vqyRW7mbKd%}DmuY? z$ZV+{o)^U`g~4sC5N~bir;jd|u#GN6wj{Ir-U05y*$wleq6^-Ee5yeL_d{q}k8(<^ z@zAu+p%-{n9il_AiJ`e+UVN%8>8(BOWw^1d4&mf5&~$v3>~@=wLNC%VXSlKZx&O85 zmG%5(bBf(Z&g{-nK;YV|Hw=&ehUMV)mH}KfT;{bMJa|OTIW#sbs zKxR%C{;o*B)4}9^^d!bi%K*BpUP|u#9aB7A+LA;R!Z_yTKhH$GSh z$gdF7hF^Mix?%i-b0_i8_r ze8KNZbObE6@cUj_ZlS^CBzSWOG3MV^${_sU_9-7i{_0A69Z+NXNml~OGgGVk=CFYI zom3hZXNnk7q~b=o7*)I!3)ph0N=2SHB`Hv0r2AE$XK3c9ivR zwX6Po9WKt!fR{QH-AJFI+`@v6Lo1?a8=0{T7{ZpmnJ&4hT%2aD{sbtTv0_x}Z7)9~ z`bnt)x04Pgj#QFZk~SGt$r+yFLRYu6CiX4m;)x7Ei&Qdc4g8+R5u5%!Pn!_wpg^nE@&QclKUsrUcby6S+anyxRgOE*$d(ks%nbc3{lqSDe`iZlyIr+~0@r;-AK zqzFn2NQ0C}C?zE&@XdnH`##V6eE-1g+`0FjIWu$bJ!j7O{Za$?Y+OtTYh)Kcrx$am z$c>Mgh+41GA>vf!DWj4FpUC6o<%nC0^E;qDF3MqlFHYcVLgirYC7-84+VG9R_VXY_ zDS@SiQ_ead`x;auevsZy3=>cCx}b*K$rXp-m%dD(d!Kn}$~HdZJyT*EdZ~zqX*viL z2~THJDaPctF^})aw;{bjR$~?Xl0Y?q<*vAdwYjz|Ld?mWeAveP^U?#XXmy&~c{BHf z76et~+!zxnu%867O})IwmGc3Oj6)-y!#%)VkC9jYGYgJTXFe;enAL0XsLy{eo_vHY z3fx2llS}21N(Vg<$xv3OYJ@;8fn|hFNlp7U5vE4`Z7qDg_`qY=@>tnkZ3~C zH5x=CMR72Q94K8Kvp&m& zrgr8tvq!5@2g@#MxBY6nmV&bcBh70|c&bB3*R8`6V)A)M)Qw6^D~^h=z@mQ@8?F^k zg)=K(z{l$u(P6*Zg!Qgk9+b%8T#B-YA|_C*+3yp>lN>*e3Qdm&otq~f0rQSQ0OEUCazLR<;gP@wAMi9(pR7vE);KYcywO6QHn=^ew z&Ja1y8X+G|iq|{qh@gFi!59ra2GrH^bB1Cxrd%nq*i@3Str6kuy?9Ro3vVS;K{qDy zRkFcp2|f&r0qD3Wvzv}x(vTJ7YOWJKBf@~N)57w6? zjlor)8W1y))sqL$Ztg1Tx`&e@Y^A;xJ*X z|DQ@nRbKE{QAS`!Y`l2t2n>@BQQ1DPN$qPYyaJbX_g~9YRede*^>&0xj5B+pnQ_mR? ze&^c@`=<-ip_5_}vsq`qdfT<6k<|#E&RBNk^x^NV8!g6~>1Id25589rAv~S+nF=eJ znch}Dk2dWpq7q1y)zBO3RuR@4%b|#HVOGww78f7*!amp}&!+MtZfsIjLciYidc^1} zEy{e=9SFFy_Fwg5!@ZCQQZfib?7Ix@D(xRW3C}XluKIAA-6`mrz?^)} zfso0SxJBM^ERsgKD<;~JFW{PCD6B!({5El&Unrw3D$nV!zGC8v_|6sLr-_>?GhpoA_cc`gXE;me0RN-$ zhFCTyDqfs&HM~udFYIiV;!J*-^Y&>;&+^;ZM;-~e?aO0iitzV7TX#ha6$&T1X2qUc z8HvK)tW=jy32z#dEP9@@)RCstVXQL5Km4G47#%BO#jX(m=gMnaQ6?1EF_cfX#5BlK z7U}aE_Fqdxt0kmXe$^>AQc5*N z9e?I(*X|>Z$EvUQe`-)5D1tOaVF$de61EQ1dwdPYCrx2UrNhUwQTED{l|^%GrWy>- zXbo$X^7<%0Y@2Bd=h#c{&!*5@%x*N)%^0jyP`sb~IK515z*Dk!jmLF1s?eul_u$vU z+|RiiadN*)*Cy&VRmGwPocI)U>+_xl{|c>9&@Um7)B8G~@>-HE7ZD4?T2U@5>~7p5 z)fIl3e=3!EvsQc=ipLCD z!DkKY-c9O7;WsoTk?Y#X9erWX$z5I+tziiXKbSP9==UhhhB;kb!!ll;9% zs^L-Am!%u6_lU&C$Pu;E4ZM|C_7<2|3ULJEvdVJ|ElY~r$&9z9kg%+Vj$MzGK znZ_iEX>L)~)!sr$qwjpZtNRvFOJ%XyA*AWj;)QE2LF%?@4R#18hh`6-knxtM2FQq4 zp)_LwwYXhk_mEH9X`4S~jvE|LzRGNlw=$yDY%UtJo83#5S{IsK7n<3sE$1%68z0X8 zVVNl_^n-~G&h~>sb8^a$*^cm4Df9C?5wD}QcksWw z$@DRrQ1`;5j}bBW^|oH%tpYv6M>m0dF@>eH#IV)Q8xo-uJF;sZ7u3FZ$~RMv`PS!V zr**v~aQz_ISW6^%^KEIu(et^ZX8+nNTQ~4W`bh@_Gf!A^8Z8nzlMP#*T>T36>Y2W@Kek%aR~QbbKcWNPKl2#*S}nQVX2vOWoi%ce>Df8K&WQiMWdG_fqN)hbw=>I-@5#BGGF~7nrUbH<|5^ zZ7yB2te-n-3bl9d2_fCws~GDrh*-j*W>-_8G#s5 zSJChG>W3#uVUXZY`HEe4R^=!#L&{&cs0-~FJz5Q)@TT&@sZe`@DTj>zBuX{&LBuIg z&dQY<5NMH;s;4NZfIlorn0(aXJnAHtk(jX(dd{dl|O&Cr4AVxv* zqg6R>T>J}Ekw}0l@+7aAJ|vR^CyIYI4j?Z~c;njh?#ZBoC={y*G)rtm)9pY|tL#c| ziQRO^f0U(ODhNY|Eej@=%nwoSZu>~@)8-G;ng5Jyi5*DH4k}pzZUkI`{~1h&x2G~y zVP*lU&uRX&13;5hvq$qlHFFh>k%A7f{v$opZ(~f0RZJ=U*^ADE?;R zO|JS=E#OfPc{FAn3k9A%=uqDaldCvy&h`-OxRSU1L3mPfN87iVAQMtE)ucxa=2a%| zo|L>h4$4z!`v@YVn1zycG&1o)hCl$ny)--f^;i%@#Tv4axjXW-B|IGmUsA^(wAi}Eq@LEq4iH6t zR3}8pSMc3ts;U5AZ91$1XyiR9Nr{-FYnZrpPKltQ2OVjlKRm6Q~{O*r$`JUX6E zA>#`GG@=^z4K&74YFk*%oI*6dytA4@t{Y&tg@wWlk+hf)E8-=y2RvC}k0$dgPe1vP)d=oj|~iC4!H-QLtvnIi}Be#7S&Q&>Nm==`7Osdg&L&cV3}$Im=u<{ zHqeo8zdi~OHzes+O5$#C`BVm0b0oa~#c}Jj4h>+0o%N(GOrkR+( zM)DtIV*^wYK30G&Vya3A;720KomCR3!8E#lm0~6Jrq26O7H3CT@EC6Jr;b*$(D&Pq z1!&M^$TE&Bf-qXOVtpd9d*kQx6>)dx(?1ZW&= z|DR2PGK&6T<_IHESqDflJK*;HyOUf5`N#*#0SF)BhEK4&kmw=p>wCmtm-=<&;>Jk-c}ym9k$>;5h+OQh{O7*veh>!0jdihg zaBd4BMFZ+8MF;5>|AOBT5fMUa*#Tn;{ExJQup_0z|Jp(TH6QK3R*4AMD)~E)1iA?P z(*EB;K{%JxYYWqUuMIdHt#4`_}D@sG^} zbP)i|F$#sD^IzauP}e;{K;B`q94s#FsWkC8X`Q2$%McL$S6`?SN)i##KbuRU|K3~@ zz1&>F`lB@Dt9&rd0+*O8u-AX>ae)g^hC?{eLF@l!%pesDAUEo|!XYVmgnpu6$kxD+ zU6IDMFF|@#K^{XdhXILJ4Y`HnO#&Nd4Ar1JWt$)vFt{4Rgp5go+`O!dN`hQN;=cyb zdlc0WN+c!{G-<1b{DT3FtOjxeS%QRcp}TJ&C%}KiY-{uHz0n=k1RK?}oec(_771rc z#5T8KAIx*8w{DK7)hGjRIo;<)mROOtU&(KAq@B+xDGQRqXqucZg`zucgmX2q?J4@(od*_hWt*ue=SnhQ1jx|Qt?NH2evQJyTetdR3U1x0M zclK)sk=3Xo9x-ct_Uoj#qBXG*!P9EY9Rn}wMI1bBHHLS(o*pb!@E|;0++Xj>SqSsZ z;0b&*pzq-BlfS!kKl!GBi-VaYs z;a(0Gy1K&e^UY4@iI2wk4XxH_8X}dX0FiRNMMUt)>8II`_X(GpzjwSTN~3pgS+r~U z#2m4&0)KP2(Z;C$IbUv5?MD~h-@L)mbG|HgQ_>&n+Ed*L7x`YDPMLc-_iG&Q2wQ&} zb64(U5*D$s{P}RH>UvOu!||wPti#PM_ZiV1*r#PO(yEp6;(OB$wBvqt_h&qQmQO#Q zG8afg7>xAq79;vyb>=o#%T!i`ReJZO__tdgDpfb1?U`A7-2bAq>HB48Q%sP!?uu@O^dv&EsK1_m}CTla))q@~f)F zneMwyvF&|vKlJha!68!F-=g=J4d;=6KZ6*(5*=aO-A25F@Kr`>4LKSi_JGIk%9 zJ#{iftb7@%5+!{@&(R>z%siC$>Zy&EJ#7`MbWqah;$|}?gK^PQ{Fh?EA>ZE+WPLX6 zbSzxRY^-#3r?e6)wNzxyv1cycG_4bh_!4uoz)LR8dXw+f>|4p-7N->!VkM%nQ``&@ z<(h5f)tuBD+E+^$LXtd}rTMF_NnL+pxVO%#UXEBT3Dr87^={Q!a_0Eimuovt549Dc zqu)$%*?TLwd?R#EY@&nB>>%O9aj--} zeabhIap;nG_jkRMnEsWwYs@@G0wQ;ceoC%swIAC}>*&*KS*cA6Y^WngW?9tbJT5s@Vd5Q!g45uT)26ksvzMg<5y92yTO7qz<4me3Kq-|NXe zWw1&w4u=%K^d@qAuk`dS~Q#$mEfW`nC|mVK^gj0U^p<{RBj>jEy?V^;QS z@h>+{13nnOeD-YAxWFpeA!P>rorHB0fxGeM9-@X%x<8HZ?yoM+>K-3%Lf^w(3sw;< z37eGNxcSjl{@*i(EIW=k=9?)$^uBseu+;IDx<6*fdgSnRm@9mFee^WFA^q2Cc)=(n zcUqfqjEuQd;5(aH^rR2V!_HFMSE6r?hfk?*Hxe$suvqG3?QC;&V~%Z`gxNfY_zj>t zSU*7w`&fN5c>JIg{V={F3v2fJ`UrCu)x)iXfU8ZCOtJa0cWQp!Msp6cjZgao-hWm6>vx{*t z0&(~Lz3EvCgN}D%=IvTtb_#1;g;Uz~Iab-Nu+(>+ddv z)Mo)RyaQr!oSxS~%`Is)v5ke%J{h(;{5%pKGq`0eb^Ihw^n}VcaJwE3PqQK^a&+9rw;0{vmp7HgzoxM z;Rm~Q$a6G>9r{EhUn}G>3b?DV6{3Ok$%halrQbnFkQJK{8YK5S@E)GbhfpJJ-a)vL z^RgJM7;u0mg>rHuoeMycN{rcCf|>FAhgc!Z;XF7TRI9e*n8~H_dyc%XFjExyBh3@$ zVrTE~)V|`xuIGK}%XNpGA@oJ@tEV7_esd?3a{Ro-*ZXLjT?0AK$OvurIXQ_OXswTI z^`PXT#qhwt2%`6N<1T)@Cxif;UcbYS=3wWEYeWIsjtjdyM&*XBekYzqWK;(6vRIE9 z@W&ZcW8dXDQN38wYtd%= zc77e5nA&2necw2qIGV5|^0ZhhTW)dNq`lVZ8vEy39h{T$#i?@qy1fQNELbL8 z5&X$jtj>>;i}pybw7ukTEV)t>{G%b<5GKl(#aSV8)gb;6?jzR0`82PpE z!{#x~(}!Hkr^)Jh6-3T^h%!F{Ki*~bq3L^t#Gz9j!|(Dvoot@G&Yg1Hf?+_!jzyg5 z9kMViHbXs0b#U$>AY3?vE`To15U>J{@JJ-r4~VNA`ma&*yI3X_er;(^ZUx76Wif_M%rXqIt?F>Ft$-a->gk+c`uqo<)0pXy^ai=sq=_DpE2obBC$zQsSm4sn*ZMDb~usb z(r)I;jPim;J^2_(on=}_v&X<5S+3I#i?O2Ws!%JOdtJ*j&JmsOEbvWP6+fQu>CJn$ z7i|rXa}XasS=7cO&~O^i-gUPObT^k5Rx^JMu?rm&uEgn|EmATaP-2*0E+VZ~G$xD6 zn$KMm^yrp-BQ-}d)4lNqTX*b*T48T$-rHU^%8Y3$)_WP&i*Fo)PYBSSzTz5ps#OkG zm!{(uz|iqBRQKR+`v43;FEvb4B8kBE)prc&g*vR$3{}$8G1s zkekvmedm5p1t)tS=(L?oblh6|$+`X`{OzNO={@gq39K-~YYsMkSxZ4L#(5UHT;=L^ z>r;l5J!2706vOWAY}>@LgT{dhCNb?F!Wrs5bz4Slm%Ay&wST^b;TAoE`S6kD&s`5F`)_y5WZ5lquz&{l(A_*cCn)fb}vzw-?Eo^XX@3Y(ry|wSl6_Wlk zcp$>c;foUO&^EU4#D2|2m*0Dwv0MByo-_WVZ*L5`oiHNs2ocrIJa61uF(oUm9=grh z=?zc6RZ*@8rBaEh*IJ{{)|cBs%$J^{HQJl_GF9dOYR28uzQ_)QoxLMDnm+#uQHU;d+rq=SOkL zYW?Q452+Zm$<>bfpJ#0IWeuqh=UUwe&zk&=gl8ESItFpn5POeE?pR;mODy&~Di5zq!%KUUF4KYcAU<1H$%-5BBHdH!psqT3o9hcq~Hd481#aeBIh zG~V59T^blbAmjUcm!xZ#wkV0D5RZ`{vVCW#NL*tBM7HxCyth`8yuy@vXMj&wzTv7H zIswQZzCH=N_t>=8a)deiz;cAlSu;DT7}?Ki#pb?4oRA_w5~ybRNdfbEswf%XZNbNE zq{QM?E5RY)C#$pVviiDf3!~+TZ_KIXrxyaaj|32mCP7`6pE~eGAwnP{d1f@K0X>JB z*!kgNnkN~1n5AlB(;$)MCl)k0UJP_uMyF-17*PwL>M(X{%p}v$C?_N<8f4c{JnIcefC6b!hT2#VfSv|$xRDdyzP$ErK z=VmBEv#$vTHR0ba49hlO)`(-wNfA*jv8pL6=6vyNL3f1NnRmA^S*AHfq(Hqr%~J<= zJ|jhh74wPZ> zAJkVYkX+U^h(lZr(xM+ZDM`w)2y}a30n!viz^uHCP#(QM$jMwKVM#^{0G$S$KsdpI2_qB_nXS$eC@ipKI2Iqv~KMxcy8=p;G@$l>fkdvH&{3KzG# zlr7*oDswm&g39ChG7YK@X0$(an#jh7?i1G5kvUcyZ|eQ z0(O9F36}xvFD!BWkcl)jG?L78B*;Ozi$3?E z20C?HX+*F(3Ls}`MwDMX-~T2mCD}aK`spn+QB-DhHXIuy4&Rmlv@jrrAsJjwwz797 zxDDj!c6IY0Fu@$T!`R5h*KPhRML;FcS~pIH%Y8OkGy#eY5^wKfx?27+()^q@#C;z# z`6ymh(#=s(GBEaOyox^xE$4@!rtXMjG2rxp-m+W~j+RmCdyezuC5Cw zng*EzKR9924Al88UkC7cqgPInK-95qK`jEadp!)D4ebI;$NH%Pn$CZ)bh<2PfB>#J zvrnxR>8>Z=V{s*fnm<*_F(_iO>_m3sppuEdF~LE4_)@bnCnMvQe@9^oM*}uT{aN4}6GF36#51{fwQQH$mue zp$u`qQCdFZJ_Ro458O78P>c>*bFi3H|^>MZ@bL4;h=x1Bj(SI0)|eEujAs2QlP!b%eqvAx5BYM$?~QY?#n$bY7x^ z1m`fO;z^gILrUci?mZ z!AY@DI7{0oVQ-!bg`m>ki7~6k*;J@d96n5pmK7kvD>dbt={Zpp$ z8O8m>s2FDHq!G`Lf{Kzak*U-dEJ066WGQ}Li>HywI5o<${$BgYIDP#G2?^SHEE(?R z(7DR~p^~^NW_huD#A*FH&TW*Fj57Ag+B=jTK!)sjhYH@-g;J0K65$IDp#KKc z!;!rCXfT=ob)UldF1?2Tb)R0=T)I!;yeRl(ZN~pZp2LxGikMPJ>(`J1WXJ&U`pFi6 zAe&p&5K>@S@FH_ILAW^|%6a>DA1UfcN;QNX4UYWz6O-%05J8sB0C%CiBN`pbJ&Xdc zO^|FLtTU^Dyu&4)KBs(W9DcBW(tCbI>ElM(Mel$U-Cq~Vbd~QCI{0rf^l&~9n|_gH z{KqLtGYerz*e>EgZUe2LfPgOL`d@cG92}8*2fVY_pF{udjYN59QT}}7?mLJwj+fFs z#XCOI`L;;;Hi#%Aq z-f`R)3<$za3RyU&ekF!kJ7$UmdZa|adLO;(`>|PpvkGdPk5V$}=dK4&&7i-ec&ZGx zmvZ>6f4Ju;7i!Qx=Q}+ZV~{mgo+xZ3lUdnyZ`J!5A0StXsJzh>fi1G$D^ci6zj&1O z8F5;|s}x%>@yi_kxQ{EDqDlPp{dS*f-Hy7oEAh%z)4-rN&iyj#Uoz_z_`2gZ405@Z zsrlU|OLq6pKOg7kbVi0HT1XwcPP=|4b?_pOdz~zG98be2ePyZ5c}v^C%7b&<#(>km zq-?G=Wa(?oAR^}1>*SBB+<^yUh5P4=xgW{Dz=>nx&c?6i1O_?9`xXao_}i0(NB9pc zj^V$Th#{Y5WA9V);9!Ef?o(WtKj{s$2=gYQwyh4Hh^4Q&4_vFzUt{>n8K-LF>!xxu zxl;JceRdSC(iE=RC>?Iu4Q}-BIyFyYsGfOol0V%q_)!VsKDZY&==R~EWkm2tHnq(Y z7B!0Q8-laN2-=U&)2DwrjATm^RtNr4cq``2cktA8f{ZDx^E90QURc?YLd3NfuY`52 zgQs1I-%dsN?AzbIw!{7`buy;@k+=MqCYu%GuAenRH(oM>Uy)M}XVNkY!Liu+k}c_e zP#rhF<0K_^=`{+0{@Jc%8S2MbzZ>yW-JFIUi^t%nRx1d_6s32r12?P}jY{87Y)<|x zG&<}^(Z2axG$jr9Ohuu+N;ILrMrGYhqQs`Xwl~Fw|Kn)X*sDn~Vdn%-(Lt*BI$M6U zXhh8e>3ol60;K|xkH}uNQ&Gf){7BEKzHoc8kyy zEx+godc>l%CKC`!=D6Hv8S>Ka&3_oCZFXR!c<|yyc_Q{aChodCSapFbpCy~hiIJwZ z50~@VyXb3A>c-2at1D0R$f1wIMT;D|cLFg*)y*iQ!owo*yNMU+ZB!5X%ti=u&Y%%k zB~!Fy4_6e>87jgeqvlyZWozM2Xx8m^UBzmsOwy#!`_xR}xjl?&%E)1b(>Ji7Odx|h zRgD3k5Jq&yuS&3N)i3F@DGycg4YS;1U4MDsw|%7^!A86oBXiV3kdV*U-LL*NqoUN= zTiejeRSR1WO@i6lvouH+{_YLr<{L@j-J>dFOCEmw=|{0$tBhs`GFK~3$V)ya|EA69 zHc*(jkyT6lHLlz62bRkYH!Q!>a@EYhN3Tf>=h;of+jYV%xg+LaU-8KZy9mQc11EO| zLMo!8&Y5mjEeNWx~xb}-`o@QM^#Q*u02H| z8ktZ|e#D7|J2yk$&3INN&-lbd(h}BN?nlntablW2VeJW{=+?C+!VsKEY6Rj#b@f@< z_({lKt5Ebe<|3Q@EO>Z?sOdh1tiz9@#}Qu#-`|oY}-uXpe7 z7B%QeSS@~_Q%HH;o-p}CKpo~m8*smA)us7JAA&^G{{GY1@8n?u{AQM1Iz3s&n#P#Omn|4tvFOab8{Zx+a_rU3OQ<7Rw)@X z;N>^_yb%|UxnlQyBYi98aMu}=Yiqw#VTpOv%|rh#i#h~CJ?!VcKGUIKO?cLK_l#j* zo6Kq!L4{?l6!Vr{rxwH$(kXS`3|7h{EB+CzGfR&I= z55+M>X)H}!*wL2}wn~i&%q_C7 z{i1FgRB3+xCGnkGbwZ?$)iI7NZ`3;#c{XSR)&ml|ij1a6cH&+(oDP(3H^MZ2XoKkJ#9hh_47z^ zX%U2#tBc+AO->Qy*m}VaxVuEG$>PafYcr9o529L%PR7iO179W!xAlK~dpx~uc8$=X z7jdeibCkZJ-#Z_dwCo+Dwh{FB6@G1gt?~8*cYchQV!O>HALv<%`riGHy)g z1$7L0zMt@u!7k+}S8K>vJgfJfTb^XNcki6 zzj})%4=Q;@?-ihsy*3n>dBUv}z4-#K*S1Fio9!h`2UpMFwho(Vc6Ooqx3;x7$)(QR zLUr=CuvGpkw3TL>CwSjRUxd?n=n7y)5kJsKNxlwIupN|Sal7}7Tc+3&Tia;;jz$^+ zE_d7P^C^DPe6~Hw0AH7Y9 zM>?|ZU;o-g9#1Ubs*wEi*V^Pl7NkV$qxb>XVfS?kF@;~JUdM*sdrdP;Dp1_oD>1yMM(O|I15;Q<~ilH;IKkpET1#IU-Gi14#O55sv{nT5}-_Iq0jgc$vPH+>xdmxRrWp=zRX!sn_3O+iK{u=xaW(lXdsE zcbhO5pV(+~12X+@#0*dTq8oadV7ygUJR1}k= zD}dvICi}SWhR}bwvE*XtPUrfQ$nJ@e#xcHhxbtqc4OM#u6gjrIN65OcbKl4Zs3QV% z#^M+kdm5kDW;4TUV-zCV{DIKVAN{nQMs|B(+j^6CVe-n^4uXS{xaI`U?+>%t$(GH@ zj>(!xt}Ycw+YVCGmcSDBWo+qiUZWdrOt4H|0sV`c3$-5se67{^HKDO8H{W_gW2;}5RkK%L;tR% z7SPf@pQ=*Xfi~%>1vUi(arw{tlJ3~4JZE>d?PTi~c#f*assP<+@}G*K-64sZDp4WD z&@5w>H4PZi)QE?pW(R3d_EX#Vpf)hmZ%M$L^Hnf!fdh+oPpfJB>tFp&%Vi+Bl~iXvW;{!5F0 zk^aI3E)Dm;Y4xH8C6+!TT;S3@02lbf(}X<#eUVcwi!|MUXrc@7C&;p@Ax}3TcgZhO z^Z(Hs0l~{av1l*==->y+xJFV_K`*oE;h<&))SwH1u%!Rs?*h|5hXET_7qbN+#3wRp z^YUPwMS_?ntn}N8;}?BIPT)Z=oflUH|2&x@MB`gxhwWQgR# zhSDOPe?yXyUHDK^Kn`^=pX5)$d=k8vPaH@o0w_qC=R>|Y1>K=N1Kx=4nJ7hSZM87+wZ!Z?jV!sV!8|cy8}YJNLfcH?EarTt3SbO z@IPE<3bV0?@8Ez>WmX~!iUu_}v`{uw`r3aN6w+N03ZMv(5IPJ#FfZd0F{zLQ1en-$UudEC@Cgx< zsEECTx^witBol*6T{fU}c>y#C7x`CwB^-pAqI8KSiky*${+F=|E^-+cc?JV>K?Io% zp1kNHd?=cN`ri) z3B8Nd(1YS5B}c(x^c;j-t2+~hs^AkZAa~;0Ik#K<5XaIX1G1Nk2^s$oN`~}b2e^V4 z!J7YkOal)cN?MWsSx$eL)BZN{{|VRx%jr)nC>(^6^4y1NAa5%`-I3?_p|VJ9MW{3B z1r6IjMkfKy_6D*>5j+>bbN1pf*YyBOknmec5d#jtgh@n4!Ho}LQq~14L5HA3-YILZ z?tk_5_B#|o)2$V|Pz4}j`>P{=#QmFB7U=hn+P8I~)Odg4Q@{b|+XXY;Q&Z?=95AXz zR1?a94o78J-bQjef$?9zjz(KIqX`YbBD}sb16EIq)G1cfDwEH}je+`6*`4HY(SP3; z*;WOCnZSkqsX$TQ%O}@=6?j?mXX%Ju9)&El#LfyXnKIQkOS2a1th)?ln7~r znqxN&pt2B3PfxX`x>)z~D_G68tp5$7Mc#IXQY2_9Kod*?iLQ$B{_6z`LTgYjSoXg( z^>@wuFRY3v@1HlLxG9tb1NG}dKw4)Y6rn1XBB&C*{~qym0vCN81cm}MdyD$P9(?%&ggmn& z8K3`|xfcRBgSP?SzZC{YIyghwfee2^eIl#Qp*PX_{^*Ip1!{}KylXhIGXCDrv*kpD zU3Sa!|IrnQ4M$CMQNDjG3VEjn4fg*H-@ljxL;;x|N>K^a8w3y($$%&_CkcQ7z3>JP zqKnc@>R(*~OL8(^A$(xA;f)kU0Hum!t zSmMiuhKA0c>r8}!cW>}_nDcArGZnZTciN<%9sb<={WCP{wN`Z04N=MSQ`s?wMHY5y zw;mGW*x}u}VIGFgLE3id3a*dX#`;8hP^cb*9~U#jr8`*>B!WFEvcq+VR1R zkd>Lx%4b8K3>R9blhFx_A^6QN)5eVi+6)5}PD$m6Ip6OuDDztBJ^UmSl-ap&o&Fws zFxoLzj{W4|nzwiDzG;O*?r+;2N89h-7>npXB3x?S1U~96YP@-~v>cUZIBl|BG((L< zNYRzicTSf0QB_a2#PW;(_C^zJ*j@#DG7}rkPNP#A+tVbClw$(3eiBAPmh_9B*F@Yz z?U2FJC6@fz7@?VeEqfJ_48m^I@`SNqfVxenh#Qyh^=j|F1Ud<1WO zJ(;B=o7!fc^%csVJ9usVC^enw8aJhMTGq4+T7A-+U}LxYUhXzNq77%JXKq0XGw?&z zZyQ;s_C^TFnV{&$qBHVJP1!B=pH>!^Umm*dFCp~fn{3WLOnhJcjc{n@YI+_ErR$qX zKi)eY8BIZMQ@F+WrZp;ZbGP!{a3V0UXlbz>bZ2(IX&I8m1eN0%nl9b6MRacW-YjW( zs~bftP_M6+=+B@HczKQP425q_=uY7miD>`AE zwjS3h$KHPWanP5{?D|$8^=#uif`&3ZUBM@aU@olJgAS0e!W?n!jF1*f1&Jayg}@M_ zN+C~+91&9%ycsOl!Q&aos38B_M}pDnn}fM=-55rK{6`(%+)h#*SfkZjbnR7`hg0Rg zrwcv_(4t8hBR7R|5eMZ2Dizkw8VYdG9P2rWMyuNuEGyw*R&hPCwvSL6N*9CJ@!yh1 z+%Nu&-d0n4voOx4f4pcAy$ydPJI;n}>`PXN(JP8*_3B3&c$ja;=4uLy7$YgLw1*U# zb;_4)z)5+jnzWuFB{Ln3 zu%U^&I65?GFNsynbcD36?SBMc7Zk3QLqMZ794ckabi_R-0wx8y_Z5V=2%kJ6k5-#` za3?;<(d=Ed^=e>>lKlM#zd3nD0zVH{j4ZA}2z=$1sluP-MhF^{n^RPO6D{jJ|Qk8kwo?IiYk{mxL4t7;lhvg=Ll=Y${T@6V>fISV; zl^dT1Nl{8(VMX&%hsBmL{;3X^><)Rjwjfv5aL;uK#aslsQg3QiDt0Ez9TZB*4MDBA zRkQ`kD~_c7<3Sxx>aX znKSXME3_xqN|>KXQa#YS`Q+JY3_eJ2S$dYT3J}}8f3(or zS$=r?|9Q>x3n1HKQ0}CEnS!DK%e-wB3WHo&%1D55j>>boc$;Hw{`u+wX9vUr?DO>? zCximxXpbG#FUjzhJ2f#pDu$k(;S!e538qd)lUiCZw z|6~Inw?MW_@6SJs6_8dHr-KE9UV595>y^+;j}oX~0QCv%vji8MM&LJzEg)ttjs>RH zW%;V;g@@)JUtR#89VI6!Tk8%vmNv4f5}0*{gCMCY<2m?rqMkUDMy9VOkPqNzOvQEtt~&E9IW}h<)P2_HJ}r%z z6DFh{&%#0)#X<8BE3mzdEUi}&yWP&=%bj=-XxCXL_Tw09Q{ z7CpR=Z%gQKJbTN^&ah-M=9z%8o6y3CyHiic-!xjazr8y8;6?H)Zi*0}AKx_CIv8sW zlRXTm>lw`@kFSbG)`q5V4~%gRI8kpb!3yNOo76sFE&A$@@*}$LC+L`m_7>V*gT8fs zO;TU;M!{}FaSi6a3rS5=DB8QL9qc#x=+I-b zeUIg;T@i92F_kq$=O?n*gp|-%@&>$DvqZ)Y#(3Q5>K&oYqN%W;0CT!0U%xXR7{s=i zo|dMFl$li*a9~F>0M^>I?zWecEi_%UeVe+{KSjz`e!vvY`d%uf6&-xS_5F7=2f0~#6v?Z8 z?7Gcwm&+n)*AY}tLT9Cm+qG7@t;7zf(PnrOR3$bOecD!$y)&n@V@7>}7HI>*14z!X z58PC-z4yv*ZDBkc7d?4|987?wBNhngHkR}BhtJGD+YQf}qMzk@8nU>allio84Fn&Y4 z)JV8oYfp2$T2P_8U`A5@#yG&idcsV9jT^4V7IZ%$d_CvQvw_;B70S)8v~_DQpx&4S zoAy5cT}#OG3IMx9Fax;?=Ka4du?trxjO~xp_HQQ7zg(1}zz2D;_GbqEtbI^%vG%P} z!P*BuP-~xDQ~>p~_{ZWBKsp-(9(z&XyadkxZRBAS@K^LPVA0nZq(Mn=uDfS-czZS< zNxyvgN$|gdqe`gDhzk692>b!;{JX&h+&h1J2(UK;*W$(M@7*9l2ML%LE8ndEto+OJ zRnZGC=s$(KT=_`VDwJ(Yj-?3vn0E$&x6-x{N`vT*`BqQTJbwQh(Vl>r*>joe0YAze zF+g~H3&FBEz@GF4*pp7$Fbmb%zPqD`ZCJ7?q|~N2d8qDU-qSpXCk``gNg-NK+UwSf zVxq>r?VWD9^E7b>6+N=XG7r>-nmk|2%N8IOv6r3d(NiTbs9NKD`InUXv}E6?(T6 zG?B+1dt3aoOVb@2gD+bB#Eh4q@+L zi0nmfwOhVQ{P5}n*N3)e$c9aU4p$Nbsg~9EKX)9>zi02KOAp7m7Q%w34h5+WX{I`I z9$sAenAH8KseqrhU2&Ll?&Gv>+}NEv7kNh8IzJ{O%_%A-eGP}rMoRPolY)cj8Z}(T z6bhsCs-s?qxl&_Z8@_q7GI#}X(d=OACaR;J3|TcP$j|bk6YAF^S}0XS}jf-hN~M0l&DGeY}N^_c@O!e+E6>w@L?4%jg$SxqilmPx`rz~;w1BaNH5Ve zw7FNAyrj*8!lIarw4zSI*yk47Lkp~>Oyc~?rjV_;qf*PW4><1D!ie`Pox2y7+twQ@LvX+Kp}UHfLP zbXvm4X1T~ZQWzPXF9) zHn}cu?lZqNfO~()WxG-_x2%FxpsHxX(8UYprBpmv1QpYI!BTACS>DT*oP@sI+JKGL#^qVtUdt?-;=7+mR+XOj}H4xZv=xm@#W zUsZE6+;c@kQuwJ54v{g6I*yc2ET1ZxWvhDP4S$ux9W-P?WhFuAkiy#(cXIcGb+;99 zbz;~&2I$)iLHyU6NU4p8xlC?^u!P;2$B2{d=wAkVij$`d_6#5dyvxsV^Q~pQ~G_P12`-N1sa~L{U;(-eHI?b&!<>|50+h0BI3h zbp0CyCn34KUMkBarQCd0b*@O1M;}DQV2!Ao=m|K7{APae2MSt=4>W##t#>@HULaQ2 zx6(}0<0VBWJ~Wbtb(4OsoD07BMTtLu|C|90FWa?G_*dXcUt{v}SwG=E*Uz)ec>1R5 znNh8pCtlTZB8poP$^omhiZ2*8&O$Tem*5oUv%ciwDphW?tCNcLL3K?)SXEudKDFhn zW*MnNDhDePz524O5Kogj64b*tu9KBsju(C*EW3G~OrsyMlRiTKrb`+9pugDer5+wX zTR&MNO0_h5>pEEzkHvXQZIqThR35qcrT(*n5Ro}dRV>;se87>yl&Eo_j}^zbxm}?@ zL}^mnftC>UK#W-Z_6+*TL$#cN8jX55+*r|i6_+3Fl2C?|pU-MaiGD+FKz9dWd0Q#h zCGB1*2RPM9?!4Bj%l=)4C_kmX>+Y`jDqSGL5?hfhObgzvcL{Q8cPLS*MauMDCv&Cz zkXFUpkDw*2y_h}B@tT^3mt}^Jz&JYO@MwgbSlx924a47i(07|`m9j&}kr|k@7nV27 z@hO(W%a}87N*nl*%N^Iyx0^09S520)vukeZS4o+_ zde2qUHDeKe_vcpo;Apt?@zdkJxc*f7=94Yi4iw2p2okyc%A0>wJpB!^+u)vfh-Aam{JtCJEmf%HbQ&`Wp|# z3@u)Mo07>9$s6~*+>5!~bHl7WsBMkHH)SzN)U1QcqnS_tp4k zsZ$4;62Rs3jL+3eoVjYj*@-m6SnCk=mcTW`xT#fM<|dSGwXh5pcI$dN7tYO6S%?P? zbw;3lq@w0KaOch6wY+cs_!B)^+2Yj1VN3hHzmT`=7;&mMO{+OwqVyfFnmD)4)(^d3 zN!K4mDs!QQG3asp)B8ARphSL*Q&b#leq8L`e_waQy0Xr%Dr#{=$pqPW`t?0^L<=Hs zigIzYCvMfh#S*vBjbEU)(PxxxGsT#5-s1RGMx0>FkiA9S>&xBNwuGnR=;=Lp@iRwvX)jg#20^`VDkaS55>7SQdDFJu(6XWUw|#T@aW zd~A&)O=M#!@Y%)b56j3h@BU^QOa#hH*P!DI(;UsvTGoN=PAmt*7AXzdTZSE@H$O|1 z$9v*HUeCwwSXkXXOp#Og%yDz4{XUVX325Eo>tZL9YIwVN{Ep9Kus&u%-Uvl-xD_y^ z>0NU1+u*mLk*^0D-v&vi9ygD^zTZSW$G?f0xU%-6ZteYwcWnmpdQQCYbk|AQ-Zh7H z=^UCe8)^&-tluDvuc2c)xMkXG^GlfRUVGgFYW=739$Yqk!s4Aomza{i*umt3-f6P? zf#W^%`%Q#i+1U+`rn=vLD<8lRhq<9eMwH^q&03dDm{6Hpv>sz%qqk=2XHZ*zC z&IaXOjh6>4CMTfC$KEM63|F2t-)DQ}7HF#SlMRpYf|2IA`TL&^uN_4BQ??AW_ME4x zqtR+XY}~D&NMk7Xe!KpI1;=?;)4OJ^X<8}*wQJY&gIQ#Pv3>_}zARH;wnk4cQzRsC zJUpx=>1KJYV2|ps({y#;&wC9-0iN!T!r#>V*Hj&+52>r&$B?(`hC`CLbEC~(Z_p`w zH9W66FSp8*S6&z{lG?#QdEtui_6EFZtmoq6@#vNYqW0wD&(YKV^%0YIi1!b|-aXIe zqwAk|?>go_v7DUL-a=B?&|81Xi48BCnE|)t+%4Rgwboso-Dxbr12)jt4CT_xE$^gQ0 z^MME~r7>sotyIW|yx;R4Y#h=N$dq4^$0Vs%oQjZ4vf?;dbR z`@M<&L14}I-N7MJirJcKgNvr^a&*01(hq{-wnvbHSC?PN>3HG^^$`)P3th7YrU?7> zx9W<&9Hf_}!gE>Re6P5L`(hy)Qb3Pc%M%TG#Z{db%*mZIKrhQ)39$709{LLre%w#9 zf?p7RLO3`^y2Daad41i1k`)ArTV>vWdaeNFK{6*m*fs7MYra8;))+YGTLOsr>@pXz zdcpgzDjj{H5cV{sJqOE5BG2)cjuBY^V8R9*Vp_!MsYg8^M|CxvWVR#S3gpSx~dCBjBS;vvbw zp4`gDif=Uf5Qpimkn#Hy0ao!S0W&DexqZ~r0SGOUxE5e`hUfZ3bJzU(9kJPbwHy94 zA^N#rXNrKBIAgG4mx>Q7k=w%7J2kj~Lik{eh97Sc_j=OabsmDuP|o-pvy2taiK+84seRKL9=KBqXF8?j#CyXVc`~$85B3Uq$6O~R5 zB}0*N0ibke2vqH{BXH|~Avj@yU*-FnX^=@fS;u2SJ$(dW2W&L$4LlB%{SpLL>p2W@ zAz;1{lPP@k^I+YL=YsLVe;6+;^egNCn@sk1>xKUb<$_NCgmU1TGbmTb2%sF0M#n-q z%oKofzsFZk{)BSiOldf%2uLkKE+$NQ-b87f{t4!;fv(B3%~^j=L)-~qJelzlV0+eC zOnb|@gcl|k{%0yG?&MFPEb_0WP*JdKV2S_2n}_?dE<_2x>W9*+HeDM$?cMUL}`r zUPK=IZDHJISEoCW8(rBT6?tUOxwm5}*|BdC-ty&WzrYj$ND;I9qf3zsG~HuEUiuw= zP0y7=mCEhPS8RE&!&zoCwoBhHbfa`y6hpgXo2bN>6qPs=w%pR}MHiJ~#?y>bV6=~> zhr^0<=dL(Dq7KY`DkWCMc~dUi{y9&*!$HQJvz*yit2ANz-RMtarSr4vnx31T`N0#? zBqbh+JFZ3L%v5Hk4&5%*5BX=0?&@wy-PP>G2IDUM=(Cb8}*=ih%5?_YMBg-|6Fk@Ta4ovN7 z3!X36Oqm^ZP8Lrp45C0@F@gBWDeq`@x0m6p^ZC6Rnexdfeue`@PmBWjyfn$4hqv5( zL8+VHTygumpV?vUcX3hC;j2zan>CWksq=@~;pdkh#Or@3l_CuM5N%>LfkJWlg4DGKWr0!0=}jHm z@1|=@w13Qbve>nE3h(!mP7I$kat0OWbJ1Lvn!GI^)mSV!e_H>>By-K}aARboPvWo+ z-^r8XqiaxKV9KitpWA5_=BiJ%NrsxpAf_)~#ncCvdx^C|K65KJ>lTs{Sxht14)9pM&X2;{P5fXP0 z@S-hY_V{kSKW#p`M4-_5_zOGQl;L$ckGls&{X?)pEXOiJ%1z|Hhmaue;Ar8H2t~FY za_IH_YE+xW_9&7+t#NC$CAappVdp1-i|UcXo_BSuY~1M+$JZIJCKYu_H`{3aEe^ct zAGFW~#WFh7O@x1CinxS&YCLlLfc^FpZuo(HNJKbg?9~fF-Z-Xr7F<;}?7pp&L{Es* zFxZXsbs`V!%%qcd>P?=xEY)pu!l)V21A}HC-`TM^W=?;OY!XEUG~U(eTt8?e;|fPI z)|5z_l^ZE4&->9}9{M!suN_-|!11-OKAFPh%bO^&jb=BqvV$*%6+dU6j9Y>)df_d> zX9(j|6Q(Sg;foB_tZMbtcd{2J@k<9=zlQR_cY#sv>H{(DiE-S{?FF*K&{u9eEc1eM+stISwJ+aU`uvAB-Tw+H8MFHi6 zvRnB8&LrQ<26q{gbBMXTWJmz;R0QeaU|y|u6r^CGLemq^=tr7Fvb(HsDwDE;8(bh? zKK=(mNAVCyC<2CvXo&iqzE=3#U63Y3mdXG;qhYBjucM<|nEirw0HC3>l-~myVhvs^ zknM9S`YYu}DW76_bSi$Po4;c}}aGo6*3|zX8PBqu+h4%%1m3Y_u)~f!z z^UPqW`f~>J#8q!-_~E-K*s*=B9>}|zL!{v+@0n_sm(|BXNRA9P9?0WPS5!%%kwe7D z&_{z2USuDAFl%CmN(#J>SvMhu11^A&aY}e zKO+4h0=i%u4>EmX zI8|4%JRKtujQXxGS+A^dQEEoirOC9^oO8m&BpSWW&VJi|`x zNvAS8Bo(bvO&H&)3|Adfg#Bx8ViX>EX*nIetjOFLAku}Nq@IPp1^?7pB zK-V}j#7lmYCSr8~O@WU&H*<|l(h55wmhdb0X62P{>v}3{!`g`C0JgP7$s(S-ecbjH z?D>+JnV*%zCl;H6QkQ%j9xdCFoVb zsoFE(M`5`H@{Npy#)>h$YZQa`HTb~wBx517L*m22?0zt*PXS|_q1C-LmBUG{ znadgw`3nQ4Sc z3E2A|GQp0p5JD6P2cJJ*>RS*rx0f9e#Y_O<|g`lVTn z(xQO=VoYQ2tGo@ldL~G$jpYlUi8N!jAuvL=4iVhUie{=>WkE79Nd;2Zx^ z#1I870e?5piR&)|&vY@ARG@(Pdjp_9EUx1rf&v4D&kUp#y@BP>{sY>9LuZ!0G64x% zF)rvuluH1F0T<*i&-Oe-iJgaDhgeH7t8m7n?w*HwAOoG9j(1nZCf>b%Klwej(83() z_jB`LJyXO{DDV9yW;8q#`OM%{DmF72LKnEdHnNJbW|`lg?wV#iIp~`*RKsK2I&tex z5)}xqO2fE5!OR~^6r`4x8k?BGzwnHY%oeCk?o2z2NLB8QBVFnuCVOfvn&}~5YfDZN zW2xJkk*RB)p&N(ZQwPsg^vIIc!m^zktCmuz#!9(_vX1ROcW0SN6SbHX5pPdsIjMi9 zPx&A=WE_5Qw>DGSjd2>e9}r!BKbAM?K74%aX4NyZ(4{+lQPTxevmPQ{b|JO6!w()Y zWmgJ~M15NE6ekuaceTK+Su=2H@gtnp%7OWFxFE9yV;e7c`|ad#(_uCCY`2RjNOKRdXU^;C-@JeoWNFmSw!Ypr*Mo}YiTv5-Z(IX6@8q(4J{0oV{4v6*HDA6lXG45H zP{$r=w{Pwh8_oah`&@C`s&ifJNhCzn?x{u;id&d(I)jAvU_f(X_8O~}epjK;joG<^ z9}Rgr_DV+un^W0~({mJf%)A+o0>6SDXF5>~U|AzI0g@c?%t*+AC~7AL#k* z!t<&J{N%S6uHO%Q*|K;X-KQ14y-~2|J>xTKg=}iB+u2H9=09n?nsRj_{;Tek$o!F1 z{+-s3Cq=glr>2QeuL~WT!u2O9r+@5yw(k<_bwc$8HRjh$=TCmJlgGq5dM`C~>(a%P zaX-`XVH_R^y7@7@d#d4daggd`X1S-uq`r7z|E?(Y&pvNVecekPam^C{FIsIP>JE&p zRo{?{H$IV26O3vfG|g=peP=Tz+0r*Tsb0=J*|ZDm51y$XQYTp(b+n;pr+E)8sg8AZ zf9hI=@=Cq;=vjXrog7r7K6eN)U=#9?J)rClR)+y`XDQ)|Jd&H-$@kof6ssD}A7ll8 zAa?0%{Vrut2p8~e6(?5DP|g^eS1kc}X8$G96a?RCCGB}C)IK1sLd`;pzA2D7;NRCu z5nSh-t)iv=dLWPbi$lcakwSV{s&&?2dTK}=O`Zy1u9C^ZOdTv!xlbvKncvF*lwxZI zGNJ>A%L=$UJ@fBn)$oQdp|eq0V!R}Y*7sm3j#3L$yriEBZ*#*^xJXsh@brrEkim#Z z25@GRYzU-)PXGWI?l%aBrLeoO)Os5LU?i_7%Iol_4D=0&%Yk`ZHaI+*Q{KS=MudRF zi9>~8sbQg4#h-?T<;N|ACPNjKFmRseqyU?_b56wO&)LnM+QJtjGeX%X`v(vMxah0b zod{#IRQT@@X!t34r`qPBj`^WtNEwC^gynz?z%zq4DT&pMY2cb~?mgHo>wDP-T*|Y{ z@ep<$-E|%t8d=OS1K;}<7qMls@nV%Gr8`1F<4$8)HA&;^KZxEixjeb|@&VdAz1UEo7h&c{; zxST$O0udEPADU`VB@2ehIEC6|$&q;=aRdXK0CJNN~KstxPQ3sVjo<`<3M>Sh5DlB5Iv(Rq0%Jw? zQt^ji4(WAD$4jz(bDbl?{A-i$5<_UG@)O8R(;tjDv)9PvNzr8ZbYb7Fk=aaQQ1-{+g74iB;V(gJY)Wf6+t@cD6{`)d=(9`LZ^MF)F2ae%AYY0!JvY!pUVB)mU^ zeG&%%q%UOe(ohfdAe_i_V*+r_ls2|18Z68GXfve=lyDh|a!Gp_!?K1sd~U=8n8VTs zpr}&zM%Yv~_$_Q&5fki^bn%KRK15=`9)K=52(`kol~M@6l|Jm)OR8i_-f!$6xeyKP zO|V2TOPF5cG@yq4ExY=#lQ;kr`>3)d?)B;7gWs|li$;X{e6eU`seb1Sjc8}D?>3&A zEI>~k=G*)A_cBg~HO)t6w^2S8=1eEhuY~d^|MRP;AWrD7f+FSbHmAQke9#8;cYkUE zhtmFT5vlMy$Au!&g@T43(ccb#j2!q=@CVl6Q;ME7N&Um0fTqvDGq11g&FOE2;Ocgq|pe!TfKJ~{D7O`17> zJ!mLs@<3F2s-$*G?to#D_a@U??#Bi4SVxli-5}TUV+rIz^EQS*HlDHP6xHdEsD2WZ zeCUP=-^R>qUX9&4pie6;&n#;)LqA&0n`T4?9`CPWFq6{dVM$K`ck5(j6=iYQf?VwE zEyQ!$*)AVjtxc%@(hK-wi>tBTi=a5iF_4MmElZ~p6EAr!Y?WRM5 zQQ%=J-f_ETLu;(sWRvk&sY|71nzH4~e!WfWo^E&e5#P!k-=3$V0gCm!B1spz3hBeF zSE3h;nRdCvIEjt+~nCFF6r1{+sbO+3@D~WE~-LFXx9ip1MR~J(j z^|_Fsj23wEwG9C}jGU)=A#UjY%L%I_ujA1XBsEl2_%bTTGVkG z=N6}=dXy&I#cq<@`Q>j$>wQ?`mK2SDr<54<;FHT-l>VIrokX0vtPZ3EI}>-XniF?X zwRv^(^@VFOFCJIrZiId=%unnp*E5{o5&(OXjo242$~0u0KEE7rL(N;&@ANXV{iy@01CWtYm!9imPrY(;GT|*4eYh z!6lwoV>2Jo|KSs=n{)UIGG;z$C)8^t&`R>WHMv}^@{0E?Ms{^B04;bz-Teg}Go0Kg zS9My%%V5mk^V7C)ZvRWvszF=V6yfx(p)J>VlW~OKXWSD@i+v9nX>-0DpV`{3{!cBU z0fM>+X|W@D%!>zAR<(js1$^Gf>QFy+pX4$B*W__)!Ns-v2iH84kPz-&BY(;5lN%SM z-y*!@G`j3XCAWimA=YWb_o`5p`$vo3*3ryA%recbHPxZWomc%k&{mB7amTB@>tU!F znIPv2ZuYgEhlo(EG=ncZTXY+rNMdWgi%tgKMTbwROboqoRNjNjmY=5{f_Z?e9#%LTcAl)~Cf`Os&{O2Lmm zW342N${_gtt4>!BI(xjgKASN?2EBc9s&|!bm2O6n~L&U+Th(rzdu< zuY(dc!`Ajs9Hc#YO6oNz7Pt2X{dU4j@+*bmqdJS1eGctjR8OkX-kqHsD1|N;nXK6+ zDPnUyOJRMAxvLyY@TGoSPuPakGqt`VgA{^jKl!{jIVkBY2qiKwUlBLK{!Yf{LwY@c zi^6mrEFv1SWv`BH&A4M@AW_t_3M6m*(Zh>VFeCF@O(R2 z5(r|5vKX%Pl$Z}Lurp^vmCEwIpV|X1Fc-pjI9N0~1yVa-P#T~rrYhHG$RBbW5tPMY z4AMn6^7@eUvKC3kz0Kd!J@<(dZZx1BSZo4kyvVf zpRV9r2Zv((0yum)@)k%g$&&(hSK$@F_R@eT#2VdgxeV_Ci7Q!~uA2lMsf#dl z%#D0J2jyY&c>!MvF@2(FrtO)l?VYy_Upj{zkNk8yOsTJk`uio=PUI5&gR)!>;BMhL zK2kKB0Tq>qE8N|rk8?qpg`HN#Ax4HMF*!ltMV3MlJF#egYaXFczmLHp+`;lTrU@Kn z&_6>{x5)}<^ZQ!!@T0-WE?G_7a5VwI4N|}K48W;GYymC=!cHgd>R?G-c>!C2!CMpvG)x@!3N3B7ibi_sWMg6Ub=dq~AyAnkWg)-wK`YMJ#proMC zJLif}xlrg8)WuxLRTKsar9o-rLMZVbNl@*e=n0_aoNNDw?!+<(oH!mApgUzdhq_k#beN+kM!)dxgH&!XS2=Gf>LTl>I9zdN7| zg9HBf?XCY6{enYh-ufdp@NG5$ar!j@fwNQs?sd>261Rp=nS2>=#>dJkQQViI7Ra)d zKo{Ue52W^{EqdY^M=^6pD#pCInR6%82Um{wbP5wXef?v)M{2c3r})O@ya(LoEi8h9 zejaSD_oi8~-H98_MEd`n8x7jwKmNI&Xjz(ZA~bP)zcTr7pQ%t<@@V7Aq_P^G!oil? zyChF}dwcRxJsQl~%9rqdB_Tx@TO{pFq64hcmS;}vgtOtk)>Q7P1Ltw^w*GBC@8(sS zbxFOgD=li`Mj3+Ng)-w-yENF^H#x(z4gJ~bN5Y#TG*v@KqP7c$il?exMHdMTX*kMn z*oD4ov!+#-ws`biE1_wnXMXtc!0=ygwZ^zd)-mdCy{Xcu!mzh5FlxVMP zQ6%uIzQZdOAM4GkSC*`EGj9qB`$r^|Hdg-d-haxsagTJ2;_2#&jpR6Gp*-BGK!mHM zl55{3|Ef}@PwW86)4KA2{z&J$k+&~X52bW|w_$NdxZqchq>YF`Bs;EAz7m5;KMpij ztvi}{Se+3rYZ_#6Xr(U1;4r$ggf}zGHOaYn9D20%4zgq&ty68Q=hQs@W~`uTqzd$Z z&@Fewyz`jf5|uX3s#n2i*fWkxCS)=@d7Gsb9Re!!^ex@{$}XV&BRAn0zd@mH_>BzV z5t5PWy+^2E94Irg=cn&4$0>5=IJJice>u)CXO2@Mi>a4dyK!@3&f&*2eKTz_nu*~g zdq=m`@w3aj&LO~c7B8|7v47SSE>617Smbxcc1BcKGgXhuukFpQo2B2U9zzEt4$809 zI$tiUN;O}}Hw`@57JsEcx>csde+_xHAhgAAdf@=~>rQUa>}P-4_AU3z(!yb*RTKMz z=(b*ia-Zr?Zf^ypCC20D@9nkqGx}Y1(K+8xXW4K^rn z|AK80u|&(0d4_u^H@oRQ`49d_-%hk=#kMm(W^Ow9CzEI%iQhdeH;LuETY~-md)HYG zPV;HE205T}WhcBy^F3RT4u-X&ZWw=mcmPqvO~ryluHXy4iC5o@t}2>z?Oom#fG|1W&N zj<6sfyc<9iU=C%b`YomKwkm$_(q}@+|6FOXmkQQW;1GZSfdWX58e2d~P)~I58Eds= zpzH)!@Tccd;iu=quHXCdU$z4MVeqK1Q2xjA0!ib)2b|81|1%Z4mQ;d&$vOQg83K&> zy|iHb44OaP1tv=%@fmU8!l+j+1eCQ#de9mImf3ftF8t-*r;sCl z_rL8g_`gR42zC83{y)|o=zq;T0Q}}N5wF`QUr*>2?0QoQp0#xSACpiIu>GWr7FgSV zKgX9s{(6qV)S1PGcR_-`$poT+eVAkmfM^blC3J{@S&KT;0W^~xiiq+!3;ow3gO;(+ zxL3flEQozK{GVr85bWav3?=_%=s*4gqGrsY*gmpzsSwTtZJ45a`s zg5OJh)@b+7?*&dgGo0og^kTv>5W5i&yn)>`2t4RF0JC}x=$DZ=LCKN5Pk!rM48nHX z#KR@`_ssG*s`D0wMufk~Jk2SNPl|odbv>TG5SiYwsHMeUu7&(*(>-`op*G$8^n?`? z>k*&uL~5Aeap&UB#A0WxjYITI<|viT!}8M64b#JblPoEN^FZgq@yfx`72_JIjhDL{ z4r@yOK<8o&<#j~3Z-mvkkVHO36+1yMBh8UM2L}h+m{4O}&btTu6N9nRrBz6i36jEd zX@Li$Q>zmn?8=V$3tOa)=MWOuDg)*q_Q%I`!}huqOgByEMvaA|GQUvgXLL=uQi3gQ zT-8W}W)p_3$*8Bycy#Qd@iZns{&8I4lh*Vt@yQ>sQ3a6~9oM(?TFlBv_Hw==xke~w zi^qi3O?s}4h3Tg)wxpX?KMHGEE@(O0T6EvO(Nk~``XlYe^EB-m=>v`CiLq|~tevrt zE}pGfHsSl?0V4XPbLK74<4x6!ZTRY{kFm%HG%se9lLu-1&0a>A^%t!?sz1=Yp$dH0n?XxurSl zTQVvt=+j~wHi_fq*|>O5`e6Fg(kplRphy~mraSkmf)!P2-k%qc=Hq1ja?9dt9j?kAIV zb_xKMfE~|=mHx^Yv3YvN*jiA*h0Jv96_ysjTsSOdLu$6!aGFa-5co6bxJh}i&Eog%fYYes}FuYf3A5h=Un+qPJ z(P$q?H#CZ8o$PpEFqn6~@(Exwh$03USe~;ZC1n~|s^ZoOQn%&8z*3DPlH-D9bFl%h zLPD84jLphgIiC&30}kj0Di^ZZa5y=l69f=_`bF&Iq7Ie=!HnovB|KO%L#a9XCLl8a z3d1Fk?uBcErKDm9=RVJpa6g5VNSaPx< zBEyy)TRxDXaJlUwyFnA7uWl?^SS=5z3eYF|LN?C{7}@&qfrf>vIwQ+9=)=7~e2BpL z>I!|T6wa_nFzU=p;`po%hz}|FxkxZ{USDVu)kYKHGpRwMSMo3llV*qc}l&=A%VVmquzXu!>>@k$lj%(UT()}=xMz^2u6 z+1g~QgtMa6m%weB&dLiBDxkbz_^Av|10Fx&!4`H1Bu?6Zw)V zCzdG(X^R1s2d3EFAoQr$mxCblX{2A`#>NecSf)GoU5&pKTjR( zOnOyE`6f4XWyZEhogS^v?axS;55bh<2B({)jy5r3hd@ANA8uKtbvii_C^`1Y>u7JW zoCN7hQ~r`IB;MO+ciu#Y#;J%@ZzD;|I=#?H4Uv zU1!~@^<3`Fakk$Qo_3HJb>N4o-55G7-YIjz_`mX?bRrMb_TEY<)lPHHEzyYWwP&dD z0qRvuDDKRQYq7J=#Vyx5>+jf$tbN=Aj(*a=HJun;a%5)+t5~0?m^8s$=|;M`1~6(e z$~NI^S@ew0EsG{fJ$7_~|)=c?J9+mGS1y;U{%pN$^JM*S|Aky4Y1>fRZpXnC&`*nQm*CT|PDUa-&<*rq6U^ z_8$FayREd)<#I4y{WBnV_XM-ZZj>>x_|u0j&Rf5$lUI0lORxLzlRM!y^%;ktZ+mU{ zq-@9aOW@P}*ZD=fA+w7oLyexhjb4keQqwmliv9I^e${o}fD};ChfI2UjFx$n?AzaY zptt7sFi0$KzGQ0p(f6o}6Z?~;nT%W4KP;*R`JyEw_~!z>dty1+$n|&qlj1lJdv(T7&?|bdMHA(Q43g|rS0B|W-Cn;x2A}V~fa_~Nvpq%Znm4gztC3J9 zAeeejej!iAJ5fx-kLPLM!*a?8cp84~BSaZ&fy|1p@(yK)QzwyTK#hZ4%FxCFgBte`Q1 z0!t>SIU^JN6GC9~=A}tUB3{xvSy14f44sgv+vZIUmLGTMMFB#9AVY+=$#e%dWjO5y zTXiwAwb@-n2w^G4SVkn4OW-IE(&sBFfJSf?B+ZvX zI05;QAV2%XRaFOvRJE|aJ~-udFoMtlC;`>FfB7o0nqYrIGStonPORo>ZL1Q0j}F&d zBZ2Qd@_On$g?X?_Pwu5||FIJBN%0Mf!@zl3xr8Z)LL)^81fT`dB1#R=0gcU=CnXcS z?FTPr)@u)w3G%W4r65n%Bs*38dseUt)UU6jtP+qo^J@J1$%4gR{)2vyf~6mX>{?`x zJvd`SvVw+{qOV5C4gt`yGVxIbVOjZ5)J4Bq4mgV{MJ)dS5AY8x{^B1z`Wycs;f#OK z7WFI)3ni{%$&eRV0o6dR4}8cQ8Jkzm+V|uc1_H zb6E=N_>Kb=x^;K@D$s9Lw|E4tBouR?ISvVq=K&xe?x8Md7z70YD2cE)ss_O3RyoIC;#xWk3?2^l~{ z5NXRh?p?IYI-bNzSq=q=mlNb!YI!G?9j7&ifs z8W=BukI4|o&^a%Q1e^mpP-}3{OhMn~h#igshqJMy$6sC6ELcJTj>asj1W~BSb{OD1 z#u65~q;1nHgFA3K0Q!SgJ7A<{T+9cPzcBzH9@q!#$IVV~vta22kpIgu0KL}cSoqpV z_R-%#wm1Z!#Ob#uOge*@*}3kdwMMgU|BNW!)v1d6flUkZ4F>2y-=LpNsReUk|K z_1K%*+bi@=+$ZLeqaap2J#W2+d8_#hh1_wM2sWvUDiJSL3y~QEi@hXT{3OT&vX!Ar zb^4-BN3*gA(q~)*&f8%=QcVGp#|PKgq7#pFPQNEs?rE(|o3tcvL3c)!luu)~k)%2E zBy}HC5_%n(MmL&cMuQkUGY|K)>{XaXr)Q63jiayis-8|9C>`t-Y8F1h+-FM5bz3V7 zG<7{csnYTs>AycWv(?p(bp5Q#!CW{E#H0^QPIuOhx4Jmnj3tk~V-Ec)^$&KY3tJ?Q zcFyW3SB_6=zj5Vf^PkmGkeEG>73cRh_Ja9s)g!j=LI+=cJ8D!dG`n%!NVd_%|0*Wx zIpn)gp(7#eF4x%V-H8KL5m&bJje=+o3DHu&UOv7%rPG$!d2`jqWIFOi8tzK{iCAD;r(Utnn?t(&S%nR+a|3T}Umoxn;NF;cXe`-< z{`9ls?v`uBtTfoLW+SIo!+3hT!l5iOHfO$&2nF3!o{DXr&__PmP%2PVy~gGcQ5 z$CN_E9sS1NJ-1CSi1mNM^s*!!I=;2_PT%@f$l-{4^^2Zy)8W~DYr3=qy6LWW`vC@~ zBTZh1Mu-)tmRIRz2kzv85pU`0(Cb(GlGnveW8TO9@wqb~C=H<&THi8?CaIc^851dm zi{^BmdY5er_(N7Skb8n?>A=q9smhOK5W^AgvdtTZ{v|KfF1xAW)Or%4Zst!`|6nSU z-h5)bW_oJ1OTb^5mjYcu-ijXfa^ATA?Ve#ky?cs*3G(^J=7`Jz7H8jbj8snsH{)2y zn8LT|`58Ssj}w7c$3D^OZo{#AGJN|@NAz}uu3Ty`_u&W&Uu2z`XzW$Yxy_~9(;o+| zcD)5`q}n@{T*^1tTx6_DH2uEo`tzrSkEucSUgv-JudSH7L=InsZD*W1+}Sy*x!L%P zL4HNNc6Qk{IBGAof7bWddF<$MfJ?yXxwN@AcKfrR(c|*zO{2l|_WYJnN%`D)&FSxw zzqV9V{9wMHzT%hwn>mCycFneE@}?5EOu?k3+&%U^vt(qg(5JxTRi)7E^mDb%Sx zrAwK1jx4yq(u?`+QGN9(e6_Y^>s^VPc-Avyi;8}R_`PXfn}!)R#{+9= z$ASAz3>Ru?n~Y*N&5_shrDIMO2SfF|?{;1xsaPXB?d~Bli8m0xJJ~zcGxXy#rg`Fi z#+om3VAI&MdfsJfdwAb^3i{l4dBA+)Me-!Xj%I;-Hrb2Kr4}a1iq;Y-XrU)IjddGX zv?yGeuyEBhMWVCoGIC0`dN_?Ip4ZB(ro*Nh+D;@2dn;9Q0ipwqz9WjcQx^q`Q1QrBy+HdP3A1O9{@>HSPc|g}q`aLdbpf8b*OXGz?UxF;m z>k(Hs>2}l0^Tg_b)VdD==V97}4WNUp`4jk3b#G4a3%DWBy-|LT&JVxL)lKp+M-P^g z;|7wB1P5h9ApgVh{?QKt=1ZVcShL0!ON59=SQg`W!cvPtcZJ6AB>?X9z2LdoFQ^^^ zIt1<+6XGSHLxf%WFDAruZ5XjyX%^_FaiDxLP%#9nN3m+xCVtgM4B@k3nGkANCd4=R z5-pkm<>3uF7rJg~z*KXBRmdH4O3m^I0c0!f%@M`%0&Gha!Rw{0R>pSJQc-?c{fbqoO!Xce|IkQ*rkm6dx75LD%AT{E z)@XkrxDktTp@>zVC|3Bgij3O z93s`7v@7fgz?>+oRH4l{c%6%k*Ah*I??lW$e|;1N=B+gFIv z!HAGz+$Lexg&+xxHI&hv>}IyjxX}t`vQ82n3~t4_!72<%yP%6%Hb;-u6gSo9Zu!<^ zIL{LCGyPysH3H-R*VvZ_>R4_6f8+8zrVuj5k?EkrI}buAN@eWc29gdAPB=%$ky3iA zdvD!aAx_zu9Tk-lg(IS*Q8G2FP?|O0#@ns?`>g%!{l3q$7T@o$Kf-$VUVH7e*Is)~ zdq4egi+SRwR5yC{;>9~BZXH;4=Y^Ry=WTBCr|#oNuGrt@l#+V=jt!gI=CN;A-u!Zn zg`j3FI<5S)#l#J*Yy4cd@}BnZ)wy%^>wQ-JrTu$dZ^6%p_Dy_r=(69=7%}&j34h;T zd(X0Z)ajjJ6Xy<^*}D6&O4RF~Qu=w5^Schbwqzn%9@ez! zZ5jIe{15PVbxXhNCm*=rrZ?vuJv!_24Y>Dw%H0>^a!l&0hX&T~kHLG^z2~RbKf3mU zNh|U9+ILqK-+t3;=bzI1r9awKe*V*zZ7=@5=iN7++VsFXAAWo5#$W%v^M>oD{XXDR z*d719&4)Y!xnU%+{F$fibDUGNp94UD9SUl4JbMtS zU8Hp?cK@xO`uYl|X0;fehWC=g`ehtuBPMmq5-H(WqT;&&!>WbwfQ-UN9m4oV1yaLR zmz6u6>vkG>t@@1|7S_V|L1;e6L%q7) zZDaDRxcUs^Rh>WNq=q0N?is92j+2AJPj(Xg6(Qa4i;GKev(b_9O`h9&$JX=jI%EE2Zh6>J9=l28y`A)XO|Z<*OyMe;^?{i zZ~N+oclW68dObF)^^42rZ0tGtzk83)`l{g5=`D_yp0>QloaHqK@BZesS>@^9etf@Z z$)~fPANB2T-&Lv6U-y3cz2ASkXGD!*$3A#$^fx#DKIK0@mmdAsE0uk&$L-_vH^=&3 zf9E%u)BY&?`O~eBUv{iThY>fgIkcjDZm-(6A8h`4_3Ja|{^_ZA-#K)4{o+$r22A?!#?ks?jsP>zVm)>D;ahK29%KTmJg(o3EYJC4cVDkyq^L zcHN=NzyJ8!(ss8DnNaV-M?c+q*4povlutYJ;D;Yq%zSL#jTe5lsKKP`D_75&G`ikj zK3!k`HTCr?d(WLR>9fC#oSbglyyTs=m*2T<;p@GZwtx5fna__r@XXh5b^hjy`@cKZ z{+EF}XMViksb(*%E&sXi4-aQ1JXcs_)>DzMX202g-|b5_?wNgQ$3N;_GG)T3`!5?e z=jeuiY<%MS?Ry*kHNJ0Nm!D35^})4k-uSKSno0Nkbo1HQxMf!lxZ=VyryV`z*NbLf z)Ar9x{`o_@?N1I1HJLT;owsVA{PcBAt{XMv)&>{<`}FTW{c299|E%s>bg09YgZqE( zQc$$|_q@?Jj2loVb9hqt=%ahwR+qfFsmW6>UtItF!IzCoU9#naUO#@n|Bb~bU-IOh zWed(Kdg!k0*R3z9_G0h3&!0Kt(A}AXe>wD*Uk|p~GjH9WkGxuvtQmUoy!w~ay!WGJ zJ&VU2zWCC?(;s|vN37_IuRA~X{>&CF&sa3;vbyVP&1`qqoLzU%?6B`&yK4T}`Oh!^ zoG!rE>4wj})$Fx@b#L_b<$rFYQd{4iwdRpCn|3>O=JqDr<~*E#-KpEA z+_1cT>+17wi_aZ(YxhPo7wnk*{pu$sJTrOuYu8RXZ|Jlc?|u5+Wh;|?x?i>Qkqxge z>u_ePqg(#?vd+Y+K<5Rn?-kJQd<>y!K|L*Ec*G{v3 zd;5WzttWl?_SJ)1?fvi3&yM_d;FgWU2K+dG+iwewjG6tf%U)Ca-#uEqWd6Um-#YE} zbwj6a+5EyMyDodR_qLU$l2Hey5qrV@XJL%7LN55ac z@~gkz`^e(at*hQ%T>FQ^A1q$pWZ@_G{rh0imp^UJ+Z#)t+hxI;%$bKSxnbt`+ppd8 z;a8DcN4#*+SMB!x-t&z?`)9s;<_*o$ueQItbDPu+ug+Ri*{$gxlS_ByAGon|t-Z&7 znOW`8i}n@ud4I+ed-~ru=F^Jgp*w8%zw*cDFXW$9 zZ`OJ3lS7g>G#>l@-oKr?{;ikJ+@mmF<*-IiM~-?L%q zgjYUTe%ovNm#>|Y*KWhsm)o}d@TY%1fA8`OM6x7gD5`H7#+*)#2`l^3tBoVzQXSvCEPA5L!b&g{RH)VOToHC0<0UwrD8mE|oK z?#`P%U{(0G4FlR$Jb!P|zGoU06pwp+&iq*9x|`40x3B9N6UUYHO%*i!rCIeeXJ6R+ z)`6SOezP)|&hMsrba%keX^UoeM;`C-u3?I~DVdMxd zCoOylkMcir&FT)fTs#y#F0RCz`i(a4fBW^u#j!;E>`PiK9_G*U{l;E2X=>&A zho+BvVEse&@5E#KOl8Jz|y!P!mpW%u9KF2onq`THvKQyENoo5W}_tx+$-T#-E_levGTKP-B)?$#Au}8q-m=wJ3ZUA-nPo-uSPbm*f-*o5na!zxV2ko#0CA< zoQ{y8Sa{Vl6HlwP z=ASF3EZ%T%AO2c#OTTv$#lzcfSn#)h-n8l4=gx8P#QT_uxLDJ1{p8vcD)G9_mxmT4 zA6vig%q4H$94$C+#JSIISozwrX^Xl{ocr#D_0C^BXi<+PZ_W$VYya5zNh@FLamuRG z?%6aTv*VFI#i!MJqW0=XhlLuof3#hA^uq^=CpF&P>Yg{}hw9|-eW=#z>3Cmf{-yyt z9=Y$e1^pJzT{96s*EoMtYH`;kfWAjJdq0^o;Ml->JJlZYL(R&K?I&;l;w}X2R_0AC zsCCEf13-6WKIr~?U%W+F&}zV>ftUX27W{sC-;wi*$L=3CacjqdI)8g}{<=p(2iLy* z>wsrgY((yJHZJ2F7zPZl-1Ke7K?}jZXFGmb|L#?99X@>R)0qgE(&v#}h zMZb?);MA*lrh`*a($YUid;m)~)N{CZE{JMb;mlEWG|Hv;=dKF8Z1t$T=DR(oDa*8VU-BEpVDISd4aGEXVvV-2on5@Hqb0f3b6J z^)PDdbhmYjAw&_6w-~>M>b1g&tD6=>imEmeB}<)CE1o&MhU#1CG*Z9Lh45h}jn$;3 zPAlE4S{R=Xc*4nR6zdibh*&scxT!h+^%Btd_6CxI1Lz)F3Nb?EnP#^|I0PoXX6>P+ zy6j9#w&rZzWzIkGeUtCVx3jk zcfgoqLi=0?dd3qxhlJNsC6(9#c-~XbucFeq6^{)xP#*QF$4c-Vj}I8_ab>kQ2w3Ta z)b*=@Ui0`}OimR%;7n0B-iIZ;emyacl*gv~oQA6FgJ`$;SxoGrE!dNL?|13~AE^)3 z?S4`&sDHfQS)>-PL$^nfuhY9OlXU8k($ty-f&%uoAkNgFfo7_6sWAjsH&!n_KzNdB z{j*@&4-bHbt&idN-76ud-Bw|8c&15D?xIx?gbDQ94Xd0E)sk958>^~S&V{P*9;XEj zt=g{!wq%0X+*}P^?Q~T`iBqH~m#ijahEq?k!!A3#8eQuv^ZSJlf?4>U7BNc;X#Izr zK6=WehO|yP`XG2R>|SpN)lg_~2YQfDRt)Xw(==gx`A$=S7N@9RA9Ai#wI2oHa~6WJ zGap6~==y~~0*Sj4x&e|%Yw4)GH9$XPk@rhSHD!%+uIloLk69IMdOPa9H4sNUGohIR z6dl#+k2w8ErJS?|qJP^X*q#woV&{HOJ?!KG6!sdN`lxPzZxh^4I_XiTFScdn63vBL z4MTyg6+vaQ#`E%{&bVsW%3AJ@jC9q|wN3*n$;7Vp&V(D*I#*YZKurzX2nEv@Y z`WYhDiiEeVdUCB3LmR9d+EhH<*C!?@metzRa{fZy7$X!e_b5|~))C$KjF~0~3ph^I zeh7*K+q{Vyu-<7gmUEW2nxPcJF=lxHDG0wHm)(zR_vYDB^ARtZ36^8a*D`HC5}Lz$!q~n3MVB+PQY> zJCf$~1}9Ema=_$IZ>SYVu0_=F8ErbNBO9DjC?Vptn!3rU-7ped6nwKm4{IB@Qy*<~ z%G8Ke9-&Ru%uNtwym1Usu3EmyiJzo?e!%|rOO^iZI7e02P1vTRHe-u}#wWB2sip4N zO!@^(r(VjKHt7j6hN_{K9l-g$ zaJzo?1uSigz!K>vBg3{ySJnP$=T3A4W3`pgKplJI^EQ+6`&hp z+*BQT0l05}1`|VdGv+>!8njxl13yimMo_M;RG%Fnws0+oUAGx?Dc#{rtp>gH!44;( z+CFC2ZP&BtMCj@IH-77+Ry+&5_`U~tKebvq<^j*&NkGHJ(w$Brb~Ogt_B00iRsROQ z(S}<4JZ3qVPK?&iJ3ZBmW!Rx#?m(-jo`WSDRiVe7mR_U(zJ!sfQT1pjsz+&%4y*-s zmzGkHUxT`oqx;Y&AfvFO8mK`pKpjM3;b`e8d%+nWLSfzpH;N0pY~QQ^L_8Rrq|WMh7KxrTXk8 z=Nycn+1g26{IXNOdX&^8jfVzB>L>{>rdj~FVet98oCfqYC)?;F(ngx~vtFTJ43{bspuP=f29##fgf8(%{$-3{fB?PbtN##lCw=Hi-YKfnUS}-*ZX~mQ!$?qbL7%OA7Ha~| zjfZNmyse?8?898}db-}i_wIA1<5%qbe3jTw19WhWVS%68s)xxkzH`6RnN*FY@eo>7 z!zZY%2B@tX9dLTlN1f^CQzAhVFbc!QvZO}M@a4F+6jFJ+v8-!f!eamUoO4>W&b8H% z@orPirc)xpZ6C$MK{D=1LYtWSR4Q|z~gWIbbp3KsW zeWZiigI?DvZ0DY;`PwMuE^C@Jp99E}ob)*K&0+9WzkvTo%AH=VRni-c)2N@jS1mt6 zWAL0+lfrjEL*#bcb9ZXnMY2uG@7qI``8MHL%#&pXoCCK>YY0+OSN%d4zEmER)|3#RC|qRN z8>vU;fnNQMYwQf77pI+;;Ewa%w$<>!NyED_t1IWbZ3?{Qi|8*<4bO|jy=9M>kJU$v zFhxV&f_DDAW=pkup?j)DG8#%-mpMnxhwGyT12&BZH{u#Kf)X{07B%EW)25yMptR4Z zh{1^7u`o+|{I$v)5G&p9?$Wo zx2IB3t+4V^9+y=?7cRP~xHs37IYUxO@Abcw;djcY3w(}Ui*iaoGB7+3U;Ebo#>cL` zKf~Uie)924+z*>4>)u_->uo*{n-ir+a}sW_~yOC~fvp+MHWyBcg%9NHc0) z!HL4oz6{SHddSUY!}EXMzti4~@gRc!H!k3M0J@25Ao|PT!*Ms)@D-Oly*4zWT6&Yy zmV|kN!PNci(&;7TdC9!)7Zi`1rtkC`{^OE^$4>mklO^P#EyM^RrFYG+W^4MV6^3pw z^NOhR7rJ?u7#>0|=w2~%mc-3f3kbi4Lr}dx&33gPbhodIvq5lpf_W+X6qGk3$iJPE zz4&aeZ3H%4IEoM7)8mYPN=?gy8KT({_VuP&cyo*zp0VMhs(6vxuAwzJE-ah|GbWOZ zsilkDmfEpf>Ne_Twrlsk(B_6$-G>&I6@mHGSdY+sXj#!U^v|SPdzITpjauqDeeIWL zbVu7R+tFJY(=lpRBe&%-7Gj4Ozn4w>Yc!rf_{I;SF(TZ3aM877k>M*fcbo}w&U(PD zIW%fN;X{aQZA5M&43W2^C{d+e8tPKedib&ymTq~<(1;k1or z&LY)vs{XqN1TL&}>kNsS!`nmV4S8Z@!QEg8_EV_#KSWZaA4M>tXkT17(fXRR*-~f- z_9LZuC+0oK@Q>s>=g<%~_tMR12=U z=@sy@crnB=WZ0*1{U3Y99HthRq1R6!rKuo}L+yhh8tebQS0cvh$YS-R*M}7?)Xnz+ zYuYdnSR=+pJP|V^#)8da6tyli5S<%P-qGE&l^4u&AYETU^RutRy!eu#uCb6_4dw?7rebwcd&KQh(hZ@ zooKekKD4+D!F~$Wjz=Mo5#v611pe=*O2qiES)^Ki)%NEM3(vAnFA->6QbC~MzacO{ zQRP~<@uWyHw?!iME$$qa;6Y+j^#h8_v}s}~^eh$Y@EOym0Gif69^wj%-A02WHlCo# zX8R~=#lqSzMl$Sx#&zs&2TZ9e*SjsM!Nk7lKDY5uW43GV8tXW_{2X<{%-b-?7*2kI zDY65sLwtM5MpP_=1X80TEK<3b@O2lB)F>ljf^qUrNU1TAtsEG_1C*kq5|sAw?I~+S zT1q1pi{Y%XBK=qpiqlw(79!H@f}apez$}XxZ+icBvxoXx`&8rN#}B8-P;YqW5vT?e zF0C=*Miwe7ZPh88LY;g>uzP-n#IQaPejy`2i=wk{nGY{MyyS%M`GJ2Vo{q#HV*I8TP+Wb z+vUxcpEj(sy|r%0H1@E6@(8IB4+mSjmPoQTtere3$y%HitK1=~?FQ16*2dLHxt(T7 zHCPO(0owGIXmq)KMMtAy=L}yMYZ_YGj0<8H#*%Ip27&o{+bOjCBm(awp|D%B)<(qI zwOKwG)D>u1~M;Ed2%6W5Z&*UZ{_X3ea)8Tk)ev&pPkD56zUH6&GWJT>lP zO<_F}JDtK7wOJTrq52617VM*bVQU3zG;AMb(U^G~>p6f1D@^mYpH|Um*dfH{ZLL$w zP1D@Y+nUqfyu--1z#eQ#)d4ipP-_*_NY->b5r?fIVCffoEsQi7VeMS z32<|I>hLlG+WMbkP)**tvA#2NO ztZdt4X|-s?kwR!-gpCSW<5icl zTs;okI(&Jped$qeC*x-VYFYYjh0x?;X(1b56~tRCVyj?Sjb)_a9+74(K#PToxDBou z#@c;kSzsx*EJ$k>R7;^Oo5(f%)dR7;6tb8NuZ^wgpEQ#3gk_N79$~S^u_aevF;g=< zkOfI0br)g={X*89)kv9bCXkwG7^EJh>d@WTMdxjWKVy@|8W-P1e42q>6!L6gwWlJB z%dm-XS*!I#lePAxrAw2k4$lWJ95i)MYLtr*gsinHklEgvFqNl!FLvvU3faJ#CWY-3 zAtr&Hl9g{OCYDl9OhOQkSD^|~qSy!P+t-@0dLXt{vI7}14Lf~e5=DV<-kWY?HGGHL zGGlgd{=o90DJX2|oR>D|f(Jnvd(tE>JOC5R!m<0ec&(ZRINc`38d_~q*9#bw1M z6AH>or_2~LqjO#aS5JCB>vo}QGgm$9w$B*XCBJa$R9tTFEL&$}&}89UrGo<2GG0gW2-t6p&P zsI2}m{M(Im1CQcRM)+47!nqH>4v(ADAfNc{5nfPUR#-A^d{G(JBx&@S?`J^cmeab^ zl)@5FLPF3v4`0kt{a$oC#*D|CKdyA_bo$9mIBo?y0Qc53q?WwsHmio)ahqOrdlUVd z)wN%8PpO7y$y>kVHcObOco1y?WIJKDIs1jy5@CSJFS&Vbj2D(aZhGms>q?3WW~M@B zQLqr;+MJi%rp-LXn_pBo?K-c)n6da3_u{s_R{+``J@~`Qyuqipt7M(Ia6@B7jOEF;fdmiY5aOD&BViPb(8s%AZhFUQYXPT6tkv zdC@p*L{v|ow99Q?)7urQ@TKZ_?AF*M`B@1jnxNeV?SdR3Rdv-aObwM2b9cFI3yc?< zUt9vLlP6nAwsJJNcx+M0GzosS?NtO4C+r(C3 z=a)>pF1I>Ubd#tme8uh9R{X%qrho|QGgDGpPRb;1LTUN>-=2VZ*0h0;!Z1FOfkXi@ z9-o0gi6)FzHxMmpp7mlNT3dLhWq!%bv8a_N8IGzRyWJK|jE|IGdQDN;HN{1w3GqTp z@ou+E#*|^@PsQFL>4=!jiUC07N9`W+nuO>Suq$Oi=m&$=)7iEoCI*<17}E|@L;aq= zT?WN>8W?Pd`Jukg-w@}wh6UT$#aYg>9$jW@0=B22j+bwG9N5joM?wBLg#y8bj8!i8m!sU{0833~}`E9=B<$ z&UvOCfK1F%TFm-;h{1-Kaezz*Fd=47NUsf85HkrEuMH@Ucu^iTV~^W96JSpSzs3Tb zh+sak03RZlPb|O%y2KGPHia34rV|jL2oY=SMbn0eO=Ucr$AE}hYguUeF}g|U8lFV4 zSg`;%qgbk#@qj!uQOqJ9kjp6W!~;?p#Vq1rRfZnLHr+6dctHB1m`2>{O^+T-BW^-N zrWd9WH?cVb!7Sn?l;=S(7A~auWG;qT#I-Sbi5)$LX~a!9*7Txj7+c*yXd1@ZFc6xC zaSsiIlmxC=uixi3Z5;-=IWUu@w3emTdR{TiG+|;GrUSYr@IL75eQvwJA_2cGY4Tde zF`0ykM;i#{k_aqP9CJxp3rmj}$6S)e?>4Ku(k=BMqnWm zG>w4lCukOdg-p;aj9YC8!Yoo=ydYy1F@b5MOw7P*gkI6WeobN;DQj43Mkg_il!?`t zPMAe1Am~ZVB4v*YuNP*KGO?IZs%oFxurtIdw28bJ2tJl>c8RkZq z0mB71+ZMdx_B}njo6CyE7mkH5V+&65ubw&uss;Cgd%o$mf$MuY{-~jYcNO!FG{fD@ zxLW+Cds;6O5zQ|vf{9o(u3&0e=~YEzwV!AYyt1P5veGeSMKcOYQURL~myX|Zn>e0< z2tVyDiZ@18x3>^|PpJ#ua+|kISr?GZ=(0keDIHgtx7dJgE3S92W{%~a(Fa) z7}~LTw&E?fac^VpPXlFe$hv4(J8nfc2ZbmktnSP~BdX2YZj|BvshJ@YWSttZFVijKw2+>YhLC!&G zPH@K|FOA!2?;%G#-ArZj64COaZhyzEoxvyxb4AA2huC1EGd?J>!NhNTP-270QTm|7 z2J3I;=)}%QnB=tAHbV;)A+FdBlWhzdV%deaYYGzLRvlzpf`Yg`jE*+7ioM5JalEng_8@WmX?+K9d?G;iz(HaMqb%8 zGVPM;w8OZWQ17sNGQ|M!kB;PAm3jB|9PSm2};HQn%4WHv~al6BA!-_edHK~qk z0_w~oZl{`FnSomLMfLpZbna9faZks-Z1ADmtZL5@chgBoku}6WYJ&49{8HZ?aZh!~ zM2%2F3;(D|mxier=>yz4eDXtgbUHXuLv8-F>0=CUyM(l|fL!*X%Zp`bmj!BSp0W-@#-j0lBmik$Lu zKsqTB(FGslu(gt%`w>f%wmUEfgESM;^afciblZ3~}QIKK)*rI4)8AVYmn7FFd9h{GEvbUdH*HrtEj6-aJU?`Ge-Vx@(bPOpPTt^kUWz_u9pDtjSsq9!x*46t_mZg`saeJL?Pe zS|+J;(w?ne!z2xow7#1MOY3&lUP6p15G_lqUZ1%w6V~LNK6V<;|7@%+VJ)BOC51X@ zIs>V?f-%Ju*Gl1IrE@-Wo1JRCkm*w=logKi!b#z@dg?Q`Jw5X9;b#cSqOP(2=Wg5X zmW-L%A>uXwHWTIZ1v3%pn=-}(oZwK6{v46rSV(0)cTcCMF8X`{UFFG6h5PYo4VZ9w zfu(K~E<`x50O8y6iDYY;=mEjCC1VHB!JvwU$4+e&wb787snj?`vs3Zdf-l_W1B}%% zv#7k#7i6^7!px~tAeRYaB?UBNfCkm@n0so*yZdZk!n2nykxkIDgW3#l*WoYTsQ8O# z8R0M94Dc6kLx-Wvy;U40w(u7(D1^Tl%m|jC@yWOuYOi17FBGb4qzayM>#D}b z+(unvTHRRc&MBIPqYTZwfqmHzL{Zf6WA5o4Y`$^G^zzBYB}HhROPv%>p??FVT6oMY zt_}rXRpU$di<8cP7aNY#e+8jrr%EPLBuzTA^$c)$(h13i?LW z9bdb9``~6Q;ve*1UP)eU`ZFHK?N|;&;Di`S|7F|3o5pi1i@tFOWn#o`|BpbUFIF>H zk~qy^T1f<9xX6vgVz3A&3RiSv6j=?0GC8UM)YrsW=Ok%(219t3!;(6t7i1I zxd9knC7?JbgC&LR#G^EPW;cYAu_WDU2sTXXJKzBrVgQ0e zNFIub!(Aq~#org_b((DP91H@5Eua(FIiQAxDHqOQQPNfc7%-B9!e9x}H5OFHWe{gH`A}h)V1pje$ov{lxA{L6bi=pzW z;g7f_E|x!xw>KDrfI_={!J%S!DzK1H2oXnlC>8Prn`76pwFrgd^k@>H;PQc=l9Yd8 zD0F^22!jl&lYRmUas${;QA%PnnB1gcxW8%`p&(;`HPK(KjANEkk#9;Zuvfp(}9qG(|NhCCh_nn4(n{fwjt-u0rV zJ@8*nv*2ov&WrdvBg&*x;sF>!BVVp0JJX> z7zEiTimWggUUTta3ZJ;EoxzxFDG}7owy{bDuoPzsqNc&K9|Hjf!-0*NKqQ&1S~QVL zk;hE-N>=S5%Ne62M1bHVq*}o6A_|{a3M}A*;GGx2JS;9nA9f?@u4jbR%nnDPgOc#Mg$70!J~awewldjto8JIZ7MeS@Z<=09q~#VLjh zl#~Kv2z59l2t(pf%ow_t2{krrjKVIgZvsw}0H(MEqjOpkh{T>i2&;*!Y~1FhOjdB< zL?Y}>E~f-Tq_qSw*w%uDY1kVaVGpTwyna46~5&jJV$py6zd;WY!!{us10w}NAMQjr~;nNSSRo^cHqgA+_S!N9-( zazVl?W)X^Q2HM4;x_DpMM0|;3cvB2c>*+meos!|(K9<0l#e_SCLx;PG*tbHsVdrDH z7)?YbXD)mUb3ElX0i0{05MxO2@M8hWAjl5rY6MLP?q+zEsqh6gd@(hH*(uN|^0vmlEzgY6S6IuEP^B8hK}INO3eG zCc>>+MA)%*VqjhB?c*x=kNQbr3_z7qI@;Gzw-a$!2$HbzKwuz^Lr7pbSpzYqRbWZU-i*`X%7#%31#<>NUU^QUSkBsPW zhP-MHj4^``gWymM9vm8mr+rypB=@+ILSK=b0!&{d2*iv5Oz`~)n0`Vpz!?PQxor|g zyqTLJc;Z4hmcWGo+dy$;iKb?0AyNNU%;p`I6ySzYS?j%mw_^P zI)pbwB13deiSr#9Nd&)GUpkyPK0K4n6%zVJyqX2fKP&w>bm;m?fNEq~xaEb%c3>Rx zb~wa1(J0LqT!lzyO-Qm9iT^mXb*)KYV0b`0@`ZtMn6rUX2$Hjt68MB)A4WVw$QFE} z3=e~$vz$o^Qq5gS<9tb=M)i%HU^@tiASM|XdL|7A$}n`sz3S{V?;d*EAxXhfi=pu9qkdmW$_>$YK0hqs6gQw6YX$Al-Ym87|R-~7tj#y z1xJWlJP8wCAChePVn<*ics4C7gx3Cp8!l3Bl%W%BMLC6FD+&Cln&3p0;X$h1G7V=K3iiD18;>3Fp@V=T>AXUs$dW;GVg$ikU0^< zcLc(-X&%kQ7$VIBn7&!#5pC>0B8D3g7+9C|1!flwBksmz0q>CW;s)T;_xo7i6i;wO zGN6zf5y;Sq&=1UA{a{rPAySQ;t=JD-V`9S!R}A=~G-1vEtfT|T1A}O&KMTVK)^`;d zOsp}qBQn&STgb=c)Vyc^QLdaHpOl&9ab6H3cLYi|g>V5TI0K$?^E(pDz@p?V#9_?i z_RvPhtLi{05}O?+!aXPS)enXRxP^)ky^X1Rmi;&n#C})br4XgTnJoNGz`$NUew^il zu;t^Zvsk%-|^GYeEiBRzN&2o+=21DM7~(KdEt|1hb~t zC3qYqV3~tb;L}%C16~>dd5#${EHax3qD#U=0E|a!a9)a1DT4XO(Cd#u!aSIPN-zX$ z*}$mvk?jys5Cno6&VC%LJR*%Ta3e@|mYNvO5)bsFvosL^I}SdC@Wn*1P6WgJvq}|U{dv# zgdu~Kp2|14LPQOrF#HhY<4JgE zzN}Y~TPz$3fgthiRdeQL}X z_oO*KSuh04K4IJCoIiM-!tDW!hcBphRQOS-q_GII>kcPH;zN!g7$~CP8(iujP{Vl4 z1?^xZ@Y%s3WHW|B6A3WDL|_4`8NpNT{2|-Hj}&y4MXNB=c#a0`vZ-0i1;B(uNU*GZ zZk;~>WmPE@4!_EPc3!2aPi6oUI|8Pqi01(&a`YJh5itw06)>T(acar(SY*6;ydCNl zp;C?yC3$S=Fa|jq`dG_KKL!bNg#?)Xs*Hb^pff@SY!HMs`MHH+WpVQ3@?jzuhcRX) z20@;gBa{_~RQ>Efm5C@I6!(6xH)Gs$0Zf=MQ3OB5X^V#X3sHd?1IDAuGzho&sOnl0 zi1$F43PxXKt(o%&FILzvKq%}Lss$A5iGpCR=c#&^D>LBJ-%c`<^UO*#lw1Hpo@>Rx za@&!q&vgL4Gr{w(RA$bDi}560i{d3JXowqMOcoH-ln8N(aUqN#cPn6so#xzKZ3}}E zeeX12R-zJKu3hvv$_Hgq+(1TO=r}<%MrJTFb$spg{-Y9nZXysda*%{5sm7ToDpygV zO@SR+;@s9osVJ|yz!(`RnN&ii+dFgvcWb%BxkVoKb9is>bjsd{3g#*%#vRWFEFIH)9a769IJ$ zf+LCX7m+<7Q4nMy^4QVhwjPR^L=`683gNjZz@z|x2SV>AaNcqb;--k_L1X?|_QMtB z)*%d4*a>WQ$oYwL6sbzVYQT6*3q=jVm=^J$fIN-^n22eis3FV^d$dC>6ekeDK0!3X zOuls|fk)pI0wtoexWAy4fk24Q4vW4hFW|C3R*V=JR*}~?=TVR%5%yC8U%%ypAU!CA zi}pC*y1P^iIwy7?p25LC9XEFpv9^ucWz?(zU14qV1n+$0kE6e1YsH#~8f zFU4a(c%~55@*E*-KECdV>_D7pX>&r2BrbPk37>7(KP&z46N0P(XW+GP!ycUzJaQ6M zeS1@78Woc8)uL)=Zp~ozg|0%}M(l9xWv_tOHy@nD!fwR1Di||bmE|UmOr)S4i4$>V zpt{7b5Q%wIdM!i@#YbXts8-2Y&(=5vLLu-VhNrktjF%RtBrXSt4T%zMVUVE2Mx44C ztg2uuuE_B4HU^gLhg&C3NjRuCdp*c3XWJR$6e1(n2@=Qk7oITVY=we_0hdMSorCaLf~V>AVi|yGA60d z^|kLg_+fBC#EfAh=Gb3buRrWdQIQ0g4Iudk5eY%G6Ip4($HO=<#YBk>V0e9j&lozF zyHaSVzcdh>F^M(f7Gk_S)=dL*y#P}(?VbFXf0l(vX$zsjr6z7lptFAbF+dEqHg`&> zf|G~&01H-W6aT52hM#4C>31oEgW$r6;1*(a?4*W~jX)0P4B`mPY^Pgo$c*xaNTmxH zQmPywK48ZUX+&i8=hzWGKUpG`fDuv+1bmi*i2z_srzgQJ7Rb zB8k3;jj(}{I5&FNr(LM7+RqyB4HW|k9!~>8c@+k(i`a^|wZ%<&-1lH50N_7>BC3e8 z1bh{UQ;i)VW`b9y1q|VHF8y$Ld2Siwrb7I|h*%s)lHdZI2nK^*u&?>#gcZfU+{~p5 zCftL@82Xz4B$(OM2i~ww z;3vz$jB8UL=q$>M&=A%%BaljzIf1ynF56MKP4pFZIL<$una4pWlnSz7+=$0jC3aY2 zH^Hlt1cE{_hOQpg=TA<8QF|b%M#;bI4CT*ehqt_WU;-8b(oDP^URTfB>&CmJhbeeT zAUaEJhHN?y=0hosW0VdnAyd%|B68BiZg^b!g(A6?L;6BFzo@gD<= zr^f(8g&rG(GSPAnQKEvr;$j3Dq1=L{cESmW(`9;QwxF{pc1Amq;{;5oVD!~rvR8TPq;&b_L%>@|2?W+y>3(s-ZsEkhR_3QX zcAkjS1BR<3j2I+ad6*6D5RdVU>HOZAF3{-bIKP=E<+M7%Y}BV8!Sz*Pg*j=tl@hlj-?PI{b= zf}OaqE4LX8dtsNN!i>9UAV$3Ag>nOV#-SZgf}<}ofc}YSAwaU1&jby5!A~5X0(ar5 z&Ow-hsBDu&<4P3gAROOxufV246MCduc*m1~P~c57F^<^tLEh+jvk%h&Xg?Fw~%z z5O*QD0zpIJS|GN?uMwbpMLYxuqJ_f-m?+$*zR0bJ8SC$wu^FdiMibA!%f8~}3Jk12 z4HdwLdIzh`ve7rh)unxkSUZmwfNH$@!ih#qpZUSSCmwx4-|Q2K=D^3TFVtW0>=a<4 zAdNc9oq>r6E>QZI5lGnk7nTJPR(N{X)NaXO4GRm|NW#X(sXSrvQj1g;$SC07X@P$38 z#$jX%4q`K${KvX{GmiIDvri0uuBUkBg%GO$0;%(_gam#%O82$$*M8;q$6_ zzu-Mf3V!i|Q)Zh+e$ zZ^)w>O6WP1qj7r$QJP#|6Pdz{^`|QX#Gv7EI!on8_a-Yp7|#brB8ei#n*Uk$hvDvsfpK|Dc9uRo68*>N3-6ar z1P8m%>Nk-o9JV3=fHaNRk+5!r9Ah5B_oBB#_(X8<$OAJ26IpC~1j)J3U~)VUg3?nM zLTq-(mI!5vRTnT6LFkeq;(w0)xLUwf0X@j6Fxxk@tRm_;`=l!xp{6`E5aSKKv!h#}Lh%;Fn z^QbBnCISu$oQ>^pEwVYI}%$A9x$&Chf#?X5Zg`UdvX1N z5)u-Ol%zQAkbRU9Ym^%D z?MZiOxy&GS$%AXCqeqsWcg7tLabi(yjq7;?>%>WkFqtr}ku(%CgQOuQg3pcNzpM%d zP|O71B95ljoDsEJW$3C__u-|b<@k&lDI|RPy!*hC@ul=nXkY!$bMURto&#{Li@UqKli==7aCe6Q|IMBIJ?DAO z`=zI*q`T@@HG550&#w7U)iqGY1Oa92mYGo6pVZFLMJQ<$KMLq)$<`XS+ML@g6nD8J z1)aWr6w`>yy|1E@-w)Z|+9HoUM?-YatcJ(Z8j!Te)6X|JPm z!^roG>l?B2OS4DY^;2%=ndvvJWz*B(q;9idU9PT254rO-p6oY#>RgoScIUvWi2b*Z zp7oB^d$6&>)mN1_T7jFtV!T2>X63Z#?`Px;cb~~Gri6qjS|`cTFWN2&%-U}Ml%-vR z%fQF~;4y9wgJ%qOd^7i}X2p$fTzU^}4T&Jnoku%N^eS!@6R#C#5z*{>4)n;RJ2(mu zBn-|No|kkIp!2ri_`U=!!Wai+cAXFbT_ySESj0_{*yX2j$RLa-IK(c#?5#~IT3Q-l zXvrCi6Xvqrwu>`H$7tnQ)6?a5o<%N4&-)h8_+pe%Dhct(=sYG1D>R#bnc}GelY7)= zUfLGDWVEo=L|2AaE#%O?TP7Reqt}u|qLkWWA!4ZAvq?`OzVqqu-V%+sr$T zi<~t*irJ?g1NztyDiW4FgS%`vt8YE$ce6Kg+bgE|71LHLYnh;N5y0Q1-{JsIbY!BJ z2Qb>lDmi)%%RJzTaJCUx0TYb$NwAX$ub{X&+cYhuGu41F_%YdC)(SeEhBaob+c;78r68R z>SX!*wJEKYe=P-X_FyRK?B+)Uf@J9Eck6~5Z{~?aG5!p~lin=%%+rivo*O5tbVjYt z%tm`X=HxMeR)^7a>AC`4%VM`j)@cfhZi}bR(KM>_%0OYNEa$NlXwwZi?O>@%|CMpe z)e|G~;Ov4USGwTFl_+O9R)_2Ez~xnMPdza|Im5T*O#zL_Z|G!;s(a6DMueH?80x}# z&o;EIWLP8PnU~R<$upd07Ns&haYjsx6X@oZm{h>;CSlv0Hfvt@&`qr85_G!!9U@h| zftsfybrt^-9sSucdaXTR?3aec9XX#LW`f#-2QEiDpZZ-Bk{Ion7~PyFEG(J1EeUssu*K#yBV9hx5Gb71lUG}dN;O-Ms?TThSQ^Dqt3)>UR?F;|zJig5Lt5h$*#j1ICw0n-3%lF9@ z-Rb4}Ba`M_>B;81CnM=Qs|U3m>FK>wRxfhXwdFPuYJuf*C~ISr3a6WMtM5J7Gf+9cGE3%cx*m@U^B=odOSbegQLL3jGrCWj%L@keJh|K-bG8hEl|=6 zZ@}AQao|m!Ct-|W68$9^i9H-eB5d-f+Ff@2-CA_3%)L(oK+^~Eyt7PrK^V=WaFT7f zp7`d6-Z9QqJ(E7~^lx7oJp>w#mX9iv#~DGhZYE=$Khfri&GS1KHcnPH&!-uX=T8?}gY-*oov(HfSxdRvlmp73DQ zmhd=!yeDX*3Rc8Z=Bj*d41aHFIn^-N8T4k^m3F)?jN#71E5*BQ)KhA59s?U}If;}& zB{>AE+$v%TcFK51?c!lz+Oze0ZMypVP#D=s6yABgj)0O zO)Gh2%;syxvDj4BuTv^TtBz74ui*y0p|m~Rd>@p2+-^9FPf8t6TLQ>OV@&ZTZVHF- zo}Amgg^KI%86WrWsP;-R-(d)!?U@(r$p}=?Yw=~&Uo(76AzR3>BYvV&cn$ca z>A^|9I3ccfbkz;Uaj3{rSK~7aZq*7;y6II3;a33;eASWyQIec~t}s~V*IN6M(3_?M z`AyrZB7Q#DEkx&hT_P-5n$$sGeCKd~vNig-GwKTXp)wQQ1f}Q8Z;zMlet&^J;LiDY zub%Bon{!t^(Q(;w(-7fkOAnlm`W&hX&u9zzti@a~`G#-GyJEH@R4Sp`H3g}fG7mvq z&CXU}mNQ}Uiad9u^eK5xe(d0p_H|bcF@kR6C(WsWZ7*G7a*aw@LcvT@RrP`eS}Eaq@Z*u>wFL*Wu8_XKOC zkcWh+nj44x2zj=cTW$&yE7-4+b%fE7w~&zo3UZ`;ln}LJW62ke+eHvlwFHnW$)*;V zN0DF=u(6=lwoknmq>GUxSHen~UYNn2wXjYxMk=f>=4zQ-n1MEAh4vP-g-2}s6GW1^_Qi63ABNG@Y0jP(z-E+83EPCgy;t_r6~U zArvBZHWxI2S_Z^qktJG0^+Cbhc*;-J+(wOn!`xVrNNw_ccO6FK+$j>W=w zN~F*Nv*1Hry-+Q5E&$WikC2Te8AwJ~X@=51HDHV*1fm#$-mTM^#e`TaTnE7AazP(u zg*NPN(dIuuso~4S;rE)X^>){sN~BO2=uTRQBJCp5v@uU-)sewop%nr!RgwKv^Ym3F z%u@nX-pc$;;pm~0iL27wfXGXIvmkP;NQk^XcY*>j96BF|MjasyNCi-*{$pkE>*uM0 zf;l@9`F$W^q;%}JwK#Q@S_tk=Y$;?0G}J=mO0@9>66%C)6MY`s=Hyg#HPcP;%+?c4 zY$K9eH`2iu*rBTOAdX@V!AtDWg8e#oSu3;+8qD$@a~0M(=!8#zIv6{JVs@ttvdKbt zw8{5^c=&R$`@k?sI)y4*2?+N?x@wO8R}x;)oKF!Ds@?a~*-ccQ3biW)(XaqK(d=1j zS7vINSbS#uG}YW+`DErh!@AIsf5_~-=`t7Ua3HW$V7uo3mYVy4NZCTWhxz5Ne~548>g-ZOO43X!dOu}*Cy2o6&oT?ndmvX zgUhACtoV>n(AA7XArt!z%V~+bFx9tVWp|fJljA^D!6Ga`i^R>bVdwYzuZcHk5cit! z@MU7p530TE2w`1Br?5jYtg@ypu~+Bm$|#NGP)ybv7VfIzk!Hc?xw~0VlOg-1*W5ghvc32%_MHiEOZ$>XkQ-3kVjr zSf=_)n??n2h4E{!ad;GD(G-o6>%0(LWU*-gZiw=6K*EG!=DB{PU8QRduiT$CXMZJcWMFNO&>cahYLFzGAk@?KYW zkXLFL=YY6oaU3M|6+yL9$fIo^Rel9Zr_{-V9dRhJRhGLcb;UygcKn)qSRoWUD3e z|0x+P##z#;UWNh}p4?r+7!3R{v@!0|U)ak3{L4+^61O|J5V&Uln)Cj?ixN$ju)3jl z`g3q5U!r1rJk_(x6P@HFua~X&YqqBAQ74ub(7XTns`|`qs~uR$)$zgOp{B81%j#9< zNb9<~lWO^npa0qQ?&09HQ;iXaWw&=7*!*;`*Kzal`DQCS#`ygU=kqDpKkw%5_5I8D zyZKfJ?*avv@jArf_akvF!bgJ+EcBi~?zy z0lp)a{)`MQl9G@)O;cW2_hISyaY)HM7tg)B)@e|3d#Yg4}V_MFT4{{+paf6-| z{p{h9hc{Ac8EioD10s3%6;S|d$h4jOqf?9Z*AY?C&UZU3r9_{rJ(6*~4Ks|TZ^Y!{ z2hUVC?2y-z(vHHFgq*3yl>%K?3Ie8~^(sVCCR4&Yoe398do}qhhIOx47PNtAr=ttt z0|RBNQV%u9h>a+YxD{N2LRZZdwyDF*h7X2}hg$$`*>L1&yk?*|-4u70v+|0Ge%nG-1{0}N5M3E8ArJ>G9~|&_a+cMfAb8l3D3{6GYH$L#M2+_g{sR+ zcDJQDOMH5=)huQ*PKtXQwSXLQG7riTvps=hd8Hlrep!vwIUj@2l?RObw)O@Wk1qTP z(GBFMYN5WXoaAV7A2rL#z|5C+z@XREml(C4JU3OK(E~4)QOq`JLM>oZ&V3|QV#3F1 z)(tyEWU}9|{~;`9ao3>jFiZ;s7&i_Y9G+I;EMQ$@Io}+d%_$md)=JF#3RjV?D9W$& zF3_?1YZ<7wUU8~CMiJsjZ4-D|kNMo#)4#I$p+5Ec<@{LErCyTZyWkaS zogV+qvlx@ky06Di&yp|<58bSVIqlcqmt%gbdpbL>&9;n{ORD3#oTViRgQAS>%flC` zzu0HjK7N)urBu2fESE_uv%;EKe3WD~EB3}s_I4|{J*0h!j%x-+KXGM!nGMnLX&Ctm zEyTF}qqJ+Ny=h59@nYbP?ie}#^_pyl3rX}I*0dqP#pt;`b%e{Jax`(?%h9p9!#ZXD zwDEFmxAd~bQcqY(?TlDY)PsXurQ`ZM=$12skF!&&qxgt^Q~A3X!x?L^THxG;ilpG@ zH%0rfw%)`V({VSziyANK%BB9iaah-{+eazAeICQ5Tc$5NHMUvVtYF_WHbMaZRtd4t3J8`TpEl%r_D)u?!hLE!kYvg#O zh&U>QZ{f4AS1=oH+vIqWhrDxc3hFyC=F2gcmqHE2OimtwDT!9HmbN^ns(LLA;X1&w91%bRI_|X zzOeuzi>?7+o>&mk_rh=Z$!x`6BBaaZ+5I)l6#Zk1Rchd*U}UHXA-o%|xAbJG3Wand zEg&R%j5=FYeQQeq)Z1BC%}H^MN@Y5FjHDQr2x*Q}l>ka;D{NRXD#ycm{*lLhyujGO zI0}Q%E@bwkquf^(eYY+;ldgen$>S=K3A6l7CKh0`0;@XNw@lkQ5skB}d&rs!Aw&_< z-4sYhO3Idy0in5P0b7!Wi6amLIYMTG0;jJ4!4fh^I0RMGw4y==I(y%0n!voSg?Py? z%aQa3+LE~v>cj(Cm`sc&isNx4M~XWtyULc5EoDtqoPixpYH>}>=6qz2=z&)l?J^-^HVA60jTO5 zmjvc?c~-92bPXuypTSDOr~shF3MTcTKoog|&AkK4>6iro2^qg~oG@(6Bnr}=85A+9 z;%!t;7NJFb<2VlXf~+#4(4LACsm&SvxB!V5WO@t*dC-b0T6A6_Uz_K2n$fCMqr0*RuCLWdqq-!GI9Ilxdo+Ru{Imj;vj#SCUHH%oKykH_rP5RbPW&QU-V z%8@Vx@FhzAG?*oVXb_KOB-QES8#?gH#09k|L2^t4z@i=sL>mAS#MSbcZVE*9jF)V5 z6P=^;5$w64V+&ztqb{0i2JghKqwm>B8GM(KfxrKMo)|(hyo!c z;`Fk`wL3p%W_ZbFn@)Y1`k9MV*e}SZ%e!}eHNE-@RhJ{@3+~oJz^bKW=EsF%|DShN z2fAj|)hD{^xBlrY2dI;5iu&o10&{pqGhXRm9|JE!9=Cacpi zqZyL<%B%H>Gg@`miB`ayn}y_^ zGW*eKhm$fGVsS6(jf1SZgO+E9^zpc$5{9U~x!&gjwPc*Vt7Q9o?>AP>n+rYa>CSEb zOEafwJZ8v3-d%~vNAi;3In~VVPcMCj)6q|W!nYfE)XGP1?EKz|zpJpksP|^^@OJL) z+zr#);*2*=1WaSeGebE?0;yAA0E4VE+?ot-1^$THHGM_|!)}Bg$HTv#cr!OXIZXB> zONBewPNMpoQrfw%mAKK*ZmA#MZT9y{Jt{mnyy_%);*q?l2G51QbpXA!q@wAk`eyU< zM+1{lvUn0BFP+=ROj9J+6!Vl}p=IHo&ugQ0?{o$5#WrdXH|$wH&;v(3LE|4!1M$v> zx@D3~2dB%1N(nB%xG3^BvR>%hwjxV|-XG*pbk1 zb;RF2e;E=F-c5O$eg?vpc%Qy(Z@!?2dtDZEj)<^TEoD+Mq@En5mF_cY+cM|9R#(!_(Wxa_*8 zvuoR8DN%P<%av^dp$PMn3u0JN%*&Ud4`iod&5`~l<>`hS7Ck($$u_&|bfjA=a>Fi` zanYZJ`%8>Jd@`u1vdNP5v45?JlH8;}{cy|$OpiK^F6m6e|HN;Y#;CJeKNuW_?5lD+!`!$*^0OOJ0}G2}P5X^M!TqvO9L0SzwUz#THQLLQ?#<1S zptT}QH$HK;v4lkwW+af!y67ccl@=w2u@comlQNrm%p)oAq zk8?$9EXb*IKs)a#DymeBdRO#KM%9Q$reY)5FZ|`IxH~6FuCaDW)`~Nx`V8gbPWD)F z4M~H5hv1)-V>=PT6<2X7yOf*X)u#zz>OJ}OT-_sEnu33IrYdw2u!i4+$ea{}Jr^1B zmv_q?Ih&Nvnb>%15|60(m8NU>XXI*YO40Fs+1KdzU#5mQ6WU&XCZt`l9d&w8HvSTIzST?{TJz6Wv^#vb*st!_-X)bP z9$Ri|=mdJXc1}oDKrKe-Hs8EEY-oIOdVfa_c=+OWcrtDIhB0)dt>%8Dw7BY_za*BY zF>=&Av0Pl%b2Zrd$o#uxdzumRPTWT`-o)!+0t&Tqs_VCY)dYPtw=u;(Wta|!lPqKu zx#?~T<6L1Gxqq7?TC#pOIgL#ikRciKpKn0y+nWVGF01(%o}MjZqGg}dJR6kQhw|xY z4Tb9v*ZVs-y?%D+>aSTGr8rmlcu+<>0RBo$7dxG7HJ@|*Qm@7LeBgN&ETNck%-eVB zGramS`K0N|Ka}$pXuYaWsq>^l$aEl7f&{8irZkxH_(28-TGNquUnINg8w5aCG)=nB z(|ix4Tt#y8Jy=a5Gw3sxq=XD&m`p}B+$u%cd7PGC>UjctBL?HbdLxQ)lIzv^rwiN9RmS(r`0_nS>LOXY70`ZndFJ&xCG;!NHOp+>WG7w zMv|5mnvux;RB4b#l2VlJo*@pcfSHUefq)byvU4GvIVZDAp9>#kldg!t$OQwDiCjhJ zBxbkVC4G@!d?!3&fHQl~Kny|bO(fO=eMNr_B?J}7K;7J3MiZfEFozwf4jE)=nXJOH z{tOgmN$e)zZYC>9Qbx!?$p9J1(~cz>3>xAi$qaa71S$0!;sNQDK*6bcY!>t+r-EH1 z5F<8&!BnIqYtl93jZIpLycCCOwO9oL7Lvb35HgOsq);+o#$YNCB{5E3)e@QK zYgRD8$EX5zIbaS6GNG$*72_l^1G1^B8jxKGn2az_)Vf0iBG~l%C=zJtDYIFKNuXG% z>?PG@g(wjlRDng@x31k0fMiR50uYkhPYW>`x{)L&-bqYT=_LtNj?xmPz+kc`yAR6QT%XSBo%+nsH)#L69=6bD{n@N!b$}`;F_R5kW|&* zT8-2v@1t|;u^!X{L)GSAyeaLnpaR$vgiSy|n zu^kLRE0wRBGU;N$R1H8X6YCC(gOIE6hN>cunqJHx7kun@MSyuCj_4pTkS&z{tZ z$;yyQy`xv1npU<&!PkT$f-bZ>B9w>#NKbBXJfpu%73mKNiit)ULiX1Vz$V5qVff)> zB$?wOvr;i5Ei?c?Vz3Ye`#8U859wFK;JA!w|1L=J#PqUY7Dyv%?Xju&F*GI<($J^8 zf0b4+AV8cJi%PAXrTIfq1kF+>MSha*ju=d$g}5d?U_cOhY9-%e3B(?uWu~Vzn3J&2 z;#N@?>!BYoU`H|qAkqcaELHkJBEnHr?^!HS44kE2xTjNwI8vGbod~KrRQ@J|j;Su$ zV;R@oAfrh)14*tG@ACW&xEPlC~@~CqtmLT6P|t z#pV*^)%YQ#XuAptHeBq1^%4Vo_Oz##d1JZPC)AzjxD9p(3L&pZCE?3mQQ zZ@ems#Q0zXGg#`k%>4EXkvW9??8 z?zZW7nydXkD=t2MZ?5A1{ri6F;qR$Vug) z-FO37*CBdQKCSsS={n8Dw<`Y1NgU!??m_lcOmuOP{0io7i&!cKq7U5QI=ZV&&~av}5Wg9GXeCvypGg^Y$-@#zK^;*je`3~qFO!Cs6U@`(~9hFZtT!Y z2stavmLUhhw^%k%+tX4D?KypW(H!%T>%8Rw=m7NI4!lN)Z zw)EwK904Lg&IVC;Ajg765q$-+A&^5tSS7;L77R%vC3H!1>y$`RHjYRk+(;RtDp8~9 zFRlx|?+L*`s!8E#UyHH=dkZ)%O2B>tZd*za;{Xd`OOB)YepG_2F#1HsfHftrUy$y= zJ3{x|^f}g=D)YpEP=RvueWXGSOsXK|ly@Py7Ks4>Lqr*byeu}ko;<=YCS$QdAV zyZK&44Kw6maJk%EC=1PsFq!Qgn^X^*f+#r%H)t0KNJ29|LmI`6Fa;zbl35tDh{8gS z1+myz7LzN*$U&4N7A`7uFr#ryR`HVoU2tsEbDoWgDQHbS=7~Ru84hu&0fNr4)h(A37j@9(-DTS z)c2usO-9u}`I!NneD4&CiFzF=Oo4)~pMAvjdBqK}1*H_Kn6bxW@%twfv8^$C94QL) z>#$){;l|fe1t(dsJ#A1@$Ty^_&AE^|P$V5GZr`KG4lA7FNN7IRREkVHV0*Hwa-n)< z)xC!W!^#n+iU?fsXk&lib?VRI!eoSkoOV-eK-|xdsWSmFMiy{kRv?Er0IjD~vLN|T z5tQP!uSb<42XUt~SWmH6n@0s$3F1|*KRt@UB741KgCDcWhVWAL&Cj@2QR?PxY|(PR z%Cx}x?MgIJhPjM4^h~@*Z1kOQz+SgOUQ`4^%bH zPC1f7imWipVwmbHYB+?+9S>o${(^YV8ViXj16ETkDpRjMw>;%qQ$B@qgYw%_3E;En z6g}c+;b~PFcUaufxN}MBv+QCd*;_YM;Dm!=zReQ z+HF`@diNN1z%xB&uRSdwpV^CR+r!%WO>#$cB_Hnn!^N#!mT&$6l8LRcqmzS)fek3i z={-o_9s`Smgo#9vMh2_gXVm`h|k1`7@>%Z53gb+UazxRLR()l01SwYzp1mJTX7&_2-Kn4hd;NP36z*HzU zu%IEFFsM2x8+@Myj{-(5gJA;Mg&=~!!Kq;T5hyHBRv-(=B_t7x2{QYC#l`vs%&Y_h z`MN3;4gQ}%A&l;1IBIORKMww1RU3#Z4h!2KpZ|{tG!yy>6d8yLel~#uhXV;GVk7@gIk9v6GcOJc`ya>u3rltm&{#1I6g!C2QUQtsoE-#5 zUF%RHg92(TMgdol!r|bsaQwyUKUab%20;B&^a3oL%>RJ%A5i|o`4>u#KQ#b>j^nQu z3&&r#|F_aWvD$=x3XK9((&zR%W+SV6WepFo-|5D|o;1_4U`S5gAGFZyEy+HIi$k+fh!D6&>+ zC>9XZxdJp3GdR2KEp=^Q>mfQQ@Jb}`n2{w3;<)}Oq z8^~Zx34}JL2!ib3{^8b+Nr0S3R6z3MQXt$>70~&(H0aj}3f!M(jFkyYN)AN>@;dzs z0xJ^}D13q&>d*KI65Aht{u9|ha_GrV&@5bW=Zav6*RfRq-I8P*2 zF?hPN@Z00o>eU^jlPtBPOky$S`uGyfQ}?+CQ4ar-1{N0ktJmwv^_4I}yig3DhXn%d z?a*zN3#BEN$2XIuq5=h)RzExj&3qC%(a{5|$L6ly^OK(iczh*Snb0b7v zX8pPDPAt*znFmyi4$v|^+^R>3P7u4g0H5)%wtICx-H8po!MM0?TtD@G`N{X(+V0H_ z`zucF)n@+r`zGeeS*I+p{pm^vKVe=el*@-DQ-OxirPwp;u?R_o1z75>=$ueP%Mf)K zpI}+)E&Y%bHr1O&Zga=h{OK?aJ86@q5BfGGL!Ny^%-4Qy{V3}UDT;Uektery2!O?kx`VNR(R48F@+&k>rrOMXR%+j;LGJbH$in>zJUPLtGsA(LSEnjkf0F$UZ+MF|EU&tqKleP- zq$f^q@AhK4GeAfnzg(WXV+h|W&w%+`eXs{SOS0VOpvNr*Dj+lbww1zZ{yp!=k;lRE zuhWrRM0V-h8GrhV53W1Qm?2`W!+xhH9>C9$~!!qioo_RYQT;~I?=KSy2myhg!xcyvJ;5;o}H-4-6 zF5tk$nN8;w=%toha!dBj~QM|DGwL_+#&QgagiRy!aOQ*OY4ibGxE-IAB=c z%VanA3-H(YLY*t+?{*4)UKs6(W4u5g)SG2%63n7sXTxwgUdfg0zPd3V388MCA5}22 z3cZOQ6EOm6^72i#3&t4rKFe*oD!W9=~Hzor3_?M!ht4G!h0=7)$4_u^sO?=MF55e}YeeElCeezyBXnJxF z9QS@Z%`FkYb_)%UVp?6X-$PGzm~*PYq3@)&w^ellQF3Q;VU^bsib00Or9p<(#st&D z%+wwl%bFP@?{)kxv<2~k3+-dAF|&+|e#gW4C469{#HSEV_OI2ck7|Q(&1O@ZKQ(`B!fAg8wr*X$q2K6-nXz zl5i!(kMR3Ut1G4#_xG=;Je(UJ8NfFehrg@UfHsG5$P&s}0MsD|hQ4;PH8C&Uh+lhQ zJONG}W7Dm{D{yt{Jt^D6v5e#&55!5z&3$7kMcs2lqqF(cR)f{YExDqcU*ng%Oo!!Y zDvxZqfii~=Qt+D6^}4FZp|>X5HOYlW@}6CV1foy(v6irjM=5-$j`we2lRU;s(8=LG z)2;KAiPo*Ke0H=UMCwb#%@0mEksZd~Nyo;hRI;p=M%tk;UgR$S{hFl6Y5jS;g6P}C{kn1%^nVcH1TQTCP!GAuj#!xW1aQ28?ZJz5k+%k)h~aQMz?fY7rIOm5whKw z?GpP8?_3 z47BZ~Us~yiH%gK@M$bN;&QB`2MyN`Sl@q*8hMF4BW3lPEAYJd!ut%e^%tkN zQfRKrn}-W5ZnxY$p035*;$LQES8vnEnHgr*cbENK=y4V@Bfxz2u?79I=HAtLPr@c% z!i@I>{iE55*vR5S-_c_e<9=NnGAzPXH?SLP($uB9jC!C&d(9cxj<%}a3u9?nKv*Ie z?R?ol-!`pGI8;g_#K1Djfl0jeZP?Yo>Rjtf8wnQ9LD=d=jI^>&=7U(WtHqVoC5o3t zHQ0kTP-Z@8C#Ntve>l5zr@&|`*|)MJHBevdWk^rMF~b!vpJbm;V<>;__fx;4ZS`DdG;_~XQxxErrDvB ztMkWdKkU{^U9JLBfDY{CRReD&R>btf?F)*V4u)Nr%tz$D`W0QY0&uNg>IZ$AnR?mRNnW9pOq=ogP~@-*@b00s$fab4EcmE^O2cZ?qK&Mg zuZ;moQ9-XFjh}#sqK{@&!VMoNT4+UB4yIu`Fn(KEdSFU`we4HE$RIY1&xt>?QNnwC z!HJs4GD%GC<#7@C6+QROg@Wl>0;}y#nTg(~QD=rHvy<0RZv6T1km;)SM0Xr9r)yl| zxs0)t7~NKy?rF;(hh=60Hv)&k_+9r44uF<@+bC2}gI*%n*$R65HN6Co^Ho%P1sLV( zcJj_^_^poWVZ6%dL(FJeL{Fk~o(-S!Gez=zRz5t}_h(kDA9$@*i1v1&l{z0YTF&MN zJ)fM?;r1nAOJRRxrxi`Nx?wV0CCO}LFE>>0-Y8xT2n?@nT)S#(XGsU~>DD)%vs%+{ z3Z!SK`j7NHM)BJ0-t(dXS%*JW(mAHE^T37HmMvZiwZ@Hc0BA^@V{dtBK0>VwcQfKf zx5$oJ%+2hyqb4Lc22bKg ztrUqfxj5%$2rMwXD~dJYv{Ot4wfbtZ!ZB9QrKrLxY(kw6*%E$@g|(rBov znmdVZtX-P9l<2#FKN;TTwWzE|ei0h7wI@+1g>hHF>w=hBwzESN!m=hIau}KxE>J83 zWLbwd%A95;%hEqbQyt37o7|L4B{p|uG_tBvId>2SY}ewkn3~;`#J#2swb-b_QpKg#`^mWH!>>GWDjd$ZTM224 zW6Y`~W&{Rw3oNv>fGs;>ABrujavwBv6BicjKzF2zQ0~UA^pEdgEfNx_G21Z_q(jv> z{jeBdTq>)=>ipKOv~rhCc?{Q^)&z>C?{*@bW`>sHD6R@-)Q7v$+UNn!j#N=yn;az$ z(9V#>ZQh2iLPOzwqg$$3(Ama?5AcC3ZpxUokBcBe(wsnX2$!%qm)8~d#y@j(rnh

W1Pt9CiZFywmL?QmW*FQcX`-PS^=OfC88>v8IAHIO2y7WiH&@l6O} ze^)xxXN49s4WFWE(F5~aZBkxLSnB6le~VRGOlxE2CyRnNPbw6LcA6B8g6!lJz|Jrc zDr(#3v^3a>O0rm-g>tJPN0=Krz&4C`xFnbGMX5ymoBhT&+V2)B$rKP~%0;t@bwIyq zF-5bQ>Z!kl`gr4n#`&yjVmA?YZ=1!y#%Trn!Q^hJ#>NQz@$+y|Wm`42iVHtPE7}hx zaDT3Yp0vRq0Ldf*V5JC;q!CCA+dUzxew`EbOZDs>#lWGs4oQ;=1q_bFN*W@0h?c0( z;b-wCo7A#kLes{u0C}HZ4K|7hzAKWLy`-_WKaK$LkX%A9+AQbETbpsYD#!_R%bhhp z8|LEOKp(35Vxh%A!018vX_Ky$)NRu&qwcd>12BMfE|r+M@&c_V0d;`LKg-ETZ{Vp{ z-LXZWs~{`pW$5mj#tQwh){LJ@S_ zU{&*?FaHfvhU6uKpDiR2e?aC*C|jS1M>6hA30SX+FJ9ddP4^A|cm{o_7CnG8SS~E+ z@Qg^pDK|uL9)uQnvVKr@pALe_Utm)FlK__rDkAd{wkbqd}4*q@Z`d zLJ(P*|8A#sKvknUAgT>{klvUwXlO$b^c%7zw%b$!rHw0raJG~{)4!BJt&pqBh7!nN zTM6_YB7@(N1odnxgYtJIKxSJiAfa6q5bCxv=xA3HR13K#?`eSKca%Y5`(~ii9i_Mf z15nbgGN>MM728t=SsqG)t{_*0BWY0iz7nYLNFHQxpahaUmIYxSs(?<86+ktRE9gWD zq^ftMkYu|P0n0sRM{JUCkLc@!K9_-iGsC>X^F9t~Vp_Ldm>3-g~XI4*EF>d*IFcWU?WLFA!% z#6AXDt*b6RgS3OIsHO=dwGyXfi`#eP#n)LSLmgkSz8Ng&Fe+eX2ImdgFm~#U>=c3< zD?jslBOb(&e2cify!rT<18Bf_YbetO)2ko)S+7&ayP0sykNG-7&l*L^`{!@29T(tJ zx5AK%dZym#?OUL@)+x|xz5n~!*Ur}8FLP)86CE3}JKTecZO{5f6!e^?JrNHkS9{WP z50`uc@qiw0W)pYW`=xSNPw(ZoA;nb=XoNM!5Ie73E=FyJK;7kbZ4Rh0zdWybt8%M0r!klIFnK!U zQq|0X+Z;(}GxEG!8OcDGEtauYKC>WC^*jZDd`kil%H5+QAD*BM4OEYX-A$dirMq4V zMxAo7(V?y$9lUGEVYXX+Jh~rl7+nT5*r>1A_f_P0n3whpv?qufhS=yWn}*S<50K|I zCDl-&SOBx-uRNZXaU4wi+$pa+aaC>Agh0s&YDWp&VY1?jHHd2{gI)(}$o*G+to>J< zP2e|t#uAxkvEzC89G0_*mwYz5q50n8%}Y4NHM3R5M>?lQJFqwDsWeG4R@Dbsol<*~ z*DX;+hJ&i{-$E#T?ljnpyW9_Jn9ocGIl-!762N5i-L-_s-!toydP}R5FdRC!J#z)c z*!gZ&Jdu%`PsviLZTLa+C?xc8NtU{9waM#BYjyKp)h(kEobz9(zFL=rw1nWNMm7z7 z;avc_uF_d!-J8dbCw)X_SOMfog=ddgo zeF4t3o8c?^6l)qf=DD5{R&C70^iKB&JxgzYZk|#twTk(4zOkRK6(@7Dt= zxpr)oKZ^G5SrpwhnJ;m>UcG_*!R!cAl=d;F(H9QBCSq$BHaFmmJkWdo+G+<`hdyFLgD0?gKR?V=M zy(45N++oTe?gk|JmLjEYwlvdnRwhpcBp)dXDDUW9O{4tgj8CAt-EDSNp>@_u6!yzB zBKu3XQ{x4rO1!ElaoSzD%4p=IUtUSZV=B>P_i5MCoBO@yBSZhUH~o$?a%xae9Fq1` z+fKwC-z}+?3gPRbn|lnAXUV$VnH$1HaHn z)^T+#!WN`0#?^ib(++Gg)u5cGS^q)+trHw|Gt^(slV>w;@_f2>s|KGz*=8Hi-}=tT zQr?RwF<>l-d3pQyO22x%hRY4rA+d8G&BgA)6SRLBZWC;A6vK3Xg?AOIZr55}Ot%4# z>ZhGHFJR0#^Y-E!eAn2bWuxqG6TqBrBZtdgh0q06<~ua)>CI{I1sm||wjIY+uyHvB zH7No#X8fj2@8?&0yuv)e3-*(xs2a__ze}73;_0{76qFJMmlaDfa49I|?Lp4v5;sLbLFnM_I zQNmVKCvioKWB{PDd9q9y_@Wl`$=4sNi8Se3b`on5>4k9hkJM5h$`A6cv|7v|3HRZ(E9G=w@w8)Lxby3K=pysM?2lti9&8Y`4}1 z!I!`J#JBt%Z^=>0`9zy)&Y0?+_DOyQ5$s1xCsUADN`-Ovh`B4T>K*~DYtq!=!$UrJ zbR48Ow@kCV3>5eMtdNkJJXdFq@!q^KU3Fe3;36QK^lfvVS=n6*geliRCdL$>e?q6s zMqS&L|Gp)ooU6L*r!%`sk@7~iYkfM$2Vp|z2Zg9L>*b!oun}eC?zwNS54L4rV?6#e z%Jf`?$-O0NzD#GsyxSR2 z2qZk1Ybee?R)=ki>=p)J2*3&xPN*?in|o?c|39|gGAyoc*%}SdXmE$%?$&6K;O_43 z?m+^Ldw}2$!QI^n5L|*=@Zbb@$z6H(-sha>+xO3+s5NIzrFp8xsOk_~Rt-9T8u=&f zX!c;p8LA@h__H0uaJQ!i)4N+IyMjJ0Ua!=1h@|i*X0lUDyP;Zq&k2IkmOddo|NfG1 zTYR?T9e2n=%+foJQwD0mFqS(iEV819;t=Px)lz#3c0{{e<#Haup+d~xKh}d~yQk)3 zTpy=bsbm|6(8r#B&(vGWw5QTmCQl|!38N|E2_%7I6e>k1*4O=xjM6g4>YmO>m)SywI6@^MPFcNTxh)hLOb49`kph$m)+;Oy$?y= z+%lP3q?(@M8_IDKnQ<~jqQWDLUqux!`j>Xv( zU&gG0H^2GcOe8N9$fc0gtPi~`Q)@xmjSC7JiRDLYlA!mh=6Z~Eqar$z@zk*}|g ziswmR#us>`=hRrfso?bxx~&dkMLpR^cVV4QR(C;$R|JNhsVzBdP31xBWqF<_&IviY z{zDmZw+f>V9tU?t^G$bEmf_5};+Z#RAW^>h&6gQAgK`zUd>cy=mPD1It)(}*BJn-H zd(~!ZC$yd#R<^ox`V0$k&0KaMjo(Y*U6!;mD{BkMDAmxnVo5@0RObEQq$(dA9UL+z zkluCHc+GAwK-r<5ueZIKtRG)T?Rq>Hwwd6w{~+zPaA20E z?IO#1A?< zt|3{S(kqJNOoL^fzMrD*n(1#NWp{_HEb?PMc(~Q@QS&c!W*Q~K2#O;8s+kU_LZOq>t9n#J@iq=t9`jqea@!rzlBaU z^m|&K97>GE_f6>tjOQDjAbC(K^$7)v^l zq)*CzMz~6vd(=m6ujjRas~?4qbK}p)GULr=6Er7M5=%cA$#?vunGWeq=JT)ID)3X9 zl2XUm()^m^hV!*eeNTVMF;y_!Lfo4;nr~rGTYhJt#LwXy!zZ@TKf#hUNgWm+l+J1f z<28~QK~oG_r{lyqhQ_t178Vu)F=XFD^y1pDczJ)3aH*h5Rj#eFT#jR#=*6`?U(I}Y zvGIG;*9MAQqaJX*{PYKcAS&xG5ETD&enbqx3Jc*VP0C_tA^-OqjQLW^S~=S}#2`wp zBV-w+QYd>#b=^72ye8W@Ea%C_q*ALA(ip-Gw;YVb40en??L13)@y&cdgpuGfqd+r^ zJB2b;2GhtI2W7C=m01xsmFkhzSjwODHe^s5hYZ_(A3!EZtk6)oi=WW=>@(bIIDz3z z6K%UNfS8}5>?du3R-+!58+LkR2hMqVjp`M zU(igJvYt;ZdVU5eLbZ@}sYG^fDmxd9msu2U{9Gmddt=px;s|uj0xiois7RRwh^iMj_Q9(c{3d%Wl+5n+QZ1OwOZoEkLU`PE4#un5c8(GvuDTP$ zWjv>gsqJqL9Zcu}U$~GU9KD&HL0Jn@siF>C2(AOxhW z_mO)R*t&4}cWDjWyN3;!t?tioRq-^a?U4yGXu zxRx~)O7s9u6HB})78G`hx6xS2?`%tqh>T!9cP)rsY9nuqATyB?G{re*PoLPN5(h?9 zuA#(0aaMj?{zG*7SXvxj=2U=Ivb+bYS|S^2UU9Dggqc$)6v9NPgf!g(;#6h$F%C$I^vwN2EC6{TKV;?~EjT3|y&^&m&G(eHzF+dju1u{PVOSQ!J2 zzlP`GHLwe-9!sOs)Y@8MM@)syW1oW$@MIgISHz9-p z^Y1amF@k^v<%48S>9Ac$iaaF)m!QhIvLZ3GfdwT)8p>{$sMy8Sk7dx|*?i>UHi0WU zfGB-hCvyqcsVf)M8CnW7@CFquB#&XHtNO$pmFM_$IUb^cu*OlkJ;*UO&N`J9YG z<6hwE&}ox3mC(>bc>i7!B<(*hg}5GYK_Cyn5yi{aPD8y8lT?E3^ zCuk_NR9!!KbZ9W=KTHa`|6(M8|Cv0%3)9xoC1VE&USKdMU^q2U4TP1-27m+GV88&oi`@%~9h#Ff(WQeiQT3c2hJ%kMwJsD22hwFA;`FN(rF&ni z^8=f{43z{D0yI^keBf!>!5XgbO1@yD+d&zmCxLqG_G)abv0;M*xknpQLgiUnHYwZr zVTfA)_4@qsW~+o%lO4{V zH;UG;W=p7w79!dV4{rKpleL(Mz`SerJdhni_gm^#DPK9 zKRQQ#9nK>+e*-Xh^D%zx;*^b z)^}2yBp6O zjJ6FGn%BuoTnbs8z7h+j@Ktlz7HPOPP8j+^wN&y1b>^r=eqR|9sF`K7tr`X?TzM}vef(vGe09a?NuX#mYE&8$_Oe9Q#%N^;45F_ zCFv6H2j+vKT{m3^5A^o!zb<+$Q}Lh9;E%21OW||*NkF!|JgwWv_PSEIEw?S21umxM zB}W^@C!h^4AZU=>A-A3isi~ga#>9Bdl3LfN=8Ky^mVFqsv)IEmv&t0R*$EP~h_juQ zyJ_YNYqtdt`gw}*Pl>Lt?4yPbM|-#Ktp#Uz3(#xeW&O`aNgeKS6p=rfHEfF>^IbyRKi=jJrbGajjXUNfLKueY3DrsVRsmH}kEZI?Pw7 z0gqwN+b1-wd%ygP@lhaZ{`<7?$de}NR`vevb~H#_N?sGBQJN$*gzl+G%5Ad@4XCpqg?;VOyvYTJQ> z#m^S&)SA=O*Gn}5`>}Qp6T6ng7YK)K;c>FZQbCT>n%(`${xN0t3fmOo zwDP?ZUALvI+OnlOU{!j7IqSyXiImpGgStcGMB9&3`OuA2S<4NvcvZ>thLiyWdaQn!)GpJ>a()!2C7SYR1ZSeJ}@upVTTr|Kyvp%q1M z*kAL$rXl|(oa5u`!bIz1#nhaA%h3YFPU}(SbiFY=)2~_$f_9mGzt)lU)6X1aKJ>>D zB)OWXxk1>=)g1oG{Ul`4Q_FN%Nr=-sREqd2X-(E&>9;WrZls4oNxSh+g(BEdZWmvC z$lBFBpJ6=iCvj50LIb$uX+wq;3+Eg6g^uPoFNeOkd8yTy1e~)T$CJlQ`wl-KDmH~W zJGL8qd#+MSo{g7ZNtX|Yj?u4k-rte5caFXpiCyg1MosCAsjK?hNK*L-{a65w$)GPn zd=55UQ5RVc>!Pz__0~E5t!|HN2(|o)ZulC%lkb+%r$Sn25wnM#xULgS+?D##xj_x=bv5ZRB%~Onqj^xpHelP0w9Pj!R+WH7|D&Y^3QgH-hI$Os zQW2a4cERsEd7cJJp6s%9k78FgmiDVSwV?LQM4M}Ohg2Gz4T7O21>VK^#I~fN&yO=# zCnn#CZc)<`e!5rn{Np}%FQ%bQnkLWnqVbFB0f zW_xJTinPTD8;KBHo7!o1zww(7)?1rM=WQo(mPl#rL3I zii#1VQ3+My86`BC%hoqehzx{gqV7B8BH+fq5r>wOaW;pHB3dHk$M>sZ5`jYzz@Q&= zeXf{9*~S8DLxr^V%d(v}z!+sxf;MR0&uS(Nj9GC?3cqs|@5gi5K;i8a3fV)TGhI zjn<$8(#k4jq4^7YGw6YdS4yG+;)+lQROUPpT^}mFb1W5LY+sxJFagG5@tl%{@|64v z*OP<~S8Pw!%3P;ELW7^?N*-=OwFFr~^ukYLQV9a&G^*a~pCQJCW{=> z$M@hc`X(a1d{0r(MAgRJySc{zHOcrcG6+(%#BvitNW#6Ho9br--V?rGYD8U4i zRtd2OO?Zbd6e%$YO_L0ReI}wCjqI4KSZH@9aLSP2#Jv8 z`4ajKGn2-#0riL|;_XVIIW>@PxRN>pK53E}k*vkyn|ZZDI;oPW6Glu)K#!)XZJ`;& zv;b0RV^aSx1?5-&?O7*}*ka8=33M#{GT27LxZ9cqnq>CY)%{uucImrV7y1Q86H8zu zI0*^zDh?WxYE^p<#6nuU`?cZp^EDwa=}2;AE31DIw6ouDh49zi!SgLufJx1Pf^viV z7rLEV^%vH)2SHK7@v#B!1!p3Z6nE;a7aZzePBjTM`@gHn%^S$YQMI6SPt_cJsBNT5 z$Oj?ArR6MhZDu8$Oq|n;xJrMLW_ft}@uZ?5Xvn`u9xkb&RYn&X7l&PT#NE=fF@E|~ z^0ZiT)-ByBfsWd@-u-$yQv7bu(rF5!FK7QUF%VgGlwA|>g4cH);Y zS}FFXS|PtR$QUguV5a5iYm=XnRBG(qI!Vz_0MPYLC_29!2@_6xNAoS_&}`P5;`oyg zDn}a@A1ckqsX9-&(7iDwBZ$}I^Ua}AxDMg@!uspw)ok2{q6&yYE~z6NTi7Z@wj+0}_kjr|#LzeQRN&^I_J`lNh&X7778TW2Y$n<7FsjUKk|83^198J> z`lTBJron@vCy@%h{g~#Gz_=73wIYLsX)jo?vKAk~X+9cDGTKbte07K2X7M9{?4^>3YxU6|yJSL!@YCHgX!xhY-=&(q z3mK>70cW|~S6~JBdPJ-A|T@oz~UD%%&nYHk1$C#hRKZ`FGq5dS_G~bk9&`&!d#@0=A)f zAO;$x6kyq8fjjVa$tY;BS9sd> zR#8nba2uUA)ca8Ew>~6necmvBW!U}xN`P;hmSpcT|DVz)kdqtO%w@ z-DC-t(lp@OEy;mF*bMVJF)_B{7!ZUsu^8M!j%g`I6KH09bZ2?QPMqzMt**> zsv9w@dti#R%%%=&Odp#JH$xv0`YByqcF_|SahO=ZuSQ&q%&nok^sWDHB+NDgrUb%2 zjmE;7=cyU@w&$IuvF?@x#hf(TBO%M{~BZw*@x9)E-|f`FPL-36v` zNdEoiu?KyqP~N&vj+k2P;vbEzB#t54e95PEr%ANyxC4T1eHfZ1Xr1rlDwHmyIF}sm zWYOS$awf7d4H><=kyXJtP(Aj*(io*^ivx!LoOLT!l)wA!+<# zSkpRnXlon#bz{pHF6p`tj*T}k%=`Vc%S%@isYu5J6k$sNXT;@chTV``rQ|k5n4)H9 zs#hiLMK`%?Mya3pwIolq=ey6)ELcj6D<&)a^M#O2a)jEX4hKaHxovEQ{_{B(3nIgNbw7MzMe&+lU| zSfpVtdmU9EoN*s?xO%AdlVQn%e5Gc6j<87fC=$r&;&J3AoEoa{twK6e5LItn@cTTisQHKhg(v5C=h*%EXmV6JA~esE%Y( z1id$=&hESW3>L<@r0$Dv4@fUyL@`kw|<)%Id7!jpv~khj^jn;#FT; zjAJG)mga5P=X6xrahLJ6naGpGtSO%gL`cW!3-9iSHko}kG`Mr)}Nxi}j zNpp=X5}S4E>uNlrWt(~UTYvl2YNRr(=^F&1aV)- zP+U6csJG;!?cz>~wdL1-AP9aOE|VaK>yv9sh~7!g+xnOiOR z{94$JBb}~ze4YHYSK7|7*%a1`$glR9_0Z9bBWwr~G%Kvw1SfEZ6Of!kz2{tr-APLT_-f_YEjqEMbY1JQd-p>->`nI99hglhIo1q ztnSb=YjCnO4^!SHv7Rw?a^WTm#9OJE^De+6RVJ;XZ;=W^m{c7ml2iK z*^m!;9GKW!@%p3$5fT(bX}H<2b{8v^%^G_tuiM;@9Q#l09NbPr&lT5Xd(Y-_R+A@g z3emA8rT*hjVJDq28-v)1Q%JvdILMhDy->`3KHHDLd~_hT#Iz)EvqWWet}uF_D=&rd zCSqN>r!&-^IIo8|y-sh^!mwlyX2cQkRc`YYQuoubq-(eA#vRSQ=NM+l7Cw{}pf&p@ zHIfD;M~qg|q6dv^H#w3PyqE%YFIeHB+Hl^vBQn)VTEKJk#YKQ1bQMWOubB5!n$z!A zb&AGC#4oR@ZnE!`PlL4?1l(D?M&E}zpL+5jM#(J29-{_8Fr+niTBA;ieTXSLg87ML z=@}o1S98a=PY)VfG&1$*KQ^bH@R5$u+D)^4uPgtd%E8{*zT}70MOX{#KKLrdK%ARu zZN_50KcEOx&@63$)!(@2%cD{kj(uXN`N`W$qW$2($AUvY&d<0KjPXk67Uf?xk&TE# zacA-611<_91bwlwmT9b~D4^9UnLqo^Eq^WN-W1|-v?ipOJ;v_QoeYIaAHrTx+#oe| zG8~i(`)u~Z9dy5Md(z9wCoWD|))8)f$>u4@|B41iabcv&>=)hFN{Y#xC}V&`n56)#6%PzA3SYaZ8HH)ou5u=P(khCh}&@u5aXv9ucx;4hGYE z{v@ef!j`MswfncMhdB&Fq!VNxY=*wKK~FboD7UJ7s*0Fxi*iY{3#_4Iq4qYb^qVqx{0}I91uA&N@435ZP z=L;;=OccfwVb+SUelstN8G*Z0L4frhePIV#)SS!g+w-x8?e`Fp__ zbYoCcKC`ONXxY{qKH;VWaaBCy3OJBBnJqOURaj}W43tbSp;SmZiARjQt1LJkU z)BsHcgA7l86U3~LgknDjiTypa!c@$w$VxQ;ZzM0(pi;g()(6f9HA`0l8a6N{qx)@O z#&?9&T+mGZ@3G@Wi0&NBQr=KHLaEjl1UT)vEZbT#ADqZdvhvgY0pVZp5>2Jxyp?JK zWD@NfDh$wdf-Jf4T!pkaj3z4-5p$lQ1jT#fCT64u_$2Wf3Jk>j6-X6uVROvc+3B_7omFn3D_i8nd7T}>VFLiqav#3l;h#=K2} zNJ&PP*R~7hR~5&$1H?e3Nkc;!t%Au->4~&Tc-0E&c${GMVb*E zXJC(AAJDkxBFrcNknuso@vqvO%@zmI6?*dELNKW(^+!HQ;5>tK2%LBog^2Z-lLN$7 zMM_z&1p_m0#Wvxx=A=x63PCU;XG#({{4ZoN#`Cvy=mf$|QJ^odnyUrEyTZVLzj#{z zs@b)h5UI54WecHmbuOZ~+dasFbA4sp=GdX80n9TL*W zOXsN~U}M&&VR(VgE&vrujsuDwLd=)+M@#v%N(K`~v5HE>G;nS`V;r)(4cs~^1d+db zxB|@tvWv}YTm=eYV4b7pH~NX<2tHhhf-Ttk-T+bxE!kCvRck0n!4|QC3X4RN4~U@J zKmDkoJ9U4$E(Tc0DPUgSBL$3d#od2WwH+abPFVGIm^)C+l|AL5Ii7Lc$B%EAqENmQ{ zWZdjrES&7@|A2^meB5N*9Na8?Y>9n*c&UdJP}GTmI*RzbWZY~3-J6?_j2-C3!2z^l zXJ_H$PW&SDuU44ZonSFB+byMl8QCcg9v1Q%Sq6+o_Zze;9SY zz6|cOt_>P>M&o%v=lr_7SsXK}p8WcL=^R`EZ7eEA~KSJWA0nRm{X{qm#lo zzB*+D@p*W@`DN5$@E&2^==Je<%*cQ8Aj#3)t)Kf8;qkjQ*gF%N<>Wb&(mw|-55z6K0t6%lj~O& zoZOCw>(Le^ze{$^{dTa_ENbIXdq=zeeH`X>9fkoVs)zXeLqROPkIgm4-9H8s><7>T9ZDLUWv8pW!yssd(4TRY}?nW7`bJL34dsvaqn~)7`$5a_dCXQ%P*9~ z+2fYZ9MN3`At$`_7WjSo0PlZ~>9XTS?psn<9#q;BAtv4Gy614&RoBW(UwyfQTRj0T zc5Qf^+C${~Y~nQW(C(VtVS)ScZsHURFL!khJI$+I`D49b9cn-mixr^0cNQhW(G>-VulCyKGIAn!5`H`y_do+ouR&)dIPqC3m|z zR#erPM0e*H9p5mCN_Lf8HVLYw=@be~IrOCJPK-< zZ+~((0Y!wo=Ud8)gMwro1N8`Uv)IVt81p6Qcyd-kAq1H zOzD{%_Xi!1WS&cNK zAy%nF=zGk>?Rg zD{3m`SJYoN@E^f}Arr{?M8lheqMmxgF5JsYhndw_zdTe=2gQG98wq%L9ByLHdQj6o zN(@Io&S^X4fswgNU|iZW@ku1V|6CmD_IP*anes$JULAA7jWK1vT|WuNJtx^Sp*fVt zP|_er^9kjXRsVV4md&6@sPQ8TUaQr(@ST}gx$xA(j*usN24rh)Bm4MXcDVg{w~X;h z6^|%;nP6|3HpEEM|AgS>=c*3ZXU?jpGAX+E*9;x(Sr0n`;&}Vx_0W+h?lWMm?zNxv zDoA2jsjNcZCv?JR*iufFE!*_CrWM2w64KmVlZj|0M@E*XDL+}+$OQMbo6e5kBDE1y zH~nA)Z^Kv?eum^RF`|{n@^`W~t$I1_B^S`Qq7kxUQhf5e%t+EvGd{Adv@2GT<{kppxBk;jnemzWuI9>cHe#U z)(e2hBQ2zyGVleJV7$}V_onf#&{J~j#i>@q?`#ljupol$yw64Z{)Lm))*pqOwkU0< zw(hgT_4FYQ%^#l1xK0JSt=1=(S+U7HG;oz8eTBb0eS^tTIk}$5C*z9T`R)>hEgG-1 zDx%2nlZ^10PQ|tLFiTacvhv9U=8&8~GGizEnLaIlb5jJqXsd04&eERfVRwsrVb=(0>;c{OQTH^*$LT+O-~! zPfo=&mWbJd;{|Vh3)sp8o*cRgCl;5>x@9}Cx`LSmVoKsA)&IVd^z3@tk65>B@G`af z$BN|>@o;(4-D0{9sh2BCG}`;bev1n}bmU;Qx=2GN)8KH0lkJR+?yuw|V~*uEHhpI& zxwQSR&RTpRnVtCdeEN5^@1i`>u$VlKdLV7rAO2jM&0DTXaN>(`Pi96GtGNs6+28kk z^d9)i09lXojYF-iT|{2BSweq7E-ebdIo14{i6P+`|8oR&im!qAaFO?i4$61sLlV=N zwH(wEem&ZURv(!SlTYV}vzM0@Fl>|8z~;(Z%7+r8hmb|x6YZ$YqRRMw=axAR5{t5epwB-` zW0F20RUc)wNE-G~HyzmMki#oC*$bY#Lx1xT@cVHi&OR9$==`VhAZI@5r%Ugve%KC8 zj{SJz;am+5@~4=lFwen#v0)6cjm55v^G?=}k1puhId7TDafZSg%Tx!M6o0|G0g&Qh` zro6L}TcjT}Fg4G3mTi4t-*z7i4^0|XTT?f`cevDk!qHb^^wjBFPw+uO7vBp$Py_xl z>YnyR95XE)D4QK9ntxcXm9Dg){_OU4*5QY!a{q2R!>0s|=6>U|IDQS*o|H-yjd9`e zVgK^86LP5Cb|(=WON`w5%;*V)DN5#8qEH|$V)^byov2-lYif_3!;uS^^-x1-d_=P$R_1Bknr5(*>( z2CpuMkQbBHs)#hQU%L`!hjXiUj48%7cZ_>!TZLv9_JN2#sAhr^-~$A4bGU3_wsa9I zWpnTW^hj(O(t0$(HNtKe!8K@m4#~&U?`ZsBl8;v2a&#ccAU>Ug9YzvtVG0!s0Tg_f z&6K{k?zYA9S-oZH9FZ`{eaP+bsFtHtX|wcTF*1A*Q5}eLqQ7bc!EaJX7D4(7WZwhvZ zLilF6f{mCo(MZoh#W7oq-n7fo| z5~aIXAgf~e1G4wvwI5damZKp_R=_Tq=UEra(~$w~zr863lt?3$G$LueCzbKTQ0d83 z5dsitHZ>Yi<+=i75lpZ}{-rK0@O(31Y1qWMl?F7RpaZPP8f!LEPc}@Cqq0E*z3N*7 zyuf0;$hLr=hAVBUfHZ)#zC0oi;2>p zl(;*Y?Vfr8d=ucrhnO!+$$UBHH?PWj8?Up7Jov^`DzN4m*`R?7r&GRLoMHaOe)?{z{5I)V}l^x>`zL zCgQPu0TVvhONgL`TMJL9e4RMx4g|$zWFKhGV-@4GfMDRl&{9nd{G=4G3pOusxQKL!Ao`Bi*OuJBmX$5lVO=E z$<(02$C+OKA-J$%P#0vlj^<#AFdUenL6s&z)!?Q`1KqI0O#{a<1c22(2)q@3(B~m zV=H;gFrqw2u==}7vUr`o^iW~oR9c^z(t$ZLLI0?v>C4|dQH~3+q>j8)BeVyo!|=e_ zQ}y+Uar)XPzyyLBWt@$L8-{53fWwyw67xRJPS-*~vLxoy_pkhMQYHh@gtrFjBi!^_ zDk;=cfEp4&jPpi^4M8k_Z+<1zG>eTYEO0TLq3rfEI7J#OWR}{BB0N%X+@T*)h>@PA z9-kV3)S8`vO(b6)r>2Sz#Dkey+kUT)mqrE;X~q9PgkkQ#?(BaGm#KTFvXDdJVEwo6 z50t6{e190g_fHKZhhoC`cR{-U_2z*BbPB|5+$`L@9RCz%WCtqi0o4@&pPq}1gO8Ji zo9jP>V8&EgO2C)?k_S(p+6PGg$YZ0agGE80ZRAd8AMM;t!7tnIImCWo)?+GWtsDWl@jI(rf(Y@Q^RS z4e8P`ObPK{UmyJ9>{Q>ug-N6pA50cG!GddN=D?gjw!yl08Q!vb*Fx%leSz60hj4rO z;^f3_z=r2rN2A|~QOlHi)??`J&jZ)R{>;@ifWLK(bm%63_Iu~8t30?;j`jJTq7Sn7 z(BdiB*midvd-$@jpXj7jDCWJ<>w150DrP*2g=PHpy8h4&I+~>ijm;aQM~a4(wT@*B zc5jGv1LE^^`*I3+(}d0ohOd{$t5ZFNKYEH6mGEG&`+sd%tk>X0v2^{py4-L1(3LJJ z0LEh9q{mvV=vcNnBUSe#5MtutUJ`#RTUcmUghB(I zFu{Lk6ZW7h^%e(gqtG7I-D_=M8%pBfAC^{(gXC7c6K4ZETeIhZbUNFia5r*8iIz$} zi+f-^f$S;9gt9T!vW7^N<#o>Bw>P2@_FLmkm^e#eFU`lyPHw)F!m=er=p@Jp^CHcA zzqKjx5z6La*W`QfC9d{l=hU4^X$%82gKq?^m=QTo)I`D&0{P_!lsKtaq{?h2xBRZ6XxnP>VnZRxkHaCe5H_M+t-h_i6q7xZ`X^)k8}Bs zayU3Ee*#5IFFL)YLPujEozUUnqnm?oz3}>%bi{!p$V}{?E6U=-Di3?Z#NiDGs^lO& zGa>KYk5ag-3|MD}>Ub4?m#QrW!5k^@?0#{alYxJql|L6F%*zGs>z;r-SncRwT;u4n zofCo(8QfFS%-r5&vtm^YDVubD+VRkTh)GjuW4;OgWw$?+Z|OpL=T0q;%Q|jJ7MH}; z9oyDJYa_a9sb70YB90%%K3;h_GLgilJ&(Y*WVD#QG_|vorbx8jyiC=l@-g1Lc@g$o zAM1TBu<2i72E!TTeP(Wr@O??O*B`fd)zYjKs;}BQ!tts9M-DucD>n?rg zgFDRKdEdM-RnkySBG0-$DkiK2xA3+utvynmcoK>DdkQGVt!MYtMYsU}4NE^~rWWtA zT}|H{omt?2I`^3=9trRIL#q(??!86JAP%80obIL2$g7b3vSWgb;MjHZmI-qh4}JfS zFH>G%HojJ4n1W(-h=oo%(ehK;y!W=Hmccr0M?LuukIoJx)t9eNypQFMu149Ypj6m? zA2aGxwx#GnNw~;JH&EpU&BF@}gLV7{*~~2U70tpv=citm>tWXdjAb|AUjCrDjce z!1(R8$`{oNd+>c3-bY)1M zN5D5Fw~Q;c?jI-v$0#CV(1JxG~^ZtEkV1+!jJ?XKxJm$%Tt_(Yh;)A!(`Wr z)gL<-Kn(qV8kUfhP(n!&hCI^$RB|wkNh82lPBd;Oi4Apa!{6S`%WxURbG~DM?QfSQ zW|V9r*?Q7{TK`NXp2zIl4GRn0Pmtc*i8+Lw>@BjmSfb!0(1hzHKl7pZ@eKIWmBWO6w) z_&aSVu}kkdPK%qkAO+fLY}um?y+%>3KPiHJGR2kilxOa6xgB=C*%f^X)k?1!S`B(1 zlXq5K;#JzXrwAdG;t&#AzL`=m^b;o?{?nD3=sEWq#fz z&Ah>(2Nx-S3lqlK)s0@VZ$54j6pW-JVPmGR^3t3;5Qg+~$J%hCO;VR_?aDjY+^8A~ zW>H>F7q^=fUD3J`n{{Ig><=tcA$mAlUS-+x%_TI)WITm%c1ph?r3&Z(WntSQ;Xz#J zXYQ$`!0*bu-mqS=#O}JmU!rg@BlhfUZSG~CJ@`*g4=BiYmlCNt3Z$P;_B@53(^;so z+QmdM<~R=KIKt``0!(eci2xU=Z%5*rI>d#dty3Rkne;X$^hsAI*ZTIMQ;#bKL?<$H zjB6xrw|9A4!ENk zA*!)!u5)iYEQ|uOY<)XoE}b)6s#C@b8dij47la1fx;@+pQT~`&dDroFU-G6Nk?^;d zyz~7n+y*9*$NBowW^V>^@pprC1YTte-Bn#!-Vhp{87z%Tf8wXrS!f8;9-Dlbi4vP|Yod+)RUn!7At~@1sKRo6PQ2RpJ$4rhgZio<(&`5u29K##_AguP7p#cv+dG2G6b5 zIh_ZKnk9D5o!{Hc&t>Ccg_j6M2+c6qeYfT-c($t2)+;{XX&yPvH1~vb@4orK1vR{| z^Zwn9GbaM@Rb9Ah?#=VQd(C|-UX&BF1UbVi-g6F0@qV+~L;U zw6FdxN$mD8R0Mh4Svk&Dd>0XeN9uZa-o45%$+6alvKDvRZ} z17#-ArTtxH6*8$rmCee>Od>Kk_(0-ZVw(s{<@AYTO3h^i(6mK}GH=_%cb_Um&<dI;~Q^s8xC8QicS6D|iNP|kcKJ)5}dZ1HAqLI(G*JyrGDVsv3;g-lV96Yz=#UsEBI zB8bZt2t*8*+NhaN2QvdH*enw87gIV%$zkG4&rLdhA07{LNRE#WZIo^X580s05sHxlQE>bnUP_Ks=VU zs={?g16Toh&y>`*qvlsm9HsPFgb0!-9~%+FGC0VKI_8j}IFx}^Vxt52?pK(z`6NV$ zpmjv6tqsB!t1Cy@Up2e2Zc z%(#MC(xE&7gckrlLqcnSHkVkhzW;*6+je1fAgFL_{5fYFB-}&;yZz5Z**E7hu%($m zz*vZZx;W7xP=C>5)tndL{D1cXCZq*GK;wkx%o1CD4yGwT?Al;$l(%s!9NS8DM(y^onA}vcvcOzW_ zN=kQwAV`CB!*|g4-uvF~z5kq@oilUJ%sIm{&o7>5<9$sg&0GCmc%EIwsSST+YDJlF*(h4Z~1`nf);0H#CQ@AQgA9QGQf9}PwW7ZIfCAxi-> zJ~pNU@}~Q!u_tVCpOQzCZ-dmzXk+iwgC>DVynJ}YGkVCjfX#%49au*0=nqNDf*>6z zi+rW)?}=`Rm(heBQ%n^LbN4MhDhArWFaZ*kXMu=|IC!6+%(Dqv9}o~|U~=&2G>HBn z5LiHI9ouBeA`&Ad@|$FepngOB5tPlgO*PMxibaMt>z>#Si!;_XTiyE$n@jl?r{(24 zIPBs)#s4xfz`)5C_^&|!NLmo_AG&oOn0f^w z6O51cUyggg>;FK3|L^2q4h~LMUj7HaJK$CaF7r3HI-oB9z`zg33Ao*X{NKm0cXSA- z&_tS8d?wHvkk2kkB|pNULsbDr9N%!{1?BA#~zcd+|+4{o?HM_N?C(d6#N)`bwUPwk*S- zLh-f^mhoKC0q1sodN|`8!l%wyH&QtVHR@&b@pr|JK15f%y^VV%wI?`+?j-yA*E#K#tJUfrSinw&+;*QffRFyG-|C_Y<1Zb4{o=+hJ^tVxqI4{c(yvnfmrTyQ zQSaAiuNEq*Im#{5P3&S{%D1xadEg&)X%#e|=L@KB9i3W+2pzXZa=!DN5qmr+;X{+u z=ttzy-!0Wvz6WzYmI*x&EGzFM?1T=&}P~R7Ht2)Mlcjhd2N*YS-O+0-S89dgB@BcuI+P?ePoxF z*Svj}K~5#l@+vC@C|f^yTN&Bc5_+W?yleURijHo&;kBsTm89;D==Wzx?e?b<@tA~g z{>vmgYte~q`q6r5Vb2LguPnYmscJ8d%0gb`o6%n;>AZdNp)!}?3*PhQQ>~S${_ZW= z#}gMNm^1U-#GUjmWTclDKl3u23=ESGzJ1s4xoH+ok0%&4P_G{J7|JDK8C2y^UH+&= zvpg}Tv^C$VWbtGt!QVu*XNctpnxTamgV629 z5LBam`?%0s#&gNLx6!_@+O%<_ztCKB2pxU>)nK=Lb89Uc<~!sQ=>8*5gKOfwi&?Hg zBBKY=S6876VdK`$cG+^5p!Bj>55!hwz2Z(X2$V4~8o!cB`3shm?)=gs-#%!jx5#mpSM=t z>gD!N!r?3NdpVtQpwDjvbq@QcOm5G9> zE5wWBwTJxDOj=HZA3K#RrEEz!cH?6SIzyTey1FS#d%5GHsq4U{fXN4F%3-(5YPNJh z1I_`i*0!G)pYxPhhsv?QI#E;Z`GK7y|79x-)E&Q=S0!Z}dfdWQw#*F^QQ@yC3=#OU zd|&ZuSe{Ad?yI_+G0=-vejGFmrYg_?`%crAx<)>mfuqioB4kkJW*Or!7eLzR9}Sj zF#cGQaUPBS>1QK1EyMOT;bpm1@^1UNw+FPs-d8!{xr1MoX!3E6ljgvt`l`ceVXAPO zpN!{phF&qvH=DGJYv=;MX4K)#ag}Uhe*@+DkDzDHfvT55LQYd1pXV_QKGE{$rE$7r z`3tQZxU(Ny?WMEv>cR|VmRb4N#r;M7$$SLKrj3Uk8}uX~-*!}-WIIfq-Pnq*j1!j& z-p)8=>Z{y-jE=2DylLPdnYXBXGIjOqxVzgue5hw{&BdwU{W27@`r}!oE)di$>U2Dr zks%_Iao3v9U{J`oEHvG+aW;QmVC-LZey<}cx||<62KDYgs82yZvm9@8g!*0eQwNlQ zcqU3Ndm@@UujEX9sB(PouMS6uvBGaUnXDVB(AL9y}FpUn_UW z03*^9JfzENLs!w^;_1hL0|~Lpt`Xd0bR~U8K6E7}?9`4zS&iVpBCFO!lPF4*b$B?< zVw<8bPdSOT8@?3QpW+YTbwk5Qt4h_2dTK>kM&1z z@%)nu6f(loM(pf*R7~u$-veaFMPAD_3*R(K>;tJz9JaESNf^G=N3-@>CHgmH8raVshL|gcD40uG zM3x9VEtHPp=Wz){z-SZXOvCVLiHS>Tsrs0{Vlv4w(bXGu4bh||;XDKxm`L((;u*%+O({_eJ+IJT}m=KPW z7c;Xzt!03j5}*`Wn0L$P$9!kTsvBvIkh?%D!qXCDx9_>8I}l zCrqp(Vogpl-z)L26tW;ZmzFT6)*(vDj{U-nOY#x@Y$mrGszj_4tA>eh60OWEYX-c6 zWEA&bQhLmKL`l!D;WikzWkA4r_tk)SANoLT+5|MZ=LjlvF<+T+nPXAyGc=`<>lUY$ zl$a_fa}~1TOXLcP_*t#qX#!2PP#@A|C&j=(rOZPDZ?O_4Kr?OdJ6+Z`8<|DEkOV~q zTBL#k++c7GXt0OT`;aiJxy!aHq5cy0c?UpP4CKy^JdL$th`5Y2K%4k(9%O99FH&IajtK_;N|{wXWOD=V@@{`(h=>jLHmZz;k!(N_{w z2Dk5$c6jG()KQgNo9pMgv_$KC=$3jmfT-QaxL{bUFA}ij<>mSvr~8)>(%<*g!0s22 zl|uR}P8U|5i9`klM9m(Ao?xANAY3pn7c4LnfdR$?0b#;~JVEqWe`L-m*<|=RD7kof z9vF0BEYd)1D!M2VIhYqvP$NR5gfas0Bl6&2kd?a?MlZuxAH3IbrWCuv7i-JBecrFN zJr4APNW&yNbmKcL=xMl0; zsm7muTW@aC;-nPLiYU_KUWnS>FI~O#x)d)xC2XwkJvs`W7Mg?IWt7Vjt9i5 z1mPzUe1ubPy~vzue2uHFkY`~Wubd_O|NC2sqRJPwBC#`Kq0S3YUvG)V%NuwVEor3W}+}rr)S*5vuQGwAqMtO#IKR( zK-zU8;~JmI$tFc~1{1V3DN2Nzo@Yn9lhEi&HNG|!mpC^aGV3ES`%-)AAry3^qekam zILuIZSn|~d)+tIDo}WL3(U0w&w>(RLR8^4@rkAzhU@Sy8WN11i~$Ywc~>J&*Fs zA$6{9h+LxKi>+YF?IWBWjr~u3Ju!z=A!i@Vb(`zr6X$H(v<2@D1v|RF`{g-(_XjT% zD)56}%!Xam+%bH8inZcu9M3A)lK$PT_GirXxOi&Ob>h^%-jT^8yC^xqvXfg#`?Z_& zoZA*DMpDK04x&NWp6^?izR>0^C%l)nkf!nSLiU3s(@0pkHX>O(T!l0@okD9vG;~jM&3gxuT>2*cvV|` zmOnjrIh7OjFL#NApp?yuWNdavyt9=3Ca7NfS&4Q!ka&29xgi5OcA@dIaE62&aryqb zYGI_K`*GMcXpMfSq`IZ%^r+jV5&oAO)kC}K4%=W1o4!k%eNqgg*Mc^1W$;jI^cAWU9rJ~!`I%taeXE?_>)d9>plnecke{%kK}=`#1#)gJQ(f9);8f;_eIOXwo=ZjTF@hv8h#V&(*U(kuy* z*=@o&?Lnb)eHulsz2PTPKhws0(-gmHx3Xjv_Z{)$6w;-aC~b7iB64o49(e*U=B8tZA&Iwm0Skt(iGnNqlIe$TdZ$82PGV#_`q)U% zDZ?Pn35#Gqgp**W5+bWc%01ev1r|Op$eLaPWOm0g-~U9W?y$+0mC*u-CAX#*Ae^C8 zNKl|ti3V`n>~^$4oX8hip)&cH^Jzbkw+l7LdbPMFtnG`zydJW}~pMQ)Kw=9+kGQs$bP*4b4>#GW%zW7Y;FK5is~STzw^HU_pB zi;8h0+;q>iNW5iG^0LruZ6L2DnPnuQ9wX(wGN+>pHk*N~$#0C*-{&W%#aPp!kTs)m zTW^AMKF~sT7Ixbuc(wH9C0xb7L1bg#BueD1%QGztQ=TYf$I9c{X7{l+nve9-&iRaz z1`^eb_0nP%d;qo()YcYpVmXtvS|rxzsM>f5z<>3@UlKI&s9(HN)FB12@;x+AatNnQ zAjz|0+jbi|l*tIS6q*r4{ZXB=bKDdP_P{X(T))P4u0fn6Dqu|9vN;YKYG`YnFSrOK z=5sTrOlsmnyd|=L%HhJAl#r$%oh}VtOOwhqgQfD*K&tnWR@jmk(&#m^DJ43h~g=SN5X{iqjFMuJe~yoQkj(^^VUeE+SP#v&E^OgVfoFTFo!t6-6ZIBO5TE?B z+1=rjy;9;a_Jgf5_v6VJXK!Ga2rIY;`>@w%{KpUr6XOOE#sj`}0^YxDsQ(e( z9}KW`f9Z()jRBJH50&J9^mKte5SX4Ky&AJE#bc z??FKHza|CTA{VeghwFjx0I}YO4Ko23-$Sa~f473b20TFgU_J;8$rG45uQD)oKyQQ+ zR+$Ax{GS`^X$zo9nHCZmh#z*C1w^UU8V)+1G+``mF#SYet>~ms2M0Y$zQJ!WBpBRZ zE!VGkcgEVZy`%ey?nS!uQJ(d%89VU{fkZj-I8I9jgFAl|n5d9}D7nA?xeL=;qHBxq z%^uYh-U==o$J#rjoI>}@i`%0e^9LKX;_Y+f{L}cI+tQg^>zW?_)~Taf^GOz|7Zp@LNUHAq3@ezXG0L(o_P87Bsz0rk z(Rg0%{eXqlM~6Wdl|Ur&FJ$=W<#nqLxSnZGbKuQ%PAdyli<9`V&osr)i+Y2D&v zQ}i3UmR6;k%>3G~>k_GLyW&=>vSOtzgg7(T>V&&LZb0W26Mf3%1+7Y)Rg1IXP8j~c zZ{pitiu+u)o|IJRSFK{|`Is=qqT@5;Fp>ERtJ8O+q6h;Yt;=4_G=+w1v2bgQTM($E z>Sx-1AKwir+T;=TC$}{YEIpnr=SAIs?9?iHSE=bi?ylD0^6dwk-|0o4#s2&{JGRm1 zZ^zTJvWFS+wG56QvjU28?M9?`K*0NSnXaJ$YX@fVCjW`tLTx>I70OK$#R~^kUg*gc z?Gc|cn*$NAe}%7r{k89mq1XC%8#DT6%>|-xY( zyyJ?gvbUG5A&U8Naclf_uL_r<54xv(c@+=5PBM;5lakG1=a-;(q8rJiz9vR{tb^_a zTh5$j#6y%$s7cb5&4mkkJcR-ami#fLn!kvccsEViDoR?P?sE^7yRQxqT?cY)8#`O= zeRBOd;@#sJz?uU!A5g`!rtf2J*IaTG=d*Gu-%L)QJ*n1A_>=J0{> zx6)mOv2ZzKj9)y^FCTrB`jz55qG!8L45-Wmh==1=wZ8U7YZ|bf%K+&gVjS-)KRU{N ztUJqS%3m_pH)uf%-4XLrSe&w3?Dp8{X~N&3$gX#=5%Ga?f`?T|zI`YSBncc;P z)Vk_nSH9GVT1-!!X#qds{3il^c6?=Sauq$5ZAr0v^p;MBP*D%sPitCh>C*SAXyl`Q z3M1b}FICwk?=zl2VQr%6US&?WKim@sr^%IGDPHees$obCjpuR+@O%AwXG5)$S`GX9 z$kQTGR6%~~X|1vo-zS{AFKJK7g|^)qn)50gpo>MPB5)$KbG|#O`{PEJY~xF@3QvdD z->H+u&po4C8iiK)#MNcC*?S(ls1}T@ZInC`p?_5GuTE_lwPDcb7dk7XQH>QoU(Ctf zZ@v7Zw?4k*8GJgummr~28|LLUpZCkQXF2Z#o~%~g9>UzJu9Sxe=qF&w=86?37SS|S zBps%?2w&fkF*LvS*||FN8ui0>BVKAfL5}57CtpmBmuZDQe~nAQs4+ z-n7l=wzEtby8jKjb9UQOTRrctxUe`ST;g!x@T5Lbq(0-aA#(UOEl)-*aj@3-nmc76 zy}8xi9PRV4BbQ-DF6p)P3xU;Ym2SDzPRyLOEraIZ6QPguxs{T1y;e@Ohq7@C_PvCZ4FY+2$wnU0noL_%VYJHx&z5H{QZ8{;n@bjtK&BBJqw}8EY zT03T_|DboP+6JQ=0h9Z4pYHRaxq4WIKZpdnOqE-K(~_dP@Ifa(+@Ov3O|Av&HAXsK z2t{N^@k-_Jo8vt8asCLRJe%2*BRG6f*%ezgABiP{Uogf?Qaair!$PNcef!$ebwQ|N zdzIFUal^iYWhueOn(v|-?IZOrPRVLqox8L!Mm#0oJ=DKQuvK_cL|8%`m`U%X^9@=+ zWryN6{P85X+n;ZqEA_+o`Q)Ab3)`dyH#QEfR0YeQx~VG7WD6IyeD`!pWND=y(<`pX zZ-<3Lz6r3*es$1O=O@#Mpra}(lERSj)zz<3ND}^;w`DY16S4YQDW?vBU^zc-{psZ? zRfd;o-BQ!SIzH=tLuA{X=hGne$IRcLkB9fp&K!ty6KXz)Q+LHn^v)vCpEQxY=y}9}@ zA9l{7$#sfIr4-vCFkD6KlBva53ZFov5;vVa@2=WrRsJA5C$T1H5)FHnJv(QzlDc8Z z*AY#_vW{L06=rr>69OF*`%ec5h;tI3~66&|6vAsUww&99jeTgDeu@B9;1z ze%`U482EJbCZNg(@`JG~DzkiOhhZ-0AZlpyfh{}dx?DCpk0re(QR=4{mPlp2BIHPA zesz4{Ydkwpisy(_Zj6y7N>%83%g#fPPh?`xEP)Fg6!`3Ov`h?`!(9R|1LK%1h+qm? z+jQcaxZt9fMBce;V9A%?irPm$NN5l>;n+*lQ^lrqjC_ofCi2cNW$)`013de2F*CMd zn369w0847Nn%TeXJ3~ygpK{Q>`9Rwli4QadXd!`O8mE1H&~u;AM@l73*k5^= zH*;FiG0yOb|YxWpd3=$07|>K0&dc zj$D&^!y<3Nu%MimRs>kp0eZ>BN35~%fPq{IaXy<;x)Qng z%M&05nx^!b`rvD!5zOc?*3O~T$%?<1H$iyGO%)6UCUVB=^kDXuA=Zgkb46{)dih}0 zFKf-klF7$s>;Nq1)Rw^cl#mCbw|uy1w6ZNHuv)WQpK^4Nr%tTF&&THM-HW!Tr)Xhy z0x#Q}HdL6qXea^jn7C!3``BtMG6G9$JDjNA8VE9|U_3#6ho)@A_`?>rp)x_#Yb#XZ zaooLW*q6QYi+Uagr<(C>{1k62r`i`rx4M`Woj%u|7g&+*_Obs1TJUrHww?3;fdhZH zo%6%8j^O@dJ4dnvQNTWtAu$14bDUm`HVbMkU={}va7Q6wOs z)sKgQVo>R>SYk4;{u)vAS=Ye-8WH!yi0}a7i{C*me*wBsDJHAQ zLkR&`TppgBhzQ_Ea&ml4`M|*XdS0<{u95h{Xa_*_zYQV~u7CVYK)7Hy@DD#+fBjBm4Ez;H2b^HnglB@4 z)`0<0RDg!&!SN@P1^)fZKo4Zi{aG~-4p>$x9Amw6J$Mw0dTyQJ@UuVkQk0Ju|MUM? zF~C$GR?PoU7y)kg@VD~!X_^*-3I8m8$ivcy-2pfMv#x>5(Ds7)!N8|+FPIVh9|@1& zgMw|;0mF2Bi9ia&=>yB7l1+X#q0SF#Q~cF5X?8 zY%uUbkCnd;@FF!1N0FKbDXG0A>w2HbS%nQTUb$BEb>vdKrIz1NZq%^)V(#yTDC(=S zpC4l;WvHWQMlV1XR@O4M$JVmm*5dsZV~gsxLvVyB+9cWifVnSt!6vXotU=&$+>hbvzCU#AY}9C8R;puFGij_qg;*+hrnbE3uW7IzThNEm+xh1S=UvP)Y7AjnpCyY0)LxM@vW%f>T`cOpeOXhiUOngq^4(94(C60s6~QhxQ-Zosat{D(DO2w&gq&Uy`V-~8*ji%=5BL1tt_ zSETAk7ui6{haY%r`>t+V<=U6g*)p~@jFJy}(olxu=6X0~eQ|O`Wz76cz1AO0LJb03_Sn#yAKUJLu0=w@!=MMwDfOTEZC6U!Fo)?aj|OT^z+3NV^| z$MilXowu7mXTgO|*($i?!=@`SE8hRO@>DvDF+6*Z8{E*PeA)7bYM1L*i{Y{F`%FEVRnp|NN2}M5x@x>q3YKtC zciKYXhqCd`5fmRI8)tzKG>C%8MO2WT9H>P7KSsqM$XXDld8n^)NA$CzKkmO`jWEbI z`3BDO>GZrujWEiQdXv;Wr^T8`ey(tf1XU?IOl|tqOcnDf+>T(GHRjWTUuxu6wS!_u z<!RHWsD3(kXy{a5OPSuF^m???=;)q3GPG~lx>TzoMH zoF9`qo`H;uT{9Nm8+E04M{sisA2^>(IUnLIkbcasw)1r|ii??Q!T5QMeD7vow_*&VRncKaFb>z<_(w$=%8c+2`mkJcUxSbyV^mRI(* z?Yxl?{<1976c^_3R(J+0nxvMB$LA92j;>}WB=l2jan||lkk99?ZSZqBeFG`zfQ1AS zc7uObYK@uGK-@YKDM>K!K2w#Za!#YbB^XnFB9ZP`H*XiNDTO4X`%K``PqC^)Kg)}_ zJo_(h%KQ~xih14!eECj~SAI^J5;Ez_m9eZ&$?ua?G4S|W#=1LVkh@pK6A~FhO(-TI zZ;|AEz&&;H2l+guZ{R#M}9{EhtmJ zC$YpG=%|B8I{OGHVF zRfYr6wd8Y)Oz0CqX*^!{%dvDmXjpj8m?eiH-&kvZZ|!*f%W16;){7r&Z47{(jt!3a zKw!MTq`xrj=^eGXgtDJt^g@#R#OtAyIP+pV?J4yB>AF`^ql zd+Z_*++zP&r6xOi*oU&#uLS=G>+R^CPkyws;|;T6dI2Zcmy7kVv`GIHIF+RZT`0elRyCwRW!3 z`nTzQtjbv{-NJ=duG%FB;zF@kaI&w#bMhq9b0R)G9o6lQ%T^rAnGt8e+x^n+2xC(lJwUuU(W~MIk zUW@n38>A$GQ^;m)W7I(x%gth)kVwsV^wTjd^B5+X=en*__H5uLrx4+}mc^XreiKFi zjMNmo!}Ef5`nJ{x4c-MBM#GyW{7&-3&rTt^LsNVVqjpER4(CoNjTSsypEjPjy_2SI z7V2-O<~;X{6V#L$xbuSY1h|&|paCDIhvhNl&KLUBe+o=^UqGs^a2D*q>$98ltvL^a zf}pbpPq-k!=BVU!h(z*LlN|rhN;gH!0Ns?20ppw^!;w(z$uqAdw@goAl$2>Z5~;`T z&&XfOXRaoQRjsLh>!{h64vt5ju8efg?>&~D+@nqI-95HExGxp#J z4j(PoYcPt%o1vIpLhW`R9!XuXgTWEJN<5a=E|f!&2mDqndN2ZkAVsThQt;w~3E@O? zz=2vyux>+3A3Bf_j?2fPN$-wr29Z1$8&yi?6SDw_NRYn)Br@pyj2x0|1TP*~Wh8(~ zV#2|iaJ<6V?CwvZ4*5zP0JF%OO#7dnT$T~*_@&8IZ_&305||W}f0T{XPQl7X@Ju+l z;8z0%<=AS?xU1oCU38rCl_b7*4PdX8;sZo5v|w9VfQtr5x5vVd9bhqy49O@yh1(sY$3PZmSn15;Eq!IK%f$2<*e2j=fcSNvU|{zVf>?E&6yakNCoAN) zVgO@@9D3hw3^*>p!<{n+djJrRq@x6e?BaDbGk{%*#9bm!Nt2{q6@wB4Tq`;7p@HlJ znT-XATQE1kz$n3@u6R_O9Vm~&CBtmL!{L(jcCf)iH1iq7++Ub+d_@FaAId~2b>M1; z7i@(cfehL@=S&Zp)25vOy-U{A#xm259eLEZE5yJY2(Y#=!lisn5r5zAPKQEJIj^M= zY5|bCV74qGzB)SXU}ZUZWDn>=;swoU)8bC@e%8y9{pC&&P8(n)i_gw9^Wj_r%psU1 z#%i7f(77VKvU-W%O9lUj>SbVvF^0vdS)2=cf@}+DET#qFaZ0LUKU8}F3p2F^soERq zLxJ`z=EwGApf?vhr)K^UrUO7(;}vKPBrAC#aF@ubz4|^to|=2~lL2^0p^vPPRKLA@ znFFw|fCEzi)kvzTa{>J3&Y_pEdW%$8M-u{p9`?gnxhazY#YkqhUY>FKhyeF@%C22qDPk?n!Gd>bxK0`5MLX~m6V26`#mB*6}3@-a{XEG|p}4{s|1 z7RZS}2wnG(%?4;-@DT=7*3>RPuv8b&%aZ~OE>d38Jjue`^0<`1iju>g0OCV&5nlpH zh2hw{ar8J33xeRe;504DL^-|bMj~XwNM{rI0!f9DRP>sS+o)wU3OA6Yzqw_y{LXs# z$_M&@QIO)bGx`4;n8EOhz_@=*7?6L$L&$G<$omfy2IT*9w?cl`JlF*QtH!^CA7L*B z0ob1z$_#6n2It^G9&q`8*)AXtAd?X`U-K1(RS?rvN_x%N@Y} zQmU(y{@)Y$ZHwUk3t4ji(+UImjV$T^HHE)f1%6Yu{?~Z8eOR# zVZ8j*qJrx_z_R=y#K|c_&{_OVOZh+&(m1}JX}e}%ABMN*rk#raWZ-ke>+_gmwj6{a zrenShyS9{{X<2v%EBRreH6sXAa2JobKw+|e)^TwgUPbMUZ#{W`F6)FwOt@}5H!XSc zRy%Gih!o=sMN0aq&13w&iBf3eBMhsb&Ji{Y!s%l_RK6K`PqIhAlhI;mn&D)>D+oYc zvypqRW6|j+)z#T*-F&vi>s(TKVV$_QJsvQpT%}loYIyTi{ONJs#-MF8#ubFV`7T*u zaNPVgetPkg>e_s6K`ZKIUkF+q{%N_wcci$^F4g2;REobAXlGj6Yc8Imw~F228w9W~ z(p4E`z*hGFqeQbSDl#wQhpTBUCRoUK%`58l>sbnQ)_LU1d+<7&-$^6W*svOD^*XBG zhtNtOne&F+Bx|){Ph-} z(el~7moI;|EX5lRUm{kUpdOZe>kZu<;i};;yT>&+OEj>UeK0z-7g-e5&0lIy5xPXP zBuuq`6cbTCU@S^o#Jz$OIh*_)dkmC160D6`j%GJ+{3$m|QcUVvY@BxS=Q8e#uxDi1 ztg&|T-heVx)DcazodM|;ZvFS>fFAnpJ%v`MzV64Xh$K6>qTewP8_L=Iw$O@{pD2`A z`wmI-muENDD(JdH+vLqHB9+4mchnST-h9K#SE8Affhv*o?&m{9AhD%(so&1Mbid9i zze^SxNsl0ln;+K!yMQwZELL{AxkO!Wp~G zhUsc(SomY2p7}RT%Erkfnj67et^>sQ%H#Leige!Ety8gN(CY2Up;C^pCn)9_uQkKw zTIs8!DJhQbZz=(3!RYnU%St+zbAdUdli{%U+bHcECuspLAK zrCGiN>wAo=Foxiui{jF)OO~K%IGZ!wX01;<3Dc=W(TP6$zM_NTrknIEAWhgXqHa6l z5Z!ogZ288=2HM_#Ygw0y?J;lep_UG+PS%ZoemeUY*ZkJ7@+VnEPN_?y{0oUeZoD69 z4M#)4ZTs*27ew%BN16yK;0H={zhMP_evZWGdWen8@ry&B4Q1F$)dyJ+LhmSxHB#O^ zh;&$aSwNP@Yu%L0h0wwpbG^b>;G8G^9X8{t>?svsvkzrY^|x4b*)nB1?WHm%JJa0p zeD*6!N%CL`6c0+=G zO4o|rY{by?E;e$8J(;lC&fo(oXusb$V<3+zf0l#2i#2Hha?n`Vc8>x zw04XFx?Z(s%x+{U<=JC;zW4fjX`5E_#Zs+jo?`WAnzGWAgD4Qgre)$pM|zFNwZ(_G zd(Rrd^3M4~ z`c?Ycf|vU~?9(Bb3))D4Yj@M7SnP)x(J-69il5Q!Ii$FzA_&Oxnnd?2fLc%d=Db*h zC}dX0);8aKS~Rw$bd&v6(@Z_cM|ih|;8!?%ulBrTv`a_vhgIz?=4s=5Er0p@T??Z| zz5Qg)3hag-y169R%lHY#oFC%Y zemR+#o=SwbVVP?xXK!;l95`~ml^rz!srZoZo1wGkf&f;s*0A;unKm4 z_dpgp@YGnG)P-*Dz4eu=nBIMVV?<}{-rprIdmh}h4YyK^wZ89F%XC&tXRh+}oYenz zHG(ZZVYxor0v6Kp;;7|?hL86sSEzoj&yK0MPVCfe^GWgq+>IB$Qw8hL?26Rlvpe@J z^^IrQ(}g({?_4%YG|%tGG>IA`5UrN0KL|4aSeTwMA}faa7R!tHd~m2Rdi<*y;nllb z8Y`a`+sDC6I8Um2dR9==_3OMQGwThctJau_$&E;rv41siD}B|eVo7~5%}Ywh{xo$m zWv`CxPNT8#BF|hz_@&5!c-`LU7ZH!E9-Eu1A9rs-gy9_N*%A#x7BL!0Vdz2^EIsJu z&nm@+KTmHwg$|(#fN_$=8L*YCM)(=50lG=bSrl%k=})}%K}JKwo?M$Kw6aDto4WvP z_*{*oY}MTf&zelE8Kqii)ve{C%*{nVG@C*;Ph$fmUrD9Qr`rW9gLbjpqa zoCKPPj)5f38Ct6-F)~jMF8Wh3dn@G#O5mV?Jv)$+Koy(JZSzRgYAP28d9YNT016Kr z@uZxrl$pN%vYOJugbH%mDXjNaC3Dju3eJG3l4mtgGy4XxXb}pm>Jo4**lgfGrolzo zA}&h4wLl~jm*fl{`VLMNf6P7~8;jOX4G?rbuyposQE&};A`O+&i7&xvKpt2+pZ#X( zBn{k{Yp)3+-=6hh*~A%vmNJL~uuPIJgOZQSTmor(;FWBKX%aD>hM!|MssLP3GDlWG zQY|eqT&J~_5)oDMDJ?Qy(j;m)X^fs?P;W3imwEP)K?~VSUG z_}}75?5E-~10JxQ8f9hwVsHSLU`|ZDu^1;;K6c=qf*Dn?H1I+Jj7B3~)uP`HygYD< z8!eO(w~}l8yw@b3L!FYI>qP{>)LET}UMJ-4h#(A_b)%gKl&a1wCeJpMmB5Lc^-|G5 zbefJ;191v+OOlA~>f^3cQ3`%X1*8IENj;mvua3mr$-+Y@0iedH?l&}nDj>-zm@UQ> zP`@LWi)`U86&M#}=)*?$)`|gt#*)a242t58JhU4LZa!*4g#-_^1CZx|s`E$xF1T=( z7{MKt^%KBUYYm{ERya(nsWsuGQ^6UU!Wr?33VNPk)&P4zE#^_G8|_Tbm5waS=K3Ov zRd>k0nL6nJrcU=?A+em#fp?3@4KQDF1aR%hvCD`(KsPqU`XFe!*nq$*CCqF+*`Pj2 z&Jx!|U7zF+^GV;XF$ZoQ$@?{z15BNxtX7%;Pid@)!uP=;Mt~`!ItsoTi9;}_eZ7q& z$&J>f9MlKQ0buI1`_0suC4>FYLIMJ`NTW<93pMNW0KlG!IA!%4F0{ZTplJG=SQNPs zs;3%67gQ~22m)5aQ21;SC2PJq#Bh>a_bCQKw>%WPk|(Qp1p~7+e}|g6RNg z$1flTtQc7=dw@AZwvM)zfJ$g?*}+vA3FYqQokuW{~Hzkc7-y+1TMiiAnxDJP%wlWc4&$C^mnxK zzr2C4>lrW;94CbDfjxr&MtB9rg+_vMW4qh0EIb|2GVEuNe6U0=&y_#zjOIDoaG$|L zo*!h5Xgp>~ReqA+`{e!W}-zW&&2$DuZISXuwY8pX-T5^KHdfk^Gm#Ri+`lCWRn^>j6e z9zS;6*#GnO*6{6o+u4sE&7fNEt8@GF<39bZ3;^S7?MHiTjX6I1$gIz#gXJC{!B_y~ z{YjK;Y3O!d#ion+Z(d;$Ko6QDBwGuzwzUp4s^ePi>hz4J&080mZl7iJRH*jf*P%?m zGrzBUKg(ZF0o}QEt53lhE5G(zy2sF~zq-ql?5;Are3fXK`gHu*cNk}GW&Zkb(DFs? zx>~oh0~3z*jA_tL(s${4{-|Tpz76GL=^g%b_rzy8())MiVI5nXRZ!Q996hA;&PFfT zNQWmsL5|(wdNGelB}(<_&UJO>7Po(QmfO5f4S^h?BGk?4bK$w~MI(XMd$$Y8%lqXY za{}6?+L%K)&8|vM>iMBI!na$#-YNjW%VK@ClQN>v80zUvhpFKhvP(&B7#f>F?t8_( zE&V}U>qNFm(z2HfsZf}sBjL;YkBolL*FD-6o5>w{*ghK@u(cho5?ty}qvbassJdp3 z_lf#f3VZK!xM`l+2F!l1^_yq6J>~DLxUMC?U99(?21IpYmr;>->J7sYJl=(^ACGN& z+oaca5kavybOj1&&fV;#H<_K#WL&HE{rW4{^GExgW$KpJx1f#By0w&jNB4sHT@J|B~w#|HGln))9H~oF6~Z-&N@aNbASDw zuaa!5WyR?Jp-cgJSGURHoyL~2if^kR`sC!ED+lJ|nJ|Nq#!%CM@owJU5u zKw7%HL26S1f^;|1AxL*4u_;Aba#PaXjYxNQH`0wrNq-AH=id9>bN_7Snz7cbhiAU? z9b>!-hhMw~tQ4^$wh9f5N`u_|*BTOwAZMMgZw<>XBs}Bp28)y$A8LfzFS)X+14@q2 zYu`6oq&W&LcS#s~T%D2nyc3*JemT4Mo#}S(J5f-{&*-M+rzn<+$&_fd*Jn7j?{B-= z_Zw=}_X<+`+B71MzY;fhX&lFyYV9*v3_aBmY+Bd;rMFOc5j#0gWJ^(sj8L{LApp5+ zx9Q|RN`y7AQs3S z<+Bjq5pRkGOWY1K+7Ugv85T%ZR$EwP+r@+AkK{Z$KGM*-(#b3818686!>gUkrp*rJ z4eMRJb;UeL%5=-UJ@vRcQPMuco?&sC>TXF~xC~w|D#xA1Q@rsKgLiSXO_FGwNzS6v z5-~@JE=gx$-N}=_Qn}J)Y?w)BA5;8kmY!3N9UO7YV8%O(T5_?~i!wn_F%sB4D zT)TeJA84C0`G+_FiHO+1aLE>C^Kl%7ENVFvaSK0T;y4NEgxLDiKpMexE`|1N|M-j~ zu2?ZZe`8W?LN8|^-A}s2K>QipUbze?#?*w6#z-4O1Qdfn7#_oBlRkw!gcSz70Ld}K zuMa!QBc8ol4g!h^hoX+Qn!s;Wt53lu0>$cqW3YbUQ7N5MpSbZgUnZc5vzrL6Ho3jz zC_U0?n8ZT1A?fGN(?sMP8x=M?d*Ca48Kc|`VcVpP;W6db=@pvsBr;jl%x1hcG5(wW zuYu%K#>eCdDdBu^JRH!hobs`mxUxAU8M_$Yz237=3ZT*nUVR`$m7`g0jMm(J8;6iP zu4EAw_<9(+r`1t!SGnRK%ECfB_5O#nAo?FyBA7*=h{V;S;$(AUj6Wq7IX9$8lL!&z;1+?F|{toq=jKLY#uun>u>g7PUbj1 z(oCQjKm_aoJ#fjitBVjVxN|HIsGElc7G;f-COfl8aY?j;(}T?}`3<1uupl#tmnTcO z{e^WeFh4>*sR4lG#CDj>I<>%4EX8x=9A&Ijq7)zx8VF2tBO)U}EPU}%3`p|EKIWq2 zDPygFSo`ppeqtjT5lM!bDG1(;N(VkJx>}t_D~SC;LfU=y)`2MgEDUHTfE?>KfeiyR z6YBgK53uvt1Qh)1nAN|$smLZefXrt6xOKYcnm^>3_i)N)ZwjiLXKCTKzmjRpd*Su~ zBS)Cv4wc)5b%NyvL)&&?<)M800AB1*aPvPf&D%X#)IV&w=kTB`baJ}^suQ8+rduLp z`KY^p9}fR@+JpMNLi|IQG*K9tMz!aQXk8ZmC8@g%%fsNa_M{K@=F|-X1i|GsiC; z5P09IdHkwo#A;cR0{`9{VnwRqr_Kx=t+VVeF z8F*D73c{AP1Law1;=V~f$}{=VR~#|6|_*LM8vTZ+RaT0|9jBZ&dgH+qgim zfGTYeFNh0B9BG5-pu2RyIy?%WJZ=R{eh@QY4UI*?(8F>AFz;(v9O!B>2oBny144%& z?=(;Gw3^^-93fQ6d}fZ;GKpJ>q#j_L$)bzt(ZXI-uZ*M*3Cfn6`=S65%$YdWUv6o+ z{V}v(5Um53*8H&fK}VGTBv>^?fS_W2_vS@jn!aj(YP63HnQULRcjlemLPbi8Ny#CK zZHv7Sq+->_$F8ON!e^=Oj`(}<=ejINvm$nC&tlYw!EA~9tCs5H${N|1JWwB9bC9qWM?zwSN*MjNWs!i`CrIw3BjY3nZA>@L7NUZ6rnkvz0;p543vJ>lNZHafT)2dUFO2f z-3xrSM5MR*otsx1aN-%x7d&pOuad=TNLi%6&Rx89*tdC39+9-zwRo8FYMw_{rzb^Y zBfB{Uby26|W0me!gj3d%!?2-E%Dc0-+v88CSOm9uhY1wxni@_u zy?aY%uix9$4OHl@klwtK;)V=2OxSodVcw|1A2CMp#V(WN(F`wOmlxY!$2G+L2(x|O zB;T4auzP*Eo_F7($i?&2>I$EyN{(;e)cZ?m^0S?B=b*0=9E&Fr#BiE44yXSG2*;ez30b8rL!=BVM{6SxRTeJgrQ1mBtX=3uHO`RS4%e z@h#s&U8VFhS}oG{WJMbNI6SJ=(o`WFn=`jb!zRm$zVfvCVD6P$Q^*YjFDwAkn8H<)EffEg#M09}yRgbM)mKm91-1~_InXm!6CL2zcu6(tov7L^u z%%!RA%Vkw}T8dWJN2iIn80)JFVsYB;T4;wHoDWi-(ckxz$zVkw#8^lRD#D~p5jWMQ z4YeP>IQB-P{qTUzvv|s0@-=NNy1}W`6NOMV0nO6pA4Tho%K^;&1s zi?q+RTz(Rq#B`Rsw(THQoD%|G+5bwUm{wj9QutsS-I*NsX(ixR`!?-$ZotQV+=yhZ zhVy01El0#}Ow29%kcqZ>O5&}BPF_N#y0>LK1XFu8m%VOCI!hmjNcwc4Xl)vdx>ttY zItx!~t(JK)#wj=tX3nNsCDJPmW@@Y(x>)_Dzq!*ExmY@Hx+SBnxtPi=h@U4>p-&{d z9!@FH+RWYjSgmTY>yPc36H8oH6e=(G`yK7yRxjtDlG|yU z2^3D2F`g@`znA+JK%`gC*H?J8F=j`xw6a%NQw-73le^t8ovA`Y+p$p|U^z=4 z)nQ#BhDFxvb^MUQbRDRA+V+od@mVe*(J1l_s$8z{!AHu%8LP$yD%E+aMY zqaP7ybm>SQChP6==EIdAVJvKSj&^~EG{*ZD`BG9g=iD_|(Gl#N_R%;Meg3pgU z#t?QCL3-?50)^w28Kx*5l;ri3GN^kU@=0zlWTrt)GeUK zPjt+bVw>aSLBUU~tS$nC5}Bl1dt<{<0NFj=UJ{Ai12rRXa5KwO*D@vQD1bOdDW_p* z5-n%TJA|kn5G8%xA$+M=j>BYZxKS*cMWod02>Y3QCeTqzN`Vl0`y0fK>K=6b{T+V$8wd!46GSl*Af;J zDtAY(8Y4U)`ZpYlFF`x1!Z~`TFgaZ*p!@IgU;zpvA3gBC zpL8?8;ZsE>pWyDH~g9R+Dt=E7c-{?W?bA@Ae{kfpmWxpwml#dj~ z1jYlQybz27S4eV5bgM=TqXYsV?uYHDJ9zXW${(n}$PV<=lF|=ICZYiS1jlqRVzJDm zBLkhAUnzz)j={xR%>K<`B;0u9HO4VoGsS8*AlFJ7HApve`&czL2gT*f#tz?Esx|MD3BoNbmwlGJ}W)*cDAm-7HCqj~nQ){OjmO9PFEz z)(<(o>x|gnKHs9h#6F5#H^38sWPQ=dnasP~0<>Jh<9mRxU0#qYLcEDIMvVV)aOUIs zV+Qd3LmLG^EQyrD)Bnp1VdMYXcmfKt5$K_8vcM^x3yNU|oP;f8fRk|eI*9P`By3~` z@B_u(z_bXg1JB=ui52AJ)?4a+|{f7uwn zIf^ReTz@$!{>_r(i^0H^g_5~~6rpl5Amo^OVo_*=D@X%stPOezm2(4OK@YS+7|_Uc zcmimuHi!yZ=mui^leggpB81}VfF4OxATYp@`%QcEbO(i^QKSGcvx~#;Eii5K-~Ksy zU^YI0ZAp#`H2QCo1I+fvN&|C#}gf6f5Fg##3U=tTZ813|C)i{Ie*Q-Ujjn^9y$B(k+&v+l%M~D za0f&?|81;+IUZ@Hk8k)pU^^J#FB&BS0|owmNd~3>B^ZSD_%N3YY*(qj9NsQ4B_|WMBTtKz;SYM1A9XbgbR_iJNSmWy!~d7jJLQmh_sbln6{6_zJc+* zE1ug_re3w%nEHbcjaD>`4riZ-J$pj1%@}rHWVX~CI~1ZfxH+O&SEdNL?&^_+dqFWf zFar^qb8go?=t{Cbk!Y>dZN7K7I(3s2lr<73<|_yhhSMZ z3#CD1w@<$s%!3m{l&)8WGj46)VBjTPnep|V#~;o0*WBA?Kg-yD5ueD5?sA?W-(t6G z$_jC7ui)Th58vevCK6;t5q!8mpUJx{Q+yDV>hP_)_<8v%)#pZ#!nUy7w1nGjyEDe5=$ZY>-(7&mY|eDWRVeEGu*C%-XHK$jKEW^h1{Rs^#y` zvNX$zUVrE4^5PE7CbrRj<}LT~TQH^W0!E{&#qrYu(!to%UP@LAuj~<>hW>9pO)Khc zz|Aa`(0rHcolX4cWRkj1ubx)!gqIOrl=AvtXrcm;q$Z#WuzB znfjio!eEfzHE0#zdM z(h*xFr{pfV87q*K8`mM;OCz=WfpE@P2hvv-t{=AQ28(wp%-^XY5tT>0jJ_2rbT2V2 z)8*Y`%^)MNDI(_6F%=XQn$&`%O7c|OV9#4G9?W^YD=45)iz&-aEveU7wU$IvasJ{n zi-c=?>G@;0(@N5nk05s}=Hj-rY06s^dXu&DUCwvMA&gXh-otX~-rB8`31R(C*imDk zdmLmy#EM1yYomhb&75Q-mzCUem#m4+Bj$fwOXRO+(0NDA;!MYq-R`}EH(khbmHSmOsc zt2wT^(6*>fcKt$unMBrHD;H1JKV{hnAm%hDG6flRF1R|5naUN zh(vXi;d$n-Ae2iygk;CP_|v94XJc(1DavVFN5ikq>?K^ECcLPR8$yG!TU~jZXXk>1 zPvXglD$$~}`wsJ4FeJ$K%yh$3hV7_=GkYitT_;c}0G8xZ|K|F|1n+ zIQ&CQf`g`J<QlAl{ej4vvJqOq3IfBqm})}LL#=KF@8xj-JLl;=<+ z^w4CQJf^FXx=;MU7}v0^wx3C{QGI1nT9ud zxHlKcQ&3@l9bDzzM7vC!<}`&1pE)Mt(xd_w&Y#K>I~1L%relUdDuM?ej|7eTpSfOV zBgpl`DdlpF*_hvG{k&&qfGE^Tk@dRi2hv0mzxxaek3b+JoAB+UDIVjHPv13jq)C9yK_Ji>__&}p!iRXXi?Ya*qm4gt@G>^ z`gvnc1nZiL1T-|Bhb~&x_#rL3y)N_{B#f;cL)n>&VZjjH;{6B}sd?iLwWFV^^#djct{xzkI97!1k8h@LJCB*4FzjA--9Xhs?@k zVmavh*~UGj17Be*=R={BF}#BT#ld|&-7ZUTGqm!RrWEdr`Q2$&83(i%T@44JLtnE6 znen@hZS!svbfHh?e-!YxSTb4jXz|q?%2~-RU2`pVF5B2m#=cj7;d-z}7~giXqtU~< zY&q7jS>$U~**%=?_gb~;5z>?e|@#6|T*D^-kg6fJDG$Wx@1A>TMP9ivxR;P#QJ9Rmsr=VEp5yySm85S zVhHPH5T{uf9}eSWjZ)K*lO=0A6CGBys0;q;JY1XNxwYW}se$Z5eNR_yLB{3%&EdOT zktaUYDe{OoNB%R4HOVSszOl{+3<^10Xi0?L%aL^{?+L8OTsgQZ=`1p2n^s>tGea6U zhb@VATt>K)7mm00;=?%F(U+a9rez*#EW3|UAxp+N&Px+6ZlNEJOvG%pvA(^uqSi9G za~v7C{P^7_X+6s{+N%RD@>8Xpu;;tAm?3IT9JD+ocALdn4c#d^l6V2*K^?IeNs%g? zwMdH1MY^v<+tj4VVjYe*I?sH+ufwKS&3u!fQZ0J!%_%D|^*p!sx@Z4E^mA3hPa`zr z`3A_F*-INPvWqB&*e}9Q9mg+{R@ZNJ;6AN8aB1*-(X(RhTlKuZqhMn95X^keM07@4 z;nxl82_a5odVQwPBzoF@1k(7-g1A7#)P;Z0hjn5U(8`JvNyh!-hclTc$urW0OAXxg zT0$QZ?&#XNHsyWhT0vs#65z+5 zqui%dlfR8cUZ6~e5oS3_AW%u@;+LPNhCUrac>W}|u>$uT@ogin3-@Yx(qfDxnldUx zjzNS&8C7o3R|Hj#xfS?1Xx$AKWT9>(OyKoDu{6X2?W7Q%$ByxW*&f4mNj`?@YK>JH zjt$FKcKf_qD6s^JNuv5J7C$*k&CYUN^Qj@ltH`g9g1nFqRq_ite+W}3;v^&r8zPhb3q2fhG{Ng((5N8V6G2{ z%Y_*Xw1gU{@|bOeU@mc34omY8l=s!}x@sLN&KQ|VWS?NNpkgtA&U*~f zg$V@d0+Rc!nqWyo!E|j!f9oeTC~?+sW|OUf2>#0JBsQ5D2(;N;GDDc;Ab2oahHrii zbuG(+rQvIIr(WiIj0@PXA$Go2+L!)}k?&F=g|7sRg0j^z8C!~&w+0dqx9Pq5`0!I_W3qY=B^`K& zBd#V;2d%BZMul859op~`CaYGGf~IBj%Tw)1!E$}+L7K{ZU=1nqU8sAvc~*6s;mn(g_G}k0QmNiD$JSjXkT>f;F6d!*1V_HSuuTXqRL}?+bmDcy9 zSV9oC@KD*%%J&OlQZamulFw6}K=SvK1Ytn`OP*8`CIB(I_WvVBm&@NVx@@$tDxqrI49B&^?L*Wrp^9=u{bcEhod92~E$crAv&%3Q08DBE$Q`JA z6+W(P!-OqMm{Tk12k$pYILr)}2_#P;9x4D*P@FvfoLW-=UvL_f4m75LEds)H4g0EE zNtZ*aFdjpUNg4vX>HuE}@Ho4|0z1}lyS3o4P5>YRJNy8vbXXvL0fc0uiF$AX8iV^t z+X`x^XP?78M(28lUlR}K`7|F;Kq3WpLtA38zWGl~e|^Q*FPPz(v#RsA>$H7d9rqkx zjL72wVZVC~E8pkU&Bwj*X^|@<>-2oM2ExAND@^|n1CWFFj|t524@e=H<2R&`?kSk_ zx5*2&PWj7^2?jJ)9{rd&V9x*czC9KxGXep*-HJdsP{okH%~l{gy$GYzTZ?`@8cg|myH`gDo9GL5mL=*ToJ@3(@n^*`U zjv0N)51kwXDM1GwJ6}Tm>hUr{16lzCL}s&p^%9Cb0hIL?fu8@l94c@Ad+fl4Q1t|` zbX@eul}1?}2b9!b7l+#mkt4(K4iU@e9mDLqbi2pJD<_)`!dg1+ zcLPDtV_wMBc=KY*{@wVoQ#FGc{`qrUGtd}C@<1Z@qtgOL*(rKqAo4X=T^GxUhmbb zMPfsRx`%1kS1W9iclVcvzy*PaW6|fT2AW>>xBL)fzHXHMA?%+`!Sr5SBIzOGbQx~H zYKFpvkXud}FJ3afW^`g|dAFzzJ6zN#aG_{THa>mtR1MfqFG~}gD`N^M<0-XmSJdUm z*QU{zqb+AiSPG5s8=y^Xd>11gr>*#nPo>j@hS}PGSjP*L%H$lnb`97 z$FxH~K=?Xb6G2SXomDVtUx+jOU$;KE(Lp3dFcnQ)95dKMINA~K?v@d{F8iDfeA(9t zHN0Hm9;^dDGD}ud2*O?+%;-Z`3OA@-{8=)0Gse6tISV#~X00MEmTUc7yFK}I^76y) zBhShbaPpr&MBS^uAraVmHQ4gjch71By=u(qCYR_s}P5CvlVhq7f`ZG94mak#sD4 z#+IdWmz110AZbMCHTf zvhRx%?QF9(r{1cqZQy3EUB?%Gzk@&V0A*opt+DXq6ykndF5UrsYoeKKQ&qoG5Z&BZ zQd*ZWWSp!tbfKOp^KR_*=~Raqg_KZtzi+W65=wbm-{)`LXbYJ}gl@r``|4ca@WpyJQ0W@Ceh*u{9VZ(UM#gl-2ao0t8b zrMP`fkW8PhyWUgj-2JriH?8zjox^}iWEsl^8=h}maY!5SA5vq0@yIecoo^AMOjaCcWTbs}~drOyk zYLzuk3qOo6s=KHHWJqPBS@mvckB~m>wtFf>27Rw5kj4`zv|8oQ=+iu8mYw}h)=gZa z$S(N6PRD;_$K^R%BTq*rQMmS==ttG_E(P?K)_&!QblFK~OzO0D^b0x&KGK^{EAu1= zrTPMUbPWd2`kyP@e4C64O-9QTp+(tLph8uk8Jve$EESdw<*bam z4Znlm=<^@jF<+P7h<^E^Fp@l;#50DaelTXU(|)rN+t7R%nzD}-g@Jftl*s)`;n@-{ zwZ7#KES8w}b}wKpY~L8qDYkol=uUiFj6sc_{hlNmDlk(;D`Ldi@@^es&*ZR1Wn*!# zgLYlcJ64dRQ(f+a|BJ>o;^o9^jbe-SZoP#Uj{dGrbR{4qdB+!A>(TZ@yJf@L9a+US zV}wUZJhYMPdOeJIN1ZWGr8(=rp&7f*p65go?HrSCWrUAXR&3$1ik=22dT!ux^-q~l zl5SV=1{nB0q`Oj`h#BTVGVedp-Ft*rjj+zXLL}Okzr3Ga$azBiqpjE{CREicp9lyI zol`oR(ze*Qe5iaSi7=%*TiM3d|I7iZQOt&e!^d?3>P);n6mce?9YS;))vd)}lXa## zu?}CWSP`xumQ^kHq|vs z@LE*AsLi4DaJ0%ObQO|>ecV~sLG&$z)2e|*dew^Pl~oXBH2Pj^Eo$wArb~e-BmKym zc}K^eXN@ZcB)gP3Ag?LZupi$T=L-Eqai2!I6yQfrwTjj|Cmf2Px=t@0G#{$Js=Sbw z#s{xI>tSb&eOoZg3MslY9LmECPhl)gO>-m4>gwEcASciXyInNxy(Dm&7S2l3DRfdv z+&#DFC+J2#UC=kw6*fa+6J0bOU-$;|EtL0X9D2M1uT{8~4vz5xnrj_osk`jeF}jU~ zIb349yb52xvp{W}Q%X;*z^~8%oi`xnNoCK1Jx%2qbL_D&en_F{faxSS6U{_IFKWS7 z8NShsa}P<$p)KS+g6muHFT|fXV;VlbrqQd+j99HqWXBYdGVK;ai5(1k6q%{8LSqIV z2~q%Z-AlxzAWdaJWM(koQDlaE)Sk8?k)1u@qnPQW?9}XFf~M~%3ZiCTCcraXOC7`o z#~;iLCP3Z-%s5|i%FjHUxtbAk$uJ@&Qp1A@nZDikrjs!j07otXriuXL6NuYbufH^k z08Pp_WiU({u`vP0&oqbLw3`}}Hwi{$=@KAW(j?EJAoicga&zWx!1N6!^-r@VYN@`) z;Hb(K`#d(7qyiUdIvoqgmY}67f{Hi8hf~62<1qA|>y#miW>t&XF~27$21pDm-X9 z2~X+CxmN(dfAc*7f+MxxriC^(=N?QikR+u*;3TJ~aRa10t`UcmVf^qA0kM!XB*-A; zqzYLiFl7ILjX`&GeTxJFRpG;T2ylK+ViMWm5xAM84L^~;HI)+~PoAP?Ghtg`5_9$i zG)2VFiHE|FK!^*{2ozO`>_#5XB7k2wYR<9{SZj@FVL5Vh1h|B@V)M}KCVv7nr6*iK zl(}zDJUPk9VcD6a$=OW+(xMauc6n}B&L3bk!Z3gmq=iw~|I{$!8L$a~8d& zcn%1Zz;S>QNmPU*FotBXdVdom9X$>c=L#jBwgDtb33L;U=vI7kfce<^$q=tW62Z(> zLL|Td5g=wN`ySMGW=5l$c4Ko=16nRJe8T`U5Q`iTh*84mP2AOMz(}wNW0T^pq6wDi z7>tiCR& z`vUvW1Kso-jZx9KlEekpOe2bX1fzE_!3&N9h-ePI?kvGMhwB5BV=@|(y9X2clQRId z9&FeI5&?!6Q{jLl3^H6FfLuVvOabI){DtjZ9Tm@46g8Dc0J#|6*H7O9?>qZEbioHf z!W^t!Ktvj4PNp_71g5~KxXi91llAiuBUT_mBfzDkd}?+3y6$}+WVNs zZ`6|Zr-z+qDSVQwPW=h%6Hqr3W$u6;yW#>Ej?zP(zgAl!z8^q+RJv-BH;t6X0_Hdg zuEMvcgfYjmfy;FILegeZK{0RPvjO^Ql&kc{A*9OCLU-UWdEJ zBI#-^FXg9HMH|65ZT4F2Qd1_51x@{fU7@cx+MVDKLgHyHc}F|7whp9C<` z5n94f(^J4^o*e}}2kdD+DB>AN0|xxtzg>6+GKVfs0Os>=7k-c%=s7H)5%cyOa6<#1 z`FB)uMyT5)hzXX1?GM73=>kLp`T7Yv=O{ICI~@)E^kZ~Lm$uOKYm4^HG^qX6gzBtM zvybQXiP-=iim#YC)b7DOWK-sAr!2}YB@zXee)FBr)j1)oHsY1M~F3ko{wuR5FNy zd!J#niglx?W}YbxMpegToLA{aL6{W5cjz^dK^@X^_c^x;UICG@gK;%;Z6)pTI;+nT z{Zvr~yBk!09^~UABGQ9CoU7dvwoc_pK$vdyrra`k$WKN-4VL8%bEgrq(zqZhSomnixKX6 zs~P7Q_o{2Y_r`h+`rUF3qL=UX?7w&n*k|KtY=TG_ZTZCtu`PPaGMdyqP&ZDMmh~bw zqn-x6?9XhxTHC<8?13=hI}4;lwiMUCtRX|Y^g?|&X1eRrQ1o@VpHbKQFKPv=jnPleK6 z9e7^|me!6ydZt2LY?WGAW3fa#k*L+3_1GQt#A}0p)F@7~eK?1F)Ve}LSvk5##JeUD zc&95+%kpD0UupSrW~PEhy%Zrba!B;(*LXALZu3sxuQMt=*O*~n=C5P%!bG8>4>9UZ zWe=#prA}?WBxk;Sz9vQENwz9xnxpkh-w5`l*IV*cB**#ENzCvx^pgx0&tQ4luQ3)I z?Lt!~eDV?+D5DJ!jaS~@4ICO@e~r%Fo!P3@%o@(#4_V|TST{tExPnQP&?nIH7c}}7 zoI+y`KiL_!u~Msu-Vnf&;mUajBx~e^lIDIg`w{$%(q<67M{5icX++lW#JjKSVwJt| z(0wJ`5Fx#C*gYWOw6+UQR+vw-Ts*!uOJP>@rYddCWdtD?!gwTQq`LXVJAv0XCowjK zXBeDMC@~S8O*M!@Rrtn^xju3czW)7GbK@Pl_K=c=7MLYBLT3ltMV|ZGNyl2qh5Ptw zeE4S{zjIX>KUT#{BVr=>@%VCFk04Fc>?=8vlG;zlf^^xrKX)b64ICV(YBIUh$W!b4 zKE+F7H}p8Cy%Xy^NmaVeGKjG5kbJ#cZ4FZv9z+`4t>{!sFlKwTwOU<&!PYD2zVhKS z_hzKairXiL%hVie=CX^17)W5}4GHhv0fu2GBE!m%8n3#{Q}=9C zSQl@(SUCQx3v&kiTc<2dT;j_gp&Bk)(jXOqK!XX~Q;IlkW*(B#h;SDH4T8=|8vo<< zX(F!!ae*a!=lFAk{(haytco{3+tjAv%CgjGNXXutaF4RIK}bo3!Gj?h_ptdF;sZVH ze0hOapqfQwFYTGsx-WWiR2cHDySwX2JKTvZ?A_JTm^H&cGNqiKjiLv0pveWVY?_>` zZyY=gaet0COkf|bd-A?mNJzg82$<6IP%=ng5NQ;Hv6X)j07Q?wJ# zD-S{-pJIkWhm&7o!Jg{VR&;%L@jI(Fk-CZCj~VXCiG;jJ82;w{<-k}G$8LH~a>k{S zWb|#g_(w1aRlKK`LEmYF7Fl<+al+!rwL5%YRPuQHVP`~5+K;c_MgR@wDwRqv^UuXN zBrkEF#Q*HEx!D|`?;-2ze5y@W+=i<}z_$`Tqd3EqmISvLtvJFa1@}O3+vOMy`#ksExyM3tcyJQOZ=ijo2 zcNbIRl7&K+H_WSueXJX8E=fsBgSI&XxoodAbfO&+oNP2T#hPDkgP(L@b~^TRgOP}5`4 ze|t3YY*~;(kSTy9mvCJwTo;@zCSw;0;bICBD0{X0W%uijp~TPqsPRe6QI5kLY+2+@)JkE-71dZ;zawJ?IZ?81eeE*(r*Xw^A;XweLXBRAx8(k zk_jhaD=bW~m{i+Y0lj$uRYEenEr&zj!=3I+Q3oElrdE0H_mojZ!SxcZ zS~68+KHu?U@d=+XJ=wnIs7dC02j>9jr6jiA@?#}ZG>|B#7h?bw=6n|;=#>;!XO;&D z1`h*agI;$4enXgr%QsE=&(n1zGdm4iZ2_^!?Tg97UmQ;#~N3|`J=a3Mt zi-)7~Uub(S!DzCSf6CtqB|tjmDS2H4oD(p{tky6?TasWbD`8h4 z&5W_6jWvk8k*5Z7*q36XW2@stK35brsmoGg-edqCm=QOo?M*2#9+N107xUDi)sYqN zm3a_-is>G^DvRI>3<2!>t%h2Yin?xwcHaPUgaj;$27)tCpzaI2zZm(kVUgcLF!3}> z+hK`x?Gs=T4MSUP?c^&d@^xhW!^!KLzOQveT_a}NMaWKxi9_8 zM)usU|LU9y3+9fD4!gan<+IyEsA~$rYxU#rMXu~McJE4oFblg26Aw=!Wnib5pe<`4 zXMoYiwGNVnT7m$lq{jLq$~hgL2#S9Sq?Ffz<9ZJWj`dFg2o8=I>bnkri|s!myntH# z1geAy!I3@^T>;!E4zwB$?gd0*$)rN__-R9ru1{0K0Qw6%vKNqR+7m1hUBru@Cy{u` zwh5t4n$KC^5^K6bBUe~o>4l51e{9K(e7TqxVDBFnUGT|1m{Sfm zVJ;><%}fD*)Y(Pw&q2`quq7092>@&NX9a;=8*>vtg>o8duA{3Ygx-Z z!rAYqwv>AC#KxGqudNQ_;+jnK@avfm*YiD>B=KF(C_g|D-anmrf7!}CTFUPQGcT+iWh6t{xL^LpO!cpBJM`YY{m^Bvs*F3 zh(zH1Jd5nb>)1Y-@OJ1}-i80@mJ2;nu&~S+_YtmSZA7;GimXJWjzWDXL zXTBD}2ubbX4Ik&tlRx2!+;f{$EK8}$K#V2|QPZ*(7o;F`rddOJ<+iTFKU}7Ukd3BW z_;37riajH@u*lyl8s*Yyp-+EY@1EFh@-dUay|4E=Z>B9uP@NONr*Tr4h!!d zQo?Cx(MkQZIQ7|1*G3{uZpv6NGisrW;Y2{eq8ZbyqDmS`P{{45L+wq?f@j3{y_6d(1SQX!w`?*`79aJZkNfAIP4%hcKBa#EW0uHb#Aj&c0-~ z^<*=6B_(vScfD{GGwi5JWOVGhH!(^rR-si3m)g}|3p}H%C^;)acxFJidrno|PkfA> zKy2M?yOLI@C!!vm`{Ocy5h@mCI&Qtj^j5s(mSmnDs)Gn815*UeMTGN%8K|R2f{Oq= z*w8v;xbLucO3u;cTC~&ecm(T_j zxKPM_4VDi_PiY=%NAG-zc;8`qr_y&A4{4FwskG`4q?z%p@q#b$D`-g7YMr)Q#^t_s z*v<0ZTigmA_iS{6OtzPN%2l>o(#UzQQDohMlCA^mo%y^JYv_J*IoU(VHCD$Y92!D? z?7UdFh;);=th@DcR&75>+-)*7?!dlciEf2l9;sGoX`?1tIb91lt+1u4dhnPz7!^7~ zE2hCZN3O0Ct$9CKDWY%N%E6M%*)HBZy(G^Q*Q3Bh$^IW_zFqN+3B9zhQY>z!QsQ-% zQ&~+tTK`@iCu_trlt|Z8LcOSJryD@RW8bkv5vXj;e~?N1Daq9>eBHtCWDK)ZIpNxTT`c>tnK2+m7OKMb#kul+ z!kY5Qu%gsp8)Q=E0t;0Par>Yrf@ipX=DgD8g^RbaugkT#0zgAB2 zD?e9uO!SkbD>(w2h&=Rdpb1S}dJKCj)?~WQkJpx?nEsKLqXc1Q;2pF{j!G}K@Gq(X ztgBzt14zls3EvgNWKBb&$*o|dC)26Q0mKlqpCnk+kicJCmhx3#0-5NHKdY~$AW|jF zB&Awq1@WPVe*}PF>maf5&&ZXNvWQQj5Jo_@><7fwfX1T%pOQE-gw^(?F(j0VaIgr- z0lZKY{Pt9AFh=LD@<(!h@Vm_0w*=sKl<1w7`rx#88o-$f1s+3%6AoLX#6mX3^#ABO z%cwZIZCxXc1%hjWy95vJ9xP}e5Zv9}8VL~G0*yNa*AU#@gS)#2ceq8qefHh=>~a6V z8mm@UQB}gz85y-ejG;cg7P?O#uu6V2x!(= zCLw-2AVRSJJOLahba=&^3&a9oCwCqfsUx2P$kSfbX{#5R5LfR45m(=me7R}ZVgP;j z%B`lCdJZ1Zf(S_xRuYhRNg@|a$M%&oeByKK_<&TB%(f-9Fa;>UF7yCVTsVx`#V+wc ztJiOTK;h-QnuziZ5WDq@sunx4VH5!9JACj5#uOumRbZ_gvG}NI9PnB{ut-!`m|`cs zjt17w`K!F_-$*TpLa;4`Re|wgTTu;VqChmU3S8=o0*+T<64>lXeY23tn$6PyJ~&Gj zt=XAG>a|7}y^1bn^?;Kd+!SfCgzuK#LB;`&Px$G8Mq=2##L*Z}1G@C+6S z`QPnITr3bg9AK6N1o~H}7BHg%%=|ZrgabGd^|E&V@_*!Uz|7#^wg211?`16lF0l3o zuzv-vEQSl>g#qTkz}yR^;y?1rFYJm4M4-=!n}-K7mI1G^y;zrF2Vdl9;K**uyjzO+@$ru6If@iGkO zfII4RPhjfcB3*40e14FLesJh4pV(9X`J^xK_!45<3ckI$IxDxXhHt8Yv_4&(L3GEb zTJu_0bWs#hAkW|JTeWHLF78GLGjyMB3`~gOwcHTl0SiV}hf_gOO;uB>z@CA`ggv%u zOkLFNu92Vzx^0D(vOrH`Q)@_V4>BR;IG@kK$u32Ihu}KclE$iKJ4QWBzNIT^FfAzl z-RK2mJLyZS=JC5UQH`JG7v}F0i-+VjW~LwlL!y1vlStMdr=faPkAZVH+pW|W zSEuZbF-#?Vk=`++yABmJ;$^muBA=?!uBFtVfG<2R7`)(7g^z!zjs{tu>oAQr}F(u!BF}6XLn-D@>Jd36l%7Smi7mi3Lj}t4NY$HGqtJtV?coM~FC6evS(e`~6!dA?u3uG^%AK{+!BXP1{wLuT zad-I#R~v;#@!EG#m@U13S}5V)3z^2bVHBT?K2Ind$jP4HD;RRnfSDX_>{GooPI-l} z!{!>WZ%KN1zQz3DUT<14!9T>bY*3nx&FS$B_|(0Er!xU!vBWkT`;B@z%wOHI*6Ih& zN1)#yZ;+p_T8%DSMs9n1r>eG|;@ZPnM)p?F7%(nLxXUwVEwn1GKc2c zq4b?-ak7geeu_=US9~MnomAmyX9QoX&?Rqj1=-=Z3{QE&(cP_+e78i8DL?YrB%MC! zB*hE%e(});{c*;eQ4EG1N@*mdyY{jLmp^^miZAY@Nm{BwEli7+CmM_!@k+y6IUPy6 z$h1_@p8ayJRqGexk}838n@8w^xXnp%U7dbW{0^a~Y$5$Z6L%A=7iRkOiYG6@L38vP z>g&h$AJ|mwWsQ8Ar9gwCO3Nu?Z>%d)=S?p$&8gib_d)o{1^4x-b?OERv0xSm9HY;r z8iJ#=IqdT@su2m&=Kk4@U-bACY1A3nsyHkRde!lSb(${NU9(ydKmDTR7gLb)Zv9@* z6u*jkh25D%FiYHLlR|M<=~v%%r0^TG3&nULwZfGQSCrZ7LLE0h8?7cDC zAE|al;oSrND)tVE+N#EfG0J_LWl}~As??4rHLySfJo&&@{(k$DE>enX_jRgLq&s_7HqQw-B5G}Q`f;;P zRt{6=hf?e8_pw$cH@iZ^(ZEQ$&(ks55<((OX>>Ioy`0P0W2%{-CLd|?;I2+9@456> zp4m2}Rk}G^mrgq>^@W1x(^1E_&x?YXj8iafwaWQFGNL7?{m>4TNgE-2ES`24R#vx4 zDv0|^C%vu|o^)(#?n*ESp1z7-L`7GP;CWwRjMljO(cdLOrDNEQ6xtKNkxwqyQ;X}M zZ-2R0&_sQWYwFGmIlzqp9{cS#zRsbU9V*2GQq4wNCcM&WBs_N1sQvT+32_XV#x$9+ z#%__v#D>1L)$}93F=)+aGc+EKL3x(&jN<^JfXzXIhkL@)& ztF$(OazuCWk-AR_M+5V`T>L1~ucw8E-KkFd2hESlaFFX=OipuH@2!hknz#C#A!}HU z${(N{TpHVru7>4g@!M-De3I*#YlVYHE%6XMZcoz}=}?ls6QQRwJW}v3=Ko=hEumOu z?*Ee@ld11&;}Y32^4hbxg#;bo|mGZ-Sk zyP=A{&uQXLbDHZy zKu2Hox>9mwJ_5BT=C@p@&VilJde(W)Jqy82w7m#g3?z=N2H=*D62%os!>YW3%3)Q# z9{BBq(l?YAjh`YkDc=%Rzn8dDAml`eR^yT%+pB^D$U^q(lzIGT%J8gRt@>z4jN~ z;%7pMIQ;~ZfrKcn)x*IR>a9k3K`&?y!zXFFoy0aqwe;9|URQ<5O`R+^TcF?bY64MD zg=uXQfxL|^tLrf~J{kVa+Z`6;_~y(2cR(2zPdBzg_Z^JO15v$KweKW>kL3=Qc1-WX@^^@IMS-)@DjjjS7$8YlgEdcNkD{i6Ye zHPw;F79UiYTu5j{onNfXHo~Tgn1PxB`_%Lu443*eF5MUFIXQ32hs~j2d8<>tFD`^% zE@o%WzrhjB%r6IUKHV^6_^5Uc<_vk(>>IjdeENJh_MYYEGXzWq5{7=RZ6gC6LPP(8 zlv04~pt~W&l%O}zmJl9FkPa+ZBmrV?1j2{8y@&jy1d&3wK&B``AD~Yl#8eyg5WnohJx( zz&82UKVzV`hX!)?&p6^`%!K=QO+PROu;l+0HgR)6^o@c196kdG8#w-7-9Nx_5e6W< z3Bv}xe(@-OA@RL5kic>PL5xx;EFI*60fY~(kEE=}xV&fBN1zt(X@{kK|672gx@{o# z{jxzR&d;EqL7ThR-F*H0cfRP7Sq)W*B5aX(c-8ZZKCMX$3JT>y=}#9+yW{EMDHGZ&bKUndxHTMa#2M|GnO-{|X(BWJXJsMrHz z{SA2PYdz1sqb?%%9&1))LmD=VeX_02cXpVkzpU~168S{#`IpxKA|9I zreBvyWh8DHZXpq2`PHa=CnQ)i!NaRNv$MyuUA_@q(;O{|E#PqE;eq<{9!@&j^N32* zYE&N8T(Y4$U)_aQI)jg4;N%2n9sv6nemgLNyn}YbCG8s^zfE$DNozTGSfZ?fL8{c= zjBgDU2@5q_Q~GL4p~V^st6X#`eKIe2P8oE9_2fW+&Uf$59pylR1(e~G(!mMr5$k!?9rF2%r>hvqf3T4K4>UH~vywJ>GbB@Q4 zKJ}6VQ?55m;hl-O@ILJ>D^upJ(-gDtuS$9!xGdkn zV~V{$GUk12Rb4FO2-dPkMromGJkB~yd1`A3E10=6#=H1=J)H8r@_ht&(k$OSiTRsL zB&A>#-Fx}fX|=uF4-x>4keK}SApY1JXU+s#{chr8eTXg$%0f#i<-WnXIU=TKT>@S& zQQ$h^MVG)ujhR8;ja8QM$na(NJ#{VyeX>P39M8LSc+=C#VQ`R1kMVGnaayO|M$+76 zscBLzwD+$6dm6ctx>N4J_ZTp!_8%gXBYPCcdi64d5c_KJo6Pcvt`$adguR;gIo;l! zTibbs21{KL2gtVK+aZ*%=MFWD!s_(m3K5b=oNFh$ z7!J+j?<)p#V6!f6yt}ftVW18^Tn`Z$?1N1GnO3lsav#BvDXOD;%s2SBHI7pfc;++F zrL286?K)_9r&yGuSwp$eZ(S9qBhI~RG@#6|Iy_lNcBr|thl0i0(Na9%JGqo-c4&9Y z0?O((>qbhszQ508F)Q5qDtp{DG30t~zO-(F|M-DQuk(COw2@Om?^DF!2-(E8U?*8Y zB%`(tp1YGg^eILE_Me-Z&)FD_;%~Saz4YfL+zsp6>Uh@KJ@s}-KNDa1#yJw%&wSgW zDbvbhj>|%=)lnVc$NIItWNNjyDzaj-`(4WVGrnt0yBp*qD~JeM8)C%@A^Xr_Z*gsAuG3T6Rc!_4_(pk$rZ69MhalWB? zJ!f&0yw~~KCW_xC$e>LBLs+5$NEH4d;ZQC?x%f?|w`?z@aMM64Mzkl|a*++InZ=6@ zE%lHR*N|TQql8AU4wAK%UJTe-)=@?PWeG&ApW?M)M8#6wIvv^YWhhc_p%cee@MoIJ z?`l-c5R7#1+z*$tXXz#lc^#&Xl?d9iwcLGtnYmcjq4RAY$`_qJczBezfcuw&iF)?i zfCVx7l!`zFz=TYJ~(X8cZFIQsdsH?kO9hKwJKBlyOiNK+|$P1aXPc1l$59P)DZ)D zL*baMpW?W!4i5|^8Ibu(@VUaify5;*c%gil`tKRPovhgI*7vYd_}w+UX$#@g*3?__ zZpe$=W=@k~5(H{Cek>Fhc%?xuK)jgD8E?wRa^6D}_Kaj$-!`Gj3p>&Tn~0VUPj~Buk=j;zIzeIj>lmN7H_8 zc0Js;k+F5vBm$UqaQaHW`P5;80+`bgG?LziD#L042U&O`2-Cklr( zHA7dG_9oR_{lR06`jVyMs0ruZ21bVaJ+ZDuv7E#*4f2=aV7{NcyTh<#7kj?;8qGt2 zT``Y6#*0#(QtuINO4)d9zy6?qo>W;L6eIk+0nyBpi~PM~QpdylmR^qWV_3du`$nHp zOg3MXX_X4<^tU@Cx(!_X8e5u`3uWirPVW?-bLYp79%xa%M%@*Y&oDXXuV^BC)JDA) zJf^2lsMIw4yujwY^V$36;EQGr^cK8?o!n~InV1&oe(4TnX4JS7>CloEs%Km|D( zEVG*mnT2Z89hzB5DT$=FIT%&P{DpxQeC(kYbno+|nmkC>ZPwlVT?Vnz zn!N=UHq9k?;?8_JlxN&3WxnIkL%+y$lIL1_K-}4K)Jm~>uxWm`_zy?qh8i;iFH;e( zbN{?OQ46>nCp^ro&jUX8D13WI$%*N+PLFo!qB&f9P_c~|!Cl76f&ln&Pw}^g4VY#> zYeIEemwwuYZo&uijE3Hgdx>7pzOzyX1=&)GR|-3>z3(6#lgKVCzNa|1DOGrBrrsUK z&GCMx^!ak<(um$b^h-|)+O6LDla)odO{%e460%n;05+CT1UN` z6XQONl0pG-2@VI)+@Z;_k3k8iC^I?d%VpuE0Im7W0&oJOE+SAFm}e~@P3| zNqNFmtAU_m^6S1sOSy?0)6DxR-!_bjPwdnXl4K=V7yuuV%*ulX6g+c?$F(hbHpvxL zVg0q9K7DDZT@84H>IM`%!|A9Nr;DLQ24wn+3F2HyKfXq6LO21YVSM;6bGs73gAJU;EWPwcIp>m2WbVdVkwQt?GK#E@P0`<$>GG`!Yme+QeQsWnkoHo zg1kY0L3S95Lch>Ac>e&8_qW*pE_m8o^oS$sTyTq_OAIH{3OVNkp{MWX;o@xsb%4Gh z4$WT(4K1N)Igk0HQSmhbzTc!K7*kqXxa18wOMp6XT4eE;vL|uL*hCW4OBs_J=5Kk^ z_9IZ<3<=Dfjw2;|serP)ARfehr%>slCwIhu7I-28bFg3A@n^xmnH}B$v*XPR zv!j~oWZ-1MObJadfY_8g8mM04qnB^12Edii#2_Ln9r4q^!50HV$b~wrBzQ~_0A+}< zycGM;0sIGfw_e-J7?HbXW6+8aRKxzt3I>1FVv-^gh`E2k&lYOL4J%j|V@M%pOEo{3 zBmk5ZBM!qV)X#vjY#Ori`gb-lDFDB~e~k|m00|gh?ifSlXcdWqs>-70D~iZVofAP4 zSiB1zLA)Xcz9r$)oTT`siBR_7lKcNwH0vHJe&ISp17SW3&mRxL6#oB}2uNi7_BRhu z4sb#$;l+VJb&D$icwa-PAAtWqao`$+ZN-3TS0wsWq-f=)ZiXr>j0kDXi908K)oCnP11G``X!jh^m{2+nzp@AG&B%jasm`D-#{0X0-(~#2Mv4$H^H*2 zFJz7#kt1=`9dKVE5b=A$0<~K`+rNo`sMQx@2a-RKA2@^y2OdB(?4)dR69Vv2JL=+{ zWUqghG_^I^CXsfZxw9(3C(o8Qn|MduY>Drdx73f$nAa969^Nn4k|;dGcEvr~{zoR@ z=_ODHYMQt}tPAwL{J*U!JpaHq{woc@`43?eLdF2Xf&Kzvr2%0>pi4mfakk$OA#eFX zsSs!YzXAOh&_N3k_-BkD0OA26YHo;_01#`t|1$}G8Q1(XZhRS^{xiN70MP(Z{~u#` z#{Y2x`-^n25C8!d&Oz{mAa+gwtoWjc0~1L{QuLlKm#-pV56n7118yV=qlnQ82|Lug zl%0aJyt8=Vm3sB*j^lKKZa-3ulJL-Q@8ayn$MbC)Apw4{`^~B2hgy(`Vb=l#%&+&< zzVs)EY1v;zcx(Y8WYa3hE7i_(o2a{=D&y1rz_aE0d;u#xV7eOoko|+?y}?rtcyZ)l zCsXjM#&}8A=f}en|FlC;*_PR7Qp4M)3s`tnx}BScv;}*g5&YXTL9*Om9#L3Z=kIG6 zWCHIm79bfUfePyfy}7|`qenL)S~ zeB+TpYRGQR?V_k-zs^moT=A?0KD|G6%*DwM2=9eaE{zjj#LzL3)KvHFixBIIoqFwRa>`!$H=a{pRn?!iz zR@}9g18_c<7Y;)a=a)wU$02-7f?tiXx+JeQZ7^c53Dwm?#eX~H-|swxf{*sMh}<8a za4D$l;U%Rq<7Kj#MrcmvMnD}Z6voj)@9&CE7+L`%o@p@yRn6MP8 z;Kcp7kvQVhuQLgFvY&C*6yS)K0e2JV*EHkRoT3%)vBUy5B%TD{DgVjp+Yq2j1P!Rc z{U%{*BV#gHzVfbt(D!Zx_hj_r9l1o41Xm(m*W~HdvuokAMaF$$?i6k=m2O|g*Owj|xu5$f{E?iZLsK>9Vr+iHAV zKua@k-`Dy%@37@*U3aX=4^7`+T*+SITWDkZ9UX{tk9 za5+7X3Bjd96MSCT%o>|6qeObxW-(Fstr`mzP#_Uxt)Vs+Cb;7|(r5a{a-5lSFe?6%@ zdmZi3V3R9a|;OL1-B7HHR5wP$~O+bG+jd+ifsR!rIRnCfGN26aFZt z*D}2C&d93Pg$a4DE%nBJp_ic01rkirWnm9?<1=}Uu2mO8Ln=?hnEom(s@K*tC*1ZJ zVWp9zR@1%~am*2Xodf49hY^?1UAM+zFv<|*&uOpg{c}No#s1P!_e+-wYJRW2sl8U| zjsovPY1!atDy`I*>#;3_$4GzA23KvY8E=tGq>B)biEv7he4~V-uKwpvV2*&7ev!r4prddQQyoz(YryIJ8Gw<9(RqrMP|sv%Rv+ zPLQ9SU+--?isjTPer}q7x-%urt;<(`qCIer;DSm)F}1EoB14+%2W@LsQ%&0nYJ*%3M0js=6Jt0KmIdmSg}e)b&3{j4xJ z=h#@KEIu%C31jSno7oa16!5D8-azHgFZ54Q{V{^06#5Kd?-OZ43F~Brj9DP2SUTIH04r+4LMON4* zNRer^q)F{`9$jgPTe|bSXw5lgx9*TAd%}KFjErFMx-WA%I62zqo$?~tE~g{S!zA3z z__Avy0yaeTAlp}S3R7SUc!wG_qb69EBv#op;b5Kg{X%ZcnZ^FdRH z-6L3M%C(FdI?BV}4!5wo+UBZh>wOK((h#C;W5)ML2*+?-eR9nxhtPLV`SV`huUzubns<=3Ns6Ac@6)C^b!Fwt|Kbz8NC*DvuWDJicOXqGh>iL2} zu9ck1GG3B5KV@vO<4D&V(-+(`#&fq)HERiWM*QI;HrqeuZ2d4_l~2`G9Lp&>yIeB6 z)m{oxoX9`K(~Ykt)B*MOGJ?a7Qaf;<;v>;p)xLU-)TFg`99SOiT$E}=HxXxPtLs{r zZQ^HZsdh_^xQA+gmpW7yN(&d!aIT0rU+m_$-D4xdJ#n<1sVAN(Nmt*qSo!!3f=LWM zi5BE=*cqc%e_K-XM%Y!wLC2CpR>RX2PItOU9&*}HC5~1niFPD&zihOli8{cQ*PZA) zF=BjppWs$Pu^#A7j0hRP5hxQw+exNtR^DBNKry>B|G*rqx2|lwS;96XUpMVkJ{26f z?iJW2MSXKUd@_x*v~}J4DNG(E_^umFMj%k+sQ1hSH0e*XZWx~9d~qeu{Cez_J7-}qww}(+7}L&GSw>^u)xnS zv{=5cAf2h?D&2+ zUd;L9Md`(SsSg9&?ArG%6QsNet#lYBF;LD7&h=%Hrk}hEu)n;Qt_ln(FoaYXwAyBRpe6FgkRLS}&*cZ>ySsm|l<_v4tSmN?jfL_$RSR!{7~lm)1soY$9+1oSg@9K{~@IBB-c2$#ik_;LWccC=J0S zWhTF25mN|Y7_%~yIL!z2OK|LT_a#jRRN))?hS1&MMc9q$*?*duAU26QnG9^gZqBZt zcnlQ}eeZ|7N=za{M4d#r^hM83B0>bwCDW;(x9OQ6I;ah_%O&|ET$%)BzOQUbVl%Fg z2CnSnYmqO9;nyvfLhcs|PU7rlgVWEKS0b%U;*>z^GnvPRWl1tuA^1SUZXJpQlWeXs zzyjD7VNN0OGVJEznCHt&x1s*>S1@V#&fjHZf}jk-8+M|j>Qfs>2 zarlm?8m|n`yq>CSV@Eh{TSJcJ@*ej^DykQ{x$6Pp^1 zERhZi?t_Uyh{HscMrrgMbPAy5#F$K>!vffUIVfVv?8fV7DCF$M259e0bZYn;+DfR} z3CSvw$Y?vkgC<{NnnH&TebFlbXX`Lz+GGM43`F3(xPeBTxowzGX=y{^q}60_2_OR? zu5n%+4#FPrP8utrQ97n#KQO3#_2Q%bNn|Jp`}3fDF7SGxv*)5=EZynT2-KTl+1@Ja zMUeuhy8uUsL)$z&uQIiz z$muKQCQ+nxGh7Ye1bnrX=p;V?$2XylUbP_|JaVZ0Mw+w|_rnsa04m0XTnS&mBGW~R`7i+YJ6nU>6sR{e5b?m0On<{R!F)K+C zEf8K8iU$l^iW0gL>9Sl3dV9$V*$4C~R1a^}A_6BkOyI4e831QNSsk`Xd56XrZbF1a zhA?vYOPUPCW+{z`k@z|t5o`}{nJ-6)4lKbwTOH!X6ou}a8xxoYBUJjQ3lHNI4n2c#$533A9{7MdnAAyu?8#(w_yRfXvf23`NHOtPc{5jU+QJha2rmVvCTD9?xw*9dc z&Fk*$4;al&g%+|V2f~73W&ewb;AH(T7duYY7Z*EP)Bjxu=Vbe5>HpRB{xkD02qMov z1$9oA|M~q7!hw_JA0#9v%Riwu=f5l;I9dOZ6Kg~C7=UP;5LXz2{t+Y#!@>!%cLCbQ z3O<75Ak%yx2?&n@C<)Rj4|?-YzD#i}42?EkV~csao&@Igqj(tlhG z{Sz?bq5K~+axXKr{6LBRUuJoK69R-PKtkZfdgkU%KP2?uAIF_Be1ZiD~%81=jcp ztM}c^NgwNy{>nI7i;ru2zODFWi%XOKSA$14(u6nDG*NwvpYM)zTauE3pz+@Lw?k_Phc7loMMv-F=KlVm5pz3OZe|0W zeT|Jvof&MVP|RAIFaALW^mETu7Ki+CDC70I_jiyV#gTCR1n2Wt@n$*uSRlK3^c_Q9 z{S|@`y~2JiIl>bM*8EuUW>js`^lf#!1^)>{DGAH64)SWpubz&mAjIhtjRMT`^Eo`y z<4nWGSP26}NU^_S#eIR(fT$djxeU2cFKbqQ( z=HMxIHPjzeF20_gm#+0ZHZm(WrAJ(D$|ENCpB8Q+$G|#<-w^pHu*ef$pPOtKgYptr zJz6_-f98^dqZ2<;_K2=y32X>BEUQQQACdD}wRs%x92-d{AhXRBrwx4tcL(`2#U53q z#D{v<&gah=?putL{V{O7w_nN%Hr|tJU1}!j74*$rNyaeuRO9ffIW=z39&mrxGQ@Yc zgsxh0taM%ZK$(-cxcsqCh)$S@Hx4e`%V2^co^FxOOQ$&$(q;2DmQLtFH2-#CJ26m5 zeyH>K^~}4*8#Ol?Q?lY}uo;u+V$a;G;~c`;(9gZG#P!!6L444nY=tYVtEg`8JZ+^0 zM9q3WS*`yTP^FlN+()D%mU&HMNjjHT_Q0K+Esf4acXvA^^Wtpx&MOikVA$5b+Z1dl!o;S+;?%*?rElR_U7D`q# zo&21~0r1w`>XP3aqssN{iF`P`TYBnqZh}1AiRNob;cSGi`-X#j(zd!zLfoTDf(`6? z_Ic#5yvkI#`)nbj(fTfXzI7B7L|Gr74V=(WWj2Uw&Gsu=t0x?!`7u|K$w*rCxsIc5 zK9@e@ko4|z6U@bY?E_oAMYE-vu$eVzG2dy~cteNQ`Z-Eh>jvbAie8wMXIP6Xc@_o7 z;J#jqKfCd9aL9aUeVh1>>Xr1Z%5k-0HhcxzwfreM{JgqP&%E77{}UIBeELE56gl`POzLMfEKguzFlq(pfx3}j?PyHQypeu@OCX;CPmcuffNQbVe#KsD>&n(2IvmdI*^9MhI-lZIS$R?(i z8_lm9PLAYP3?_238sjh*uSic`tguSq_J;F#<4ck3Q8gSG)VIJi+5L`^_rTU7j z@kbu*4I7?^Futa*wozu%9{F(?R{gTQgZkQL*&;;gjk*xn1XGWx<P>vf z^jSKTR$34oHI)YC(!OrP&2T<~N|tvYfXB^urM1p3J3O8`5Yha!;;8eK9PA z?FWt2-8$>+wym3cxYQ7T6FM3*cE)U3%$wztoLo6DN=aW$Zp81W3X&PWs&1%shrYB$ z>sN_ij$)RoczMj;N_}MR?`X8{{*i(<65x98lM>{Ue`>diCD4bo>b-7qwg91seK+!9 zdjBE1!NYWiWut#`A<`?-S+FNQZl|X6oH#^$fvXIo4Ec+gCHI>~H`B&E($|fnKR@C+ zCe4{sfsHNu?MWh1)@(Xc*_R9R;(`Be31j3#k}^-Tgf8DsqSA8Q)&`LeMJdYdMDvDZ zF@cMghYk%0Gu$n+J7Q76#7CMtjx-X-mP8|3XFgvP#iShjjLLly%qSe?nevo^-Vczg zTrS)j1#YOVaj1kdhEePv7iwwCq)#<)?XO|wg0~k7{gdGu3~F<^e_fu*V7MT4_Z0qd z>XESBkM~)RIymn0xJmaI=t@WLh~SnGvx>@|us>7#bN{j1Z!B^X*JE%{Kh>i)L zLDx5~sOD|j%iSq0@j}P9^|4$cc-}$|Y{C{i9#3t`SA^)d zGAP0X)3n7yLZp6dSX)<;-v+mTj^hnwI72H<4xtK~bzw3&Dy`kq2E{|eZ(Bv~ZcIVG z>Vj6FArK=y5Fd>05+q9xL=Vjj8PWr}LPKiB^+B+3uNTf_nlf5jA4#Mi(urPnao7+M z0R%E!PPTuxTK}PCmh}}$^KWR2$5F-kwA04(6#9x2`V5=U`%HUs0hbYfGrUx z#K;ubXS`PZJI*u(Ha2XWkcF4ItX((?h;J4g`oH9Xz}hSj93ALA3s8xGRs$4*RE-gy z;O<+$?GNi>n0okTwT-YwYU~q@t7VvSxN(giIBy@va&oha_HU*jVXzC%GT0KQ@-i;9 ztt*R13TUH3Bu^VsL$xR|DrdDB&-bf?c*one%Xwd%Uii}I*9*GDX~;m*MNROKP~|rF z%#%rIYfm;)Yx$4vAPv9w+9r5V_uFIh5z%PW!YuD`-UG_k&N+S<9Pi8zC6TMklON22 z9{G2X-&-q%dUyO|CNr=^k8{*hMctzuGh*H>{#fyOx?Q^;4F(hA9tbzJK3-l2w?3$) zKb3ktc{%#>EIlnP-#-Rv42*&opLW(-iBt3SUm?HFQWWvS?N?-ZoY-~-j%keRRz2|gKiEw{6}G9d0j#ZscJ4JtB>+^i;JJ0pI6iH^bG^N^1uWT~dj&M{{K?1wEC} zbx!$ZrP(pQK?yC5Y$fQ$ktz&ub{JPXRFaE@S)}x7sG#|{FcRBfk8JiYpR;j79M`e* z-5&$}4^7QNh~q0OxEy%6E`1RnZ0?)FF^*oRg3aX?1;xNZ)^D@$W78Kh+Fz@k!%DlW z-jBzqAgabtltFbyufn&qOniu+Jo{)w$HE6=NWSd4*3~2ky;W$EPrkGX4jvzHjteW& zDPP#FwAtE>>KD5HF!iC?I>0q<;dp=d+VPM{@!`@OQ+4vY;g366XU~?A_RzR_Q}mxX z*N^=q1n)?C;$28-;QTB$L^y1OI!0sI^s_x6zpX5K24E#iIEEYaBBOVt)pJy2fEp;@FVjqlJ zdtc`;R%AM&fV`8jmO5t&fm~O@lN*J{alq?vUwACzn-nPCouZoTzDj8hrqx%URropa z?)4bAmD?LnrHlsKxAYU<7Dm*00-O$wkW)##X|H}ijW{0-a=Jmqui#X!?+wJ}Z=cR6 zkzs3seYjTmO7<%Mn8=+=Rvp?PRUuM0zwV2d^CF*#I-^5pxxo3lm^R)+X#Pdp!;!tf zN|H&JB=ba*wp`PTzupOac|U)nXc{gOU-nFI0vDHC7vZ2J?!$#N`14q=WUn`R)sC+H z*a0^6m#e*9%Ja=H5GDBA_b6_44g7`m3C~(Xbh0k;H+$mWI!wy5W4+uz^eV-R(euLQ zh05GFpLw|<K3Kof{7v_Ife?yIdnjgqW&} zlO*wI<3_9B3A4W3!o*VijWVZO17f*mlrS{;y8UZ?i)n`W;r3KN87EJCuY}(L#)m~s z1`XCLvem@+H77Nm>c##cka?lyDboR8o%7ENqI5bot3r}M#}wV?bwOSjn)p-vQ`e9r zVlM08Mm$~owNHWIb&SMY#AiI`w|II_h}D6zE2=k7*6UusmjsQse2&N#+`ue1HD9ds{`0IxfnJ~v>~C_zjienbH6n8-u%+EPVMT(3A@GPG!$is zE=VrJSw~39EpU&vARTe@Zd*Tmhe!5JNVJjUSOw|&ly`myY`68!mAChFL3;e4AYdTn zgc!z;(@)uWA#NtSdpnLxPX+F>_2ai0bTqtNb+rivKG~y+^rpAOPQ9$h1j&W01kSSr zPWv1EJ5r@Wzjnl~Yh$J+&gLif*#%DYX&Woe1ufv2zNCKrNtX$DG=Nc3A2tXo{p?Oj zz1=3w$-(2hV13GcMdQzkWPB%gWhv04CtFTr8XyD+fP5a{4@;2r>T5 zk8XoN9SNUgPue>I9NaIZ;n6@QOiwi> zTWNMZ!CX3@iGKajXi69(iGW&(Fl-C$0IFY-&m!%*BM1s`+P=}(M7+lIM!Q(YLB{l1 z&7AQ;?gTI&W%_bBvrpOXxpn6Jh&blgVNMFowcpNCyK^}7wS1jgtJ@xxK#hz2?8w+o zlBE`gDLQ$)G8hX1^U%aX+>#(rCxAKC{*WC$_yFigRBM%3Sux2!+fv;LZ58geuok1| zA6UaPEbkA~YGNIdDqytk_*m}StRr%7Q@eTYnPzUIpk_Op#=o#e5}`Ty_s~|q2rJ8U?QVp8TD6mMb(EH%;3j|jT*k8=YK{np6T^oXuzvtSK;d#$0G2KlVLN&+iecPWGa)7wj&(4PT zKF;2%-U=?#he7sIy#oLQ)@BscCw^}w=vP^8)s*E%Ub;0Y-`8f51hgX3^=&yrN6b)NCQV+sofFcC zf9%)!#EN5>8D*Q zotQw{D(T?QgEW2x;~iAf9aQRjrsaLk#51~dYJyZi3+U;Kh0&_y@zE;5h^1fpjIia#$=HoUEm@^>UbU-x@ z8t+FrHAbXX=g3H>&^?>w$T()bMFkA?E@Kn${$@H(}kMRpv-7E&0q$LxN8? zJ+C~V#NP)*wvnZXlxu)>*#btQk2pE}udUz(pm9wXUwObY^(-Rt*00kij-~PET2ae& zYc>EsRmG^-^~vF7OghA245Y5sKS{FdXQMDBBLReOa+BZQVY{W72T7B#}KGeUs-wP6r?y1V!Is12e5T6D;9Mjg2*to-y~&f z5{tAI!t0XE854ST{aCGaQ+5e-q6&ijN>F~k99kC?PZE*}<)1M*jPC{5IY}%M(75ap zifHH|Nh~-(!yvYZ!|I$|Vk`nBySWT>;!rLfnK)bA3*%cZIo4N--MmN&5|H#h4@3wY zGXAzKm+S!cTN}=$L-;cym&^vk%WggZa;YGoOzBs~{V*qowh3ZN>Q^37{F#g4399P5~Y0=;|$TBziB%2$m5;#)!(GzLJ&yP}7av7^b|OnbrXg=q#q z{nPybsB_=tJSDrtU&J>IL3>GPpd9+kEQ--|uJ1cifGl1j-)&sYN=hmzBKQsJd%t^s z??0Q_Gjrzbnb}9zn)R&bQ9$Uf_i`@!Vr9GkLm?rlh3VNGG%~>LEEaYX|a}?hZWl9Z`8nUP&EXdpf(T@%Wp#d{-K->MY zV|=K1dhq4`BYY-t-o5QE>D7Zr_~8h{O%@yq&7|WPo{;8z4WV}MQqK9;KfYs$W2F<{ zhcH_zg8;4bk}b_4Fsr_YJcPJhPCZ`U&7%ns@Hg;aw+yp*fU$vr37EDU?~IhnnqiRhrQ1ve)ECD-pzamtApm#Y~F(*81SqqI_}Q!8wE)e-V%9S3~8Z^ zXuK*wBhC@X2OjaIA7B@!#<82u6F)Nw08Hr-6$o>sa{ghRVAsPSV-A`$m7p_YZL>#N zj%A-knOc{55}1z@pm^t>fhBcXh+v%Y%5w_wK6B(&1~1`fG}s9C83-KFN}TvX%%_&ELhv$W^|P-dVx2LV%}#RNp|lz6ze#WPns=ql;!xwi@tAX23e@CKDjh)03b zFEyE#k(#zzGm((=mP!1Lc;(&n=MeDLt0CK3rauoc(@Cs^K4z*>*B;v=3eE1l{(f?~ zy+lfWz(~;0)H+z^df?fzy{Xu81pMlUChcZ$PADn?obL$)`xfv>#0&jb+9NOYciN-G z-;)B$e`s8I|EgL2SGebQ&7W`&?{7V^|I*p!g@WY9$8dEIh&BQA_B`T$q9M@RyhbL% z-|}Gp+rR_A@BrrwmKOg+Jpdy()DwhMxNjx5{%>DL&;p;c0Ou4u@RHl|Pp$t=UxYum zf;@ujdqK!yv9$GAZKD-CVwE+t37&TXQMTUOb_meTWvnFzevkVer+<8rXPK<^Nd#(p zTA6K+GCeb4l!MJG1cAXW!>>`^?XS z!L+875|cM}gGYM|nDy5GnWFReek1bNt@OgfyPA@O>*@|OMC1_FwgHl&(_33 zyUC8H4Slb#*S3w0KfyLeRf(luf8K=EE*%l8h{Aqd9fKna(bTlietl}XBLNDJ9iKPC z8PTCI50uv)AJTAsUjATWUwvQp(bw9|Hqv|Mcxv9BHT&^kQ-C>PvhZar)(7*PQDx!# zj^()3|+7GC}Fg|qnC=7Ea0F${|Mi4 z(0Cayybvj?O7*x^-E_R5KG(a%ZB;z|bS#&x7WSFed|3GjRO}*{=w7JP6CH1UXVizh z-Mul91fnQq^S*g3xteaRWh#Vs?|q&awTB9hyq0Q95K^^es@Y>1Zh%fQ^FBASeve|X zSTUm}(Z;&nh;uft(ALsU=wYK)PPsyogvzNb`HV|AoW93>d^OBv67yT8WLBl75PM_n zd^wE5_sf^8jG)yJ6YHp*vY)k2S$tTDhy3fy`qh~|d#SG3EYC6(7N)MQN0Od9rbXJj zR9vn4*c4tU&rFDCm)|%Ibwm~Hm%59x@~8}{I#!pSl_L#Bw(%;ju+5f78#Pepr73!m1_0Z{N!+6R<`-??z#$C1*Qi(#cahvBC9^4Tn=&z%7 z3z_;8W-3X!MOeB*NNIRShCV<0)J$R%x$9VW&f_;bs~sIEs%+>PgERla&>A~Xr1+>AdQ_*BRX#1EqS*a%1LoV#H8*EN%!e_5ugf6CwePrKFz3`r*lufN;{~JQ z7mwx4mR4uUoz4|LbtNeHYV(AL{uDo&A0~xWQ3+#>^65=2|2kpy%xpbeqEuHJ5QWKX zzo=E4l@+1<*)!Bm7q&sd__dX!iud}+v2}FCS6HB<;A-v;pDGv2z{!@Ap<9fdEs4{- zfx=>6+~GhNYJEOz$l$7ht-&X|fiP7+No=IB;8*>L^?-5c}Hj5b;1X>82`exM6bhT=CYr&+uz)EYoS(Wu|@GOdYuJ@r@s*8Gjd z3C_mW8{aq=H&XU`H2j&gDK>)F_Pf{7ckdPjmou*_q_@Co!9UjTB zswDCE9M#lr>Yu~U4WDXsc)pOd4JA^uQ4yl^LTNb4Jnh^p%oq!e zbh-}bezrTUf1Apr;K8ie7~bLKMdds1GF#`#Thlao*w;2%&0(L%b6OR=4a?S8;BTxY z|E!e1`jHj0t-{=~Yk|G!^o5zC^4u-t{i zUB?;hdT)d3lje#mGn&zbBz1>|QeT()#n#DzoL5_;XwS&}4P4Sc)R&k}=3MJC9A`D| z5$wG)$)l+E$y-Fzqn{65tb=_ROR4>~m%Nmd*%MJq9L-CZVNOAVwrl7S!Jh3X*@+_O zyD}<5ZY4tA*NxX=KQC6JtfpJB0O8w#9oYvEWvgxv`#*R$uYa<;i7E^qF7sG*dr^Qa z^zxz3mxhzJ^BtxcyQp2R_13aa?r7eJ==R}XKM#iqEo&N7FBwqx@&~{UihQV7cn^C^ zU+Pa;72CYFWg%xy-%zE84)cnzDY~a#D04VrXSkyewdvTMn2hiyxW=v(5bSH<^eu^uJ0cpG=cf=*K1t!s#5S1J8O zi_j%^6(VcEv=&6xryHyu+co{6m_dU;ZK_+1gQG37Al29yf8;$IrV{lAHKvjPP6`@Q zqWdv_ouwPOv2lVleMd)99{;vTR1@7d4vx1aPwWU?3X4HWBL-$*JSAe@@SzwLKLh~e zNYOEs(-}Vm?G9p-V=67jJ99{_rgeSj*ciN&Nu~O#INs5*fwVdMP*!Bikb~n=`n7Qg zC5guDRA2$Fi7O?)A|6U1r5Vx??nY@65~fnY^kr(EclDNnrGAmS?A7fj<&`Q;Ul4)l>x$aq@*?CkVgwT_t z-^;C1-oV0C8d2k}Y!u3{29xH$2p~mdIQx1(qAB5nBL2Q`@ExSYyGh18=&s?$Uco~l zB-#nab@>!1^sa=2y`+Wt92`y_L=*^imcFJNNzg zpFdTAQJ36(8w^l!7@$L>M!*9NV{|ht6-#P?S%8X@zI{xx<4P%v(iG}a`pyAJ3Bbe& zJXHv&6)6mUbJ+h;5x>-*8pt2ndWc~vy<3h81OqrKfO($B2!m=bdj0*wWX%02No?PK zPD~}yxYfEYZ~8rBHWtNrUlP_?f;8HS+UWJY+VU`gKAsbw6098g8O>$0Pjb z`aTD^5rT<Fy5?t|wK zWV+QW99e_ZbzUMOC7#h%Mg+}@Q=HG{&mJE#lBB+-Lh`cHcuj}OtPti55pt)Ffj$GZ zYC$5rOe2Z@PiVW4U!uTzFP^SUM!(6DHzDFTkwVap$E`bK#bn%7syyH|p$aii{GfU!Jj?sk6%hn^}6rF2xAz@^QSUzTH>|9!%5#qekw!VOO|8|%1JDxv{awNog}gH z!Q;s1-vJXzVC;;M4Bs-WgkrpjA<=$u&s+mcgy|P9()ldR%tOW{=o78KCri+S!HHT6F;Y6f>ZDm4`yXx&Mzl&EA2x#0i;_SawKo7YO zx^yOVWTht^XNiJQ5H*8D02r>nLlGZeSU`V*5D^{p2xb}K36{pwN$hAW*s)6V*R_F8}d= zc>Vy^{>%UQUGvxf;r_$=!pr>!6vz8lO!z;vmb~2mpX?CvIL%r(sLAkxPCY! z3XbgY51@@T0<;!+K#btTkq}b&Lr(||yrKk&1g`4|p@qjr0xlVQPY51-@U|813899g zL_x?9fmSh0e`WtA%$?e$lo#R_#9M5 z_MnCOi2Z{FYD;6(rV z%mKI|{7rBAKmH~djVT*+Ylr}FLKYhtBwjwi?-`H4R6m*xQN4?6?&ZJw!=`1_DC_3# z*i$NlKd;i4Owju_xe)aJ*W&Q~NiIYJs{_Y+4PoW{`xgD>6yoLk`!@0Y(Zk~9`{S~IFub7*;tMYUTb)Q@fdyA9 zhh!u2@xs5ALn`4WS-^q*o2WSVr~Iwrmfn;f&RPj3OqBh*-5Qh;zyq73s3Y<6^TXrk zk(ugo-b36lu`majzlpYr{>16iN&Gu+-f{rJGzDE z_PgfqZwzo0eJcSl(113`8!+s@P?-FDaEVZ4fWEw4rT^JF(Bhwi%s|8o-s^uiy>ADT z^eh8Q^M9qp7c2frwdCRh+fVfjg|r^l0ja^jxjKH==>P3<5NI42Iv+9p`56fO1=0Rt zi284ZGr$mg3!?oG{z9P=^6)nZmGC!C_J1B$01Cf11X!GS1^#tz0-7{H6Cj*Tq_k0o zuUA4?>o14E4&W{tuC}+~9~D)A^j65&%H*Gyudo$jg8T>ZLD~*c0K1pn4*rdZ%|RxG zzitQroaD@dewnMl9vIG7;5t$h-&;emWg7WkJ(ML;JfUu!`sreZ5 z={3GB+Cp|w5Ef?*lSvirPp)%_`UamlT z2fN%deW@WE;;mZ13WE)=OEtzkdn+|tf$S`%U{6ubVRUnRjidT-CHuxld_v;u&GC#; zw(sR*hiko?pKG7}G+KTZonM_vGHvVu1qI(9lZkrP#7=TTFB-(LVN?=^W3)yR90aIz z!fxCvyH%cdZ5hhS%aHBcMnnUDt`)5IIf;g4zA^v0eSe?)NzWwLRP%974BIsyn#<|^ zaG!j(`x63}^<0L_d}g~ZgA@aYT-v5AXFRP*K3Q^wm?MPGLTJZuaUc0axJSQ@Lv37! zGuQImv(D?tY$4A*o`<2FnT_ZN^R{$t#}FKar=dt}qUD@3O*n5!CCK$1+{Wp7opH1gSgo;vMu@@byq?+G`s9n{%4B%6w zDY&HxG`BnSNGx_qdk*%rH~r+_sC3299DQJRZNT4+?Y-Lh4p|juScb|Q{T018Y4+(R z0Z;Cj%sbEeS=x5D&Ku!!R+mO=)JJXZ7s9gIEyP1L%hT9MlNQ9=`I+7_H=M!mguUkL ztsC?-+gusnCOWa@Gn(uuG8&+_{-9aeKv+qk8xG&2t$AAOo-b~@wDfIbC`TFS-UfwLcj+95{S*`9CtS}%zH0S&=nT!-z(zNB3U?$fJRj?xFD-8y z50HIF-JS9zba}I$74jp|YrfLhsUT!BvJ29w43#}%mu|KnsfdA;vpx{C=G4i(`=iyK zhE=ithZ+BQkbr9w!wm|)>&w2*Cd$U__iPVN_l{4?@ORv@`wgh`aT&|YnK}K7$e%xX z-!H!^2TdVuIe{I?WL_q5NMFYA8?88|ZV*4_W0AC+ zN?Kr}R3Oe^NMCXZcLty{&)`c>nwcjP>#2M$xlhlf^}Bzd2D^3K*REnbe{o#0_O`UQ z{%!m>k0(umRs9$*2l8Lxf4kGF8(;xje*p#Ason>kP3JK5z6V;*H=Xs4UAD!{A9&Fg z-$%r~qFMLVP@6HPKjCon;+LUhD-=2`UgT*ctEeHZi~ivyaoL_)htSvRqC3EG{c%CB z%QJZf6aF-<>l58V+M|!Vhw#_x%=CKk6>b=B~-KH9Ry~ieIYcq^HVrR zo3+uOB-VajmnkbcI*$i4bl1I#V(u0b>J}rI8tdBNYxtWw{%twGL3T>H9FnKO%dj52*L+iZWa_6UODJM_q$Eh_@ zlZWYB_(d>_7S~5zA)To&`h1!qeTK5uL%i#lnv7G=BAWwzV@3(z+pgT0O~T&p8UDx` zPCf8AZ9#s3qM5bv`aWyKh&~_{&DUHY_{iz|VC#pWVYupv;{C%P7bYkl_YCo|CB6x+ zDF=jE287846kFoj#uOd!uWh@&t{kPvuiozrvE8MBaXFCGecxdznUYL5Z43CQFtwrw zmwxu~%wnWkm_T!Rdb?1ide6^u%gq(BF0(95;{A*7b3~C06Klbt1PfyV$gX>ML2F&l z-JS~wzj_{u^fb?Z%}8a&*$J{)zW%b>?}X)}z=cz9sHwj2!!Z>j2YO+JXIb9{QN`!X zGkjSP?!kVhVIvFgsvW=!tct{zg57A+G=4N9Uk|KTM$Ugwexaeay9MusA7u@&3197Q zp^VCN3_+ICUoVJ|Os%LgG7Cai)Kg{&sj(3kW&Iu(u0zllPuwwdiWac1PNa_pl((sx zSjz<;zgvGc!Ffd^fU7K2w8tB;92|10Sy$$|!T{5INXD64J=Gwl+%$1QH8v+EkY10M z_ zd7>w6y((!LL`?b)f9EA8cMv!fdU*%E;|9gSy!SVh&K5A3uscH1^$u_nj1=mTWTqsvb&n@x9G)F67Rhc66|x zl~s1tWxiHD(F;s(GZRK!%A?9~UFilxj>5adsJBSHsz&|zv3hh~(Vu%&wDT;U{0NUl zP_-4n(6n`Nyzsu<{YtEygX>unF~f;@wi;P(V2e$Aqc-zp)N0UehD*xl9mBSf;O8Sf zLsMn}v0wN0rJ{Bk2Q!dIo^`$cAITaYYTG` zy?odr;PQ;O_5n>OWBIn$SGBTC+mBu?t>5~;oxM0M5U9*BYaA3~Utf55!N5=*?*~ir zk%`{Cvj}M46-}}-Pghk{RI`*T#fyX=4TciE3cA0XF2N9ICs~#QWdsraenl%3{Z22= zKnnjBzQ8Q0p?y_y2}^jZ3$)2HgCsGHi_`zH#XuJ($#7CQGJiS~0Vbe9}3KwlQgGrN--7=LlfU=g+3fW+<5u163GnPxUFwQR_jY7)VolM_IOElM27gw>J={GI&@GDig@DJ=#FMQ}5$HDS`Yypx6UId+B0 z@l^335%x~jPz}=~T#)h_MQK&2%<1n5wO1q!;hQWBTFp%3r9*saF`q=TZw#lw1&Nr5 z|0ny^Q=qYfY&gdYP0?Zu@439i7^%K7bO+G_kF@a)3&?||3gZi;psFG@Z$YxuPRKc? zfIWH(l4XH#c^m_f07ny+;s!;W)s{4>uNYR^iIfjJhotC?3}tyV>0jYy&dra{xapMT zXi}J4pvC!v6yx06ATt_LF<9zHK+jrQVADEIljfP5D$GIVKA*r{#nOXej|C;uWP$-CJ248=d$twElfz z2AT49c;^m;2KKYhFO5nb0vhBo`}e~T3+@2aLp)*MZ4u3Nvo%S47zou2asYV3KJIHE z6z&QE-`gijQh8fO?A-s()qH1sKMJuKO=S+Gw{io@fiZYsrc^I zP>dn$K5!noFEIq9X=sX{$xvUB#ewqF3K>{opiC%K_y`7M(E|hm(gD|#O5D&b*ONL> zNPmjkSGqa`UVKZ!hMx=YIom`Q#Bp#|`(|}Ng#rO+)w7__?$;_{Z=&`OB{8{&SyU*$ zqOaI~ltpoE zWmp?*Qtb)2lI>~qV8r^oTGUpOgx66tGTU2Jj9%N2=-4c+Wi&7Ft+#Hmi1Fj}gZLZ+UM=-dpP`2H zY){r^Qv3Pk3Nv!t0xHoU6C^aTcWL(L^)a=)(;K$OHMTxm1v_M$yc>JZ52Ml;!Xy}M zdcFr|!{4CkmWR-1_ixq=R(F@3z_Sh^!5|%l_6U*(12&-aSKNEbrT=ef}PgUVnw;^nKhH>L@2cLpN(riO>hY?b+z!_?P8v_VOzG}O+Kh! z9;d=Uh4t4kKMBbhCXqxH>SoO4K6DP z)o8dkquu<;BF9>D zZ8sQkdUl6r=yv}Rr{NmTSI=Gr=K+B?8RwALH4pWtOBzS+4NrYP+1lnfXI`u%_JSEV4q~e_JRvY}8BIcXO3p>;1VXX(= z+ev!~p*jR!(nP(lDI&aKlafZt6r*+Oq4wUeWqbXoqZwh7O@<9EnvvG}&tKx2w4|U> zxyYVx9YuE&pZN8MR&;-n%wyQQ8FX=-b7cvyYA)^Z!hcPlL0mF2`7Zl7)%6JCFB)9Uw1Jd$Su>}R(UM|S zu1iJwM5#y_UY}`yw*W?Lr|7+%yn>K1`^3QY9fgxWL=_66U_2=!5Pr!VQy z=VfwQ$TUY?`ZEL3~Qoi30{!S)}{SEq~pRM)*5DfOzH36tphgUEU+WiJC9 z6Lr--FJB8&&~k>&kL~HqbxX$M%7~Jh(z-9ni!X?XEtE4NcqcPiIpmwK8x}reT@o6! zKbY`VimneUDap0Nwu!8cA)V7h7_M=yIBtVVwlNCm$+WKE{JGyLf98JgvjdG#%!i4FQAf(2%#TfvVl3^F zV-9!jcU+XoD_uNawJ)rX$5yJEF+YU4eNBn+w`-sr_TRVvK8}>{aG>b5lyms?KJvlFRuRDx1c^EOD_d%T=_F9`8 ziBE6b`+=$@4n%k&T|J8Wv<|w+(#4gfuYNknE+G=YPNn?1di0vAfv>}{*~cXNI+Dl*Ld}(@;-b0`As9%Vp-wFC8u@Ou zHC3JcldGew2x_rPS#kBC!@SZVY@doA%5iI@8V^vB$wE1jU(uxdha*9R-ZM+{AQ3RU zutA}B5_pYnF(vYX11XUb!U=_#uSgAb&>{-xa^_J`e*6^GgqWB{6{nOkG)DV&pOXX+ zry$=LrO?k07;uOPUQiC?5i`KCf*Ur1sU$(wdt)(WDiUiZBZ5E&m4fA9cSX6J<%|zu zGj4S)V=4`-e)=7Up2Acj6Au7%B$m?wq^VqUv=%^b@auDw!X5uvOl3R?aETY60~e}z z()8zdR4uF`FoM7Z4>CMPNKnitr8&UeLYh9nX=E8vs1?JWp3B5JJAMzXAM-JjxRQk{ zWw)pMRD>tw9i0(5{M#WCG3=SFEZd#PRCOJ+&%?!XVRrPSM;&R&w0&OU8qi%dJAiIf z#RW7h?jcs7_^`tRDz!>9R!T1+8t^PgQB>lEg|Q^+c-prZ(Mb*@0*%8z7Aa|}nmDi` zgAlZaJAyF!LHE=SyNb9z1Tb>3@D|}vhxF#0xllhYEsPV1Ao+qN)ju2&H^bwJ1}?B1 z)gfSs#Lbe?<)8`OmDXSBtwTW>ZEznXWfQ{0H*bkz`?*rUi1ql#_v6*lgjKQbE z1C4==`P(2(N<6oCQhNMT2%vlAA+w;ff}b&XeD$zf>vZ6*`;aydzj(D22B9$Q)|N$- z|! z-e&Ssi>DKD)~O~;iL9#by6URpu0-KG;!{KaW0aye0{axv%+)63`JMO73SGxNRM5|O z2?jDSYJsn=AOejv_k^yPJJM3lCLz4snmx%40t^; zSAm@zg|V~0L9v%HR#wb_Ta9r)5s9Znp2I`l;_CILkEX?fz0zj#Lkm|wNEfh93B?b* zd6{T$tye_HTb&YwTk};U3_Kp2V-{bD{KiwHggF=xEkSSua0F~|@MEO}YrBPJb1PIL z!3Bg$61;$iU@Spd9RT=AQ$f)L%>s~*qDfb$Lm~sJOaPfz%NY29SLQx&NqXr87*jL*){a*ahk!K6ACpzvXr=u`AJbDD{z z0F6xBNp|NTf&R(uYeih;TCPAK-JBkjsTc9o>zO)3j@S#yweJSMXcn*e=AAzO_`G$k zcd$z?a8c3ab@SsZ%syx1&8@`>2w6Dbox2cff`6$j0?|Q)6BNdO0d)EP1`q##@a#{` zpWqoE$Dh#Re?o_R9RCR&-unT`gAWfuuu!Ba^(gr`e=97W{`m6{w{bHd$OqzJeJz(HC+aRo6)#cplCq+OmIT>5p#{iB`3@43L|E&=6Ahdwec zA?LsF#(bQ=@y7Igoc}kz&i5})7SI>qh8cQIPic_sL$UD4bh--=Gww^^#}1yi))2 z6v0=Hox?}r3G%+)VeiskTwdd|iHQW?T>d!t(p!FpUTz9NYH+_hUnb%P4H`XKalV{_Ka6v>#si|@*Rb=GcodAFQf912J~YXyEbS+Q zIGjo3Nf>ygE0u|?8=JL1$9bh2&uf3SCLb+a&j^mi8W9+BrREdX_oMdBrF1?+@3OV5)aj>UL({-0gCv_i+lAOn$a!H8a;~&6^-mKd~SimFZ$)D|EDM z;N&QgQV#o3`e6*oGUeX!v{-2I=LS7EO|(tkq9xnf15TnIhc`XShHnjbp>Iuk9#5Uyliddg*=&3je! z4kEe!q3*LFd|=7fC4O>MW(LWgpn4=t(0gaaCAkc?Ot#NSFmY1uCsp84+-ugDIYWZe zq!jsbi)g_;mMq z2;{XvXa92Wsa(*PJ*N_=enO*^65FYf1gZUQGYs7wp&N>du@HN&IyenodL|MaBAk z(JM$L$=glpxea;l)P_d1ZVU2EVhOd1a2JCuSe!+x?lXzZ2QH-pF^f8bNH+^rS#s4> z#Rsn0ibJDrUAp0igYo{ad1q<#@{SP#OHNy^X6E?0owS!X8oqr$*(H4xu9u4O@o|1l z1T&{}5>Ef)&nJk7*8?1i)5`Wdk00=PrYrMT)q4!^ljyXs!9Pvl4{_dr?&8Eu0mnSHC-Mzt-PDUHC4ovKrV2V8bz~VSTl*~XP%Ctv=9YA( z>_VPwcc}hh$63QM#r(soSliYEpM!x|Z(UR}lga*%U2J}zG(X#2j1^@qb$8-AJz9SL z=$wP{txR^%k1YR!N@YriCLITvCBeB60VbvmX5A9<5jMZ!%G>PhP8-n0Xi-zCnnq(|+_bdGuu&JGE)##8Sd zji!MgLPO)*hu}!uh_@<2T<^vD_mzaT*3G zKE{%imT+~`?JT#bAsgN$oV0(^rbzrQwi@QZq9gC(@^qmnw6n;E`}-8#zTy6lsK!~> zk8?Vr`tB<#eUI~~hEY3`N>~=Aiwj2&_?I|UQ0MMRl?5o#v7%1~tm)Nr@Lw;o`QdSG z(2%Q*uB~82e%k+v_GCV#)1H54=&o%xSzV2Qx8a%fg#N^abvbj!WVCt9VHJg@{Rj+J z6Bm0RbT-X6{G&!;zAUv^-N)c0NFbwRDSiRkR^6?|mVJ$9({DsOY)^3DYc{(#6L^r# zl<8v?X|7)FtvY-dY9AZW8u)UzADJ*!LeawwfxYD@a-&+u%WZuZHGfT)uYe6R%w6(% z@>G9JYb)C5b;M#6Jf`EtO03XeqlzW$rL}IV_wq{rC^LbJ3tJ`_g~g^BV*InVF8 zT~zu4HLv(=M=T>VSB7gX`n(sma1o)(NAJmN<{Rp+E{lSxcfEb zrGi4w=WRTyPp5XAB|K+CF7}%aE@R$N-!BK>k@&d!TzF?|B0PH9macUs611eq4U4Rq zJ!Oj7i{?y^kd5AURjX;(*TTZnIxli^lQnIyBM-{;*2zUMDhQ7r`1R(Q@W<@Y$A)Jf z6N{VPm3rg5C||3Vg!shH`_8wvrm3E_eBnO2OnWg4+rZ<^7aFfQO+7+ds6TIcxj|UI zIQ^|NI^iXuZINY+xA;e$gV$4~?ryMtou9SAs+We?WYv=Wa?`Y@xYI=UdPXGQEqG+? zsx@pLF>dS)89169vf3NeR=c#iE)I@pr(RD}qh7GQKYOS?U$kTs8koGD#_b&I|0Cc2 zTjUoK$Z7ZV_?A3Zh1l2POjkoQryLJ^gUoJ_NIg|65#)b5TO+iR;LFWo~w6GsC zD(0yAz`3*fYK3*a^LlXjK^BtQ&SOoxrf2o@NWtYhwdZh3_?0`Ge!6%U5^*8-J#wST zU=hWX86NbuMi1vFgdH=Jvg(>)1}tmGv4h{wi;CD+vTk@7B2uZKhAjR)gN`czy-}Bwz7ZhaiWWDD)C)PEd$sTo;xSwHhJ`-!2Anxx*9;D|HdmpRj5p zguXv+G3cG%k98D!8Sz(8h+@Y$meN3QX$F;=KjC6WJ__BrTV9qTJ0FKN%78;i2V&U5 z6l(w-pO7({K%;*@$(u&ffP~}(P$ZOI!t^IiZSsE`H~iTGO~a4T!B`P5Y-ubBHwawN zqQHfOt1*|!S|kH@D6?cNgnJ|-;-5pFu7MKiU^Ngd`$|evHmnm%In6JCJe@1>p*_N| z!_xr_rsg^S*Oat;ESs3!ih}AzxPGjS>ajVpV9gRN_;xWR=AxVY^kiiv{ACu4$&01= zcG2;ho#;`}9O%Liq#q_Us>>PICqQHnW%#6UNfY!y0vSv)%pru5EJsf{;5lMFTJm!g zEC=HccbFQ6ADEWyd8rpo3=RW<2Rc5ET)zeo7a$s1>g@k z;DU9+7H@s9IiTb4UINosF!9b3@WCu^pHktD3vi^WG9#R&5^)=T2L-@j)Ey4M?IN54 z#piL0KwpB3SrAk|-*l4<8C&G$+EK!&5F+?!`*2zMhTVG|UZf-k;kxF%anq zIVq8+4cd3js&2#Ys-TXC^c_rL(jk9iR-i>{S1w4RyaMQ5znyx7*EDfPGSoC-3wX!_ zkS(3~KFqm;Fhuj<9Z*EsaFxz&V;oSWf~GE@BVz}L=*hqWkf!-WJk=S*>m#JYJN=e` zCx)w5zdm@MFkyid85=#|J^2~t4)9`3?`ZRJccVF+VaK2;{49n->LVa>2xfd7GG(Ll zUg~^m^}s2imvaKDd-THIAxLgtxyKcMXZhWh zV5D7Th`odzpsa*fwIIqs;J@Iya6WJJa*#d^(p5&?nQ!bXnt@rRClkOV^$Nr-?%#fH z2(JssLP7%?pU^6nBFx=NM2f!xt{!t-wi?#$r(Sm~jxgG>r;R$u!!%~ce~~Hialyx_k(uQFIxPPHg!%r`F8!DP^}FV; z|Mi;^QiGE3H}~UzB}(!oN)Z1>w$j4a@sI-$xDvm?h2d}Tkptinb!dNGGOk;!AS2v} z05C`*#G)|4n=c_4|IxhXcnL6!0GW!&2ZgV#BRzuqOCS^1+Y=&VVPhXx z3F9A~EqwfSr#hSBls!Ch&P0|W{P62L;vMcnA-WxOsqn=X(fc zeKH-gDHdK^3(Hnd^_^%J)0X73}cutk(b8;mZ4DzcISV++c&DiMd+0kX>4MH@JnrCIC+yHG{|r z59R^4JG97u_niB;8!pLHx+8G@2fJAc zhJi1}gLUBI;D^5_K_Lc)XFcB19`hFJA?Gukd*~#Hv<6Im)fjIw*OCLx@K%C#F0Toj zy$sXixhr4Xizc=1)AXKtOMgY!ynj>8+}yq-(zbjJggNaLjewYEKOa z<#<+FZ)UH5I5XiF%xW4MM(7!ew8#FmyIARxO(|YENw{)c-qVH|R_lNIne@|Z5mrJ6 z8_OaxyQC+Vmb^4I6kI!ov3t;^j;=hc*1cQ%tj*rs#&`61VrzT3MJ3;TfibPYw7a^X z|DwJ1=H@%- zK^fwan& z8Zl4rn+aeZzTX|()q6~|^m@1M-Js*-=bpA;Qm2ehvt*gerJ_9^-y+-K`GM1WK1M9D z!+Iy}x}x=LdVN;5Fw2hxE7M<(7H~!E_&!dKr;L_7jMzSd)g)(de9^A;<;50E$X;6c z<{y+;WNPa`8frfR=W^0a_SnvJ_9baL3Vm^!OSiK4(J}1^BKzr^e}$N1;`d6yN($<} zG)Lc!`a0^;Z}ul^p$l7I%}cnhUYZ=dVb8kI+v6+4`f+oDFLRu=3ln&`8zM}z{d{e$ zDLH}j9X=d|3&s^zyY9nUH&S1#FnHmMIn$fdz;QYz5wGdyy=_4gFR|Y6dO{WHhfrWm zJ@=sK(Sqw-!u+zM!sGcYmd10c_H11-mN~%C0yjVCj4`rb*o=PTD!mZS0HamGVzb@Z z#=4pP>Dm+7IAqk&DD9$mZRd36`6)_pzF+dl2l|Z;3QNEge74u>SP1J^vJP_!O#Vj1 z>_QtK%iN4JB<$U<1o`1acj2Gb%bsT4ZwV(K687njqDxktjy}q`yrF}p3%7O;oWM)v z6RMX#kFXnYC6Zq+!hIdKhHZ9@x3sfZ{k2qy`Ljdkcp8qJ9MMl5U5T!uFICwMw#tP+ z7U>J`!oFe#gcg?^Y`m9lHlolS$~d~;`P0jeY8K9b^B(8B=c3F0(OA(aM_oefcHCnH zp|qr`t0RYB2S?kgOwuSJ{cM8so6ZrO^J@Y!GOfq?pVR#bUJdKcTknt#YFY1Kz$K*k zf=IBIoU7%KV(I)U$AoIM$$t33jdS%R23{^3!y zvgnv~;{2nRobpn{8=@&8SqqhlG@8{x1;_zgJHfJr_ZpoyE|o@gxw&c)9@L2ABCFVX zYDvS2y8UsZRA@9wY{n2J4i$N<%py=6L9@RVHy7Rh3th_8gn-GuDds6FyIn*+vWzC` zsGdRx5=B!@$6|27DIS}h64D2aNb1&hWZ}1$09`9PG7MI3UghwVkOQm0o`Uf)R95V$ zmAnpx5&Zt z3Ohq$Q#rYJqv#c^o^axwbVDT#_s2!jcAR|7=39qwx_Snj)1EQEnJ7KVzd=G617kv9Lr$@oU}6MC-qFvKwCDr~tgvrp zZQ@1agy;lPMGrE#tr@vxKG0GI^BwwltdQOH>9EFlZ7nfIh&~x1;Wc9YE=R-x%EM^S zXTAF(o!Vp`x5ew+dz2WA`k=VxK5{i;0TaFjk;ee-DUFo?h6Pe!3Wj-Bt(5=_V+*kWePj!xXp=FOoa|sWzcFu;8~sFlji*)0Dk137 zZ#+g>m)VM2;e)OWc*2@OMo>(buMin1;tnsP#A zF~|H{g}V~q&A1n#BE)08cKfk667Cs=Xe6K+eXyCQTYTFZpQU9%172|Nu0gI*pIXC@ ztjj&enrah9XV1}P8=Y-E>Vy4c_t6TsU#K@PtAc(TX9(PX_)Ph@|HWs@$ISy*hXT8Y zQvi-hgG~DWO=0feq^1n;3mRl>_Z1$>x71uS)AwA!|hNh#VZw_b*d!2=(*KRsUeWxDWS z%GUSY?uD^0C*Ms_L~>Yh7bj%&Vhh!3czIZMA9-l^Y6WT7^z=}t36eb@-{4&4el2Edct5{)Ba86c!P;g3;(|W^-(B5)8?Fy3awnM8R zG9joJPE1^G7>2+1spzf-oq4Oa!lb+9S&ZUSA@-WiFZ1P2?av$SVKX$2_9JDZr!L&F za54?>W5<@5(ANJ%d`v9+pzppSdz+Hs|D)@x1FBfw_a)8&q&uV=k?zJIr9ry8k#3Hl zq$tgyyOc&cRZyf+Iz{Pjkn}g8_w&8?dVl}Go|)O*cV=g1ciws4=P_3h_N=u3t``;V z1Ba2}RbtD`DZNr*ac}K5uDN}Xy==S$wJIgO>5B`!G~#_>p^iKrmvjTk z^+=CNO-9>|jg(_UlJS8%G|uzUn6MDTS`mhVK;eUdw%TxIhz|1HgS+P}sOqCIIf&}i zjDJ+SA#Hvc5fA8ey=eBDeF876-%q4(eHhGQgJultdsc54~Z7OuS48zNzrD&IbshYh*>O*zY zTY(kcu377g+9Do~K9%f~r9zprM$A{{_yz~6Yv#0`T3G|3*}W{QqwNAZFl`+E#k^^{ zy*=w1hAFehhsWNy94~g3n@J~LRy7xXWi(Z!dP;6k6D+I49x>mU_x)MK*{kFJ4d#8v zG5_g4_e)zE{b{c$(WmPS2?6s`{i&bhl|3(K#m{eDPVwS|4m7^>UoXpR|8Y)qp8(zS zj$!r%4cli;Tb(X>a#8i#!uzlTuEn`?>k(e>V}tkI(h1dV%R@QiA0B7)Q6ayXqEX%_ zfTefYsnppUZt-($*c+aYcOUw7ek>W-Z^hPFFN@V6YQ*zNjC8)G_hMMe^VP$X($wY+ zZ<5$T8%oNy_{;=y(Ki2b1p&#Okt<2wD{8v?nOcVWhAO^E0O#FJVPA^sj$|XPe z4dvufc4`x*A#MtbM&$YFvz7_V_5CdlvGE6DPJ{c7x_+PPj$hZizo7H9H$AO#-#Y9j zOPFdHrqTO=6Iy!E&lxQ6KA%QqukqP>)?sa$vy{`x=1T^^^j{))pvmp#GZ7@$@-nCA zRFT#Yxq^Nmy`!^Co_;V9Ch3E0++^JDBrC+`zr9uwGB~i+ysR>mUuCy81~~67h4)l1 z*Zl6KW4GPmE=ej;HvOnfk%fXRqh6+&(^at{iInp0+1I?iliGIeFV*PcSnK$=o{JQ! zz-N!N$X@X??&DDU4egFKgyq&p-Z!BsG%3hDT?z4bffw&-imhm?!>S$ECx5*EaOAL= z$j<7iJx6L~F<8REh>7IZaxb@E-NmM9$@|5lP8~YLrOQ`COQX(-u9pt8Iv8`6DB&Mk z&(MK9u@A+*pAOwuuP4Go{E6eiXQPo#nA@H1+nReDUR|p79H~cM`JH!i$KYIvb>cx} z^0Jp3NoAeylJBsumcd$T4!`eqmHThjvlD7z^OZc+CX9A}&Az!u-qM#brhht7oY4|P ztV6EUQaEZidypc&!8g6ZH?v(+#$Jd%Hk7qynNdP@xRU8~l(c>H>D9B3-NiB!1Lc$J zA}wMwsUS{~N-ytW?Lubb_int<+vYV?SYwJ04YNH|8@@bQw48%|Vz5cSt1#5xyM`ZNsYvO@ml%DCj!39r>&`0T};phoB zrA}Te=%2H2z;2t+@qf#?!Dd&F`b2D7yQRkWB!qO!Q+%6dD!noLnaIUDZ`*~p(Kj~x zJpE=91z61u&yw9Ga?KZGac!!LEhF!s2J*$U63hpt!Vf!w?h#kfE-<_0f4X^Jpj)s& zdT-WvCA`Cz#0RbXp&RnOvDkhgl9>?!Cs5FZv_Ro?2U>xGZ65eTCLe)_#6ffK8B3g{ z3vPkJl5Pw_@Rl5sLUJSvNiR;43U?BBvMO3F%y@-QB7{Y~EA)|Z$Xi<$tOCVEmUl^H zYq7jQTL~UUVTl?P?UTeE+$e+r4r_uH34H8N#BYivXmVQIOr~!KDp}?g*)qyp?=~b2 zUMX=}M97Q3$GF=i&+tB;1zL532boI^gVO?tEdh2Bp*^U2!Gat?fnsWyN zt45T>pD$@>JQ+`m)?UrRz#RgVv$5aW?`sOl7*> zee7>Fej6X2UkxZjG-Hv~8Tq*ZA%mbwB&Wr9SyIioB9UohyI|Uv$eKVm$sD0T;XMJS z3~9DKr$y|ktf)dVeKd1#u{{0L1o{VfQh}t1UC6AH5s8`@Z;-kH`@;hmE-^PY5AtgQ z69zQZT#TtaYO*eov|f7CaYo2zg`2>#k(N)K_l+~~N*HMv0b@uw3l}im(qUcfrkKi; z1o{qI22ix})CH47>nUA`gIe^Q9Jm&m0z$3a-5?xx4{T|yTA6I*whlz~0vtK#ho;$Y zxj_&?0dldd?1nN7mNS@4q8Ss-oQK7@t%}CT^_kf+i5*bU7&mGd`vWXu+}suShg6cf zVg@Y;5J=*-mnfuXhyr^Dbb*^GAYkAzLpT9iT~R!q1>ge_*{g@lZA`gxGP^N8bx@7I zL*PspUJ`GjM?jCV2dG0{(pRwEjK%-f?JK1IY*R%Arp0MYh~};UY`mL}(|#L|0ZJFV zsj6Z{U_1pMfyh^g-CV?sa>f&R5iy|X?LgXotA}|Q#j-`_d%&RA z;9vcG-eN>RGqmw97ww?`SDtB=9 zJqoK}F&ZgI9);a{0xYqNhXK-=8d)rXg9jL_az%hk#4L^sP>{&ods>JL2v43ygO0#+i|kPixI*JL3brGz&PWCJ>}g6FB0&j-qGIaLppEZp|>bgHrA;Kgjx z`rgtiagJ?JZ_)c})nI~yKuajV_b0H4@Ba&I;`?`CzX0Dgun7+32dkEUpqCmYe>-yP z77ZY{sF=%5%HPHO8_uvrsRADUGC)fJ6zN?M0qkM81BW-D9J$^R&^7pLNd;1#yMrYa z_}}RcVItuFqX|I{q6b(K0-lDyyTTCxXiPN%iKVW_144?8b&@;8y4&jKdrBo2-2ZEx zi3kvNSKA=?*OVXsQ2!Q4+=sH<{cFwlzfBNk3J`aOFm zR;DCSlDdj;$Xiq_j?UFMFQeIvOQbRmOw3;oS5*o6d-vowVaeZnp1}2jnNdLS-!gFm zf>+y3|EP)Jbz_8k{Pna2IpG>{pucUogZ}mp+#z|`U*iE94@pADYE1|1J%>|6up8nh z_C?ob0V)TNtKk6sWfWW?400uda=jJhm<6_?0Ncg&qlgOwkAgqW zv5^VBkOdx*;Po+~z#se}0^kh3YzQ;BDJM|z`@I2k2gu4@apu66vmtj7-M8U{IS@9O zBLD!N+MdLA@iM?pj-rT-DC?iMdBNG2;+t0%r?%ln<^2#>rP&_kbaj?Cjmz{NzSaP= z*oWxlo5Y4~)_bK{~$F zo4VbE`we{Q<40~o^ZlNFePiAaD#g({6Kw_h(22RF8O=gpOrLJ8Xm>0z_F;$@i}F8vT&37Hxl#FI@uEybM(D$Y-#yx+ zX~G)YrWf;*+w+eED4W;$^Y|xv8DYfk`=V<`Z>ERqL{2~F?Q_ZX9Ex-Aw(3Z~X}LV` zxAxMSmfqrb^!7|o)*;Z@o<^^&I(cO*Q#@s!fzsrhF{?zQrP4sEfuHn}1^Y99jJ#*S zW}}`1*;2!+$ANmEv#jJlH$pwDvM0IE9*e0M%JFh^r@jb|di`p2Yo5;|V80&bEh4*i zmwR(gZPsxkuJy3(2Tqt~jz{_i%OPbuyZCL-)JKGou1o|lbUc1{=h_X$knZVHF0R!!Zrsq5qns0JqRcdiHJS+7mq{Ls|$@jUJYQ4o( zJbU8xqvzD9$4$+Zvc^E1z#u)yz)FjIGXJ)k1P0rFFU;Ij!0+BlE2VdXBH_Y`N? zWA}Jx7r&nV={)#mX0|}-+V_iLk`Dk3u{F) z`V(udCXdx9i@IboyQDvoJi1_mO@18>OGnvd(dLtO3Jvd04yEv?3ccv9`tmf&`=ew^ z$;!IqSQ<~loZR=$(?wBY2X;4XDp5O!*t_>Xrj+p8`R}Nz_q#7WXY}i3Q8s9pW=yrt zFdLGKYAQ_-(X~Mj4e06$$+Pu^89T$*=8O-uR!J@OEbDG?Vv{+w&%i~*U=F>?`vph| zVtd^s+?mhsQ(gM$boC)9>n{1xd+{}5z&we=oAnTreG3{Be^BywIbf{MOrKe4r~Ytz zm?PxtE>Xx{DCT2o;~uzDOAvP0fx52H*rjd8PbD|XRXk~{v^C}igASLq3tH%$ICnW$ z=*@gGd+Z@kW*+$UjpQw|85r+ZQlT+&qT(B^3+u~)o~R;+sNB+{XXeHbC+uwzWv61u zVZ(7`h1HZpFRs=mdoHC2uE+ORd>pF|)XG}lCARRm4X(P(Pz+<#nj&)%nchpj zX{tk3Uum*ueQ$ur@n`y=XRP5FDGOP_GZ&ma&sX2^dqdTGUDHM8L1Pij>+$dW+aIch;BsbCqbA+0X*EZ@rnjAihOGbdEWLJg?nQf2@3Ow>@al`9rPpgN(ePhd&QAxDK6;Kkw5!V!3~sgXOaMZ%o8;ay)#` zloo)vZnoyq zrIFeytEow3vUEM*BnIZ6XZ4Y2i^c;l-U7|nU%-aSQ}Nb`@JNBVq1R3$p{|^x1?{Y8 zmYp3MmCuxgh3fJ&*)}1mKle738|>+rt@!b1AD61EO-Uf5NbR~A!?&Hg{7!xYO|{<| zR!bYtMV$j0=_%J}Pdc-*e&?=K6XKPcq@>zeZkGRt4@aHDVt z=`T0D5d4}CuC5G%hX@MMxB+rFq&V;*=Z2$}Lzs{Rgt+2pY*pY>agf{al5)r`n4@_E z=FA!E8cGOVI0qUh#<;=Ojkrg#vzV3%)Nf>cV(j7-}UfZ_Q~a)x9yAb{{PjrpsnN9=*}ZS5O&Y*IOQuhyCG8YaH*lOesyN z$D0^7nU-tuUk0tnOTT+@59{VlFn{=YciIQflX#~3^sY!9oO{^rVu(UfGNQ5hR_>)F zW8>r+FJ;}SZRSr~jdBiA=pDs!xOpYm`ryvUh|U&IZ`JJlJ~BSJO=bJOX*ppeZc)Ia zNIC1?#6HEkONK+j&K#xTVtk&s`C=O)Z5O1S>0F-+EX3W5hR5Ey*b`Xj~9h)9b5n z5$y|>yg}OyzQ4Lr_>uqE6(i+w<5zdWC2`U%P4Voqle=aN=#IUP+COd-e|wFt+@NKj zUjJT&64yW<_ouL=%WFCeamwe9FI^6XVOT_CbdDO-o_3jAk!;h;%@)|l>V{!A#nUYK z36Gdf1eq(I+GEracYfoxnZXd&@(I+0Gy#gk8vK4Veb!u zrje|lf;w*LWJ=DW?*T74_eEl9OX~w0`ruTWuj;1Jk(Fkzg2=SizhGamdaxHKz%XP7 zF>fdx`73R?^QBYZ3h0Ye*9IzDABpqf`SSaq2uLI(v7M$EpWh%hD17%2tLpG1a7D?n zPO74+K%d)Sl)TTtuyJMjBlD}Z2e;}RSf?FPEA$*10*b}t%};&mdodJNy}7ET^QKkU`X{ba=emd-!K6F1CQIO|_GJ&)^*&H2GGg>Td3 zc^8ZGU@A=-M|k+jcKXdy2hZV@wMHzS)Rt}9k*FFHm)At%tQj@Vx11kz(v2IB4b{?} zp)qOGb=_EWN77t=EjhON^qfr))_c@CKDvo_(5yMP>|bu9=(Nm8Ax33NFZ5l!R8Q6c zlaELL^08TD9dhb+8C-zwYc0c%`OTSqb~>?b&NauqOgfSDWL}A{6P!B|DU&R$s?pKx z;*2|vjYHFyk7wScy1wYm&JUcCTw>q6y*~Qg13$mAp|dCUn9k6sp48BB5%xvizzMGj z_u%4!dJvk()|){;Azj}ygYDAF62W)ZwuJWe9T_*&u-J2Op$U&HYb~R>Zt?$k#`P|zy_o-M%O*+iA z?zcZLTU>XRAqQ2vP&B3xC2d%a=W~)tI;W|zHSKe2bxJ*1!$hZJV-kZKc#Vrd;kxe8 z#HQfTsMDzO@w)JoOVmNYjDIz|s()VSfne};5WMC)j$Aw0)o`Ii<5^XSjd43M~&*8+c z9F%^SOYA?J&lgvf1yUwaw2REPf3 z6*0}FNs_8^q(1Cd*jfOw(N?s`@ZPj=)O)WQD zcYBM@$j|!HSgZ)%Tf!vYqQ>;4g_FA6w3RlXZYm~qhuq_#o~!yOu+ON3(-(i+JDaLE zO%CyyF%&sSa<(^_p5sF^DGus=H_Lu{U1gZIYE%O}nMV#$!BR2{Yy3Jm8Uuy5Tsk+I zhb2&phx${ong)-R8qhVO9(3{Q?oH;N=&+Q;q445&Ezrh-r6+l-W4twA0x{BEy{WW! z@9{WAs0~=_scJE!w3imi%o#6Tv-mj4Cx-~^7ZAJ^;c=2jUFmIR!5#l>8EwAwP>!0B zhg=p{pLZWX!*la+-QBQcb4lH?bF8JsB;(Dc)8C>ct6FjD#bo1CTk@>kd_NoM^Gwz< zcK1rw2zI4wWGgLp0|Yn^(#dinAu8j5u+tStng9}FIZm%F-U?lkMbQd=7>{eg9JMgd z?9&0>-ZU2DEej}e;0;ho2=t0t1*zh-Wj_Hytd1h$eZ)5{_a2~tuxrVKx28)9B$5+K z+^FGwX=tR)K>w&R?U?`h>qQ_}D~HGx1j`}CF-Clo!=|=H*!%biVwR2^Z7O;NxH+u~ z2x7&%&n=SoByTP~z3;&l{Z2Gqw2oX(vlsK#vDj5KEq9O(A$l@32!rizas_-pK(ZYK zaDTe_83a$eAOe;mNoSm1ES4-U5Q~j0e}fBLF31?(g#MIABsV(F2!;y!NRFh3o@s0s zl*cL-h$+zq>TWf2xiVtnfXLw@)P>%Smb5&9T!S)H&V7aipS5WahEBCfA9n-9IDZ~# zN-HVyRRMfH7=Xye)s%h*1VMj#Vp(X(d9%Vmj`sGr!|e~KUBEw2?$v}j=VBIS0Jyo0 z-_YGm!WjmsFrXxa3sJZdHi{t_1Qb67|D*Vc?%@RnEZl3^9E=dY#|h$&$uT|wj`0R1 zx!#u?arj|?3+I#6V|mNr9^WWUNy%A+@MHmRY|BHeJp|e*Ri-PBpFNDg-n1_CXh5mc z9F)|;FDHHv1cb+@Vx|KIohw-**tM<^iZZh?qur81Aax2Tb9ar6Ky#Qd=uMn2GAOMg z`___B@V$#(axzbLsCn&xT$pj~j3(Hae=|Z)GuBjGQuMF|X*8no9yd@pV%z~{g^_20 zJAOh+O;@G9nPo{Bo@OV>Es`tQF$enA14QdW4ak)ml9b9D7|+eckB8;>jS_1k!_g}48Y2HOf4aQuUL_BZCL^K!jkP3STb|QDnGgOoj+q%iH`< zEQ04r6b>k`KAwuUz^&N6vMO}%P}=k^+CjRbBv3q`QNqoVF_n{Js&3Tzp8ct^|6y9guY)LJ~L5=IEq4A#Q^7UG}WSv_DT`cwV1Sc355N+rQm28Pwk2FOs5XQ7c`hR&*H2AU$) z_vU*F(St-~q+#Jx_;6-Mp{n$U!;8%K3)n^6GcL7sGkFiZa4V~NWsDs4lyq|xqiEHL zhGdM?kQPv~L`k*`BGxgS7KLBfK{#s;&&DeB(}*TvpACtIw7aBsW+$sJVfw>KLAOxe zbA5ps;NF(~!8j3mdmQT%e@qeT4^hWH>fT&bRaIk7$0ZuPA8((A-nVT!B6{V=QBN4e zAwb}~^q#mW%$vlsxBC;5l-+l)Fw{(;saIVWG5vT#51ox1zjgRpsW$HI>x^Cmw>Bpj z!oJ18`e7(MKOW;al~`-1BOsrxka%zFcUwn(zRxi55gy?lmF~Pw9*)YKjh7|+@eJo& z={!f9ojrnqn3Y;&km(?w<%4nlDlM%Q0yF)lCH}fO{#3v4rif8Jdf2pb?FrYEVuNzy zjDnfH#$yykWmE&LG>ZalYx}B&R^=-5n38+*FS=nS7+npRU!^f8=Q&xemE((%h+UnS zLd9sRyr(mn)q}@Vl=JHEHrSd4Yu2-xl)(i(u)(7?Ehk~hO{)e4wzn!7-`w?mJt z7$$~T)T?t6q8*M-Lb(GOMLlQ`aBfX#zJ>2TV-5EUVCFMb(U!n6N<*yWuG}$fM&uyakYSvQH4KViVS@4A z1B(h(Bn%Cv40Ttx~`4%z5-UXOQ4 zVfCM)F}Sv33fu-nrDt%~oU**4U-xmvxGT}`>_*goLN)x3aoX`@(@i8w-#H82Zgqic zZF(x2SVEB+8sw7r_MALm_(ooqn8=f-4z92};r;jbUh1`4xDZg>;!#w4^uEkzM8NOm znH3_}7Ha(V6sH_n+;lJf>`C{{I;IhK#^YyMgl~C*57EWc4Q29legF>BcI>^Ib|K;)KNNmAi|70l z3+vh1VUL$k8?TEituGi)=sWZ{c78B{MqHMB#%azHBi8HdSHPmo{UfRePuL90-XEUE z-mqkIr=D?bdDx#1#rdV3IMMr%E@GoM!o-l3Ft+9Q?<-~=Uh*y~jgdX`BSNR_pR2qv zdD7hlqBrWlFg0@E5S<;-7y8+bFW6MjzJVEeEbqPRrPVQwXVTGOiO~&mgJUn_y_)X` z6%^HBd!mVMsU97jzI&`CDzg67r^QM3r{0jPxJ!!W&+xdSBsxte+~I-%;X-CCHuA-p zjM+|umj+Ot)?hsb0qtRWC3im9>*5ct{D#wa<5@&RlS{?hB$S)@b&QfC9y*o#8GRr8OgGn+KO#@YL1S>=ywdu-G{?VB=Q#O0*;&uDU9z0J z+>&)!YGsR-QJut@+XFR`!c{xZ=3zX` znp+olwwFRy`Y*(Fdf1_t)vT)JTd@(1@eXQSbP{UvPW_L*bH&Own8B%|XUt!&s*-xY zO;J8#Ju1SDOd3#hK%9D}xFb$8o2EYY5*IB5%M%$VXv!Yi&RScwX3}4`$GvLIR5WfW z5`yr8Cy_2Urg((x(G%G>gyiwM^h&Uuaq3s^D{fjp^#lJRt^ymoro?Mtq= z__2o{a72n0-FoA*|K=H6dBOMyo!rz!wI$z6a_mA4l~%eaH$A#<{Oc>yraf-@2VeSe zKT&Fj`>o|uaB(!)CD}d6J*!i@Bn_5#G0=ZJrl7Mos{Uqm;l~}^JQeQ)HX^J0u*?J! zWrGiKx6aIJqMRB-i+w4G*tQIq6djw9ZC&em2yrJJf77G~>DsxE%HOIS%tx>Fyhbnlf^TjMW@1ItgFot=6}*d{njxE%?Bp`gbm8K z!UB=hc>1!dUz%?P`MWHp@cm)4*OFgI_*M`Gb@^6s$HRyYraifA-3s-!HPspKajGgN zs||h+O5w&ug78_;VjD(nut*T`S>&Kf566dN3T}^N=~0&#C~UlalR{(s?5!=JfMuap zd%8vQs+i0T;U3@p=snXY+sO_XZV;KeKl_IwmN?J3v=o}18rwWbI-WM){W;PgRdq%V z7XPuhNj@}ue);8n`>Vr}kLtqEa2tNxonszP|4?@}` zBP0*?%2NKht5iKyTQM|q%PC_#v)?3do?^QlQ13Z;A3*;Gw{j zO6dYm2BTEtJZV(oNKB%O3LbvP$KW%NH+C4zRX`qImqk{eMSlgE30iTd4|-ZuoB5_W zLB5<0mqf*33k(G3dp9Ym?VNkqUMangdwXsJV%tq z)&!{#6^G~dygjosB&Bg`C~lhL!7yrGB9m&(2A4o6-o0|CSHpnj)yf27Jk^?NRrq*c zWhz&a@d>WlQ_6R*HdU$Zo;0WM>!90SU{zruuHWV0xKMrCKPRi0T!NyuE*nj_W82Bt z1qJmBKNmO8^{|gkgA|U&QZGw7%%ce@7>~qv;Ud?V#Vv@EfV&DISRJguC~u4i<1Nru z=%T#jZ2P1R9_2laVplxcqJ*iv^*vR#RC;q`P&gaq^Zo=g4k-H!w`7tMLJOXK40Y98 zTVJp=4AYgN{Xm8@a>R_ob@ljTP{8nwulr_w7n>Rs*!$@aZmX9aHl%)4dVl>G3{hNd zhbTm@KrNUEzg+L)MH?6nk(6r)X}S-C1QA~Wkz1#?#WnPw!1M29+;5xUwq--xLsr@x zr}u`c*~vv8&y4^Esv>-Hrf*->(97P52GJvUD2AmB0FO7U1eT9iy(1i@ z5Y8KZ0~BC>I^wE`N3(KBe=x0fNfqUDAsY7N$)$XbfK9oANx{P=04@Yv65vIc;qonD&k6jPm;l%s@SkuJV0f&Wuh1(hP-*z9ZU|Og z`XnR>1M~3@`q|B?p`QqaBvE7ut^&sFWfvKmPcgxXvSS@oYlFfr(VnvI^zH(wE#V5dn)js9Ql z{?}i)fA<%jKl=;!ul^$W?|NQGy8ok||BHPG_595c@PGB=2C?7@@Kq?(5TECde#ZT) zp9P^n@ezS3SN-f)r2gNbQ-UC82nBRUlN9Jby$Gi$P;59XA4*;qj0zn@qh9;QwAgxQvy1yf{{^nb`PWk0q5#;%W{1Uv5;#Z>< z{LLL8_-}1AQ1D8lN(63$5A_C45`+?DQ4n1Z4T3xOBH&-s2+R^dpMXAlos&uk^~1Xk z*Z)UDz*WitF@hQqXe|&8f8ARD6Q~vyrRKOI77zqExkOOms}f&{KK=H1A+#>#! zs6`BAgtz@pjQO3|M+^n}(|?ROa2gs36vW;G=`0nfDk2{j9H@aY*Oie#hfryUMt~$1 zkc>vrMBJG8kLCukVb`Pn&rmbqExIE3Qx?32iGm5?uA`%qn=7>--@jppzf%5c?O$j& zLB3yOQjqsoX+geU(~1H7=MM-`T&V`;HTOUwEi?d5Oa#S@qaekE?}z{`C^b5$4?LRy zDh|I%4-JH)5QEH@I=?f!=%K!FJyhr~ast6$5pOUC(Ac0N*Hd5=XnBBM9Ap433DPha zLG$_(U#H13f>zb0h5irAckSltp@U+<(MmqF=GV#d$$30NC-m7R`02 zzvgU2e!gFi^9L_9|0eC&YJ%5SAWwyEfzCAiA13ktp2Ye8oWudXunfY?_+JM7(WgLJ zFpI;R7@$|L1(+n18Nd^{${}j-Il$+E#KkWFcUC|msuQ~lmB(N-@lRjg+>viC2ZmvX zcHbTQ55oZb^{SuY|JK|48$weMp0$U>BKMbF|LbPIMd$w3aMvlnyV-Aat04a`){Fm} z%lP3tWyoUiC?%+8++9;LIJGhqP9SjA8UHa%uj~PER`|X$7jqSyAE8(jM{D2-WKdmVB1qK;!Cy;2-GH1Kl_b;=9;yu` zgBMCdH9!JF4kB|Mr4IB73N7yP3>bo~;uk29W3;~i(KNqtqJn?oL`G8le8Fo_E12X2e-A$}iti~w72_U%z~F%@L+`?$m_ox4 z1mm*lNw3BnYusQW1g>TVeFA^22>mtFVVgt!;ir;d?6C`8>-5pXyUn4_@LDbCFLD$? zfH=KwK`#r?g1-Q(%mja^;awH`WC8k8o$}SV179HsLWwzuEOic+P)P{&E8@Bi-!rdc zY?KmP`u}K~YXA;-8{iQ93BVBqVs=2&5#@K!fuEZ~e<5%{#x(-R$NtK)UkDr|K_RYR z^P`Z!uK~sD06o4*Re0JnRtQ51*`=)ekK2PcuNVpqsMQ}3UP1V-I|2*SU%mEky;SIG z!uv;G1HOFcV9*5SawxdKj^Ef`Zf_{wU%!|Mg#IlfcvbGHH<++QEx_c(4{z}XSE&AV zd;*RMt~V6^eIEd~W`ft+|MiTn?(B0__UaY*@3N&nP$qyE=I}!J-?xbnC+NCiC=zuZ zzEE{E+Mee#%2%XBe#cHsoZDW1HjofpQVfNb2%PrsZ$=@`UtJgVR}P3%mh^%WT|>!* zIDfSV!5;wstDJYq;Pp8g48=tRKftJDf}=V7uFh39P7`?5fooTGLRI0fyg{GZoJS&u zcZERjz-p~5F-w#~&T7ZwFwZJPP%_WY3N&7?t*ueEzj-c*s`ly=PF$C4Oho+0Rii@Z z)BX0L{r1d&UU5F|*9!;d11LJM$hb7~VHO!lQKbPRWeFJheOHX1)wLvaehxJ+eK(iq zQ4S3m%rEGQpRLS?GEb~^dWk{)__D_D?ZFDKNa=oan=@Jgm z6?C04Dl_w4Ju6V7(4 zxV7HpQ+DB0*d}&4hT#uRMiypx!?!~XO9akUS*RpF^gujQF|_r}gPWMSoFu2DadS>18# zBRhc)PBI&Y+5=u^yIvzn-jT}=)5D7;2K^Z@na?PyFZy!5y|O?wYlc@jrfIa!7{8x* z8O)-m@(}%bZ48xVqk(RJpD1+aGj+I=ucv}_=dsuE$diDtJvqTPE)n+i`selmj-8M> z-AST=5rfs4{N0n4)8{8+xOndKbF49Su%kEL7l&^6{QZk=*rdBbr{9G$qf(2%?~lM? zPI7w%C&Xrjx%)qB4r_PriIcf;db+L+t*dKU8Gh6o7CLg+B5J5V|5((__c-BX@AciU zk<*n)qyZ5ms4Wki-ZU0pV0Lo6$vZ7O^5-zTv$~%=ld{VO--y?tGd#s>E(;L)Q6aNY zx>di&{qoYwxBR3`ydu0Z;=Etn>(LqZAuRA~RMa{ZF_Hb8#B4^3o5J~ypwU+JSBsWz zvauuIQrM%jTccBc)fbx8AFH-;k2m>lw&<2SSrXg1WPA9cG_+8>{OK;zJ2lSUiMpB^ zT@@Swk5w+G8HhP%bc-4)FYNhjwDr_J*Fd>}wgU(N94kf!H}hC|Z6gY-0N#wxgD}Ec z@=y2b2&q#-wq)JOPE&Aq(^7EI$b8<7E+hochQ-`*qxy7r-IG`Y@R@{s=H+g<|6H08 z+w1eE1^l?NO}p9zUhWg!N`@B-b~p1~zYIdeZOnDm!$<)+NytsI> z?$U&mTWmNTwS(D}EM!uyYXl`-)R-`XYk5Z%zNm_JStD63zD^6VPrm~ zfCr^7gpUnpK^HcZk`Z)Amt0ng_=Q44Vxb&5vfU$FIXZQvjyy<^!a`n*%{vc3j)EyW z_(=oNl`K^rSIJDB^ox!CZJApy6!~bR&D0qbZ0uj(V}7AHBAZ?LiZ}$2qTGa$^77Zb zgT7GQoHIeO9I7A2AE_1`3|8f3cQ=!g!)ttjFp!gtZb^n|p!&vUc=u) z=m9y#P%J?&KDU=yK^CAg*$)9!9?t{i9;#K~5Gck~a02=h^w2N#Ftq1SK*2kVjDYZh zZ8s?~&$yCddZ<|#B_15A&w=|Cn0|>RuqX3!JtifoCJ*L22_}1?!1JwH#?&3C#ptJ(C%0|Dtfzw)Fw?eHs!-hmTrYKN$Qn3cPOPyZ+ zbG4rmYv>L^IP4|~o83oSTCdm#41oUR^`NL!4$8CR8}*Qn>h!v}fc?bo{vJWN2QQn{ zJD+=A5f7Lm6LX9W=DK`mWC8a{RPbGOdOzkX29eOaHW3{uPv6-H-4sWROKjaR%K;=J z;y3BiLuOR~Axh5^WwO)c`&Ab?FqpRl?EUrVoom-|(&b-7}r5=IK`x0Jzm>&KIAe(&!&Au9&D-jW4rjMkH` zN&-lm&Z(*G*2Qvll7I`PE_`9;4clkXHl;Lx_2d{Kmj!PtC~J|qo;9{Wwxj`?l9)S3 zi33Za2V#t(g^WQ3vh~EVAZ^xK_jY{eYpEX99TgJA$48vVpmOb8Hsy*w$Poo{Ui8rN zRY<-Z9wlaB3;(LCF?iOQK{?=Xh!aquD2IZI9FRT+mvz0W(?N2U#lnxHng^45aT!RU zQlbzgU%M~rT!3z+Fx%QmU(p8&RgB$9Q<=?S!B>i-_j|fHlTxKBsu<*{cYDUJauD+f zg_~gO7>;e(x-TW-)HyzVwpQ$MR)~Ez0v6@qg+$!R_(S$TUh`aBaD-$i@D2UJ&(oAA!2^C=z0%=LUf@-J zO{51tz&YWHAz)Ev)CwW5qmG8Qp%Pd4GR)R3H~mD=K@Pb5KLg>>K2Rd~mKq8nk;=B6U!Nd^Lf5XLzkfho z6}dLtzy}!K+zFLN1oVej3vc*r3X~ObcN~tM3T0=a%y7EgV>o+7m&+$4_VY~oBh?~3 z6U$~i12tvga(SWAw*2QiA0(pS#;H&i!V|;p86Sylr~EqoQyq#n2XgK*DkwZ76`Bic zCpbMCD17w6qD60H?6ZwgN5#4I@n}JEB)^B|8iBM(j~%mTtw`#7@^e-wUnsx7Q{J1J zvSE8bL{Q$CvSWJNp~-G)=FPY12-`dIy^n~|?~A+dG2)v>PqHhBmSO1QR8d|;q3J3eKO)ftv$K8bvkLawj|k9>RE_Xua_^(&t!Kp+@lRW7OoA z?861)5ql#{b1X~GVyYjhqppVpv@pv@xqU-t2Nr}DyeC=jv04Vm^eS4FTtX`Y#&y5) zktbv`o~=B_YJu4cwsVA)WCV1cm#W#8;ZH9yGg%YkEz(A4AD#&Bc#UN}#5$6|XuQ8o zHTeq2pfghJQe*MFaMJp))pfmO1< zyA+%vAGkWNf>z`!PQ=-!ntiDkH-CZ0vR@yzQ%8TMU*< zv<7wzxoLpciSv&WntXDW33UlkhPr^^%cetDp;;@tmf!=CFM6`#uvy=P&z(^^REbBm z)dLrzr{c$7m1X3xdkzI>9~N_++N}Ppq51-o@DR308(Utnzc^iOsN44_5LvC8=irc- z@%L>wJ7%rLi}>`dTw*KWGT-PzPa;5=-nuySXRn6@)}*||&-ER6lf>72tuJ_YWnq_g z&Iw-zL*GQK-;P{77KCLAKWD*w`G`o)qkrQpI8@w2%;3j)EsYtx*f~+=W!?GW^x%QY z^k-e)cGLBCJspApgC-Xf*D9@jHZ$#4y3&n10vdV3B&0~sEp}QfETYsA*3*Y_wyO2n zCWuHEw$tmf*~He}bRUU5FJAZ1?VP}4tSb+V&t3mg%P4$nIXDUCnBh$+r_&*hkzc0e z-r~cb>f1FDdebcCf+R|jVw&tJbKYC`t)xe^}WGqe`@xwA_cx+P|sJmV~s(xvUl*LM?j*hvug7EDBV9{{%wnd(SzNONS(92umpcL*%?IfPnTtf8gEU<9o}^gFD|J~ zy|M~gUgMAoK-XyLs~bqROYDaSj2L>h3_wNVt9lPa4BIe9l`G?Nus3>krVcMjM7Fi# zI9yK!%MyvlR$*p76?Zuewk8h*Tmz=OTL;45>PjDYf48F@Kc=+C(K%^&y(GT;b!mAs z&$~G@(ZBI@l22OnSXTLY2hpnBWJCE-e9VuXz*IefP_LuF)f3m8=fZ{GI3gU!&Nft( zp10JM9+tQIN@LN*?wW0g4jX@1>nl1}-yo2>5EW=q?`VbXhZ*(Yy<85T`iU+viWFyV z^k|^$80DQ`1LWyJBx-ZI(lV8>KruR#W&Fty#w%%l_MHS>Y{eJj5zg71r&mHpSg|jq0 zwNLnxX*gKs9D9$Aj1Towu8$lV28|315c_Y&$e+B%@ND@S_ic(*xebrvoZTiM#N9#6 z@8tF2hVa0kv%u}9x88>gg`0Mf3|UP|iC?2~mTx?UA`EP2J)UAp7hfx!-Ffu+G4>rTB z8qcI#vN;sAhuLWG6t@_QUO*Yu^Q4jDNL}&+yT~EB4R3tDJb7Xiep-! zEUPF&FBycr9nMYs&MPx#)*^!xC*nhWFV}GJn|v-MXTA_36$g=x^s1j(oin_;_cDI|59L1|ayn7QigQ0m)#*bk(Oc{!zw z@KE}24<5aOVk)T41uvn};siqrlsuYS=~Ty2l zv*G0bKf0bgkgD(bPqzDritMtKC2O{a$dYW?(`L(3S}aKmAy# zWZy$bLdce_tiQSMJ)i2+_xBI?zH{z5bLPyMGiPSbOl&d@zPaI`m@@p~+GB6;7#+~i z&>|zy*wDfp39mFf&N>cw@ofK2d*7HtPxQ+7JAJjjt7&z>Un{|c?cP4l*;^Kz!TDQR z;!WHe4j+%CtBKZD*>}XgMJ%OJfS>k8_}zVs#~CFe6>xE|vtf^bS~ zkInO&OW!A_?jS;Y$d8RP0?+?&JBQW<&Is3US7ZHj*SFYbrqDcuPSbFJ*Jw+gy>HUy z-{aM62^@O*x~>=e*4HvdY_%7mmD7o55qU~2Fm?K5%UIKv*TTCJ5(HW{)1~cIx7r6# zxlv05C7gMeb?<6^xxE(M2=z5+bmKvbJN^qFq;#7db>C%eqn4n6L1i6hhF?R@`|zC8 ziE9;}`NU@KU@N+=zlcdJ`gEdSGX9{2_8tww?W;72@7`tIx*AYdyG4A2Ci3l7eoh8` z6D0=Da3%9(IYf&F{MmlSH|LAYCW(>*~FDjrjY*_F|i$nEKw~xR^A5w8x1-J$2vn7Ka9c z3{$uaQ=0bcyW5&&m{e%4G&(YiE7GNTd!Dv>mc>b}&mwY5yJ%~(BeMb1vxWu%3X9@$ zfq13R{H={LOhO^2@lv{e*puI$E_sLjCJr1oUTjou%rUfJJ#L{_cAh3}^3BVOFJb01 z5}c#5j@-8Apsn_M=y5({y4p>Agu#eVUHU+XN`n8WsD0M_!$i8y(VVF?hJ-XBLvEw$ zy%DTbE_H3Y<4*_}a9uqdZyO#1h$$x2 zGgz|IT=q$9Pq&ci*kItL`QB^GbLZ!6j@_Nv{Y!Ggo-kQTQI;rTZrl8~gb9(~{~rmH zXwUsa5|brLm`s29NGPIwu81gFnoq-oJ&Ax6huOvc{FWqoQb4SCqE30ob2xcoLR@Zk z0nIMDZ9Y%OZd9Ny?yJJKmg^|7%pJWC0wg=^xOrGLyo~^Zh;^XyfX-|0(qoZRvl&g(v0; zV38%B5dJKYC5>#X2}Xt|huG1{hf{zoaVT&Yz-EF1uZXTwgTn&cY+yC5wK5Fl%4005 z&uHMCTt6D5MN#n&PpCraAoH8tw~v?v0^bBa{64RdW3fN?iFtj^xaBu>dvlG$nX1+= z-ibC1OlD{(F8%Bq9tDN}JKwMG>z=M(OJ(y zxYM|2W=aG9z~{5cSbt|v`<&9F%!%nAD?d%%SI*9RFYy%(d^_c~)K#HVF`uNKR5vuN zl9N^JTM%-wG1Qf9VR>pOLrvBD=fY&KSPosvyS|BD9^VDerG?O`pHus6i?~;EvlcHt zx2~L43oKC~EX~Fq(bcCC>0fUDoRV!vKO~SIB-J)C{ZrXYJmJ|EqZ>wb#|C@{#;fhk z+UtA=&t%CxE_~coWuhI{er-=)eP&7=t6~dorpM*SxLwWm;)KIrZkOMfzc!ROFaE`# zjb)%__IUN_4QDpU4wXI*b$ocT-?(~{G2v$xr+OayWxZhn*YLL!(vcmVGt-SLiTeVn zYj)^dF#n*&(D)>7gVv$i*mJ!hQ-Ys^&Q*l`I2Pmn^f5IbO|tX)Ff)<2!(JUzR_*Qv zcFsvQY1Tc;T{j&c*4XMFTt1zf-Z;)2j1@?G!oDY`O-%wZ1wXg*Qwms$G8=5l*@n1QOcNSDDj%|IZx?CHMmKe>`HS^Pu!$ZdoV16H|M~+ zjCPRw@r^(=QC;AU6>w+Olr>*Rb-DA z2@~$v^ltD}sQ1x1Q&K>fy~lXJWx;yRy(m=u$|~dAv)lz{yp7k3Wn4StRyHgxkKY}V z7cbzg(<-@Isgs{X`}yOF=%9I<;>)JS2^#N}@aLn=7gg&g44a}8<6mS>l<=w7C!EEF<+YgWZCr3qXriavKZ#d3bib`Q4e*CE| z?nP{9?r`nJi@RISEOj4Z&-qq)W~ryy@SBj+yLJWfaeB9o>pj{Rs{^`D=04l9;FO{%t22 zGyECpo1TgtbO?#zJYsLlx&E%HC|+kDgp@BmxS4-0$;2g|jlm$hT&b4vxOzjtBmdKQ zwc9s)>}}t_STTy^XHVU)&l&M@ng*YG}`n{_+c1t+4uz;i;!Jg8z#cwC4grM|j zb`V;dL!-dqb?qdzHWbmuHI;(R=FxF_6?@y4p01%NO)QNZVX$LkB!5I8jwlrAiGdjg zZ(&qcw!8Y6d5vs198F3cwCGq_?t>(?7Y~y1Tjf5(W=DyA@Oa3tc|TL;Tz=C{=F>bi zpBXnYTLhQkd}FmK4;b!r(SNq#r5@#hF?)~&6Jl@-2Fd#@w9A^p<2}VkHblNX&bNy} z-yA{nVre7@T?ZW*qR~5Fsmr?l8K>w!A&|e#UXZShp{jbXt4`8=VY3WOEZ%4N7_9gl0iard#b5>XXAVgtD1GKC6)}-#FgD~!?5Xqj_ zlp3VsRvL58h?Yi(*ls0;eHGbI7UpG{-g(?)0%t)}m&WJ7L93viG_T}@9ahPa&$a&@q!Ok=+#qACeLDBhVG6Z5Kv~irZD3< z1qZ0cJ_v4ay&le2eTN#L$04m4IJQiV?1QQq>yi=#3hOM39Wosa8${20Th|-!k{dRU zf$2{wbx0CY!KP>uj|bo1`rRPxDvRCAJzyU>-vM(p-8S?-D)MFg6j8<)m=NxbBq+gUYz{_(;bIB?qVu59%DIGFTHmikx7#k|=zqo15;HnHGI z?n-|MRSHBsB@IcHiV_OQUMwK7oyByLK8<7}3VtU^Zc6H*VFa(N%b3Hje+7t5JBeZw zx|~l#k1n484;wIhKr}=u8Sr4j{Ir;JU-r_t-~_(wR+VqZT#=Tz#1<`v{s*LT;Pr^v zdF1{Il&A=8{y(xG(X;Ol2@l*eAWu|S*#r}%A~Z>qW5tI-+JhI897~K-`R6yXsMjzU zf)pxA_7okIw-=s*XJ~l9`-M0Pg%O&wIQCopKOD+KGd8Z$ghg1c|1}7dx0x)uvdI07 zWjPX-1^-r96QfoB2?`PMXmBQujCm}F(+aqyWKRR;@|D404yvmb!P zkdH?8f;Sj#9I{^esEU~uMZmfeq0(B>>+Wps_xa2PGT(`o@V;!7NIp@2#LItk&7QA^ zgT(K=ReF2u@wRGoWrl{GprQCqU2oU%(E0>##?iI{>_VntxD2|%nnvhqO8Rrdr7|}jP zI4$C{JfZZy)%RY(y9r`8qv`LLrYBO*uv`UIuZ@fEva|AX7vaa!dEw_h8&=KV`>2?O zo?CA3lT;uSig1;7dTa3Xh?1CHQEz(u>v+@5_PLj=9FcdX3>FR_pBb!9 zwuyf|SZN)^?G_(@uj*$(ZR*1rew{Hx34`EUWfP7Xt&QI|WtRmNo9yL{?qJ>)+mLC* zYK8ZyKQAA-jKOUzucN`)a1i?n~M@RTfZfFW{)L18;4e06iadA`jH=U@>%@o zM2-ft+(1jnP&UJM+qB21*Bp%oA=l7+v~~LP%8^qXiP7J3RIQdOyHmQgno+`+joZ1{ zODxkhqDG%rbg+&)`&k#T*(l8f54Hsf)!Fcj_m5w#GqmiTd4DJ{Xi9@2aDZk97a>1m zIrt7|_LJGv&h_HxpmMZ|V-%g|N6wPWjLO#g1DDh!mWH1M91UB*zj)Q`olbaMyk}*n z{6uHvNyDB-IW@qgQQD&1VPA4Hrr-e~~dBzqE5p!4}H0 zXuqD6m0O)vM}*$jYw-1_e3!oDjBYNYcR3j!E@gKki0xL(kUqnsEfZ*SbG2}S)iuQv zqeJqs10$sa$Nhrh8wACr)pU*;Pp@9IV>6X)mhth?^U+|mnAHh(GWFtE(jpL+Usmm! zSlM-HvBWYov?1|LC}i7RWM}?a|1@Bfqsv*7Wh?K)7xM{(%5^^q`sTm-g%|kXR_@@= z(I%geNO0Nq_SK$vf>4Bq*_21wC-?28S^?wX%q~J3RvTUwU1>aelEG&w(WPzH&OD>w zen;XX{l{_V8eew|DTM4jyxJ;R)Xqrr<`OQ7;yI{>RYKg2m?9$P-sx(*s`^ zUC(uz?U4)@zwLf_bYl7SHCL|eXN^z9YHkU2@5^p}vTJ{|P*KS4Xd&gT`yHCN46X_l z#fKl)o%a{V7Zt>~aYlUHr^H||-T-RTdN(cx10LL?&PvT_yi_o?mo8_7qn~yI;Yqzh z6#O7819DBv3xf>2RO?N~nuaF`%@K#D&1XPBI(6GX0}~C@8D8UP9GX~C@H$d$cXz-? zf|j5%)#P5U&Ka>y`WPW{M&1zwFzz;o5WZ^fuu7&K@3f~WlfMSjB)aYe#h=-I3(zw9 zapHAu-=OD=2>4*_5JHGy*_+^(Ok3k%?|5?rkC)R>Vlb?21l=j?ruf)oaJR8{WH5};TMp=V;?<;T+#sL>1;@!pl(wdvxj`7tNIf_ zm4$1hs}60FZU%VVJfkW+966(TFjm*a-l+K&Gc%{)QNp%;`jM{JnuQ@Rjc_gF_4r0% z+OXY>k^Hx>HtnPhqp`T^*u;2^Mo7Z`THD3@Td&XvWt#*I;#!V^K056wUat&)TbD9S zNGUi>YAmKm3@;`HjS4*leYD8S?|8ef_i2Qpyx2jAyR7JZI9oHpgy|%M1763L8{gFC z-LgNDzjKsCM>KDKUj(4`xs6;Y0I*axYEJOcr?RBCl_x)HU<8uzh>LGzr`0E@Gjc}kkHv$u_vzZniQyP?gTu#@j*8g5i#h6W z{eDHWLEseojl=uG6tdio~M&+O&lZ{&^!XB!nhC?&ex6#3~)%!WKUA?(2+V}I)^Dmg{7o*>Qs zFg*U#v>Bbn!b=ncEnyD_;bHtRq%|@*D>4}qt4oD1F4t-lHO`N3V5ddtfV2fZ0nCDo zSO9AZg%bT!hCMlyLFvUU*{}0d>Exfb(cWW_S7?II?wFQlccSG?Yoj=<9X&n z(OcR(z2pvp7m%q=LyqC4G;B7U;wB?|VqgZGY>e9ZbwmAQOqh85LHns#|5+4%E{_EO zcvy_$1(Ye&yX1%OV4gI}NfDsi%-roj6bB1H98`yLhG6W+xCUX``pYKYSq&eYZSVASzo%GOaA53<=Ofp=T}%@Lvx6nB zue~RJ$tJ&vf>CsSx8+lLRgK|N8c0 zRc@@%K*(j1nhh17SyOmQtkQ7May}Xw`Z@m?VuzfccZr@_H}z{2sP*ugghh6{|6PuS zI{{#C7s0K?IYD24ry(UKg0W$eELu_l{@C(lS?VAy!U(bwCdINS5<_19ImDf4Av1zq zJHUi03W!WjbO+c=hj7wvYwm*>&^A0P3`{EPx_-g;FP0VXsL3+THm1KWK`5eqQB)#A zisV}ezc~c`6}%eU#NiHv2>QGUyC8rk34qSb2qX4_;TA1jCf<&~z(gmfK~}YXOr?ds zr$siR3~>}&K=dW1yd+*9ph5jv5HXs!-kNv!3!s@S$T`C5hqi^WlF`#_{oCBb)E@bI zE)VxrkCqd9p0?iJR-IwP>$`HodU;XV*Mjr(%s`1{K}JyU!y$qs!RyDUhL@cLU~ppW?&rBkp!b)Fy_cTTeT;c8T356Afr`yF)RqYd#<9db{NXo`L~kErmtXPy@F z*tL(r><6Q$rCrgxkE*%N|4fg}$=NRYw$7!Zlgk1rF9MqgtV+}Gs?R2ws&NJy1m#9m z$x{wD658!PZY_)ys&QTR%A?Uy+i=LYe7Lqz+&8q@*nZ)|&p2*}mzpeJXoROfRJ>UK zDm!P-#IoUNP>@e8O94+5f4bs3_%FSmDyd<`;cb*=(H=9R|$=A&qt+! z;U&3Z?`N;mT}B8s;=QTkFQx>;3XjNrh?badv}xq4q<`r!b^dL|K-ctE4Vz8}FXezQ zRgOQiXigP=Z1F~2N4{O}J=n7gzwDK*mfZuHV7~h|%lY>I^mcgoP$gtXbo_mluN!Z+ znGAOfek*h_dKi0wb@Id>I;)EG&{>6|62^t$+p0Y?D?7GKC=s5uE9Cn2++BYAc%Ewd zxFyrW_ltuMdz0?bn|1IW8fjUy>|>f|PMdE?DfryA#ItzXe8_W*sWUXUWv(DAs^hf% zvdNfHQSJlB@gdrP$Lf;sK zoJ<3VROS&*Aor+xHJ09+Rz2Uqq%KG0{8jL&Q8i@(do)dAq(Z)yKGk%3%T1a@Jx%ad zVG%`NDI$jmg1u&*r50CAlXTgRa~S5w4aMlXXSqhs{4*9(V^PL$-?W}%PgqZ5^hpi} zd)P-bV-Dko>5@#CgaQs)Y}=%RJ>3w>(&VE~IL9Q!oyC$;wOgJuA}dy*^TVM;5UyHI zN?L5&7YG|A9upAoCR&tXtTZ5{aL1^K;hhLXG3ELbNZ!t(T+OcCPz{ zan8GkpV)5w3fp4YZo3!aTlC;J3L{Wc?G*rVMc5V7NaeTs4Yr=%#}3a4rLX}eY=h6k zX?i+U?8F97=^CR#yAXrDKHaO@)s!lX%6f5Zq=bgjO!4X-8!rczdfa-mk19>`bwDgU znawXWFumT33%$cm4HnrCUq3Z^*~Qqi(Dk$xW$p<}NAq?e8U(O3Cd4&!IAkR3w$zYL3st#Ts)hgn@3WQ z4y-4rLp!@}!f&clU_s@{#4M;9NAYDH<(ohWwo#`EqzNjJASZ?KJq^3=Y3q8>?*yPu zX@D?ete)f?HG{`PW5fGE!l}Ou;$Xcd_6e&!i(+wc(p?Z6Qq=*KXsJViP!Y3kyg(s+ zH2f&mV1Mtb=^oDm3WkR;St8Y}r{y4JbfxZOVnVv5WVq{Pw4d$9s`omT{P z?7_A*Mbfs$&Vy}h#M`Ri>GoG%1Vtz!ZpI4e^Geu^;Z_>98B@y2$PpDYgw`X~XTH5+ zgb>CHhF^_n;`X@{>g>e$!ZNfi~Zjvm#^O|TQpg8 z8y)g4G<6|5yAdp}^Gw9Q|GHTxJ20V0axD9?PVbQK@__L0(Vrz-CK6g@7R<*>(s-LP z9xFvF*Nt8{om1?aKX&eQhy5)Vq<8w>WK;e>WU=b7sgUNNgyeu1*vTb>Rl1vr8WWA2hLN-*3hxX*Tby zvlBt5j61R|zw<2XRO{ySvZ(cXc1V4)Oc~Vh9lCh_Qr+!#Z|!^uh5Pi?fm;HOjRk+T z;GGjy5@E2YN6+vfYy@w{yK07WZM#B)7!!ilB|k|!K6n0W?dcZ}qg#yL51;3@G6qG_ ztCI&QS&QG6pMJJIa$0GOy(Z{P;Gwoz8_QLdj;}>eD;y>JzXl6Rp8jd5`b1wjT1%e# ziRGeM$i>&gn+zj{@4uIPrsr!jTy;lWHExFc_!%*qtZh+S;+WrYfQnoCry1=-OH1{% z*_7G)>Y?Whw8TRy+>bpD-(Od9_^8Ct(M?06`j3+nxySOCcB%h(zSmvv(jp&0xofwI zdH+FY^Oi`-oU>UD8MDHw$jpX<7e~*1^i&=Uls#w)UT!rS1*g7i93M+}VsRr37EkZG z`F=yPbFb$ySDER7&-X?)5h|PCFVyAd6hGhL{|Xmt`DCtO>SdUhc}UKu)h7?Y!MF3S zsr?*pc7oMtn5=J)y{GE@v&BP`FWt%%m}j#dd@&lstDIg3x)$#(4WUDs!aYC6UMftx zZ0Myw)ET;g(0)nOR{C4cC%cjJ)22i(H@w$I_if)*_RY#m^2(Yz5S|}X}%qqk=EZ5j(CII|3aH_I^9@OdV6AY$-;-P3zVN`GkxuP7x4i@ zeY<^6)4QC??O)D%T^VFrXf~+u`2jDFbJd0X#V_{mMPWI~*J_VQ+4&WPcbXh;oqW4t z;?OEvLKtLg3`}V5uka?c{$&2pKK4XmTRsP_EC2Yb@1Yh7&DF-1s~#b5M(&k$NJf7i zaY|A-67^8x>;h$UEc#P$a!KYtJL!HKD$#Z$pf?OvjU_ZiOSJ&IEk@5V~b zs3g8i^S$_^peKo=aaHmypUQXK@-y~}MaFkNT$c|QoUZjV&alk&$RkKR<_&w3>%YlZ z<=Nhex6?kY4WC6fbr%2IL8)BX9S(CNG1-&~zA zy+0D^xOKaW}QaVY$2?4#X)rm z&R#zJ*4(il&$Q-^R5@~0zb0rI?mDS6lw`GgX?gZ5S6GIR$*5s(;WfJJopZ~joX5^| z7Y-UeR9ae$%IjM&e9u)pv=~2DbIzjGO7qT!67IHCH7kkx*|B*%ddTZ81^qPV!|%c2 zEgW-r>%JtJiXWkqjWR9?nGfKu7GHi}yQnmH5O?g&cRXH8BSA!N{Uxcr@#rNggmaU2 z(VR72YM}VEBdBed{43BWRLItK$I%KZMEWoTXiY>gXEXY6a5me(Gq(E-IGf%2*V&Bg zkfykrt;lPAa5npL3_o%+k}Ei${{&d*z}YNZMj3$Q3v765dN4^>n~6z6@aVREV)zl% zkQx!9ttik-0+olw1nNzVNUuAGrc)#A1TT@=jjzhUZ|BSoT&yC6J2SX1DK~(Nm%O9& z=K7PO_ds0e`2ptBH_*naeA%n3|#(APDidI-gL?tpP8$RD$Hv2)2fSk%&D zkK$*crI*{9Z!(K>dA#rn$!ql2Qqcf4(~(bwrpNNaK)Z2XBY|*2;2G{N826a(;_sn%rDJ z9eiU>Qb`J$toM+-@2CZ)E(`xj>wgsdrev558MBzEodU|L_h!8)i5P?&%9G&pRf<`{ zL_LO!+VqvRoEkCFE~4L-2>s^ z?xzOQ+fEF4QVgKrkh+-i zxoo3w8X>oXARDyb!aicP|6Em6C;8(Mfa+Phc&dpQ2l@sZ@ z9{j`l!c8za1`n3LG<5)RoED5~uhxUF*Qa#htXrC)at+w8>%c(uQTA3+i+{`sfsbNz zAiNaCHtNMHUy=mjC$P+(_S8lV5Pp=mVBTH)m`7iz{~NoaJp`D#Q2CN1ow!GvWx&d* z`j4qYmyik<&`w_mrWbic31(1_x_8*)dJtw*i&G4{kQekVHd)AJ&n=rKA( zkn+A&4r(Ea*bsJ%`8Z^dT_FdRg>t=j+mh5)=O(K&mPc$Brlv(+Tc|8My_22M97{B8~WvQM32*Da}%1+G0 z>1k?9z~@>TyDM*HB7A$UelZR!nynjpd%fx8Zczux2k~1j$y$mJ@nr{{&p)Em9`qpz zM>xaLdimPKloZ$KwZWz64fKOrx#gmxms;CW*|@M{eW$+o>49rVuxA-gbw+cj+029G~Jz;N`nu^D~a6;|p`b?)0b9p;eW7pE^6~9Mcri zT<9;|vJ*Xa4)42ZG3(y>)3p~QNvR_oho6Ew>i06r9NGh4UO*Icktp~ z=gPXx@nH`nqYk8KY%vxaMMgUp%kpu@Ht)&ZJLcX$sy==K-0D|@PL5-4_13W+gcd^h zhBV2#AD&4AKR>39o4&5@q3tzkX+CqeAgg)i6|(fY_`BzBwMQ9o9s{}6jWs2T-m(WB z)RdMqMw2hUect6Cnq1wTaB*KfRsD%Mo^j1DUNIxi#l`hU5?6%FgVFcu{JiKPLXt(Id0mIAt}c zsmlN9Sa;L#IlJOvZ`yC8zD-<=-Sk(TtzvkXlC+H6EqH5{28ow1jYbh2z;LB@e zb#zNt!If68Bj`Ogp`}-QW{UKy#5lVK#B-KQ3|yzxqoQ8!mwa*TV-Vxx_KWS8N2h&R zO9E^i)L2e$kziih6s_Mizo1>Hv?s4T_?AK8YeawuoqN*=(H0W+_WHOdkvMj`t%9+@II8W4^Cihpxmh<^cGm+lwWMJ0vT4w6uYaoOc%fEJn{ z8px$oF=*k9qW2g7r)T-UkFwtA()L80gy=u-u&Na9g0vu#Pv53WFyHH7k(kS zCZq@>3}NDqT4*v1ljI{DrH5?Ct=H-rLIYRV1#ER4Kwn$pApTI;)``tww&ymo0vLax zRay$&4e`{r|3d59K%w@3cQdGLavJa~$&4^z_#$DN`M>_d#1af{Hh98fZv2jRVj&D+ zJDMj8yBl$zP}*sB)x-VKq+PL zBz;3}ybY3zqaR@OlFV>lrCCfmdzB0_#Fit{$=@;Tq@^I>574sk|3bR--$;kr7EhY0`0>`>1vXCFL$Yuzthaox) z??xN}nW`Th{1?;ED;d+$BusnS1JKT=sJBo_L)b1-=p!39WD{ZH7CEj;Gw0mvM^}tj zeAq8x*yt1_UDn<<>XGiFO4$E6_1ZJS@$5}LE6fs>k39}AdS}hY z7o{(^L9US%+CKA&p?+@_!d-OU4dEl$5WE-W7G~;^Y?}RFW~%3t9{XCKT78+rYfLG> zIFnJ-Js(zkWRdW2WoafUY04HXCC^6HBE>EoV;DM?u3)#NvdcGlYf;M4CE|JL?h`t_())jE*wNQCl!9?&_%Zika>3 zuNI%47L>oZtB@iY@zbIUJQwYVUJ zO61u*s>`0=`15eDa&q>#t7Y}5*hW3hi2UZe^QB*}xzEP?`71Z$ow*b5R?amJEuGV@ z>e)VVnl&(0ezIswrM|y+-hyXU%Rs}Axfe!k>z~-QxyY3|_ggKbS1GzGBvn)|ClfrA zrV3j}A957-%9Nk+%UA4i&F5XtI5}&!bAy@|{Z(t30&}&QmHYN)j=J@MJwt^vZdbmw zCeE@Bddc@>ak^LSnHUPSnwQj}NVW|6cWYNx#Zj*9gomjYqa0mMUDY?R@1d$^HFh!ejoLY1bDlP` z{Od~F_W|oKifrA-GtVt74xgW?49tq(+&r5lqgVWR?@*zx((R3jO`$u^@^>GWbOM)y z2aQj<$||1dy5CbWT(D4{d}y%=j2QuGa@_h0M>0>pc(S;gA+p=5A&f>y;THH9?8+iI zK#nT~27^a?A9b|viMO}??#6!rFO}AMT+G8O>yvyVa{~0C8W6JT4ZTHAJw@uL$kYGF*dzU70EYFkBaH)G@4;oG63-c_v{hT<02_F5jA#op7^;};(P%y*b2T6_`L?=7GyX$Ntb>xr zOG-rtv&b8dvXrH`;^AqtnEu@-UF?&N;KLCPJ{(Hh4fE}uG(RCA_U^~!nRwL0tlw>l zoYCG@De@+4?RbG2syo~;DV5_g;JdveoyBTxgnB8x|L-gQa0Ud`R=s1G!N^LX%>xQQ~jpRvA&{jx22Ic!v z>DzFLZM`~L&53Xj;4vs|L-b(l7R)vGKXwqzdhndJWM90W$oe`jfpGn2;54(@&`#hP zm4>~o=(Q$xTCpn|Eeg>qtkNt`b<6h;+*L1cViK#(thoxV8a&tI3{xb8!SUjzZt76h zMX-&0z1)~`^4aFs@dEj!UQb(s6{^5Wae0#GA7elGAQ@+I!{1N?o`xeprx8U9z8#si z*b@U!k;3+yhhsn4RmDg%sWPL*SHYU%6t*KcQJN{8^2%H%=6rkaYO4QXkI#&EF z22YC_a6(Y>tzZp-7$?$LjFVP~aRQ$_%LX?a?bj-NV8c>@5GSnu1ZYQrXiSlI0Aot( zU&a)OSAxT1#uWOV1}-o`DGNOWK!~k@QHcMAqa88 zs16}ctSRBELMkl8iT)kvx4I!KSEz{M3fN@?@3~7gAEbt_if=5dB_>ub57-6pdRx_c zJqnT-FMggw*m`#HHe8AP2w;CKRyz6&V0pgWzYFi@=0E!U}$&*fxvSS;OvHv_hkW zzHtSS0K)KcQ^55%qGxMv7$QQ?*ySrSG&^}Shqpv|iMQrkqbXTDfPk@>RD)enBZ7>D zRpQ5+XO#{eXX_Z42|b{=Jk>YcU(Ty~T+QuC?qOrz)s=mf8wU;=XJ;K?)sa*4 zS#n*Nbr!js@S$L8YX8TIq~Lzl;{GM=XQ8qqKN3P@Qyvm}JyNGR)q;w<>vNaAIeMo% zht4gHAF1wIUiI`n;8pDzUGc-RGAX1#$#3)Y;(1=HQzeB3x26kSUac>AOj!I;UA`E) zan(2WuzJg-h0&xy8v@trau;~DiZ=8Zt(p({C^>{qEoU@?AIZ|bi%#9~nqp^LO@+Jr zulvVc)LIB26!BB^j5$uk24)?tYH`@(d@9;;VfyX8A%#w_8d=Fl5%N_IVcq#`k}4Bz z_v$SL3gb(f-b{>5S%eAMw7fZ{S*OLAT^l>?MRR9^iR;ztUj}Pax4ZY&{t(s3`|4J5 zX{Tp$dX!PKOiJ^_)cw)7=R-RU=WA6*U!5N8s`uz2sJtOeFO{gAF$-@u%WpOj`#hMI z9HYF!#WOGei>G^4;4~K(qqm}ytz%Ko^0}~~xTvmJdxSC%+7Hu7lV!W&x# z*C#jQ_sXV>o}67N8?i|6Dc_1v6+$_o$b7bztTE9DT&{1r8SmT1TFcMdf0>8IFc13pTN|&ditP zisPg8FD~aSS{&IS{lnArzRA`uiLtp0-4$2e70>)g^cCb5=jJ8MpKqEE?M@lWtMKD) ze>1hD7P6sOQo@Yu#6g#if(hCkIXfTA`2_dyNcP`rk#yRr!w}@({8sLwX`SQTIJNV| zLmS@ojOM&)?JzY7p}ciPD&wH8de4vLS6Xi;TcfsS`S1&kj-!<-bBPqo?mq@kX(j%A zT6~eKKxN052SP)8-<~I2s6<&FKYFmuI@6;dIJV6r#i#m$nz7q~te%h!HvCBsuF4E> zZRkDUd-7@5HMOoNnVVU?dS%n{#gBG(F}pH6T|C;BhZnu5;yKja|LDx;)m$D+?%7u# z9p5b)&b)1Bow6!V;kJ|h5Ta3dsQQd|NY~P(*dzW+KhsxyD*2pim(>WnWV4(0RTfUq z*SxHr8meU02nd>UpBuE}wU>)4iX|Ge7Xi zsm|A#12gr_17D5j`~c7M6YFtu>wZN#!o+CCGt>6*_M6n4ghikxoM)?j-o%3#&k z-p3V~@>!0@c65)3J`;D<8pg{!P=}ytb{iam zwS|JDt7H7OTR>ztZb66R-zjdy#G0Bly!+yR)?(YFG|ffM2j29Jw^;A+u)8M2ZZ~ka zVQWyZ$Kmw%5bX<&2XDRRW3b}eqfZt4T#x_2hsz0q{%5oH@E`aRVK{Z{q=A&RQm{c| zY;-v8y!<~7pIAEVJ^84M8sFUuh|JQII++lOmpM^-1^i#`sPi{p9y8KMDR^jf3_W8M z?rHb$pI|q?do?|w^krj%*tYutJM0@_fK1vN?hPl8TTl!dX&7HM<-DXJ8+pP}JvLh) z>+p3U1}odF@T-Tla3D}>#KUhD7P%Tvk$dY1ZCpHNUs-_#~dfGhB6 z{6`P>Wx?%u|0iw&gZhV*oP+%z#5Y+mom@AdDAxy_n`=PT2shWx{le4dSfDs>w*v!q zJ05=J@&}v9$3}Y<+G)+c8$En5&RSD$@ZPXsrb-h$YSL)mB_zRot?lk}DIB~-9X@|D+a>`Zxcd$mz4^2e1_0b;HA(P zc?dIF@*1H=L!TjHXlfuR4~wP{`mj(|2J{oL67=1TsG(wMh*)?j*g?*wA?$GJ=y@K( zf^PhX(4kM$5EJ-8x*y@d3Te?T>Cm0{U3hwx2koh+BbrzM?sJ6*FPfMR))zT&IK?_{ z7>15H-#|mQZ2%l}!GY3efJzQ-2N7$lWgv{GNf{_sSF50^QwHKqAqRJWu$FMov6etN zfwd(09615v)r;&k7;>Kj439qJh%hjr7TL&Fl;Qg{dv7aLZGP^O$Z+U>2f; z1(PmC_`{UBY0>d4gbv<`ldvHhiGydrKY!RqDC^EfXep(@Q|HAega<`(kW-XWI|2PU z2p;Y3#nF+#BqH>64)O{L0oyrT3Ef?cu%R%BU8r& zmZxCyZSw)Oj|-5EMB*ot1~Xb+h-^VW8|YL|!63iKsU!1Vg

395yG!-jZ{w;AvY+biHK#xhz(^e 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.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS +; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE +; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. +; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE _XXX.ASM AND SPECIFY +; YOUR FILE IN THE BUILD PROCESS. +; +; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. +; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO +; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON +; SETTINGS. +; +; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, +; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING +; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! +; +; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO +; DIRECTORIES ABOVE THIS ONE). +; +#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON OR AUTO BOOT +; +#include "cfg_duo.asm" +; +CPUOSC .SET 8000000 ; CPU OSC FREQ IN MHZ +CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +; +INTMODE .SET 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) +; +DMAENABLE .SET FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM) +; +BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE +; +CPUSPDDEF .SET SPD_LOW ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW +; +ROMSIZE .SET 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) +RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +; +MDFFENABLE .SET FALSE ; MD: ENABLE FLASH FILE SYSTEM +; +DSKYENABLE .SET TRUE ; ENABLES DSKY FUNCTIONALITY +ICMENABLE .SET FALSE ; ENABLES ORIGINAL DSKY ICM DRIVER (7218) +PKDENABLE .SET TRUE ; ENABLES DSKY NG PKD DRIVER (8259) +; +UARTINTS .SET FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3 +;UARTCFG .SET UARTCFG | SER_RTS +; +LPTENABLE .SET TRUE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +; +CVDUMON .SET CVDUMON_CGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] +; +FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) +; +PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) diff --git a/Source/HBIOS/Config/S100_std.asm b/Source/HBIOS/Config/S100_std.asm new file mode 100644 index 00000000..3b2b33fa --- /dev/null +++ b/Source/HBIOS/Config/S100_std.asm @@ -0,0 +1,49 @@ +; +;================================================================================================== +; S100 STANDARD CONFIGURATION +;================================================================================================== +; +; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE +; CFG_.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS +; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE +; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. +; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE _XXX.ASM AND SPECIFY +; YOUR FILE IN THE BUILD PROCESS. +; +; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. +; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO +; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON +; SETTINGS. +; +; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, +; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING +; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! +; +; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO +; DIRECTORIES ABOVE THIS ONE). +; +#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON OR AUTO BOOT +; +#include "cfg_s100.asm" +; +CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ +; +Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2 +Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3) +Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) +; +DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) +INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) +; +UARTENABLE .SET FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) +ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) +ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) +SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) +; +ASCI0CFG .SET SER_57600_8N1 ; ASCI 1: SERIAL LINE CONFIG +; +IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) +SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR] +SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY diff --git a/Source/HBIOS/Makefile b/Source/HBIOS/Makefile index 504cfd13..2fea0e6b 100644 --- a/Source/HBIOS/Makefile +++ b/Source/HBIOS/Makefile @@ -6,7 +6,7 @@ MOREDIFF = game.bin hbios_rom.bin nascom.bin usrrom.bin \ SUBDIRS = DEST = ../../Binary TOOLS =../../Tools -OTHERS = *.img *.rom *.com *.upd *.bin *.z80 cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh +OTHERS = *.img *.rom *.com *.upd *.bin *.hex cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh # DIFFMAKE = 1 @@ -58,7 +58,13 @@ $(OBJECTS) : $(ROMDEPS) cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin >osimg_small.bin if [ $(ROM_PLATFORM) != UNA ] ; then \ cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin usrrom.bin >osimg1.bin ; \ - cat imgpad2.bin >osimg2.bin ; \ + if [ $(ROM_PLATFORM) = S100 ] ; then \ + $(ZXCC) slr180 -s100mon/fh ; \ + $(ZXCC) mload25 -s100mon ; \ + cat s100mon.com >osimg2.bin ; \ + else \ + cat imgpad2.bin >osimg2.bin ; \ + fi ; \ if [ $(ROMSIZE) -gt 0 ] ; then \ for f in hbios_rom.bin osimg.bin osimg1.bin osimg2.bin ; do \ srec_cat $$f -Binary -Crop 0 0x7FFF -Checksum_Negative_Big_Endian 0x7FFF 1 1 -o $$f -Binary ; \ diff --git a/Source/HBIOS/cfg_duo.asm b/Source/HBIOS/cfg_duo.asm new file mode 100644 index 00000000..d4e39f97 --- /dev/null +++ b/Source/HBIOS/cfg_duo.asm @@ -0,0 +1,298 @@ +; +;================================================================================================== +; ROMWBW 2.X CONFIGURATION DEFAULTS FOR DUODYNE +;================================================================================================== +; +; THIS FILE CONTAINS THE FULL SET OF DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM +; INDICATED ABOVE. THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. INSTEAD, YOU SHOULD +; OVERRIDE ANY SETTINGS YOU WANT USING A CONFIGURATION FILE IN THE CONFIG DIRECTORY +; UNDER THIS DIRECTORY. +; +; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS +; FOR THE PLATFORM. +; +#DEFINE PLATFORM_NAME "Duodyne", " [", CONFIG, "]" +; +#INCLUDE "hbios.inc" +; +PLATFORM .EQU PLT_DUO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] +CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] +BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] +BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE +HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD) +USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION +TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ) +; +BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE +BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT +; +CPUSPDCAP .EQU SPD_HILO ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO +CPUSPDDEF .EQU SPD_LOW ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW +CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ +INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) +DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) +; +RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED) +MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] +MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) +MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY) +MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY) +MPGSEL_3 .EQU $7B ; Z2 MEM MGR BANK 3 PAGE SELECT REG (WRITE ONLY) +MPGENA .EQU $7C ; Z2 MEM MGR PAGING ENABLE REGISTER (BIT 0, WRITE ONLY) +; +RTCIO .EQU $70 ; RTC LATCH REGISTER ADR +; +KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT +KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS +; +CTCENABLE .EQU TRUE ; ENABLE ZILOG CTC SUPPORT +CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT +CTCBASE .EQU $B0 ; CTC BASE I/O ADDRESS +CTCTIMER .EQU TRUE ; ENABLE CTC PERIODIC TIMER +CTCMODE .EQU CTCMODE_CTR ; CTC MODE: CTCMODE_[NONE|CTR|TIM16|TIM256] +CTCPRE .EQU 256 ; PRESCALE CONSTANT (1-256) +CTCPRECH .EQU 2 ; PRESCALE CHANNEL (0-3) +CTCTIMCH .EQU 3 ; TIMER CHANNEL (0-3) +CTCOSC .EQU (4915200/8) ; CTC CLOCK FREQUENCY +; +EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION +; +SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES +; +WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ] +; +FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS +FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS +FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS +FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES +FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES +; +DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING +; +LEDENABLE .EQU TRUE ; ENABLES STATUS LED +LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC] +LEDPORT .EQU RTCIO ; STATUS LED PORT ADDRESS +LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED +; +DSKYENABLE .EQU FALSE ; ENABLES DSKY FUNCTIONALITY +DSKYDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON DSKY DISPLAY +ICMENABLE .EQU FALSE ; ENABLES ORIGINAL DSKY ICM DRIVER (7218) +ICMPPIBASE .EQU $60 ; BASE I/O ADDRESS OF ICM PPI +PKDENABLE .EQU FALSE ; ENABLES DSKY NG PKD DRIVER (8259) +PKDPPIBASE .EQU $60 ; BASE I/O ADDRESS OF PKD PPI +PKDOSC .EQU 3000000 ; OSCILLATOR FREQ FOR PKD (IN HZ) +; +BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE +CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] +VDAEMU_SERKBD .EQU $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD +ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] +KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) +MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +; +DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) +DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] +DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!) +; +DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM) +DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS +; +BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM) +BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS +; +INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) +; +RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM) +; +HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT +SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) +; +DS7RTCENABLE .EQU FALSE ; DS7RTC: ENABLE DS-1307 I2C CLOCK DRIVER (DS7RTC.ASM) +DS7RTCMODE .EQU DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTC_[PCF] +; +DUARTENABLE .EQU FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) +; +UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) +UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ +UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3 +UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS +UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED +UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA ONBOARD UART +UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH) +UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART +UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART +UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART +UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART +UARTDUAL .EQU TRUE ; UART: AUTO-DETECT DUAL UART +; +ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) +; +Z2UENABLE .EQU FALSE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM) +; +ACIAENABLE .EQU FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) +; +SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) +SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT +SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED) +SIOCNT .EQU 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP +SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] +SIO0BASE .EQU $B0 ; SIO 0: REGISTERS BASE ADR +SIO0ACLK .EQU (4915200/8) ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG +SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO0BCLK .EQU (4915200/8) ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0BCFG .EQU DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG +SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +; +XIOCFG .EQU DEFSERCFG ; XIO: SERIAL LINE CONFIG +; +VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) +VDUSIZ .EQU V80X25 ; VDU: DISPLAY FORMAT [V80X24|V80X25|V80X30] +CVDUENABLE .EQU TRUE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) +CVDUMODE .EQU CVDUMODE_MBC ; CVDU: CVDU MODE: CVDUMODE_[NONE|ECB|MBC] +CVDUMON .EQU CVDUMON_CGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] +GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) +TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSMODE .EQU TMSMODE_MBC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) +VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] +VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) +; +MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) +MDROM .EQU TRUE ; MD: ENABLE ROM DISK +MDRAM .EQU TRUE ; MD: ENABLE RAM DISK +MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM +; +; +FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) +FDMODE .EQU FDMODE_MBC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC] +FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2) +FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL) +FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS +FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +; +RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER +RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4) +; +IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +IDETRACE .EQU 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IDECNT .EQU 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH +IDE0MODE .EQU IDEMODE_DIO ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC] +IDE0BASE .EQU $20 ; IDE 0: IO BASE ADDRESS +IDE0DATLO .EQU $20 ; IDE 0: DATA LO PORT FOR 16-BIT I/O +IDE0DATHI .EQU $28 ; IDE 0: DATA HI PORT FOR 16-BIT I/O +IDE0A8BIT .EQU FALSE ; IDE 0A (MASTER): 8 BIT XFER +IDE0B8BIT .EQU FALSE ; IDE 0B (MASTER): 8 BIT XFER +IDE1MODE .EQU IDEMODE_NONE ; IDE 1: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC] +IDE1BASE .EQU $00 ; IDE 1: IO BASE ADDRESS +IDE1DATLO .EQU $00 ; IDE 1: DATA LO PORT FOR 16-BIT I/O +IDE1DATHI .EQU $00 ; IDE 1: DATA HI PORT FOR 16-BIT I/O +IDE1A8BIT .EQU TRUE ; IDE 1A (MASTER): 8 BIT XFER +IDE1B8BIT .EQU TRUE ; IDE 1B (MASTER): 8 BIT XFER +IDE2MODE .EQU IDEMODE_NONE ; IDE 2: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC] +IDE2BASE .EQU $00 ; IDE 2: IO BASE ADDRESS +IDE2DATLO .EQU $00 ; IDE 2: DATA LO PORT FOR 16-BIT I/O +IDE2DATHI .EQU $00 ; IDE 2: DATA HI PORT FOR 16-BIT I/O +IDE2A8BIT .EQU TRUE ; IDE 2A (MASTER): 8 BIT XFER +IDE2B8BIT .EQU TRUE ; IDE 2B (MASTER): 8 BIT XFER +; +PPIDEENABLE .EQU FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +PPIDETRACE .EQU 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPIDECNT .EQU 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP +PPIDE0BASE .EQU $60 ; PPIDE 0: PPI REGISTERS BASE ADR +PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER +PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER +PPIDE1BASE .EQU $20 ; PPIDE 1: PPI REGISTERS BASE ADR +PPIDE1A8BIT .EQU FALSE ; PPIDE 1A (MASTER): 8 BIT XFER +PPIDE1B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER +PPIDE2BASE .EQU $14 ; PPIDE 2: PPI REGISTERS BASE ADR +PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER +PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER +; +SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) +SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR] +SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE +SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY +SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE +; +PRPENABLE .EQU FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) +PRPSDENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER SD CARD SUPPORT +PRPSDTRACE .EQU 1 ; PRP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PRPCONENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER VIDEO/KBD SUPPORT +; +PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM) +; +HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM) +HDSKTRACE .EQU 1 ; HDSK: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +; +PIOENABLE .EQU TRUE ; PIO: ENABLE ZILOG PIO DRIVER (PIO.ASM) +PIOCNT .EQU 2 ; PIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP +PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR +PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR +; +LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +LPTMODE .EQU LPTMODE_SPP ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014] +LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2) +LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +LPT0BASE .EQU $E8 ; LPT 0: REGISTERS BASE ADR +LPT1BASE .EQU $EC ; LPT 1: REGISTERS BASE ADR +; +PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM) +PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2) +PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPAMODE .EQU PPAMODE_SPP ; PPA: DRIVER MODE: PPAMODE_[NONE|MG014] +PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA +PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA +; +IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM) +IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2) +IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IMMMODE .EQU IMMMODE_SPP ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014] +IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM +IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM +; +SYQENABLE .EQU FALSE ; SYQ: ENABLE IMM DISK DRIVER (SYQ.ASM) +SYQCNT .EQU 1 ; SYQ: NUMBER OF SYQ DEVICES (1-2) +SYQTRACE .EQU 1 ; SYQ: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +SYQMODE .EQU IMMMODE_SPP ; SYQ: DRIVER MODE: SYQMODE_[NONE|SPP|MG014] +SYQ0BASE .EQU LPT0BASE ; SYQ 0: BASE I/O ADDRESS OF PPI FOR SYQ +SYQ1BASE .EQU LPT1BASE ; SYQ 1: BASE I/O ADDRESS OF PPI FOR SYQ +; +PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD +PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD +PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM) +PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD +PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP +PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI +; +UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) +UFBASE .EQU $0C ; UF: REGISTERS BASE ADR +; +SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER +SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD +SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] +; +AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER +AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD +AYMODE .EQU AYMODE_MBC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +; +SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) +; +DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM) +DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS +DMAMODE .EQU DMAMODE_MBC ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC) +; +YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB) +VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC) + diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index 1ef3f852..f4607756 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/Source/HBIOS/cfg_dyno.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index e9bbc521..56351c84 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.asm @@ -12,7 +12,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_mbc.asm b/Source/HBIOS/cfg_mbc.asm index db2d5ebd..a76a40c7 100644 --- a/Source/HBIOS/cfg_mbc.asm +++ b/Source/HBIOS/cfg_mbc.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 07a55cc2..b43fc041 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 73f2b5f9..1d4c11a2 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index f47946f0..8de5601f 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm index dc7d2d49..d7886b3c 100644 --- a/Source/HBIOS/cfg_rcz280.asm +++ b/Source/HBIOS/cfg_rcz280.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z280 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index 6fd84124..bb18fa32 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_rph.asm b/Source/HBIOS/cfg_rph.asm index 8ec96877..14c7d3b6 100644 --- a/Source/HBIOS/cfg_rph.asm +++ b/Source/HBIOS/cfg_rph.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU TRUE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_s100.asm b/Source/HBIOS/cfg_s100.asm new file mode 100644 index 00000000..71f47f6e --- /dev/null +++ b/Source/HBIOS/cfg_s100.asm @@ -0,0 +1,303 @@ +; +;================================================================================================== +; ROMWBW 2.X CONFIGURATION DEFAULTS FOR S100 Z180 +;================================================================================================== +; +; THIS FILE CONTAINS THE FULL SET OF DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM +; INDICATED ABOVE. THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. INSTEAD, YOU SHOULD +; OVERRIDE ANY SETTINGS YOU WANT USING A CONFIGURATION FILE IN THE CONFIG DIRECTORY +; UNDER THIS DIRECTORY. +; +; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS +; FOR THE PLATFORM. +; +#DEFINE PLATFORM_NAME "S100", " [", CONFIG, "]" +; +#INCLUDE "hbios.inc" +; +PLATFORM .EQU PLT_S100 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] +CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280] +BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] +BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE +HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD) +USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION +TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ) +; +BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE +BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT +; +CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO +CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW +CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ +INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) +DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) +; +RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED) +MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] +RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE +RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE +MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) +MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY) +MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY) +MPGSEL_3 .EQU $7B ; Z2 MEM MGR BANK 3 PAGE SELECT REG (WRITE ONLY) +MPGENA .EQU $7C ; Z2 MEM MGR PAGING ENABLE REGISTER (BIT 0, WRITE ONLY) +; +Z180_BASE .EQU $C0 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS +Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2 +Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3) +Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) +Z180_TIMER .EQU TRUE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER +; +RTCIO .EQU $0C ; RTC LATCH REGISTER ADR +; +KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT +KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS +; +CTCENABLE .EQU FALSE ; ENABLE ZILOG CTC SUPPORT +CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT +CTCBASE .EQU $88 ; CTC BASE I/O ADDRESS +CTCTIMER .EQU FALSE ; ENABLE CTC PERIODIC TIMER +; +EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION +; +SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES +; +WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ] +; +FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS +FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS +FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS +FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES +FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES +; +DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING +; +LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) +LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] +LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS +LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED +; +DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE) +; +BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE +CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] +VDAEMU_SERKBD .EQU $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD +ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] +KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) +MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +; +DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) +DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] +DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!) +; +DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM) +DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS +; +BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM) +BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS +; +INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) +; +RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM) +; +HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT +SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) +; +DS7RTCENABLE .EQU FALSE ; DS7RTC: ENABLE DS-1307 I2C CLOCK DRIVER (DS7RTC.ASM) +DS7RTCMODE .EQU DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTC_[PCF] +; +DUARTENABLE .EQU FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) +DUARTCNT .EQU 1 ; DUART: NUMBER OF CHIPS TO DETECT (1-2) +DUART0BASE .EQU $A0 ; DUART 0: BASE ADDRESS OF CHIP +DUART0ACFG .EQU DEFSERCFG ; DUART 0A: SERIAL LINE CONFIG +DUART0BCFG .EQU DEFSERCFG ; DUART 0B: SERIAL LINE CONFIG +DUART1BASE .EQU $40 ; DUART 1: BASE ADDRESS OF CHIP +DUART1ACFG .EQU DEFSERCFG ; DUART 1A: SERIAL LINE CONFIG +DUART1BCFG .EQU DEFSERCFG ; DUART 1B: SERIAL LINE CONFIG +; +UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) +UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ +UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3 +UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS +UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA ONBOARD UART +UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH) +UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART +UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART +UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART +UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART +UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART +; +ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) +ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3 +ASCISWAP .EQU FALSE ; ASCI: SWAP CHANNELS +ASCIBOOT .EQU 0 ; ASCI: REBOOT ON RCV CHAR (0=DISABLED) +ASCI0CFG .EQU DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG +ASCI1CFG .EQU DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG +; +Z2UENABLE .EQU FALSE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM) +; +ACIAENABLE .EQU FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) +; +SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) +SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT +SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED) +SIOCNT .EQU 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP +SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] +SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR +SIO0ACLK .EQU 7372800 ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0ACFG .EQU SER_115200_8N1 ; SIO 0A: SERIAL LINE CONFIG +SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO0BCLK .EQU 7372800 ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0BCFG .EQU SER_115200_8N1 ; SIO 0B: SERIAL LINE CONFIG +SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] +SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR +SIO1ACLK .EQU 7372800 ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO1ACFG .EQU SER_115200_8N1 ; SIO 1A: SERIAL LINE CONFIG +SIO1ACTCC .EQU -1 ; SIO 1A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO1BCLK .EQU 7372800 ; SIO 1B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO1BCFG .EQU SER_115200_8N1 ; SIO 1B: SERIAL LINE CONFIG +SIO1BCTCC .EQU -1 ; SIO 1B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +; +XIOCFG .EQU DEFSERCFG ; XIO: SERIAL LINE CONFIG +; +VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) +CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) +GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) +TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) +VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) +; +MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) +MDROM .EQU TRUE ; MD: ENABLE ROM DISK +MDRAM .EQU TRUE ; MD: ENABLE RAM DISK +MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM +; +FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) +FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC] +FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2) +FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL) +FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS +FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +; +RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER +; +IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +IDETRACE .EQU 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IDECNT .EQU 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH +IDE0MODE .EQU IDEMODE_RC ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC] +IDE0BASE .EQU $10 ; IDE 0: IO BASE ADDRESS +IDE0DATLO .EQU $00 ; IDE 0: DATA LO PORT FOR 16-BIT I/O +IDE0DATHI .EQU $00 ; IDE 0: DATA HI PORT FOR 16-BIT I/O +IDE0A8BIT .EQU TRUE ; IDE 0A (MASTER): 8 BIT XFER +IDE0B8BIT .EQU TRUE ; IDE 0B (MASTER): 8 BIT XFER +IDE1MODE .EQU IDEMODE_NONE ; IDE 1: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC] +IDE1BASE .EQU $00 ; IDE 1: IO BASE ADDRESS +IDE1DATLO .EQU $00 ; IDE 1: DATA LO PORT FOR 16-BIT I/O +IDE1DATHI .EQU $00 ; IDE 1: DATA HI PORT FOR 16-BIT I/O +IDE1A8BIT .EQU TRUE ; IDE 1A (MASTER): 8 BIT XFER +IDE1B8BIT .EQU TRUE ; IDE 1B (MASTER): 8 BIT XFER +IDE2MODE .EQU IDEMODE_NONE ; IDE 2: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC] +IDE2BASE .EQU $00 ; IDE 2: IO BASE ADDRESS +IDE2DATLO .EQU $00 ; IDE 2: DATA LO PORT FOR 16-BIT I/O +IDE2DATHI .EQU $00 ; IDE 2: DATA HI PORT FOR 16-BIT I/O +IDE2A8BIT .EQU TRUE ; IDE 2A (MASTER): 8 BIT XFER +IDE2B8BIT .EQU TRUE ; IDE 2B (MASTER): 8 BIT XFER +; +PPIDEENABLE .EQU FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +PPIDETRACE .EQU 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPIDECNT .EQU 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP +PPIDE0BASE .EQU $20 ; PPIDE 0: PPI REGISTERS BASE ADR +PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER +PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER +PPIDE1BASE .EQU $00 ; PPIDE 1: PPI REGISTERS BASE ADR +PPIDE1A8BIT .EQU FALSE ; PPIDE 1A (MASTER): 8 BIT XFER +PPIDE1B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER +PPIDE2BASE .EQU $00 ; PPIDE 2: PPI REGISTERS BASE ADR +PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER +PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER +; +SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) +SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR] +SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE +SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY +SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE +SDMTSWAP .EQU FALSE ; SD: SWAP THE LOGICAL ORDER OF THE SPI PORTS OF THE MT011 +; +PRPENABLE .EQU FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) +PRPSDENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER SD CARD SUPPORT +PRPSDTRACE .EQU 1 ; PRP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PRPCONENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER VIDEO/KBD SUPPORT +; +PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM) +; +HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM) +; +PIOENABLE .EQU FALSE ; PIO: ENABLE ZILOG PIO DRIVER (PIO.ASM) +PIOCNT .EQU 2 ; PIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP +PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR +PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR +; +LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014] +LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2) +LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +LPT0BASE .EQU $18 ; LPT 0: REGISTERS BASE ADR +LPT1BASE .EQU $00 ; LPT 1: REGISTERS BASE ADR +; +PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM) +PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2) +PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPAMODE .EQU PPAMODE_MG014 ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014] +PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA +PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA +; +IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM) +IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2) +IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IMMMODE .EQU IMMMODE_MG014 ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014] +IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM +IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM +; +SYQENABLE .EQU FALSE ; SYQ: ENABLE IMM DISK DRIVER (SYQ.ASM) +SYQCNT .EQU 1 ; SYQ: NUMBER OF SYQ DEVICES (1-2) +SYQTRACE .EQU 1 ; SYQ: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +SYQMODE .EQU IMMMODE_MG014 ; SYQ: DRIVER MODE: SYQMODE_[NONE|SPP|MG014] +SYQ0BASE .EQU LPT0BASE ; SYQ 0: BASE I/O ADDRESS OF PPI FOR SYQ +SYQ1BASE .EQU LPT1BASE ; SYQ 1: BASE I/O ADDRESS OF PPI FOR SYQ +; +PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD +PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM) +PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP +; +UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) +; +SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER +SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD +SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] +; +AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER +AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD +AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +; +SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) +; +DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM) +DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS +DMAMODE .EQU DMAMODE_Z180 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC) +; +YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB) +VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC) diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 0dde69e6..70f548fb 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index d2690c85..77fea0e0 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/Source/HBIOS/cfg_scz180.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_una.asm b/Source/HBIOS/cfg_una.asm index f437e483..daab2904 100644 --- a/Source/HBIOS/cfg_una.asm +++ b/Source/HBIOS/cfg_una.asm @@ -15,7 +15,7 @@ ; #INCLUDE "../UBIOS/ubios.inc" ; -;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA] ; diff --git a/Source/HBIOS/cfg_z80retro.asm b/Source/HBIOS/cfg_z80retro.asm index 93e3bc08..09e3fb0e 100644 --- a/Source/HBIOS/cfg_z80retro.asm +++ b/Source/HBIOS/cfg_z80retro.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_Z80RETRO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_Z80RETRO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index 527bf5ff..c08ebe64 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/Source/HBIOS/cfg_zeta.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; BIOS_[WBW|UNA]: HARDWARE BIOS BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index 1ca49564..586409ba 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/Source/HBIOS/cfg_zeta2.asm @@ -15,7 +15,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO] +PLATFORM .EQU PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280] BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 409bfeaa..b0f1a8d1 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -1373,6 +1373,22 @@ Z280_INITZ: LD (HB_CURBNK),A ; RESTORE HB_CURBNK #ENDIF ; +; S100 ROM CONTAINS A HARDWARE LEVEL MONITOR IN BANK ID 3 OF ROM. +; IF PORT $65 BIT 1 IS SET (SET IS ZERO), THEN WE IMMEDIATELY +; TRANSITION TO THIS MONITOR. +; +#IF ((PLATFORM == PLT_S100) & TRUE) + IN A,($65) ; READ SWITCHES + BIT 1,A ; CHECK BIT 1 + JR NZ,S100MON_SKIP ; IF NOT SET, BYPASS + LD A,BID_IMG2 ; S100 MONITOR BANK + LD IX,0 ; EXECUTION RESUMES HERE + CALL HBX_BNKCALL ; CONTINUE IN RAM BANK, DO NOT RETURN + HALT ; WE SHOULD NOT COME BACK HERE! +; +S100MON_SKIP: +#ENDIF +; ; SAVE CURRENT BANKID ; ; THIS IS NOT GOING TO WORK IF THE APP BOOT IMAGE IS LOADED diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index 57e7d749..a1c0481c 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -150,6 +150,8 @@ PLT_RCZ280 .EQU 12 ; RCBUS W/ Z280 PLT_MBC .EQU 13 ; MULTI BOARD COMPUTER PLT_RPH .EQU 14 ; RHYOPHYRE GRAPHICS COMPUTER PLT_Z80RETRO .EQU 15 ; Z80 RETRO COMPUTER +PLT_S100 .EQU 16 ; S100 COMPUTERS Z180 SYSTEM +PLT_DUO .EQU 17 ; DUODYNE Z80 SYSTEM ; ; HBIOS GLOBAL ERROR RETURN VALUES ; diff --git a/Source/HBIOS/s100mon.z80 b/Source/HBIOS/s100mon.z80 new file mode 100644 index 00000000..1be975ae --- /dev/null +++ b/Source/HBIOS/s100mon.z80 @@ -0,0 +1,3053 @@ +; Z180MOM1.180 This is the Z180 CPU main monitor program for the S100Computers Z180 SBC Project. +; Assemble and SLR's Z180ASM Assembler +; +; The code is intended to run starting at location 0000H and ignores +; all page zero stuff. Interrupts are kept disabled. The resultant +; binary is intended to be programmed into a ROM that is addressed at +; CPU address 0000H on reset. The code assumes the CPU has been reset +; and makes no attempt to "reset" Z180 registers back to defaults. +; +; The code assumes a physical memory layout of 1MB. The first 512KB +; is assumed to be ROM and the second 512KB is assumed to be RAM. The +; code configures the MMU to place the highest 32KB of physical RAM +; into the top 32KB of CPU address space. +; +; Input XTAL clock is expected to be 18.432 MHz. +; The CPU is configured to run at the most conservative settings. +; PHI at 1/2 XTAL input, +3 memory wait states, and +3 I/O wait states. +; +; Serial port baud rate divisor is programmed to 480, so the baud rate +; will be PHI / 480, so nominally 19,200 baud. See below for CNTLB +; value to use for 57,600 baud. Line characteristics are set to +; 8 data bits, 1 stop bit, no parity. +; +; The initialization code relocates the internal Z180 CPU registers +; to start at C0H. This is not a requirement of the code, but I +; thought it might be helpful for testing external devices that are +; more likely to be located at the lower I/O addresses. +; +; The submit file (xxx2.sub) contains:- +; R Z180MOM1.180 +; SLR180 Z180MOM1 FH +; HEXCOM Z180MOM1 +; W Z180MOM1.HEX +; W Z180MOM1.LST +; W Z180MOM1.COM +; +; To assemble under windows... +; Load Altair.EXE in the Windows CMD box +; do cpm3 +; I: +; +; Use the "r" SIMH command to move SLR180.COM file across to the I: Drive +; Also "r" the XXX0.SUB file across to the I: drive (one time only) +; Note I already have these files on the Altair I: drive you are using here. +; +; Then.... +; I:>Submit XXX2.SUB +; +; Ignore the SLR assembler error about the load address being less than 100H +; +; The .HEX file will have a start address of F000H. It must reside in the ROM starting +; at 0H. With the Wellon VP 290 Programmer:- +; +; To Buffer Address (HEX) +; For File Address (Hex) 0000 <------ +; File Size (Hex) 8000 +; Intel +; Clear buffer options 0 +; To Buffer Mode Normal +; From File Mode Normal +; +; V0.0 5/10/2023 ;Initial boot code supplied by Wayne Warthen +; V0.1 5/18/2023 ;First addition of S100 bus Z80 Master.Z80 monitor code. +; V0.11 6/5/2023 ;Menu to test S100 bus signals & set Baud Rate +; V0.2 7/4/2023 ;Remove baud rate option, add date,time, start IDE +; V0.21 7/6/2023 ;Cleaned up IDE drive section + +;--------------------------------- Port equates used throughout the monitor --------------- +; +; +SCROLL EQU 01H ;Set scrool direction UP. +BELL EQU 07H +SPACE EQU 20H +TAB EQU 09H ;TAB ACROSS (8 SPACES FOR SD-BOARD) +CR EQU 0DH +LF EQU 0AH +FF EQU 0CH +QUIT EQU 11H ;Turns off any screen enhancements (flashing, underline etc). +NO_ENHANCEMENT EQU 17H ;Turns off whatever is on +FAST EQU 10H ;High speed scrool +ESC EQU 1BH +DELETE EQU 7FH +BACKS EQU 08H +CLEAR EQU 1AH ;TO CLEAR SCREEN +RST7 EQU 38H ;RST 7 (LOCATION FOR TRAP) +NN EQU 0H ;[I] INITIAL VALUE +SOH EQU 1 ; For XModem etc. +EOT EQU 4 +ACK EQU 6 +NAK EQU 15H + +FALSE EQU 0 +TRUE EQU NOT FALSE + +DIAGNOSTIC_MODE EQU FALSE +ST8C4 EQU TRUE ;TRUE if S100_Parallel_IO Board. False if IMSAI PIO Board +IOBYTE EQU 075H ;IOBYTE PORT ON Z180 CPU Board (74H-77H or 64H-67H. Set with K8) +SOUT_PORT EQU 074H ;Onboard port to control sOUT signal to S100 bus. + + +;-------------- PROPELLER CONSOLE_IO (OR SD SYSTEMS VIDIO BOARD) FOR CONSOLE INPUT & OUTPUT +CONSOLE_STATUS EQU 0H +CONSOLE_IN EQU 01H +CONSOLE_OUT EQU 01H + +;-------------- THIS IS MY PORT TO OUTPUT DATA TO HP 4050T LASAR PRINTER (IMSAI or 8PIO Board) + + +IF ST8C4 ;If S100_Parallel_IO Board for Printer output +PRINTER_CTRL EQU 0C2H ;ST8C4 Control Port +PRINTER_STATUS EQU 0C1H ;ST8C4 Status port +PRINTER_OUT EQU 0C0H ;ST8C4 Data port +PRINTER_ST_LOW EQU 0DH ;OUT STROBE LOW +PRINTER_ST_HIGH EQU 0CH ;OUT STROBE HIGH +ELSE +PRINTER_STATUS EQU 5 ;IN, IMSAI PIO Board PARRELL PORT +PRINTER_OUT EQU 5 ;OUT +PRINTER_STROBE EQU 4 ;OUT +ENDIF + +;-------------- S100Computers MSDOS Support Board PORT ASSIGNMENTS + +CMOS_PORT EQU 70H ;Base Port for CMOS Clock/Date Chip on MSDOS Support Board +MASTER_PIC_PORT EQU 20h ;Hardware port the 8259A (two ports 20H & 21H) + +MasterICW1 equ 00010111B ;EDGE triggered, 4 bytes, single Master,ICW4 needed +MasterICW2 equ 8H ;Base address for 8259A Int Table (IBM-PC uses 8X4 = 20H) +MasterICW3 equ 0H ;No slave +MasterICW4 equ 00000011B ;No special mode, non buffer, Auto EOI, 8086. ;<<<<, + + +;-------------------------- SMBs Board ------------------------------------------------ + +SW_TMAX EQU 0EEH ;OUTPUT BIT 0 HIGH FROM THIS PORT LOWERS DMA0* ON THE SMB_V2 (SWITCH IN THE 8086 FAMILY of boards) + ;OUTPUT BIT 1 HIGH FROM THIS PORT LOWERS DMA1* ON THE SMB_V2 (SWITCH IN THE 68000 CPU Board) + ;OUTPUT BIT 2 HIGH FROM THIS PORT LOWERS DMA2* ON THE SMB_V2 + ;OUTPUT BIT 3 HIGH FROM THIS PORT LOWERS DMA3* ON THE SMB_V2 +SW_TMA0 EQU 0EDH ;INPUT FROM THIS PORT LOWERS DMA0* (SWITCHES IN THE 8088,8086,80286 or 80386 boards) + + +;-------------- S100Computers I/O BOARD PORT ASSIGNMENTS (A0-AC) ------------------------------------ + +BCTL EQU 0A0H ;CHANNEL B CONTROL (SPEECH PORT) ;<--- Adjust as necessary, +BDTA EQU 0A2H ;CHANNEL B DATA +ACTL EQU 0A1H ;CHANNEL A CONTROL (MODEM_CTL_PORT) +ADTA EQU 0A3H ;CHANNEL A DATA (MODEM_DATA_PORT) + +PortA_8255 EQU 0A8H ;A port of 8255 ;<--- Adjust as necessary +PortB_8255 EQU 0A9H ;B port of 8255 +PortC_8255 EQU 0AAH ;C Port of 8255 +PortCtrl_8255 EQU 0ABH ;8255 configuration port +AinBout8255cfg EQU 10011000b ;Set 8255 ports:- A input, B output, + +USB_DATA EQU 0ACH ;PORT ASSIGNEMENT FOR DLP-USB Controller chip +USB_STATUS EQU 0AAH ;Status port for USB port (Port C of 8255, bits 6,7) +USB_RXE EQU 80H ;If Bit 7 = 0, data available to recieve by S-100 Computer +USB_TXE EQU 40H ;If Bit 6 = 0 data CAN be written for transmission to PC + +BASE_PORT EQU 0A1H ;For XModem communication routines +MODEM_CTL_PORT EQU BASE_PORT ;A1H (Note modem I/O will be on CHANNEL A. Speaker on CHANNEL B +MODEM_DATA_PORT EQU BASE_PORT+2 ;A3H + +MODEM_SEND_MASK EQU 4 +SEND_READY EQU 4 ;VALUE WHEN READY +MODEM_RECV_MASK EQU 1 +RECV_READY EQU 1 ;BIT ON WHEN READY +MODEM_ERR_LIMIT EQU 8 ;Max number of Modem serial port re-reads aborting +MODEM_RTS_DELAY EQU 1 ;Time to check Modem RTS line (See XMODEM_LOAD & P_XMODEM_LOAD). Not critical. + +RECVD_SECT_NO EQU 0H ;IX Offset for XModem Recieved Sector Number +SECTNO EQU 1H ;IX Offset for XModem CURRENT SECTOR NUMBER +ERRCT EQU 2H ;IX Offset for XModem ERROR COUNT + +;-------------- S100Computers IDE/CF CARD Port Assignements (30-34H)---------------------------- + +IDEAport EQU 030H ;lower 8 bits of IDE interface +IDEBport EQU 031H ;upper 8 bits of IDE interface +IDECport EQU 032H ;control lines for IDE interface +IDECtrl EQU 033H ;8255 configuration port +IDEDrivePort EQU 034H ;To select the 1st or 2nd CF card/drive (Not used with this monitor) + +IDE_Reset_Delay EQU 020H ;Time delay for reset/initilization (~60 uS, with 10MHz Z80, 2 I/O wait states) + +CPM_ADDRESS EQU 100H ;Will place the CPMLDR.COM Loader here with + ;CPMLDR.COM will ALWAYS be on TRK 0,SEC2, (LBA Mode) +SEC_COUNT EQU 12 ;CPMLDR.COM requires (currently) 10, 512 byte sectors + +RDcfg8255 EQU 10010010B ;Set 8255 IDECport out, IDEAport/B input +WRcfg8255 EQU 10000000B ;Set all three 8255 ports output + +;IDE control lines for use with IDEportC. + +IDEa0line EQU 01H ;direct from 8255 to IDE interface +IDEa1line EQU 02H ;direct from 8255 to IDE interface +IDEa2line EQU 04H ;direct from 8255 to IDE interface +IDEcs0line EQU 08H ;inverter between 8255 and IDE interface +IDEcs1line EQU 10H ;inverter between 8255 and IDE interface +IDEwrline EQU 20H ;inverter between 8255 and IDE interface +IDErdline EQU 40H ;inverter between 8255 and IDE interface +IDEreset EQU 80H ;inverter between 8255 and IDE interface + +;Symbolic constants for the IDE Drive registers, which makes the +;code more readable than always specifying the address bits + +REGdata EQU IDEcs0line +REGerr EQU IDEcs0line + IDEa0line +REGseccnt EQU IDEcs0line + IDEa1line +REGsector EQU IDEcs0line + IDEa1line + IDEa0line +REGcylinderLSB EQU IDEcs0line + IDEa2line +REGcylinderMSB EQU IDEcs0line + IDEa2line + IDEa0line +REGshd EQU IDEcs0line + IDEa2line + IDEa1line ;(0EH) +REGcommand EQU IDEcs0line + IDEa2line + IDEa1line + IDEa0line ;(0FH) +REGstatus EQU IDEcs0line + IDEa2line + IDEa1line + IDEa0line +REGcontrol EQU IDEcs1line + IDEa2line + IDEa1line +REGastatus EQU IDEcs1line + IDEa2line + IDEa1line + IDEa0line + +;IDE Command Constants. These should never change. + +COMMANDrecal EQU 10H +COMMANDread EQU 20H +COMMANDwrite EQU 30H +COMMANDinit EQU 91H +COMMANDid EQU 0ECH +COMMANDspindown EQU 0E0H +COMMANDspinup EQU 0E1H + +; IDE Status Register: +; bit 7: Busy 1=busy, 0=not busy +; bit 6: Ready 1=ready for command, 0=not ready yet +; bit 5: DF 1=fault occured insIDE drive +; bit 4: DSC 1=seek complete +; bit 3: DRQ 1=data request ready, 0=not ready to xfer yet +; bit 2: CORR 1=correctable error occured +; bit 1: IDX vendor specific +; bit 0: ERR 1=error occured + +SEC$SIZE EQU 512 ;Assume sector size as 512. (Not tested for other sizes) +MAXSEC EQU 3DH ;Sectors per track for CF my Memory drive, Kingston CF 8G. (For CPM format, 0-3CH) + ;This translates to LBA format of 1 to 3D sectors, for a total of 61 sectors/track. + ;This CF card actully has 3F sectors/track. Will use 3D for my CPM3 system because + ;my Seagate drive has 3D sectors/track. Don't want different CPM3.SYS files around + ;so this program as is will also work with a Seagate 6531 IDE drive + +MAXTRK EQU 0FFH ;CPM3 allows up to 8MG so 0-256 "tracks" + +;----------------------------------------------------------------------------------------------------- + + + +z180_base equ 0C0h ;Will relocate all internal Z180 IO ports from 0-3FH to C0-FFH. The S100 bus + ;hardware intrerface will kick in if these ports are activeted. + ;See the schematic +; +mon_start equ 0E000h ;Final location of this monitor 0E000H (First 56K free RAM) + +IDE_Buffer EQU 0D000H ;Will place the IDE/CF Card Buffer here +@SEC equ IDE_Buffer - 10H ;Place these stores below the monitor location +@TRK equ IDE_Buffer - 12H +@SEC_COUNT equ IDE_Buffer - 14H +@RAM_ADDRESS equ IDE_Buffer - 16H + +@DisplayFlag equ IDE_Buffer - 18H ;Display of sector data initially ON +@StartLineHex equ IDE_Buffer - 1AH +@BYTE$COUNT equ IDE_Buffer - 1CH +@DRIVE$SEC equ IDE_Buffer - 1EH +@DRIVE$TRK equ IDE_Buffer - 20H +@StartLineASCII equ IDE_Buffer - 22H +@NEXT_ADDRESS equ IDE_buffer - 24H + + +; +z180_cntla0 equ z180_base + 00H ; asci0 control a +z180_cntla1 equ z180_base + 01H ; asci1 control a +z180_cntlb0 equ z180_base + 02H ; asci0 control b +z180_cntlb1 equ z180_base + 03H ; asci1 control b +z180_stat0 equ z180_base + 04H ; asci0 status +z180_stat1 equ z180_base + 05H ; asci1 status +z180_tdr0 equ z180_base + 06H ; asci0 transmit +z180_tdr1 equ z180_base + 07H ; asci1 transmit +z180_rdr0 equ z180_base + 08H ; asci0 receive +z180_rdr1 equ z180_base + 09H ; asci1 receive +z180_cntr equ z180_base + 0aH ; csi/o control +z180_trdr equ z180_base + 0bH ; csi/o transmit/receive +z180_tmdr0l equ z180_base + 0cH ; timer 0 data lo +z180_tmdr0h equ z180_base + 0dH ; timer 0 data hi +z180_rldr0l equ z180_base + 0eH ; timer 0 reload lo +z180_rldr0h equ z180_base + 0fH ; timer 0 reload hi +z180_tcr equ z180_base + 10H ; timer control +; +z180_asext0 equ z180_base + 12H ; asci0 extension control (z8s180) +z180_asext1 equ z180_base + 13H ; asci1 extension control (z8s180) +; +z180_tmdr1l equ z180_base + 14H ; timer 1 data lo +z180_tmdr1h equ z180_base + 15H ; timer 1 data hi +z180_rldr1l equ z180_base + 16H ; timer 1 reload lo +z180_rldr1h equ z180_base + 17H ; timer 1 reload hi +z180_frc equ z180_base + 18H ; free running counter + +z180_astc0l equ z180_base + 1aH ; asci0 time constant lo (z8s180) +z180_astc0h equ z180_base + 1bH ; asci0 time constant hi (z8s180) +z180_astc1l equ z180_base + 1cH ; asci1 time constant lo (z8s180) +z180_astc1h equ z180_base + 1dH ; asci1 time constant hi (z8s180) +z180_cmr equ z180_base + 1eH ; clock multiplier (latest z8s180) +z180_ccr equ z180_base + 1fH ; cpu control (z8s180) +; +z180_sar0l equ z180_base + 20H ; dma0 source addr lo +z180_sar0h equ z180_base + 21H ; dma0 source addr hi +z180_sar0b equ z180_base + 22H ; dma0 source addr bank +z180_dar0l equ z180_base + 23H ; dma0 dest addr lo +z180_dar0h equ z180_base + 24H ; dma0 dest addr hi +z180_dar0b equ z180_base + 25H ; dma0 dest addr bank +z180_bcr0l equ z180_base + 26H ; dma0 byte count lo +z180_bcr0h equ z180_base + 27H ; dma0 byte count hi +z180_mar1l equ z180_base + 28H ; dma1 memory addr lo +z180_mar1h equ z180_base + 29H ; dma1 memory addr hi +z180_mar1b equ z180_base + 2aH ; dma1 memory addr bank +z180_iar1l equ z180_base + 2bH ; dma1 i/o addr lo +z180_iar1h equ z180_base + 2cH ; dma1 i/o addr hi +z180_iar1b equ z180_base + 2dH ; dma1 i/o addr bank (z8s180) +z180_bcr1l equ z180_base + 2eH ; dma1 byte count lo +z180_bcr1h equ z180_base + 2fH ; dma1 byte count hi +z180_dstat equ z180_base + 30H ; dma status +z180_dmode equ z180_base + 31H ; dma mode +z180_dcntl equ z180_base + 32H ; dma/wait control +z180_il equ z180_base + 33H ; interrupt vector load +z180_itc equ z180_base + 34H ; int/trap control +; +z180_rcr equ z180_base + 36H ; refresh control +; +z180_cbr equ z180_base + 38H ; mmu common base register +z180_bbr equ z180_base + 39H ; mmu bank base register +z180_cbar equ z180_base + 3aH ; mmu common/bank area register +; +z180_omcr equ z180_base + 3eH ; operation mode control +z180_icr equ z180_base + 3fH ; i/o control register + +; +; +CLOCK_VALUE_CMR equ 00H ;For setting CPU clock speed +CLOCK_VALUE_CCR equ 00H ; " " +CNTLB0_VALUE equ 00H ; For setting final baud rate from clock +; +; (CMR) (CCR) (CNTLB0) Baud PHI ;These settings need to be checked! +; 00H 80H 20H 38,400 18.432 MHz ;Using 18.432MHz Oscillator +; 00H 00H 20H 19,200 9.2 MHz ;Using 18.432MHz Oscillator +; 00H 80H 00H 115,200 18.432 MHz ;Using 18.432MHz Oscillator +; +; 00H 00H 00H 57,600 9.2 MHz ;Setting for S100 Bus Interface +; +;======================================================================= +; BOOTSTRAP +; +; This code is begins at 0000H and is expected to get control upon +; CPU reset. It does minimal Z180 CPU initialization, then copy +; the monitor code to upper CPU RAM (F000H) and jump to it. +;======================================================================= +; + org 0000h +; +; Initialize Z180 +; + ; This code does *not* handle interrupts. Disable them and leave + ; them disabled. + im 1 + di +; + ; Set base for CPU I/O registers. + ; Do not use z180_icr equate from z180.inc because the ICR + ; is not yet at the running location. At reset, the Z180 + ; register base I/O address is zero, so initially, ICR is + ; at 3FH. + + ld a,z180_base + out0 (3Fh),a ; at reset, icr is at 3FH + +IF DIAGNOSTIC_MODE +; *** Test point #1 *** +; + ld a,'@' ; Put an '@' character on the S100 bus Propeller Console board + out0 (1),a ; if present/hooked up as a diagnostic +; +ENDIF + + xor a ; Disable refresh (not really required) + out0 (z180_rcr),a + ; To make PHI=Osc Input, set bit 7 of CCR + ; To make OHI=2X Osc Input, set bits 7 of CCR and CMR + ld a,CLOCK_VALUE_CMR ; 00H, Set clock speed,(normally 0H) + out0 (z180_cmr),a ; set CMR + ld a,CLOCK_VALUE_CCR ; 80H, (normally 80H, OSC=PHI) + out0 (z180_ccr),a ; set CCR + ; +; + ; set default wait states (super conservative for now) + ld a,0F0h ; +3 mem waits, +3 i/o waits + out0 (z180_dcntl),a +; + ; Setup Z180 MMU assuming physical memory is + ; 512KB ROM / 512KB RAM. CPU address spaces is split at + ; 32KB/32KB. The upper 32KB is mapped to the top 32KB of + ; physical memory (RAM). The lower 32KB is left mapped to + ; the lowest 32KB of memory (ROM), so we continue to run + ; from ROM at this point. + ld a,80h + out0 (z180_cbar),a ; setup for 32k/32k bank config + ld a,(1024 - 64) >> 2 + out0 (z180_cbr),a ; common base = last (top) bank +; + ; We have RAM now in upper 32K now. Initialize the stack + ; at top of CPU memory. + ld sp,mon_start - 10H ; now put stack at top of mem +; + ; Confirm RAM is working by pushing a value on the stack, then + ; popping the value to a different register and writing it to the + ; diagnostic LEDs +IF DIAGNOSTIC_MODE +; *** Test point #2 *** +; + ld b,'#' ; value to B + push bc ; push it + pop af ; pop into A + out0 (1),a ; Show all is OK if we have a Propeller IO board present +; +ENDIF + ; Copy monitor to RAM at F000H +; + ld hl,mon_img + ld de,mon_start + ld bc,mon_len + ldir +; +jp mon_start + + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;To clean up PROM for easy reading + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + Db 0,0 + +; Jump to monitor!!! +; + +; +;======================================================================= +; MONITOR +; +; This is the system moitor code that is intended to run from RAM at +; E000H. +;======================================================================= +; +mon_img equ $ ; start of monitor image +; + .phase mon_start ; running location for monitor +; +IF DIAGNOSTIC_MODE +; *** Test point #3 *** +; + ld a,'$' + out (1),a ; Show all is OK if we have a Propeller IO board present +; +ENDIF ; Configure the ASCI0 port see the above equates table + + ld a,64h ; xmit enable, rcv enable, 8 data bits, no parity + out0 (z180_cntla0),a + ld a,CNTLB0_VALUE ; 20H, Baud=19,200 @ 9.2 MHz + out0 (z180_cntlb0),a + ld a,60h ; dcd0 disable, cts0 disable + out0 (z180_asext0),a +; + ; Delay after ASCI setup (should not be needed) +; + ld b,0 + djnz $ + djnz $ +; + ; Select first bank of RAM into lower 32K of CPU memory. This is + ; where we abandon the physical ROM and switch to all RAM in the + ; CPU address space. +; + ld a,10h ; first physical bank of RAM + call bnksel ; do it +; +IF DIAGNOSTIC_MODE +; *** Test point #4 *** +; + ld a,'%' ; value to A + ld (0000h),a ; save at cpu address 0000H + xor a ; clear accum + ld a,(0000h) ; load value to A + out (1),a ; Show all is OK if we have a Propeller IO board present + +ENDIF + ; *** Add code as desired to setup Z180 zero page *** +; + ; At this point RAM is mapped to entire CPU address space. This is + ; the right place to setup lower RAM, if needed. However, nothing + ; needs to be done for the remainder of this sample code. +; +;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +; +; +BEGIN0: JP BEGIN ;JUMP OVER COMMAND TABLE + +TBL: DW FLUSH ;"@" SEND FF to LaserJet printer + DW MEMMAP ;"A" DISPLAY A MAP OF MEMORY + DW NOT_DONE ; "B" SWITCH CONTROL TO 68000 CPU + DW NOT_DONE ; "C" BOOT IN CP/M FROM 8" DISK WITH WITH ZFDC FDC + DW DISP ;"D" DISPLAY MEMORY (IN HEX & ASCII) + DW CHAR_TEST ;"E" ECHO CHAR IN TO CHAR OUT + DW FILL ;"F" FILL MEMORY WITH A CONSTANT + DW GOTO ;"G" GO TO [ADDRESS] + DW SHOW_DATE ;"H" SHOW CURRENT DATE + DW SHOW_TIME ;"I" SHOW CURRENT TIME + DW MEM_TEST ;"J" DESTRUCTIVE MEMORY TEST + DW KCMD ;"K" DISPLAY THE LIST OF MONITOR COMMANDS + DW ZVBOOT ; "L" BOOT IN CP/M FROM 8" DISK WITH VERSAFLOPPY II FDC + DW MOVE ; "M" MOVE BLOCK OF MEMORY (START,FINISH,DESTINATION) + DW S100_TESTS ;"N" Hardware tests for the S100 bus + DW UP8086 ; "O" SWITCH CONTROL TO 8088, 8086 or 80286. + DW HBOOTCPM ; "P" BOOT IN CPM FROM IDE HARD DISK + DW QUERY ;"Q" QUERY PORT (IN OR OUT) + DW INPORTS ;"R" Read ALL Input Ports + DW SUBS ;"S" SUBSTITUTE &/OR EXAMINE MEMORY + DW TYPE ;"T" TYPE ASCII PRESENT IN MEMORY (Same as D cmd except ASCII + DW HALT_CPU ;"U" SPARE + DW VERIFY ;"V" COMPARE MEMORY + DW SWITCH_8086 ; "W" INPUT Port ED (switched in 8086/80286) + DW XMODEM ;"X" DOWNLOAD A FILE FROM PC VIA XMODEM TO THIS S100 SYSTEM + DW IDE_SETUP ;"Y" IDE Menu for CF Card Board + DW SIZE ;"Z" FIND HIGHEST R/W RAM + + +BEGIN: DI ;No interrupts + XOR A ;SET INTERUPT TO PAGE 0H + LD I,A ;Z80 Interrupt page 0 + +SETUP_STACK: + LD SP,AHEAD-4 ;SETUP A FAKE STACK + JP MEMSZ1 ;RETURNS WITH TOP OF RAM IN [HL] + DW AHEAD ;A Return opcode will pick up this address +AHEAD: + PUSH HL ;Store it + POP IX + + LD SP,mon_start - 10H ;Put stack below monitor at 0EFF0H + LD HL,0 + ADD HL,SP + PUSH HL ;Store it for below + POP IY + +IF ST8C4 ;If S100_Parallel_IO Board for Printer output + LD A,08H ;Initilize the ST8C4 PC-Printer Port IO + OUT (PRINTER_CTRL),A +ELSE + LD A,0FFH ;IMSAI PIO Board. Clear Printer strobe, comes up 0 on a reset + OUT (PRINTER_STROBE),A +ENDIF + + ;We need to clear the 8259A otherewise the 8086 monitor sometimes hangs + LD A,MasterICW1 ;Initilize the 8259A PIC Controller (;EDGE triggered, 4 bytes, single Master,ICW4 needed) + OUT (MASTER_PIC_PORT),A + LD A,MasterICW2 ;Ints starts at 20H in RAM (IBM-PC uses 8X4 = 20H) + OUT (MASTER_PIC_PORT+1),A + LD A,MasterICW4 ;No slaves above, so 8259 does not expect ICW3 + out (MASTER_PIC_PORT+1),A + + LD A,11111111b ;Allow no interrupts to the 8259A with Z80. + out (MASTER_PIC_PORT+1),A + + + LD HL,SIGNON_MSG + CALL PRINT_STRING ;Have a Stack, so now we can use CALL + + LD HL,TOP_RAM_MSG ;Print Top of RAM + CALL PRINT_STRING + + PUSH IX ;Top of RAM is stored from above in [IX] + POP HL + CALL HL_ONLY ;Print HL/SP + + LD HL,SP_MSG ;Print Current Stack Location + CALL P_STRING + + PUSH IY ;SP is stored from above in [IY] + POP HL + CALL HL_ONLY ;Print HL/SP + + LD HL,IOBYTE_MSG ;Print Current IOBYTE value + CALL P_STRING + + IN0 A,(IOBYTE) ;Show IOBYTE. If bit 0=0 (force printer output), CMP/3 boot will hang + CALL ZBITS + CALL ZCRLF ;Then ZCRLF + + CALL ZCSTS ;CHECK IF GARBAGE AT KEYBOARD + CALL NZ,ZCI ;If so flush it + ; Echo input to output + + ;Initilize the S100Computers Serial Ports I/O Board + CALL INIT_SCC_A ;Initilize the Zilog 8530-A (XModem I/O) + CALL INIT_SCC_B ;Initilize the Zilog 8530-B (Speech synthizer) + ;Next initilize the 8255 on this same board + + LD A,AinBout8255cfg ;A input, B output, C(bits 0-3) output, (bits 4-7)input + OUT (PortCtrl_8255),A ;Config 8255 chip, Mode 0 + ;Note 8255 port C used for DLP-USP Port Chip Status + + LD HL,CR_SMSG_SP ;lets V-Stamp chip get baud rate + CALL SPEAK$ + + + +;-------THIS IS THE START ON THE MAIN MONITOR LOOP-------------------------------- + +ZSTART: LD DE,ZSTART + PUSH DE ;EXTRA UNBALANCED POP & [DE] WOULD END UP IN [PC] + CALL ZCRLF + LD C,'-' + CALL ZCO + LD C,'>' + CALL ZCO + +STARO: CALL TI ; Main loop. Monitor will stay here until cmd. + cp ESC ; escape? + jp z,echoz ; done if so + AND 7FH + JR Z,STARO + SUB '@' ;Commands @ to Z only + RET M + CP 1BH ;A-Z only + RET NC + ADD A,A + LD HL,TBL + ADD A,L + LD L,A + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + LD C,02H + JP (HL) ;JUMP TO THE COMMAND TABLE + + + +;>>>>>>>>>>>>>>>>>>>> MAIN CONSOLE ROUTINES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +; Print a single character in C to the primary CONSOLE PORT +; Will wait for serial output port to be ready. +; +ZCO: IN0 A,(IOBYTE) ;Charcter in C + AND A,1 + JR NZ,SERIAL_ZCO +S100_ZCO: + IN0 A,(CONSOLE_STATUS) ;S100 Bus PROPELLER CONSOLE I/O BOARD PORT + AND 4H + JR Z,S100_ZCO +; CALL DELAY + LD A,C + CP 07H ;IS IT A BELL + JR Z,BELL1 + CP 0H ;SD BOARD CANNOT TAKE A NULL! + RET Z + OUT0 (CONSOLE_OUT),A + RET ;RETURN CHARACTER SENT IN [A] + +BELL1: LD A,06H ;SEND A BELL + OUT0 (CONSOLE_OUT),A + LD A,0FH + CALL BELL_DELAY + LD A,07H + OUT0 (CONSOLE_OUT),A + LD A,C + RET + + +BELL_DELAY: + DEC A ;GENERAL COUNT DOWN TIME DELAY + RET Z ;LENGTH SET IN [A] + PUSH AF + LD A,05H +MORE: DEC A + PUSH AF + XOR A +MORE2: DEC A + JR NZ,MORE2 + POP AF + JR NZ,MORE + POP AF + JR BELL_DELAY +; +; +SERIAL_ZCO: ;;SC131 CIRCUIT SERIAL PORT + call outstat ; get output status + jr z,SERIAL_ZCO ; loop till ready +; CALL DELAY + out0 (z180_tdr0),C ; send character in C + ret ; done +; +; Check status of ASCI serial output. Returns non-zero (ZF cleared) +; if output register ready +; +outstat: + in0 a,(z180_stat0) ; get status + and 02h ; bit 1 set means ready + ret ; done +; +; +; +; +; Get a single character from the primary CONSOLE PORT and return +; it in A. Will wait for serial input port to have a char ready. +; + +ZCI: IN0 A,(IOBYTE) + AND A,1 + JR NZ,SERIAL_ZCI +S100_ZCI: + IN0 A,(CONSOLE_STATUS) ;NEED CONSTAT TO CLEAN UP SHIFT KEYS ETC + AND 02H + JR Z,S100_ZCI + IN0 A,(CONSOLE_IN) + AND 7FH ;7 bits only + RET +; +; +SERIAL_ZCI: + call SERIAL_ZCSTS ; get input status + jr z,SERIAL_ZCI ; loop till char ready + in0 a,(z180_rdr0) ; get it + ret ; done +; +; +; Check status of CONSOLE INPUT PORT. Returns non-zero (ZF cleared) +; if the input port has a character available. Note that Z180 ASCI +; will stall (stop reception) if a line error is detected. In order +; to ensure continuous reception, it is necessary to check for and +; clear line errors. +; +ZCSTS: IN0 A,(IOBYTE) + AND A,1 + JR NZ,SERIAL_ZCSTS +S100_ZCSTS: + IN0 A,(CONSOLE_STATUS) + AND 02H + JP Z,NOCHAR + XOR A + DEC A ;RETURN WITH 0FFH IN [A] IF SOMETHING + RET +NOCHAR: XOR A ;RETURN WITH 0 IN A IF NOTHING THERE + RET +; +; +SERIAL_ZCSTS: + in0 a,(z180_stat0) ; read stat reg + push af ; save status + and 70h ; parity, framing, or overrun error? + jr z,instat1 ; jump ahead if no errors + ; clear error(s) or nothing further can be received!!! + in0 a,(z180_cntla0) ; read CNTLA + res 3,a ; clear efr (error flag reset) + out0 (z180_cntla0),a ; write updated CNTLA +instat1: + pop af ; restore status value + and 80h ; data ready? + ret ; done +; +; +;DELAY: +; PUSH BC +; LD B,10 +; DJNZ $ +; POP BC +; RET + + + +;---------------------------- A COMMAND MEMORY MAP ------------------------------------------- + +;MEMORY MAP PROGRAM CF.DR.DOBBS VOL 31 P40. +;IT WILL SHOW ON CONSOL TOTAL MEMORY SUMMARY OF RAM,PROM, AND NO MEMORY + +MEMMAP: + CALL ZCRLF + LD HL,0 + LD B,1 +MAP1: LD E,'R' ;PRINT R FOR RAM + LD A,(HL) + CPL + LD (HL),A + CP (HL) + CPL + LD (HL),A + JR NZ,MAP2 + CP (HL) + JR Z,PRINT +MAP2: LD E,'p' +MAP3: LD A,0FFH + CP (HL) + JR NZ,PRINT + INC L + XOR A + CP L + JR NZ,MAP3 + LD E,'.' +PRINT: LD L,0 + DEC B + JR NZ,NLINE + LD B,16 + CALL ZCRLF + CALL HXOT4 +NLINE: LD A,SPACE + CALL OTA + LD A,E + CALL OTA + INC H + JR NZ,MAP1 + CALL ZCRLF + CALL ZCRLF + JP ZSTART + + +;16 HEX OUTPUT ROUTINE + +HXOT4: LD C,H + CALL HXO2 + LD C,L +HXO2: LD A,C + RRA + RRA + RRA + RRA + CALL HXO3 + LD A,C +HXO3: AND 0FH + CP 10 + JR C,HADJ + ADD A,7 +HADJ: ADD A,30H +OTA: PUSH BC + LD C,A + CALL ZCO ;SEND TO CONSOL + POP BC + RET + + +;----------------------- D COMMAND DISPLAY MEMORY IN HEX --------------------------------------- + +DISP: CALL EXLF ;GET PARAMETERS IN [HL],[DE] + LD A,L ;ROUND OFF ADDRESSES TO XX00H + AND 0F0H + LD L,A + LD A,E ;FINAL ADDRESS LOWER HALF + AND 0F0H + ADD A,10H ;FINISH TO END 0F LINE +SF172: CALL LFADR +SF175: CALL BLANK + LD A,(HL) + CALL ZHEXOUT + CALL HILOX + LD A,L + AND 0FH + JR NZ,SF175 + LD C,TAB ;INSERT A TAB BETWEEN DATA + CALL ZCO + LD B,4H ;ALSO 4 SPACES +TA11: LD C,SPACE + CALL ZCO + DJNZ TA11 + + LD B,16 ;NOW PRINT ASCII (16 CHARACTERS) + PUSH DE ;TEMPORLY SAVE [DE] + LD DE,0010H + SBC HL,DE + POP DE +T11: LD A,(HL) + AND 7FH + CP ' ' ;FILTER OUT CONTROL CHARACTERS' + JR NC,T33 +T22: LD A,'.' +T33: CP 07CH + JR NC,T22 + LD C,A ;SET UP TO SEND + CALL ZCO + INC HL + DJNZ T11 ;REPEAT FOR WHOLE LINE + JR SF172 + +BLANK: LD C,' ' + JP ZCO + + +;----------------------- N COMMAND S100 BUS TESTS --------------------------------------- + +S100_TESTS: + LD HL,S100_MENU + CALL PRINT_STRING + + CALL PCHK + CP '0' + JP Z,ROOL_ADDRESSES + CP '1' + JP Z,sOUT_TEST + CP '2' + JP Z,sINP_TEST + CP '3' + JP Z,CONSOLE_IO_TEST + CP '4' + JP Z,SPEECH_TEST + CP '5' + JP Z,MODEM_TEST + CP '6' + JP Z,PRINTER_TEST + CP ESC + JP Z,MENU_DONE + JP ERROR + +MENU_DONE: + CALL ZCRLF + CALL ZCRLF + RET + +ROOL_ADDRESSES: + LD HL,0 +HL_LOOP: + PUSH HL + CALL HL_ONLY + CALL ZSPACE + LD A,(HL) + CALL ZHEXOUT + CALL ZCRLF + POP HL + INC HL + CALL ZCSTS ; get input status + JR Z,HL_LOOP ; nothing + CALL ZCI ; loop till char ready + CP A,ESC ; Abort if ESC + JP Z,S100_TESTS ; done + JR HL_LOOP + +sOUT_TEST: + LD A,'3' + OUT (CONSOLE_OUT),A + JR sOUT_TEST + + +sINP_TEST: + IN0 A,(CONSOLE_IN) + PUSH AF + CALL ZHEXOUT + CALL ZSPACE + POP AF + CALL ZBITS + CALL ZCRLF + JR sINP_TEST + + +CONSOLE_IO_TEST: + LD HL,CONSOLE_TEST ;'Enter S100 bus keyboard char. ESC to abort ',0 + CALL PRINT_STRING +IN_TEST2: + CALL S100_ZCI + CP A,ESC + JP Z,S100_TESTS ; done + LD C,A + CALL S100_ZCO + JR IN_TEST2 + + + +SPEECH_TEST: + LD HL,SMSG_SP + CALL SPEAK$ + JP S100_TESTS ; done + + + +MODEM_TEST: + LD HL,CONSOLE_TEST ;'Enter S100 bus keyboard char. ESC to abort ',0 + CALL PRINT_STRING +MODEM_TEST1: + CALL S100_ZCSTS + JR Z,MODEM_TEST2 + CALL ZCI ;Get a keyboard character + LD C,A + CP A,ESC + JP Z,S100_TESTS ; done + CALL ZCO + CALL MODEM_ZCO + +MODEM_TEST2: + CALL MODEM_ZSTATUS + JP Z,MODEM_TEST1 + CALL MODEM_ZCI ;Get a character + LD C,A + CP A,ESC + JP Z,S100_TESTS ; done + CALL ZCO + CALL MODEM_ZCO + JP MODEM_TEST1 + + + +PRINTER_TEST: + LD HL,S100_MENU ; Print test menu +PRINTER_TEST1: + ld a,(hl) ; get next char + CP A,'$' ; Terminate with a '$' or 0H + JP Z,PRINTER_TEST2 + or a ; end of string? + JP Z,PRINTER_TEST2 + LD C,A + call LO ; print the char + inc hl ; bump to next char in string + jr PRINTER_TEST1 ; loop till done + +PRINTER_TEST2: + CALL FLUSH + RET + + + + + +;------------------------------ S COMMAND SUBSTITUTE AND / OR MODIFY MEMORY ---------------------- + +SUBS: LD C,1 + CALL HEXSP + POP HL +SF2E3: LD A,(HL) + CALL ZHEXOUT + LD C,'-' + CALL ZCO + CALL PCHK + RET C + JR Z,SF2FC + CP 5FH + JR Z,SF305 + PUSH HL + CALL EXF + POP DE + POP HL + LD (HL),E + LD A,B + CP CR + RET Z +SF2FC: INC HL +SF2FD: LD A,L + AND 07H + CALL Z,LFADR + JR SF2E3 +SF305: DEC HL + JR SF2FD + + + + +;-------------------------- F COMMAND FILL A BLOCK OF MEMORY WITH A VALUE ------------------------ + +FILL: CALL EXPR3 +SF1A5: LD (HL),C + CALL HILOX + JR NC,SF1A5 + POP DE + JP ZSTART + + +;---------------------------- G COMMAND GO TO A RAM LOCATION -------------------------------- + +GOTO: LD C,1 ;SIMPLE GOTO FIRST GET PARMS. + CALL HEXSP + CALL ZCRLF + POP HL ;GET PARAMETER PUSHED BY EXF + JP (HL) + + + +;-------------------------- Q COMMAND GET OR OUTPUT TO A PORT --------------------------------- + +QUERY: CALL PCHK + CP 'O' ;OUTPUT TO PORT + JR Z,OUT_PORT + CP 'I' ;INPUT FROM PORT + JP Z,IN_PORT + LD C,'*' + JP ZCO ;WILL ABORT IF NOT 'I' OR 'O' + +IN_PORT: + LD C,1 ;IN Port + CALL HEXSP + POP BC + IN A,(C) + JP ZBITS +; +OUT_PORT: + CALL HEXSP ;OUT Port + POP DE + POP BC + OUT (C),E + RET + + + +;-------------------------- U COMMAND HALT the Z180 CPU --------------------------------- + +HALT_CPU: + LD HL,HALT_MSG + CALL PRINT_STRING ;Print message up to '$' + HALT + + +;------THIS IS THE MAIN ROUTINE TO GET THE TIME DATA FROM THE CMOS-RTC Chip on the MSDOS Support Board + +SHOW_TIME: + LD HL,TIME_MSG + CALL PRINT_STRING ;Print message up to '$' + CALL READ_TIME + RET + +SHOW_DATE: + LD HL,DATE_MSG + CALL PRINT_STRING ;Print message up to '$' + CALL READ_DATE + RET + + +;------------------------------------------------------------------------------------- +READ_TIME: + CALL UPD_IN_PR ;CHECK FOR UPDATE IN PROCESS + JP NC,RTC_2A ;GO AROUND IF OK + JP ERROR ;IF ERROR + +RTC_2A: LD E,-2 ;-2 goes to 0 for PORT_INC_2 + CALL PORT_INC_2 ;SET ADDRESS OF SECONDS + IN0 A,(CMOS_PORT+1) ;Get BCD value returned + LD D,A ;SAVE IN D + CALL PORT_INC_2 ;SET ADDRESS OF MINUTES + IN0 A,(CMOS_PORT+1) ;Get BCD value returned + LD C,A ;SAVE IN C + CALL PORT_INC_2 ;SET ADDRESS OF HOURS + IN0 A,(CMOS_PORT+1) ;Get BCD value returned + LD B,A ;SAVE + LD E,0 ;SET E TO ZERO + CALL DisplayTime ;<<<<<<<<<<<<<< + CALL ZCRLF + CALL ACTIVATE_CLOCK + RET + +;Display time +; Arrive with B = HOURS IN BCD +; C = Minutes in BCD +; D = Seconds in BCD +DisplayTime: + PUSH HL + PUSH DE + PUSH BC + LD A,B + CALL PRINT_BCD ;Hours. Convert BCD to ASCII + LD C,':' + CALL ZCO + POP BC + LD A,C + CALL PRINT_BCD ;Minutes. Convert BCD to ASCII + LD C,':' + CALL ZCO + POP DE + LD A,D + CALL PRINT_BCD ;Seconds. Convert BCD to ASCII + POP HL + RET + +;------------------------------------------------------------------------------------------- +READ_DATE: + CALL UPD_IN_PR + JP NC,RTC_4A + JP ERROR ;ON ERROR + +RTC_4A: LD E,6 + CALL PORT_INC ;POINT TO DAY + IN0 A,(CMOS_PORT+1) + LD B,A ;SAVE IN A + CALL PORT_INC ;POINT TO MONTH + IN0 A,(CMOS_PORT+1) + LD D,A ;SAVE IN D + CALL PORT_INC ;POINT TO YEAR + IN0 A,(CMOS_PORT+1) + LD C,A ;SAVE IN C + LD E,31H ;POINT TO CENTURY BYTE SAVE AREA + CALL PORT_INC ; + IN0 A,(CMOS_PORT+1) ;GET VALUE + LD E,B ;GET DAY BACK + LD B,A + CALL DisplayDate + CALL ZCRLF + CALL ACTIVATE_CLOCK + RET ;FINISHED + + +;Display date +; Return B = CENTURY IN BCD +; C = Year in BCD +; D = Month in BCD +; E = Day in BCD +DisplayDate: + PUSH HL + PUSH DE + PUSH DE + PUSH BC + LD A,20H ;<--20 + CALL PRINT_BCD ;Century (19/20). Convert BCD to ASCII + POP BC + LD A,C + CALL PRINT_BCD ;Year. Convert BCD to ASCII + LD C,'/' + CALL ZCO + POP DE + LD A,D + CALL PRINT_BCD ;Month. Convert BCD to ASCII + LD C,'/' + CALL ZCO + POP DE + LD A,E + CALL PRINT_BCD ;Day. Convert BCD to ASCII + POP HL + CALL ACTIVATE_CLOCK + RET + + +ACTIVATE_CLOCK: + LD A,0AH + OUT0 (CMOS_PORT),A + LD A,0AAH + OUT0 (CMOS_PORT+1),A + RET + + +PRINT_BCD: ;Print BCD in [A] + PUSH AF + PUSH AF + RRA + RRA + RRA + RRA + AND A,0FH + ADD A,30H + LD C,A ;Write high byte mins to CRT + CALL ZCO + POP AF + AND A,0FH + ADD A,30H + LD C,A + CALL ZCO + POP AF + RET + + +UPD_IN_PR: ;Check we are ready to read clock + PUSH BC + LD BC,8000 ;SET LOOP COUNT +UPDATE: LD A,0AH ;ADDRESS OF [A] REGISTER + OUT0 (CMOS_PORT),A + NOP + NOP + NOP + IN0 A,(CMOS_PORT+1) ;READ IN REGISTER [A] + AND A,80H ;IF 8XH--> UIP BIT IS ON (CANNOT READ TIME) + JP Z,UPD_IN_PREND ;Are we ready/done + DEC BC + LD A,C + OR A,B + JP NZ,UPDATE ;Try again + XOR A,A ; + SCF ;SET CARRY FOR ERROR + POP BC + RET +UPD_IN_PREND: + XOR A,A ;Clear Carry + POP BC + RET ;RETURN + + +PORT_INC: + LD A,E + INC A ;INCREMENT ADDRESS + LD E,A + OUT0 (CMOS_PORT),A + RET + + +PORT_INC_2: + LD A,E + ADD 2 ;INCREMENT ADDRESS + LD E,A + OUT0 (CMOS_PORT),A + RET + + +;--------------------- J COMMAND MEMORY TEST --------------------------------- + +MEM_TEST: + LD HL,MEM_TEST_MSG ;Memory test + CALL PRINT_STRING + LD HL,0DF00H + LD E,00H + LD D,01H + LD B,0H ;256 loops +MEM_LOOP: + LD (HL),00H ;Fill RAM with 0's + DEC HL + LD A,L + OR A,H + JR NZ,MEM_LOOP + + LD HL,0DF00H ;Next check and change to 1's.... + LD E,00H + LD D,01H +MEM_LOOP1: + PUSH AF + PUSH BC + CALL ZPRINT_HL + LD A,E + CALL ZHEXOUT ;Print address and value + CR + CALL ZSPACE + LD C,CR + CALl ZCO + POP BC + POP AF + + LD A,(HL) + CP A,E + CALL NZ,RAM_ERROR + LD (HL),D + DEC HL + LD A,L + OR A,H + JR NZ,MEM_LOOP1 + + CALL ZCRLF + LD HL,0DF00H + INC E + INC D + DEC B ;Do 256 tests + JR NZ,MEM_LOOP1 + JP BEGIN + +RAM_ERROR: + PUSH HL + LD HL,MEM_ERR_MSG ;Memory error + CALL PRINT_STRING + POP HL + CALL ZPRINT_HL + CALL ZCRLF + RET + + + + + +;---------------------- M COMMAND MOVE A BLOCK OF MEMORY TO ANOTHER LOCATION ------------------- + +MOVE: CALL EXPR3 +SF21E: LD A,(HL) + LD (BC),A + INC BC + CALL HILOX + JR SF21E + + + +;----------------------V COMMAND VERIFY ONE BLOCK OF MEMORY WITH ANOTHER ---------------------- + +VERIFY: CALL EXPR3 +VERIO: LD A,(BC) + CP (HL) + JR Z,SF78E + PUSH BC + CALL CERR + POP BC +SF78E: INC BC + CALL HILOX + JR VERIO + RET +; +CERR: LD B,A + CALL ZPRINT_HL + LD A,(HL) + CALL ZHEXOUT + CALL BLANK + LD A,B + CALL ZHEXOUT + JP ZCRLF + + + +;-------------------- E COMMAND CHECK ECHO CHAR IN TO CHAR OUT -------------------------------- + +CHAR_TEST: + LD HL,CHAR_TEST_MSG ;Keyboard test + CALL PRINT_STRING +CHAR_TEST1: + CALL ZCI ;Routeen to check keyboard etc. + CP ESC ;Loop until ^C or ESC + RET Z + CP 'Z'-40H + RET Z + LD C,A + CALL ZCO + JR CHAR_TEST + + + +;----------------- T COMMAND READ ASCII FROM MEMORY -------------------------------------- + +TYPE: CALL EXLF +SF30B: CALL LFADR + LD B,56 +SF310: LD A,(HL) + AND 7FH + CP SPACE + JR NC,SF319 +SF317: LD A,2EH +SF319: CP 7CH + JR NC,SF317 + LD C,A + CALL ZCO + CALL HILOX + DJNZ SF310 + JR SF30B + + +;---------------------- R COMMAND Display all active IO inputports in the system ---------------------- +; +INPORTS:CALL ZCRLF + LD B,0 ;Now loop through all ports (0-FF) + LD D,6 ;Display 6 ports across + LD E,0FFH ;Will contain port number +LOOPIO: LD C,E + LD A,E + CP A,SW_TMA0 ;Inputting here will switch out the Z80 to 8086/80286 + JR Z,SKIP ;Skip because we don't want that right now + CP SOUT_PORT + JR Z,SKIP +; + IN A,(C) ;Remember [ZASMB does not work with this opcode,SLR is OK] + CP A,0FFH ;No need for 0FF's + JR Z,SKIP + LD H,A ;store port data in H for below + LD A,E ;Need to print port # first + CALL ZHEXOUT ;Print port number + LD C,'-' + CALL ZCO + LD C,'>' + CALL ZCO + LD A,H ;get back port data + CALL ZHEXOUT ;print it + LD C,TAB + CALL ZCO + DEC D ;6 ports per line + JR NZ,SKIP + LD D,6 + CALL ZCRLF +SKIP: DEC E ;Next Port + DJNZ LOOPIO + CALL ZCRLF + RET + +;----------------- K COMMAND PRINT MAIN MONITOR MENU ON CRT --------------------------- + +KCMD: LD HL,SIGNON_MSG ;Signon Msg again (K Command) + CALL PRINT_STRING + LD HL,SMSG_SP ;Signon speech message + CALL SPEAK$ + LD HL,MENUMSG ;Then Menu Message + JP PRINT_STRING + + + + + +;---------------------- X COMMAND XMODEM --------------------------------------------------- + +;This routine will download any XMODEM formatted data from a file on a PC over teh USB port. +;If the USB port is NOT also also used console I/O progress of the download will appear on the screen. +;If the USB port is ALSO used for console I/O no progress is shown until the download is complete. + +XMODEM: + LD HL,MODEM_SIGNON ;Send Modem signon message + CALL PRINT_STRING + + LD HL,0 ;SP to HL + ADD HL,SP + LD DE,40H ;Drop 40H bytes below to be safe + SBC HL,DE + PUSH HL + POP IX ;Will store data below in RAM 40H bytes below SP to be safe + + XOR A,A ;Initilize flags + LD (IX+RECVD_SECT_NO),A + LD (IX+SECTNO),A + LD (IX+ERRCT),A + + LD HL,MODEM_RAM_LOC ;Get RAM location for where to place code + CALL PRINT_STRING + LD C,1 + CALL ZGET_HL ;Get 16 bit value, put on stack + POP IY ;DMA Value now in IY + CALL ZCRLF + + CALL INIT_SCC_A ;INITITIALIZE THE SCC SERIAL PORT A + + LD B,1 ;TIMEOUT DELAY + CALL MODEM_ZCI ;GOBBLE UP GARBAGE CHARS FROM THE LINE + + + +RECV_LOOP: ;<------- MAIN RECIEVE LOOP + XOR A,A ;GET 0 + LD (IX+ERRCT),A ;INITIAL ERROR COUNT SET TO 0 +RECV_HDR: + LD HL,RMSG + CALL PRINT_STRING ;Skip print if USB port is also console + LD A,(IX+SECTNO) ;Get current sector number + INC A + CALL LBYTE ;Show Sector Number on Console if USB port is NOT also console + + LD HL,MODEM_RAM_MSG ;"H. IF OK, will write to RAM location" + CALL P_STRING + PUSH IY + POP HL ;IY to HL + CALL LADR ;Show DMA Address if USB port is NOT also console + CALL ZCRLF + + LD B,5 ;5 SEC TIMEOUT + CALL MODEM_ZCI + JP NC,RHNTO ;IF ALL OK (NO TIMEOUT), THEN DROP DOWN TO RHNTO TO GET DATA + +RECV_HDR_TIMEOUT: + CALL TOUT ;PRINT TIMEOUT + +RECV_SECT_ERR: ;PURGE THE LINE OF INPUT CHARS + LD B,1 ;1 SEC W/NO CHARS + CALL MODEM_ZCI + JP NC,RECV_SECT_ERR ;LOOP UNTIL SENDER DONE + LD A,NAK + CALL MODEM_ZCO ;SEND NAK + + LD A,(IX+ERRCT) + INC A + LD (IX+ERRCT),A + CP A,MODEM_ERR_LIMIT + JP C,RECV_HDR + + CALL CHECK_FOR_QUIT + JP Z,RECV_HDR + LD HL,BAD_HEADER_MSG + CALL PRINT_STRING + JP BEGIN + + +RHNTO: CP A,SOH ;GOT CHAR - MUST BE SOH + JP Z,GOT_SOH ;Z IF OK + OR A,A ;00 FROM SPEED CHECK? + JP Z,RECV_HDR + CP A,EOT + JP Z,GOT_EOT + ;DIDN'T GET SOH - + CALL LBYTE ;Print [A] on console + LD HL,ERRSOH + CALL PRINT_STRING + JP RECV_SECT_ERR + +GOT_SOH: + LD B,1 + CALL MODEM_ZCI + JP C,RECV_HDR_TIMEOUT + LD D,A ;D=BLK # + LD B,1 + CALL MODEM_ZCI ;GET CMA'D SECT # + JP C,RECV_HDR_TIMEOUT + CPL + CP A,D ;GOOD SECTOR #? + JP Z,RECV_SECTOR + + LD HL,ERR2 ;GOT BAD SECTOR # + CALL PRINT_STRING + JP RECV_SECT_ERR + + +RECV_SECTOR: ;Sector is OK, so read data and place in RAM + LD A,D ;GET SECTOR # + LD (IX+RECVD_SECT_NO),A + LD C,0 ;INIT CKSUM + LD E,80H ;Sector Byte Count + PUSH IY + POP HL ;DMA address (IY) to HL + +RECV_CHAR: + LD B,1 ;1 SEC TIMEOUT + CALL MODEM_ZCI ;GET CHAR + JP C,RECV_HDR_TIMEOUT + LD (HL),A ;STORE CHAR + INC HL + DEC E ;Next sector byte + JP NZ,RECV_CHAR + + ;VERIFY CHECKSUM + LD D,C ;SAVE CHECKSUM + LD B,1 ;TIMEOUT + CALL MODEM_ZCI ;GET CHECKSUM + JP C,RECV_HDR_TIMEOUT + CP A,D ;CHECK + JP NZ,RECV_CKSUM_ERR + + ;GOT A SECTOR, WRITE IF = 1+PREV SECTOR + LD A,(IX+RECVD_SECT_NO) + LD B,A ;SAVE IT + LD A,(IX+SECTNO) ;GET PREV + INC A ;CALC NEXT SECTOR # + CP B ;MATCH? + JP NZ,DO_ACK + LD (IX+SECTNO),A ;UPDATE SECTOR # +DO_ACK: LD A,ACK + CALL MODEM_ZCO + + PUSH HL ;ALL OK SO SAVE DMA Address in IY + POP IY + JP RECV_LOOP ;Back to Top recieve loop + +RECV_CKSUM_ERR: + LD HL,ERR3 + CALL PRINT_STRING + JP RECV_SECT_ERR + +GOT_EOT: + LD A,ACK ;ACK THE EOT + CALL MODEM_ZCO + JP XFER_CPLT + + +TOUT: LD HL,TOUTM ;PRINT TIMEOUT MESSAGE + CALL PRINT_STRING + LD A,(IX+ERRCT) + CALL LBYTE + CALL ZCRLF + RET + + +CHECK_FOR_QUIT: ;MULTIPLE ERRORS, ASK IF TIME TO QUIT + XOR A,A ;GET 0 + LD (IX+ERRCT),A ;RESET ERROR COUNT + LD HL,QUITM + CALL PRINT_STRING + +CI3: IN0 A,(CONSOLE_STATUS) ;NEED CONSTAT TO CLEAN UP SHIFT KEYS ETC + AND A,02H + JP Z,CI3 + IN0 A,(CONSOLE_IN) + AND A,7FH + PUSH AF ;SAVE CHAR + CALL ZCRLF + POP AF + CP A,'R' + RET Z ;RETURN IF RETRY + CP A,'r' + RET Z + CP A,'Q' ;QUIT? + JP NZ,LCQ + OR A,A ;TURN OFF ZERO FLAG + RET +LCQ: CP A,'q' + JP NZ,CHECK_FOR_QUIT + OR A,A ;TURN OFF ZERO FLAG + RET + +XFER_CPLT: ;DONE - CLOSE UP SHOP + LD HL,MODEM_DONE_MSG + CALL PRINT_STRING + JP ZSTART + + +;-----------------------Y IDE Menu --------------------------------------------------- + +IDE_SETUP: + LD HL,0100H ;Default DMA address + LD (@RAM_ADDRESS),HL + XOR A + LD (@SEC),A + LD (@TRK+1),A + LD (@TRK),A + CALL WRITE_DRIVE_LBA ;Update Drive + LD A,0FFH + LD (@DisplayFlag),A ;Always display contents + +IDE_MENU1: + LD HL,1 + LD (@SEC_COUNT),HL +IDE_MENU: + CALL PRINT_TRK_SEC ;Show current Track & Sector + + LD HL,IDE_MENU4_MSG ;Menu + CALL PRINT_STRING + + CALL PCHK + CP '0' + JP Z,INITILIZE_IDE ;Initilize drive + CP '1' + JP Z,SET_LBA ;Set track/Sector + CP '2' + JP Z,SET_DMA_ADDRESS ;Set Location in RAM to read/write sector data + CP '3' + JP Z,READ_IDE_SEC ;Read Current Sector + CP '4' + JP Z,WRITE_IDE_SEC ;Write to Current Sector + CP '5' + JP Z,READ_N_IDE_SEC + CP '6' + JP Z,WRITE_N_IDE_SEC + CP '7' + JP Z,GOTO_NEXT + CP '+' + JP Z,GOTO_NEXT + CP ESC + JP Z,MENU_DONE + JP ERROR + +;------------------------------------------------------ +INITILIZE_IDE: + CALL IDEInit + JP C,IDE_MENU + LD HL,INIT_OK + CALL PRINT_STRING + JP IDE_MENU + + +IDEinit: ;Initilze the 8255 and drive then do a hard reset on the drive, + LD A,RDcfg8255 ;Config 8255 chip (10010010B), read mode on return + OUT0 (IDECtrl),A ;Config 8255 chip, READ mode + + ;Hard reset the disk drive + ;For some reason some CF cards need to the RESET line + ;pulsed very carefully. You may need to play around + LD A,IDEreset ;with the pulse length. Symptoms are: incorrect data comming + OUT0 (IDECport),A ;back from a sector read (often due to the wrong sector being read) + ;I have a (negative)pulse of 60 uSec. (10Mz Z80, two IO wait states). + + LD C,IDE_Reset_Delay ;~60 uS seems to work for the 5 different CF cards I have +ResetDelay: + DEC C + JP NZ,ResetDelay ;Delay (reset pulse width) + XOR A + OUT0 (IDECport),A ;No IDE control lines asserted (just bit 7 of port C) + + CALL DELAY_15 ;Need to delay a little before checking busy status + +IDEwaitnotbusy: ;Drive READY if 01000000 + LD B,0FFH + LD C,080H ;Delay, must be above 80H for 4MHz Z80. Leave longer for slower drives +MoreWait: + LD E,REGstatus ;Wait for RDY bit to be set + CALL IDErd8D + LD A,D + AND 11000000B + XOR 01000000B + JR Z,DoneNotbusy + DJNZ MoreWait + DEC C + JR NZ,MoreWait + LD HL,INIT_ERR + CALL PRINT_STRING + SCF ;Set carry to indicate an error + RET +DoneNotBusy: + LD A,1 + OR A ;Clear carry it indicate no error + RET + +DELAY_15: + LD A,40 ;DELAY ~15 MS +DELAY1: LD B,0 +M0: DJNZ M0 + DEC A + JR NZ,DELAY1 + RET + +PRINT_TRK_SEC + LD HL,IDE_MENU0_MSG ;Track=$' + CALL PRINT_STRING + LD HL,(@TRK) + CALL HL_ONLY + LD HL,IDE_MENU1_MSG ;H Sector= + CALL P_STRING + LD A,(@SEC) + CALL ZHEXOUT + + LD HL,IDE_MENU3_MSG ;H RAM Address= + CALL P_STRING + LD HL,(@RAM_ADDRESS) + CALL HL_ONLY + LD HL,H_MSG ;H. + CALL P_STRING + RET + +;----------------------------------------- +SET_LBA: ;Set the logical block address + LD HL,GET_LBA_MSG + CALL PRINT_STRING + CALL GET_DRIVE_LBA ;Get new CPM style Track & Sector number and put them in RAM at @SEC & @TRK + JR C,main3b ;Ret C set if abort/error + CALL WRITE_DRIVE_LBA ;Update LBA on drive +main3b: CALL ZCRLF + JP IDE_MENU + + +;----------------------------------------- +SET_DMA_ADDRESS + LD HL,GET_DMA_MSG + CALL PRINT_STRING +; CALL ZGET_HL ;Not clear why this returns incorrect values + CALL GETHEX ;get 2 HEX digits + JP C,IDE_MENU + LD (@RAM_ADDRESS+1),A + CALL GETHEX ;get 2 more HEX digits + JP C,IDE_MENU + LD (@RAM_ADDRESS),A + JP IDE_MENU + + +;------------------------------------------- +GOTO_NEXT: + CALL BUMP_SECTOR ;Advance one sector + JP IDE_MENU + + +;------------------------------------------- +READ_N_IDE_SEC: + LD HL,ENTER_SEC_COUNT + CALL PRINT_STRING + CALL GETHEX ;get 2 HEX digits + LD HL,0 + LD L,A + LD (@SEC_COUNT),HL + +MORE_RD_SEC: + CALL READSECTOR + + JR Z,main1b_N ;Z means the sector read was OK + CALL ZCRLF + JP IDE_MENU ;Was an error, don't display data + +main1b_N: + CALL PRINT_TRK_SEC + LD HL,msgrd ;Sector read OK + CALL PRINT_STRING + LD HL,(@SEC_COUNT) + DEC HL + LD (@SEC_COUNT),HL + LD A,L + OR A + JP Z,IDE_MENU1 + CALL BUMP_SECTOR ;Bump TRK, SEC, DMA + JR MORE_RD_SEC + + +;------------------------------------------- +READ_IDE_SEC: ;Read Sector @ LBA to the RAM buffer + LD HL,READING_MSG ;Sector read to @RAM_ADDRESS + CALL PRINT_STRING + + CALL READSECTOR + + JR Z,main1b ;Z means the sector read was OK + CALL ZCRLF + JP IDE_MENU ;Was an error, don't display data + +main1b: LD HL,msgrd ;Sector read OK + CALL PRINT_STRING + + LD A,(@DisplayFlag) ;Do we have detail sector data display flag on or off + OR A ;NZ = on + JP Z,IDE_MENU + LD HL,(@RAM_ADDRESS) + CALL HEXDUMP ;Show sector data at @RAM_ADDRESS + CALL ZCRLF + JP IDE_MENU + + ;Read a sector, specified by the 3 bytes in LBA + ;Z on success, NZ call error routine if problem +READSECTOR: + CALL WRITE_DRIVE_LBA + + CALL IDEwaitnotbusy ;make sure drive is ready + JP C,SHOWerrors ;Returned with NZ set if error + + LD D,COMMANDread + LD E,REGcommand + CALL IDEwr8D ;Send sec read command to drive. + CALL IDEwaitdrq ;wait until it's got the data + JP C,SHOWerrors + + LD HL,(@RAM_ADDRESS) ;DMA address + LD B,0 ;Read 512 bytes to [HL] (256X2 bytes) +MoreRD16: + LD A,REGdata ;REG regsiter address + OUT0 (IDECport),A + + OR A,IDErdline ;08H+40H, Pulse RD line + OUT0 (IDECport),A + + IN0 A,(IDEAport) ;Read the lower byte first (Note very early versions had high byte then low byte + LD (HL),A ;this made sector data incompatable with other controllers). + INC HL + + IN0 A,(IDEBport) ;THEN read the upper byte + LD (HL),A + INC HL + + LD A,REGdata ;Deassert RD line + OUT0 (IDECport),A + DJNZ MoreRD16 + + LD (@NEXT_ADDRESS),HL ;For multi sec read + LD E,REGstatus + CALL IDErd8D + LD A,D + AND A,1H + CALL NZ,SHOWerrors ;If error display status + RET + + +SHOWerrors: + LD HL,DRIVE_ERRORS + CALL PRINT_STRING + LD A,D + CALL ZBITS + CALL ZCRLF + OR A ;Set NZ flag + SCF ;Set Carry Flag + RET + + +BUMP_SECTOR: ;For multi sec read/writes + LD HL,(@NEXT_ADDRESS) + LD (@RAM_ADDRESS),HL ;DMA address + + ld hl,(@SEC) + inc hl + ld (@SEC),hl + ld a,L ;0 to 62 CPM Sectors + cp MAXSEC-1 + RET nz + + ld hl,0 ;Back to CPM sector 0 + ld (@SEC),hl + ld hl,(@TRK) ;Bump to next track + inc hl + ld (@TRK),hl + RET + + + + +;------------------------------------------- +WRITE_N_IDE_SEC: + LD HL,ENTER_SEC_COUNT + CALL PRINT_STRING + CALL GETHEX ;get 2 HEX digits + LD HL,0 + LD L,A + LD (@SEC_COUNT),HL + +MORE_WR_SEC: + CALL WRITESECTOR + + JR Z,main3b_N ;Z means the sector read was OK + CALL ZCRLF + JP IDE_MENU ;Was an error, don't display data + +main3b_N: + CALL PRINT_TRK_SEC + LD HL,msgwr ;Sector write OK + CALL PRINT_STRING + LD HL,(@SEC_COUNT) + DEC HL + LD (@SEC_COUNT),HL + LD A,L + OR A + JP Z,IDE_MENU1 + CALL BUMP_SECTOR ;Bump TRK, SEC, DMA + JR MORE_WR_SEC + + + +;------------------------------------------- +WRITE_IDE_SEC: + ld HL,Write_Sure ;Are you sure? + call PRINT_STRING + call ZCI + call TO_UPPER + LD C,A ;Print response + CALL ZCO + CP 'Y' + PUSH AF + CALL ZCRLF + POP AF + jp nz,IDE_MENU + CALL ZCRLF + + call WRITESECTOR + + jr z,main2b ;Z means the sector write was OK + call ZCRLF + jp IDE_MENU + +main2b: ld HL,msgwr ;Sector written OK + call PRINT_STRING + CALL ZCRLF + JP IDE_MENU + + ;Write a sector, specified by the 3 bytes in LBA + ;Z on success, NZ to error routine if problem +WRITESECTOR: + CALL WRITE_DRIVE_LBA + + call IDEwaitnotbusy ;Make sure drive is ready + jp c,SHOWerrors + + ld d,COMMANDwrite + ld e,REGcommand + call IDEwr8D ;tell drive to write a sector + call IDEwaitdrq ;wait unit it wants the data + jp c,SHOWerrors + + ld hl,(@RAM_ADDRESS) + ld b,0 ;256X2 bytes + + ld a,WRcfg8255 + out0 (IDECtrl),a + +MoreWR16: + ld a,(hl) + inc hl + out0 (IDEAport),a ;Write the lower byte first (Note early versions had high byte then low byte + ld a,(hl) ;this made sector data incompatible with other controllers). + inc hl + out0 (IDEBport),a ;THEN High byte on B + ld a,REGdata + push af + out0 (IDECport),a ;Send write command + or IDEwrline ;Send WR pulse + out0 (IDECport),a + pop af + out0 (IDECport),a + DJNZ MoreWR16 + + ld a,RDcfg8255 ;Set 8255 back to read mode + out0 (IDECtrl),a + + LD (@NEXT_ADDRESS),HL ;For multi sec read + ld e,REGstatus + call IDErd8D + ld a,D + and A,1H + call nz,SHOWerrors ;If error display status + RET + + + +GET_DRIVE_LBA: ;Get CPM style Track# & Sector# data and convert to LBA format + LD HL,ENTER_SECL ;Enter sector number + CALL PRINT_STRING + CALL GETHEX ;get 2 HEX digits + RET C + LD (@SEC),A ;Note: no check data is < MAXSEC, sectors start 0,1,2,3.... + + LD HL,ENTER_TRKH ;Enter high byte track number + CALL PRINT_STRING + CALL GETHEX ;get 2 HEX digits + RET C + LD (@TRK+1),A + + LD HL,ENTER_TRKL ;Enter low byte track number + CALL PRINT_STRING + CALL GETHEX ;get 2 more HEX digits + RET C + LD (@TRK),A + CALL ZCRLF + XOR A + OR A ;To return NC + RET + + +WRITE_DRIVE_LBA: ;Write the logical block address to the drive's registers + ;Note we do not need to set the upper nibble of the LBA + ;It will always be 0 for these small drives + LD A,(@SEC) ;LBA mode Low sectors go directly + INC A ;Sectors are numbered 1 -- MAXSEC (even in LBA mode) + LD (@DRIVE$SEC),A ;<<<<< For Diagnostic Display Only + LD D,A + LD E,REGsector ;Send info to drive + CALL IDEwr8D ;Note: For drive we will have 0 - MAXSEC sectors only + + LD HL,(@TRK) + LD A,L + LD (@DRIVE$TRK),A + LD D,L ;Send Low TRK# + LD E,REGcylinderLSB + CALL IDEwr8D + + LD A,H + LD (@DRIVE$TRK+1),A + LD D,H ;Send High TRK# + LD E,REGcylinderMSB + CALL IDEwr8D + + LD D,1 ;For now, one sector at a time + LD E,REGseccnt + CALL IDEwr8D + RET + + + +IDEwaitdrq: + LD B,0FFH + LD A,0FFH ;Delay, must be above 80H for 4MHz Z80. Leave longer for slower drives + LD (@DELAYStore),A + +MoreDRQ: + LD E,REGstatus ;wait for DRQ bit to be set + CALL IDErd8D + LD A,D + AND A,10001000B + CP A,00001000B + JR Z,DoneDRQ + DEC B + JR NZ,MoreDRQ + LD A,(@DELAYStore) ;Check timeout delay + DEC A + LD (@DELAYStore),A + JR NZ,MoreDRQ + SCF ;Set carry to indicate error + RET +DoneDRQ: + OR A ;Clear carry + RET + + + +HEXDUMP: ;Print a hexdump of the data in the 512 byte buffer @[HL] + PUSH AF ;Save everything + PUSH BC + PUSH DE + PUSH HL + +NEXT_SECTOR: + CALL ZCRLF ;CR/LF first + LD D,32 ;Print 32 lines total + LD B,16 ;16 characters across + LD (@StartLineHex),HL ;Save the buffer location (@RAM_ADDRESS++) for ASCII display below + LD HL,0 + LD (@BYTE$COUNT),HL + +SF172X: CALL ZCRLF + LD HL,(@BYTE$COUNT) + LD A,H + CALL ZHEXOUT ;Print byte count in sector + LD A,L + CALL ZHEXOUT + + PUSH DE + LD DE,16 + ADD HL,DE + LD (@BYTE$COUNT),HL ;store for next time + POP DE + + CALL ZSPACE + LD HL,(@StartLineHex) + LD (@StartLineASCII),HL ;Store for ASCII display below +SF175X: LD A,(HL) + CALL LBYTE ;Display [A] on CRT/LCD + INC HL + DJNZ SF175X +; + LD (@StartLineHex),HL ;Save for next line later + CALL ShowAscii ;Now translate to ASCII and display + LD B,16 ;16 characters across for next line + DEC D + JP NZ,SF172X ;Have we done all 32 lines +; + CALL ZCRLF + POP HL ;Get back origional registers + POP DE + POP BC + POP AF + RET + + +ShowAscii: ;Now show as ascii info + LD HL,(@StartLineASCII) + LD B,16 ;16 ASCII characters across +XF172: CALL ZSPACE ;send a space character + CALL ZSPACE +XF175: LD A,(HL) + AND A,7FH + CP A,' ' ;FILTER OUT CONTROL CHARACTERS + JR NC,XT33 +XT22: LD A,'.' +XT33: CP A,07CH + JR NC,XT22 + LD C,A ;SET UP TO SEND + PUSH BC + CALL ZCO + POP BC + INC HL ;Next position in buffer + DJNZ XF175 + RET +; + +;------------------------------------------------------------------ +; Low Level 8 bit R/W to the drive controller. These are the routines that talk +; directly to the drive controller registers, via the 8255 chip. +; Note the 16 bit I/O to the drive (which is only for SEC R/W) is done directly +; in the routines READSECTOR & WRITESECTOR for speed reasons. +; +IDErd8D: ;READ 8 bits from IDE register in [E], return info in [D] + LD A,E + OUT0 (IDECport),A ;drive address onto control lines + + OR A,IDErdline ;RD pulse pin (40H) + OUT0 (IDECport),A ;assert read pin + + IN0 A,(IDEAport) + LD D,A ;return with data in [D] + + LD A,E ;<---Ken Robbins suggestion + OUT0 (IDECport),A ;Deassert RD pin + + XOR A + OUT0 (IDECport),A ;Zero all port C lines + RET + + +IDEwr8D: ;WRITE Data in [D] to IDE register in [E] + LD A,WRcfg8255 ;Set 8255 to write mode + OUT0 (IDECtrl),A + + LD A,D ;Get data put it in 8255 A port + OUT0 (IDEAport),A + + LD A,E ;select IDE register + OUT0 (IDECport),A + + OR IDEwrline ;lower WR line + OUT0 (IDECport),A + + LD A,E ;<-- Kens Robbins suggestion, raise WR line + OUT0 (IDECport),A + + XOR A ;Deselect all lines including WR line + OUT0 (IDECport),A + + LD A,RDcfg8255 ;Config 8255 chip, read mode on return + OUT0 (IDECtrl),A + RET + + + + +;------------------------------------------------------------------------------------------- +;------------------------ SUPPORT ROUTINES ------------------------------------------------- +;------------------------------------------------------------------------------------------- + + +;SEND MESSAGE TO CONSOL MESSAGE IN [HL],LENGTH IN [B] + +TOM: LD C,(HL) + INC HL + CALL ZCO + DJNZ TOM + RET + +;ABORT IF ESC AT CONSOL, PAUSE IF ^S AT CONSOL + +CCHK: CALL ZCSTS ;FIRST IS THERE ANYTHING THERE + RET Z + CALL ZCI + CP 'S'-40H + JR NZ,CCHK1 +CCHK2: CALL ZCSTS ;WAIT HERE UNTIL ANOTHER INPUT IS GIVEN + JR Z,CCHK2 +CCHK1: CP ESC + RET NZ ;RETURN EXECPT IF ESC + + +;PRINT HIGHEST MEMORY FROM BOTTOM + +SIZE: CALL MEMSIZ ;RETURNS WITH [HL]= RAM AVAILABLE-WORKSPACE + +LFADR: CALL ZCRLF + +;PRINT [HL] AND A SPACE + +ZPRINT_HL: + PUSH HL + PUSH BC + CALL LADR ;Print [HL] with no space afterwards + LD C,SPACE + CALL ZCO + POP BC + POP HL + RET + +;PRINT [HL] ONLY + +HL_ONLY: + PUSH HL + PUSH BC + CALL LADR ;Print [HL] with no space afterwards + POP BC + POP HL + RET + +;PRINT A SPACE + +ZSPACE: LD C,SPACE + CALL ZCO + RET + +;CONVERT HEX TO ASCII + +CONV: AND 0FH + ADD 90H + DAA + ADC 40H + DAA + LD C,A + RET + + +;GET TWO PARAMETERS AND PUT THEM IN [HL] & [DE] THEN ZCRLF + +EXLF: CALL HEXSP + POP DE + POP HL + +;SEND TO CONSOL CR/LF + +ZCRLF: PUSH BC + LD C,LF + CALL ZCO + LD C,CR + CALL ZCO + POP BC + RET + +;PUT THREE PARAMETERS IN [BC] [DE] [HL] THEN CR/LF + +EXPR3: INC C ;ALREADY HAD [C]=2 FROM START + CALL HEXSP + CALL ZCRLF + POP BC + POP DE + POP HL + RET + +;GET ONE PARAMETER + +ZGET_HL: +EXPR1: LD C,01H +HEXSP: LD HL,0000 +EX0: CALL TI +EX1: LD B,A + CALL NIBBLE + JR C,EX2X + ADD HL,HL + ADD HL,HL + ADD HL,HL + ADD HL,HL + OR L + LD L,A + JR EX0 +EX2X: EX (SP),HL + PUSH HL + LD A,B + CALL QCHK + JR NC,SF560 + DEC C + RET Z +SF560: JP NZ,ERROR + DEC C + JR NZ,HEXSP + RET +EXF: LD C,01H + LD HL,0000H + JR EX1 + +;RANGE TEST ROUTINE CARRY SET = RANGE EXCEEDED + +HILOX: CALL CCHK + CALL HILO + RET NC + POP DE ;DROP ONE LEVEL BACK TO START + RET +HILO: INC HL ;RANGE CHECK SET CARRY IF [DE]=[HL] + LD A,H + OR L + SCF + RET Z + LD A,E + SUB L + LD A,D + SBC A,H + RET + +;PRINT [HL] ON CONSOL + +LADR: LD A,H + CALL ZHEXOUT + LD A,L +LBYTE: +ZHEXOUT: + PUSH AF ;<<<< PRINT VALUE IN [A] in HEX ON CONSOLE + RRCA + RRCA + RRCA + RRCA + CALL SF598 + POP AF +SF598: CALL CONV + JP ZCO ;Will force a return + + +PHEX: PUSH AF + PUSH BC + CALL ZHEXOUT + POP BC + POP AF + + +;THIS IS A CALLED ROUTINE USED TO CALCULATE TOP OF RAM IS USED BY +;THE ERROR ROUTINE TO RESET THE STACK. +;Returns top of RAM in [HL] + +MEMSIZ: PUSH BC ;SAVE [BC] +MEMSZ1: LD HL,0FFFFH ;START FROM THE TOP DOWN +MEMSZ2: LD A,(HL) + CPL + LD (HL),A + CP (HL) + CPL ;PUT BACK WHAT WAS THERE + LD (HL),A + JP Z,GOTTOP + DEC H ;TRY 100H BYTES LOWER + JR MEMSZ2 ;KEEP LOOKING FOR RAM +GOTTOP: POP BC ;RESTORE [BC] + RET + +NIBBLE: SUB 30H + RET C + CP 17H + CCF + RET C + CP LF + CCF + RET NC + SUB 07H + CP LF + RET + +COPCK: LD C,'-' + CALL ZCO + +PCHK: CALL TI + +;TEST FOR DELIMITERS + +QCHK: CP SPACE + RET Z + CP ',' + RET Z + CP CR + SCF + RET Z + CCF + RET + +;KEYBOARD HANDELING ROUTINE (WILL NOT ECHO CR/LF) +;IT CONVERTS LOWER CASE TO UPPER CASE FOR LOOKUP COMMANDS +;ALSO ^C WILL FORCE A JUMP TO BOOT IN CP/M +;ALL OTHERE CHARACTERS ARE ECHOED ON CONSOL + +TI: CALL ZCI + CP CR + RET Z + CP 'C'-40H ;^C TO BOOT IN CP/M + JP Z,ZBOOT + PUSH BC + LD C,A + CALL ZCO + LD A,C + POP BC + CP 40H ;LC->UC + RET C + CP 7BH + RET NC +SF754: AND 5FH + RET + + +;DISPLAY 8 BITS OF [A] (B & C registers changed) + +ZBITS: PUSH DE + PUSH BC + LD E,A + CALL BITS + POP BC + POP DE + RET + +;DISPLAY 8 BITS OF [A] (B & C registers changed) + +BITS: LD B,08H +SF76E: SLA E + LD A,18H + ADC A,A + LD C,A + CALL ZCO + DJNZ SF76E + RET + +GETHEX: + CALL GETCMD ;Get a character from keyboard & ECHO + CP A,ESC + JR Z,HEXABORT + CP A,'/' ;check 0-9, A-F + JR C,HEXABORT + CP A,'F'+1 + JR NC,HEXABORT + CALL ASBIN ;Convert to binary + RRCA + RRCA + RRCA + RRCA + LD B,A ;Store it + CALL GETCMD ;Get 2nd character from keyboard & ECHO + CP A,ESC + JR Z,HEXABORT + CP A,'/' ;check 0-9, A-F + JR C,HEXABORT + CP A,'F'+1 + JR NC,HEXABORT + CALL ASBIN ;Convert to binary + OR A,B ;add in the first digit + OR A ;To return NC + RET +HEXABORT: + SCF ;Set Carry flag + RET + +GETCMD: CALL ZCI ;GET A CHARACTER, convert to UC, ECHO it + CALL TO_UPPER + CP A,ESC + RET Z ;Don't echo an ESC + PUSH AF ;Save it + PUSH BC + LD C,A + CALL ZCO ;Echo it + POP BC + POP AF ;get it back + RET + + ;Convert LC to UC +TO_UPPER: + CP A,'a' ;must be >= lowercase a + RET C ; else go back... + CP A,'z'+1 ;must be <= lowercase z + RET NC ; else go back... + SUB A,'a'-'A' ;subtract lowercase bias + RET + + +ASBIN: SUB A,30H + CP A,0AH + RET M + SUB A,07H + RET + + +echo: + call ZCI ; get a character + cp ESC ; escape? + jr z,echoz ; done if so + LD C,A + call ZCO ; else send char + jr echo ; and loop +; +echoz: ; Say "Goodbye" + + ld hl,str_goodbye + call PRINT_STRING +exit: + halt + +; +SWITCH_68K: ; "B" SWITCH CONTROL TO 68000 CPU +ZBOOT: ; "C" BOOT IN CP/M FROM 8" DISK WITH WITH ZFDC FDC +ZVBOOT: ; "L" BOOT IN CP/M FROM 8" DISK WITH VERSAFLOPPY II FDC +XMEMMAP: ; "N" Display extended memory Segment:Address +UP8086: ; "O" SWITCH CONTROL TO 8088, 8086 or 80286. +HBOOTCPM: ; "P" BOOT IN CPM FROM IDE HARD DISK +SPARE: ; "U" SPARE +SWITCH_8086: ; "W" INPUT Port ED (switched in 8086/80286) +;XMODEM: ; "X" DOWNLOAD A FILE FROM PC VIA XMODEM TO THIS S100 SYSTEM +ZBOOT + +NOT_DONE: + LD HL,CODE_NOT_DONE + CALL PRINT_STRING + RET + +ERROR: LD C,'?' + CALL ZCO + RET + +;======================================================================= +; I/O SUPPORT PROCEDURES +; +;======================================================================= +; +; Print a null-terminated string at HL to the primary CONSOLE PORT +; +PRINT_STRING: ;Print string on Propeller Board + CALL ZCRLF +P_STRING: + ld a,(hl) ; get next char + CP A,'$' ; Terminate with a '$' or 0H + RET Z + or a ; end of string? + ret z ; if so, done + LD C,A + call ZCO ; print the char + inc hl ; bump to next char in string + jr P_STRING ; loop till done + + + +;>>>>>>>>>>>>>>>>>>>>>>>>> MODEM SERIAL PORT ROUTINES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +; +; +MODEM_ZCI: + PUSH DE ;SAVE D,E + LD A,5H ;Lower RTS line + OUT0 (MODEM_CTL_PORT),A ;Sel Reg 5 + LD A,11101010B ;EAH + OUT0 (MODEM_CTL_PORT),A + NOP + NOP +MSEC: LD DE,0BBBBH ;1 SEC DCR COUNT +MWTI: IN0 A,(MODEM_CTL_PORT) + AND A,MODEM_RECV_MASK + CP A,RECV_READY + JP Z,MCHAR ;GOT CHAR + DEC E ;COUNT DOWN + JP NZ,MWTI ;FOR TIMEOUT + DEC D + JP NZ,MWTI + DEC B ;DCR # OF SECONDS + JP NZ,MSEC ;MODEM TIMED OUT RECEIVING + POP DE ;RESTORE D,E + SCF ;CARRY SHOWS TIMEOUT + RET + +MCHAR: IN0 A,(MODEM_DATA_PORT) + POP DE ;RESTORE DE + PUSH AF ;CALC CHECKSUM + ADD A,C + LD C,A + POP AF + OR A,A ;TURN OFF CARRY TO SHOW NO TIMEOUT + RET + + +;GET A CHARACTER FROM THE "MODEM" SERIAL PORT ON THE S100 BUS SERIAL IO BOARD + +MODEM_ZCO: + PUSH AF ;CHECK IF MONITORING OUTPUT + ADD A,C ;CALC CKSUM + LD C,A +SENDW: IN0 A,(MODEM_CTL_PORT) ;Don't worry PC is always fast enough! + AND A,MODEM_SEND_MASK + CP A,SEND_READY + JP NZ,SENDW + POP AF ;GET CHAR + OUT0 (MODEM_DATA_PORT),A + + ;Raise RTS line to prevent the next character arriving + LD A,5H ;while the Z80 is busy processing info + OUT0 (MODEM_CTL_PORT),A ;Sel Reg 5 + LD A,11101000B ;E8H + OUT0 (MODEM_CTL_PORT),A + RET +; +; +MODEM_ZSTATUS: + IN0 A,(MODEM_CTL_PORT) + AND A,MODEM_RECV_MASK + CP A,RECV_READY + JP Z,MREADY ;GOT CHAR + XOR A + RET ;RET Z if nothing + +MREADY: XOR A + DEC A + RET ;RET NZ IF CHARACTER + + +;>>>>>>>>>>>>>>>>>>>>>>>>> SPEECH OUTPUT ROUTINES <<<<<<<<<<<<<<<<<< +; +;SPEAK OUTPUT (WILL BE USED TO COMMUNICATE WITH TALKER) +; Note the S100Computers I/O board V-Stamp speech chip will use the initial baud rate +; of of the SCC to communicate with it. This is determines after each reset/slave clear. + +SPEAKER_CTS: ;Cannot get this to work. SCC does not change bit 5 of RR1 + ;when E1 sent to WR3 (No Auto Enable). See SCCINIT: + IN0 A,(BCTL) ;A0H + BIT 5,A + LD A,0FFH + RET NZ ;Ret NZ if CTS is High + XOR A + RET ;Ret Z if CTS is Low + +SPEAKOUT: + XOR A,A ;Will try 256 times, then timeout +SPXXX: PUSH AF + IN0 A,(BCTL) ;(A0), Is SCC RX Buffer empty + AND 04H + JR NZ,SENDS ;NZ if ready to recieve character + POP AF + DEC A + JR NZ,SPXXX + RET +SENDS: POP AF + LD A,C + OUT0 (BDTA),A ;(A2), Send it + RET +; +;SPEAKTOMM THIS IS A ROUTINE TO SEND A STRING TO TALKER [HL] AT STRING +SPEAK$: LD A,(HL) + CP '$' + JR Z,SPEAK1 + LD C,A + CALL SPEAKOUT + INC HL + JR SPEAK$ +SPEAK1: LD C,0DH ;MUST END WITH A CR + JP SPEAKOUT + + +;>>>>>>>>>>>>>>>>>>>> MAIN PRINTER OUTPUT ROUTINES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +LO: PUSH BC + LD B,0FFH ;First make sure an actual printer is connected +LO2: CALL LSTAT + JR NZ,LO1 ;Printer is ready go to it + DJNZ LO2 + POP BC + XOR A + LD A,C + RET ;RET Z if Printer problem (Not switched on) + + +IF ST8C4 ;If S100_Parallel_IO Board for Printer output + LD A,80H ;Z180 internal ports must be temporaly moved away from C0-FFH + out0 (z180_base),A +LO1: POP BC + LD A,PRINTER_ST_HIGH ;Make sure strobe is high + OUT0 (PRINTER_CTRL),A + LD A,C ;Send Data from [C] + OUT0 (PRINTER_OUT),A + LD A,PRINTER_ST_LOW ;Now send strobe High->Low + OUT0 (PRINTER_CTRL),A + LD A,PRINTER_ST_HIGH ;Now returb strobe back high + OUT0 (PRINTER_CTRL),A + ld a,z180_base ;Put internal Z180 ports back to C0-FFH range + out0 (0BFh),a + OR A,A + RET ;Ret NZ if OK + +ELSE ;IMSAI PIO Board PARRELL PORT + +LO1: POP BC + LD A,0FFH ;Setup strobe high to low then high + OUT0 (PRINTER_STROBE),A + LD A,C + OUT0 (PRINTER_OUT),A ;Now Data + XOR A ;STROBE FOR CENTRONICS + OUT (PRINTER_STROBE),A + LD A,0FFH ;Raise strobe again + OUT0 (PRINTER_STROBE),A + OR A,A + RET ;Ret NZ if OK +ENDIF + + +FLUSH: LD HL,FLUSH_MSG + CALL PRINT_STRING ;Have a Stack, so now we can use CALL + LD C,FF ;Send a Form Feed to laserJet Printer + CALL LO ;This forces a partial page to be printed + RET + + +IF ST8C4 ;If S100_Parallel_IO Board for Printer output + LD A,0 ;Z180 internal ports must be temporaly moved away from C0-FFH + ld a,z180_base +LSTAT: IN0 A,(PRINTER_STATUS) ;0CH status port of ST8C4 + AND 11111111B ;For now + CP 11011111B ;should see 11011111 if printer is selected, ready, with paper etc. + JR Z,LSTAT1 + ld a,z180_base ;Put them back to C0-FFH range + ld a,z180_base ;Put internal Z180 ports back to C0-FFH range + out0 (3Fh),a + RET ;Return Z if not ready +LSTAT1: ld a,z180_base ;Put internal Z180 ports back to C0-FFH range + out0 (3Fh),a + XOR A ;PUT 0FFH IN [A] IF READY & NO ZERO FLAG + DEC A + RET +ELSE ;IMSAI PIO Board PARRELL PORT +LSTAT: IN0 A,(PRINTER_STATUS) + AND 00001111B ;XXXX0110 IS READY (BIT 3=PAPER BIT 2=FAULT + CP 00000110B ;BIT 1=SELECT BIT 0=BUSY + JR Z,LSTAT1 + XOR A + RET +LSTAT1: XOR A ;PUT 0FFH IN [A] IF READY & NO ZERO FLAG + DEC A + RET +ENDIF +; + + +; +;S100Computers Serial I/O Board Initilization +;Note Zilog SCC serial port A will be set to 19,200 Baud initially (for speech synthesizer). +;Note Zilog SCC serial port B will be set to 38,400 Baud initially (for XModem etc). + +INIT_SCC_A: + LD A,ACTL ;Program Channel A + LD C,A + LD B,0EH ;Byte count for OTIR below + LD HL,SCCINIT_A + OTIR + RET + +INIT_SCC_B: + LD A,BCTL ;Program Channel B + LD C,A + LD B,0EH ;Byte count for OTIR below + LD HL,SCCINIT_B + OTIR + RET +; +; +SCCINIT_A: + DB 04H ;Point to WR4 + DB 44H ;X16 clock,1 Stop,NP + DB 03H ;Point to WR3 + DB 0C1H ;Enable reciever, Auto Enable, Recieve 8 bits +; DB 0E1H ;Enable reciever, No Auto Enable, Recieve 8 bits (for CTS bit) + DB 05H ;Point to WR5 + DB 0EAH ;Enable, Transmit 8 bits + DB 0BH ;Set RTS,DTR, Enable. Point to WR11 + DB 56H ;Recieve/transmit clock = BRG + DB 0CH ;Point to WR12 +; DB 40H ;Low Byte 2400 Baud +; DB 1EH ;Low Byte 4800 Baud <<<<<<<<<<< XModem I/O +; DB 0EH ;Low Byte 9600 Baud +; DB 06H ;Low byte 19,200 Baud + DB 02H ;Low byte 38,400 Baud <<<<<<<<<<< XModem I/O +; DB 00H ;Low byte 76,800 Baud + DB 0DH ;Point to WR13 + DB 00H ;High byte for Baud + DB 0EH ;Point to WR14 + DB 01H ;Use 4.9152 MHz Clock. Note SD Systems uses a 2.4576 MHz clock, enable BRG + DB 0FH ;Point to WR15 + DB 00H ;Generate Int with CTS going high + +SCCINIT_B: + DB 04H ;Point to WR4 + DB 44H ;X16 clock,1 Stop,NP + DB 03H ;Point to WR3 + DB 0C1H ;Enable reciever, Auto Enable, Recieve 8 bits + DB 05H ;Point to WR5 + DB 0EAH ;Enable, Transmit 8 bits + DB 0BH ;Set RTS,DTR, Enable. Point to WR11 + DB 56H ;Recieve/transmit clock = BRG + DB 0CH ;Point to WR12 + DB 06H ;Low byte 19,200 Baud <<<<<<<<<<< Note Speech synthizer defaults to this value + DB 0DH ;Point to WR13 + DB 00H ;High byte for Baud + DB 0EH ;Point to WR14 + DB 01H ;Use 4.9152 MHz Clock. Note SD Systems uses a 2.4576 MHz clock, enable BRG + DB 0FH ;Point to WR15 + DB 00H ;Generate Int with CTS going high + +; +; Simply bank selection routine. Enter with A indicating the +; 32K bank of memory to select into the lower 32K of CPU space. +; For example, 00H selects first bank of ROM, 10H selects first +; bank of RAM. Register A is trashed! +; +; We want 32K banks, but Z180 uses 4K increments. So, we need to +; scale the input from 32K chunks to 4K chunks. +; +bnksel: + rlca ; Scale input from + rlca ; ... 32K chunk addressing to + rlca ; ... 4K chunk addressing + out0 (z180_bbr),a ; write to bank base reg + ret +; +; Data +; + + + + +SIGNON_MSG: DB BELL + DB 'Z180 ROM MONITOR (V0.21) @ E000H (J.Monahan,7/6/2023)$' + +MENUMSG: DB 'A=Memmap B= C=CP/M(F) D=Disp E=Echo F=Fill G=Goto',CR,LF + DB 'H=Date I=Time J=RAM Test K=Menu L=CPM(V) M=Move N=S100 Menu',CR,LF + DB 'O= P=CPM(IDE) QI,O=Port R=Ports S=Subs T=Type U=Halt ',CR,LF + DB 'V=Verify W=Port EDH X=XModem Y=IDE Z=Top @=Flush Printer' + DB CR,LF,LF,'$' +SMSG_SP: DB 'THE Z180 ROM MONITOR VERSION 0.1$' + +TOP_RAM_MSG DB 'Top of RAM=$' +SP_MSG DB 'H SP=$' +IOBYTE_MSG DB 'H IOBYTE=$' +CR_SMSG_SP: DB CR,CR,CR,CR,'$' +CODE_NOT_DONE DB 'Code not written yet!',CR,LF,0 +CHAR_TEST_MSG DB 'Keyboard input test. Enter characters. (ESC or ^C to abort)',CR,LF,0 + +S100_MENU DB LF,'S100 Bus Address Tests' + DB CR,LF,'0 Address line test (0 to FFFFH)' + DB CR,LF,'1 Send "33333..." to S100 Port 01H' + DB CR,LF,'2 S100 Input Port 01H Test' + DB CR,LF,'3 S100 Consol I/O Test' + DB CR,LF,'4 Speech Test' + DB CR,LF,'5 Modem Port Test' + DB CR,LF,'6 Test Printer' + DB CR,LF,'ESC To return to Main Menu' + DB CR,LF,'>',0 + +CONSOLE_TEST DB 'Enter S100 bus keyboard char. ESC to abort ',0 +FLUSH_MSG DB 'Sending FF to Printer',0 + +MEM_TEST_MSG DB 'Memory Test 0-DF00H',CR,LF,0 +MEM_ERR_MSG DB BELL,'RAM error at ',0 +TIME_MSG DB 'Time:- $' +DATE_MSG DB 'Date:- $' +Time1_Msg DB ' $' +Date1_Msg DB ' $' + +MODEM_SIGNON: DB 'Get a File from PC (38,400 Baud. S100 Serial IO Board. Ports A1,A3)',CR,LF,0 +RMSG: DB 'WAITING FOR SECTOR #$' +ERRSOH: DB 'H RECEIVED, NOT SOH',0DH,0AH,'$' +ERR2: DB '++BAD SECTOR # IN HDR',0DH,0AH,'$' +ERR3: DB '++BAD CKSUM ON SECTOR',0DH,0AH,'$' +TOUTM: DB 'TIMEOUT $' +QUITM: DB 'MULTIPLE ERRORS.' + DB 'TYPE Q TO QUIT, R TO RETRY:$' +MODEM_DONE_MSG: DB 'TRANSFER COMPLETE$' +BAD_HEADER_MSG: DB 'INVALID HEADER.',0DH,0AH,'$' +MODEM_RAM_MSG: DB 'H. If OK will write to RAM at $' +MODEM_RAM_LOC: DB 'Enter RAM location (xxxxH +CR): $' + +HALT_MSG: DB 'The CPU is now halted!$' + +IDE_MENU0_MSG: DB LF,LF,'S100 Bus IDE Board Menu' + DB CR,LF,'Track=$' +IDE_MENU1_MSG: DB 'H Sector=$' +IDE_MENU3_MSG: DB 'H RAM Address=$' +H_MSG: DB 'H.$' +IDE_MENU4_MSG: DB '0 Initilize Drive 0' + DB CR,LF,'1 Set Sec, Track' + DB CR,LF,'2 Set RAM Address' + DB CR,LF,'3 Read Sector' + DB CR,LF,'4 Write Sector' + DB CR,LF,'5 Read N Sectors' + DB CR,LF,'6 Write N Sectors' + DB CR,LF,'+ Next sector' + DB CR,LF,'ESC To return to Main Menu' + DB CR,LF,'>',0 + +INIT_ERR: DB BELL,'Drive Init. Error',CR,LF,0 +INIT_OK: DB 'Drive Init. OK',0 +msgrd: DB 'Sector Read OK. $' +DRIVE_ERRORS DB BELL,'IDE Drive Errors Status=',0 +READING_MSG DB 'Reading Sector(s)' +WRITING_MSG DB 'Writing Sector(s)' +GET_LBA_MSG: DB 'Enter CPM style TRK & SEC values (in hex).',CR,LF,'$' +ENTER_SECL DB 'Starting sector number,(xxH) = $' +ENTER_TRKL DB 'Track number (LOW byte, xxH) = $' +ENTER_TRKH DB 'Track number (HIGH byte, xxH) = $' +ENTER_SEC_COUNT DB 'Number of Sectors (xxH) = $' +GET_DMA_MSG DB 'Enter RAM location for sector data (xxxxH) = $' +Write_Sure: DB 'Warning: this will change data on the drive, ' + DB 'are you sure? (Y/N)...$' +msgwr: DB 'Sec. Write OK',CR,LF,'$' + + + + +;----------------- LOCAL DATA STORAGE ---------------------------------------------------------- + +@DELAYStore DB 0 + + + +str_goodbye db CR,LF,BACKS,QUIT,CR,LF,'Goodbye, CPU Halted',CR,LF,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;To clean up PROM for easy reading + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;To clean up PROM for easy reading + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB '<---- End of ROM Code',0 ;Check this text is in RAM + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + +; +mon_len equ ($ - mon_start) +; + .dephase + + end \ No newline at end of file diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 258295b6..55470be8 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -17,6 +17,8 @@ ; 13. MBC Andrew Lynch's Multi Board Computer ; 14. RPH Andrew Lynch's RHYOPHYRE Graphics Computer ; 15. Z80RETRO Peter Wilson's Z80-Retro Computer +; 16. S100 S100 Computers Z180-based System +; 17. DUO Andrew Lynch's Duodyne Computer ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; diff --git a/Source/ReadMe.txt b/Source/ReadMe.txt index 02a601e0..242e429f 100644 --- a/Source/ReadMe.txt +++ b/Source/ReadMe.txt @@ -142,6 +142,9 @@ to determine the component of the configuration filename: DYNO Dyno Z180 Single Board Computer MBC Andrew Lynch's Nhyodyne Z80 MBC RPH Andrew Lynch's Rhyophyre Z180 SBC + Z80RETRO Peter Wilson's Z80-Retro Computer + S100 S100 Computers Z180-based System + DUO Andrew Lynch's Duodyne Computer UNA John Coffman's UNA System Configuration files are found in the Source\HBIOS\Config diff --git a/Source/ver.inc b/Source/ver.inc index 0c15eff1..e7d57dd2 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 3 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.3.0-dev.29" +#DEFINE BIOSVER "3.3.0-dev.30" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 60766dd5..4e0bc87d 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 3 rup equ 0 rtp equ 0 biosver macro - db "3.3.0-dev.29" + db "3.3.0-dev.30" endm