From 83d51667c23bad7650b3ed668aa6060ef883d3b6 Mon Sep 17 00:00:00 2001 From: Seth Date: Mon, 21 Oct 2024 18:29:20 +1300 Subject: [PATCH] added diagonal hitters on ends of paddle --- bin/Debug/blockBreaker | Bin 24136 -> 24296 bytes blockBreaker.depend | 2 +- main.c | 75 +++++++++++++++++++++++++++++++---------- obj/Debug/main.o | Bin 10544 -> 11256 bytes 4 files changed, 59 insertions(+), 18 deletions(-) diff --git a/bin/Debug/blockBreaker b/bin/Debug/blockBreaker index a5f5fbb57831b9445fd934f9887a6b158238c3db..7937d544be0aca70aef3a57bf4d2d7f4235bf708 100755 GIT binary patch delta 5009 zcmb7HeNa@_6~Fhrz01DkV{uVoT@WOq_`#PS0po%qkSv0tttMDSQKHqPjiy~vO_9|s zt0KipZfH%%5}h`++D=A8!{|&!;vc}6Ok%Ccn2v3%<8+{O8k44xG_8&y8 zDF$zNy6!l0MenR zR$=C?x!`R)@1>W#^t`vR7hzhw(|WzMO9V^%ycyMSdEvgihqPKJt+Ma1T7JL9*21it z(13K22F?mkHOGO+bX^a~IKUHL+Z_ku!Rz~s?~lvziv$|^b94tq{%Chl^vWJqs zQ$xCLY{JR#q-}?WOxgjNv^sM-@V%y>phbd&%6${G)(@v09i*Ylmt&fuZi0sG=%tfA z(<~h&AlE`vVo9w&7?5_D3v)!d5mEL8cVU7*z5gU!4V;zJ+S!f{c5DWg_IF%tk}BA- zyJ{7C+sys|wQh@I8ThVYOr`O&!uY|Hno{~486W(Qbm*oRKyVHIB)|;L{IP_CJ4%?w84n5h-XS0 zA%~3^BJ2HTrG0j5xVmu`M4E-}vDZ34ieu^4m3?x=R206cBuG!3R1$}lP!i*CpCCfR zs2Su^ zRP)_?!K+;fYeu%>!sIYlCz`1aYohz5Wb_4ON{qdJa%2HZZGpLfN3Ye4&j@|MZSoqr zMtBjX5Tb{70HwlfT;sxgIRD6SkZcqm=qNtW0n-Q3jHCL{D!+m*?la3&9yex_QgB)SAHzp3koFz&-x ziShYQbzOXt{1xLxjM02$$_$#$cc;YDUHsLQsq_keJ0*V78R!dpQWz7vM=6T7D$hnm z;1Es(OZ1b*zf4KCjsr?+Wc$QPZ$|Me8F@-&QoA#=LZJ%Zko|^MnIr%RvGG$%JkQQa zP&y+)j^{VCt&jW-R~+#0jE|KAVa7nJO*1CU+K=Sqv&pYp2*lL38HYzKg<=u`H50#A z#~4;Xrn#Md8@}*~UB2T;WGgfs+DBk%>XC(pV%%adBP??$x=KWlUb%|7wFlh56eK$u?roAP^!#UVN(bmovVtkC`T1&>oqENJcIu` zFWJ8Ys+vd=89xMBM7iTQ=o-NlFA^=L4i6l%JuS`rLUb9-c#`lZft=3-+FU1Icv2&c zksj6{v{&L)5GC@awlwUtzkun2C;_Rq?AvLNv)}`DV??Ia{7641%WWLRrx#FdSd z(p;;k2+d3u{=<m=lSKa9e3$lHxR3$n;r4^`e@9c(i5ioLDzQe=G1Q3Lo(U6bs6E9vovhOg8YN3ljK~3s)z(D2oX&=3~w*rumo)ou_88 zbTKG1_vMsGj zDn6TsB^s+lO9s5mki^y-%xwsqYMgXkC?Le?7zGybyWkuh_ z`?Vq$-e-!E{b^2?RL0_c%pG9keJml!QrlQk8_V#p+%`6=jiqO@C}BSDL7MEjmkGj;9n~a$FPr3JiP#udCQJA>OZBlNOfs3K?)Gm|aK_WM{QU)4 zd|vS+r8=p7P4QWads%5^N%^{Eg~i3?CF{yd9$!Irly9wB@7uEVIi6MOcHSocM(GpY z6}+_cnYi27OG<@x`q0uPj*`zGvFUl&_<74u5{h6SxV_EUBPZxwdpGt>ZhE zW(n;ROAkkvaJYgR>kTMe!4rnf6en0^xe)<8%t2 zwkk_YPcix+ov&Y&t8F%Co7<1B>Y@DBidepV^+`pu^XY3IrN{aDH4E&Q%+86i@)K(w z)vgsA0B`aBHMvUbVxC%6plvHRn2UHJi{o`wlj&)Gv}%Epx13+EDxfF$q_tE34`>uG A1ONa4 delta 4487 zcmb7GeNa@_6~FhreXzTL%ZKveYFI1y0V-?!jvye=Jd_bS(JCs&ilWw3ZG~1d>2AZi z4l6;ys~w$KtADgpJFQK#sbgjo0aJE$oax4ziJGMGkNg2+r?E|D#1y;zo%Jukr^e zE|+18NfA(@W3LomnSXElmOl)hd;RavIkxYpX>I19_Nt1>U7Wi>!CApUTa9{Zwv#`SbzK`g|ZV_N;k$jddW99qVtyE99>-hxdNm z>Xid3C}EyjP+FtoJlo&Zi1H8(b(!A?9ktQa8D^s?K8Z&SC`|Pn@X0VQ3>1!{&}tm# zwIlg7Mb}pv7xih=I^pcKC~C-G12iq^-WJ4cFk`sE9CP4kl{mR2WPd_Rd-7yT zavPhxS;*z4P3B^xqJg*nW6bc)*rvqT3V9Qe9UM+};UUP5d<~iR%lFdl=|i~{s!i!& zD;dtV18nzjjZih7w#vhgnUtonV0vgBw#Z3f^7&CD?7#046$=g6^*_*}8V0cMUju}p zxd0(ya~#?aNXWkt1FVVNqmBIKaNcV&hWv;j5!=Uhc+A$p=}9ovLa)8a0iAmP!L1f4 zF{HLKQKS~yB#6#Afk>M1j`I;S+R@p?d(2RIe8PJDjnS_Dy|}*7k=Xu1rD>!0sYJ)W z(WQVdiJ8dIGK>qJ$M_!~muomUat)m~xEBZKNoOZAb$F&RB3iL=?!wRvqAuL~-zL#m zDcz{$$V`Wov~8{un~ls{qesSPz7YG2I)`QG@c$Mq0ZcI{efRnPF30|(hK26w7y_Zb=mV3w@ySg?p4jr_#O8f9Y+0jsig)C{gy~aa8=#KX zrpCHP-`KC&*BiMbXw7uZUdFexMX(@CwvC$A90*UEypqW^^CNb)iGO2HYSIa zI;?*$4lVo4@yr*x@1IuP_m1@n9eeW$?w;7L1S9d+`4QK+lENjdsEDnrW3MpoR2LTl z6i2}O(dcf7UqBv*Y=>L}x$oc6=o^rIko3oDtf+J4XSv};%^53?PbQIr-(37!#2MGr zMRz}qMseB1o(a$z@#{v^F0z)6Nj{*ICB-Q}OpFJR{M3QTf=|khn}C^C+k#Ujy_qPw z6sx#3bD{E@GnhK7TH#!5a-Xxk<|Govtm4l~hH%f$RQ_XwnlA3U<0jw1MQlu-E>mMn zGtlg)8KzNK@bv5=E$4)V+}yeiAEo4e3??#YGw?f+Vnl(NFX;5f&%)3y-!_)89h45+ zZJ2E8=@J8&_AHF?mU$TQl(+&=ST}=^S&Lxj)@r;J>jhX;mO#*S)dGx7O)fR!6R*K% znVkG8td={_bCSa3vE)Mc=E?!Le2l@A#J|9S?R@+Xz0j6Le|YP zY!A6^!kED_-y`P58nMky#S71BY%x9j&Ujsy8BGpapxaqO~6vLuKqEtI>dF*Kx zFJr|?gj753dhF{kO^M82?f8=?uHEDukc^C_0jKO`Wn*YUwc`zs_G=UIo{3QQvGP>I z`<4eQeP*oTpc&~|WiYHVF&8{uZKer1U?3PMzMpPTTqKH5P5;ZLf3HFDVv2$3^02rw z;|!nMguHG*wwklN1IPy^q!pE*=OcpbV>`SiChXBZHzCy~1S|cKnaFh{qBUd~p+mF4 z|FRh!fqzUCacQ)LkB@`OvNBOpJ}-_s!fF-^|EA@`PgYR<$I~A1d0DhcO2%B1es4O9hMarZc$puO;>pI3&T|Hq&daF7Vc@%i zCl|lPzmvdIcxpV#Z74hq>zKqU(+U!h_cW%CnGpO*(Iv$>biJrI7+KIr{r*=mh98g8?`aY)Ks6?Q98xzPSz&keDX$Z284208*hx# zRa;mqIHjdnuWGha(yA6{li^fPY4b=l7)JPqTbs3M_n!h31MxfRQ7zL zISogu>JUel*7F=OuyiKgQ_AMxy|(NHyw8jYbx_}~<4oAscPfu;;@bN8{8xh472A847?9s+Vp-jM+m3Q$7!ZNF1 diff --git a/main.c b/main.c index c55b2d6..d417970 100644 --- a/main.c +++ b/main.c @@ -5,11 +5,11 @@ #include #include #define SCREEN_WIDTH 11 -#define SCREEN_HEIGHT 10 -#define PADDLE_SIZE 1 +#define SCREEN_HEIGHT 20 +#define PADDLE_SIZE 2 #define SLEEP_TIME_MS 100 * 1000 -#define PADDLE_HEIGHT SCREEN_HEIGHT-1 -#define Y_BLOCK_LAYERS 4 +#define PADDLE_HEIGHT SCREEN_HEIGHT-4 +#define Y_BLOCK_LAYERS 10 #define X_BLOCK_LAYERS SCREEN_WIDTH uint8_t screen[SCREEN_WIDTH][SCREEN_HEIGHT]; @@ -18,7 +18,9 @@ enum PIXEL_TYPE { PIXEL_EMPTY=0u, PIXEL_BALL=1u, PIXEL_BLOCK=2u, - PIXEL_PADDLE=3u + PIXEL_PADDLE_MIDDLE=3u, + PIXEL_PADDLE_LEFT=4u, + PIXEL_PADDLE_RIGHT=5u } PIXEL_TYPE; void clearScreen() { @@ -73,7 +75,7 @@ int main() { } ball.xPOS=rand()% SCREEN_WIDTH; - ball.yPOS= rand()% SCREEN_HEIGHT; + ball.yPOS= PADDLE_HEIGHT-1; ball.xVEL=1; ball.yVEL=1; while(true) { @@ -90,11 +92,21 @@ int main() { } } - //draw paddel - screen[paddle.location][PADDLE_HEIGHT]=PIXEL_PADDLE; + /* //draw paddel + screen[paddle.location][PADDLE_HEIGHT]=PIXEL_PADDLE_MIDDLE; for(int x= 0; x<=PADDLE_SIZE; x++) { - screen[paddle.location-x][PADDLE_HEIGHT]=PIXEL_PADDLE; - screen[paddle.location+x][PADDLE_HEIGHT]=PIXEL_PADDLE; + screen[paddle.location-x][PADDLE_HEIGHT]=PIXEL_PADDLE_LEFT; + screen[paddle.location+x][PADDLE_HEIGHT]=PIXEL_PADDLE_RIGHT; + } */ + + for (int x=0-PADDLE_SIZE;x"); - } else if(screen[x][y]==PIXEL_PADDLE) { - printf("=="); } else if(screen[x][y]==PIXEL_BLOCK) { printf("[]"); + } else if (screen[x][y]==PIXEL_BALL) { + printf("<>"); + } else if(screen[x][y]==PIXEL_PADDLE_MIDDLE) { + printf("=="); + } else if(screen[x][y]==PIXEL_PADDLE_LEFT){ + printf("<="); + } else if(screen[x][y]==PIXEL_PADDLE_RIGHT){ + printf("=>"); } } printf("|\n"); @@ -153,16 +169,41 @@ int main() { } //detect when ball hits paddle - if(screen[ball.xPOS+ball.xVEL][ball.yPOS]==PIXEL_PADDLE) { + if(screen[ball.xPOS+ball.xVEL][ball.yPOS]==PIXEL_PADDLE_MIDDLE) { ball.xVEL = ball.xVEL *-1; } - if (screen[ball.xPOS][ball.yPOS+ball.yVEL]== PIXEL_PADDLE) { //hit detection y direction + if (screen[ball.xPOS][ball.yPOS+ball.yVEL]== PIXEL_PADDLE_MIDDLE) { //hit detection y direction ball.yVEL= ball.yVEL*-1; } - if (screen[ball.xPOS+ball.xVEL][ball.yPOS+ball.yVEL]==PIXEL_PADDLE) { //diagonal hit detection + if (screen[ball.xPOS+ball.xVEL][ball.yPOS+ball.yVEL]==PIXEL_PADDLE_MIDDLE) { //diagonal hit detection ball.xVEL = ball.xVEL *-1; ball.yVEL=ball.yVEL *-1; } + //paddle left + if (screen[ball.xPOS+ball.xVEL][ball.yPOS+ball.yVEL]==PIXEL_PADDLE_LEFT) { //diagonal hit detection + if(ball.xVEL==-1){ + ball.xVEL=-1; + } else if (ball.xVEL==0){ + ball.xVEL=-1; + } else { + ball.xVEL=-1; + } + ball.yVEL=ball.yVEL *-1; + } + + //paddle right + if (screen[ball.xPOS+ball.xVEL][ball.yPOS+ball.yVEL]==PIXEL_PADDLE_RIGHT) { //diagonal hit detection + if (ball.xVEL==-1){ //moving left + ball.xVEL=1; + } else if (ball.xVEL==0){ //moving straight down + ball.xVEL=1; + } else { //moving right + ball.xVEL=1; + } + ball.yVEL=ball.yVEL *-1; + } + + //update ball position ball.xPOS=ball.xPOS+ball.xVEL; ball.yPOS= ball.yPOS+ball.yVEL; diff --git a/obj/Debug/main.o b/obj/Debug/main.o index 6fcaaef054ecea9cf815991883136baec60a2c60..7d1f9220f21394c31ec6020875dccc87c9d72118 100644 GIT binary patch literal 11256 zcmcJU3tY@u`@nzGMM^cL5V0b+qEVsMRmo_&y4w&n)kvgL4Y?Jjv5mG|BdSI3x@&FN zT-K$FEs51)iP~L}B?;NsRx$5+esfNKj(Yv=`+v_z^E=P?JkN8U^PJmnMxxMXyc&cu8DX>BE?0N84Z!eMG>z6^22*1vI;^GyC#qRM5{p7 z%K8(n<{+yQh9_eq<;l*%IJEg`4oam`#*P9p2wI1q)&ns%2Z};bNTDdape`pxAS!%h zrYQRPwc=u7b6<-hMFpB?UInj!S7A}8xTL5^W>c-oG`~a+ndX(qA=A9`yVmklnSM9L zZRw3i8f<#g*z~TzVtq`C9O{ruQ2A&sVSN02CaECK23w*Js*sf3lphxWl zxs0_#GMJ-;NKisb<*Sf@{weFeLy^kPvZ8bZKc8LT{QQa(Rs&7#2m1gm0@XGs(NNQ< zU#PO>eY&k?z0Id~r!G@Ph5O{ExuX&A^V!Mb=NItv(_w4y^RGdIKM0)Kz`Rm<64Hk0 zsyA(K zY0vgTsZ01L-kj7r@Miswyzx5lb`OpIlSk^L-hsC*|Hzw$w0nDbtM~l$z%-@C?YWY% zQ;1dr%p}@IW-y`nKES7}jGb%axSS2{CKnb4M9PMgs%|BPbE5fE|-=GC53c2>5t~<0e z(P9evsH2Sk)5(S|PaFsthUx(2wfTRyl`o-9&5q&RH6Gg2AKTXL1*$p|E+XeDM+Ll# zqE88wn@T!RPDWEls-Z4aodG7Dp(7Nf_vS~_%a`v(s{|RsRV{nYODf> zFIBgrzR0x3`>CWBsodfXeU3;{7k@ zOI`XI$^x|)|Hpl5NL_HBPD-h^>b*o+Z;BauwQOTrxDhq|k7LqoCnjDyG4bkgOt8z_ zjVYad&BE_qNJ+Jo*xk=V6vVoOS4yR(n&~VXM;nppEL$(e%8D^FV`j}}oLm@ZXU55y zadu(gK8Av>Ikp_oP(6tppCy^%D>9zcJ27yCx1J=<4$eR)Z=-`%)& z&zZR7{yGD?8&CB=B%9dTEmm7i<}mKY*+Zq3?k65sSn&JksyW6zuP9WOW-i_AQmK6S z?9JQ0Q4ezsi;Qdyq7M#vrRWouTYTGg$VS`4%{!*nh8xfSuEjyJqDQaC&fY`#X9f3v zO|;e;_qF<&$jc93Wxl!pG~vaX`40O9gZU$>Zfq|9cA(DEmv?+8HV!q&UTBc{yi1Ae z7SEd+S0-zpm+4CFrs)aGCe{d)UtLHw=;Q0LDf8BV)KbrT2N#&91Q_<~bm*$t{EE-k zRT+<6v?0Rt)$T{;FE%;*BjtBt+%ZrbLUYv$Mty4OAJ@wOjkRg@kYKch)e zbY-)=yI;CtPEeI);O^eH0$1g($v-d1^fx(LqtoftuFhl1Iv4+1dt9=j+n*<$es)he zGkGchvEBGd$tJV=>pnH8G51-i`L8c-9Qecjh()!1kTN=ERFYl!Jil=#Cu9qTZ(Qy& z)+^gZ^4Hj}T(e!mmTW4yR=0k-#lNbLE@S3S?Q$QPvzK+3SQYQwD(ijhbszV+R<%*Q82`Mtdk$PX zBab-cVz;Lu#BJCem$zR|r5EUNaw4toc_?=iDdm8!4)FM zXU*Q=y}rm=H>os9py|FV$wOVV|C-C_LV0mf|GPWRCp9-#>IubBWuL#gJfKPYj}fL_ zj=!@0J1=L9OLTN@SL+cb%WFHYdgXfLO2KgT+v6{K>G$=~Om%b}{F$iaPo2VsaZlz} zy!_2&_7{l><~@!aesF;Q3HwtaeJ)*@dco2@xn%8=yttZO_d+jN6wX>yHo>i{ZkcF$@4Q;Qo*CW|>GS5@ zO*?g9cw_Ri;6{5mkvqTlThQ&?#Pr%9%`*H3h3Y@N@leBKudCIdeg3ACyDw3n zZoYP{#o`o&Sy_JG?-f3W3x*EU%{930EOyUZa(K_1)&+5I0xj;08ux6wGW})Jtj4W9 znv7Rk&1pKc*GF(WJ^k75Ck|a#Y+s@gYnpc8O6s{tAK{ZuQ_Ulrr|htJx}f^>g~ZQF z!zzEe=b1Rpv2M#TedlXwniI}f$?w>grzmxXogF;1Zs4;mr)L?C@(f=*?VH9;ql6xL zMz#|}g=2Od=w^8=U3~GJ{<Pb$WEp|8@>Y`)*r{?hizw{J3yN{bPIq}NDoZL$NE9G-O zALY0)yei|(q3^PN9DeZfEsF5H`s{x2^np2MSB^IrIR-Xuy}5hOnbYfXcAkj0`0>%U z<1aJUj{N$&L3RFFjdPq5hgB%`6PXpfttZd|Yg zb;4KQeXAMg^7wa;X5LowbG3LAlRQtt6(YxH<*v8UFE-N^o-$~hEX?i?%OGwHm$Dg zw5W5-%B<2%{R>CywYr!be6U9CW&FJ(`(Hcui4yxy+mjr-aQ9S?0IBI)ySix^clOr5 z$#T&Rof*%2VG)0f@o;x{FdO3GH_gJ###Ue}u*Px2F=K}Q;71J9icTzE0X}*Vf%T)3 z$#{%eiukh03@_e*XR52!c>`+fjX3;4iG~k1eS@`X?s}cn79b5(n-g$U;ACuT4`Z8I z+W_FG^oJ9Y*t4YL4~R>HX=J}H(pu_mtNr~Jb#}DxGmzAoP9H*+zkh-gC3U9#qgdG5fdW)g`r^*)|`n8UnpT>W5ki6 zj5IbvB8g_ArEwwi#4+%UMLjc&Bm1ek$+c0v75#h$g{)P`CuEoKaI6pWrOV-!91eLT z`VAaz$l;B6!-1c!96lCLAaElN_u+6@mBjyb%;CX}zc*eIz+tr#{jnSl`Y;A4{v6KL zPvCH_ehPGe0@F7l6(Sl%5>5n-)xOsNsa5$@opJ^TN^_bK7*~Q_| zFZ_@RC70ue+wZR&eQutgaya;bTtI2*z|TxcF$Z_tc$RYXx$&&y zaPR|b2+Fn&{FHL^xqd1+9Q<@=y)ev!4*Yb*M=PCYa}EbTJ+U8a%;|A?Q~JHJ{uGXW zH^j)iFQfFy`uUQh&&}Iz4(F~POKeETf4u{)z*h#XuLns)1;z!p0f}=3=CuBe4!AvD zkhFeo2iy%`RkS|2*}x1>9jd)sr@&!|5_}%PSp)?*u?3mTKjFgwq5}676flRrNwLHg z(8nofi4BKCzgMw5n&N$NJYy(ch~@DV-;QOtm!Lqu;2)=#nE?tH#J;vyW-4vL?~@?MH>!1_li zF30>l#b08XaE@(SBb@d;R83(qsj^H417Qk14)5+z$Xy0; zVilH?_chvof424AeL4xtgD6h+mnFqBu`HnYIV{^!{2`W|DBgr+H;T7lnR}l?4%A>E zsBrI7;N-lT$hN*4ml4*VM)7`_&!jl~e>)WT{s#r}3I6Rd4+V${;jWm6t8g19=eX+I z+`ILU)fh8ef#r>tI7?h9PS#Zr#mT;A1hGpO#)*T`GcHE;oJVRgk_fRNP7)u-2tvhi zVnz@g8_Nh{qErIg8Y&5vh6RR4&W%DkY+W2293xqb)W8@c^i4HP0;ca+M0lixn4tbh z6>uOcheR!0D2YT}M@Gd-1n4IotJpYk$O0^fMM?$HF;UTyn7F0buVh}}+!!(XV*LM7 z%#atD8nQ2lQ&(J}e+|deNYofpRD*rw+D25B(LGepyLgkqyE@pC{b{0VW`7p}j*k^g z8Rl&lRh2vEKNQM%Rf698T65Bp0HD)$yp~nQu zG4KNyD%Pq;+b6B-k6PM`f1bI@gxEv;@cv2qC-E;rtiAa6gitc|U?%$d;AQ?(CzA(hpfQcHx$w(LKw0#i%;=U7{aSCmpf!bJmjt*3n*q(g< zC(Wc^^4yIYNS)}wvnvd^okHv8Astv^RGJwRY)|HoxFYcr8NQEzPugCD?c<3ee$w_A z5N~h(Oa`h9MA#18!FM}iPu5R+eS=8>?%x0h2ERG9xBh^AaCRV8fxj?^qB^(G`GaNB Qo_!FG|2o$g)oJ^G1N5|tcmMzZ literal 10544 zcmb`M30M@zwt#y;L>8G5xgsKh3koU|Kw}V)P0%C#2XQXK_)Cl z3<`=yjA$e#?gV^KHVun02A8N9jc71|V2lV77m!=0y9%2M#G7|teIH$Q{yOK>=~GL0 z4;$PU&Q}u%7*Yg`6Z1+Ulwsl~zG}O$O&7+H8N~!hRQDw*4@9-@Pl2|%*1C7I4RMD1 zQ%P7|hI_XptU;n`kW@9PNdyfNL8T#0^! z8BtKxmV#mnTt2El3&W|_cMD70yHhI@G)p1WHUkhHwTY;~S_HGYl8p}Pi-n|l;OR-y-bZ#%2g3u6$w=Z(&C1bsFYENNHW+;Rm;XuqjUzXTBQqAsI=Zf zms;gKB9)5>_RNu58_x zA(m9Nn5n8SJy+FLJvFtgRyCk$7BmPd1r3%}s`ILbbT-wTS+yjr8kt2#L`1M=RaMW_ zkO8u*LgvV>PEe`31VTDHGc`(>7(tB^CPq-PH%-7z%&QgAHyaY9f$oH9%|e%20ev+X*XoB+Gxko+pph9DV$cy85mHI zlp`!*Ck#a>EXjrKAuPEJS)-j$dstAbTudT19%%2Tu>B|-pr(^_t3n&y9J?%PmCLYY zYb@H%6(79nSWY@-ppFbykDU+Te;pA!hY3alMbdf)4e)oJISK}Gmh*pcrk*frpvcsqCB3?FV-{{~bI*)~@39J5(8|iF~L|9Q+37U>ttP<>RP=Xqp3riZXwXnQW zP>oI5jZ-HHyZjdq6g2fHEvsJZC+|Nx4AA2V$3gCbJ97km{$FjB^JvSkw@`jrfOgDl zHqAhBavQD=`R4poq6fp@iIbm5I!<0bvu3KHA-KT+lflqgfs%Xeb;%Vf51=K2?3~ej zr92X(Rti%;<_J7j`%PVz?qEZq`>Oxz=OFiNLVFdwl4T3SDF$Cz(8JFH68{v_-(F7Y z11)9F?SC`-oZHt$``=BLdcruA0%{iyIAkvSu*DB-WWy~Fc0mge1+g{pX>YGazt=?`sz$a;HmiLL9`H`4cd<#=2kHby_ewJI;PvSvc4O_tgG2HV^T+M_J}(q$nb zBV2XH_qrUtIlt5K;RTazI{(^p=h?-wUoJYur^YEeH44Uj*b`d&%w$>6b8|nvY2s}k zI%c^I7hdqIIZ?Q^@NKuUmhVmedADnhncS*L`XWhIVc&4AR`uhw?o2dnTu^t-vDC5nV9|KL+U~E6F14#& zvKZMuY)a?0+Y?*b1D!uFuvoljdS+a4rbxqh$+Mfy(LF|+0#2S;-KdcuI$kw(XxF}B zPW7U*>dl?uig6t#fkUl+mnWE99XsDQeOT~>&Lbo51}|K_(Pq-ls~wp?{G;na{+5Mb z_H5jGKFT|-bkS~^d9$}ta_GwM5B6kDW2Q6+n!JAI-TtQ%{{jw&nL0^ zZ_WK+M&KOL6`ROARlnrUIBY!UtnQ4V9aXlD$8}Gn6x_D3Jv{o%1>KH>nwZI>Y(qNZ z({5RNIgK*gV&3-2PJ62{lJ73A`PwYGX?y-po|`s2F!3_02raH~D}QYG>zIohdPi6V zc8W}nyy2cSKWqDYhJqg>=INM9iabM2pMCp5lf!KLPnwEvFV0xuR`ga!^T#GfOycEQ zJsZ}UhxhbbPe<@7B#SYzAlT=d>}qRKhv>AyP&ISMF)nVoT~%7*v7<%_u6OI-`zb%# zLi=ByFJJAClbVQjyiPV`Ju_y=yd|rVI50 z4!XrTjPJ;*Tl%;qqM`jqCzGWclIDt694ns~mjB6TWAxIRrY_a=G$?R8YZd%Ku$9B& z9#hj>_0ycDwtQnhtL=VZTjtL$?aQq-YwjcnuWwJCabjN0ZH4^!*WYaYbiB1!=#WgK z6NYtJes{|h3-aYv(VO3U|H%8j8>Z)cwR3rRec==BZx-LaA*ocK<81!0Ell&%e?n-czgno$e7VWP!@JW>dq(k?hnr7WR@HBc za!oAu3>bMl=V5YAsp;i>>xMVa9bI*(Xlzu^@Py9;&aA3;@$0N;eQMa!=#8PgjZ$ZNGDA`-4NOb29fG=WqH&Ozz#p#N%Zg%A? z`MGA^8zpuX7yTU$PK$n9FKk^-=8fTprlt8Ua!#M^=Y8po5k*%cuX^9`E%e(gt8I%q zWq#^$d9y{i{+Z%A_ck_Xdj#E|w6oeM%xb@0@Dt;9ANkV9b_e#hDYiE+cz)T~GIzGd zn`cwkd35f~-fuZOy>UlO>&`D!vY=hP-yV&gvU_E1O~kAVBQr0y?w|R6N!YvJwH!F9 ztM|XcBiS0i9_$%@$}8zGyHLnF8NsbN{<-b@gRI(G_sPLdO&4{qOv7=d;l_c<9!jk} z#WSDWj2iFywtepUo*aEq)S|VaFP;|sSQdiwc1$O&3pGkPM)5!VD;@ZL+5ySn>3t}gT zV=lLbx@r|TYyD;sd2!~gs;ycYLW|W$_p0|++(i3MM5 zvC%tgrt4lNYWH*B9lzBgIr?z&A;z=*H_yQR#X)I$*IwL7$_ViqQKi}blG!!Zdwk;; z$+K;w%V%8>8Q!a!TH5r|KPPA7jiGCXy;xsRyG!rf@itAJ(Z%;SsXa-&cjU9@4koc7 z%L0nh<5w3hUa&mD_~oqDfV`Ur+Ik9{bi)G^1&=KgPcRGS&b2qQSl}ICX=Y<9wiR3B z0|g%6X6O&TUr{eQiUgJTk&XyF=Q)|&j{!>&U+2dN5=8=IUCm)1q0X_0!ylAbxVY+x z($wY-AFB2)(%||WfujOPUSEGC+s)c82ad{8IQob^O9sC{Ttk?4_Tz@uQtw;c{d?5e zyY0_FQfG$#8M3_p(M*)o86DE>SF1C_`^iL5XY@$3uLjQ}&>fH>!wn(kaablAW00)R zyDv7^h)qU+BCN}=tdKAQ-5Du(+cPr}06)Z@ofE`dFyDo0DC}II+8zB3_- z8@(<=3F2|cF5yv_!+h!T_;ntKJQDo}JU)WQAK?uLe)M^K3Z6ik$MN_`p8h%>ht*2P zB})Rj`S)dmmkMxL#YEqm$3dU{y$jV+9_Q<)^Eh9B8;|q#OL?5H|B~V)9z(n#AWl%x zM1N2wVGb2P|4uv(XBhFbbP)a#=5&4vc^t-tpSz%Z$@9Y>_cl+TpXY}>4t^jPP+kn; zXDUuO9ghQ#gCDX-C76Rdemn}EK0h8MkAojrLr`)C@$&_xKZ;XlPVw~rff&j2ElQuv zS1V7SAE!D#iXndfd}Uxx=V1nRNb{CKcnm($!9SeJB+i?d(|&9qS*XxFcMy)~Sc-i7m(^uY^wrhzdLhpny5VM9Ng$0Db<`%!bEd+*&N#QCuI# z<4ke*_Xm{uT*bx-ezsy6&U+{@E^wR{2EQKl@%z~S3Q$Ic=#%@8;cy>6g!R`^yaDqK z6hDgP42n;~az4dB#D0n>{sHF26mP_G3B}3t;2gy#VL$a0cfkA+#kKKdc4H1|B$t55 zuQViYC$JwwToWFO?M*0Nj^&9IZ^W`C#YueD6er_4Vh$CIO^Q3EuZCsveoW#t#XOkO zC-0Kc6rYRb1d4ONA~4J*io4)|vMIg~%R4Eaj`a^vd_CsmzDfM`Sg!)tP?0?jCUuk_ z@_u)f;^VRZCW`-z`2&hC!2AWpd$CLo1rjIO=el@(5xyAvnLu$3EWbhVCamv9aS0wb znBu!IS5SO7<{K~v5t`(^b33KK2#;GtaRuflDULC7mg4Pr+{>7gasR*uofIF6^$p;m zhzikHV!c@u{}}Tn6esfg6dwi;AXEw{?uL0e#e*>ak>cOthl~O4C-b`n$8U-`iJ!dp z&!Y56p6641KNlwBMft&)Sw(U33|miec*li8o=p%ZR$)1Le<5+Q5M3tV2IzxtUo20i z_*yJar8rqvVv3hz*_PtJV3~Zgl5smRcct`SV444XggD8$$A3No*T(bWL-`qrc>u-7 zV;)FxaxTMn5)=~WY^)#7;Xdwyc{Ihz{^h=UUafPi#+cy-EN{HTS>i%*vaVK9oaCPo z$G^W?5fX}Og`BISNJ}n_2@xx#i3&y>9-;_g#G&!=j94Da32bk;G&CV{Wwb0J7U{6< zkkC-MbS+W?V~o%jU8EFDU$K~InUt8I@kkT!N>&bwUAKBbPqH zH6-v7j*1=LWbiHxwq$>fhE7yq9|6b53Lv)F!h%ADKj$FR`SK;wJDaYjgiND#XF;M=JjW`W6c&SAN@&|K7 z>`DGS5MyH^9Y}_96h3NDdB#OyQ!`bj;3eAp0xYhp+6 zG1P!1Mx~jt!1iSRh(3v*$nbpuK56@9*glac;+nQUhxkDA=QDvbkYGEQKX6Ix$@&>+ vY%poS