From 5d9205e1e89bb330c1930f0260039edb846091eb Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 10 Apr 2017 10:55:09 -0500 Subject: [PATCH] exmmtest.exe \> exmmtest.l16 == BOOM --- bcexmm.exe | Bin 148850 -> 150200 bytes bcexmm.prj | Bin 9979 -> 9979 bytes ca.file | 495 +++++++++++++++++++++++++++++++++++++++++++++ makefile | 7 +- src/exmmtest.c | 16 +- src/lib/16_ca.c | 47 ++--- src/lib/16_ca.h | 4 +- src/lib/16_dbg.c | 73 ------- src/lib/16_dbg_1.c | 74 +++++++ src/lib/16_tail.c | 58 ------ src/lib/16_tail_.c | 43 ++++ src/lib/16_tdef.h | 12 +- 12 files changed, 663 insertions(+), 166 deletions(-) create mode 100755 ca.file create mode 100755 src/lib/16_dbg_1.c create mode 100755 src/lib/16_tail_.c diff --git a/bcexmm.exe b/bcexmm.exe index 791949f7b8abd58b0d17d1c272132453a0680d68..116738ad9b1d9345ce5f50f088cdc2c7667d943a 100755 GIT binary patch literal 150200 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%0A2is( zufFs-;?P-xOZ-M-72c@J%g!uz2=PmSKik;@bIJx^xM*HkWo5v(yWVG~%)BKYFV!-(I~eTC82xyypz&V8O;G0PC?@dqNR82#foG>;z;(I{Jj_XQxM4H_FK z+IjonYikDobN}UdW-4?$V_*AY_lwCNTr8Cp;|laWV#emid>_43E7wW_) z-Qaf(Yl__q*kKKRa##!-XO_*5HSr0E-vE3Mux6?mzcZ`IU*ruj1ZF@F!v?g!OA6G~F8wO8(c84*jCV9JT=Q8^iysn8DsenoZ#ED6-iS zGtHx-p7ajlHv|8)s3k20|5^CQ$hFxr)4xfs$=)@~-%x4CRwI6M!~x>756pCCDm~ab zq#qCd>q=L)0e<@3RyME?ac?X56?KiyBjUhb=g+JnxemPBiS*loe;eym z)^81Vj(mam^acG5(m1vk>34vCht!ts!@cA$!$a79Go5I@m3@tLI)nc#-wbN}9O4VS z=qL0O6TM;=JBV}=ap^IvPJM@a$-h8UU`Nb!z7v($QTV%oe;E8@CSQ|-*m3w%z<0>S z*rUSe&rV26MflUe_mHh3jQ&s+(p?q)9^lu&T3t1h9|^5e9sZu+$Dmbe2&3KNSrhR% zo@EC39q>)?L1ug#Y@NaIXMyhrX?oG*KaTW=z@GztZKOX`7=54#&PN<66xb?sYGpnf zXYxM=e6`c-`A5&-3bg?0ew{s|iPBsY}_9X1-;$C)pYJM}hySR*RiA z`JKT(2mcuG6Tv@k@~3MZ*ai5RC6*Kq(liyvfi}Fd>zl0M_)jDjUnf@DUX|Y81(>2c`HAJj2 z%U^&6$F(T`2Z+DT{s-G&#{a~zhHV0WJ@}tFR^S*)qy78&t;fo=3~h!}+5A>xh1z&t zHJyv39e7o06ZlU#-@tKq2LGVzE#*tu$qK+f?wYL}Hu-}CGVzuX&bb7CL_l}Euw=wP z7dU{OMP6ILzY>_oE|~n(pjX&M@V9}V5j2HeHu--9mE%|7{}g-?T$=xE*6ZPrOX4d0 zJHUT5HGZ7sNl}W7y{U9O za#yK|VwAJDgrnu){{sAeuw|MlM*n$HdX&W~f_(-4Na-OX5zx1#5Y__mzlMJqKGz(N zIP}{j&1J0>JNCVz{iT;#XXHh{PUw?e!9NIp5=Ic|X1*6iHP#b(eFy$8;xU$C@=MAw zEK^Z1cEUl*azjw#mn=V}dyarweqzj#=_FW&b%;BD3U8Ggvs|Qk0{)$H1hMp=)6C}- zLgddg>+4eHUbXfEVT=p zVDfjW!E6%z7s2172Cyk+en-`l*vWuz`+$F1JxuYkWxn-6R@o=cW3 zn$1Hxzkr`_dxp(7`S00^u{YuW75w*YWZ4?Otv2KQmTL%ZvxTv@%=C{yzb%6Q2KdKq zHQ6$=oI&=_*>cqJcksjQJJ@QIf70GSeqV87PKmK|_9x|!O@1A>hixH0idWa|WZTU0 z#JD@M?PxcG-B@=5?lOM!+@;tK#G&r}wmZaPvrX=jY$y0C_*>k?*)B7kL+*688|mA? zKj!Yn_L}@C&nWge_;heYGtUtAg~{LHd4zolKOGIR+f#;pW%4h0y0iT#j~o1-JxT0< zS^flXQ+5#T;03>f#`p+LL95(haf-3XlQ%$}Ei((r5WxAX z=fN6(8UFI%_kj+dp&I=hrw2=OR4-;FFdkuZrDdw22O4Aaza0LG;5WmJz)CZnFGM-^ zF8r0j-!C3!tIYVniEr3y74|>)e_$N9){MVL?!`U;zdHC|%gJnm$$v`e#WsRp6Z{Az znQb=tZ-HL`KAqXQ41DY7QG2jY5T`cyL25UP&H94B1^g$$9|XQbGs^G5zE-CuuuGcs zULNz9{4tm#^4DZmAN+}!g$hC(`klncB?SBi;Gcv2Rsw$d1>k(7GVnJ9KNvc&tjVt` zRmAD&GHfx}jnJ8u&Gg$#QLHM`i~>JVdYaYH;K6T>RGHO8oEQY>OXb-UnlU!`6tk7} zG?#wf=N`!vuPwr)IL(F~U<_}A21;$rbmHYntS!=s1;4F4mbEv_b69T6I%_IU z07YHoc-GBKr z!=-6vzVB-xY&!gH!C$8Zv6oFg&R%6R;BOE9KFtrd8a()Yrv~CnS7kg z%3g)PGx%2!pN`9x*dmC@)9_**N7@j9yfPHJnUMb8MXjz>7Je!r{Z+&0gtO{=GRh=a z0q=&g$T(r@DU?BBokTK5+A8dic;u-uxAFx>*fw@V{ZO(am$|kINZY}-+EyV=Ki1cN zU2iiY=yhlr&W7B+efvd((HqdA!8I9pN(kuBO6S=0_@MaR#y={9_zois27HL`G{d)V zW3B{Y8Uvv~_<7C9ZZpvedV2aDChUoLqq~*N`-1iKLRqQa(uQ~xy%fwy zH}ZQ}F9&WOa{I-y_|RGyyaKoSxG>quQ2eS4&&D@?ZNxXywb6AHF@{`Jr3Kwz1{M*y zD2IdiXCQpx&SpN9$%TMh`Bp6qBi=TJbv5H>lZ!^mqw7fbahlsfJ3c}D z@^tDi__&S@B6|7`a#1dB#?#YBzIDy8e!ZcW^4S0w&Y z#7DZ78LV~0L%uC3AC!MRx#$WXl8b4tEp#1ShEo{rvV+_}hPR!Ja_Z$T^CS*>H^O>7 zF&EQ`mFg=Yo#Q6IzUhLm-+zYOW(;!;NFVhKCl~G8jrb_XZxpW1SPF$vzFX$~X{=N~ z38sRdgzHQ)?t`h6PVt^5Z4DRwqXfBVrz(>Xe^)pHVWc~R`hk&76KDY{ zUvCQ6hsLFR%Tj+p80GCuVYG|QEZ+d)qhBNz@^Kwu>v|b8UKlklXYxZ-&v|qmZbM(! zNGH|IKhC_*X}Y7?BMd)TZ?_7RlpcniWALSa=!O@jSM+|1Z>8J8jAw>NSbX)b`M7Sh z-(1r*%L(Jq$fv&PK5|#sx^AU!xmJAZ`rmb}dRXzTu+7ZZ;#;njkL6nYzwa8)eJ(4# zM#A&Qk<{;#nk!|_&%%q(C|$JU7u23*7`s5_L%Zwx3V3mV z_($&G#bF8~zbh0^m~sfuFNI;G2fR2==|VqUAs5fTF*B^uz zOtNqQ@f*@;>aXzvFXU3EFv^d1W*qrIFA8qd+b$V+;Uqrr!fW!KR8Hu@(%iRwALSNa z=+}W4k8$MxDUzjf!wo3XzEu$)=~RZLOYx8|_7CXo@HFKIJ>QUAJmSW5-3Kq?h!4DI zWtPXni;ffzI8jD2a3amT&P}-hU%xMd?gvifQhe0=C_N9f>!W7=1BhQ87A%EPuAyc+ zl_UcvChGY}#(ltvsuT}6F@w@Yzj&Qow9m>S?Xw>B^=+@scZIhgjC_Zn29zGs!5d3@ z`RY;_IPopzTNYjlqr8VHjDBL_z%#^$KERh3Og>zMt?Q>uxjACu#A!qR3ibPUMfKL7 zrq*bgcMyht(o>!;h%9QO|agVeg%#_JjOh)!X^c_FZSHC*;+Iks|e9 z{9q536jnNxyjBs22YJP)M{mz$Q?4v|txtR(d5xqnL6Ycw&S&kow54oL3VU+Krna+GuZm-aFCK>lZZWmBI$n6bEw+tS+3>WPbDEs!S zQgTtbedMli1%#3A5XM$edPt|5Y&?&5DGa%NTE=zA?RykPc_S(8Be!^qU6<3CLO!nh z$Zcn{9okC<-gPmQTXOl|auX!O4zpYn&kOa5RSrupSYZpt z514u&mYxUnK)WK(Bim?i2&gsw(%lcB52+oY7oIN?e<%kKDoWg%n19=L+?J5x!6uMtaZ-ODSE*!+LV@oHv=z^NK0AKU4Xj7d|FF zu0KdGTrZS&#D`wEc@MpCt1uqYhg^J0`J?~uH2Wdv29AG4eCUM(CSNge>U5Fzx`g&J z^n!jJdf_sa7kc3))fcX_2(JB#_(-=h>=lZKe7%$|+Cfp^LND0JMc4HxxbCADf`|{j z5T+Q<$I=TAn_){YgmDAUtD5|qX1@ntzyAqJ2YR6{rH}d_q;jHtA2Q3)i1^S8k5Cxp zYig!bjvIL1maa3&xDR@v0>y(~c#hIV|L9IG^g=(yS1$}xit2^YcZJ6zjC6-Eyd!C( zGtJER2?|3myg~UwFVvFP;zJKCDdgk2k6t)zw!^okUN};y4~+J_ZH7%b z``h{;gzNHKD6jVzhustZ@5r;E2mak*t33GJG@cv7+XeS`@8oZ^ONvoHj2De?+Fjuu zcZGY>b3i{`X+A&8p0dVScgER9dKsqOX5}lBUdGQFr)HSx_r5FMo%r`^evHmEy*rWG2YUB# z5&5`On2x1)Z&NzZyEYa1mVq5%+NqY_brau5?*>sAdiPa|C#al8curv$=|S&?s&Jui zDv%2~s!aDmj^5yg9-B|)gWj!9d|ZE!-d$wgXU(@QF~hn(ns;Zu?VZASNFREqHsuff zg15-@@VlnoZA5(N-58U>_E zpC}&k-Aw7C9r7qY=-oc#LhlZu>ppsSIPuY+$C%}@^zLLcZ0X(4OuakD>OYFgiT3^6EXPXXL+^e;VU%yJna)?H-rYji8Fp{bebBq#P(0|}U6d~R z$9{6rPN#~r(@&_kZ@XQ+D|`cCq&EcPI!X`eNSg6Hj#C(V*Q4P&^zKOtqr5>B_R+gP z5+8atq>zv6K6-be*$(5lVUJCs^6S^(!lU=od6cA)?-fc9?OjUK<+V@`Z@){9okhoA zh4Wc=%dr*yv;Ab~1M9k_CoR1oOncbULwDtG>3hqSFPr7F?zhr?kZaY$avv1`U%fuc zEZ->ed6X7b{f%~i=&tZ1g<;?RQ$e%zoovplRn&}mwJMr1uU6aaKi0fcWnt*WXEZ!l z=*4E#PoSVI{iM4eU|xg970`>_G~fJk3-hz|;xI}FdhsPn2mSR)8mFK?T6%E`@sHfG zM_)1Xdz#|;=*4FW!$=Q$aSo*meXx{V^z#*TAJUByhF*-O@Eph$ZiL380CG1!ssWK{u)Po=(pL0d|da@hc(Q0s3Ht~Sknw!^AG*a@U%kt zGum~a$tOpzU%s2U#-YaXCLvLr)!wQ?} z;66i-SovG7#kXARKFhWEmTTQ-xn}+Ff$O5_-(4>2{{OUluX5juZ(IY3R9@)aKd8QN-9_dP zo<)45QyDvuDIW4IM(Ls*I#Pbnzg@_Msz{;hK6YtO;zR#to8__W(!OTc(!(WWLk|x( z`G1)54ZeQ=SV{+acoL=Yw%d1ig^wbPbcdk-Q+i0}M>F5r6owxDmGXsLJV{}c z_jd}TzgT*>9`T{CZWr=#9bxPGQL`NmnR@sb)f@fV(l39Q@@ToHezEkZMo63fr zqd1T+ z%P_-wf1Gz`JeXY=59y=d4W<0izeYHWdgqyPH-Y$&yD28W50wY~Xp8re1}rHXopRdALQ;Mav^u0(sduX+e3WF-Ir#0 zEV(;mhAp{!$&|a(CO^ZRM+9HL{{p20x%-*YNBy6ra-w~wn&r4je8}B&3Zs17&uEt! zrrde_aGl|e6uJ*`H;dvy?uz@tMgJ&6F50PvpKm{`=T}tj8r~I-Mi}W0!H!Hy59!33 z`7WR^*-gbH6?>?@yP& zx8_}RSGNNS?VbNC-dp1>%l#MAv-AL5lo!7pRDbl3bU(vx*=5Zun|91D+2T`t+QVkK z2LE3yN1+}%Ncm%ZJ&)S|2MDy{?(ZG?v)qa4IVx4Aj= zxQBvXUV(O8;*MgxB5W@e)NFUJnc599p^^Z-5~xe+F-`5h;)w zLbLJ+dTFCRD-jeyfrHTo?{1ygtCmoOE7qE359!+ z<7LbtLnv7%TfGUjJ|m+reqPX08o!jnuvn;NF_GpCF)4y zDc(p*c?gjSRH~um8%AUz1xJu?IFU&doXq1{L1oHqN@3=Di%+Gb#!|d#6mJaqrc)!* z8>s~(9@xo}fEVQGwpS?1EF!Oh6ae5b4?q{@5SdHlHIM?dC~bT}ym{1CZ%}&kDflLD zhn)eG?E>_$ZjHgi0mcuIf&5{_fh6w zP@-QF`HFYPgg5cNrpNsaWkheUumij&?fgNMgLtu$9pX6{&`?q(sqIS<(Y4RhRPgU9 z_ydu{M2-+SO5_-kcziOZ~u*g*T{FBYIy_NamY=|_jkJR2a#KJ z^)_7vIsh;PqHuvILgW)J4Dzj;jCVzuLgczMn84vh0tb+yjf0w_iOci|qF`_@I z79>hXld%;30xN(W2*eTn3^XwG&>eMXr#u`){KP<0+m0h)cM{J4Eod6VnhOn=r|Kdz91sOM2dqL_l5{O?oc9OM8b)bAX1V@DI%po453@i3xGmm zGav@UDEM{h2*L4Hf@6mSI1ZNp$9OyF7CzAfIDQ0e%**1P1AHMKa9l^S;P@!PF^CDr z#|e&4P_v&b3diRP;rKMQIEagGbMx~A#|V1)#X>m#iQpJlO*n=xm|rG1{`oK9825(r zGX%$H&1U)^hGW#j7miW$Xf(t<;P}!%hT~rej(;OKzD00+o8TC`WZQBf0ghomx5sxd z0LLH&_(DG57;~GQIG6q&9A7JhzZZq$KmG|ELzQK4kW3;Ef@3sOF7=l@BKLt~ zKM8Q`p-zqW@CNcA32=-z<_7Ul=^k+Gf+8Y`zYiQE%Te540vzKdzWcy2;{8K74wmi# z$4KfyaEv#Z{#|ffQUV+!%LNcq3yu+7NW4Wv7W3~2jzO04(s(BuZ!rOmL6#F)L1ZQM zp}&UXhwzp)qWnELMsDkPISFtK-v%NZarPYGxPk;Yt|%2WBdz@3fn#Lu3&(gBaX%I4 zPjFmKvfvnRA0EQ-8vi;RL)V=kWog1Oe1C#t@Xk?`^YpaJ7_EU)6;RPG5V=Ui7mjO4 zfMbx${Bg;!HvdC#{1j%eq(+jDso@L9krLoI3a`|1ko&-KJ-kgP@P4E(97jkN96yb> zaexN*gX4yh37W7Lj4|DHeC-P8*GmHW4I%WKLg+V@6a`G{+c>2I=r^0t?=3>V<%Q^% zfHwj09ajteI-qFyj4Nu{36p$eBbkHIB)ls`YGfKdCWi`wxac-F?PTVcx92iFwFv9X@Uc%!6+Ok&QSn z2$=UeVcr}6Rm?-?zL@tWVIFvY!o0T&F>fJZ-m?D#=0Vq;AcbdQ9(;eoJn+s@l=Jko zOw2>63aDroh+HJ%i+PI(^FS{1CI4B>TS;iJ?p~O;o-l6%K?2BqFmDxM-kPGA_dy}% ztv1l$eweq`#JubHhAEKlA|V|{%fCy397q?$p&p8JAYDmdA}@urpZTMhmghCNHO@Oo zNC#q$^S&db`=09dLs6tVQHXR$s9GQ{y3Nf`64D{)<);gg?hGLvu9`>(UogkCVsU=n zL^|JTSKJ%Uj}hh_|KGfUdJp3Nx zJS6oX%nRWEwsBrC2j(Hm1rSpU^AKD}yhTJ7bI9WoB1?HF2j-RFz&w!UL{<=4Nqy+A zF)y40^Gfi)H_k(D>v(An%!6+Ok&V0z2j)G@fq7;5e{-CN%zZJhJO}21_b1H5N{%`0 zT9E_us^RNWWC<2k>ji&n+7-I)1Sv}s^Wggv=7D#PqMWCvWnvymRX|0%K;$A3U(Bn- zfq5X8c@_R29p^pHfeZEdJ;r%Yb6{Qr4sZY|+Bij~U2Ab*-jlq@IIkYJ#(8zPjt2L` zyt>>N=S`L{@}jv?Hk2lahtX{4aGD?k^4(f{zs z5cTjyNz^wQ)xQTy&gB1eWcV5fO1{p4l5caMn&4$k7*2wTp4wQV0x-y=JIWk}v4@OC3If}0%lw5ybltjFLh?1M`g_20>K`8n0zYit1 z5=tV=1rSaPB@tXmyhTJ7^X-I^AWQkDgpxZ6B|(-GSwUna^`XB;$sL4}JO3t1BDZyX z51}M{8;ES=dkH1?5lVjfUqwk|?u(N92_?b%6G|Q^M9FUnC4cxopd@tN2~v?JO2YRi zlmzb_MLADT%S1_(s(^}ifyhN7z9@N+P!i-a|L#AFlE(-Q&fNhY4@#aO zlssJ&CC?V3OmKd&HGC~A0LLIE99P8=vN#bL51=}BdHKL` zZG7I{n5eBO(DooMy3LKFlL5yFdihiMay#8ojMu}r+UcqZ$M6O7`T}s=Kv-~$JHq)B z0&rYQ{LjNN>fsB=sBbi?e-AjWEB+}QN8mHyypaGLH^qm)aY!}bI933Tn+w2k3w+!g z2UY`)K?zDdHZ3*7mg1;r@%0$Z`~pTLm0<5%(LkBHllQ z<0Ns9K`WAa5FDq9f7_t7q5vEt%LNcl3yu+7NW4Wv7V~rgI0jkDdkVmDrT`p+EGM#p z$V%!%e+|bO0&tuu{@$P!xvk?l0&oo91|l1Alse!zPXLa4i-KlY3HUE9P9k$(IPNO| z$Kd@5jt2;9&^k~6j)#bUeb5SBcY;);3CHmL368-#M^Vnx(=y>0r7EDJT_AFih%X$! zAOOc8m-%4vA04!gAT*dD?lEYcC;-Qk2ogZ<1IMEPEMhFF7RaT!S7^Mj2CZWZG`Jre zzhq+Qb?Fcx-A{yc*zf&2&O`*#6_=qNLS-ObX{3+y=z(;P$w0ctWee%PBcuZ{k?sdV zy2DhrBSn$!R3XwGqiTV;=r%V$O-P5Jm!By_x^skdxN0IDe8K!YA>Bn2>F$h}!|2{{ zeu6OXo8U|yhn56rX455zoVIf^@FV4h39ALb$6Kg2wL`5u^uq#lHMLGr&1 z^Fm}`9L)GWW&23NkPcygy-HCE3Ef$}%vohWxK% z9(3IaQg|lj!S^T31MeI~IZsc^#5|O$fQoj3$VDQ)m{$eg>E|Gqc{TYzig~qU;6elW z9+>xx49sgN0~|o^gL!piU|wCh2R}9F-bBK@NrZW?5a!J<#Jp$m*=r7BVqP2y#G6yyTF6C4cWq>Abk~xq1>&OH z+`O#}%tO%2+soGIuA>ah!&MXW;0xxRWMEzw`Ooi!;NEcFS_bANP+R?PPrITXzLO+5xdE*K5Cj3pzLvHK%WWqf7 zHW1m!rx4~%Bg}jGzlwRt+!ym^66S&TC(L`b5c6ge=FR&*U>8lVgh*4IxO=w-7W@byB8Z8I#|ROR zQ_W8lMZ`0OhIc1ouB4-9{S5(v`uO#|CV2a6*pY|OzELb(V}d|cL~bi9q95n zmADd4B(8?D{+__;!_VLhn8|DgdkyDT9mJVbKd>Y07(2mE;pD?}_-gnioap;AyUMPy z8#pluuWm>jC-rKQU2;kusTfY{Esl3}N=aq#o=!RGQJkJ#8K-5}kZR+M-Uc{dceeDF zv_g7MdSBXz6E`Jp=jE`!t0J$=tMcmnasDK)%Nz3Hd@NQ;R%1zU9p8ZEz>oP>z8z~( zd$F9fpC91g^TYfYKh4kZOZ*qqO%cUJX;EI(5Vb@j(L%Hm?Zp@|SxgtR#hc=N@x3@I z&WI}lgId`s2g@PyL-J#CHMy2tTaJ*UP}LrD#30EN!GVQJbeN z)ZWqF)mCd8wY}Om+F8wJbJ@z+Vr(63oowA~V{Ef*AKUlaZ`g}DLLKED!yPjm8ytHa z`yIy|KRd2DZaP%I0KZaxE&W>ib@1!$H`s5y-*mrM{AT;T;kU$Zo!`fPU-^CQcgXJ- zziWOs{Um1%XB}rV=M?A5&e_gw&V$Yq&Oe;Dox){zRd>~OHFL$fTDm&9y16o3xvu`M z$*!5M*If%-AGkKSHoLaE&bw~8Z0;a;ad!!KS$92mBX=`*oV%sFojcV%%{||}#=X=1 zgWKbI#uMpj>S^go@vQWG;@R!_%5&ON*Bj@J_a=BddZ&9|_3re3@4fC7{to|O|C0WX z_&?@f-@lW8mj5vSrT*{vZ}Z>f|GEFy{#r5rVs(l&E7rHzfMSD-jVN}w*zsa#i~Uy2 z7T_1)4DbZ_2NVkk3t@vBTR~BDge0}k6iyta}r1;6==ZlLFEyNL0JfvJm#gG~y zks-Z8vO{u1UJMx>GAU$w$m=0*hpY@)9kMl7?Hf8Ibav?L zp>KsQ4qY0$Ds)}wrqGW=w}$Qs{VMeP(6gaGgF&)_6foRq{;af0VCHWQM+fPKb};+!`{azlzM;uQO~*ctkf z^au87;$;Eek!SN9{#buceZ%xS^evFBJxY?+B{9^1{nMeVQR z1cTc+o6QcbRu(#}F5U;}f|JK{aZdOEX|yx}r-#2QtwFo&kPb^HrOT4c9o)-9us7^U zY$uA~7^v`8ybbTf^Y}pMvuW6}@e$v`cko@%$A|fETon#MOO+9#sc46mdJ*k3Q!Eg> z#eQ)>d?yYIMb>189EQ^tJ*+Z5_fUgHut*kz^HJk**6NGw6Lyom44t|~+KDrizn6~V z%<^KqICiBq;Bk0PU3eOwicLm-xbtyV8+SIrz0a`}mWHQ29;fI`#<}h@*eo`i&Bc?S z$KJ$YJWJR+Yz5Ane4lM#o7l(rT+0C+2Tq|qG`y4P!aHjLQV=wKh!iH3lpaP4k*2RI zRhMc(&)3JBHC=JO`V46yT4XwReKxHu(#6z9c7@sqeLei6TlYvQ`N zDgF?*g(M5vXmLN;E&Iy>GQ=5J5r+O*Mt(#tCqHVUMteCAy>dP<;gEb%{!zXp-;zrz zjg+=ZSEZYhs|-|LR7NTrl)cK=%2DNva!L73DWg8BKB3l8pHZ8sndT&g?dRjfBo>MQVm(i` zCTpr@(;S*x^Vb5jAPwLA)JkZjw6fZxI;M2i61Ab)RBgI8Q#+?!(0U}ewdQ z4%^P!F4_F-!S+)2`t~?`Cp@(@JhuV%ckLVO1@>+B+jiMe(oxsZ%+bQp&XMTIb!>Kg z;`q$*o#V3OS4U~TT7HfFV*R@M<@@!61u@0%ZNH_k8_xRu4vQhkS=Cw7`INJ*v!io> zbEI>obH4MI)9HH172}F?^>vMPz3qC}wa>NRb7z}A7Cbga$|>=*b#;OM{!fl~t42YwQ`EAVvSIbgPbP)tzkpsqow zK^Z|W1c=AiNS^ z7QL$)tm1}D5v|idIZIix|4oC;33&5tI@vfl6ITu{!8n&a` zxs!Xa4?O@nIhcp?FdoiJLiQelh9-ObF>KDQf^EZOk=N2~@~2^yNAN~GQb)8Tz5uBI z9{&bAla9g)$5#@B4Ewv1s48j$|C^zAcfd*D!+>a$V1q9dOMv+M#8>FwC&XE3-(Q3P zw%O%Sxg<1e6}gezLT)D~%E|I$EcIk zm(@Aye0967KS^7jhJKVayH-rAqSer9Yfoy=Xi<=pXSD>#ND5>mPkTWd27Nd~dtG}| zds|zkeXMQMc4=Q|2ejkb8SNMChNjpYw#K$rwl20LTZ*lxEz6c~dl6RmE4JCTH*71Q zA>X%sV%uulX8XZ*#C9B#cExrbO&VYivWG+3dP2_n*+xqb`% zR={H4?YH0WjNi|&*4<8jXF2C%&g#xI=Wyp(=OpKJ=c~@woo_goI9E8=IM+KjIzMvm zb~bP|ceQst=Sp$)bmh1Pxu&>g!)9ORD($Z0uIr9+$GBtNUERIh{oO;{W8HJy^W1N{ zSGm`_H@UaC_qxAvA95dayF8^lk9aD2YItgSo`n4#vTGt8ysbK70xG+cfDF;LkhKYUyL?GswyJ(pl*|Bt?deOQ&i+4-MZ37SVjz zL+3H>y@JoWU4;w^jBBe)&qz(B=2A;30k&~_;^;AAUa0T^0?*Mr11=FNCK?+f&q#h1hW z+@sr_0g%_Qx5P=M z2|5;c#8dCW5?K;U1}3MoUa)F2VS(i6PcI+OuP^I|Uhx7O0*hn>8v_gfJz({hIG>Sp z>PgIL{EBgo4OV`D6l~5_&=XBWkD+InBjw>4l6D<}XE;n6j^{WMJ!lN9m+{g}X$~~* zJJ7cu;z^PvF|+AHbd)CShaH5D*#Rk@OE9{oBDGihl*X#KgSR{G{COeG(Jl z&+nbvEjuzdAKv6X`DsbLjO(dceRA~c5lvb*X&RG2mork6vU=x`uSaTfudLn~8Sv+) z=4Pg6CFQ5WpPQPOpPidJAT>9eB_?&tMygSbTeWBt-w+q$;#x#S$AX`q+Ap25OUcel z?4FvRmX37u^K(rO%65li#x$K|%S|*qxVcYiGLphQx~F+!Y*f>>4Oxuo8X<7oSZu>% zhH(L9(xdCH5u)fu&~T8L;lYLWv8|iv@ePj|rVDLaSyv37#c7@x9}%VJVYmhbw{@FF zl#<~Zl(>!1RtBYO6iQ5N+9JADs}`-`i)zu@^rq*b&H95C+oE~ngccF-wb7l7ywp^B zhH=j}kBEzgCm}8#K8D023vvMrs;8&B*vR3C+RD$xYA7Poq22Q&O{= zX3@2XCQX}1QZmWalXLUav-HP*$CsFvo|{MU5;KwvH#fTv6(}t?72PT=DcA61CS_z~ zC+iH$i@Fr@3jK-Qa`j%UJGlE!DbZt+dmy9cx(8`nZesJ^S?0w;PxtKn?0%>$_~^1I zUruk+lb)TNkG|ilTMw#9CJI{^K~KI_bVO`q+XQ6PICzhO%okvn;x@nf1meD&8l_IIhNX_b= zPkv&dWe~eXe01}ecz7B|Cy<+#os*gc$9hg_Mt@1mPo?OnDm5C)h3Dk(#%##OrvsVlGf6F)O!e zJ}x#fE-5EEuC?KB4GjtTxD)QtJ3l46Z`K`#5uv?x13Z!0lscu<+Kg>pO>CW-AD5J# z6_=VB-#fQE9%6i4Vk9Y1lUpRuqC7LDBFt83z?j_Z%osd!fx6t`#rM{4Y?@VA|AgG6th}_; zT#C~=Cn?#wIW<3mSdDt8;i8$Kkt@}p@b=j3q!cUpM6+0W5z%zSkJW_)%@z-hgSh&& z<`B!6+@wsSL0hGoPcqSbc*gx^1F~nECL}~RhZNum_ezH(XBqt$UCii;2Gf+P%>L+Y z`Psc86FIrr$!M_XyyQr9WHcOvBoUetxu$eWOfyspeCb(vsf43VB1vW4Q92060&ang zG0kZFJmO-7LDYS63`lV(UXo!?bf@y9@3w(8Eo4)0(v5~J!zzr)PC_v87-hi z^OBPwG6}JykDKb6HxoUPB}PX0CWVl1QV7N*JD=Y15YX91r$dMy zq7{fm^7-kR=>t-mqcmu>$cWg)Cg=sx{c@7B^mJnrBa?D7lahPgVI{VTjcym2ota~F zQOXXCRG(YWAA09NQt#xWb0T`Dq-R^aI~@QCShA?sq)kq2YM)d*R9uLHINu3H!V1Za zOUmt~7Zt66U_?g79S*W-oNJ0NC5w)okzt0@&>nfHDrq&+k1$Zs5puKhVeA0+3{Na| zC4eI|PkL5bw$X#yv^Eq$JX!+%DLpq?SC)FjL|sS4L7(WlA|^Xm*FL@sU4DqsCeM;O z{W6u_>}hdvcbbFzmOQ{9(*=zzFLYbSrrNaUOZL)gjrKb2?O+Zs*P!@XJR;f8i2>lsRQKi&eqX><%GrP6Oiq6f= zMz~*QUShHiVNILICO(_mAJO`xlUkv0TsATwFIAygcK?WOcx-gR2u7u55I_}PZUp4c z&dQ5wr1Mat-Z{9*2pD=?_eZ6sB?0pceqlQy72JUmG|A2eP$Q^!4lwel3+WsZipbu% zc~o*l(1Y1o`MKHXYR3JMMlhj&PGPxQLo}P~+6z(IC8g)%2_seg4l@|hIi<#}9Uq%D?29a@LZLIp~@t*IdJ80NgSZ7pb zD~t+9Lbmnbv)xi+qoWwQS5i)D0(2douBnD=)F!q8pX858A21*zH71Gf)K!rLHxFE$IXjJ`mj%%mK{a;HE_YDQB3q^$JJqw>F~Jav0j_nF4D z?l-Mrm<_2(nb1awS%eC3=|UO+4+f|%Ehs~No6Mv291;v*(bm7DU%#0WT#kR z;7D6C&)`Po!T^Lf4db-D9?3}9Z{0Fj z>sFDSW1BYWT%$G&>Z*}UcNyK8*d2N`u@9MR>6vM0hkPiH%*_ASrupbLj^kjQk2IZo zf==7p7MOI4nI5(S91u8m61(xgvE#Itg1yk#w#d+)WD)UtP6}D#%M=5 zzDo^4Vy?KaM_{QlRE(FRH$0#En#+?A6lKa4Sd_{e&+Q)2>)U0a{69wy^+noYYsSvORB5#Cr8 zC(xDr;PYnR-J|KvULHp9TT&*bL{%<;g9e3 z*Pq|+o%r&DOocdtP~VRrto>+YBff1Z+gdiFaGgNU7Oki z=$R(sgwG`@anM=6{;0MmzU}5fg zuU)o}(ok|71-NDh+9;6JK%?BD%MRSOd^43d%OpPAE+b`VsO8owBq|7htgM)=INNwK zQcEXCN9DHKm&k+@R$u^plJfg~WygBv|7>_rdRKW_v0*lX6wj!{zB3eVVkCc4;!#NU zpC^0QpYz@)+P_cg@jj`~`$VsIDe7d$lL5}8F-*scs5Mo=HpQa(KJTwNXXnJO{H@vF zm}l#fmPzDtYsxgSNZ*31IzfK}CLKtgZ1(-=Hq}MWri};$%s8}8V|&SVh4?gNi)EG||1~w+vYi4jXMhq@vw! zr2v@%;^mEEhcU5&9#I$6N)y!(Nv-!oBD{B^dCiXS41dsr%up?XKi1I#x)?mjNyK=8#P1*n|BQ3TOsvs=|>!V5bk39WVT<-MJa52rOXhiN2Frq&a3 zHZT$AVL6v`_p*8c$mJ{9?3dMRIb}r1C1Gp@&>TCy}gZRjP_DxNQoLZ?Oi%$oi1fEk4 zP&9#2d?QtS+TKWu2++_sn=HlKj4RqPfhh759o{c3HI2Kh`T}8I687;K^0wF5>~arm+@r##q!6b`+nS2QI+})q}Wd>#^=qvAc3=593p-H&L?Fol=@2aNCtwFn`#Oe61h`Oa9sEJvvErdP?$UmrXnS-()oJKEi z0A+X)5*L1R19Zcxzjxm@9nE|pnhDa zx5o?b(eAKZQhWgk#|O$UII*A%ARQ|$OfMo6a!El5AXrbn4Bra?NqA$lQ&t}w8_k9X zz%B4(iTmvU9Rz*~=gF}2-s-No$71q4T8TF$_L0d4;U=my^l0Q1tT8FBSxJzeQ~58O zv$?|5`%_bD90aYu>Sip_|LGU%8O2)YZ!Y}Q#M3WyUq2H)m73l9FRZH*-btJXMByAx z2#s>CM3fwJQ1*N6=J)F7sG=AS=6CPh_ijaPMR|z{pMTsw|2J~}M210tCdW|*I+bfY+6E{^RJD-g@oQN;olKGm#BUyk zQ?NulNL!;Q10LCLsZqW!?&|F$s{v49DLkGUhny+zg%=dF>AIj`+;PfvnZVCe_>x8{ zaZSf;qw4W8c>>wTy9j6>?`&K%7Jr^*8ERE5J2Z>!bo!}nJ@ zi~Mp&fNQyo$;VIaig{vyM~+cHWd1<^(Pe57H~i@0Dy+V{jal5?;$!)QZ$Rv)BN5+U zrjH5t07;QjRAmyiKHRqAO7&h!w}!3-;>2j;q0#D5wJu>o-YDgF^Rncq825jtBSE>a zK+Y{e0vuG;|7zZk+FJ*beKmo4O!>beK1jz@7+ip$Q4oe}hx zaT#5%-5`}@8;R?&44xLq9Th9??3KpP(SIxn*}sq8{{8gz!ASpbF|GGvM{BpEzf>n>aJ^Y@ZY!i6L5 zi^J0UJ){Ju#=dY7py`Y&@=pt4_z4b(&oP3Df;_*=kdNti11Lo*Hm)Fw?ggLShw>Yq zt2I46$Cf-j^NXK@>~3Bm#B*LU@$VY>mnr z`-to&2$K9x)$+*ZS=4NtQl%przbbH&Z;%oo=YxI5+AEzOK2Zj%)n-Om%_wvyV-^7o z-2k#`1Drh23Rrbm%R1=B;kF=fIYuz-4CT79q(RGlUn+i8K{(85QBO4t8|yVSy{hsO zZ~kkPr9z^a0l&nJhQEg6{r-t}?;+V$Y6Ri`Sr@nrrT)A-wBKypSHr8HQRY7& z@(D$ZCnX-*0!wS*hLuCzcpw`4B)_e&Dw^B>Y;!$2vG`4lE{daDa}R0!3I$6j+r3xt z%&v2Oj$5KTCAT;~p4+1A^O|7W)3$??bug+zDTUD-NBL{PDko-7HpukH{1iX^A9c|Z ArvLx| literal 148850 zcmeFadtg&lwm*K7lbobUNz+nGd8L37l?p1IDM|&3I;lEN8^K8dr9KBoX9lrN+B**P zVH`_(N=LnOeRLl3P-k=;Z_%ouDwMWT6>(^pQ63H=C?=$0EwwErSrCuNFT08aw$ z2jl^=0LP7p1H1zGEuai=GhiNIBH(aJrnnVw8(^O$Q+#zyruc(olrc6_6aha-%M`b# zW{UR$<^ZmOJ-T^cLeg|j()BxOodjQJ-*8%bXvjCF;V*zGB zM6*)=1>hqUiKnfrttki!4_#AK{;AQP5{T~4L0~Q130>%L( zzz3R5`WFCC0e%W70t^b9^v3{e0ILA=08;=dfKLsZ^lgAw0B*otfSUk0fL}|S^veOy z={M<}Nt^Uz0d2-j`kw=m0d8@wWB@#(oh#j^nJfKPm@C}^m=CxNkOugPZmx7a;61Tc znxw6jQUGC1t@JhE6TrIwKj4pm2EeZX&k40st5hp(0MrBisjrnb0{#PVGhjTx47kl) zE4fXz(#uJ;((eHKQ);D7z%KwvfcGr5QZC@sm|E#xz?Fc492s_0qzIf z0hj}@0-jB)mA((yomwm915R6OrC$TC1zZG>GHa!takbI`KpS8Kpbqd0fD>>DzzFy< zqgL7pcp30CU^T!AxCD>|NCTWcuU7gAAeat%0Nw&jLHR$?6d8MjB4ZoiNx)dZrG_Ho z3;H5s9pGnx8v#3XMaDk>egk+2a9c`|(Pb$zP6ea``o|O*KL>OHwgP^UT4WppxMz}4=mQ)F90ME$ z90nW&><4@V=mvZUcptC>&<5BFXaT$qcm?n>;6=dmfQ^7Z0vZ8N03HW40O|mb03HHV z0v-gE14;oa0rvq`0PX~o0G0t+sSOLSreMv#UCx8yXYk;Q!YXB<& zivbRRPA4Y~h;q`WfDZtzfY$+k2K)zLE#Q}c6@X;`C*W$prGROGu>b+kua%Sj33wmy zHsE={(||_+zXbdoVAse=8wEM(w}3|gWq_Xm76X0&m;*Q_p&UR9;Ay}^01sdh;Bvq| z;QJw9E8tIndO$T`6<`VA7viZTMRO`?mElxUkN#BBcHOBY+a&ZIAOlb_RSiOYi%`(pe-|Q6SQ_8-Zty@d|isw9aaf9@B2SB5TVf<=KA=pLo$bziD!Mc|rC3HG){0Uty@8 zUn$s1=lC^C-qZ@ark2iVzDKq-O~%ud=Ih?nP|&#iO^*rJp_1$IVxp7+f`Q6PO|!6T zf-j>+@L9ZqsnwnA&qtfzTqW3d7&JLwvAVZT$wKvk*90ZE4DbNpe!wpPKNA{fK^1jA zY6%Ehme^Ii^$M2!ec`r}ojc{8<{RrAx?NMZScH~Kg`lXh`GxQAn(DLN0%|W8{5tk> z8(!`Z{Cf6s7hZlM_$Bso4_@vS{KEA5_Z#-NxHY?`X0@Y;>F;FRf+l3y{5m||#vk=~ zyo*0dc)W)mclrg5{IPs6?^E}9d-VdvZL!xCX=ZIlI>UAqbZf_b@ym^0biV>fKFaOYkPA(>znp1 zHlbynFss4#m^N@s@rwdc?jK-HUF(nK9`AhX#3>%VUn7Jj$u{f6&DuRjWQS39Nxs@Y zdVEj*-lIs?i8-yycOtQ^`I_0S@3Ea#}+=XTYnC#y4pYFBh69iH=9E zKqTdM$>m1#fM;6Bs#vTOqm?Po{N6)I2%aGDniWxO>67r#5W%0Eh__M_Jm(>oQL$xC zQf!kZDdjrEOo%KkS>7fIC^o0n=~T+4!0#1?16txl5QWqs1dnP+;8)5{dZgIE{R&~! z{QWuy8uRbhAie>*KuBrREA<-icCu_KAt7^ACS{%V4`!a7*$I`Qxt8V7pFm z8`RQnD_Q=&Q5ZZi*og$1$8)+vU)^F^Tz%47W|jBuIke~Sz`pA3);%Hfo}JY}>*G1C zdk*i6CD^|wu;&<0aKzls6Ljwh>@-*;^LuNO2lotidD}JKE+KTO*j}cqX%nnGdO&B*0gSW%D$Qh_mZ2tMS zc=(?$L^#KEd7Fu_^!8|x1&HRf=5#w3b(HAr-USLI1qOkLaYO+cgIzW_17(WOW%4qsZ^2!g!5 zC0!UiChy%*d%+|{ebY~wBmKPn)Ei_6u6) zpfqigpmj6JsD;SjWU%>B5R&h`z}u0${tBM=$!Ol(Sl(Qo7qm*u`#qNT_mr14)FpX` ziKL1Wno!pUiNANCcI-r*JBeOkC<*E4f%Ubmd7&zJRjK-Mc=^t{9RaOS*YU)M^+6lL{oWu-PZdQ!?LBfv`b-n^i_uC%5X=y zWPb@WdD>Oe-KlD+RbK`Eq=W*&FGOE?ul*&&97W=s_k4wYosP&9VQt~JosJ2wUB z`C9u+vp<)2%X_OsQ>sthUN*MwnIGA_r^c0w!AHfeBeRr031fnfh}EZsiXm@dL=*ZO zJ${8pZK#7D4_8-yo9!0Yy1orHdsjq04e1a!DR%f${WUz=?xRW`f5wL;t=NNV_4h#%u zKrRiKyVr=pej%t(eJF5UWs6**%T?xFbB(V=hvKIQZfmYQj=g3W0u85|=DwI=SQhy8 zX(}5i324Eob%ib2Cu{$P0`t16v~pK)gMh+f$P$e+48U&o=ea&TCevU?Jf2nJ8Ivo| zqhvONSqYhQJLpAM-)ipk=xv5=4qL!+I^Z&x)rCY z!}oi}Q0giSoIYp{6RX4j=GIq-mv~aq5&1v-p?77Ub`3=ef>_uGM8KKJA*pFf;1}T^ z=IyH*Kv2HmHaA@sxHVkoI2CY(Wmg~2yfFLy?EUsS-BmN)#;c~dbysD34EC1-bHdmE zu=f2U2Bg0veE1|D)3W#3Uy6=HF_0BL+-p8inI!K-9Z5(M{81Pk1XkkIH^-xHZX<^jOkON!yY>NHUpHO&O*KlNOjJo2Htko1QVgm4}?bq$@V5_D)&4RPN1JXH!16V~+S>oVSCf zZOp(T^pTxSl5>5N&AEOv;1$5DHk$ea6Pd1*W=oSH zFkcfYN5#!To+Gm6=SpEDbPsz4!9vRwM>w=({T9SRcFgk5-)0ls7uMOEZD2e|LX4w) z45o0tGw|~WWXL+l5Ywjv-blz+=Ze&ohZ)xUg*qF{)135%fFT}uPf#2YG?UkAiB`Db zWt+wkM$;)gyk^qbXrgfj^vOzLSl&?x`6&h`Cuna=e{8#H3s$K6mR5%acT#mY#l3WwHT1w$T8u!^Gv4VJChW3aH34JX zUMobJHCqhQF6)xefvfU8AHQmCPTOUzK4o<;^rxlHKCsK`7t&sxLO(pyjA~1*pg|@9 znL?9L5HB{(8TdEF)Vc%}&VN|QbZeXPvzE6vrvz3h&Oo}bwAlz=xm&6JylSoeHQQQr z7|r@v_HKOLhEz8wYwdp9Tz*KK0?So+B?OQs(~Ox4-A zg+=GPbxq?#X0|xDuYXvGv~GNZMHt*u{6cTbF~zya=HG5}1~x{(JIR4}=_jf$ZEWFb z5g;@{VHEtE-nMm0Z`uT*N!YmAwz0{E@vT!fzG7Sd2K~NjTi)LCt}P_C?6N_tQ&+EB zE)-h2ZO!?+rUrArNie4fv+^>oO?A&{*xz8&3f}oz0TOCfz0Hvtx}tvXtUL*k=WQ?w zvo<+WZM5LqNGsqQQbXs@l96#%ClUw(ejNPgI{Kjmizx9towq~R-mu@+AZdk8fB=gC z3S)K7va{+u_6>q?i)7bGh}*zf+P*?_Dxy=Ldk~3$M^sQUyOeQ3`i7O~hFSU?fC z%u^J1CM;f{wGWjv!1g2vz6>p_FG71x>(lLL$*GU!yaF|PGH1ya$B678C}m%~XmGFI zD&!nMZCzT_wv1ILULD#+CCmFS2C>Bqkaa&c%za=Gc|W7_fhYo?L{2y4a){;`E~4dk z&F`z!ahK@F3f^v^bm3rIuj0w070aH(ro)VNK({G)KnHZY)8zdP`>#Z0Ws~F#Nyyvd z=?&PGP*&jWNN7T!TnU{Ad_vZW{=oSW*=A&@paC&DFP^4Ffd=w^%}K#pE^ZO5U7yjv z6VK5Kyxdyfsu!%3kbd@t_OLoFfm5f6TtviKc^EA2AIPV~p@vTRo9te@FBe=%)RLUU zk620V5xb&n4f~W2qb#Jyk5Q0MSOQH{l>8Cv5T0J#yO>6gB1G$8WDZG;#*qstYAA#^Yo{2_%mZ7&T)8l^of*zY@GV7HpRG9M8)gwt3Rf_s}dhtpiKS0;GP( zfw-e`#$$rKLxe>(uMPT9A7yhX_=6ca$%sjQH?7yq@(v^pY#O$O{IH~oZ7_6pO22`S z$Z3VyfvF|3#Rn5_Ez}oDcIX0zZ%U`g78Gv#O*E*#w_*&p0R)yPOmNaN2!=KqrkMCQ ztP^s&H|qk^kBgE_+$cJ9V`;&dvO1+okKt8rY*7?avs`ipOuDil7fR6H1G&e2t_ZY) zC<=kP-qL@>E016{4^;G4w4nkSjrTc*eXb#;Jff6`10O-GQn93l$X|)@!ti z41*&;pbcn(1$k|<5SXFXMcP%VwL%TN1(AAl!@ffg-!8Qk1u|dVU!C zg=vR`pY^A0AxsX2T~nKdol7iE7mqYzajlS@#}e3$Us`OR&@6>PhthyFJQdR~$51&M z*z7i*#tf%gceHhd#_H{g*0LEYjHFZ6Ius}$fQ^x|J=ipo14CN$6DbUrf|s*9^GSh%J<_U_TZ&zQ z8^0wxOC<1w7D`jsA&tZ0$SY5-B%Ok3jpr(LNE_8yX?6+`7gjf9xx#S4EMBLl>irgiP72 zK~iyG8XkDTP%H1zh*(8ABBCRl*Xh}nNG)ial4`vr6I7t5fB8?gc!=zXbI|IuVU}Oxe`xg8U`?_S8=Xf2G zmR9rb$w(4W(|sQX&bm*aW+Qo0pyXRh41EKMOhPFoxUZ$z8)M*fOp(f%;jyOyahcV)isw*uL0w2RF z!PG3k+L6ruO6;$Z{Y7}b8Ufid9ELFtRR@HT=F@{ncqn{>Xl-P*)Gm5?C92mV2iDJZ)s}%%)rqs>H0&Rr_ zON6?Wrnx&KltnI7aC%4PHuL(>RD$J#htH!uf18G9Vx3Fp$@uIsb$@BT_*3co0 z8N<~t!oHxn=8;3QTTdQ2@1^T6ndVN>O}pw=kD>aiX&&uM*P930AAK}9?u(`3``>`p`3v7HA*((^n{_1BS1#1MwBC1gxiDKC8g_q`)9Q0z62wj- zvdU<&j20`oMu3#HA!6I~Ghu@^Yt#M01|e$`_8;v!l0VHiK$mHt&7)E_6-iJ8h?+oS8o+oGnZo9Kv&w;~bp`4Tv_|Z@~si-VXOz$^=9Nt;cBh7HO@) zB?@Vp>iq53T#atZc`v6MU3I}Cr(b(Df599BO>o)L(iFdNHR7C-3x(L%2ucsl127-uHFesx@0h0ST~C^S+QDnoP;)u{xBpVgKam zLaTYV-1dS{?H0Ws=66aHCP8nNGAFIMj8EunqF*5Ip!p}6PwhHB(M2cMurrX2)}X%% zNDG?5SaHo9=*Cb{%nltiGMeN;kvm``FjC631v*pfnsj<(?8uljryDK2m%^gGS$YJF z?@pqinj-Wi?J>~{>)4p>C1$)Ly$`jlGGX>WK8znVqL&rCA)fQF;1ehiSYE#zDzm zbC3462p2h{2DNGhj&<|=!(aXRN4UXsT>)k?b(HqmOvUC06=dN=a$P zP<7G8 z@^s8`@L|Gkqubgs-;!1Dh}5^6KgC9%XAI-H95AM?qcUvom`4%rWA-{dwp@>a9 z-e<4Aa-Qd(HdymdJfBs&)6-obch5xut&*`Q$6Kz1>)TCj% z>dA+goaA^%Ra=X?<^J`jED{4KG2S`PB*b)kR!ApL=PIt>kLJBoj(s3YS1^3yxiZbO z4g0zMi0o!GyA+2JiRDxS%pK)MTLU)pgDfFtbe4iPDVncR=Vi8$o&0HR=Ur$1KEkoW82|b1s8t_fEaQ^&HCd-{KRBJp2Vz|Ix z4q}0>c+U6EKR8+IHYsqY2t0W(XwVFHRtwAoPCNQ2Aw;$4+zYV%;|zT=xT9Ba+c;@x zm@iah>~>J=z~aut5FbSXs2 z3#j<~nh%93sIc07{&YncGX(|@OkY5l(%HWOdxlJihC#eIa43RpD2?FGqDH#MGt|aX zT20mLElu%H_;LV!q`7_E*ZWH~Cfr@gCh7SY~CTWl@Gm8tt~Ir9jsbgI`6~&nU-U6Cbv`A0UUzoH@;Z!QWI(6eG#GX>lj8zWKLk7EOc zyl6t>M)iu*5-7(~n{|p9{Aq-D$t$6(gr-F&=$Y7=K>Zk2`55+*1d|FE&<-h2!h*`g z7F6^01)Buei1O!Yh0-yYq`Ho6OqZ(W{8u~$@4L*L7uFT3nLvc z&_(2fVYtyua9@T6vi`-xCqh|=zm^sgJFjz`&VYy^t!CSP6n2XNZUd)Z%sb`Lh8_=1 zV`&EWO>A}E#1l2{Ln4M(&2OMfXm80r^&}U8!Alf2hsl)|x!g+Hg3Ok59^LDg5b^S}ucd zCf~TJE>vSZy42@_25EvGD+U)pzXw7^T3twls}5e!SMX6ov22+ZFCO-6MdQ&^T6n=l zCwR>2s?x_8uR?2A=Ae>;n0*-UYvwGL>lb_;<`C zW1fV5iz&(l`aC%_RgI(Dtr7T13;NT9- zmfB~pSGAAF>)WCV2(fI8`@V+-IhLX%6oQ|FOkCY}k5yAF!pa9x8fqNZ^+=s2MW+}T zeY>1lxf84T!oa2;0%#swc?22uw`8I6Uh@Jd$)htWMY zF5+qa|Mnwd(r9$P2bzXDY$*0COqRyrX96YQu9E0*C}J?h`ds~}17_NgM=2ccDCt)m z{men)TQC`oL~-a-B|$uZR=CP&b%+$(Y__Qkmhta?SJIOBsF4hYah zUitg-oxxQRbQg7c&Omf+n1|(l*;JwhW=t&e&FV7$!sAPq(o)eu2}(bW_BCbRicRFR z7zm;{pF_?<$_iiY&!YKU#Wq@;zI!AcDm*weeB$}KYZaIg>wcun{wgbbdvr|w3yL-I z8#FUmbn6a<$-mmIJCgJwvG-rfG%s?dgT0H7CsK?pfp@W=3Zn-(;HW(LJa}@4L&0X& zumHIP^Gt0?2DH)G?ujeB>mK9hkekM}E8v0(5U4lBg8_hURg&^eP{n?bbC3G|4beiLo18XD} zU&nopUZ11S=jaDRlRW6Gbzv_!rxg#WMX)#dYEz2vXITc;3ip)eHai&Fvyl0!*`*gY zFJ!M-zLLJ?tJ!0E(gF7b?A^BvQM`^G2@XV9w&+#|q6E-jR_#N++cQugYdy9p@w)`? z*uF+r${6at+73 z(l1=I>(Z;LJ=2g-BlxX&^Vx35s+VreY8DhcZMrTCQLv|()|P-~~#M_hZ!o+TN zm^@=`{^dk6Y)M(8B!d7%>B+2gJ~u(0(6$0|YzE8F`4F~%g(=R8-d>CD>}7!%_~dp@ zKJaAK!mNM+#bPiA@T9an#Q2IPr(~3zviV$OL2<2f^lZv!^e_`WN;oNi>A#J}G%E5S zDj8FA?jm$xwAzO5bzh1JrrAWr7!SC$A&?yFS?Vv?o>1byk7kz`g>%RmxirF= z)dMZ5Si?5_c{8@A+vO+ULXEvX*YVKzJ4%j2FQh3J(m`?Cx(*?kxEFal(xDPkbZ0>_ z77(2UM%;Em*2m+laJlxG47mMOY$g2<_5gTnKtxNdQLH+yxLkyU~{i&t3QwA zpsO$VX9$l0)>_)(>nQ274;pYrAldG{@H8Q+{O0Bi9*Wt4La{2N(B^dVPw?Evha>83 zbWLJXI~vd;Se?*x-~}>Nv_|FF#Mo*u`pm%iIx}bYeodt-{49TmPC-D z(85vJ!&*0d2KF9I@*n|ffuk}cD}3b~LyRRH!@x3f_v$TYHYB0#D$+dU<_y!CRGWV% zdtmhapaa5xV8##!g(HfT@wVG>Xz*wIHeVUOdaI z8Uth5uf=5*-VQnnfsBQtGcwJB#F$@G4X*}C|0uDBv+;X&subH7nC@!-kO5};Lx$o3 z`F>6%7-Qrkt(USr!?ICwhV%26Fr1^Y8@@Ak(^+GwEE;jB|8=b4jf?U2dU{J5d?U!v zMwPZwxHHN%ct)=fODDut;i?ODl_uA=rlT-OgU;Hwz_0Q0u&i?eZ^S5Xyp`T~=j9Cf zC;~WBc!&*eNDRW`K7rJSp;7gM8^FOBg(xdVh7q)Xl2I;UM#c0G`Q7R0r@0h9O1#3D zw1RU|Pbdp307xq>bNlGQ;toe+$9Wz7@B{|O^(4rpNX6d?JC2&lmeD43{Xc2ITW4(m z&cpP6M*}8wl=Mg)I71`r;DcA7^E!I@03M0^zB6!-PD#`T#(nNFoVUmo)7!x$nRi<& zrj;DZ3$mZt?T7%qW8p{>9k43jlPBGD5w>HJOj!RwGNG&KSP%LGYci(U^*7KdHgtm_ z&oShIK2EF5&=~YWOv(EvM5cnpQZ0J2SE<7Mo>0cmF^%@IGWyi6%yaZsOexjpxsI2O z=f#bP<}(!}ajg99nA}?=us*bYaWB^!@58X6HDw(faDe@rI^pTTQ<#+YoPe|-d}zRb zMtw%9;_{A`4J|Y!`qPmw{H7!<8VtcZM%=q(8Fbr~G~#{^#V5SkwC4~Q6e+DiwRu$>N@Bb~d$A=p@L7ImP&b{nk{7(zQzdu^C#KZLoPBnPM-TF%E0 zG^S!po@2PeK~x_qTR_3yDwBdEC=9n*JOIY%3z$Ns24hzZ{a(PbgGu0O$h(V;zJ72| zA5JAy{4Ppuod{}=&`!AHAk*HhXB*_-fjipJK>A?lT8^8fxO1YoP*d!@DNu8JfrR^C zL$w+G8lxuWa8k{n-a%#B5BZZo*3mslQy`lFtAK|Xd`V5+ly1+feI%o7EU?A1fC?pOk!1Tk4ipGni1QbXLyhn-1 z6suIgdRl?GSXCb_fuF*QRw9W`Gl3*Q6Xpyy zY_VX%0*33%G%`XL5bHBFc`Sag0Rlg464Fp*HP}ao3h(HLA~<~a>W{FXW8Bq$W^;!~ z=s>=qUQ$FkDi{c6M}!D8G3pl)myx|p#1ci(5+F;?plVk{AK>ZxGkCE{;IU0$xmXk9 z<>rqrchq(>meDag&N;}=RuRB~ufbNa1q2Pi6+jHE3`yNUv%q4E2H z(6&3yz=38j=qc11Do!0hG+2?fJJYB0K|+WYT2cknO&{Tp6`^W^!s)l3mR7MT^>~x% zc*3ABJIO}}Tq4BaYpQJ8#0rUeZDP)j$`MeG$r<7ZgWX)9B`$c8)dWID>xvc+y$amF&v9jmx`H*l9MtP%y&t0+=HQ?MQagD zj;iE!LnG!jQy3G1^GAjxE1pZ3KQUHPeM(_}$mXrY?mdpYCFYY94>Y3VN@1_paWoBc zub6)Dh13j44&rxkh$79%=3UJEw;sp73X zPT0N!V+E6dhjGRo_#Fm*m}{f>9p)O!m(j9^ErD)68NhzjLnU2_D`GCtkDAVc=VP-X z+U`SC?xB(GK6I9LA3|NAGHZ82E3amSkKm)k0Uu7BDUSJE0X|d2^nn0)40AaVPSqEP zIdKUNnv_szz+MB-NozR<9Kqa{d0@vpMlb+VD-Ofg77A>Mo?1itAqGAtrjCegHNg@@m zVE%at3#~EueHk_~NVVU*g!!HpW-q5}RvUo8OX+%uT`~zFMS?Ab zWR+3Z$ed(dv7W)~NBF;pc8S4ZY)+7VPZndS2SapY!~hPiIfnA2h;2=w&Hr1$*ZrI!0xS+1T`YM8m>R1uY6Q%0o~ii7Hh^b5eo3Pz z@lT^DZmWsb^Ak)!EMsTwi*dWx8C8BAM6xrG^n4ksl}H!Erh~9i=MfA>QUh)Nqm11K zqU?q<2#x{Tt6c$$l#bi9&5nL|Dj6r`Vhq3nTJYg=AoWlqd&c6arpKaj6?^A@uE##S z&EKPs?$qd@@A8cawx6r+A^UF?vQPHC>^5xEpkEtWi{R2XkHj-_VgQ%-G{9xk z=Xzd@&2NyLjh|gWqXQU%BZkb5VNX)59-BWoF#+3f#_CH9{(`)dqPT>ae>}Mk`t#1f zg;uPU*yZgvI|e)x;XW8kd_Ae=uCUm}7qv)&om<#t_rpTbN1J$knDQbr+<6Q8x`MWb zy(gX<``(FXvv^~;{mJG}mz?V!K}uJjxI1H!I@GNh6h_3~OHD(AIXNYcGSAD)fkyn@ zB|LGq5<0LrtFF?{^!x~p#9CN`he<1i?qu^%J8N;20V!w35L8T+Qyhu8U z0--$q8n2D22@8`G!=_ULV+-5|l^dU#gEZDVp;8QR1&V&1;VH-`taL70jq6c{udFia zce7(y-^1I&)v5TqtjY}3^zX6Y$q2ZE1wY7xUtq!Td7$P)F@Pm`b?hxNxY8st*{2j@ z-Iy#?t>qYy5iGt~#NrG4QnU(%Stn`^AtN`~{}kLGdEsQyp&K1=sm9=~i0P(16dw50 zyp`}Ut4g1FE4%5zg!^$G64+%AGxRe{)!QE)U;&f#I~;?z!rur#reFj8jDdL#KS^*A z#g94kApROdZu~WbR^o4R=%)}c{WwA(IQ>>K1BcO35vL{aEF@ksFd`MxBhj`}XkHA> z&}^OySIgnP6)+B+C57+$=saQw?(b^Tz`J#hLGFD4$xh*%88z550b7Gh*v35(`%c|f z-MxTSfVH}t@t6Nwtt(fb9?~%b5tLR~9YeXKv&7a1jjAc#+*)})n_6g@P`zM`8#_Am zV8S5>hcVi19TdoTG~R1)!QJ4@k~0dkc*pUkcU0lFEhA1BW91ify{X@ug;#hhyY&-W zCo4GEODcF6a+wU!JUggr#=7}UzL<>-JnS6uA!iA!W%iz^>;0|%WNb1ujAce!)k6mY zbFw->*D^%}(-HPti?N_B(80~gn7~Ua?ua4NH?gBDyvd0JNrhP<9J>fZA!OEu#)s3G z(B^ttTK-uXyZ^`6Jzoj*eoDq7jmN6d!AQBnNVs$jvZ8o!zuBh#p4)S?zn zJVPj0sba$7yDN4lFG?s~?VW8Si_{CP-flWZ%4Lj^7_B-acCBPmk#=7r@g8DxUYq+c z)D=v9ZlF)w8d3Do0bK#If6u}bWJW^Qsu^Jw4Qm_`U=_>MwURdK1}#n>If2)A<^BW>&BIxI%_#WrUY=}>`O zGC)VJP!dpMxS;p}v;%TdaKmu}l?uPe(iJNmG4eON#*_eMz+Dkl@5ddiIvyC1~HoMd){$#B;vyWkeYEU7qh>=?qK ziW2NDP;hK?^E71k3O&q?n_TkH4m#L8p*#Aa-$YAeHSCUei_Jd^O4>YZ-$T{$YZt<~ zWex&HY-;``gN+7Kpp`fNk`bMgSs<4oU@appmn3A*M|SQRWo0R9dLD)|7D-#VKnD|& z_`&OLGsJZ_9&AJzCil%K!^q0mx?1^; zLQqhJF|m-)1oH5CYio(L#YjF*>yUrz{n8c#UTpqFS8V+Sw;Ij$*%oiLF z)D;j`wKo5U@k~^XXQ9oXWr)&rL^+PPoQ>z>iwtKiW>q|olAFB>gAJGX#KLIX3$Fe) z|DjlrE;PpG|1$m>aVV%?i<^8e#U+wN8IQ5Z$l8BAo~ltAM@Un2Kw{A}Df56^aD#b_ zJio?g52D0t)Zx1X(HBOP=x!s=csoAt5shwqmeZBTtYlsrYUjl8Nygqb=Q*8{J2h9y z&C0d;b7O%e026qvXtX9n-KB^mi;v%HlS zq4XlUs{=OWDKNmrss-{XNim9XUDU=sOreZ5l$e?q;OtA8X;T%ql!Q|A9LdZ-21*we z>R7hNCCI-}^W1o4HvdiWm$TK3BT@f)%@VC0$RA_G8iqC)=mdtUw9_1O^AuI7B4wN( zv0TJVt;!re3t0kNpv98!M=GUPmmM6zgaGh%Y<|`Ht81V^*PK~7+rEp{4x@G&uaXN( z6lV#%^WUxQf7eu1)l+?*qS%lh23hmsL}-R7_P<30?D5AJI&4P7mVsW2RX9`iYZeHa z(lonlm?>z;I|OSYaW|CH2F!NQ{?8Q+-zB&|gkcIAu7T&7u=>>))h%!~ccja%w3@ad zk^75b)u$9B;`doTAbhQ4yK!$QY#vE_lQ_TY4btk`8lcErIcAH(S|&UvBkKMS6+k#)mg zhsr)j-Ju_!Q8heEurvAJsX7F;X=IZ~CSsxe&$w0!jnRs0Z#XCAw6YP`U?8I)6Bu#wMRLRrimm>Pj3(NH+#f>GgKQy$=@V}5=B*954D zTgVL72QwIyV~%%Mx9U(EUDH@`ke?^#av;{eD1jqB==3y>Fm^DGV2#B%Lai7_u*G2& z*N1fr^joh`*DLqB#lM84zxuZS^~7I@)zf{wT><{De!r%zVSmk0 zTmcO>PxlSQBH9qqR`X?wkXPC3d9%JX&(T-fJc8+?LLT}Q<_ah0$HieCgErBOVZKs~=tktE!D!!xkm_>uXA&Zcp z{Js#Ibh$FzV~Nfbu|(C|LKcGun$+9zd5#kA{?jpwJ%aLLDeLgUZsSDa{i729Cnf%k znmFoejNZ^MNyAvC^6G%#z;5yiofQ1#XehlsZSG8PgN-Tr2^JUGVu@L!>ZL4cm0ZehdH{u|Y_z zJ9VRr)$n2?t>-FM6ED_r&SLYa`-s*!)D)*}_DM4T)ehDlsBdl9+t7X!%z`<%5vgb? zb{NpPTf<4w5W3FsS-Simt7E!b9#YEExOzI{Dq4uP^5Xx+vRRH8CtUA6sjEn(`n3E^ zU=coCapGAD&`|(Gi3N>B!1_N&fXbFemJQzAYK+z|p3&O0|6OI~k(DJVLe>yAH<%QM z#b4fAhYR(edLdbGA7gI9u!FOGYSkP|W)fVQ#tgY+mM7CnlK>VW?!Z+<1I!K|!Q_g~ zgFdJ&uy6GfbCG3*O!Nv=QD}Jl+J0=sr!tF)7TLjw$kQ9W(m&Z5j{{#v<~kJjGdP*Z zuwgDVII+-?r5eGP(Z!B2Cf2g+!supaT}2kN?e8ITf-RJRzgZzG{-%a-LA+uOQTVH< zn({X3-qO9RYty~XjpI1`#N;Kj{Lz)tEf$ksz-ko^m>zC$PFP7#Z@&|c4P zaUV7g%HhT4&oM>UnNWZDd1`K1<;zv|YX<6Y%gqvh)PZq)-V6YHV z0Bp}tZ?U%$55;!41}Bo9R0>0MKLc#vJRP^nBYQFQ7j=^!+^od{E&2`~RHYv< z6-N?jIWv&Gn=uhAX|xYgDF(L)tCPqX1zvbB!`d+?)+%O>SLVQdEEa@mY{2IKS^OOn zKu$Lb9_unK0!hkZF*E_${J)O9gPX}nueJFfjfe654V(YzSP)DT&&6J_m(Z`2_rYNy z7KHdcu@{CQ`D06-C3bif6CFrW!wC}G2zbPmEVn`JffbSy`7{yvR3Syg(!eB11Oq9K`(b(lNA-D~MiK1wyJ)8Ni!_lx`z`2+$LKP!h1(A&xf2z=KMkyZHBrJ3^{C8w{ z98oiB(Njl?MR4vw@)*)UI9fkq5Y3Jq;V+JT5V{EoS#%tIa0!Z(QRK*Gv0{KWItNNO z46JCf76t06*~R0WQ<+-W@yuWh6V65(>Z-R%v{Vh zI{`tSU)_IbvH4HOJ1Zs%Fs+iiLOaeSfl}-c{X^InWw>uG}U+b&&fjO05XUl znoZ~^)gZa1t9``=EgDHeilTdK+Vog}V>JU~a;-QHq}Je|L@(TaNQYF!)qBz1Ef(fO zPshDFk%-lx!4GClP&3+#I2BCV^GC2|Fw|tKl-TE-ok*UTDq`_oK^Vri4`W;HSa2hm z$C-Ny2#jZ3T!_D>=-Cfd6dGwsGA)a_OY!NqN4A~zY#TdWpF(PH%_w~t}k{C zdrQJX&B|dxOAp|0aP?+gla?`yU~q-o_C}WDFr<2E!9dGElOM^g6bd zB5KD|>^O=&gNW3dSR2wQIWUZVJE_+s(HCNnCab&|XUrM&sJwwjDQ~=&5#8J1fgri^ z#;#Z(Tl9E)Cb;;ghd@|dbR45~fVR*_FqIWdRRh;OFcro8S4?F=v!YBzLtl1~BOQzo zG#c=P(TyEbjB8>Md>;p&uF!bkK1OAOe`HJ=a7H~@=rO?=b+FI_&ElBsI7Ti<>^U&z@z~_|EP0V%^EtZT@33Ck5L+wvW78BC2aq#`EXiwtox9sZSXz@6B z*m<7KbA>(6j6f5euL^+@;?cNRrh9@QmOZwS`oL(yoJBO#Y?tR4fT?I_B+u24-}VT2 z0(>K4THA(Gs1``)cOaeTaAOg?e=*D^V!+YI5~iACT93`|GDGRNlHRYnW~*4@Vm}-d z)g;U`Flvx%tHL<=<&?jJ~9i>l1m*wDd()83p8CBSzF^_67L-RgL zoH+jIJ;n?u22?VmEDyO-o+0c)e;QF2G1q?(b3JPFzeJ6-#H>ld)$mnOYx3Ts!#rWK zCl$nP3IG2<`u%ewU2~7F3P%)7n+v?J1^bv<##N(R<8p??TY^BK;?Kq;kTWBh z1Z)P=Cw$zZLW5(&j*CP4gCX`9jEC-@p(fJmA;4h~hvdNZ0io&mk_lga_n>Q!H-5pF z;593Ig_Ih6JPm((@CUB+DHVUmIWf%pht857OwY7L1H+#LAk%!~QWmCBLi!v_4?dhA zP2N+zlh0tv4f8?zd`9~DtC*l*PMz<=XiGD4A1Q-Q|3&Dt8sQXeuJY~~fQ1&4ymmj$ zgaaeiN+dJrs3lHn;;1Ff@Qpfl&{-Eu(PIs_)uC+t(oAN8=boi8&ATfDdpUZ6MSs1u z$Gk;H(V=vNCPhQPRYTQGSWr@Qax^-U5G@;Wy7OGUSV+y%c#JTK!=3E{+*{X+u7DpY z*39Z%Dk?r{$uaZAELap6j`4E4L$z3xz`6hy@gCEsbU zQLFq>yvmFb6`*-g`N)k~HQW4;>xkiVJ-%V~2(FglsuFf`AH0kVLRh!mm5c^4yQDf- z5OKlI*Ri9+U}whWfj9FtIruImv&se76RuE*u?KebFivpHBik{MkMjB#HO|6!y-9_O zrJ-TZR*nOWd-1(*rpeM6deaH-L@K#2G+yofN8^+s^Ae7ofF3QlIC7Cnd)jBXC2#-g zzg6k4bo7y{{Q zqio8LEWn1IvgreMB3xFeMfpC*(d^wyuHQNkRxi8ABVJ zSR=M}65F~yUWnS((a5L-f}knesn)!4WF|HA*?6dmkFxcJC_WTIj+fvAFe>W!f5c*2 zUyj!bkCudS60M^``@iPnt*^x^F`*J75!`j~`AJ$h9gDZ?KKM2t``=f$EnXdU3P}Sd z3UJ%(IR+B%f>Gm*=uGRC_;}-pCzys}^7$y71lTaVl#5FBtt*9jxS$-iX9r1}V336W zClxQ~atv-y&KBi7UeP8CuiUq=yRp;oz_Y>+IU*RtX zt9bni1suC09Q0*h3-%_=$-)0g_b zyXFKM;Uq3I51C1X<7Q>5^M8%k`g7m~tKq~rp=|yiB)%+;zu;Iy5C(2B*acjOVO<&i z_sC;wO)L%DT$OR%78ER)OR$L;Av=iE-vP((PD(4s(y|M5lsE3qh(|sjizM?1YFL4j zC|hHJOl48txIH1q?pP!yik4;_eTJAa;`T7*jg+Fsw=lzyzfM9Jt8NeB5{zZGS^^t+ z+x}B++e2#GL`#%~j2o`YqBh}&JR=g?WQnCoR&sB|XCZFLinrX~)0;xo)Oj`Z zoY5=|}?qWN+c5nfMA8wk-?@Tgk)bPn!8S z3rj=TG9H#WiS~~gEivT|ckDe&R|8V;bMfGmgy80Q@OcTr@5O`D6N3L44^AwkCmwuB zLh8(v7$y@Ef@jBr6H}MOgD*%({m|KipN|J8;{9ek_@abDj>Lm6P6$r6#t|p%6A!*TA^7=t z@D&Nc2jjsL6M|31gYy%DuS|cPD1d!c<{J{;G5&Yi9KHy54NhQ@0#%7gvTcQ zdBU~{A5Hjbf@YF#;>3xwCtg4C_K6h}8zw$C@vVt_CLWvk+wp%H-!^{V_}=k`3APE} zpD=a&72}J>uNaR-Cp@;Hm18;i4tG0+j|g+(uC0eP<;gml8?dshTOlb}6T^Jtq>qc+ zT*W_r`w3ISKiQ}4T5cD5uyxvU2mPE*u0DdDZl7y+WzN=4LawUG43xU9k$5hRwqIyH{=e$tr|zy!U~Pchf^N^v&UD8k`=T z?^q?^V~x1nLpI?)-nv==d%Tg*&rr!+kKUVm=PG!NSt3 z@ON27u6O>ONOGxe3Kek?rTo>%ly{V-A?1S=$vmZAcL*uTLBS30gviF9K0u8WgbgKF z(%-(yZD#0sU{onth2t;dh02+UO~5p{iX9*sR(&9boS57WWJV`0OUo32t}ysw`E4ax z^kw!Xe?u>!i+1Ix)^)4jO!v41;O9b4XxPEFlZ67tHr#m|v7e*E^@u{}R>r>$+Dazt}*?LPd5G@lClJja%!z&*#2dC%9r@?l@) z&}}7uU<^lYZm_j+m$(GwI<3R@Fz#6(XFKdHv+t-yFfrm%h^x^KG*N2F#D*38Lgf;x zxVNVL@*>(JE*WSbyGVf!*1hs;S$=q}M9Seg3JVO@%n@9Et{dEoS9%`2--;*b1?;#_ zRk_|@qlD;o?m?Wgp)EpkOB_IXuwg{X7UBVR7rNM}Y(#-@ol}cTA5~lxJ`{`M)WV== z8P%OvDio&NaQP4L!1tuXge82vfF)MJbOAqJ>3Q&easneP>8wy3%P?UH1859O6AENl z!oBf0J&!05+u>?)7|SDy<5;3{i-Y}0kCV*H||{-zNKCoRSm61YNF_bw4{ zMMU(LN2sZ>cD@Mkb%#(T-6X~w$~rNKuzw?! z;4gMXZqoUaU!p+i`u}Vq@8|z)VbBZew=VYZwnsV>>I}k zO75+zlw4$>GNK9D*+P6c0;xBA2s;Rp${8O}3nA&uyQ8iNv{I^G@VDqIG&D<~44YM2 z)n`H7HjeWoF7L!eUYsY%xf0&b=w%&D8+3??Hr%RJH&ZH_?k=G{nd|}_?mJsF#sLn; zWEW`99u0SETyUOU06(&`<&NLTdX7;u>??ssbQ(6#>^=jQNM!BCE=@LhgofV~Rr?Sa zJWPJb1KAE7Zo_6WZ56@4238t+#|x$p@DJ_6!6;c^$tEw-bLEHYDdmUE;`u2fyzbx^ zXk~oy5;mBn7%S;UiGT&P6H87h?sRNmSB|Y1!%nvt;CEa(mUe6@C-%6lH}$F#mZ|sNZ4-;giFg+sj-cxgaCirXPx>=N7aOd1Ox3WCeh^wAncHS`hZ|FY+JD^r?u|TmTKX|Uv8rzJ?Jo@ z&)C|y69>-mid|tGbf%4EExYiT7+ynsZ^4f#foE`^H@|8O%Q-yZcrMM$oNVq{xa9$p zZWv5GL_So*5GS*6(-9VZxTqF}DAmK%68I%eb*z~flf3WQZHWA?T#yt8OYXuYVi2py zL-dW8$s%7xv6eUUiAiw-A``wt>|qF*6KhJLnmE&t3$C{G$r#xute-S)t>f#cszAT} zV8Xa1rXUA%B6DKH%I{t+^JDuS?e4N`8OZ^F{P=6yr(=fh@s%7S3VN$9*J4P$irpl9 z8LB`>njeg0C>{}&!1Jp$k3bSN!=T4Y8xbJ}JK;*B<`jc15FP`l znZ8I%-}st>53Z6MASn2ZdhFj4OFro=Z}rv*!b6i7tRtUpF7R;S#Ypx9d*~wy zINyp-g%GpwxBtNRD2SVp3*LzIY24TlF@K98VhLn_8;xdS@CrKDvW9;(njT}HqGfV& zC>}MG7}Xzw#tA29$X@U=%z&7Ppotb-%v9%snM@rm$YvUK0X_;Ho(}&jU%^y*($drU z^rWMw>GWizrwft1>kw`LWyhg#TB5h>h+LaFj>NC8;Bxlv-Ih5{>$bAzIyG)>!4y6u z(lnkct1G|$|JZvED5;9>U%S#d-P4m36F_WKkemb+5F`#kat7}_d9DnQDWT&Uvw%N5*dQ^NV8 z_idjDTo5RN76d*KSk_b4^FYu8K^Z}Moe5>r48y;S!8!5YUP3pA$IIr2D8?2$2aQ}q zC993M7;)(yw!6FFu(Mv$m}6pk=N9)$D&w6EoBLV-Z7# zF7mGEz8(uOr(+W{`;zUeu>4t%0fjA9myk2Zf5oWK!i)+yJNyAguC1ux^r#q9M6G5T z2lH@(P`|J@hVILm&jR!{iY>Cu?~=K2WP^qeY74kk08^Ci+4-k?I;p@Sn_m3GAeHaZ zXKT-e46lb#DUW{Pja(ttF8>y5_}|4EidgCAp8Rthod}w76iUQiGf#r1%!Xsg8HG{6 zxvQcVeSvN+`NlOH%AAj(x=_aPQ|>cSRj_Q(qZ&;a@Pk4a+mSN!WgUG%NPZ2$dj-0-#m+hEWNGAiy~V00 zDtQrR1-u-0k>LS_UIF8Woc!xxy{VkyetiSUG)fTtr(}kOn=n3#vb2G=vrgPV~ttT6JSsUY+m9vbtqh zUW2-iph?$lg-Ff~q=720Kh8^@OE>d>DvCO|+B4@-GQ{irD5i6|lcuW%n_-|j*HCwm z^qXz;aDZ+Q`8q=9P+zh`B}q4fUK@D)T&x*9saMi2fAhPf0TYR|{f&)crT4($klxIG zo}RvGGrVt1Z{Ok$G-K(%BEf_>-FHWV@0;(E1oN%%EeSq*-!%!k?)!{<$NhcZeCPdr z-+TxDwR1`g?!l72c2fe^^}G^?>E~Oo;_ubBrsMCmw`Sn)Z)-|Uj>7O0zyn}{nG4kmFv@8_#+kOubT|?8mNL?V_AU->8_4UnTAOB(8 z>Tx@Fe!uhZ&U1zT!|(U(JiGHiu4}|)&T29*roMPej9C!wp28Gx2ExE0g&^RIgtRur zCKncfW#pJ^SXN)hEobAljri8Z7H^aD+~bq3T$(W8I^w~9eA~ERH~U>B}%`6nsU;SMbFj zN!F!IHc9{tx?Iyr7k zEYLuA$H-hZX#D<7gRB*#L-RE%bN16X#?OJ%pifIxoUsaA;WuqeZ)RiC7O1y$@^Gla zqt7!XEL7Nf!(q4SDL5$rH)fV!a$(G{tc zS~#eGp{;8CROmW;oQ}$UYgE}3RSrcp?td$)akoS@Sx1HC(O+|wM^O!+s3!k!MK$@R zsPJ1z1vLt4q@e)&4S}d3f_{t{cczYV9C*yWOT^H_bfh-q%r}^#!4)1#J5JDUXF6XB zUhKeY4D$<&3*y21Ax=Ci9S6R6ls}#`{&+SzP7u#A=Zim{#T%#xT)a_YGIbF(!B_dk znvz%I^|*l^_4>$_f-aDr%kzK#{T%Ct?k8oLJ(hT%=`jbX8h&0?%4+!zJE<(M6tNi-ee`GE~RTu}E-Zgmj8 zEK}ro7vQ2f^27Mh?|iP|lvJXf87DX-d{L`s@p``%cKyv03=Q;vN7?vsK(h#9ix~g#BK>#j8XfhAV@%qS+cO~rFWLx1h(huw8xJJyGV~*kw5NwG zGCA~nCyQa!gJ8~b96O2FaE`DfrbJPwc=M?PTgW8dVeuPk3Lxw0@%r~`{99`148n%W z@BhRQ3-#0SaOM+T zWCeW*|1X)>r~NW4Y<%b6#11<2FgE5!!ViCSiyijgFoC%(x7bbpN4Ho;p=RK>8?gG% zyx~*KI-DU9$TQ|O1^LHA6toxmNhW9?na4|+5^rDO9y{8cF*n!aZJh{A{Z5Az+93|| z1=^ni#r+vt+Y!(<9tHWe?Kjlc&~}8Q?ZuK5Om~c<*1Jj3ZoNaI?}vjGQWAn_XLtsAM;lh>_j_*#D_SnupFJKi`LH9<7A>%v$EOwL`J5>f? zQjD{`j%J1}^X1?ZTr&l=&~t`@god1{O;`5&)e-`==4+5s8WDx_Z~SdOuk9=uyfG+y-%Idho?TT_Gm zh6V1YU#?06tq03ay&R4L6$XJcWmQ z@(`UP!7H|S&L_Jdu9@Q>$CK_chfq)Fg_5tC+LwQUjJ-1QkB2|F#K(mH2g3gqU*zLB zJACC49VaV3mJ02PCE4yX6%wvjqFaHk(&GU<`_geEV%ZdjFZIt%%tX1-s_QANgMYmX z`+SJEEX9i>*yw|xL6ep!e_G&-+^Cz}VEtsAUBEU7N){K5qr~WY7Ouo{{SU<(^-|Xr8!7%KnLJi|hyp3-1tcwR4 z@GvsX2Lr^V71jdps7*5_3~}_v!mYzw|oy_F|6? z8I(LADKn#DWdFho|(Pp)Xc2>K7FBtv`lYCYDQL$3BP@6VoE|zRz?DJ0*CqOD8sC@Oq8FF{$}g$l=7_J zy>nCZ{>HXLYHB~9a{tDbLMm+ACOb8gip50SDKjxCJ=L3s;9>5~rt<2IBe1A;?R6CH{;LkcNW z?Rxs0L35b{64TR+8lb)Y`Kh^itYZ!mMO7s|3sox7o12}Olbfn@UJA*ex=%T3iBzEk z@fS*}lAlSb^s6g3D<7rq(^XG2APTCsm%QcHtJ`NlVos%c*%_64r&Vs$H$SsqZu3m4 zrWCm2mdZRyE3Kev6xjYZAvGD4oSK?~EK!h@rret%qM(pl%5G*KvT2<ENYgv zE1lv^%k@OrY2@ru6BP?0d#KKAR{X!wW~KJKOi^9%KyiP@I*~Ewj3}^`QjcmP5~N1*m(F)Xdun^7aC( zTbHWQ|G^aM3VypOOwK~Dotc-54%(a7H`P};Jv}@a3?K6_&)~$trSMO7Ru=u^$)@4Q zo0vJ++b?x6wI=ePmYJUl+uO)+H%wE>pN6f>@6f!PT$o%%hZJU$zL~1f- z9`}1$QgZ5`j0{#ebx>+$Z^yo<>-hhP{9M#w%ro#04HQWAfYh8^%s0F=_&3PT@m8(j ztzNa-1K#TQ)vj8rcC`l?OG!=2@1v`20a3%I029%S^Snuk{SvcNQ$4IvgPsYAIqhkX zNy$ph&Ad0yo134Vot2a4y}!mIdSJ=*4o=NOy#E?Pmz=b`)c+WSZXQl+Xp~6N>4ESj zi&6{&cUoreES-hIjMR3@ZkakDHNCdCQ#LvgXeFJ#dLJl7S!s+pjL({|u!E|l7z+sS zdc7<_{|7)%(WF(YuJ}~N{HkToMtxJ0`z2)Mm{|}yDLv~mv!B~9(p>76>Xsf9z_QX) z>XyzAVA`Yt`v3IQ%(|u1^F0g6GgqSv&Z~4h#XAx!$~iSzbLD z<(3L4jS1fErwy~nM(L=^4QY_j9cMNMI6Wot1xPXLaVZajWSe{xPjBBes+6Z&R=yXj zn^bRZU#cIqkri*!U=%0yt2tieC@C%7jQ@$bS(H#TPybALAO?JRM2IxeEae@DkB%$> z6V0|1n@$u)c~o@jrBUOM6dL4c48GOcXKRMPzxrjxdsNN9pBgpm+*eaWjXL+$&`_<; zebq9UM|U^So{6Pz)uqL?9IwaNzL&l=jY_)XXm9-nwn&$+?(s|kTwKK zVxHXO#LPIZtflH8SY~8k z;o(S(rbs)I^rd&`ziE}dM?Ti06}HPEs3 zCS!a+)++xu^(Y_!5w}mJZldRZ<*#&d%jT`nz5*x>0hA!LK<|LkgDRIE9ob6eNM> zBma;DST)YUOgRTZBxL&ng<&%+AF+@q92HFe8dZ|^&?qZ&KxG{p4Hq<{(CG<4ZVG)x zr;wkVjIpYBemc_&lT55Lbq~b)Cg!9JOhm)O(zADdW-=`|SyF!PU~lEh=%Vv-27A*{ zhB@$O=8=7M@)%lCD(3x|a`}DvCzmiv8tlbFF+B~FBnmDQlc+32VZ36T@D~O%y&#rT zxrqZ(NsAa!^T;W64ZgLe9+U^=ApyCVE2br<(M%WWK#MX{JumqmjJbQpzql!gQ?DI$ zxfi6^$z6I@AEX)!IGQnL=4T|KiKb>Iqtk#6Fpu|ZA-nJ3+<$dQ0aWs5!BH|=Glnvq zS?D~G22GSnIy2e7CC~n8@jq+D@1meMa`Th?B~qx667%wM(vtEKdEVgcRMs2qG9PND z9?>@@BXb3{q#~w1G&i7DNb>>Tdg-SdSgEZz&3}X(h z8sWj`7=@aGLiO!r`2D8p2|K3Tj&on2iRlWaWudSo^Ci%iV!zXB z-c}8nFM$+$;k=?Z@#Qxc%0dOt#frn%3UpHaN%E!i@AF9o=5@-K*@q~7eK_fcV;DI@b+1|t)y)>-WiWUfkDy!K;p~ZJ{s#Aw@auNr_ zoo`maFon%QFN!@1)5W2JW$MD$9eSY_Zn|@pjzis*V_xx8g;a;sfZPvx5KW~K@bs+U236PeM4v@}}ZjeVI zJt0YuR7hV)KS(Ad2QmOM1Tq3L2J$@QCCF6B49HuMIgs}uA45KaEQBn9tbnYAY=$t# znP8GBwgumIYZJyE#(&jVb#@=Cf%nSpXAiIkSuM;_D`DPBcI{Xf)`YcZ9a%Tli8W_! zSX{5*dweZtHbWnz8+@XSy$GGb!H7&Yu1WYWR+PJpACij z&;NzOt`dtzTEcY-BLBthKZkPrHcfJqS;KxEvRTK(B-SV|C!MwI(6@IU!<-b|L8HX% z+?M@VLN%69oh97I5^Au7nk?admhb>ec#tL3f>l)r?5kC09g=g>;kt?5bZ)PMX`7SR zA(=Hu&tuK9(3Q3A(F z&0F{EpH#LSCa9R77y6hTxVuZ|GY@UwVd(>GorQ0-ky;zkVJY2#{?UdlX<^QZ;V!U`efYBoLCW9`RnRsdOoQg#nIs0o!v^!G`EyXXHX-Qbw z(B22dlCO7f0%#7C)w`^*D_58NU|mYH8e^pQeLO5FD+{Z3)SJKa?6bVdx6jPy-O+Gp zNRXRx=^}0W8HJ2Z5%VcUAODwve|i0zKf?L=%%k*2{msWXh}9qW-+aj4Td1D>&)^O0 z^!f$6MEF+t<1N9M2M6>De`>%CS}1J9n!&7*kT;n<3bTd+6}-?V8)ikH+tol6+gDTK0Y)U~K+D>9^*6)sAat5}vk`X9?G7ZVdw_!C<3Zc#C`JRC$8 zFCl~#Dq_l(k1X$Va(76HvN3m;jx5VMwra~N-*eABh$F0QCRT*y7>kPHQPEWU1&fj@ zD!}r8Oq0-mLt{eS09RBo$1vETs4!1xXsFv06=g?71cpRKg+~QNMfvU7&9x3ObJnO$ ztF{f=vFsdd5_oCP%X^#oKu)WilFo>F6roR*Gw%!Vgy|MGO&Jf$xkUS9vl zL>Iim&%zSI=NDG*G00A`KL2phyEn z8Yt30kp_x1P^5t(4HRjhNCQP0DAGWY28uLLq=6z06ltJH14SAr(m;_0iZoE9fg%kQ zX`o00MH(p5K#>NDG*G00A`KL2phyEn8Yt30kp_x1P^5t(4HRjhNCQP0DAGWY28uLL zq=6z06ltJH14SAr(!l?ZH1K=-F!>$s9KI?;tmgx#xUzX5a@UPN>Ir1@Usy$RN3i+p zy(#CvxGP*S1_k#BbGBN4!B3`}4}J*R2mWiSEei%g5X;7&F65l91b%|R4e3V^09ipm z_rwpOz$jfW5|G!I2o3BoVC%BhqAo!_NCv^fkg8OS^&y=I8bG!aG-PX(q=Ie4 zei9W48bhiRG=Zd0Q71r_5Hy9L%$d~;|LUuyn*);Rj_DSV##9R)fg}*Lgft^)#e^J1 z^`bSqEHt#i_4N~}g0y8nidPBRL4J-@>bR&2Il1|W%wG`tB(jlJ`WH4K9 zC&+}1p}L&K9uXbAfNaRi1pOf|QKim-q)?^KWtRMyAdjtAUlZiBL1M(+fB|fv;P(Iq zvaReS!5~Px()cqNH{=f`7y_9_@FZjQ1j8Z0 zW$|YOq#VIBkY&_LMnZNGjDqZ?Rx+BcXYWuec^2{>!5G$9*_8ofA!P~1L7EecXPekq zf(ejq1kXV(5Ihg5M=fb0yDo+hya0KMU=n08!Hev7b(vr?`%T4H1H1&OM=*t5Q}l!L z>}56&7q7?4*jLym>=lBk>|^|91>jZo5gSJ^jeW?bNWgUV0ZUbY*Vt!l0l^IR1uJO* zUT2@O=WW0n?0weP1$dLa$37*P$>y>iZopgYU3Sd_n8n^<9RdMwv-#}hAi!)khsj{T z95$ORCwPaw&Dw|H26&InWIMtE@3S}Aun52h>~r=t!G~-CD;)*+ zh%ID^1Rt|6+58y5Cu|X$9}Aermax`wfKS4W+Nx%ZOlQkjulI>zA2^O+FtiA%{S^8CL94){*~8@D=O8 zzux7H7prFweYqTyOt%1 zDg^6TqG(L8p7j#T2sW^u;z17B$Q~D85Nu+PiMs`0GwUc86Kr7}L}1_VSAt!vo0v_oo3#}i3HGoy;wOT=th4aC0sB}d(TQL` z>nffhIKaAyg9HcJ)A;R(+IH+AHcUK0aF{(Mp5%ZdY^c~paFjhM$_caEq=9NF2Q#!QmzjG zoM91ilLzoU3zts^0?x89St|%|j)lsT!GQBDM2?OGTwuZSaunbq3zF&4fJ-b;s$zg2 zm`9e21^mbYWakoq%gil%6a2*H$N<*H{puAqTMp%I+_68iFXdW-tL!70Bmlp#Pvt!d zaE&dH3oO8|Y`HvR1Ab#)$*nHH?`)aOcLV;wFu$1KPqsvEA-K*K%Mt;A8<-QECt!S` ztQP{{e4cDYAoyqUT>{BJmum?W|4^PHu=oe^kx+omzmPi#T>O1`g}}|{%N}8X0RD-b zP2k}l%dG@~e3m>*5X9e;CBgy0{4H6JAcVgwUmytO@5q-3!uVV{l^~oaC>MJoAU1;U zS8g^TAU2X8P(ui!_&)U>K{Vg177!HUdsGhrh~c}{w-OM`cd0-Hh~rz;DS~*uMYXa3 z#rY<+ke~$LsqVG`ckmr*0zpZBQ2j)3CzqC+{T>kO{O zA_&^RB&r0UEg+Vl9iRk3d%i(=2|B=J-W`CBfX@gz0S*y#1{@)vN&PW`u7DE+-2jbC z0=fe}Cg=f}NAM_MIl*IqKL{QN{7KLg`MOTfi@zz^oq$AGg%BhGVhNG~@dPR8?wb*$ zqT_Bs(3_`-%GrQEytk-M(3kfW_Y=Wojv1R4BWnb#kX z$+xN32(tKg^;#|<8rOBfj_KEAgyY!p?gU7n!+8qcFOuV7fFB5+23#f>4!A-v0&tb!8Nf9HC-x`#Gwee$ zp-BHE7)e?saH4Rakgt(!@lC!c_J8m-${#y<*RhX=iO&180G)Ry%T8PbVWg-ra1%l> z77#=*j^AsPIUWIOB~0L>*m+9Nb0}OLpkw7YcDy?QI#D>0Qo^)%O6slIaZ~KiLq9rF zM^TOmg`?d#0Z!yiOzFJ9N1H;K#2+(d@gl;}N}zCbq?7+PQXLohava~9u-kESvoc@e zwyBv@piJ%E0mtfJ6h-;c3V)e*F}3a${;a8NQ~1NCl&2z!|CDA&Q3SM@_q@uR8XZpb z>vH&)pmX}MzbvR-=)^lM#fi&_oxs;8 zjAOefcE_<}<$zNm|HTbi>12EY)#(zP=hxwAZc!Ghoyp@4< z=$hzbujgG2Y~Vc&Y~-|01FKCu&%kC*n=LTe!fAT}u$9wh0$>|fj2gD{&IWdH+9iV3 zPEI>6fL*+of!&<8XJE32ryAJHX;TL#`*^y6{XEOS0iI#tAn$MB5QcU7*oXDj3g8GY zYfO&v0S1n7+Gv5*aZcMRfD^o*fs?3p+T;|cJr-Dfjq=iP8oi%}Z_qz$_|{)c-=WrN zlQVud-}|l3a$&5_`F)-DJHFsg>P5e=OMdvl4?p_7U-p~)*hQLI7zZ;-qzXzbhaojk*oN%0wOZ&s| z!k5mD10hndU#Pn%12;N@6rhg6@#O^gBwt~=O3H=qZSM6a!!dE(IKImIV=srY&>=e} zq#r%%k$!Z5jvL3saZ^FAGWGCFf6e@ts#VPA*i~L0Vy&r?RF=M>|ByIrl2HXF*tdM@PVm?_iyV5K!Si61jiLmo55R1=_cO1=7Dz28n0N6j!n zQRwobgy{-dLmoA;*97P);Y2ZjA2+%97jRU!ke@KhT*R*$Sj>Mhu!R3^U@1o(#>f7O zd$2qLEaQO&mh*T6D|noNmAsgNRXp6lY94D~4G%W3mPZ*_$3qOP=XV;|z)Kt0$nP?+ ziPOp(k#6QE>0j!We=x9>|72hr|JlHHeur_qgO@O{lUFsci%cd;QEgRLj9+X{m=k2K_JL|sRQyV>iZn+LPR*vI3 za=CH*kl%4#fBUK@SMs6M|2!;L@udU}q;DzhICi`b;N5t8YRmQIQ@jGL=nK_n+K_-& z7x4@Oi+QGjB|OK#Ql4+%D?Y-&GX9K#<@`khEBGV>EBW&VR`Ib0R`VAOtl^^!tmP97 ztmC5%tmm&7*uY;mu#rzUu!(|?qz<&Obfdl*l0|)sh1`5?@+Im5Hj_}?Fj`H~ij`0Ns zj`KwZPVn~(oa9d#IK^qhM%QQBE&}}DtIz+{?82Fo}h4pLa|gH)Aks(!)AMp~G>&u}Zj&03A1uFDD!V zz26ce?+|)CZ7LfGoiJxbPYKg0bgUf5j&}lje2NVm+ssK~WZYi@{JU^`ZX91uI8Mk; zTu$u&Rl=Idh9*0-D$%1}bC~E6*0E{ zI^;I~uBk0RYs~TP1nA_nP^7*sug0>G(O3dNN7@dcmx1j8diB=C6SA|((;04bmdQ$207{rI%RXOSV5QfdvqU44_mPNH=ba+evEK>MdGCrD zk=Ck{cqc$73MWzr9Bnu$bi9+Eb(XsUwB||SI`5=#oeWaAP6jDlCxg;_b26Neow%IX zsg7wq|KEc`%jEwY*S|Qv)#^+CRCXahXgbeD{E~si{09R|_!R?7`7Z{(;+VDLgZY>; zu$)I4SivIBCa@dphY=XDI6;1vv<jTiE zXJ3Hs>(XSV>1m(vC*w(;C05WJ(lK$|IKG^4oRIs;Y!gnpUoF&5wOY!;ME6mXc!tnj zQwDUX)0_#=PkbC-PB_0KU%E%i@=s+Q6Q{j9wfBFvvSrJDra9cYIfG|gVlgR`9`yW9 zKu@W3-FQ+yBeW8R$l)TygL(L1?lT#{M+sfohRPtbSMU_dOKW2oYNj3no`#9m>NLK= z)VkqvgQ<0nW5>G_Ab}3YaqO5lK;Cr}v&3psv4_G$S8SR!=@Kl|3Ht(cyx#=6j!lIx zUDZd(^(OXb5a73@jgbJo%{vNF9$NkGk=NwR_~4*#}|PvoyJg$p6w(6 z^u&XvD_R?~5UwsAQj}K9t@(1oao|aQPTY@$wiqkViv)sk@`6Ypg^x##(wgrA&~Y_D zq&kZ2h)YMY4WKLA1X$@Jcn+Xzf>RbwTn;=hFA80_qtS$Qc3wp*xL_jn zpyQf!ODQ`6IzW-?WW0z5q6@{ba^QB{IF6}#>f)X(Uo=JFfMZ3D^)rr_&~kM#IpA11 zFa=rGZbqU$=@dF9jvJ>RTgXS74rCFZW?(U&ZeR(2!@yGhmVvMMM+TPhj}0v6Ul~}z zml{~f7a3T^=Nnkfml#;X=NVYbzcjFpe`;Vo*RKmRdjsESOg8d$1~&0y1~&6&4Q%21 zZDZQrf5n(=u{kf{~G|E!Z!gr zg);#-xjfKC)| z!Fw}Ol;ijvbh$TscdTZ^vCionf28DHM@q@K+1ER=rqosx*R6@yR!+!{8z*7!B0xQ& z%>`&Bya&()_dej(0CmDXfRzq;&n-%Dd^zDbAvV~+voBKXu_1e?WV26pp2 z1ABOmfxSH2z&<|Mzu=3b{r`(%az6pYC>Oq3T!s3-T@>PdxMMkMFWfZB?C+NPX?Cq zs|LQ}=)1}BGLBdYmh%V$D|onpl|012Djr~9H4ihehFb>K@*o52xNTrPk1?=;mo%`E z7dNnp-)CSmKWLJ%g`Y97m7g=PjbAXZokttTJ9w0VoxGfZUHnc1yLlM{d-y#D_VT+7 z?Bf*-?B|sY9N-lV9OP9E6l!{3n@ErF?+hH}HI18N`~d^Ud2ItHczFXSQE*yyr}$|D zU*mmjZSp@mA^*FkXX*x;o+%47J)=522y3eJQ1V~FgR-g8v)lu+h0@cE5}32;X-08? z9%^YrKo3B)A)uo;2sljxJxw_EUdkaf2EE)q3=_TFo`m5~ujpyc=9}32mi9;FJf$ZC zN8wlxk;edf%ypu0B6X7CB+N;wllc9jh0;mAHShmo<&~fQ#n*9}seD7fPnnJzn$PRJ zpFlg)ZXA=7@-sDvn(#K!(G)=;H$Ib-@^dxLxM^{V8=uKZIbTgCH)*n?Nk$q9MaOjt z`q8mFP^i0TW~%Wb{KG?u& zKHR_>o^N0+A8KG7A7EfTA7fwxpJ-qspI~4Uf7`%j-rT?z-qpZX-owB){+NO7e6)cb zTpzEc*Yl5)?eA2<)mZcxCs)6aCQkRacZ8rX1;{M&bM~(H4w+jar_;k(Cze$ zKd$cq+Pkx<>zFuh9A5;wYa%Nh4msAzc+MY=1CEvB*zx|IJZd_%cN-8ebD$&G$Qau&JJy)h+K_r{cXUkZI$?gA5?)L9t$ zwd&5vV@h|h=K;E3y$e=)212iw>lp~mNp3D3$Ga0CY0N1d9jTKHCt;Kwom2vyRI<`Z zrR-?$PJm7nl%Cs8h7*nxvJ)4<&9%ibp*p71Ocg*UV>=?%igGrcF8WtVj)~*O@#Tbb zL0(qZ;?XY1L}!q;oplt>kVHe9FA85P_z|(|!yGG0yiQmNWcgq6uAc!>GIUM2RSAxFCqO5P3-V{B z{E_N%CpW$cgD>{t{~Y_zezlN(v|30%S{tOF|CBH%WJ;k^$~tyRp-#^a@)zZ%6kd{7 zRS>~de?R5`J*L$4=f47HsNKv@m=1Oezi419KWtzd|It99!R4$mIl?a(IK|Hy_?n+I z@IO0V+&WC`#FZmgsE*}u9#mg6!5Mh-UxegAON5IFd?%@d@5e=bCcz{R;CmHWpD8d& zBYeMv?-rP(2fp`Ikx)L@G8o^#Qw^94-$`D<_pMfUG$yWPH@;W3>*M%2*Rmhq-?bZ} za&s-G@qLJ^IBp=}TKew*DmmHEdvc*1`+FavpcYPkK8z~}TH*GAp161*2M0h$pg~0%!A2;WYkfoWK7TuD)kW z**Uh1U0}=ECANb7$X2qS*edojTf?p)gx}aY_6P1wxXv~(#y2v-H!;OGGZ){&0{B)I z#J90fzMbKiF^l2{SPVbNO5lapl6VQ%%YS5d^UJI>-ow3@Ut#6&8g51YC##GXhO6-# zI9BW85Ap!K4C~=7@yhUHJcwuEmEWiEYVa#Og3rc#z)N{FUx#;wxA7Rh4{r(|!;8e< z;;rI~c!BpS-sb(C-_5xw!vjQFyrohOueDU*cZkY(Rip}DeyEDKNviRRqB^fEYV)e1 z4!=)4gqJ-U^V%YT*B4EBE76QUE}HXf(Ta~0kMeOM2@gz?`4o|YCsnEZZP6DGn9}eh z=?Oe>>W61c>39~EiRVaJe67gl>qURQS>)moPad9C%W%%fr~KaQh4r^I;v zotVtO7gP8p@iM)a09_~9wuk-2sxWa%Q-wwzKgS{bFsUz4jUWmc}2N_ z*OVK19l061VOw}pxfT02+j$$g3tM1&u*J2P_m{M7bO75_N3h%T9pnt3Brjnr@^}84 z{1Zo7nOGo&*dV3YFO@hiEnzEL6juSFrV14It03`^3K30Im`G3&qLqpky;Kd6s_qy4 z)B_@0Jt&@3b;L+jS3IlgiLvTo@tmqJCaMNvl4>C)t4DBCKnF2RbrNr?ZsIf5M=VhN z#8QkZM*dQ;?C zbHqgJ9WldtSG;AtC)QaXh+Wo4;)wOJIAMJ%&RCy|%hr5x)%sFgw-yOyFBZ}E5>eG& zD(cwFMMHaqXl}0(?d)}8puJu^V{Z`S?49Cyd!Km8-Y;Ia4~W_JLGihLSnRfsh>P}d z@vD78aMvjj@A_I)be$FtxV{nfT;GZ2uCt=M>zqh&T^4;^*F>i4S25c4o0#bOU3}zn z$xmGYa=t52E_H>-?XEDn-xVp(x}s$;4*z@I@iM`EhwSFQTlR2Qlu7PNa=5#S9P6$j zr@3p&FWvXcz3y7_CpUHx1M0|o0v?j}1M13-0rh2GKm$28prM=*&{(btXe##xG?OO+ zn#Mn2|gCr5fZ%2zy{hTd?xEEe>-tQPc!d?0A1Y!UR9%n6z$hX%bZpADKV zUkq9zUk+L>Ukh3xmjw;FvLqV(M>7cdp&!BbkM$lF%gLlh-;JvbT@L|YNIXL*3 z93Om2z8Ub8u3Ck-RlAU2 z)g>fMrG|v7XG5aYOCix}R!FS+A|y_&4T)EqLyD_oAtluHkdi7i^iK6~Xc^Tgw1R3L zT2ZwNt*lZ)tEkbT)zmwo)z!Sv8ftZDO|>WVLG@i|9ra6SJ>>~|SjC1lRAs^%s~TZV zRPC^)s#RDs)i$hy>KN8Zbr0*VQo?$u(P59P>0v$92VuR`hOk7nIV?pT4ePCb4eP5s z;b|%?{0S8mo}umz&s62Yv(!W3*{VZ$f7K&AM`ecRszKp-YIyhn^-TC6^+EVx^?CRZ zwJ!WgwIzIv+7Uip?F)Zi9S)zU{s^C>!XsW(B_bxPY7sA~2O_4Z77;J2wh^zWjEHG! zV8nDaBx05t7V)kc6){)69`T-97V*A19x-2i9kEcIjaa09iTFynBbTYb$mJ?1a)kG7Det<%OZEFosoOh>BxgB zI100&sKY8e>WGSpI;x6A9aAw;$5mX^2^Al8Qk97MM%@wht@1|ws7gouq{>EJQ8lBk zs)VRtRL`gzDlsb1>Jt@Yjf@JhCPjr=uSP{!A4Wx6E23hp(^2u(*{I^yg{TtN4^ekm zm!s~qJkee&IJ&fTXY{>R+350Cwde}g{n6E}_R;r2?zhHAKVVIbu4T=Qu465Xe#lx9 zUDsL`UC&w>UDete-Pqa}onRf0Zf2=s&8?VXEi7-b)>eyR?X2u#?X9PZb+jfH>uh~e ztc$g}SXXOTv2NDa#kyM;i#=-bn8&QUVtQJQV|rOlV-l?vF-cadn3h(zm{cn%rnfaR zCe4~1^Mo}oW~enkW`wmkW~6l@W|Vb4X0#O(JI*Q{JHe_JJJD(s`-0Uqc8c|M>{M$^ z>v2R%K#J*|Gi=AW5kA2@-9Q&cQIrbxKf9xmLvDiO2+u}}HN8`S>&c>a#evSLavg5zCg5u9uaq(xZ8u1scChJ|U1l^p+@H8}nc>xFo3PmdS&yYa7Ljx-lHt-Xg^$v(n$U!P(=vH%xm zeTnO@7USlg%`BB|XX$JQZofEyYnYC(Ihb*L#*VYqm}P9lEaM3Kft_Sm*;)20`x7$? zi(44&18{`K!#nd(p2EZU(-`;P=8=3p#{DH2=T~B!|Av>uSnuV3;)srP#`*Gi(X=9e zNL0cYUWIoQHF$SX6ZbtxTxwB=55qV=Ts(|-Ia=WTiAOMwx4|0`kK@&lM2zLhcwZuw zpBH_&zyXyAna(T7Y&=Nm&uhs%Jc1eo8O$5Y(RlbYhCd?5@wRdz?=C0tKJrEWq@2tr z%a?H-%d5DpWjg;-zRtgr6Zl3slkbwVu&w(xKPunhCoz_Pho=y~%FnRzjU1^3*ya9` zmr{$dsj~#zQ(s|cY8f`tR`4WTc+y*~=4omT&rs`lwp!2g)JAN4ZQ?`J7VLy=#s1iK z?4#}A&#FCqtlEpsBb?h%2l%JzF#lYg=F8MKSSfsmdH)&yjXKM}Q$O+_)I9#H`We@r z{K6xwYdqHalh?Oy@C3^ett_|bZFw;624ma}6Hi&;Vz?#6NGn>5vtq;~D^|Q@l^0X3 z%HmC{s`%J?Q2b=o62DpxiyKxWVcAVZ3A?$dY(FB}+HFNwyPZh0+lv8qS24)Og);VI zVy>Me=Gn<&f$hb-w+uEO?!|q1p=aZQdQb{(P3dzsPAtG>g$wa0XA%2CEMY6fe6|L6MQssZv4dg-`$eq8rEja4E!W^m zqjk6pX+3UF+Q9CVTUa@{mDQ2kSp&I)HJ7_t7rBR}%Dt?g+{bd|0rs>!$j0Ej;#6G3 zG)JDmMTIBXN}TiCD!*oX&0MR8nK!hG*OVX2zJg}IyubGdlc7;D=EwBx4G zd>*v^EN=CC8S)CsU>aur)6s(Gpsjv@R=WUm`W37cUxzvT237&{{|7Pu?}d4P2Il;^ zd%VZ@t9}dfi_y2_Z0W?bhO{WqCDDV z1-xEWkeaWnZto21%g$p(bpd_RPq^Ui3RY1+V+C~; zE2m$uYPyD8|H`Ifg)@!)j$Hr2W}sJk6aCU`)UtQ5!g&uh?E~iF^RT-4jK%XWS#iFY zmBj($@_Y@e1Z`C2dstO|iq*i1rzZaccmD{S@sqqRPVv=4&-O4@H1*N5HNc9dA$qk& zSkW}*#ds5}ViM4+wMMVj1}m6$IM&#nm&b{(iaZHN0h4(Ro{hE90E9A-KgtKgbO_Jo zL-}N^j$TJE`8FTUKgRjAPx(at1x|r2;V(m`@;&@jymvpHpWrjFh<=?1iZ}5-|4h6Q z{uW-<{{(N&f5FR%1-z+Ph%#A&wa<2*CwB6wxC(5R*u&?Fz5H{rk1r4x_+oJx@3~#! zTf|jHt3(#SOVcaJ5=UwFc{~wP<(i(e5^gV6{<%s!bwXZ59z~i-=NtL@~7&?Qx$dq4tYA z)e%uj9Tj)06QZ>G0r$iGEUKwrL@jjHFs0-KWyx2S zEnias@(tyYAE-dNLP(7+KZOIsbbP)#o#G-tcTkbK^1B)_y8%cWLR zx!Gzaw^>c(E~|z7#%d#fvf4^!x0Atkdl_$cl_l(M@^1T4S;u}{CfGe?n%xV67vb&a zWxhR8PPJc&&}<_lDUpZ;W{dn>zK4% zcr4-iP6oTq$WYh!GTe1mM!C+*Vy+7^)^$n7yHb?bHC)~88UcAmHE}(sI=eQhuC4>B zhwGr~>pG=IxX!8PT<6s*t_y00>#~~V;?``JZN2MqTVJ|@a7EcF*GAVG*A~}W*M8S} z*J;-V*Lj%y=sMu~$#uwe)pgjV+(%sD?xU_a_i?!E2`?t|_s?&I#d?(^LQ`MVQ zWlz8)2V?UPj2xrbgY0eg5N3sS>BdIv6E$SDaJxwZo`Czvn&U39*0}zw1McwZi1E1- z%jezMlNhH*;Oe87`Qz+OjNxl}FSd;*v0Xfc9l&^gp7+KW(ub80eOYPo1S=;pST&K! zz7kpNl*ndDvOoJk=HRZrp}2c@BwoFE1}|icW~byBc2WtXA#Sb*!P=^7~a5~X(r}Ovk}5O(Eq!*9BwXq731~$*!%kk*H>c4k1xVVyo?>= zD>1uS%}(&O>?B{$zQ?ZJS?toCIL`9Kw=7@Wz(tVJ{3%h255Z2^bJz`gUbMul zxhJ25ovjzKn>AUygwgtK?23KGUl#N}^ht~uSMWMC7t=(PcwLkdZ;Fayrg&JqB?gFD zI2$1P>Z|BLO z_F(yhPhssC0y^x@~#hMRo7>-rt5Rr+4Y6&=2|E-T#Mvz z*JAmSYl(c_^_6_nwM>5IS}xbRR>%V`?3=h&%QLPu@^{x-8RA|iW8E7eTV*Bp9$C-5 z7cVsJlYQL#Q7Hy6(3knl?i-UJrvkL zbqH*#`UEypd4bK1*WL&fvM_nU~lzfU|;19%2XwSvQ+t? zY*jO8n5q@@s;VC}4f2}m7&JpY7W9Tn44SF(f@Z4`LGP*Og5FoJ1%0I62>MLD7xcOM zGUy9+E@*-JBj`&df|n^Pc!i1#Ua8`PS1E7sT2(f9ovIhSUNs8dpqd4*R;_|JsgA*0 zRA%s2H86O)8Wy};O$y$lW(3bt9|iAM3xf};?ZJoCf#4JBNbp5pplR(gnKWro;RZiw4@Cd6Ys9};Ly4hgp2 z3JJBAgoIh!Lc*=nAraQqkVq>eG|Fla8f|q6EoS9}##nPgW34Tr#jWF^cUqT1z1EG; zQdU6NT~?*AyRGJ7Wvm`y6|I-Ts#xp7s#+qvx)mFKpH)8meyeGC9cyTKYin|NTWfB3 zJ8N-xduwla2g@DN(JC3y$*LXE*~*CMVvUUGYE6#lX1y2D-8vG{!@3;ts1+UA(|RcK zPt__i$?6)JV)c&fZRJJwv7V01w?;>fuqH%~vSvn(vld2#f00PVj}FE zm`MADm}q-_Oq~5=OuSt>wv1gawwzr#wxa!UY$bbTY!!QLY*qU}Y<2rc?0xp7*qZiF zvG?0{+=I3!u9kgATphbq+(UMaxO(=3aSz*%#5J(n#5J^&;u_n%- znX+@v?@ZYpJ1ZmK&dn&WCuWSbr)Ct|*JO;hugfU17iW~%_hppYYceL-PiK_d8#5~H zcQdN&&od_3Uu8_TRpwON$~@n$mwBO`nK{iqK68fMI`bmCYv#pv&&*5gb22ZrM`vDU zS7cscPs+T~zB2P_dv@kE_MMs6+IMHpu^-F4-hMK3uKh;l4fflaH`VvpP=pjZ!JtxoW+UR2ARMw-;&}GbpO)%Pn*d1Am>Y~}DrY9La^kkzaA0X|;`sSknuk}sFxB3?2cYP~k^4pDA z^A018d9I_(I~o5iVr^n{|>s?>4-u0dNmhmI&TEDTbWih{%%KTQk z^?`AO^`X(w`iPyIAG4$K3*%(#OQWOp4ST)5GKN{-vMcR7=Fh(8?^k1-^*eum%BC^a zt_;?yv|ePz=(||!x{I~0N3BHts#Q64lB8XD-rTv=D<#k%Q-1O4^tz!3dpV3>Y4FkEjBjL@G4M(S?@ zXER4ON+&S?h0UOkva@t^d$c~m&eo?hAJ)&#)1&NsJ>D+SrFOZlvMX7mn#|u6eV2WK zUSeOUU$v*}*X_&nM*9lA$-Yv5V$ai`**CFXb*ui}zK!*&+qLa1)alM$y1lblcX95~ z-JE-MZ|8nJ%2}qfoCkE3^Ps-iS)o@tEA_L^D!v}RR&Q|D>9?I1`Flyn1z+ZXhF5e( z@KwGezCkw)zOGva-_)&x8}(_yw{_3pJ9=brlb#UVs;h!K_4&cw`qJRX`pV!Z`r6>9 z`o7@jdRcIfULE{FKN0*STFkpThjA!d~qPZs+Hoprd znfrouSo2CTL!neNIaJro2p!31wVRkng_@ctgqoSBg<4>%9BcLpwKPYCPB15gTA9;B zC-YtEQ_KaSHs-^jQ_ZJBr}1U+GtAFeANw*i$oxJu)chqh%v7v_1!GFh_?QZ_Sv(-7y!NOJgoEUyqq(z8iC?X|U#XBx_!cW3MoK#9n0%VBKpR>t1tM z^IFZC*Ou4?re>W>v(A;uI#(L&TrFAWIx+5U^OU&zSOZ&P4vkxC7R23ej*nYz7RT`x zPTYg$thk5FE8|x4_n0{+?s4<}xF=W(TWh`?_mufM>tgS)F1C$zv5(`PH@{?U><8Ay z{)l_YbmCt&lj7H#nenfh&Eq$ir^ml;4vl})oDlz(c}e`&=7RWd%ti5g&6TW+?Ti1} zOi%dLY|1y^+9lXl#{|dfoiKp4v7y%Bgkjd0gyB|s!bodQ!r9hc3Axt231h6~35C|< z3FEA%62@E4Bvi6aHkoy@sn)v*=UbZ-E?~XvGHX}DZ0qxcYpt&muCsnixZVmS&b3k! zZ?Kvq-e|Q*oNu*CTwrxeyv6FBxQKPMyR35(@3C?d@3qDyF102k-fvA$TxMOF_<(gw z;)B-0#1+=Pi4R*3Ca$tpCq8Pun)sNtA#siMR^nRL+Mc#{CO%_*pSa%IoA`$HYvNm$ z4sW#L!*5%u;Z0UX_+6`6_&wI%-nTl1KV;2qvo$>Yu{A3Esg)hxV~r1gVU>ixw$2ZK zV_hBo)|wms&bmGPy|pm>r?oh21eS))z^bqnSQmBzFNK4FSHj7G4dHr$x5H_H55wt! z?cvP8N8$Q`Pr?lXd$6s(3O5Pt4L1vzNzDVvNylPW9T&(*Iw4R$sa4=e?5yLlvrbJq zInWkct6kFRfiBovJpfn)Q!LHfg6*02Igav-Imlp za4&Y*1K4FNlS-MtoW}U^V#bb_sxz5|?9JTk2u5%@>J~KYA?lqsJP3*%LCD zIt?-MjiJU^YBpF*7(sP+5J}Za0 zF>|T2_<$COXIyC%g6ZR!F&)o5Y6UZw!oGw14}6eoFHhoU za@mI!@hds~A>Wk(OHHsez}&2@Z^u5kgLc2uh|`O(4HmP1DqPG|5x};T1!E|4x})?C z=684UG4x%=1pN_fV!Ms2^vAq!{fY6c{**l^pMl|@8{^GA#x>>_##`pMyqoYVUqAoD z_?&$sznO*(u}35p%uHf`NL?$5`N;;lrPYvm$)njT(paAhhE{>0v#ewEbztaRFm$nX zoL*ubub*Sh;ceC&wy_^%msO_sSQGR&R)zkFJt3U}6Lt5%WY(ZA1XHK!vja19c3`Gn z9=I4>ouwZOT&dRuuF@|AuF@(?{SkJZQrb?+PCP- zz{IO;EE#)|zTLhH99^tmw(r)v?0fV#_7eSry-fdPF9$mx&?dNOJ5A~5E!ck z<5Z^;nC&`~S+2Isa-F3bV|_MdX66{xgZ@8&lmkgMj8wysg%L=^Nal6UW?ttUX1~s5 zf7W^2oyDD_k&GPXcXC;i$YV_+A5H~u8H?-`BJ1Ojn(^4RMQ|)(j;E9Zh05SO0j}k6 zoCe3~aGC*^i{LO54j04W5;)9)!=-SzjJq#q4(JN*zLLAInkh-o&T{onz9}?FenH`9<4MLi7ke&kMa|~as z8*AJHx3$J(?CuNEW7CYcxnno7Y3WPRTbE%QU(WF^R~r5FRoJ;#8~NC`Q}t})a%|k| z^c>?J?A%ANbJt?y?!du&v7dCjn2h- zp>v78-?>gd=-j3scJ9!tuty)m9(~+duGct^>b1^e`YGpez0O&KO}bV;?>wzvaGujI zVUMnNUdBFsMZe*!*BhM;*r;#lP0ri;edis$+1aGGI`8Uj&U<>h^S<8Ue4uwZAL@^t zt@;yZyZ+4iNPofJt*_a;^{w*>2jqON_c{{{Q{J#**X0eW(vUr%yi5SLo^MEq^FKKK z;Q}L;nQjH{=Azp@x}h&umm2|gm2x7To}sSs=~w7j^t=s%a{z}9px-40M>?5rshi** zB7BRvUM=*~=UW5Sos=OK`gp6iTFiUE@>^|J@am4Y+H6=8jRMJ zS{i#9^UPjdZip*k6V^2L znUD7P3{3c*S$_-7%Q7z4xs`iB2 zLeI_Ure^tN3xOe*lb&@K`VISo{q*Ok7J3dl**iebr^K@q^H#Nx^xcW{Hg8n7!?OqBv&~XRISR2#1;VdBNwi57c`R{==Z}XGcTiw~E~!8%Qr7 zd|zX5+#CEy5?;@z+h5~e2{+Vf>P??dSN(!|3qJBW_}=^jv`zD zJrR4niRrb&@v5o&eUh=zPgO^lrKZ>SEY_dO2#7N>Tl2BB3SN?s zUl(lnNoD|BL=H`?R2TU4r=ZV(UIzVn=(GItoW?Gi%b}M;XLo|S#!tV>C{fozm#^fn zF~+jn-YfsndOpV^23X^wP4so@cE3DN=n3i$(#RL;*Xi+Uk*LO z^KIyyrZy9v3H@m26t%^tk8t{^t%NUuJ_^0M&8IJRn(&+q>@KD5b&gUyeEKU+3(lf5 zu){cP(K&{dN3Z>VaE?TQra>PL_za$aY&FU-Y*F)bPoX6^>$H!D-)QOgf?T5Zq+3F<1 z@*Ag;j5d}H*2!UwA)~G3^`G-O-=&>pG47<@jDf0?Pu~c=3-p_zzYo2K#dag0pPyakSl!jUk_=)VWbLkwvJoBx#>Ri$+gnk>cANj>IqAiE#A_%GOUEYNcyP zl;6CO-RfTZl-OseYX~ocKEXa!&Gz}W{rZ?yoWN=^23P9MmdIcE1-s22R)|lk-Wj=J@@8m-5B%( zXDT%vTjThE$Ny5}77Q7zi-dQL2U20oVJD zvrcyd@8d?oLb%KFPWAXODlGKZtnO+UJhu?uXmu2l`%Cuo*+xvl!~OcE1Qw~0)MW?s zjKHnxoPh17UmbW{|Z0{#Z>U{b$g5i$P8G+h>DwpPEK}_dtK!S)?xZ(^mz%s!QPWCG_)y?K$Gt zy1?$h#2IR}Pk$@%X!R&z5ubMw8>+{A`rgDb>T$|rL;p1~n`h?r=TYIF>M7bG2t7O8 zSv~8gUmR|(o+FK%g|IYybagp5gpW`!kR}fL+u?fZML+$XaBKAvVL9sHtMCcxWuIO@ z=_vII;V|?gla5sDeR{j3f$CMlb)a`i63fc_UF&^_gB_cUP5iK2nd^t;+=WP3=<|~r zs@LEnr!U-=l%bB13i5MQl5S=P+3zSPZO7^|pB@A~CJ?RHH_guANujR!_kVS_ae*CX6^?^?)osSrw%?wN+Gi7P4E;Pt@^gGXpO{V5 zb%dKj|J*!EUGJxlwcb z4h`h0JAC?M&=*2K9{M`yk>AnwSala^PK4gv&WVuKRnQkhZw>uA=y&^key~&3J%mq& z{*zrteeRbt$b8Hf@NWY>fgL|z`}B*LHTu@J*ioyPp&73Bl16^p7>WE0{S4^4vEP0p zEWbD-Q|%|*7J4E&({w!gF-8kc;I^>E&~ND2SjTJ6fkqb<@0h9s^by8cD(n#8cZ1PV zC6T5R(OZnBD%tUD{bx7`A;XDhH?>kPG23#C7NU=%lF%!h@hc?4+tnpZ=1QpsENDfxg~}RTF*s zCMQ`8B8uqbk23y`02ssQc*lXAx$imc3sgwZd-4@$j0s399jt zVQUDsGbSoKkxS5OJ(yHfVj~i?`gSC+nb5OltuQfvCGBel=-Z5%v z@CkUvs=UxXx9!EDchNFh&Dg(x|8(N?209j0pTJWh;yx>vLRm?V%Wpq_%!QCX#*0HB zMEW>CzJEV+AH-!$`@0{I=~mV=vT?4N!#-!ID`XmV>!zoEntzzF@Q=r|@?W8rtaQcY^`I|Y7TzCpQ8 z6}pN~Rr|^P4LK-Ye99T)mWSRc@g4GXNk`+25`SHQQ6fH|R_v#@4)M88<4y4CZDbCI z_B~bZYbs~Z!k6o|`0$MppYmuwom(&HXZdmWdIyuaYLAa0=@&|`#J^9ePSxq)&vQCo z^7+kRl;zd8o5btLS?JO2djsv^@pG@wGuU4bzn2yHcz)j+>2D=Hd|EQXm+RDjpzx)f z_lr+gctCunu~x}-x{Q`M?YTz$6q?R2kK3NzP9rO?d~SW<=hl-smUC2tN&|jd{Oj#~ zAG*tDm-xLD))e_r-%Rmo&s?EXo^K_7qRgZahwsn+{bN*vDi*J>8n{lcbMM0h8Yk(_ zf`x%kKS&jy_G)TGx7Ufr{{7MMQx1xsK^(p_6r*a7Pe;S6-$aSGMe|C&jTNJ4;*@u& z#A%XTdHJ;W{bLS_ zN3KWsNBl_o$o0SLN9qwtABhM3d?WOTAIT@;N9cdw_n!Oh>d1!;o@1WTV5RtDj0TSY z3G9LL+C}^A@~mo5*Q7s9k$!_d)6yU4-v@jzeWV?Hzq{!FLTdcd1I=};q~_jeTR=57mA#M8o9vy!S%R=N5+_n9 z;{a~FC+WeB&ElhvKKJFjHr)8izy61>*Z-7qHC4Rx249}@U*U#jczQj88@3-m7&k)I z>EKWM|19MLH-7c|SG>g0gCQN=zDYWQ8}4;*BUw|fmnoN&4?m?w`=yZ{J}uGHl8*YP z319T|F&ZB|-$HyIaVxnVg&U^|9o%TEBmIFmxY5Pu6Tyq43=c0x_~~rF{LtO|&l5i2 zMV{P8J$K3Tq8*$2V)WqgS?lN9R^s5rtCDYHnYkrSdEb&a{Vak99fgiwc&D1q zb>flhU-CAXua$#v4#Cbzx(>y^G-RY|#!+kQg-8*+PowLFr(gQ+g8MQ&$Q zr-MKJd5Dw`xgBnL?RtsiOMfh21g_*Xa$6?lLS8TQ<@Tx?a$7}u z_#n5FB^~v@R`?>fmq>od?PcO4x3lGXl-$k}I&yoHU!I7)cc&je*xtL@m)}+X^$UIZ zh3@iMBm9uxXCxo$J50(;d*11n=M|wNzjsNTa=z*Fx!afDt#Tdtb?-xd?~`=M@5jQo zAv1E~(_Z^)v{%TgDZdE^#gmD{cLpO{;Rl}#%WMBfB#!(xv$&4@@+P@k-s2@6CBKgg z9eHh4P3L-){O0)WaJJ#$U#=ft=ld?cckuDv^ovi5oI?`)j1mCr9qx>Dw@(+DibR2!KTiO+UFscT>@$mEVjp&2( zC13QxCDQ&pzb}MOls>pp=sOPJ_;r#VeQ<;L^s~GC=T@6OxYxh_lP|9>zM>EA7y94O z2Y*z{Iq5r?YJV;IK(jMM@?sfFR1}PW%V865j zetZpmx{>toMIW%^)2)A!@I@c&l>E>KyTzxgej(SR^uc#RM<4v;mnWhR{`BJq>x25* z!}B@;?|JR_`#W@(Pg(#Ueb694KGb)!l$Z8A+AmL2p`#C)NSx<%oX-b)!yW&fA=j1R z-G@GK?GN-pC*ey!=q*0_;G95oe=G>p)Cc1aikA_G?+j+lBwzSU^7CyYarD6~$rpWa zn#3vZRT7WV2WJW$`JY`)=X#Vr*zLE&hrT}exLOZ*?PONlN&id_q-!^QwVc*69;+4q z56HDA|NpLdq#T4d*Zy~>?C2jIqzgs&)7$BX zUioHe&%RnH{TcmwzuWH*)u&gA-DL_Nd;(WT$I+*=rCrdc&(@HKjn(-?^yx0i2Yvd5 z3w?cer<4nQT1V)AL!aJT zttUy3K3(F+4;~jSt4;@h^h=tJk3P+0bx-0CNxtZZ7It*Ix3(kt)V+>AJz2_y9$g~s zfd6O>eR?|S;e$SHE9t2J8sUpR?IHQ0PkW1xJ{=_2qx9(rq0>*#^~)2{r}=*TV14?c zuTQ7=*O&PH61vN0y6{7v&XRnn-%Kel?YY4(&ox3vpS~e+$~n*H^Omnq@09C`T^e#9 z`t%)1hdx~*eCY=di%)w!SEIc)Q2*%m+jvm?J>u}2!ODd2gU>cU-yIT1pMEL%HfB60 zamxF>#G~}-$3jPc{#Z@tdXzq$?YG0F+Ow~&mGZmS@d>!{uuxcf&;1+WN4x)KyK-D@ zXFXS~M?CqCt2wT!p0A3?am0^|lOplj{Dbv{^6lG*zBwrWh#rsl*4Nc~$}3-O`5a7- z)Fa{_eEr`QpXrxxrvE(Zn~`#Q?cU&^c*E*=bpHuB5xr;m^Jb3Y&6~wI-n?0|XMg{aD}OxuPGBapbulsvnP+@q>9lKb{yJM?bcf@dNs?ofBQ2e%0lP=*ROUAN1oG z$%p=Yy6~aDM)YH`(03frkCl=h{Ww{Cb+h73txNetb;QQU5Hd5Bl+W$q)VblK6=3>vBCxKfWV$2)V8d?>_Y6 zBuR%}Y!bxh`5!Mn?bJRP-EVpZYwE>*2gL^yhwlt_f(bwPobBg(vBc4fV(zSl zU^^#b@A!VTzKZCT+k8H^dwf{`_3~Nh(o6o<51>AMqpfh#$Ex z;z#HaKXPBh_v^bL<*tn$DR;zo<%9kbY2OV8wfh@>JG<%7V;6`# z%#oc2UVroKM|M(6oc`&?Yxv&td*9c)lcfKncW2h<|2KL4`(Nnc?ZP)o5ATeQqlZ6| zevKZ!r3SzI;pgQW(Zg#bU&{Zy^nc`MkMKc0B6@he(03fr!*5A?^zbI}k@Jsyxv5PL zf9hZV(btndNx9I&UkIJ{{j2%=->da2={uO}&sy}bVbvV>e<$Tb5AXH$K|sdc=od2- ztzTk85k2f)M-RvI{UFi5e@Z*x$JLl8s6%@Av_#cPI?;2&7d_l4gpVF>EIz8@Sh*gh zhg%69J=`YbwSUA;ZRf`i*2kHar;i8u*Z=h89J(z9w6OZWYkNkG{z}LsSrQY=4 zh@Sb=m&=In>zRl?jri5$;2xG|_q-$ZMgF$esP9i+eg1{~^_O{_DES*09Y_8KOFfXk zUuy6R#vCkvX)&au{EcGZM|+(ue4^y<7@_YtAb-b8dgQOQ_&nDRa-H+e;PFa2qBOmzPl zOM7^7>t09x#!0!5yAo*!{0nNxUn%L~gZ!0CI_f_|_#%JPBtPWuBJq*G%jJ5M{LL0R z@;BEnPelH1@#6=}-&MZ+J?LLA@#p8DyL?s&Kjd$X;3XPCv@a*p2R8V zdY{jYzWlu>*OlSjhy2|n>5#we!k2#VnfSEVz8dXi#@3X-;6d?t;_#gz^RXVElvuC* z@0K|7cT_Cbk-vK-PI;S2ocTFc#7PSs*h2su5PAO zJxP})PP#Z5;>amGe7+Fp2yq&SbEG&8r5KIGkrRv7k(Vqp;4~J_O*Fx#+LWyfBx%Om zcDy!4k7%LU`FN~Urlm#^94D-f*X)8kf%Dhd0g94tr4!VQ)|wraC&|^5#W_WsHsYKr z{7w_+baBqWS%*ea>P)FeTj6|`IPIk7?WNM(q*MpFx1%_n#ObV$W8b-iy5g)uv=|Rd zw7WPxghpX`Ra02?5~sI5QK>%qWCrE>Ob|_@KKtu-N)6B**zl)2G8?Ho0rldnH9E8S ztlO(~fHT|KG_PC^)2(?WRG*~Q0RU`elhThAhYxDd4zMI6kN1S`b zxev!H-x4X%Qk~5@s)Uw_vs~w}{Z!}iR+uhO>v~B&9+LjNLY#-iSt-sV;;h2)`u%Fj z{84cp6X$Vpo)Bk^I8TbRR-C8Ad0L!x;yi=nb?;{-^XG)=^Wwaq$12`mh4zwki#(XP&nQhCSHEBkF$|EXoI}RztT^%>tJ)~e+v2<< z+H8|J?+SzWB=o+7J`m?aNwQgJTg2Ilv#y~qeMm~RLY!^lY!~N1Mmuyd%edm~(xtu_ ze8fH-wOgEzrMG_~z5P>>iq9naxrFveEx$nj&G=IC{Yox;EzUP`^;^06ojBi1k{=|= zUR@>nep+sBYA7q~d?C7bYL0~FpfT?r!g=!tz z3I(92c>3N`HwP5nuad`a;{2{J@b&3sq7?oR+Mm+R_De{ynbOm?uj{8kEAweTs!gt% z;#lIiND`2cEsi5j5XZZhZ3y*Cr-RL3F0J*6UOm`^KShN{lHuY?BI9>-)rm? zto=!_Hr4=Zd7I}Kj!{Cx9VwginiybhQ(m$%PB6gQ(~St$?yAPx-Ga3r3)X%jSo@i@ z{hpdw`)xJWeksk46Vfn<(ccNy5{=V8RAcRrg0)=rv3A$Lz*_D|)n5zNe)GSNwbUaT zYpHpAs$UD%?)}GD`?Fx}Z-TYROFzvkE&cgW1z5|J2TAQQpgf?HC1>)SKw+hzcL}P73<6sja8fzOFU~OXqti@R<&Yd{5 zVC~TcSj*MFg|!rDDMvwowS<<5vz${Qz}glDSliNA*Gp9He+O&HJQ{0x3GhWJ&>>jc ziWizatmVDG*Yv6EY?97j6HeCsEv!YGZ4xEuV=bXWuol`DNwQU*YD2FzDAfun+BR{v zixZ8tCmCQZ&Mv;;=9!%TA*?-2b_{%N+?E6$rF()rYoWhBu5%k#wm#pS34lAk9SL|KY(S^@s*E>f4@5*8*tc zjek0LEHMDIasxn{B7ink0PO++v}pop(*@9G2%zDtH7*iByRaJ2O4*>xhj9V43C5v= z#|p#iVWap~E`Tz384KhfcB>Vn$iFo6WW6`6C8uZS!*BQ(xyu zBm!vr1<;_)7iWPuH|cZ@py5OVT82K{2rW|sXbm)ghOqG@TD`5DFfZ=)p z!?y(tw^oDUOdT21UB*O}z8u}Euh4+uRnj=uu;3mwrkl$bZ@n?ywbCv)Ad2UmbgB9}-s{lUOT+$ekLjpKGz3!L_EfqS2%N9~>6q?j z4Fukp5O|LU0`KEfpBxni1l}(YxJ)1rXRWbZAaIF}Oj6#Wfxufe5O|wDbWC@L zj*RIRX&~?}>A*Y+f0A;su4R&v3TDew%@OA?5cr@#;7aL#j|c=lE)e*nK;YWiAaKQB zLm*jJ=~V)Os}Bo-r2B^u_(W|G2&=z>z^DFw5crHhAX&~sm?99kL<51)=8LmHoSXD> z0)aTu5cvFIA@Bu(z?TIAaTbbmCr&L8_>w>%SN|3SQlO>!Re?Z4%fwl(UlRy?T_Ety z|0)EMc{BuW6bOWN2n24bhQN0P0yqDEKp@&|lc+u)0tp=gfzY-{lCAPoeF&sfE2L=K z#Mv%RGz7jU5Qwu&a|E)xF8&{yq}(oA{$(YF8#9}l9-98=mJ9b9EljZXEEB99WP-K1CRm$iqU-Yc z8lzEUg0;maSUb@KYiF2|foCImix^~A90m;5wlu-oS66k zycEOH!C);6V)SWzC0(L%91j`6+O{TG%T*t18<`QTC0(jM#RO~HnE&%wOFg2omio4* z(zRgindU#m+IA*b+sOoLdzxTvFB7coV}iB)Ot7{;AJWzw+dEjCwH)CE*7h|cSliwN zYde@=ZAbG^tnF+@u(q2C)^;~*U~Lbx7ObU$+459##5oMs4mQEs;nM#`m|*R>CRjV# z1Z%U+T85iL&A%LOl4X@1X@a$9n}-{2lI|a3?RjP`!%bNI71rjEM5N;1upoGh3D%P3 zJcKENwS7&n7TSDq7Kn3`E-=AboM@~aV;*j}Io1Sg$D3d+&O&kS#Hj^q$C+R)SN|5) zQlO=}!~|;zEfZ(CE;Yg02_{%uVg5IVn`9o1wN-rhSPFCq)=oAf!_6st)0i{O|L?<1 zwAm(6eLmI_Is|K>ZIL8f<*E8uOQ}{!(YA@RU7TpFooa%$IJ@)(=6@7xXNs1;%B*F$ zd9?}FUL&d==P+1%31Guv@HK{;SDKOG=B1v#KOELx;REDe;{$=QuLZ^!QT}YCSio4S zg&L`60b>m;VC+Z>7;9z$W38yb}eicCbO#tl=0kr)BXvzZ6m~t2_&RPSlIz<0j4QSsApnWHR_Wi#Aw7u1U z_Ok%mFEs&eUu}R!1+(S(=7@6`K(j0WEhs%PWC3Ui7J$abnTvECs}?}xbH9JJ!-XuX zbc_X{#af30G}8S;Kuff00W?_s6`&DJ)@EyDuPj<5hUoQ2}tiBk)p)wcjNuKq1Rqd-e_LkmD7v`n1kx{(E-9c=+< zO|1VWppkhrpdDiYXwVJ;v=&wb(2lhLv=goWJD{P>Hi=5}0gcchfCg=gB-tuY)dw_6 zwL*%vO`PrGL<3q&3qZr!rH{A%qkwj@g}y(_ss+&6SpZslKKrh54g+XyfE`ZBs{v?j ztq7o<#@S5h`@;d+nU*)=+soNv0NQyLfL0-Z#=ADZ7_&r;Tqb}vTLA4^0kj1IXp5== zt(O%Um-XTM)ST7_p!Kr=v;k7VL437ZX2$$|EhDVRxNL~j4JV{w5Ti$0029Nus56p%ZTD6SOs9?4{-yCrc189{3Xp^NUP7y$xCV+O40NTvj0Bz!50~%RY>8S!} z=N}f(NcRr`ZF+5h2CKgUw2S|JfOe?>8d=UmtRjF`VgYE-=8LmHoSXFJ0%$nVfOf@U z0qsfwv}**=a2ASlCr&MZcC`Q+SN|5EQJ|%IjsO~=W#TO7xK99Wt^nE%|5ZRE^JqYu zFMtN^5J0=R8qjVLKwJ3#0cdEmO`-&SKqGVrph4RrNw&&U^#P4it&pN^6KA_P(SUZV z02jPM*?@d1@1l;xcgM9|9MTg`??zLzL1*Zgft9dIG+}{ zBO0eSSHsg=w#Hcx1^PRaomN5bRr`kOXw{ShbdTlm+!HuH@njClZO>6>a}1#wngE6r+THMdT%PO;ip9j&fb zH>*7eqW>n7_C>tSoP^`!NZ^_sQG+G+h{{c8PTnE@w| z5oi!-9B3Wr6F4U@J}@wJ9*Anr^K1%%yt$!_d3g+70x5hlg=B?d(Ivw7>o}# z40a2S42}xs1TPQX6nr+cDfDZoPE2}C)0m56Zj4zI^Lostm|ZbH#QYNTTZ|o>9NQpv zVC>-7k+D^=(_*iVofo?x_LkT?W0%H09{X(UJF)M^ZjRj>`%CO^u|{00xKrbL#a$P7 zL)$2SxczZvd?^0J_%q^r#rKIH7(XgLC%!1YJbp_2ocQ_icf{Wv|5*H* z_^0Dvi2pMF&-h?MYC^q)`U#B_&P?c(&?}*D!oY;#3Hb?g6BZ?`N_aJ4TS8)D`^3(P zJrf5e<|RIq_*~+K#CH-uO*|vqH#{IbBz$&wUijwltKqHTePJ^xCaG@H5lKfUHBV}r zG%BeiX=c*>Nh_0HOnNQp&7^meoH|K$POa0c&ZIh1>rAV2NuBL=KB}{)&d+s%$+5|C z$%)BH$#s%bl2emUNN$_lF}ZVcc5-F%?Bs`&A5VTNd3SPrN;oAcB_*Y9O1+fyl#G=6 zDMzFy@T97(9^~%)wsrRLBNPRbTd+P4gFH*lr{XW&I+pun%x}EEGuiLBcd3DR` zURZZ_-HmlWs{3_aqu$7RIrSFTd#K(c^`5BrLA}lOcGUa0-k0^vG$$=4tzKG_v=(Wt z(mJP&Pb*C;Pn({0S=zN}^V04}yC?0Tv`5mONXtxblYUluuk?QDL(+57%hM;N&q%)| z{f_j-=}Xe@Pk%W5@${$CpG|)u{q^*B(zmAXN&hx|U%H(Umyw>)IHP68$r)WU&dC^^ zk(*JJF(qSW#rFu4t{|_OjZ|HaR$GVPrta-ZG&g^1#HG7+9o5f~@ zdA@m(d6{{=xxl>LTw*?GK5DKtUol@ZH@Z^!sc9jR4UorX)^SK=TdOm&IK&!dGOAT7`#&@Iq6P!OmLTo|}Ga7AElV1D3^zynC& zdx6b?F9JUV_67C_0(O1-Bzu58!k%njW#4B%WUsbkR9GFuG2g@0d1|y8!@(}+bIj8f z=)Q$&gZhBl|ETtHP>zjWOEemz!_MHfigP(AyWE(}@z|GfsQe<{QdmX1tT(oE(ENAo z2aVBTou(V2!`kVNx~uN32kD`Dl&;X{qtE8*2lX@hdA**M>JQLgKWknhG{a_dv!mJ5 z98OD3r=8}Tcbgl`P3HUN7IV89upBGK%HSZvMAecn7M!ZOaHQq4=;bEHvBnT%lrfrj zDk{*bi+FM35sm=fYV0w-GJZ1pnSiLP*ITPj+|^5+O-*yuSnj`qV=k}dh{_vy+Bd12 zIW+PPwOHMwmT<7kLmZv>sCq&@rJm=oK0$z89L8oE(h{QKlZ<3^d|e~GTF1Abby^uG zyZZec4h6s7xXW*u4~-q{b4}7m>Z5gY-Cg(9^VvwUTC?#1J^mr9w?ApqOf}QZBg}>z zmwK#u60J~0kC{fFxrElZ(!9pJ7CnAFn*2udCbao&<{fDCyUly)OH0jV<^$$K=ELSA z^s2|qHT0~f&1c-+^}6|%`HuOX`JuU)ezx7*W$rdVGxwNZnqQgUf&_cbAI+c5edcfG zALf43uuRK#+dAG#w34hkRthMQVb!;eq-P#&HL;GhTG1;@t!dWn)^pZ-^u*oP7a&1; zpj}`P`v1H@Nnldod@$hAz^nAYt$~l-9$4Q#+CGu~cc$IVF0_m7DtnFnl>LnTy#12B z-hS2IV83C%X>SA*Hremm@7tU0t@d_%r~Q%rvHhw2x&4LxmHnN)*Z#@=#s1a)-TssF zt+iu0wi5$_Bsxi;NL?olBx&dz?R0g9IU}4=&LU?qDDsl?it`!>vfKI2`N8?gv4Tm# z1|Uh(;IYAzgI$8%gS~BA$I)|B)g|gKwH)iO za#;M?yromcaq<@#cYyg%8!ymHHyZELN0W73T_5~!&VInR!1Jff=gswKhBtUxd(0Fx z!UaKcn)Nx;=ejtZ359Mg#b2->4$Cds{YOs{@ujFvkr_?j*IrV~iiNi2CJXmd3 z+p&I9jn>p=tT7I0YlO9OiM~i*)Z^GDBg}KnT>9;$=4|sm^Kts%>*%-l&5z7) z%wy1N-L2kMKWnHp-MZ2mhcz(4zQDc*UG$*+4o~|O=S-(RPi~}hjx*ZHcg8uz&K=H& zPFnD|V7uTA!B2P&KLzWAj^G(|4h^C0$AyYR6GIn;9t%AidMUIaWXHtDG>+*QGcaaY z%y}^dF;ik*j9DM^X3R&}1AoLcjcps-4{Kmd?D?_NV`pItERTH{3*ft0GcFicKkk&c z)8jhCog0@OcTwEcaks}Ui3`Lh$2W`b8$Tp|8i>Cfw0}Q-OZ?9GJ@M@lMkJIZ%uKi@ z;m(8=2`dxUBy3L{6`l~T3|}3d9iAJ$EBs{msql;8?n&n+jZV5C>H4I;$s>}dC(la0 zDtT@4>&fpYn<>dI@-|92Hs!dK)+s$x&Q8fm8Jkj)G9_ht%Ec+OQ|6^CNO>k@eahP@ zUxUBHX6S z(l1P(2Z}zM{sFk@WHiV)C8G~mIW^_|Kvp!1S5}mq} zgRK5k7Vmh6(WLc_qmY)?SjcD5yUIB7embwnU1D5nTx~2dmSZbFgUoC&HiI)ejlIS% z#;=B>gILZnY|T#4iJ*>1Qku>{nvMW}8tJ3h3*1yUtG26K>yvdGeJZwfTiqUP>Vh`z zp?m6H`W&63$Fi00QMB?l{gM7mf2)7jK{M7o&TNe}eHKVQklsBSeS8JI`$lsSI(LQn zHobc@{rd~^J2dHUW{j0!g{_8GW2=RAvenZXW}RmhFydHb-DSOsgl@FHvVO3Bw{##e zkQ_+Cc78apI`Cv*yj_Y;yw<+azSX|VUShwFF5F~)Vt;0Tjkb$*!cMw#vU8eqmebzp z=JZBR2BF{bo$<)XROe#n3g;H*Hs>B^DK_&;^xX#MZRZ1LJ67|z&Tozpj6>)3!*b3G zjt!0vP6$>7&ktT2yf%18a8dBS;OgKL!L`Bl!PkNtf*%Jz4emkG_61ca6v{y79fh<_ zK+dLzt_p1qZ4d1VeHQvM^nEBEySq_LvzY!!+SHiqV(yMv8uJVm_`5M*#Tc=%u}8)> zjy*HBN9+LX@7&mNv6Zox$Igje9Q#1*>ezKy-&ss{5Noh$LN%fPCOga^-zFiVWqb8k~RE}+bMbcGC*PKq7cMTTDJmY52pmJ!B}`X zM!u`%i`-l)K(0x~6!N+dsl15%W|8BSNak#Ey}?+3<#i9%&Wq&ws__Q6_Kxu$*tQuv zOr-TAEW^)?FR;kIcFVKZ_}SP;ss6w&GIc=PNHHA&8Lp#Kbv+#LBm zjt%KDE^dS5cEYCY?^=}S={z<|U#FKdGTsDo#+n(}PiL6j%?aiVY^H_ga%`X7<|mAL zLsl#nO-ri_cJ*Awvx}{_t!>sWYY!t?D-a6A1x^pN4Ri{0$Ce%%$PScZPfrRg4%{19 zj*LDQSQmIL@L^zkU{@f~u4AX!M_|!3$DSE(pKXt}FTVcJd0HKF4Dj9** zdX9_Id5ljAuwDzXH;S;=OH~=iEmqP?rf}%|h3X>g_hlSJ_!>u2zm1OF#+=1BXjy|N zEOx8RMYJ&bV~>pB<=_IIaiJm4xRRbU1&jWC^zMbmwCblkho>vgR%R;JqJdvBLiD75 zdL!+<1FO|GldxA$Kts;KD!tQO<+k;g;Qh~LhIItCOINgDe{9Bc8OIc1IZm|JTklx! z)AlU_#|KVkwDLrto}FnQMJra?)0iEYZO_BHOLCexCon5;BQpW_I}bV!JFA?>oX4Ft z&RXXwXPxt`^Stu{w%vMk-5btE^xY=seP^??)!ByL+u`hTK6XBFK6AcszD5WB;OuqS zQLkq3%_@U!fV_yy(h}eCAv_D3{PDpmH_j_WDl4lZzcRag%*3oL!j)C!Ii;P;D+%UK ztSrbL?_JL?nONpt@7QB-kDlFz$mOE^?2@W7360Iq9bZya#9^^nmHFkxg(caQ`Gm{! zD=JIN^QY#Qm#VDnoKm=U={~6c&;cE|*tc*0E?xUTugsrZDB0zeR%DIIuPi8pZ)Ih< zPoZoFD1J)c%Z>P1UVxh?=I6qSd)z?3tUg_O4g-~a--|&V8XKK=W3AJV@gp`or9nudO3rKHE?jwPdhZUEj9KdWC=iGQ&=Fs8J!bTXBNPM4*8WmSHlur#-lzCS)^ ztkk5K!d546*$?X4u}|k=L&#`w=RsY&_UqZ7;INK;dUokJr0a;09=(4bgn@^UL!G3! zlg8$k=SzNG!1swGZpEcMvD~843XwA3FNpXBMO774N~ESJzhq3MgoQ-Qkh=eXuKl_V zAke+*5b+C2%koR`BG0M7>n{bB`I4NvBKaz-u(C9p4pHQKo?Dz>>^^&`ZeDgJmpx9t z7vTrzs!DlCQQp{W9%fcIuZM`5kPhg%BDy(M^p}bVgNfClipuibY#JCpPxKBx6@*jP zr1C;n;rM>-mauSvWew=tC#!FES=YXUz3^Z( zB=T_}KDMeduXIw$0fLucMC1knolAwga2o8V_OE6Q&adp7U0BjLzj#1Z`4}GJfWBFs zMTz><8hO^F`J8GH2ho7t%1ev8@yNYf`}0r-WRJ-|K4e_L6%v|l02+t1?zMi1Ww-L|Vy{65<@--E z%YS&@{eADmt|;0cc}M3PIq{!170x}rz)rK)%ey{)pe3YjP?FU_UFx>n?N zrX$mE2uT*2l3eq0vI;zvLa4B$B42Q{M`ux42b2!+KEN&5*bRNw$rE>o|1w2(dCf#o zoIq>tk|*6IKc{Mp8*`tsA05`cBYGl#1R9CHrm{MBj804}Ix*31+2zua+=PUOdoslZ zw|lu=i-=41x)m{bOp!<**jE-77f#LZN4B&}=Z<}{dhndPPAYQC(oSi%V z04ZxwpRU6@mll_KolvrakRNpmPrRxOS&Za!;Bk^TB3W*!hnDrppP0`h;zAdM^FXXK zHbr^g?DFw$v8XxGjzvWWC}h&T+!sb+OE)bl^5X^6y@G0qjuLH$xxr&CFRjFM0mZyP zAL$rC9eSj&q@dL64?_ogVm*Lb(>n^wb6wTf7nR_Od$-bZSAj$mToDk$(29uQxR<5K zerM_1_dpv+IMSuDsa#nR8}chX`H?VI8G6XQVer_}NrX$wQCnQ< zQdL~m#ntRYhL%)S ztXvm`diLv+)jNL*$tD(xW{`N_QZkUBRH0Ytl#V$(E4koByW|%M##CSK1o)PgRCMX& z(x_2Y88>+mPZhi2F8Kx7z?Mg^ZYQ{K2PNoHS_;+@b$bMa3h6g4MS6Ybs`3gcISJfo zX-Q>yDgDd4zq1z|GNr7#+=FwoOZvGAh$O?a3oCiTaCPtSqa6o#?%C60A?55SU@rv_ z^&g2u{GJtbg7TgvV5gg?X3T9dza8AmG(dEejH_!Csh^u}LXPXvuzfJFq|A{x74D4i zy3yV_d40NeQFO2Dviu>aE1s^eNn5oMvWI{Y9@0n5yPmEg*R62s)S~=u*}}!uL|&ia zW={zH{xz^lY^6!1<#`yKSvd?Dq}P=c=HwLRM^kc2OX>L~(IhWXB_&c>{$(#B>TdFY z?4tfyixqCIhJn5L)R1mU9lcl|RQ2$}Jh6))pjC>vMQplAg3cJgJajJ7LI)x+icZM2 z=%`e?zqLg~i#GUg^D|Xs$a($*pw7 z+8tWD2B{nJtz|dto4eQr`Ps$js;m+L3VgXx0N!C?y0SzWDu)(lSBO>5AUDzs1YN~A zq;&8wu22`xnw`W@s?@dBC(4k?#SI>*AIZw?R+KG|!L>f{{f8$5c$&ESxuLI$I!~;u ze##={LrU`^aZqNM*kAZv%CYbW7BCR27@M2TXg;TOGS+?>W_|vFcwTw-qysT-%*JwL z{LWB8w4?}QegOkOKU`T-Apq$;1=`&kBaA63&B-p}(G{0bnl=2 zQedFv6sf_3I-k?0XQy*owZUROzO!n5E+$4g$On#Lp zz_T>BfI<=XlS$w7IF?axk0>G6U~z3rcMzRlT;U2AK4}!5%UPU~s$wM;Vrfay6jfAS zrN~Z7Q<6VPm6jKdk${_6B5r^lk~`ilH&0v8)$1yXyWED5fHaTG)}u%UF3F4LR+X3M zBWIfyZ}$SPazQM^|b-CW^}Z#Yp->b$t*^Jj96S#fjj+t-GH05-)FsWc3IZM!u(0( z?aI9PW3pXo0U3G3Qlm=x00w0-jfn1oFutn1bo}@#LUiuxdX}N#^2;F>mM|W1Ybyc) z0b8M>vM_f%29m;1$SKV(&y%oc^7JIF>QY#a-VxQP>uzDC&{EjSDMCm5X%r90m5<@7BCk;F0p)uYUd(eV^4v=mo|`iT#o|$1f*Xfp zUSUB2>>0D=j(77#Cse9QVs+yelrh6t=}HEkr%!XUdCk06 z&yqY8M;YQ2ib6GhN|hQX|6SU+D$znNnvzJ zC!sj5=f#Q(^LR2|70I9L(Ud7J#d{D3B|C^XMV0y;OXNl1N~VaYq}$+8aYpOKSfAz0 zdgP2Lt8lfZ+rT`c3K|4ku)M?#qg|P%5bBg7h6>C&$-vHQ$GpM{DS%v*GWYPBRf3*% zIiV^$Z_-%NJ+3OxA;(BqRIY0*MfulYQz{) zE(%#1q*1DUR^!bf3*I!#RI?pC!`%14Ewo68j!Eo6QuG{R_D_4!7zTZ%#{>g5s{eAn z1Tt=jPc9EE3fx}uz;Fk_ATu7#}Tx0I3LrGXCue1HhQ5Zm zuW>n}FLD{Dshp4lmf1Vi0}iux);VTu+MM>g^srZr))OT;u6+ZQW3}tZ5X+JtW*w;& zN6K;{7QkuBIf3&mzAC_$Ry}Sdt-;$hS8~TK$2+WUD3Z$GQbc8;L81swgZmW~f*am&{cVWISe)EA>>Km3b;I!J+YV z0yM&|6H@SN5dajH_useA`F8)D(-({)9X4Kc7SE-{@I1ay3@_eBMe1YBgTS62y#(py zEIrT8Wiy*%U33uS-`#DC`MWSWe}EM;txXjXqc{f#5;+RopiyY~@(#dv5YQdmUL6!!g$PTz+?~%h|3Ng=V_jI z`+Ru&5N&9aZM%(^q_@+dTCc`a9J$ODP;WrmSeJ9TuCZdUa>DPFTK#5fK~7gkIQL*08hOM z&fM`Xcx$(knb4)cO%2O923hq2g`+X4A2rCtnU>p8u8k);y1{?*Hv zA=*oaw{hv<)s%RH8`@tje3!y8^89C@= zjNLC4kYWqtogdBi^%$c2>ku7zeKRO`w||5lAn;eJS}yTI^Pg@W9;058`QLPWKtaf) z%7=Z8$+hsu3S^ef8uM=9z{P>$b^dc#${}5T0qQ)7FG%79x7-IB|M$Q&%8+lwZP|ZL w(s2zPQ@n|jwV-)B4AFoT%_W%F@ diff --git a/bcexmm.prj b/bcexmm.prj index 388aa8643a3fab7cd4cef38cd72411932fa1641b..364657075cb179b0511305ffa5b744f3ece09e51 100755 GIT binary patch delta 2092 zcmbuAO=uHA6vtm1DycLLZCct!`bDvg6r%<8psl*uY?ED+w9Rg73Z+p{X#6OM3Oxw9 zv=$a`b5-yzh&13$@Tey}=t=P4Sv&}W(8KuNOwvxXNln|!%<}flo8SAtnK#?%?ev=` ze&2oDEfxJg{Js_2Ww$yCV*Xs7Cp!xPv|G=70N-qYHMZ564;0Yyr4=C21dw9`A!%`2 z0L}xzd*+7nzB?H0XQ<%2i*v54(2ld!(G2hiJ$?cE)U_PAhoEg8oSt?_o1cq zy!%B{%UOHVI?ZnMjRdCQYj)Ebg{|ccYmD*1nIe5%f>_qICWUnhx>h%>lj8fb7_W%& zD)h{`mL|Sq@X&NEU3|yIXoxW(M$Rdw*Pj!Hoz<68W^8HVLVh8YpNO)_UVrc@Mwb49 zj4k&)ZkS85NG>mt%va^|`g7V|;c_%H746Yc*$6DcU;HUG*GY$W+tk`7|AvdQ%Tp7 z2j}R#vScdn{)J8nRnqVQb&~ATpA(eAn@%Hdka%tAzr7)^#eoi=%2e-CsH$>ar_8kd zE*X0jIv$F^9E@aKOUB(fe21#<{(5=qTh@!V-=)gyTBW`-@D>|}s&lRLSXimPC`V~7 z^>pNj!X6AR25B?du^JPr@xG>RttQR6Xn3dSyosi#h?Ue)tPX%SFn6625q7h;hy57} zw-YVr;pFRSTFLr{`$Yn>mHaP(gEnS0fikqG=kH0tF>Gg6bDUx{37nn`C9{PT8HvAQ zysppAQ%9${`X8DdGi_vR*s)(=AbLtFfzTNbnG(Gy-wMabIb^2WqxgzWt$3Fo7QEM9 zBh~|r^tLGh;;}@vYi3c)EL}4l#~`{BoL)v{g%dZX%S%cNBkRp)R2>jMX=w54kZ7K* KAhFib-~Ry4yu!f% delta 2092 zcmbuAO-xfk5XT29v6w;wg#a~tg$PAr4T-@-L4CYF+OBP>^igQiPz}V`7$qi}h%xrS zJ9*tJB;HN@;vxs{deXB;&z?*?aad+{TUcHTRC}3yo$kkP{xdtfm)uK!c_>^eIo z?=P<>wCnJ-j-niY;5d%Ir#p*nII@@r;8g}-jeqJaNY8pJz(^Co5+4XC&(AXe9RTp2 zzYY{U7jgCPKv9m%UB!0%%{rO^p5lzFP5gV;N*kWc;4FaC0`QSv>n=!^t?uonmaVkI zF7dm4BW-iAj^CrO;oD?mTnx^a=<7OcXB;*yy)&>kuyKg3^SGr@|(Tk!*|LTXUEyoW^-o%5>h7 z6P=K%B;hOSBm^Z(%@+iv@g|eV>nGlfEZlAzwAH)wQMML~vZx8=F6l^D2A%d}YbF`B85BK}K z?^hb{X#xCeW7Y#GLs#|uBLUb}#!efyT?)rQ(37D>mQ9e8_$$sOGrdS1oksV6=(giY zYoUf8`-N*GoQy@LIZNuTu&rgA+;n>?htkH>snJd4tGV%BYg?3G8_Wkf>21?yMrNb# zsi~Zi%HNLLwncR31-*>g3Oi!Wm6z;fN1W!%x(ca.audiosegs[0]);\ +src/imfplay.c: printf("&%Fp\n", MEMPTR gvar->ca.audiosegs[0]);\ +src/imfplay.c: MM_FreePtr(MEMPTR gvar->ca.audiosegs[0], gvar); +src/imfplay.c: MM_GetPtr(MEMPTR gvar->ca.audiosegs[0],len, gvar); +src/imfplay.c: imf_music = (struct imf_entry *)gvar->ca.audiosegs[0]; +src/lib/16_ca.c: value = *(long far *)(((byte far *)gvar->ca.grstarts)+offset); +src/lib/16_ca.c:#define GRFILEPOS(c) (gvar->ca.grstarts[c]) +src/lib/16_ca.c: gvar->handle.debughandle = open("debug.16b", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_ca.c: gvar->handle.debughandle = open("debug.16w", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_ca.c: close(gvar->handle.debughandle); +src/lib/16_ca.c: if(gvar->pm.emm.EMSVer<0x40) +src/lib/16_ca.c: if(gvar->pm.emm.EMSVer<0x40) +src/lib/16_ca.c: MM_GetPtr (MEMPTR gvar->ca.tinf,length,gvar); +src/lib/16_ca.c: CA_FarRead(handle, gvar->ca.tinf, length,gvar); +src/lib/16_ca.c: gvar->ca.tinf = (byte _seg *)FP_SEG(&maphead); +src/lib/16_ca.c: if ((gvar->ca.file.maphandle[0] = open("data/test.map", +src/lib/16_ca.c:if ((gvar->ca.file.audiohandle = open("data/02.imf", +src/lib/16_ca.c: gvar->handle.profilehandle = open("profile.16b", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_ca.c: gvar->handle.profilehandle = open("profile.16w", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_ca.c: gvar->handle.showmemhandle = open("meminfo.16b", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_ca.c: gvar->handle.showmemhandle = open("meminfo.16w", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_ca.c: gvar->ca.camap.mapon = -1; +src/lib/16_ca.c: gvar->ca.ca_levelbit = 1; +src/lib/16_ca.c: gvar->ca.ca_levelnum = 0; +src/lib/16_ca.c: close(gvar->handle.profilehandle); +src/lib/16_ca.c: close(gvar->handle.showmemhandle); +src/lib/16_ca.c: close(*(gvar->ca.file.maphandle)); +src/lib/16_ca.c: gvar->ca.grneeded[chunk] |= ca_levelbit; // make sure it doesn't get removed +src/lib/16_ca.c: if (gvar->ca.camap.mapon>-1 && gvar->ca.camap.mapheaderseg[gvar->ca.camap.mapon]) +src/lib/16_ca.c: MM_SetPurge (((memptr)gvar->ca.camap.mapheaderseg[(gvar->ca.camap.mapon)]), 3, gvar); +src/lib/16_ca.c: if (gvar->ca.camap.mapsegs[plane]) +src/lib/16_ca.c: MM_FreePtr ((memptr)gvar->ca.camap.mapsegs[plane], gvar); +src/lib/16_ca.c: gvar->ca.camap.mapon = gvar->ca.camap.mapnum; +src/lib/16_ca.c:// if (!gvar->ca.camap.mapheaderseg[gvar->ca.camap.mapnum]) +src/lib/16_ca.c:// //pos = ((_seg *)gvar->ca.camap.tinf)->headeroffsets[gvar->ca.camap.mapnum]; +src/lib/16_ca.c:// pos = ((memptr)gvar->ca.camap.tinf)->headeroffsets[gvar->ca.camap.mapnum]; +src/lib/16_ca.c:// MM_GetPtr(MEMPTR gvar->ca.camapheaderseg[mapnum],sizeof(maptype)); +src/lib/16_ca.c:// MM_SetPurge (MEMPTR mapheaderseg[mapnum], 0, &(gvar->mm)); +src/lib/16_ca.c: if (gvar->ca.ca_levelnum==7) +src/lib/16_ca.c: gvar->ca.ca_levelbit<<=1; +src/lib/16_ca.c: gvar->ca.ca_levelnum++; +src/lib/16_ca.c: if (!gvar->ca.ca_levelnum) +src/lib/16_ca.c: gvar->ca.ca_levelbit>>=1; +src/lib/16_ca.c: gvar->ca.ca_levelnum--; +src/lib/16_ca.c: gvar->ca.grneeded[i]&=~gvar->ca.ca_levelbit; +src/lib/16_ca.c: _fmemset (gvar->ca.grneeded,0,sizeof(gvar->ca.grneeded)); +src/lib/16_ca.c: gvar->ca.ca_levelbit = 1; +src/lib/16_ca.c: gvar->ca.ca_levelnum = 0; +src/lib/16_ca.c: if (gvar->ca.grsegs[i]) +src/lib/16_ca.c: MM_SetPurge (gvar->ca.grsegs[i],3, gvar); +src/lib/16_ca.c:// if (gvar->ca.camap.mapheaderseg[i]) +src/lib/16_ca.c:// MM_SetPurge (gvar->ca.camap.mapheaderseg[i],3, gvar); +src/lib/16_ca.c: if (gvar->ca.mapsegs[i]) +src/lib/16_ca.c: MM_FreePtr ((memptr *)&gvar->ca.mapsegs[i], gvar); +src/lib/16_ca.c: if (gvar->ca.audiosegs[i]) +src/lib/16_ca.c: MM_SetPurge ((memptr *)&gvar->ca.audiosegs[i],3, gvar); +src/lib/16_ca.c: if (gvar->ca.grneeded[i]&(gvar->ca.ca_levelbit))//if (grneeded[i]&ca_levelbit) +src/lib/16_ca.c: if (gvar->ca.grsegs[i]) // its allready in memory, make +src/lib/16_ca.c: MM_SetPurge(gvar->ca.grsegs[i],0,gvar); // sure it stays there! +src/lib/16_ca.c: if (gvar->ca.grsegs[i]) // not needed, so make it purgeable +src/lib/16_ca.c: MM_SetPurge(gvar->ca.grsegs[i],3,gvar); +src/lib/16_ca.c: if ( (gvar->ca.grneeded[i]&(gvar->ca.ca_levelbit)) && !gvar->ca.grsegs[i]) +src/lib/16_ca.c: !(gvar->video.grneeded[next]&ca_levelbit && !grsegs[next])) +src/lib/16_ca.c: CA_FarRead(grhandle,(gvar->mm.bufferseg),endpos-pos,gvar); +src/lib/16_dbg.c: page = &(gvar->pm.PMPages[i]); +src/lib/16_dbg.c://++ if (i < (gvar->pm.fi.PMSpriteStart)) +src/lib/16_dbg.c:/* else if (i < (gvar->pm.fi.PMSoundStart)) +src/lib/16_dbg.c: else if (i == (gvar->pm.fi.ChunksInFile - 1)) +src/lib/16_dbg.c: while (!(scan = gvar->in.inst->LastScan)) +src/lib/16_dbg.c: if (++i >= (gvar->pm.fi.ChunksInFile)) +src/lib/16_dbg.c:// i = (gvar->pm.fi.PMSpriteStart); +src/lib/16_dbg.c:// i = (gvar->pm.fi.PMSoundStart); +src/lib/16_dbg.c: i = (gvar->pm.fi.ChunksInFile - 1); +src/lib/16_dbg.c: for (j = 0;j < (gvar->pm.fi.ChunksInFile);j++) +src/lib/16_hc.c: write(gvar->handle.heaphandle,scratch,strlen(scratch)); +src/lib/16_hc.c: write(gvar->handle.heaphandle,scratch,strlen(scratch)); +src/lib/16_hc.c: write(gvar->handle.heaphandle,scratch,strlen(scratch)); +src/lib/16_hc.c: write(gvar->handle.heaphandle,scratch,strlen(scratch)); +src/lib/16_hc.c: write(gvar->handle.heaphandle,scratch,strlen(scratch)); +src/lib/16_hc.c: write(gvar->handle.heaphandle,scratch,strlen(scratch)); +src/lib/16_hc.c: write(gvar->handle.heaphandle,scratch,strlen(scratch)); +src/lib/16_hc.c: write(gvar->handle.heaphandle,(str),strlen((str))); +src/lib/16_hc.c: gvar->handle.heaphandle = open("heap.16b", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_hc.c: gvar->handle.heaphandle = open("heap.16w", O_CREAT | O_WRONLY | O_TEXT); +src/lib/16_hc.c: close(gvar->handle.heaphandle); +src/lib/16_in.c://gvar->in.KbdDefs = {0x1d,0x38,/*0x47,*/0x48,/*0x49,*/0x4b,0x4d,/*0x4f,*/0x50/*,0x51*/}; +src/lib/16_in.c: def = gvar->in.JoyDefs + joy; +src/lib/16_in.c: def = &(gvar->in.JoyDefs[joy]); +src/lib/16_in.c: def = &(gvar->in.JoyDefs[joy]); +src/lib/16_in.c: gvar->in.JoysPresent[joy] = false; +src/lib/16_in.c: if (gvar->in.IN_Started) +src/lib/16_in.c: gvar->in.MousePresent = checkmouse? INL_StartMouse() : false; +src/lib/16_in.c: gvar->in.JoysPresent[i] = checkjoys? INL_StartJoy(i, gvar) : false; +src/lib/16_in.c: gvar->in.inst = &inst; +src/lib/16_in.c: gvar->in.IN_Started = true; +src/lib/16_in.c: || ((nt == ctrl_Joystick1) && !gvar->in.JoysPresent[0]) +src/lib/16_in.c: || ((nt == ctrl_Joystick2) && !gvar->in.JoysPresent[1]) +src/lib/16_in.c: || ((nt == ctrl_Mouse) && !gvar->in.MousePresent) +src/lib/16_in.c: gvar->in.KbdDefs[0].button0 = 0x1c; +src/lib/16_in.c: gvar->in.KbdDefs[0].button1 = 0x38; +src/lib/16_in.c: gvar->in.KbdDefs[0].up = 0x48; +src/lib/16_in.c: gvar->in.KbdDefs[0].left = 0x4b; +src/lib/16_in.c: gvar->in.KbdDefs[0].right = 0x4d; +src/lib/16_in.c: gvar->in.KbdDefs[0].down = 0x50; +src/lib/16_in.c: if (!gvar->in.IN_Started) +src/lib/16_in.c: gvar->in.IN_Started = false; +src/lib/16_in.c: if (gvar->in.MousePresent) +src/lib/16_in.c: if (!gvar->in.JoysPresent[i]) +src/lib/16_in.c: def = &(gvar->in.KbdDefs[type - ctrl_Keyboard]); +src/lib/16_in.c: if (gvar->in.MousePresent) +src/lib/16_in.c: if(!gvar->in.IN_Started) +src/lib/16_in.c: if (gvar->in.MousePresent) +src/lib/16_in.c: if (gvar->in.MousePresent) +src/lib/16_in.c: if (gvar->in.JoysPresent[i]) +src/lib/16_in.c: if (gvar->in.MousePresent) +src/lib/16_map.c:#define MAPBUFINLM *(gvar->ca.mapsegs) +src/lib/16_mm.c: gvar->mm.totalEMSpages=totalEMSpages; +src/lib/16_mm.c: gvar->mm.freeEMSpages=freeEMSpages; +src/lib/16_mm.c: gvar->mm.EMSPageFrame=EMSPageFrame; +src/lib/16_mm.c: gvar->mm.EMSpagesmapped=EMSpagesmapped; +src/lib/16_mm.c: gvar->mm.EMSHandle=EMSHandle; +src/lib/16_mm.c: gvar->mm.EMSVer=EMSVer; +src/lib/16_mm.c: unsigned EMSHandle=gvar->mm.EMSHandle; +src/lib/16_mm.c: EMSHandle=gvar->mm.EMSHandle; +src/lib/16_mm.c: gvar->mmi.EMSmem = (i)*0x4000lu; +src/lib/16_mm.c: EMSHandle=gvar->mm.EMSHandle; +src/lib/16_mm.c: if(gvar->mm.EMSVer<0x40) +src/lib/16_mm.c: gvar->mmi.EMSmem = (i)*0x4000lu; +src/lib/16_mm.c: gvar->mmi.XMSmem += size*16; +src/lib/16_mm.c: gvar->mm.UMBbase[gvar->mm.numUMBs] = base; +src/lib/16_mm.c: gvar->mm.numUMBs++; +src/lib/16_mm.c: if(gvar->mm.numUMBs < MAXUMBS) +src/lib/16_mm.c: for (i=0;imm.numUMBs;i++) +src/lib/16_mm.c: base = gvar->mm.UMBbase[i]; +src/lib/16_mm.c: scan = last = gvar->mm.mmhead; +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmhead; // reset rover to start of memory +src/lib/16_mm.c: gvar->mm.mmnew->useptr = NULL; +src/lib/16_mm.c: gvar->mm.mmnew->next = scan->next; +src/lib/16_mm.c: scan->next = gvar->mm.mmnew; +src/lib/16_mm.c: gvar->mm.mmnew->start = segstart+seglength; +src/lib/16_mm.c: gvar->mm.mmnew->length = extra; +src/lib/16_mm.c: gvar->mm.mmnew->attributes = LOCKBIT; +src/lib/16_mm.c: scan = gvar->mm.mmhead->next; +src/lib/16_mm.c: if(gvar->mm.mmstarted) +src/lib/16_mm.c: gvar->mm.mmstarted = true; +src/lib/16_mm.c: gvar->mm.bombonerror = true; +src/lib/16_mm.c: gvar->mm.mmhead = NULL; +src/lib/16_mm.c: gvar->mm.mmfree = &(gvar->mm.mmblocks[0]); +src/lib/16_mm.c: gvar->mm.mmblocks[i].next = &(gvar->mm.mmblocks[i+1]); +src/lib/16_mm.c: gvar->mm.mmblocks[i].next = NULL; +src/lib/16_mm.c: gvar->mm.mmhead = gvar->mm.mmnew; // this will allways be the first node +src/lib/16_mm.c: gvar->mm.mmnew->start = 0; +src/lib/16_mm.c: gvar->mm.mmnew->length = 0xffff; +src/lib/16_mm.c: gvar->mm.mmnew->attributes = LOCKBIT; +src/lib/16_mm.c: gvar->mm.mmnew->next = NULL; +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmhead; +src/lib/16_mm.c: //start = gvar->mm.nearheap = _fmalloc(length); +src/lib/16_mm.c: start = (void __far *)(gvar->mm.nearheap = _nmalloc(length)); +src/lib/16_mm.c: start = (void far *)(gvar->mm.nearheap = malloc(length)); +src/lib/16_mm.c: gvar->mmi.nearheap = length; +src/lib/16_mm.c: start = gvar->mm.farheap = _fmalloc(length);//start = gvar->mm.farheap = halloc(length, 1); +src/lib/16_mm.c: gvar->mmi.farheap = length; +src/lib/16_mm.c: gvar->mmi.mainmem = gvar->mmi.nearheap + gvar->mmi.farheap; +src/lib/16_mm.c: gvar->mmi.EMSmem = 0; +src/lib/16_mm.c: MML_UseSpace(gvar->mm.EMSPageFrame,(MAPPAGES)*0x4000lu, gvar); +src/lib/16_mm.c: //if(gvar->pm.emm.EMSVer<0x40) +src/lib/16_mm.c: gvar->mmi.XMSmem = 0; +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmhead; // start looking for space after low block +src/lib/16_mm.c: MM_GetPtr(&(gvar->mm.bufferseg),BUFFERSIZE, gvar); +src/lib/16_mm.c: if(!(gvar->mm.mmstarted)) +src/lib/16_mm.c: _ffree(gvar->mm.farheap);// printf(" far freed\n"); +src/lib/16_mm.c: _nfree(gvar->mm.nearheap);// printf(" near freed\n"); +src/lib/16_mm.c: free(gvar->mm.nearheap);// printf(" near freed\n"); +src/lib/16_mm.c: gvar->mm.mmnew->length = needed; +src/lib/16_mm.c: gvar->mm.mmnew->useptr = baseptr; +src/lib/16_mm.c: //if(gvar->mm.mmnew->useptr==NULL){ +src/lib/16_mm.c: printf(" baseptr=%Fp ", baseptr); printf("useptr=%Fp\n", gvar->mm.mmnew->useptr); +src/lib/16_mm.c: printf(" *baseptr=%Fp ", *baseptr); printf("*useptr=%Fp\n", *(gvar->mm.mmnew->useptr)); +src/lib/16_mm.c: printf(" &baseptr=%Fp ", &baseptr); printf("&useptr=%Fp\n", &(gvar->mm.mmnew->useptr)); +src/lib/16_mm.c: //Quit(gvar, "gvar->mm.mmnew->useptr==NULL"); } +src/lib/16_mm.c: gvar->mm.mmnew->attributes = BASEATTRIBUTES; +src/lib/16_mm.c: if (search == 1 && gvar->mm.mmrover == gvar->mm.mmhead) +src/lib/16_mm.c: lastscan = gvar->mm.mmrover; +src/lib/16_mm.c: scan = gvar->mm.mmrover->next; +src/lib/16_mm.c: lastscan = gvar->mm.mmhead; +src/lib/16_mm.c: scan = gvar->mm.mmhead->next; +src/lib/16_mm.c: endscan = gvar->mm.mmrover; +src/lib/16_mm.c: lastscan = gvar->mm.mmhead; +src/lib/16_mm.c: scan = gvar->mm.mmhead->next; +src/lib/16_mm.c: lastscan->next = gvar->mm.mmnew; +src/lib/16_mm.c: gvar->mm.mmnew->start = *(unsigned *)baseptr = startseg; +src/lib/16_mm.c: gvar->mm.mmnew->next = scan; +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmnew; +src/lib/16_mm.c: if (gvar->mm.bombonerror) +src/lib/16_mm.c: printf(OUT_OF_MEM_MSG,(size-gvar->mmi.nearheap)); +src/lib/16_mm.c: gvar->mm.mmerror = true; +src/lib/16_mm.c: last = gvar->mm.mmhead; +src/lib/16_mm.c: if(baseptr == gvar->mm.mmrover->useptr) // removed the last allocated block +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmhead; +src/lib/16_mm.c: start = gvar->mm.mmrover; +src/lib/16_mm.c: if(gvar->mm.mmrover->useptr == baseptr) +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmrover->next; +src/lib/16_mm.c: if(!gvar->mm.mmrover) +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmhead; +src/lib/16_mm.c: else if(gvar->mm.mmrover == start) +src/lib/16_mm.c: gvar->mm.mmrover->attributes &= ~PURGEBITS; +src/lib/16_mm.c: gvar->mm.mmrover->attributes |= purge; +src/lib/16_mm.c: start = gvar->mm.mmrover; +src/lib/16_mm.c: if(gvar->mm.mmrover->useptr == baseptr) +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmrover->next; +src/lib/16_mm.c: if(!gvar->mm.mmrover) +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmhead; +src/lib/16_mm.c: else if(gvar->mm.mmrover == start) +src/lib/16_mm.c: gvar->mm.mmrover->attributes &= ~LOCKBIT; +src/lib/16_mm.c: gvar->mm.mmrover->attributes |= locked*LOCKBIT; +src/lib/16_mm.c: oldborder = gvar->video.bordercolor; +src/lib/16_mm.c: gvar->video.bordercolor = modexPalOverscan(15); +src/lib/16_mm.c: scan = gvar->mm.mmhead; +src/lib/16_mm.c: gvar->mm.mmrover = gvar->mm.mmhead; +src/lib/16_mm.c: VL_SetLineWidth(40, &gvar->video.ofs); +src/lib/16_mm.c: temp = gvar->video.ofs.bufferofs; +src/lib/16_mm.c: gvar->video.ofs.bufferofs = gvar->video.ofs.displayofs; +src/lib/16_mm.c: scan = gvar->mm.mmhead; +src/lib/16_mm.c: write(gvar->handle.debughandle,scratch,strlen(scratch)); +src/lib/16_mm.c: VW_Hlin(x,x+end,y,color, &gvar->video.ofs); +src/lib/16_mm.c: VL_Plot(x,y,15, &gvar->video.ofs); +src/lib/16_mm.c: VW_Hlin(x+end+1,x+(scan->next->start-scan->start),y,0, &gvar->video.ofs); // black = free +src/lib/16_mm.c: write(gvar->handle.debughandle,scratch,strlen(scratch)); +src/lib/16_mm.c: write(gvar->handle.debughandle,scratch0,strlen(scratch0)); +src/lib/16_mm.c: gvar->video.ofs.bufferofs = temp; +src/lib/16_mm.c: _nfree(gvar->mm.nearheap); +src/lib/16_mm.c: free(gvar->mm.nearheap); +src/lib/16_mm.c: scan = gvar->mm.mmhead; +src/lib/16_mm.c: scan = gvar->mm.mmhead; +src/lib/16_mm.c: scan = gvar->mm.mmhead; +src/lib/16_mm.c: printf(" %cLIMEMS %u\n", 0xC9, gvar->pm.emm.EMSPresent); +src/lib/16_mm.c: printf(" %c%cEMM v%x.%x available\n", 0xC7, 0xC4, gvar->pm.emm.EMSVer>>4,gvar->pm.emm.EMSVer&0x0F); +src/lib/16_mm.c: printf(" %c%ctotalEMSpages: %u ", 0xC7, 0xC4, gvar->pm.emm.totalEMSpages); printf("freeEMSpages: %u\n", gvar->pm.emm.freeEMSpages); +src/lib/16_mm.c: printf(" %c%cEMSPageFrame: %04x\n", 0xC7, 0xC4, gvar->pm.emm.EMSPageFrame); +src/lib/16_mm.c: printf(" %c%cEMSmem: %lu or %luk\n", 0xD3, 0xC4, gvar->mmi.EMSmem, gvar->mmi.EMSmem/1204); +src/lib/16_mm.c: printf(" %cXMS %u\n", 0xC9, gvar->pm.xmm.XMSPresent); +src/lib/16_mm.c: printf(" %c%cXMSHandle: %04x\n", 0xC7, 0xC4, gvar->pm.xmm.XMSHandle); +src/lib/16_mm.c: printf(" %c%cXMSmem: %lu or %lukb\n", 0xD3, 0xC4, gvar->mmi.XMSmem, gvar->mmi.XMSmem/1024); +src/lib/16_mm.c: printf(" %cConv. %u\n", 0xC9, gvar->pm.mm.MainPresent); DebugMemory_(gvar, 0); +src/lib/16_mm.c: //printf("mainmem: %lu\n", gvar->mmi.mainmem); +src/lib/16_mm.c: //printf("Total convmem: %lu ", gvar->mmi.mainmem); printf("TotalFree: %lu ", MM_TotalFree(gvar)+gvar->mmi.EMSmem+gvar->mmi.XMSmem+gvar->mmi.XMSmem); printf("TotalUsed: %lu\n", gvar->mmi.mainmem); +src/lib/16_mm.c: printf("nearheap: %lu ", gvar->mmi.nearheap); printf("farheap: %lu\n", gvar->mmi.farheap); +src/lib/16_mm.c: gvar->mm.bombonerror = bomb; +src/lib/16_mm.c: if(!gvar->mm.mmfree) +src/lib/16_mm.c: gvar->mm.mmnew=gvar->mm.mmfree; +src/lib/16_mm.c: gvar->mm.mmfree=gvar->mm.mmfree->next; +src/lib/16_mm.c: if(!(gvar->mm.mmnew=gvar->mm.mmfree)) +src/lib/16_mm.c: gvar->mm.mmfree=gvar->mm.mmfree->next; +src/lib/16_mm.c: x->next=gvar->mm.mmfree; +src/lib/16_mm.c: gvar->mm.mmfree=x; +src/lib/16_mm.c: dword XMSDriver = gvar->pm.xmm.XMSDriver; +src/lib/16_pm.c: PMBlockAttr gvar->pm.mm.MainMemUsed[PMMaxMainMem]; +src/lib/16_pm.c: int gvar->pm.mm.MainPagesAvail;*/ +src/lib/16_pm.c:/* word gvar->pm.emm.EMSAvail,gvar->pm.emm.EMSPagesAvail,gvar->pm.emm.EMSHandle, +src/lib/16_pm.c: gvar->pm.emm.EMSPageFrame,gvar->pm.emm.EMSPhysicalPage; +src/lib/16_pm.c: gvar->pm.emm.EMSListStruct gvar->pm.emm.EMSList[EMSFrameCount];*/ +src/lib/16_pm.c: //word gvar->pm.xmm.XMSAvail,gvar->pm.xmm.XMSPagesAvail,gvar->pm.xmm.XMSHandle; +src/lib/16_pm.c:/* int gvar->pm.xmm.XMSProtectPage = -1; +src/lib/16_pm.c: char gvar->pm.fi.PageFileName[13] = {"VSWAP."}; +src/lib/16_pm.c: word gvar->pm.fi.ChunksInFile; +src/lib/16_pm.c: gvar->pm.PMPanicMode, +src/lib/16_pm.c: gvar->pm.PMThrashing; +src/lib/16_pm.c: word gvar->pm.XMSPagesUsed, +src/lib/16_pm.c: gvar->pm.EMSPagesUsed, +src/lib/16_pm.c: gvar->pm.PMNumBlocks; +src/lib/16_pm.c: PageListStruct far *gvar->pm.PMPages, +src/lib/16_pm.c: _seg *gvar->pm.PMSegPages;*/ +src/lib/16_pm.c: EMShandle=gvar->pm.emm.EMSHandle; +src/lib/16_pm.c: gvar->pm.emm.EMSPresent = false; // Assume that we'll fail +src/lib/16_pm.c: gvar->pm.emm.EMSAvail = gvar->mmi.EMSmem = 0; +src/lib/16_pm.c: size = gvar->pm.emm.EMSAvail * (long)EMSPageSize; +src/lib/16_pm.c: if (size - (EMSPageSize * 2) > (gvar->pm.fi.ChunksInFile * (long)PMPageSize)) +src/lib/16_pm.c: size = (gvar->pm.fi.ChunksInFile * (long)PMPageSize) + EMSPageSize; +src/lib/16_pm.c: gvar->pm.emm.EMSAvail = size / EMSPageSize; +src/lib/16_pm.c: return(gvar->pm.emm.EMSPresent); +src/lib/16_pm.c: gvar->mmi.EMSmem = EMSAvail * (dword)EMSPageSize; +src/lib/16_pm.c: gvar->pm.emm.EMSList[i].baseEMSPage = -1; +src/lib/16_pm.c: gvar->pm.emm.EMSPresent = true; // We have EMS +src/lib/16_pm.c: gvar->pm.emm.EMSPageFrame = EMSPageFrame; +src/lib/16_pm.c: gvar->pm.emm.EMSAvail = EMSAvail; +src/lib/16_pm.c: gvar->pm.emm.EMSVer = EMSVer; +src/lib/16_pm.c: gvar->pm.emm.EMSHandle = EMSHandle; +src/lib/16_pm.c: gvar->pm.emm.freeEMSpages = freeEMSpages; +src/lib/16_pm.c: gvar->pm.emm.totalEMSpages = totalEMSpages; +src/lib/16_pm.c: return(gvar->pm.emm.EMSPresent); +src/lib/16_pm.c: EMSHandle=gvar->pm.emm.EMSHandle; +src/lib/16_pm.c: if (gvar->pm.emm.EMSPresent) +src/lib/16_pm.c: gvar->pm.xmm.XMSPresent = false; // Assume failure +src/lib/16_pm.c: XMSAvail = gvar->mmi.XMSmem = 0; +src/lib/16_pm.c: gvar->mmi.XMSmem = (dword)(XMSAvail) * 1024; +src/lib/16_pm.c: gvar->pm.xmm.XMSAvail = XMSAvail; +src/lib/16_pm.c: gvar->pm.xmm.XMSHandle = XMSHandle; +src/lib/16_pm.c: //gvar->pm.xmm.XMSVer = XMSVer; +src/lib/16_pm.c: gvar->pm.xmm.XMSPresent = true; +src/lib/16_pm.c: printf(" XMSmem=%lu XMSAvail=%u\n", gvar->mmi.XMSmem, XMSAvail); +src/lib/16_pm.c: //printf(" %u", gvar->pm.xmm.XMSHandle); +src/lib/16_pm.c: return(gvar->pm.xmm.XMSPresent); +src/lib/16_pm.c: copy.source_handle = toxms? 0 : gvar->pm.xmm.XMSHandle; +src/lib/16_pm.c: copy.target_handle = toxms? gvar->pm.xmm.XMSHandle : 0; +src/lib/16_pm.c: word XMSHandle = gvar->pm.xmm.XMSHandle; +src/lib/16_pm.c: if (gvar->pm.xmm.XMSPresent) +src/lib/16_pm.c: if(gvar->pm.mm.MainPresent) +src/lib/16_pm.c: printf("PM_SetMainMemPurge() info of gvar->pm.mm.MainMemPages[i]\n"); +src/lib/16_pm.c: printf("& %Fp, %Fp\n", &gvar->pm.mm.MainMemPages[i], &(gvar->pm.mm.MainMemPages[i])); +src/lib/16_pm.c: if (gvar->pm.mm.MainMemPages[i]) +src/lib/16_pm.c: MM_SetPurge(&(gvar->pm.mm.MainMemPages[i]),level, gvar); +src/lib/16_pm.c: if (!gvar->pm.mm.MainPresent) +src/lib/16_pm.c: for (i = 0,page = gvar->pm.PMPages;i < gvar->pm.fi.ChunksInFile;i++,page++) +src/lib/16_pm.c: if (!gvar->pm.mm.MainMemPages[n]) // Yep, was the block purged? +src/lib/16_pm.c: for (i = 0,p = gvar->pm.mm.MainMemPages,used = gvar->pm.mm.MainMemUsed; i < PMMaxMainMem;i++,p++,used++) +src/lib/16_pm.c: gvar->pm.mm.MainPagesAvail--; // and decrease available count +src/lib/16_pm.c: gvar->pm.MainPagesUsed--; // and decrease used count +src/lib/16_pm.c: if (gvar->mm.mmerror) // If it failed, +src/lib/16_pm.c: gvar->pm.mm.MainPagesAvail++; // and increase available count +src/lib/16_pm.c: if (gvar->mm.mmerror) +src/lib/16_pm.c: gvar->mm.mmerror = false; +src/lib/16_pm.c: gvar->pm.mm.MainPagesAvail = 0; +src/lib/16_pm.c: gvar->pm.mm.MainPresent = false; +src/lib/16_pm.c: for (i = 0,p = gvar->pm.mm.MainMemPages;i < PMMaxMainMem;i++,p++) +src/lib/16_pm.c: if (gvar->mm.mmerror) +src/lib/16_pm.c: gvar->pm.mm.MainPagesAvail++; +src/lib/16_pm.c: gvar->pm.mm.MainMemUsed[i] = pmba_Allocated; +src/lib/16_pm.c: if (gvar->mm.mmerror) +src/lib/16_pm.c: gvar->mm.mmerror = false; +src/lib/16_pm.c: if (gvar->pm.mm.MainPagesAvail < PMMinMainMem) +src/lib/16_pm.c: gvar->pm.mm.MainPresent = true; +src/lib/16_pm.c: for (i = 0,p = gvar->pm.mm.MainMemPages;i < PMMaxMainMem;i++,p++) +src/lib/16_pm.c: if (lseek(gvar->pm.fi.PageFile,offset,SEEK_SET) != offset) +src/lib/16_pm.c: if (!CA_FarRead(gvar->pm.fi.PageFile,buf,length, gvar)) +src/lib/16_pm.c: gvar->pm.fi.PageFile = open(gvar->pm.fi.PageFileName,O_RDONLY + O_BINARY); +src/lib/16_pm.c: if (gvar->pm.fi.PageFile == -1) +src/lib/16_pm.c: read(gvar->pm.fi.PageFile,&gvar->pm.fi.ChunksInFile,sizeof(gvar->pm.fi.ChunksInFile)); +src/lib/16_pm.c: read(gvar->pm.fi.PageFile,&gvar->pm.fi.PMSpriteStart,sizeof(gvar->pm.fi.PMSpriteStart)); +src/lib/16_pm.c: read(gvar->pm.fi.PageFile,&gvar->pm.fi.PMSoundStart,sizeof(gvar->pm.fi.PMSoundStart)); +src/lib/16_pm.c: gvar->pm.PMNumBlocks = gvar->pm.fi.ChunksInFile; +src/lib/16_pm.c: MM_GetPtr((memptr *)&gvar->pm.PMSegPages, sizeof(PageListStruct) * (gvar->pm.PMNumBlocks), gvar); +src/lib/16_pm.c: MM_SetLock((memptr *)&gvar->pm.PMSegPages,true, gvar); +src/lib/16_pm.c: gvar->pm.PMPages = (PageListStruct far *)gvar->pm.PMSegPages; +src/lib/16_pm.c: _fmemset(gvar->pm.PMPages,0,sizeof(PageListStruct) * gvar->pm.PMNumBlocks); +src/lib/16_pm.c: size = sizeof(dword) * gvar->pm.fi.ChunksInFile; +src/lib/16_pm.c: if (!CA_FarRead(gvar->pm.fi.PageFile,(byte far *)buf,size, gvar)) +src/lib/16_pm.c: for (i = 0,page = gvar->pm.PMPages;i < gvar->pm.fi.ChunksInFile;i++,page++) +src/lib/16_pm.c: size = sizeof(word) * gvar->pm.fi.ChunksInFile; +src/lib/16_pm.c: if (!CA_FarRead(gvar->pm.fi.PageFile,(byte far *)buf,size, gvar)) +src/lib/16_pm.c: for (i = 0,page = gvar->pm.PMPages;i < gvar->pm.fi.ChunksInFile;i++,page++) +src/lib/16_pm.c: if (gvar->pm.fi.PageFile != -1) +src/lib/16_pm.c: close(gvar->pm.fi.PageFile); +src/lib/16_pm.c: if (gvar->pm.PMSegPages) +src/lib/16_pm.c: MM_SetLock((memptr *)&gvar->pm.PMSegPages,false, gvar); +src/lib/16_pm.c: MM_FreePtr((void _seg *)&gvar->pm.PMSegPages, gvar); +src/lib/16_pm.c: if (gvar->pm.emm.EMSList[i].baseEMSPage == emsbase) +src/lib/16_pm.c: if (gvar->pm.emm.EMSList[i].lastHit < last) +src/lib/16_pm.c: last = gvar->pm.emm.EMSList[i].lastHit; +src/lib/16_pm.c: gvar->pm.emm.EMSList[emspage].baseEMSPage = emsbase; +src/lib/16_pm.c: gvar->pm.emm.EMSList[emspage].lastHit = gvar->pm.PMFrameCount; +src/lib/16_pm.c: return((memptr)(gvar->pm.emm.EMSPageFrame + offset)); +src/lib/16_pm.c: page = &gvar->pm.PMPages[pagenum]; +src/lib/16_pm.c: return(gvar->pm.mm.MainMemPages[page->mainPage]); +src/lib/16_pm.c: for (i = 0,page = gvar->pm.PMPages,lru = -1,last = LONG_MAX;i < gvar->pm.fi.ChunksInFile;i++,page++) +src/lib/16_pm.c: for (i = 0,page = gvar->pm.PMPages,lru = -1,last = LONG_MAX;i < gvar->pm.fi.ChunksInFile;i++,page++) +src/lib/16_pm.c: && (i != gvar->pm.xmm.XMSProtectPage) +src/lib/16_pm.c: if (!gvar->pm.xmm.XMSPresent) +src/lib/16_pm.c: page = &gvar->pm.PMPages[pagenum]; +src/lib/16_pm.c: if (gvar->pm.XMSPagesUsed < gvar->pm.xmm.XMSPagesAvail) +src/lib/16_pm.c: page->xmsPage = gvar->pm.XMSPagesUsed++; +src/lib/16_pm.c: page->xmsPage = gvar->pm.PMPages[usexms].xmsPage; +src/lib/16_pm.c: gvar->pm.PMPages[usexms].xmsPage = -1; +src/lib/16_pm.c: origpage = &gvar->pm.PMPages[orig]; +src/lib/16_pm.c: newpage = &gvar->pm.PMPages[new]; +src/lib/16_pm.c: page = &gvar->pm.PMPages[pagenum]; +src/lib/16_pm.c: if ((gvar->pm.EMSPagesUsed < gvar->pm.emm.EMSPagesAvail) && !mainonly) +src/lib/16_pm.c: page->emsPage = gvar->pm.EMSPagesUsed++; +src/lib/16_pm.c: else if (gvar->pm.MainPagesUsed < gvar->pm.mm.MainPagesAvail) +src/lib/16_pm.c: for (i = 0,n = -1,used = gvar->pm.mm.MainMemUsed;i < PMMaxMainMem;i++,used++) +src/lib/16_pm.c: addr = gvar->pm.mm.MainMemPages[n]; +src/lib/16_pm.c: gvar->pm.MainPagesUsed++; +src/lib/16_pm.c: page = &gvar->pm.PMPages[pagenum]; +src/lib/16_pm.c: if (gvar->pm.xmm.XMSPresent && (page->xmsPage != -1)) +src/lib/16_pm.c: gvar->pm.xmm.XMSProtectPage = pagenum; +src/lib/16_pm.c: gvar->pm.xmm.XMSProtectPage = -1; +src/lib/16_pm.c: page = &gvar->pm.PMPages[pagenum]; +src/lib/16_pm.c: if (pagenum >= gvar->pm.fi.ChunksInFile) +src/lib/16_pm.c: boolean mainonly = (pagenum >= gvar->pm.fi.PMSoundStart); +src/lib/16_pm.c:if (!gvar->pm.PMPages[pagenum].offset) // JDC: sparse page +src/lib/16_pm.c: if (gvar->pm.PMPages[pagenum].lastHit == gvar->pm.PMFrameCount) +src/lib/16_pm.c: gvar->pm.PMThrashing++; +src/lib/16_pm.c: gvar->pm.PMPages[pagenum].lastHit = gvar->pm.PMFrameCount; +src/lib/16_pm.c: if (pagenum < gvar->pm.fi.PMSoundStart) +src/lib/16_pm.c: gvar->pm.PMPages[pagenum].locked = lock; +src/lib/16_pm.c: mainfree = (gvar->pm.mm.MainPagesAvail - gvar->pm.MainPagesUsed) + (gvar->pm.emm.EMSPagesAvail - gvar->pm.EMSPagesUsed); +src/lib/16_pm.c: xmsfree = (gvar->pm.xmm.XMSPagesAvail - gvar->pm.XMSPagesUsed); +src/lib/16_pm.c: for (i = 0;i < gvar->pm.fi.ChunksInFile;i++) +src/lib/16_pm.c: if (!gvar->pm.PMPages[i].offset) +src/lib/16_pm.c: if ( gvar->pm.PMPages[i].emsPage != -1 || gvar->pm.PMPages[i].mainPage != -1 ) +src/lib/16_pm.c: else if ( xmsfree && (gvar->pm.PMPages[i].xmsPage == -1) ) +src/lib/16_pm.c: while ( !gvar->pm.PMPages[page].offset || gvar->pm.PMPages[page].mainPage != -1 +src/lib/16_pm.c: || gvar->pm.PMPages[page].emsPage != -1 ) +src/lib/16_pm.c: if (page >= gvar->pm.fi.ChunksInFile) +src/lib/16_pm.c: Quit (gvar, "PM_Preload: Pages>=gvar->pm.fi.ChunksInFile"); +src/lib/16_pm.c: for (oogypage = 0 ; gvar->pm.PMPages[oogypage].mainPage == -1 ; oogypage++) +src/lib/16_pm.c: while ( !gvar->pm.PMPages[page].offset || gvar->pm.PMPages[page].xmsPage != -1 ) +src/lib/16_pm.c: if (page >= gvar->pm.fi.ChunksInFile) +src/lib/16_pm.c: Quit (gvar, "PM_Preload: Pages>=gvar->pm.fi.ChunksInFile"); +src/lib/16_pm.c: p = &gvar->pm.PMPages[page]; +src/lib/16_pm.c: p->xmsPage = gvar->pm.XMSPagesUsed++; +src/lib/16_pm.c: if (gvar->pm.XMSPagesUsed > gvar->pm.xmm.XMSPagesAvail) +src/lib/16_pm.c: p = &gvar->pm.PMPages[oogypage]; +src/lib/16_pm.c: if (++gvar->pm.PMFrameCount >= LONG_MAX - 4) +src/lib/16_pm.c: for (i = 0;i < gvar->pm.PMNumBlocks;i++) +src/lib/16_pm.c: gvar->pm.PMPages[i].lastHit = 0; +src/lib/16_pm.c: gvar->pm.PMFrameCount = 0; +src/lib/16_pm.c: for (i = 0;i < gvar->pm.fi.PMSoundStart;i++) +src/lib/16_pm.c: if (gvar->pm.PMPages[i].locked) +src/lib/16_pm.c: if (gvar->pm.PMPanicMode) +src/lib/16_pm.c: if ((!gvar->pm.PMThrashing) && (!--gvar->pm.PMPanicMode)) +src/lib/16_pm.c: if (gvar->pm.PMThrashing >= PMThrashThreshold) +src/lib/16_pm.c: gvar->pm.PMPanicMode = PMUnThrashThreshold; +src/lib/16_pm.c: gvar->pm.PMThrashing = false; +src/lib/16_pm.c: gvar->pm.xmm.XMSPagesAvail = gvar->pm.xmm.XMSAvail / PMPageSizeKB; +src/lib/16_pm.c: gvar->pm.emm.EMSPagesAvail = gvar->pm.emm.EMSAvail * (EMSPageSizeKB / PMPageSizeKB); +src/lib/16_pm.c: gvar->pm.emm.EMSPhysicalPage = 0; +src/lib/16_pm.c: gvar->pm.MainPagesUsed = gvar->pm.EMSPagesUsed = gvar->pm.XMSPagesUsed = 0; +src/lib/16_pm.c: gvar->pm.PMPanicMode = false; +src/lib/16_pm.c: gvar->pm.fi.PageFile = -1; +src/lib/16_pm.c: gvar->pm.xmm.XMSProtectPage = -1; +src/lib/16_pm.c: for (i = 0,page = gvar->pm.PMPages;i < gvar->pm.PMNumBlocks;i++,page++) +src/lib/16_pm.c: if (gvar->pm.PMStarted) +src/lib/16_pm.c: //0000+=+=strcpy(&(gvar->pm.fi.PageFileName), "VSWAP."); +src/lib/16_pm.c: if (!gvar->pm.mm.MainPresent && !gvar->pm.emm.EMSPresent && !gvar->pm.xmm.XMSPresent) +src/lib/16_pm.c: gvar->pm.PMStarted = true; +src/lib/16_pm.c: if (!gvar->pm.PMStarted) +src/lib/16_sd.c: gvar->ca.sd.irq0_ticks= +src/lib/16_sd.c: //gvar->ca.sd.irq0_cnt= +src/lib/16_sd.c: //gvar->ca.sd.irq0_add= +src/lib/16_sd.c: gvar->ca.sd.imf_delay_countdown= +src/lib/16_sd.c: gvar->ca.sd.irq0_max=0; +src/lib/16_sd.c: gvar->ca.sd.imf_music= +src/lib/16_sd.c: gvar->ca.sd.imf_play_ptr= +src/lib/16_sd.c: gvar->ca.sd.imf_music_end=NULL; +src/lib/16_sd.c: gvar->ca.sd.irq0_cnt = 0; +src/lib/16_sd.c: gvar->ca.sd.irq0_add = 182; +src/lib/16_sd.c: gvar->ca.sd.irq0_max = 1000; /* about 18.2Hz */ +src/lib/16_sd.c: if (gvar->ca.sd.imf_music) free(gvar->ca.sd.imf_music); +src/lib/16_sd.c: MM_FreePtr(MEMPTR gvar->ca.audiosegs[0], gvar); //TODO make behave like id engine +src/lib/16_sd.c: gvar->ca.sd.imf_music = gvar->ca.sd.imf_play_ptr = gvar->ca.sd.imf_music_end = NULL; +src/lib/16_sd.c: gvar->ca.sd.imf_delay_countdown = 0; +src/lib/16_sd.c: MM_GetPtr(MEMPTR gvar->ca.audiosegs[0],len, gvar); +src/lib/16_sd.c: gvar->ca.sd.imf_music = (struct imf_entry *)gvar->ca.audiosegs[0]; +src/lib/16_sd.c: if (gvar->ca.sd.imf_music == NULL) { +src/lib/16_sd.c: read(fd,gvar->ca.sd.imf_music,len); +src/lib/16_sd.c: gvar->ca.sd.imf_play_ptr = gvar->ca.sd.imf_music; +src/lib/16_sd.c: gvar->ca.sd.imf_music_end = gvar->ca.sd.imf_music + (len >> 2UL); +src/lib/16_sd.c: if (gvar->ca.sd.imf_delay_countdown == 0) { +src/lib/16_sd.c: adlib_write(gvar->ca.sd.imf_play_ptr->reg,gvar->ca.sd.imf_play_ptr->data); +src/lib/16_sd.c: gvar->ca.sd.imf_delay_countdown = gvar->ca.sd.imf_play_ptr->delay; +src/lib/16_sd.c: gvar->ca.sd.imf_play_ptr++; +src/lib/16_sd.c: if (gvar->ca.sd.imf_play_ptr == gvar->ca.sd.imf_music_end) +src/lib/16_sd.c: gvar->ca.sd.imf_play_ptr = gvar->ca.sd.imf_music; +src/lib/16_sd.c: } while (gvar->ca.sd.imf_delay_countdown == 0); +src/lib/16_sd.c: gvar->ca.sd.imf_delay_countdown--; +src/lib/16_tail.c: gvar->video.VL_Started=0; +src/lib/16_tail.c: gvar->mm.mmstarted=0; +src/lib/16_tail.c: gvar->pm.PMStarted=0; +src/lib/16_tail.c: if(gvar->video.VL_Started) +src/lib/16_tail.c: if(!gvar->video.old_mode) gvar->video.old_mode = vgaGetMode();//out.h.al; +src/lib/16_tail.c: gvar->video.old_mode = 3; +src/lib/16_tail.c: gvar->video.VL_Initiated = 1; +src/lib/16_tail.c: printf("Total: "); if(q) printf(" "); printf("%uk", gvar->mmi.mainmem/1024); +src/lib/16_us.c: VLB_Bar(px,py,42,6,3/*BackColor*/, &gvar->video.ofs); +src/lib/16_us.c: modexprint(gvar->video.page, px, py, 1, 0, 4, 8, 1, "YOU:"); +src/lib/16_us.c: VLB_Bar(px,py,50,6,3/*BackColor*/, &gvar->video.ofs); +src/lib/16_us.c: modexprint(gvar->video.page, px, py, 1, 0, 4, 8, 1, "COMP:"); +src/lib/16_us.c: 3/*BackColor*/, &gvar->video.ofs); +src/lib/16_us.c: modexputPixel(gvar->video.page, BallMinX, BallMinY, 3); +src/lib/16_us.c: modexputPixel(gvar->video.page, cx, CPaddleY, 3); +src/lib/16_us.c: modexputPixel(gvar->video.page, kx, KPaddleY, 3); +src/lib/16_us.c: } while ((gvar->in.inst->LastScan != sc_Escape) && !done); +src/lib/16_vrs.c: CA_ReadFile(filename, &gvar->ca.spribuff, gvar); +src/lib/16_vrs.c: CA_LoadFile(filename, &gvar->ca.spribuff, gvar); +src/lib/16_vrs.c: enti->spri.spritesheet.buffer = gvar->ca.spribuff; +src/lib/16_mm.h:#define GETNEWBLOCK {if(!gvar->mm.mmfree)MML_ClearBlock(gvar);gvar->mm.mmnew=gvar->mm.mmfree;gvar->mm.mmfree=gvar->mm.mmfree->next;} +src/lib/16_mm.h:#define FREEBLOCK(x) {*x->useptr=NULL;x->next=gvar->mm.mmfree;gvar->mm.mmfree=x;} +src/lib/16_mm.h:#define MAPPAGES 4//gvar->mm.EMSpagesmapped +src/lib/vgmsnd/vgmSnd.c: MM_GetPtr(MEMPTR gvar->ca.audiosegs[0], vgmFile->dataLen, gvar); +src/lib/vgmsnd/vgmSnd.c: vgmFile->data = (UINT8*)gvar->ca.audiosegs[0]; +src/lib/vgmsnd/vgmSnd.c: MM_FreePtr(MEMPTR gvar->ca.audiosegs[0], gvar); +=============== ./q.sh end =============== diff --git a/makefile b/makefile index ee61e51c..9be1782e 100755 --- a/makefile +++ b/makefile @@ -138,7 +138,7 @@ LIBFLAGS=$(WLIBQ) -b -n VGMSNDOBJ = vgmSnd.$(OBJ) #OLDLIBOBJS=bitmap.$(OBJ) 16render.$(OBJ) GFXLIBOBJS = 16_vl.$(OBJ) 16_vl_1.$(OBJ) 16_vlpal.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16_vrs.$(OBJ) 16_spri.$(OBJ) $(OLDLIBOBJS) -16LIBOBJS = 16_mm.$(OBJ) 16_pm.$(OBJ) 16_ca.$(OBJ) 16_tail.$(OBJ) 16_head.$(OBJ) 16_enti.$(OBJ) 16_dbg.$(OBJ) 16_in.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_wcpu.$(OBJ) 16_timer.$(OBJ) jsmn.$(OBJ) 16_map.$(OBJ) 16text.$(OBJ) 16_sd.$(OBJ) +16LIBOBJS = 16_mm.$(OBJ) 16_pm.$(OBJ) 16_ca.$(OBJ) 16_tail.$(OBJ) 16_head.$(OBJ) 16_enti.$(OBJ) 16_dbg.$(OBJ) 16_in.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_wcpu.$(OBJ) 16_timer.$(OBJ) jsmn.$(OBJ) 16_map.$(OBJ) 16text.$(OBJ) 16_sd.$(OBJ) 16_tail_.$(OBJ) 16_dbg_1.$(OBJ) DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ) !ifeq DEBUGSERIAL 1 DOSLIBOBJ += 8250.$(OBJ) @@ -286,7 +286,8 @@ pcxtest2.exe: pcxtest2.$(OBJ) gfx.lib $(DOSLIB) #planrpcx.exe: planrpcx.$(OBJ) gfx.lib maptest.exe: maptest.$(OBJ) 16_map.$(OBJ) 16_head.$(OBJ) gfx.lib $(DOSLIB) $(16LIB) fmemtest.exe: fmemtest.$(OBJ) -exmmtest.exe: exmmtest.$(OBJ) $(16LIB) gfx.lib $(DOSLIB) +exmmtest.exe: exmmtest.$(OBJ) 16_pm.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_mm.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ) 16_vl_1.$(OBJ) 16_tail.$(OBJ) 16_in.$(OBJ) 16_dbg.$(OBJ) +#$(16LIB) gfx.lib $(DOSLIB) vgmtest.exe: vgmtest.$(OBJ) vgmsnd.lib $(16LIB) $(DOSLIB) gfx.lib db.exe: db.$(OBJ) ps.exe: ps.$(OBJ) 16_head.$(OBJ) @@ -396,9 +397,11 @@ mapread.$(OBJ):$(SRCLIB)/mapread.c $(SRCLIB)/mapread.h 16_ca.$(OBJ): $(SRCLIB)/16_ca.c $(SRCLIB)/16_ca.h 16_us.$(OBJ): $(SRCLIB)/16_us.c 16_dbg.$(OBJ): $(SRCLIB)/16_dbg.c $(SRCLIB)/16_dbg.h +16_dbg_1.$(OBJ): $(SRCLIB)/16_dbg_1.c $(SRCLIB)/16_dbg.h midi.$(OBJ): $(SRCLIB)/midi.c $(SRCLIB)/midi.h 16_head.$(OBJ):$(SRCLIB)/16_head.c $(SRCLIB)/16_head.h 16_tail.$(OBJ):$(SRCLIB)/16_tail.c $(SRCLIB)/16_tail.h +16_tail_.$(OBJ):$(SRCLIB)/16_tail_.c $(SRCLIB)/16_tail.h 16_hc.$(OBJ): $(SRCLIB)/16_hc.c $(SRCLIB)/16_hc.h 16_sd.$(OBJ): $(SRCLIB)/16_sd.c $(SRCLIB)/16_sd.h jsmn.$(OBJ): $(JSMNLIB)/jsmn.c $(JSMNLIB)/jsmn.h diff --git a/src/exmmtest.c b/src/exmmtest.c index 7e9ba334..67343f1e 100755 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -63,12 +63,24 @@ #endif //////////////////////////////////////////////////////////////////////////// -#ifdef __BORLANDC__ +//#ifdef __BORLANDC__ void VGAmodeX(sword vq, boolean cmem, global_game_variables_t *gv) { printf("VGAmodeX dummy:\n %Fp %Fp %Fp\n", &vq, &cmem, gv); } -#endif + +word modexPalOverscan(word col) +{ + //modexWaitBorder(); + outp(PAL_WRITE_REG, 0); /* start at the beginning of palette */ + outp(PAL_DATA_REG, col); + return col; +} +void TL_VidInit(global_game_variables_t *gvar) +{ + gvar->video.old_mode = 3; +} +//#endif //printf("* %Fp\t", *BBUF); //printf("* %04x\t", *BBUF); diff --git a/src/lib/16_ca.c b/src/lib/16_ca.c index ca0ad837..95fa5446 100755 --- a/src/lib/16_ca.c +++ b/src/lib/16_ca.c @@ -1123,15 +1123,13 @@ dinorm: void CAL_SetupMapFile (global_game_variables_t *gvar) { -#ifndef MAPHEADERLINKED - int handle; - long length; -#endif +//++ int handle; +//++ long length; // // load maphead.ext (offsets and tileinfo for map file) // -#ifndef MAPHEADERLINKED +/*#ifndef MAPHEADERLINKED if ((handle = open("maphead.mph", O_RDONLY | O_BINARY, S_IREAD)) == -1) Quit (gvar, "Can't open maphead.mph"); @@ -1143,13 +1141,13 @@ void CAL_SetupMapFile (global_game_variables_t *gvar) gvar->ca.tinf = (byte _seg *)FP_SEG(&maphead); -#endif +#endif*/ // // open the data file // //TODO: multiple files - if ((gvar->ca.file.maphandle[0] = open("data/test.map", + if ((gvar->ca.file.maphandle = open("data/test.map", O_RDONLY | O_BINARY, S_IREAD)) == -1) Quit (gvar, "Can't open data/test.map!"); /*#ifdef MAPHEADERLINKED @@ -1174,18 +1172,18 @@ void CAL_SetupMapFile (global_game_variables_t *gvar) ====================== */ -/*void CAL_SetupAudioFile (void) +void CAL_SetupAudioFile (global_game_variables_t *gvar) { - int handle; - long length; +//++ int handle; +//++ long length; // // load maphead.ext (offsets and tileinfo for map file) // -#ifndef AUDIOHEADERLINKED - if ((handle = open("AUDIOHED."EXT, +/*#ifndef AUDIOHEADERLINKED + if ((handle = open("audihead.adh, O_RDONLY | O_BINARY, S_IREAD)) == -1) - Quit (gvar, "Can't open AUDIOHED."EXT"!"); + Quit (gvar, "Can't open audihead.adh!"); length = filelength(handle); MM_GetPtr (MEMPTR audiostarts,length); CA_FarRead(handle, (byte far *)audiostarts, length); @@ -1194,21 +1192,25 @@ void CAL_SetupMapFile (global_game_variables_t *gvar) audiohuffman = (huffnode *)&audiodict; CAL_OptimizeNodes (audiohuffman); audiostarts = (long _seg *)FP_SEG(&audiohead); -#endif +#endif*/ // // open the data file // -#ifndef AUDIOHEADERLINKED +//TODO: multiple files + if ((gvar->ca.file.audiohandle = open("data/02.imf", + O_RDONLY | O_BINARY, S_IREAD)) == -1) + Quit (gvar, "Can't open data/02.imf!"); +/*#ifndef AUDIOHEADERLINKED if ((audiohandle = open("AUDIOT."EXT, O_RDONLY | O_BINARY, S_IREAD)) == -1) Quit (gvar, "Can't open AUDIOT."EXT"!"); -#else +//#else if ((audiohandle = open("AUDIO."EXT, O_RDONLY | O_BINARY, S_IREAD)) == -1) Quit (gvar, "Can't open AUDIO."EXT"!"); -#endif -}*/ +#endif*/ +} //========================================================================== @@ -1253,7 +1255,7 @@ void CA_Startup(global_game_variables_t *gvar) CAL_SetupGrFile (gvar); #endif #ifndef NOAUDIO - CAL_SetupMapFile (gvar); + CAL_SetupAudioFile (gvar); #endif gvar->ca.camap.mapon = -1; @@ -1285,10 +1287,9 @@ void CA_Shutdown(global_game_variables_t *gvar) #endif close(gvar->handle.showmemhandle); - close(*(gvar->ca.file.maphandle)); -/*++++ - close(grhandle); - close(audiohandle);*/ + close(gvar->ca.file.maphandle); + close(gvar->ca.file.grhandle); + close(gvar->ca.file.audiohandle); } //=========================================================================== diff --git a/src/lib/16_ca.h b/src/lib/16_ca.h index 29b6c627..0f0222a5 100755 --- a/src/lib/16_ca.h +++ b/src/lib/16_ca.h @@ -29,9 +29,9 @@ //#define NOMAPS #define NOGRAPHICS -#define NOAUDIO +//#define NOAUDIO -#define MAPHEADERLINKED +//#define MAPHEADERLINKED //#define GRHEADERLINKED //#define AUDIOHEADERLINKED diff --git a/src/lib/16_dbg.c b/src/lib/16_dbg.c index fff20c22..321388c9 100755 --- a/src/lib/16_dbg.c +++ b/src/lib/16_dbg.c @@ -25,80 +25,7 @@ boolean dbg_delayanimation=0; #endif #endif //debug -#ifdef __WATCOMC__ -// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?" -#ifdef DEBUGSERIAL -# include -# include -# include -unsigned char _DEBUG_INITed = 0; -struct info_8250 *_DEBUG_uart = NULL; - -int _DEBUG_INIT() { - if (!_DEBUG_INITed) { - unsigned int i; - uint16_t port; - - if (!init_8250()) return 0; - - // what does the BIOS say the serial ports are? - probe_8250_bios_ports(); - for (i=0;i < bios_8250_ports;i++) { - port = get_8250_bios_port(i); - if (port == 0) continue; - probe_8250(port); - } - - // what about the standard serial ports? - for (i=0;i < (sizeof(standard_8250_ports)/sizeof(standard_8250_ports[0]));i++) { - port = standard_8250_ports[i]; - if (port == 0) continue; - probe_8250(port); - } - - // pick the first port, which is probably COM1 - if (base_8250_ports == 0) return 0; // FIXME: You know "base_8250_ports" is probably a bad variable name for the max entries in info_8250_port[] - _DEBUG_uart = &info_8250_port[0]; - _DEBUG_INITed = 1; - - // init the COM port. - // in DOSBox-X, the "log" mode will receive our text and print it into the log file - // on real hardware, our text will likely go over a null modem cable to another PC running a serial terminal program like PuTTY or minicom. - // if nothing is connected, then the bytes go off into the ether to get lost and life goes on. - uart_8250_enable_interrupt(_DEBUG_uart,0); // disable interrupts - uart_8250_set_FIFO(_DEBUG_uart,0x07); // enable FIFO (why not?), also clear xmit/recv FIFO buffers, set threshhold to 1 byte - uart_8250_set_MCR(_DEBUG_uart,3); // RTS and DTS on - uart_8250_set_line_control(_DEBUG_uart,UART_8250_LCR_8BIT | UART_8250_LCR_PARITY); // 8 bit 1 stop bit odd parity - uart_8250_set_baudrate(_DEBUG_uart,uart_8250_baud_to_divisor(_DEBUG_uart,9600)); // 9600 baud - } - - return _DEBUG_INITed; -} - -void _DEBUG(const char *msg) { - if (_DEBUG_uart != NULL) { - char c; - - while ((c=(*msg++)) != 0/*NUL*/) { - while (!uart_8250_can_write(_DEBUG_uart)); // wait for the UART to indicate readiness for our output - uart_8250_write(_DEBUG_uart,(uint8_t)c); // then write it - } - } -} - -static char _DEBUGF_TMP[256]; - -void _DEBUGF(const char *fmt,...) { - va_list va; - - va_start(va,fmt); - vsnprintf(_DEBUGF_TMP,sizeof(_DEBUGF_TMP),fmt,va); - _DEBUG(_DEBUGF_TMP); - va_end(va); -} -#endif //serial -#endif //watcomc /* ================ = diff --git a/src/lib/16_dbg_1.c b/src/lib/16_dbg_1.c new file mode 100755 index 00000000..03c86f5e --- /dev/null +++ b/src/lib/16_dbg_1.c @@ -0,0 +1,74 @@ +#include "src/lib/16_dbg.h" + +// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?" +#ifdef DEBUGSERIAL +# include +# include +# include + +unsigned char _DEBUG_INITed = 0; +struct info_8250 *_DEBUG_uart = NULL; + +int _DEBUG_INIT() { + if (!_DEBUG_INITed) { + unsigned int i; + uint16_t port; + + if (!init_8250()) return 0; + + // what does the BIOS say the serial ports are? + probe_8250_bios_ports(); + for (i=0;i < bios_8250_ports;i++) { + port = get_8250_bios_port(i); + if (port == 0) continue; + probe_8250(port); + } + + // what about the standard serial ports? + for (i=0;i < (sizeof(standard_8250_ports)/sizeof(standard_8250_ports[0]));i++) { + port = standard_8250_ports[i]; + if (port == 0) continue; + probe_8250(port); + } + + // pick the first port, which is probably COM1 + if (base_8250_ports == 0) return 0; // FIXME: You know "base_8250_ports" is probably a bad variable name for the max entries in info_8250_port[] + _DEBUG_uart = &info_8250_port[0]; + _DEBUG_INITed = 1; + + // init the COM port. + // in DOSBox-X, the "log" mode will receive our text and print it into the log file + // on real hardware, our text will likely go over a null modem cable to another PC running a serial terminal program like PuTTY or minicom. + // if nothing is connected, then the bytes go off into the ether to get lost and life goes on. + uart_8250_enable_interrupt(_DEBUG_uart,0); // disable interrupts + uart_8250_set_FIFO(_DEBUG_uart,0x07); // enable FIFO (why not?), also clear xmit/recv FIFO buffers, set threshhold to 1 byte + uart_8250_set_MCR(_DEBUG_uart,3); // RTS and DTS on + uart_8250_set_line_control(_DEBUG_uart,UART_8250_LCR_8BIT | UART_8250_LCR_PARITY); // 8 bit 1 stop bit odd parity + uart_8250_set_baudrate(_DEBUG_uart,uart_8250_baud_to_divisor(_DEBUG_uart,9600)); // 9600 baud + } + + return _DEBUG_INITed; +} + +void _DEBUG(const char *msg) { + if (_DEBUG_uart != NULL) { + char c; + + while ((c=(*msg++)) != 0/*NUL*/) { + while (!uart_8250_can_write(_DEBUG_uart)); // wait for the UART to indicate readiness for our output + uart_8250_write(_DEBUG_uart,(uint8_t)c); // then write it + } + } +} + +static char _DEBUGF_TMP[256]; + +void _DEBUGF(const char *fmt,...) { + va_list va; + + va_start(va,fmt); + vsnprintf(_DEBUGF_TMP,sizeof(_DEBUGF_TMP),fmt,va); + _DEBUG(_DEBUGF_TMP); + va_end(va); +} +#endif //serial diff --git a/src/lib/16_tail.c b/src/lib/16_tail.c index f7d5a71a..638e7110 100755 --- a/src/lib/16_tail.c +++ b/src/lib/16_tail.c @@ -40,9 +40,6 @@ static word far* clockw= (word far*) 0x046C; /* 18.2hz clock */ void Startup16(global_game_variables_t *gvar) { -#ifdef __WATCOMC__ - start_timer(gvar); -#endif gvar->video.VL_Started=0; TL_VidInit(gvar); gvar->mm.mmstarted=0; @@ -93,51 +90,6 @@ void Shutdown16(global_game_variables_t *gvar) #endif } -void TL_VidInit(global_game_variables_t *gvar) -{ -#ifdef __WATCOMC__ - // DOSLIB: check our environment - probe_dos(); - - // DOSLIB: what CPU are we using? - // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS. - // So this code by itself shouldn't care too much what CPU it's running on. Except that other - // parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for - // the CPU to carry out tasks. --J.C. - cpu_probe(); - - // DOSLIB: check for VGA - if (!probe_vga()) { - printf("VGA probe failed\n"); - return; - } - // hardware must be VGA or higher! - if (!(vga_state.vga_flags & VGA_IS_VGA)) { - printf("This program requires VGA or higher graphics hardware\n"); - return; - } - - if (_DEBUG_INIT() == 0) { -#ifdef DEBUGSERIAL - //printf("WARNING: Failed to initialize DEBUG output\n"); -#endif - } - _DEBUG("Serial debug output started\n"); // NTS: All serial output must end messages with newline, or DOSBox-X will not emit text to log - _DEBUGF("Serial debug output printf test %u %u %u\n",1U,2U,3U); - - textInit(); - - // get old video mode - //in.h.ah = 0xf; - //int86(0x10, &in, &out); - if(!gvar->video.old_mode) gvar->video.old_mode = vgaGetMode();//out.h.al; -#else - gvar->video.old_mode = 3; -#endif - gvar->video.VL_Initiated = 1; -} - - //=========================================================================== /* @@ -677,13 +629,3 @@ void booleantest() printf(" sizeof(boolean)=%s\n", boolean_to_binary(sizeof(boolean))); printf("end of boolean test\n"); } - -#ifdef __BORLANDC__ -word modexPalOverscan(word col) -{ - //modexWaitBorder(); - outp(PAL_WRITE_REG, 0); /* start at the beginning of palette */ - outp(PAL_DATA_REG, col); - return col; -} -#endif diff --git a/src/lib/16_tail_.c b/src/lib/16_tail_.c new file mode 100755 index 00000000..10ef7395 --- /dev/null +++ b/src/lib/16_tail_.c @@ -0,0 +1,43 @@ +#include "src/lib/16_tail.h" + +void TL_VidInit(global_game_variables_t *gvar) +{ + start_timer(gvar); + + // DOSLIB: check our environment + probe_dos(); + + // DOSLIB: what CPU are we using? + // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS. + // So this code by itself shouldn't care too much what CPU it's running on. Except that other + // parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for + // the CPU to carry out tasks. --J.C. + cpu_probe(); + + // DOSLIB: check for VGA + if (!probe_vga()) { + printf("VGA probe failed\n"); + return; + } + // hardware must be VGA or higher! + if (!(vga_state.vga_flags & VGA_IS_VGA)) { + printf("This program requires VGA or higher graphics hardware\n"); + return; + } + + if (_DEBUG_INIT() == 0) { +#ifdef DEBUGSERIAL + //printf("WARNING: Failed to initialize DEBUG output\n"); +#endif + } + _DEBUG("Serial debug output started\n"); // NTS: All serial output must end messages with newline, or DOSBox-X will not emit text to log + _DEBUGF("Serial debug output printf test %u %u %u\n",1U,2U,3U); + + textInit(); + + // get old video mode + //in.h.ah = 0xf; + //int86(0x10, &in, &out); + if(!gvar->video.old_mode) gvar->video.old_mode = vgaGetMode();//out.h.al; + gvar->video.VL_Initiated = 1; +} diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h index 22e9812b..418750fb 100755 --- a/src/lib/16_tdef.h +++ b/src/lib/16_tdef.h @@ -599,8 +599,8 @@ typedef struct #pragma pack(push,1) typedef struct imf_entry { - uint8_t reg,data; - uint16_t delay; + byte reg,data; + word delay; } imf_entry_t; #pragma pack(pop) @@ -611,7 +611,7 @@ typedef struct imf_entry_t* imf_music;//=NULL; imf_entry_t* imf_play_ptr;//=NULL; imf_entry_t* imf_music_end;//=NULL; - uint16_t imf_delay_countdown;//=0; + word imf_delay_countdown;//=0; } sd_t; //========================================================================== @@ -643,9 +643,9 @@ typedef struct typedef struct { - int maphandle[4]; // handle to MAPTEMP / GAMEMAPS - int grhandle[4]; // handle to EGAGRAPH - int audiohandle[4]; // handle to AUDIOT / AUDIO + int maphandle; // handle to MAPTEMP / GAMEMAPS + int grhandle; // handle to EGAGRAPH + int audiohandle; // handle to AUDIOT / AUDIO } ca_handle_t; /* 16/wf3d8086/id_ca.c: grstarts = (long _seg *)FP_SEG(&EGAhead); -- 2.39.2