From 939365a00977cabd03486ed06237840ee3b368f5 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 6 Nov 2023 14:31:52 +0100 Subject: [PATCH] Splash is optional now. --- Atari/gr_basics.asm | 17 +++++++++++++---- C64/gr_basics.asm | 13 +++++++++---- scorch.asm | 16 +++++++++++++++- scorch.xex | Bin 56480 -> 32602 bytes 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/Atari/gr_basics.asm b/Atari/gr_basics.asm index 5a75e8e..4aea4f4 100644 --- a/Atari/gr_basics.asm +++ b/Atari/gr_basics.asm @@ -109,6 +109,8 @@ EndOfUnPlot .proc plot ;plot (xdraw, ydraw, color) ; color == 1 --> put pixel ; color == 0 --> erase pixel +; xdraw (word) - X coordinate +; ydraw (word) - Y coordinate ; this is one of the most important routines in the whole ; game. If you are going to speed up the game, start with ; plot - it is used by every single effect starting from explosions @@ -165,9 +167,11 @@ ClearPlot .proc ExPlot ;ExPlot (EplotX, EplotY) ; EOR plot: ; Inverts color of a pixel +; EplotX (word) - X coordinate +; EplotY (byte) - Y coordinate ; Note: No coordinate control!!! ; With off-screen coordinates, it can damage main program. -; only for ingame meteors +; only for ingame meteors - for Atari only ; ----------------------------------------- ; let's calculate coordinates from xdraw and ydraw ;xbyte = xbyte/8 @@ -195,8 +199,10 @@ ClearPlot ; ----------------------------------------- .proc point_plot ; ----------------------------------------- - ; checks state of the pixel (coordinates in xdraw and ydraw) - ; result is in A (zero or appropriate bit is set) +; checks state of the pixel (coordinates in xdraw and ydraw) +; xdraw (word) - X coordinate +; ydraw (word) - Y coordinate +; result is in A (zero or appropriate bit is set) ; let's calculate coordinates from xdraw and ydraw @@ -227,6 +233,9 @@ ClearPlot ;-------------------------------------------------- .proc drawmountains ;-------------------------------------------------- +; draw mountains from mountaintable +; ClearSky - $ff Crear sky during drawmountains, 0 - no clear sky + mwa #0 xdraw mwa #mountaintable modify ; mountaintable pointer mva #1 color @@ -424,7 +433,7 @@ NothingToFall ;-------------------------------------------------- .proc SoilDownTurbo ;-------------------------------------------------- -; fast SoilDown froc - test +; fast SoilDown proc jsr ClearTanks NoClearTanks jsr CalcAndDrawMountains diff --git a/C64/gr_basics.asm b/C64/gr_basics.asm index 831d814..7ce418c 100644 --- a/C64/gr_basics.asm +++ b/C64/gr_basics.asm @@ -101,6 +101,8 @@ EndOfUnPlot .proc plot ;plot (xdraw, ydraw, color) ; color == 1 --> put pixel ; color == 0 --> erase pixel +; xdraw (word) - X coordinate +; ydraw (word) - Y coordinate ; this is one of the most important routines in the whole ; game. If you are going to speed up the game, start with ; plot - it is used by every single effect starting from explosions @@ -154,8 +156,10 @@ ClearPlot ; ----------------------------------------- .proc point_plot ; ----------------------------------------- - ; checks state of the pixel (coordinates in xdraw and ydraw) - ; result is in A (zero or appropriate bit is set) +; checks state of the pixel (coordinates in xdraw and ydraw) +; xdraw (word) - X coordinate +; ydraw (word) - Y coordinate +; result is in A (zero or appropriate bit is set) ; let's calculate coordinates from xdraw and ydraw @@ -185,6 +189,7 @@ ClearPlot ;-------------------------------------------------- .proc drawmountains ;-------------------------------------------------- +; draw mountains from mountaintable mwa #0 xdraw mwa #mountaintable modify mva #1 color @@ -305,10 +310,10 @@ NoMountain ;-------------------------------------------------- .proc SoilDownTurbo ;-------------------------------------------------- -; fast SoilDown froc - test +; fast SoilDown proc jsr ClearTanks NoClearTanks -; jsr CalcAndDrawMountains +; jsr CalcAndDrawMountains - to do (now Atari only) jmp DrawTanks ;rts .endp diff --git a/scorch.asm b/scorch.asm index e760d74..858b940 100644 --- a/scorch.asm +++ b/scorch.asm @@ -15,6 +15,8 @@ .def TARGET = 800 ; 5200 .ENDIF ;--------------------------------------------------- +.def SPLASH = 0 +; if 0 - no splash screens .def CART_VERSION = 0 ; if 1 - dual splash screen .def METEORS = 1 @@ -186,10 +188,22 @@ FirstZpageVariable = $50 .IF TARGET = 800 icl 'Atari/lib/ATARISYS.ASM' icl 'Atari/lib/MACRO.ASM' + .IF SPLASH = 1 icl 'artwork/splash_v2/splash.asm' ; new splash screen and musix - .IF CART_VERSION + .IF CART_VERSION = 1 icl 'artwork/splash_v1/splash.asm' ; old splash screen (plays music from new splash) .ENDIF + .ELSE + ; no splash.... dark screean and BASIC off + ORG $2000 + mva #0 dmactls ; dark screen + mva #$ff portb + ; and wait one frame :) + seq:wait ; or waitRTC ? + mva #$ff portb ; BASIC off + rts + ini $2000 + .ENDIF ; icl 'Atari/Manual/manual.asm' ; manuals display .ELIF TARGET = 5200 OPT h-f+ ; no headers, single block --> cart bin file diff --git a/scorch.xex b/scorch.xex index 8b8722834509741dc558a0520ed9e8a5b5b642bb..bc90e94f9a76fb1c85c840e3d812cc9d2c54067d 100644 GIT binary patch delta 70 zcmZ3mllj&^M$`ZQ85C3$RxxGU~kgjMN; z@r9_lpBByttiW9`)gPg2H4}7QPjMkcS0!U! zG!BR`McPgos~9o|Ue z@5a7qF!*GoNNA)+<5DAyo{A?Mtsrk>1qEJjV}X95fq-siYZO+cQHt>uaC;+aW~jaz zPd+`hIuiL2xT<@F`Vd+$AzfZ(@>GDWhS1{+FtGzfo8r6biD08AglW76jMxgeBk|gS zq0pQn#zg&1v^O4s1}m7SiZKDu^kp_pR-jJL6QM8~e5}J3xgOyj5S&CnD@J!;!q$jT zTi+CllNwyZIi~V14TUP$uvv@^Xk;b>C-B?vjYNw=(Ql({b(mT8>zFyrJfUDE18!Ag zSm+rrBzH$5J|T3)e?$=qz|kH(Wylw*FaaolV9!ZJQE1rVjYL^hxG74H1x}QdShI#(n+F z%A$rUMgK80uL>+yJr-)1iRMWmV`frjlxfpJB~(=@)`yfILr+xVKC~GN!>G zSY#ax1!jgqGs;7u**}IJpJ~SZ1S||=QblNz8!&4DV_{)fD98rRY?zr@b#4|`_=Od- zlyi?rRT_XMPnw_&6Avg_R}Y?^{_%wsvwy6*ULQ(&p6)7}R+S0`n1poS4%Y-ndd_< z2sX7j2zby3cEgjm7%o*P4FFn1dWsf-c!JD&_ReBX5Sm^-s>rsX)8k$j+@Kz0+v3m14 zrLkpR(p%XuvoYii!F|o-&4Lk#MBnDntfaqQ3BBMt7ut`wz=qd{YU)D|P@oG{!nkY^ z_}{ANv03%AqpriD#BH5bdgrW$gzH>Y!t*OWs}aU+lF03ABkBO3Z%?O^5PzJNWT{!# z8=k(waDTmCzdjWPV1~(vm-mC-vFNcTKSHCfM@7G`|DfQ89{xkW-jrmnm?;Yk?rGAm zcoB$>VW?j(b0C~v*7bN~Pf}Q?U!f7^V1QjmfW~D$igg|(1uC1T^#$-IlmQW7#h0V# zb@_;1+0AJlJd{OUM&L?{x<0)VxFA#Dq?g0!!{xtx1nU)&e27Jd4*RBm+Fwk%4nIQ# z7tW?w62>^pE;O}d;rC+fO(lq8judaKQ3$bJ^!nsrf2e zLid8L0O>vKp*zq+{D)PPu`-{}=V&e)5&0u@-m;K@l~U-TClKl&i2w!>Q%15fF(6qM zlr@W$mcyZ}F{d6QGJ>^RHDEBpT%94YnMGMiLTvW=nFuTYYT>z-P$-&IebEIA4+tv9tjD06W~?(PGd5|Q>CRc}vh(QkmV~Jf3A8U3gCexl{#q8$7 zd;nQuOj%@4lz;+s35gj?lteqCB8!T@_K#s=-=xwKs+^dA>L4W+x=7-dkPDNFOe{mV z`9k>{lRBsAEulxgTDYj}eF%Wdp!d+LFu#(7zjPV1yq z>OdSYmCcX?is{+lF2Ka$Ff#NXX_oH`*nuZs z_Jronox#ij_%be(JUfG|7W8aLd3>F#L)Q-nS@g*_@16VVs|}M_Piq8Pj?~r)51ExL znwWd7VYXK%pcXiA$J`Ct+_^zhXp&H*0$OC%8iIjsz%ix{U`_rGzi!fkOh2%D`d6n8 zSBgEYwYJ7cg!^?}Vo<1!t!BSlRimHY)AY@RS=X5G-;iVW&Cv9ly589t(!bCuqiljf zPhpnmzOe0mb=Qg6DdubduycB7`t*ehXV0cc+%HNn$yCWgmns==YTeZ`U1tv4C;&sD z>3U}fk%?FCIu|eqN(_a`2Gtw3HL{=%Gf%HYYFA_zmILK%XMpIL@P}EpHmb{%R79M9 zZQNd~D@yvLE6F0ziFpBoFX5-z$DUJHh07WXl&f!DcQ7wn1=Oyz&I^DG`Y6*fw-g8* zSv4T+^0HIOcY>poPE6C⪻7jY)NOZ*`OEoIUH?jW7vNrym0#470QGup;Mimx}Km? zTu%fl$kL3{TW6B4_sYD9I_H0eTu=* z^Z>D>vq{WTS>>%AVCyb%xj_)iJYaCxoe>|N;^h&&3HoIfFzY@)4_3`Y^gzEABVeut ztD-qiZXdyrO^6;m#uR$u)v#b@tWfFsYN#ss0O3T3qr@L+c+$byZ9d?xqb&=C-M~%j z;a02gWJSg`uGsOamP!*VD?0||ZEy98*LcjHQcO}}x}pG++IDtZ(IAMs_uAeGNvOx@Hn z6>^z<%xZxKn-i=9H4f;F_lFXek%#Z^)DK|sn^GDR6vzv*EY+mA2EizjAb4U?AOM1g z-6t5!hocU@`J`9S5it%Ur6t;V?F|ev2=?`KGPAn^5>G|b$zA_Y@P(T&;`P{hMZ>}Y zF>0A@4o#hyh>8{Y(4gYSD%5TzR7mNHLNeR?w%W^jOF%I}SECj#oM3iOUE(@+AG+9R zJ@TfG8YvnzJ{h5sp7qzZR@;dzi^}An7-7VZycT z1Di8{A6@x$95?#xmXVJHd-y6sr*uVk-ON8h$N+%s*#Zc#KiK^I<1?F&C4-6k{Kpaw zlvk|BQNM2aj&M=J`A;(Y$-=#?;PvYtma+fIU)Un`?xd{P<0>H(;3$j<`8PB6tCtxo z7?;}Kth*0;re6D$0(bO#e=Y0p=|^ci#15RI{zG^8rqDMm zde1@y10@#Tj>ie1Nge~Iuv7kHNj+w|1HHIn%+k4JW+QN(J-U9%({oa#$Dn7*zu;=t zyBrp>X^J(OH=!a0z=2J={+AwK^_-3hjtT?!a4SSc$!i1~n9l3fq;qDbVHFh>0Yl=j z$$jS>v^=QmM@#SxoKf6Z$)EM_bDx>8Br7z{6M9|DaulKkV|{*I_hVAT1>{tto>4k8 z@2R}If@IlYs+4{u8fFvq*&?@nrq*_caSH|~GkZ>W!jR+%Rw+I5>oTI)!Ng-Ft(5R_ z!ToTGpat*t%riue=nMbn;dej8oHzo)2XMx97bVYg#&PAV^ys zsL)3FnZYxeel%g5GcdA~3WKb^zr8Tq?;OiJXpvrq5oI z|J&x|dt=O~4~BQ1Xn6#9<)(g3Kc(yLM<(4*r5Cf+heAb7Kej1~|GpkLQ5b?k;u!KK zGVv*W5titY6SKn{6&V|%>j!VGIlz{WS#n=!`nVQ^CJ;oe)S;IkN_ZB%K)S>g3dNJD z)-wO;k)Eh&etg$|qW(?*=}&g(Nhj*EFrnyLmuUafhfPO+Xz}h=CMKIpAa#d+EDaR( z_O~D_T|%R6*H_i${=at|tr`CybPbar6j4RcEdk%g6^N|6qCd7kadhY(mOqGH0=xx( z6NF2+ym6eR85d_wscn_}{KHfFv77T-qih@$<4XD+I$}>k9N)RP8yN96>7LN{AFji` zGx^G1ByK(FN+dg6u(O226FQPEG^zAYy0y2;jwO@FbZ1z+(WrO$qe+nTgPvdi%RJhL z(&b7N*DnN9$;)&Jt9C}AmWXBvw#pt-C!>{YhaUkHC7Krc&i|FCn@(=BQ9eyRU z3`Bflv_$k_3B`oZ8~HSg=y~o%{S{t|sIn({+lAjXW<~bE;6c#XsIw#_2~RKxdQ2h1 zU8f^0xxQbC=pXgDup6aajfm5cRH0-L3(VfMc3@^GRzD5g7G^Sm!F(4* zKu3qbejpj?@+Xp*nHKIGk3`f!mYXC-T(1ZwbH|U}6);c;Za9&}Hk{5suHFMt2Cxbc z^d5wz9Ca)!UpgyFK!Nix#nooUhQGOI6J}o3lL#*Q;NJa_$c?pr_5k_?6d<;O0<{2f zl^k;qaT_%SvP}BeT{tyr>~Kc2fMbo;Rm`^9x~jl{MRwhVBYuTtxdXGw+n_Uq#fAlJ ztthCzR-bRch$t)iApU+Nk`IbeRQ6vq^(|w*@;5)kG3~=PUumiJ2x|N_)?)9$b}$tA zPrdo5FBer~$j|&y8x-o&zbvrTE?ZWx_cR~DmxafD5C`tf$WEjx$@_q2)Ss>Vg7Njl3ldh>u`@l=E|vA{$|hgWF&mMEsSjx<@ZUBMV0h-FXs&4EW+PMtV)e2|{Z8ZSOrc7O74OQ^<- zgX(M7K;SnxdC^ZvzWnAB&8{RXxrtJsIr^p4>=t_~krhFtrD;8bV$#h#$|IdVmx5!Q zX4Y{mwbxfx<`+B4jwM{m3LNEQMrjiC62QR=BuRGkuS__c50{ZCi_s)v$FZ|Pl-wq> zoApH5jj}~Q7pyFcj>Jt^cwK+8KJ@Q6a{Akn|E>o;29rk>gCFLZ9{TZEwBQbgh+vwp zU*8jXns#E3W!(jORO%?m^iUwHN3x#Ie1U|ym6@va%aP4n)or25tO*{2Ae-dQf?C|H zeqkt-^kw;y)iC_Vrt3}LMRrs&(}Zjgl<;N;TS5E;Sj&n~=t@gS>BJ^DD@7<;_W zvIH}2edvD?1hpU$gs1Ad@1RRB-xiX#3=ZlSuFu^u0}Q(FB6^U3ss$+vn~qS(|?^KlMA!+VQ=awxG1X_}#$fspvbpa0qvMTD$p_x!;!|F|ZRY3t6gYFU!O}lH` zfPp=44Ho4eS6AC2jZgHtcSZq@C<2iOB39$TWY2SYLU`F+Um19)qS6#FM^+Vag$bJ~ zJm$~?y_jt?-V%ZwV|#YR9i=;GO)&K=oVhKiJrEk8g5Y5HJQ&RcX44)RY*esp&t?6C z_{)Ps(~nNuS@pNa{0CQAITOM}FX+yN#E$6r>9FX%QjhT1H-EUGPk-cePD}31>7dsr zHoqSYh85RAiq3AsH$$FjAz}BdKc-T{Zk$MMw>PFf$!rK7EW13)yd>yu3{}FWB^VT5 z3qEAOzU@x`yea$Nyzyn3o|>b2w(V+mx5fl%D%Nv?WJ1s~u7OW~vVGZ=0oR(A%((3R zaMqm-L7ZCn&6S_Ckh?O=qy#5TgT(^c_qr-Z8@u-GzVJwvo_c&|za7giltverZvTu3 z22lQord7_}8G3V%^q^U6x1ZXN_c7Y)hZ?4(YLBk#@tbdowF#9tg)&v*WF+)O=!H9{ zg*?-vRsWd3MEOV6knbmJrg{4gBzl*fktCD3r#TC9XVois>Cy0rG%w_}H+?vE-X3jh ziU)<-f@Q8`bMAUZ5>J>Em_#R$3(V6(rb&SZp8U7YcYgSx+HZ?2JL79hh)WLRM0n#Y zu|UA$X`#8Bcn@aF%&|U~Z22Ox^$8q3x|YQ53-;)386Xr{*>~Z_`e~~p`y=lNO_6Ga zuTpoN`Ez|$&8=ZuWK-Kq{W7<_fE~JcN5bS`X1wMLh2~fKTPolhmj7&zYkdEc4NO>D zuzbf|Lkw?XS%JzRn*dz3aJ^+F_D1tp`QO?6Cl;O=`QXA!Uh|gP&KA7b=@dav$^z~o zy!!}-DnqWa_(jE3vD({Ua_%o!vF)xQyBD?KxGotD1*Qe6aBL@@!|Ov&=&3V_%u2UA znmO41*WVRpY*~8ZzWkPe-W%})WI~~tIBcj0y@OKfPIJ$Y8o9k}O^?>__Jc)#ekYXk z#-zj{&xC0KoInJfc&iXBFb}!h$||xPCD$Io{y#Ivwk15|+dZ9IzZXqW#&G5Yy480r zSRlI#$nyrs>j%jD z2FR@gWb19R?>2eHZF2ZFx$!nRcAMOFn_O_aeE040g4^XSx69Gn<+j^p_dr=G9Vk~1 zlvfRu_YRa#4wPA;TvR9r3+2UyGB1=rDU=h1a`qrOFi4&^NM1ik-Zw~Y9VAwfdFP8Te%dN$-b*StcD$f`yhlk3IL*>{|xofCg zFigICn7m+^yk(di9VWL8likDR(&2LTaCy~mdGB!fO60ps>P=IW|V_8Y35!%6FH_3rgiJrE;`XZYz})_nmU-opSY^ z@~S)Ky?4qd@08hCxoE5$94jv#EAz4PCu8NrSUG!~92h6h8z-+HC+{04w~mvoWwNhK zo>3-;%jCu~IaVfjmB|I;<-5nr3&zV^#>>(1a@%;>T`rfF%hl!bs&aX6xqPx*W`4QI z&+cNCh|NsAZ}D$8eq+g2s(E1^S)NsLI$f?jizo;mpSX5y(V{We#!R35tG#>qf$A6X zEM}7^S}gtYZ@J}94}LK5^XgL53(rqze(~EC3x!WUdA(QOYk9A|_S%&TP5J(hnL?L; zeE%M$rLKJDkR+?SHG1}RYg_Ac?KiJ3R-WH>$Kk4vVrAFXA1k`YT3l9EHoAY-=n=ls z+`Q5S$r~N1btf)QT=xEtU0u1k7%fTHZ(R2+Sg^RO6tC4pyUWsB6njUHY;AhoKP&%r z{n$f?>=&o4gEaXY6BajqGL;lvx=4k)uA8v8KXuBLpZ?>_`}@~lr)HPuE&HhXqvnr4 zp7`xAzFh=<{ffVwCCa{St#1A2wP=yWGTWkjOjOEKI4wRIO+;U0ENQ|ofdt*bhwqzI z{Zv_L^ph=j_Rr7z1lt3X|4PRX-`;br#j*&c+Nsx3_B84G-FS5qCL(l^cJRU!rC_Sd z@(ceUWe|Q&@vgI7XOpcbTTd3$pZ2#tclx!ZGylG9&Hs_Adg(J8|NVm>o4T5ACULEC zta7X=E!{Wvef)j@zy9br>NuMF`xnZR*ORH_)hmf#|GMyj0S7Y<4k(RAomgTw>*aRi zeW!1M&+XGM`svT5GW__T@(=Z=+}U|~dAa@1ZaLfbWm{=MuyMw&n$fqk3b(r57Yoeo zwLib-v0vW)%f-ImFMQ;Y{^O_L|LwQ8+Z?4iR;$BNnw#w`FDoxEA3L^e%yZ>6<$kxf z-`G2E=~r4_nmvxS2BW|3n)kI$&zqSyq|c30H~x=Q8K?fP|4Of(QvGc-b~1MI>%X_R zpFMx}`>Tn>$&)8zv5yXXbo><5W-KYKDqSi3L5p#ZkK{k^(k<}zuxd+pJO!!aHxU}IgWKBf<5{m+9BcHGm^ai#;;58cE(-)uNIdOjXfsq4^W zSMsJMf0&}^$|>WAKJ~HsxB9or8~UJpm&H=x_ve=;=EPdNrLw(M-X(5aVHu zR%bb`iFN&B4Oxe?63N9Ht8*ULQuwv2`#xH{+kX5nLhMJaypA15hj3gA)QQJ6XI-C| zwz;lvOj}i#9YaS>O#4k;ub9?e*E^=IsLP6J^>v<@_Glf8X|LCrVp>I=5Yv2hBETx+ ztj=~Ef0gvt|Nmzk*ZFM)i+=mJ#lO9KUcubop5I1IhquMGVcfE&S4>?AR@Q>AXVw1N zSlsaZHGN}oEl+Fb>*Cr#^^&#)aCMWqQeCMjJG6XY)E`u*+J8-UY;AT-9j@j=Bz_Aa zwP&><^w5qWTE1o`Szn6tJk_PHjcfha_KHCTszD+z9#^kxn?a4(q2^&~Dz0tRp3}zg zJlb0ma{{le1Tn6y&5EfRnv>gzCV>qq!?99B zw3Xdc5;_BlFTzS_U#mN?klp&=%Za06a807BUVLCwdST3(Q_ECGs#$TxfUE6b$z{O6 znG>ru6c7A1!>+KG-wJiAUSg_K%ZGhqGJY8h(WI#R@`!e(vFhl^AVHSL`3hPCqS=m{ zwK=gh5XazRShuc;iee?XG&|1+by62eM{~P)N-ct7(#q!Tsx!_{6DF>DwS07wzT(<= z%?>n82Fs_#C3Qa==ih@)KDVkp;^{HNv>wFDLTFyIV+PnD=_#%NzC5nxtG%It6u*Wg z%riKF4?(!GTrzl8&1pE)mlNY&?W($BE&O_Hoa@?9)j{N}WY;&zKfJ)GR-Q_Gr8yp_ z#;crUk88KU7>tH?Er}4KsFLO-Q_e9~67Gjad}=O=FQVE*D@GT2Wjm;>L0g7uMin!|`jp!A}a0z2QL2d)e}B=SNL5^*B1D}*;A(lgSCdpHr_hqnnu~^n zr{n5bfWU#IZ7|Tp1#!&#XoGOSCR>T|w`daRBMH)~q;3ak4}rZPt@fc2#CJON4uV&x z8LEf4rp8Xyt9sNz?Heqz4rA?Qgor-rxS%@t84&a$%!B+d4gK*cd^oJns}53ogLIt& zBIFV3X}Bi|k)DUq1UyS!p=I;IaM%RwDg(lz|1@#*Gh>h@p@G}u+8`2FJFAV>ijamW z?86MM@-y7fQ6DYeaHByqTvA8l3vk{aAWg|em6Aty*VNB2RUW9Tr`7dDI48}EmH)u| z&;;a`YA&=dsF`t9r1}9tAK669)^hm|hy(n$SR)|SF^H(Ss9^r2_2U~<8}FkQYpt*Y z!w9iPT1*oR>IyhM&j-_(Hm#5PSsdzY13mQf4RJ$ak{3>2jEI)Y1!8Q2+J^)H6FGr0LU777o4s@`J!1hGEQ`>x?%_=X-WPg?-%FUY5oyB z_{$J=&#}{gsD1_gjB#LLsd#Z~RR7kyT zyihG5DdXxUJj2chAwOxQZ zu3a=N1Y&Q{96%Dw9*z7Kv*X@~(&x3l#CogtrB*~-lca?3;+uOA{tZ8eUdZ0HK3ZSH zFlmShAKl;~Y4BhQ34kilI4lbogCYWhHyt@dqD)||hJa@q;%v68HIjy~V9bqzC zJ4d%;5w-foiRgLy$N}xQv?_`#h`*HOv~pTneqHSaKH7MP`VEN2c`tqr_&5wqi)-iL zFx{DepI5VtGTksTa^W~)OdUqHDtr)n__?@xjL<{{*8C0MteQZ>r2bEw7NkREaW$sW z)`feZC4@$jm59Qfpg)P9RR__sK!Y&XGt_3s13XH57m;%_;H2j+tq(U6Sv{(DfYzk- zk2`H6Ka1rCCPSrUO`FB@aWxB@fVkRA&BOu`p87RG{f>W#h@8dG^W)e$n1NSIcqalq zpUcmZJ)Q2h$wAs?bp=^v2JeN~o0aY*?y)n2H7Zngoz~9t(KKoYeVhTDpT%VA=jv$k zF?A%-7r+4p2n)%tjz+X19Mg>8Ge(sl9s=+t>V;~S^6&X+{u$+gvudGAgGe{%)Xe-W zA4p2S3Id7|H)wIFWhCZTM{6%|6S|;CQaJnx)xc&xDjgaTA^1jh^BUAtlPKS*B`WQ` zDI$%E;}dqO)uSoxOfW*Xh7e7>BWA+3Hmi53JL3GD#?|VqA5r8*n0kW=$DI5faSj(yEgB3(2h}k;X5o7kN9ML@scebbyJ#0lE#%Z%{|# z*06<(-7$>R6^EN$1VP+l8*M-`NH3aA%|f$k(I~fL4|P_}(y~;=f)K`d22>A>iyVZg zCbZ*epQU<=@S=8>XQD^F5Z4&lOh%kr@JxEwW}eE=XF? zOU^rrhMd6%rnQj&qdIh}E*i@n+7H;@oKzWM3^wO}m5& z>}zyjBS!tet5zy@zKKIc7vo%1Xd?8VgA=yHw{R;N+EGPrQg4t5l19zy4LVI~=Pr#( zN@EDV7z@orTTkqpjWeLLbSm)~Z_^^s6hEt7gc?B-2&5GX^akl}vq5Cy38IV> zFH8q`J9JGfAW|E~L-O-?5nc@|Ye&?rK}Vclfo;OB);}MC7R|zCGX?^*1BM9w(LY3fLMk0`r2A zVV4A+{|NQq0nDeZf!2|KhB@L`nePBbf1C^aCX$xKPr&74d<#qvti_Q+{sC4DdqxdO zr1?*q@3Ww|rWek?EZXP1Onn1xf>?@C2q-pMO#`f+1)F>-)&YSi4))+RI9T8&)TcT; zFMYvmshcFiUl6)PhZYA?b#NTF&5*d`hfF1=dI31TAsQ@(7cX&CQ-A3+-;4k#ak zx2z{7s9wYRsmnDN$9iDBQDIy_kU{Lbs1<0W3o1^ZL0wZz0}$Z|bQU8Re;K{xBaHGQ zj6f{{h$1Xb$J93Rf7rw&sFFMn(xjs&ZV;1?cRwInUn0UFcY?FH*2W7^kx)^lP2eto zcr8B2KQYHT)W{kqIkAEQ90QfU1xCv+AULRVjLo2Sh5{*~dv7JCol}PsaSAC2PaA0) zf0}|eEvpEIUqL8E4AvAlWI5#nfU$E-<4HN9x}J0@5=GSZnWPWe?qLsL9Ew4;2-AXQ zGIoc^;8)`6FCieEC@7TCC48u1{y9;moxEBAN_=IUe~z4~F4gSdoGb%`RWq$-9MuB_ zLR1$5wu|3VeU@I;OL6i~GoC^BGn6s4v^Akhi1v#JGK^OHF$#asRjsC2)y+^Tm!QnJ zS`Sf?4+Ow*kRed!VJdW}ZKidh41XGB4Rm2v>5K#Y#C{9l7>GQ(8C%Acs5myO2jEtK zqiouw^`uS)Ft-zYouNRc;y8sfMSBIdmM$gKo~W>}m;$T^)cHBJ7fPSF8a8AFe{ofT zMBoVd9c#~ck_rkmzmh(Qz?ebA3yV>PGU15xS>n@)${eJu}BekG{P}KUpMw-#ZVs|)S?9rBdF7{#KsE&EIT-Q z6{3(H`@mKZA2b!Fs9u3#L76x^0GU@|BMJ!c2|KrX(%vtg>vEjSl8xPVa+n`iK0=nm7v640e+ud3O^ z!)b~nS{_&+eW8bM#S=eAPLn}P`6>|x68gU#$)K0^2V#QA!v?X=7qman17{=}nI;Tp zEAVhX2Q`%e&4W0)0E+jB!;pclL;Xb_jrfA;`Bt@!EW|i`A|1n)F*QN~TFHf7Ade$@ ztavGD6_yC1<6+x@p`>pHhl2m-Xp=EJ z^}^lhd|vI+1{jIY5D-4bunl53fXqYOFjfKOQyEDLts`2zi~~T-)6KP0)zycH9ZfW< zDU^4NLM$SOIt(Pd)C$?aIO2+egD(*0c{pFCqLm9c1;ei5x7>woFu7wMo$rHJ;EgDN zSX`t%3;vCj2jfmyu!s#dIX-waECTMHK1%rk%=b}U2CrHGLr{$4xMZ&NUEW9Zy>rri*K9327j}5J<+;XF+v%!u$-!&{Qo@{z?EvRJA0UC2)KP z1yo}S@MFR8hmnO~j;*~BH(WH2V26@V}fozq+H zDOwM*Cj?;Fk)$H~-$EwZf%(xwDHjXgi|F*AfNMAhJ@rC)bwMkD{07(X7zl15mg6Wq z-0E861PYBffXDAG#kB;#1;ShbQ9^nk7L3TyhH9dNG67+h1jM9;*w7;MIB1E$OBT;2 zIxhoFEagzp)=^LQKtC50q|{Z&6ZG?o-7Z9Up3gtXG!4(&2@pcau& zU80Yd)j`^N;)T2~n>-K4Zm7ADPRS&`;T7Noe8bW_S}E>;MPcP3msgdWapPcuw1)LV z#l;tB-vfk14{o<Z;128+P2{5}4>3S6=o(l920;ukR@%Xh z>Ka+rpEy~#yur%D z5GoH4KrzsaNo+Xmq!5MO0nCJWFyqW;FsPA_;z&?4;f5!Xd^i`U z_H@FJQt=uy&bUTxPj)y+90(JN4%#s8=aG4FKZ+KI1Xwn7;cYiH)8QDm87u>#X2NOjgi~l%Y&*0c)It2F=A_t=3tez3CEyB##!)%~ zAw6H$tgr&gzx0HiNc#5#$TE7UZeE7>x$t{_U zO|>Aq;QWu!fU7y$P_i0^U|WRWe=xEk zp+Q>x)Cfex3Qix=r^-lNz3Ek07HH!I5Yfi#Ir{1YS#t1x++d#fMhYt;&2->Z#}HWS zJ-ioOVGv%)fwtmO`(sub)~fYO55XH_qz3W^oaOgX&tW5o+6EAmxyA&dc0%hzY*Sl~ zIzl@~XxgE~Q4gt~sYX=ji(V`}&WQlU9*1tvtE<VgpQx@D}|3g@{)-yoxf43%>f^aP-9x);AFZWi~GggVnkeu%3xkdzi!uVQBNbpGrZ_za7`QPS9F$Q zeNsjgvuT-VpaG;XkXP_K0_WoVVeL9>mRzep-s4QBK{lF)a)m0=os~A_&|(fHu|oJ} z94Bh$s2m3((90MbW3@xW7AX}h8rS+s#W94?$ihZT_1!_!pM~PDBh}HFsX$5r>UV+q^ z@ye_&Bc`3Kv(U)?c-v5SOKi70mgv2^XDs2|ogW))N?3NgJ{v5>hJs-KSmX~Z))u>t zg3tN~_SqlYpB-^uLkBxvH(W6OPb>T)l~XxBqq^Y4=KJocJiqPyw)VxpjpGNu-Gt9- z#=<-5*m9O*G8LAHER|wCMAM`r+eCfh?wI!Yk!_8aAK%@oG5evXcK)5&cO@E3qRF=X zjsNNra7mIV3F^nq+eC8){lUMBv6wAV&(!@XA;tRPDE?t^>kEQ0MDpPaxcXW1c&AByhc6E|-k}zzN zux`Y<5$av`>bvX{Z4U@Tlm~>D`j);_8nn+0+Nat26!-V^DV{WG=xm$pl)cMJOIM9r zHR@&0%bt}kn+yMfbmvL&&siVYV@~&Wq50E~q}>_Yk7fKteAxN(?XKP8jt`_=;&!&% z%=Vc_EcklP*Om0y3MSlcR8(2cqq!4HTt93aA!Pipamo~*-KW@(x{sC~buXJT<-UIR z^=ostxsT>%Kl-=+5Owym_L67qY>}A5e4u{BidA zx7tX`{^gfs1&A&$?QY`;yI_^C2k8Y&7yGqz97 zxXm?QoGKPc<3tlHHBXi9vON0kqqaxit$xR(R%8@O<@cB0|6jTPmA_;S3%_)Q-Iu$( zczN;t{b_<4A2ERWb3_XmD1R^TcHr&D);zW*`l;tr&z0hjT%UM9!Q2*THe0-zm0>?4 zh@URckS-}1+g%x%;u+T^afjoEbOF|L$=qe`E#&Q)BnYQjN!}ho(AlB!CQVOXN@f1U17*T0-j=r8_*w4Qp8TrQlN zBS0bKbB4n`n)W!u;jS7U2Zw_ts@)E!^eHBX`?sGwjvOxWPmePe>nD#(J6!EQJ{jS^N42N6W?Qw>`9r(%N6c0HZ*#&uA+TpDK^tiOc zjrhsq42S!Dtxzj4h7b7LO@Y7j#)~I*zW7E)*#2@u*uG9&YWtPckh!BFC|zkDy8cD{f5-c*V# zqixY{tw4;Gh1?uATY5uA$8aIhW) zjVt0!5DYgcu++yB1#n(UEVfoo8i^CE$1-*8!Ima?MBgZ)wDR<{s_++WQ)a)-c ztGAOo{;a~RjQ0Gj)KS^*?%tM%oDR!bN^|p{Hc#&DoIk(DUSs~1WoC`J;8&I+&bKXZTMjw@;&k`69CX4@ty?V*Ip&;O6IRZx>B({@<*`uqBw>;;v2sGjUG^~( z%qJfZ3Lg+Yc>KAk=5f!BLu#BCG*8Q}wmcOyvy49OLw($jWxeuZQ-sP`6UjFz~ z_M)fEzszRR!QVvg4SfTK{N$ z*s1i~zRUcEwK0=jbiQjjCNU#zE}+l%*j~@|N_S6|$FiLLoM(U7*yi5f`g8i4KivE| z6jW}P%FV+pGwGuZ8S=98f%}}n?_9$y9Zw3+{KCAwvT~k%p7|e^Df7(lj9e@%7AhA) zInUakH4Aes)z6yuTa>xZxz68Meq&+Foi91}TWX!~?m0)1PuDlB`O9=kkc5e*48cC; zIR0H)=wvUUu$S=obHiMu6}Nqw+uSpIM1kcgw>j_UEQ7r0^sQO1^fx;#PUz+FpOrse zY%eM{56xz|7NO68P_a4JNvN|HXQ^qN+i|xtsuWpwn#bw7-}Q^-IXl)#p{yR3Io50A z-q=!=)!3-*D}TyLRTl_6++*AJ`Q~3(=UC=tvWG1hZ$B$NYsqk<7F#DRdtR!2UZ{;0 z4y%>E=2n(-sNs2bWZktM;?57nBkOj@%9jg=s&}_GFO?dtPwz?`_@GvNqiegUJX$PL zrC7uIylH)&^{k10ImN=>6#Y|{n|!M9l2lu?jIkPNwX|BSv3_XHx%P4o%MtO7Esc#g zw0$cjqaZX1HQ7h3D{U(?S4wN8lh*ZXt;+Q9j1R4=Pl~TO`epv?1K~~A$hV|>9V^{6 zQua#ewaO#bkLEWCtF6k)g3S3JS@ui8{nFoETdn)0zgEV+wmfr6SSxv+ne~TB=Pi|! zz7>XkCrMvRE3K6^QoHNC^rp2vv;Dk;xLhM4>mvWwl-4}aZdHD7r7?`^mOJ*>y8>$gMTF+4X0{Z zZE|JT`7MtYu$-@J*pb4L=M_}zsT#|XZ79}{Y)dJ^?$$$3?MgI%xm0?N&3vP)RvaNM zk(6bED6yU|)?B>QuUxXQl@=7_{-7$1Wb7rW#&MPupCemqtUWAm=+L@RgIk0Qfz-Xz zT9aKag|Xz;8i`b1F3Hw^|J47606n>LYov!CHkG|4?UYu!3#EwFX)Tmu8Sa$@D~p`g z*^GJ3mizB7`A(X>()vVgyQ}oFuv2Q!d=om`F>XggJ88G(iJH<@X!vgB7c~%k z*t&I>s_&F04k@?1^wP{1CP=SYJ%5-~IcbWJIrJVWZhfZQDqAL_)molCS-NhW_-OuQ z>Cw#d)rwJAio)7V_NMjnqGue>K#2;eu!cpUNBqAywd|wB`RF0xEjH}Fn!BH$C`=3w z+L;l~XxLU8s1<94Cdv3NVnGFp)w~5lPvUAp3Yp=Pc%zsbV zXMW#$-&$)EQyZGt!5%xBg3+y5#wAILo7+@{1bjtd*NvAhW8o7pn)jW^~>7tNoF&ddW}+4nu|x;ng_*>>*i>Uv|U zDw@rLcvz@CB+j%5OAilP${cZa`)37?j}DGHIP#-AKDuLK!)D(r*jlmoJ8ywa8=R02M-ZR#%*tna8SJbQ4 z$@P1S-wDV1Ox_&J0FftGY{utaSN%))st$=6Wa&9V*E$SMU^a|Po#fR_tu@aD*q2p4rE>c