From 8a01e8d5416185e24fc322cd8308329b5909a2df Mon Sep 17 00:00:00 2001 From: bob Date: Fri, 3 Jun 2022 13:50:13 -0400 Subject: [PATCH] Sound Class and some Tile Ids I guess --- img/tiles/terrain/grassLeft.png | Bin 0 -> 955 bytes img/tiles/terrain/grassMid.png | Bin 0 -> 739 bytes img/tiles/terrain/grassRight.png | Bin 0 -> 957 bytes {src => saves}/Level1.txt | 2 +- sound/jump.wav | Bin 0 -> 129128 bytes src/GameFrame.java | 6 ++++++ src/GamePanel.java | 6 ++++-- src/MapReader.java | 12 ++++++++++++ src/Player.java | 10 ++++++++-- src/Sound.java | 19 +++++++++++++++++++ 10 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 img/tiles/terrain/grassLeft.png create mode 100644 img/tiles/terrain/grassMid.png create mode 100644 img/tiles/terrain/grassRight.png rename {src => saves}/Level1.txt (94%) create mode 100644 sound/jump.wav create mode 100644 src/Sound.java diff --git a/img/tiles/terrain/grassLeft.png b/img/tiles/terrain/grassLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..c84ac23ffe8b984e7904cc6123a58c2bf0b02bac GIT binary patch literal 955 zcmV;s14R6ZP)vp#E)FgoNL67T$9@*lG`Kz0052AB7?&pfxjP#%pr%!Ad1c*h{_?xl3}Qm zIKYTe!HQJIkzk>lGlaz;$CP8om1KjuA-jM@uZumFrYydNO~Z^=q?b0qiBrUmTD*ct zi?SuRgF(lXWXP9j#gJaemS)D1V3XS;d9sYhY{jKj>vVe0>!IbFjgiv>)tPcgHq?vS&n zD&(y1suf~ZRfU{JK~AGo%ptA-$1BqD3Ueq?gcFq92}*Q`DaW_D4sj)QqLMgKVGbnlquF;T{wqwB{)I}POb!pgwi{i(m9#ZIwY0g2&Hv| z;vHhje9N4uXw96cZ0F3Os1#-sos*~-6P=T&Y)layVv1o7SGdCz!yMuYaJ(WNuP}!a zML0ppouEXAQYCYGC3SkGcUnfp<=iP)nr#GAj8T!{3Ud-AI*Ae-5=!r6O6O!s>yT7} zBb3$=igySo-T{hpfZ`lNO5>ctv^m?rv?4P~JYD7x?^99W{W!#ow(!&nc=qm;HDa{2 z$SL4WZ11j?Oej4CZ?14uR=SiIu!41zIVx`fB-((2Rh>9Wv=Yy3lBT3!k6|03WCtVA zITh@9y`w-sCDg|i?7zWLsJjz-4ZI^?1Met{UI{{qb2Lh8q&SD5V(s6Z(p$2l#M5Qw zc%QV!pB9)Y;Mu1WMRJ%5F}qC^{%WbA6Ggb_YS={4mtE)3x2&okGf}YR!J)6BS81d? zG*P^hol_&_fr;Wh=;InG_fHhlkKk3&NV#{Sm`=YKWX6(U$d+c4+a$YyM1Z~@$(U)yk6hM( zC0_sl0yIfPK~z}7?bg{&!!Qs9&|xb}X(`a!L$Lq%iGYrVty$)N%Y=;3kM+G@YWe^TY1vo|V zPEmwIN^wqAtW%ZlkWg;kty7fs+B!vfzY$Jh9-hX?OMWv>!Phyj)eltVEx(N6r-zxD zm28|@G0v=H;gD3c(-q}(ML47s=}1L5Qt1w9r8`<_j#ipOqw@INw^!#@Mk>NlN_Uh}9db%@j50e$nH=&;b(}IePALunr8qzt9iWU3A?4`Y!*IIa!!T1i z%eq|V8lO`L_&lyL6EnQE0PlXh<%pP=GjalaiPPJSo~fzF@Z~y(P3n?OV1{{Q9JVEZ zTp3`P)yiR4N(!@AMTudJ5eLD(f)S{k3@cu97}Qfjb(~@Stq!B=PN*9c$9IF`a7JB% zkTNqC002ovPDHLkV1muXOOyZr literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/grassRight.png b/img/tiles/terrain/grassRight.png new file mode 100644 index 0000000000000000000000000000000000000000..d1351da1b9e6976d0683396e3edd44b2c734ed1d GIT binary patch literal 957 zcmV;u148_XP)vp#E)FgoNL67T$9@*lG`Kz0052AB7?&phsYp_%pr=-A%VXih{_?xl3}Qm zIKYTe!HQJIkzk>lGlaz;$CP8om1KjuA-jM@uZumFrYydNO~Z^=q?b0qiBrUmTD*ct zi?SuRgF(obXvL6T$CPBqmS)D1V3XS zIEiCxD2e?4|Eft*;*h)rWJnL@<3KuqxC}2u<$&?>_;~VyPPT)}q2twS%hUtLkLmRE zds)62$hh(6S2-Dhsq3HR+cB8>bTSH4zZ-}7Jq|M+hpG3Mxmv+T=5ttHU14TfJtJpc zRmfRAS4+e!s|q<=1vy)#5)MfPI8MnOrwE54C3C!zI$jA53FYD`b)2$Tq>fXbE`;Nl zn>$;1Fpr7j@P#pp=mWg+XdZ0&?xtm0#UxIvBu=Xs;gD2fCn%8<6yZ>$NJlEdkxFnV zR)P~Nof9jaLsq%H50882JjUA>&J)F$`&;W!s(2?;ypt;4p-kzVL}{HwX&lNG?_^5j zWQuc0D6@@lf})ggg0h(jhk{b*b#N|&qIGaCgR<5|a7ZXxI8u?0P_%GJD!_3{?l?s_ z6e*eGmDKS{a41$1r&D65Q#z+%I6N+$LX^cs2t{iSj8udZDZz;p?@*?6PNK9*w$Uy?>b>Uzw7!Z8<}_;ohS>_VV$sz-*kdwgwDjX8hi`$Aa1{}KlJ@Ce!;%NK0tuD z>VkLJkKZ_}|5uyCnqkcl0Eh#mKDw#^<)?nLzXaji<@r8VV^+USDaxe{Eke;v&*gx1` z*gnL?0{k!tD=?y(O{7Em!SA5d!jgYz`bV~Y^H4QG{ok~Ja;Bc33*=p|My`=)x+mTt zF0f75ZzxBQ*AN$oC8SfIrhfwD8rj4h(hE{kJ^{TGctAOVKS&qYr{9vPH&LGjz#ifa zafCR-_I{Vwo9Hj(3#1yvPyqne4QbX30Ji*F8Z{Grf!{-#L!QFB3E&I7V4r@|7Uqpl z&=caJ1N!w_bC44_L7Kz9!oESCLO#Lvp(H_C!*>W!kA6S>E@uQ%{^$af$Pqv}h#SNQ z(i+kT$`+&@lmUnzqz~*5Y!A}qPoE)gQ2-A#Xb;kch#(=X0YIE!pNuD{W&~P+G#Q`Z zQIDo)qCTiu@(J$A0q=D|N#hB=!S5l>VS5UopM9Xr0Kf@y3d*2t;wwl|$az>p-vq!X zNIQr($P@H~ zvHjng=&9o7JKeh}0KZI2qf4S`mE_a3$=n&@%&MC*U(G6YINKKzzt!wH@M5`g<} zy9MP8+KNAN^t(^0iT=YLLp-6bLjL}iAstW}Qt|hg1N#WSf&GGXhX8d0ehV)sS3&?y znr2NGfHqC5rVc=(hBxtCtEtuG11JN~3;^c001yFyeQO6$1)v%LIA|3EDC#_(2??M!*a51?uo`PH7{= z6IhEUaDjL#!4u>SJHQc$aknaunouuNJGd|I0jn* z?Sr~g2jsE?$k%VWLEiR*5mm$|B-1W;18rZYzvOoc!UjtfnXwh z5k3eng!_bqIUr~V5AbX|0d@#B02=_%9zxl11Mh(V91%_vG=)|H(iZ9;O&{03$N6VJ-+)fV%?#dvK?LH)rrf z1sFluFa{L1n&1KCj{?vUYA+VlVfmkQCZL!PpqK;bKa>z?cWpthT>(%*eK^n})YsoK zX9G%D0ByleSW?JeIE#Z;842{n6!bv{;0SdH>M4|2hzE57$Uyqc0d5pT7$O1@gb1Cm zbr|ps>pyMbL2D2oy`Zc@K0)~=fv;!)KZutb!V{EdgP#Lp4PrIo8scBXEyQia4#alE z0>l!;am3$I~Z1idYYFH-I|)LD?w8E5vI=DWU=K36X@jgSZb`e>lXPGa{|Ef7UCYl z6ls8b2x=ZrT4 zYIs~ZKB#I@Emr%fBUN6imhqPHm#R;y52|;nhpOwU_3D-Cwd!4J63BlAFj}DgOWmXD zQN07Wy;3KsgF(u5^=urJAn}QMajuYO02=*`Qga*$DD?f*NKa<^W!YAijY* zbTle;AJDlbFt#lKR2f$rX_kW0N+6{a!0{!3%V~f&4S*9*5V3%I=MW=+`gEix@;un$hyPWqa${Rsk3|yj%QRKD69!c`dvxJSVs$=oSnJC_7M35QYj*3LXehd|iGuKZ%bNbn?fW<;^a9XZ{QR8@_KnXO)}%=VD>du`=ygKa+TrCr*hyzcsLHxWuy+3~pJ zhUlzlhGd;&eb3GwJ$avOR{w(jb;?&t;@GmWPvc4B@5UdD`)fiqC@rE^wbpm7>)K1T zopnugf9PfDJ<^ZYM;W*oOfuYVxXk#3u?LEU8b-CFwwN9@O-J{kGt4FC&6Yiui>;Sg zXJhlQW!8Dt8?2+O6R`KOi*4rG6cYG^D2MG1t64i)VeCol1~-wLmCs3^@yQ8Ou0&Zx z>(4>Xk<7d{vo_*sMDp~C>Eko;kyD~6(Ue&o(J@h8QP(2xM$U;0i;S9yop~ZMI`Tr) z`KWs{b7nftSTsX_hV6{%>DAK{roWl~@3ceHq9dFmu18#o7>XcGdlyj=u{?ZP_=eCa zq5h$`P*j*s*d*|zH5D<{A%qzspFA=-YVx$nA(NdZ6DE%ZKMy`1d?)C5(CNVKfhz;% z2V9$Ub<(_mnE~emwgnvaU+(|H_g`OaUwz*$pJt!kKC^wO-X`9r-c;`nFQoS~_v`ML zU01s%xum=FI#XO`yZXA0IW2OUXK~g%NGlO}MNL#MR>lsF_8jQJ_Ri|H8cP_n1|!PB z{_}mad4F?TYmMsOwJ+?LDZ3+c6)Qvn;X|P>SItQ%n_foAeD~{7`hj#sCN673)~YOQ zYF^5|FZ3^y-}%0)dq4WV@+;!o-fxe;efjk96Y^u~hdUpFKU97w`f&79$)^>clRnpd z)_mUe_3&5Tw}x-WV)w)r#OB1N#%9Ob#@WT4j^7&pBjIa;DuJ3PN_0*#PYFo5o^mH; zMe>s5nJLp!n!ae+Mz2sUs1Tb3n}6vhj4n?ICn z$#=sqhA;I#=*4Q+Xm=pwh&NyqdIZLp>*E*4r;d1z%o$(|6iVMpT_hyQM)7p<&(4#b z><)RmSNmAoJ$?v(xN=YBj9)1~rSWIuz2o%bT$7xWj8g1Uwk91*+L5p^;Y0jA0C(fR z#TUfq$G66pfuAzoEMZ;3#RPPsM`B%~G;wv(zNEaQ`lM~i`;zriv{H5_uT1Vr_?7S= zc10}poAm49*fp`!5~d|wOS+oWnZ!$qND4^OOV&-UNfD&*Qu|VGet-SlI^87w`HzD? z!ZL^%T0aLf-u;UGCC(hloSn5M%PQL^TQA2y=Wb4UPEM{ecWwTue8U2rf~5TG;Av%k zM8V90eT8=mM+;F!H;Yadl@!MoKP$Oivaxi1>0p_>th>Cs{ABr!^3gJj@`&`Ck=JGGsk^F`+X*A=e&o%TE3w|{B> zi{3&1<)-hx!oSErA>1M2{hXmWv5Q(3MJ_wCZ1$>Ss|?oLuV1lg<)-DE12!u*ovj>sPKXUiW3)rgbsv+Sb;ttyq(|#(0fz_4?IQSEsK0wDQnjr~e9CK7V=6 zvVvs|OMfnvEXiGByrgOISJEU zT!;ypg_#u-WfS!{@?hkR$kUPQW^SG-ny#9@bo%n?|4dsqO&neto)-2x>`my?P}iyc zQ$s_-Le_-L3V9WBE2MHt#T5Ev`ea^EQII&WIM6o`9~d0y9ViJf40M?^Z_-J>ivW)K zh5P&aOZ`NC?Y=#}RA0JpmUp^0!OO(!g6CGxEcaLL8LS_yrOrp3J)9Rg=PyXE4Vn%_)zTr4SmQ=C}rSVSyB7s?8@7fdV2&;OF|Sm;!YS2tJxs%x){uaB)iRlBb?sM@XiNY$1q#~O0Yv--F7%Q=fV zS2<@n+jvKKD|yR!@|v6)S!ro$NNH%PNhPatRqcb?+6FC-FLxH#n#ou863$OfPraso0p}9uRC7Y}Dd8<)7Qc{>;XCpJTBf$FZC}|g1<==~ZhO_9 z(e5n@6M0D35_bT{yDxPQNi2K1s+mqx&+U|i2w zKU#ODt`Smzupa9h%^LhUxJR){F<;44dMiDY!vi=4x)0a)S#n<@>@4fd=uGS+cUg8l zZ-3N2)MC-vEie#TG-H}~^Y-zsb6<1A8`n2R2$l)dEsB=I!o5OilTNb%56yelaIxW2 z-P<}=ZDj4Pnin-Db$)dh8Xh;CZ8+LsSl?CmSKXYtpLLSD{S8SCF5DU1m)uv}$&K?H z_wirx=Ye|AEyR|ot#ewxv?jG?w=}j?v>3F0Xe(|r?$GI2*|DG_sWY}yPpmCgcNM@cUnHsM&d1UgywAfV7+}!+z9+`P*#`PH<(`QWI9C0k-Mfi*GLtviP8CDaP9ax$0YdD^?P+^4xMa+~Tl$L(Ks9J|qV(3R_2?K;!d-F2hO2A44Bxz1(I4bE}S zna)1USIUIANoWhs_h~ zh1TaVOEI^tPFQWSSZc8qJrDg1bpWMhQfEvsR2g{ax$8~WnWy8g?V$283Qi}YE z{DRzx+=6_oiPN~M*ed-o*(h$ff2cr_qKFw-IuJDAJy6;g+xJ{{MYcjRLo!zsCHl~j z)4^}+XxrH`t;LwnZO&`_)L6sK;d<6v)Ss_jUtL(4UAeS!edVKydljfMaVfjVut=WQ zl6O7(Q1;M|njh#CP4c;un0I@s0h(@yoTZ&%REMn;#byKO^2E zPCKsf8|T~B*h{e+;x@&_#(j&sknl7?m28soEA?k;UrK+ za)EcSBuk% zlZtnhE-NKg;47w7MOVG8dQ~N_>aBWQ8(X`Gvz;@8w}Q8ocbezRi{|C?YIzTu-Ze1= z{(?GTfpD?VR~Rjb5uYAuFFmU?%kFVWR9|2X`1w?Y@IAio+z*FZRr&O=W265uYa_^ zyFYj!c;Kz#wPNaE@L;)uqv#&&9DFl$ZfM?+-_R6gkn*DPu97kAK74-k+~}V19pn0{ z@$pDigepQEr5351)ysj8BSsynzN$H*2?f5UjflmFKx8Pg1X+hP(?V-K)_$tJL-&C0 zdcDnh^9&Xnd^V0XE=FabLQoE|X29G4%BAz6^A>Jlt5I++cBn$~pQV~xPR}Q zDQhXWsaL5c_9N6(`#1JtS}Se6!wv_QgS$gM?IW!eq)oARwJ)IM&@vpqI%Ye*cQkd> za-8lM<~ZLe)ae-G0E6pX>wFF9v)rZ1rN*_*^|f1~TdvzLw`R709n7A_Ze#P=-`tD8saB9%hpxEH=!HAI2DP5t$Q1=Mm zh-Y98yDVaE#O!Gcr~NhK;0*mJwb%W zIwS6fe+VBBGY&ThM}_YUI}^4wbWiB1soSSc3keKCPSKgNWb(Ypw}MXw^MQr52tWqh z@jvZ<+;@}jbZ@qIiRV{Ol!wAy+fBy)*Y${NolAyGICB!S->KKB(_zS=*5 z?Q-noBq8ZC@hZ`jU`N=2+kvabCSjGB8jQb{qg9$knnkMFXES|M5$c)o4dc~DD~v7} z9ya`_|4^T$>!>?hJ5sw3*@0XSyg&!k8`b9HI^*6WP9qjdZKd_Vc>j;yx4njP1NkcH z3TaVyTDQEjzO$tDYwI4tdV!>=t*Mlkz?;maa>F@poTv5I>Jw_-)gY>RDjh0JDi)N@ zD*IVdRI;deZSg;a{}jH-f0?h$Rps8wd6;t>{OWU>a@@0>vSTvCGd(jWXEy!n{PkDH zoD6)L`nyvqI<+7rKjm9WdP-+qE^=-?y@85oX zL&l-v`r?rBv*LHg^W#V3-z2h*_aoyK*n*8s}m1!t3JQKh(CdVz~tUIg;HWoGs*tb}B ztP9r3#>wUZ?lEpRekb0Y;6ZRAdJ@qj0;!kOM~b(7ZF|semE9NeGxA%?zm&_A-IV#1 zAc{71kfLp`q~_ayvtLB>rTw7A(QZ3DbGYVo*U6db$nb?3r$X zZf{*Lx-wV>EU63MMddQ);>;qmF0+oY!dbp7Hy1k>KWAs>vkZ!O#=y}kk zpwz&Zf!_n;0yhNh4O$qqB4|pWOCUW!H$XOtH|ei{9RZ&M3IpN-Vgon<`2i~f=Lb#? ziU=|ZHV@VdHVDoL`V~|g)EM+I=x$I$U@6Fr2~-Bi18xA%*T#V50riuLCO!3k=6~An zs^4tiIld?#L!S!o5^t1`xz8`}Jnt*sXS}C-2YJ8qeB_C9A9rhZO>}iM9B={3~25 zFy-du&86JZ;1aKrl%khK@r5r7GYbj|%nNJ^R_8Cvm*=+Smgf}a^yCcYyvTWcoxV8z#`l}w@1?#@{ghge z+L}6?8lRew+MdEs5hn|h*Cnq?{x|tea#0E=;=TNqd;~A?-_AYTCE-)O2|U z;^&Rb51IPe*zAqjTe5LE#2iMhTkieb_qp-8dAVVE3-ZkJ?elF5m<57Dap8&Lo5dj| z(@Ml8Z6&u#@04yU-BU^{WtPU4CYJ6j+g=8S=JLpjsES{e8I{9Th-&wmfSQxFXKO9$ zvGq(~k5yblUJ<`sf{f@YyuXxV~q;S0Nj_gmh#gtjej%W3Dd$8;>~ zuPDbmH#U$QFM8ToN} zx4cm<>h0={>YvwtbKvfPNYSoXrTk0TF(ex*8mS&3k2{Y4rQWXorpX5Tiv&ag*n?WE zwNz`T_TSoL+D1AHb(iS|>rd5hG7uU(H~MU}-{gYHanvc45XD7pHr-^p1HB)eZkA`J zW1(dcWa()cZWU$ag9*h9S}Uv%;SS;!5ta}(5Z4e-la7-rZ7Xdzl6R3OQNyU$?Qh%X z(XwdSjwz1W^b|Um(ZJZjJi?SQ^_^3li=Bg5p)5nTHG8YuAvYIyrn|^Z;P#XKft};} z!8O@6&h-mBh3)L_VVat zWtXM1CCPHSIm=vS+G#q35~CbU%}upT`%!ol8YKt5id#l^jF5&phVOxY=(FByy+YkQ zT`k>loxM8ybT(^m(_Vy}hqTh5G-rXY`3UeoZvp#SrlZKwE5nzEU55gPG6wSp@d^_~ zV}DjZz2COqzc08i9?ZvGWHgzkN79oZc?3cV2E{aylW2eE-<`{VY`<^6*Z!gHcH5!W z4Xu$aJ}vhJX9WkEH-fcSd}AZ81dO0dd8fHoxH=p?&W`%^_35>7wNtBosux#8R>(>v zrHe|Il{ghsi*FPjFXZRv=Wobg0ai3g`Mr6)dGB+d=MLs5b8tD-9PMnY?B=Y2EZ6Md zY*IEe+c$e=_P^QhvY%zY$acwg$Uc*GH7h7w9Ni?gTaMC1r_ znsY{Skh!uPO^!!yXzrHW{ka=*59YS!YUh2&q+3tISKx%gno<_ayIm-p9PQ zyurL9`Tyjrz9fc`~&l%bO$)yUPz${25~iz1-@LLWwt zn(3QIT7+3NT5>ESFmo{5tPfe|U`w&fahq_t_yT+?A)c_ExQFOQnnJR-W!uiRn{W4& z{DAzOl1xdXW>I_X$LyWK`h@Ptb~FW(l{zP$(?a?R;3XcUw=#Md;m*^YUjp6T$J)o@ zvqY?$uJ2u^vcuWsuIaAdS~g?R{_sNEIXe4m0iOwVIOll=2qxd z=2q^O@3z@}mAj9JC$I`1Jq$dDJoG%Zfd$d=+~c{!^Enus*`BtZ6ks>VUe;bw-T~ep zyqTBhDdRKS{_(b|3eNn#KeK-5g^_}I*@Nw|@;`!cl zwfhS9WVcUlb)eOUZjan8-{_c-^x?nm9zSXFM@@8_e?JwIx zuv&eNzlKk@d2M5lwZUd%axk7&Y%2o`9Sb_z5p85LYP`-c%223Rs5h!D)P9G&k9+_k zC16y~6ZKU!Y20+Yf0#e)qQoid21*9b^zH6DCSM_cDm^bWu> zSzBpS=~%g=;#5UbxuSe(d35=cvZrNUWkF@JU~Ldz@~h-V@%7@oq5`0=2}Qj?Ulm32 zBKIQuB56TS!IS*Q`S0=`l-#+wt@!Stj}4ASzEJqWm#ugWeGEzG9PB%%{-EMIP-qyz07CeEk834?Dx#e z>dhL;x}5zy+bbtDCobnTm$wkd{qjQdUgUkq^Ua@{pPZkaFV7#% z-&1h1AhK{-VPj!?A+Cr}lm&2iEb%S5RQja!ud`|ZBpCKw#RKNz~2A;j%OXWI$w0I13nwRNFr+LZtR}i6Wn7XB};F}Udk5t zZtvaHcf2p6e|i7ifwu#ViXKJ7pltA#^0l%~$yZh@8P*)S(~Z~rp?A*Ut^vWw$;if-ZtQCkZW4ov zL}^e;R1+B6)M&JsiMa^~a2_(pTH-7}TE$z@tXbCe){WL@u&1#%ZSL3{!=1$41pW~o zp_afS))V_l-K2$f%j|BEUy@%_-cT+ApSzseM)kAzv1ii!XqUkHX1C)hN4{g1W295K z(?_T0PBgj$y@@WMFJ#PQoM!B2lrV}JtC$;@3&9?Zw~Lp{bC(w`1Qv;v&dO%FxCXeM zcD)01ahvOP)^%37OS#Jpmpd+>T)wyrxeU9EfHl!UmqRYy&N63?v(Wi~%L$i-tWB&8 zRz53{^_5k`%3>*i{x-9!S?^eH!Fvg71<-4KHU`*&6>N95Kby{Gv5&Bivh&#a>}+-} z`xN^!NQG8l7W)hPEnDAB-_60z*Np+zW0T!N-PXD-b8~VdyDebHuqOljm@IqNGM8u< zV;3!#Z07=J8FPU7p7DXPp1zEJ$LW;QN~a}GQ=Gz_vK%uVy&PQ~A2?ibm`rn~&7y`< zzmem~+w8X44U;-Zi;0toN_-E#8`qBG0iV=k?0M{M>oeAQm`qHZRh-oh%k7qXEdI9m zVxD8JFdH+Ync10@13&w?$)L$r<8{W-Mqx&QhR%jz27U&|^$+Xc)VrbgNcVwmwobCn zPVL3oH<8DY-XH?&z2*&wM`~B!2a!d0!PvBMeEWC=fHPw!#!inO8%-MdG9nyq98Mql zF?2+ER5^LjYfv)KJdodC(68(p>qCNoX2V{+-V^e_<-cUvvZd1HQdSSC=cr_pOFI%^&28n%kR6&D7>CO{<$eH$H8& zX~Z>tp^H&#Et~`%!07XISS`>sNcZ=2lHc zb!l}|m9Xkw)y*niRa;eGm2UN~s;a8nRgbIAR$T`7*HuMTf+}RSakT*W9`07%2XCEK zcdB1hBWv_)R@bbkk=2N6%xX<)>uXwSdTR7*Luwa*xx%|zbRDKHx^8aWy1FfOd3EJ= zzV*}UUFs**57zb7ZLVKcAKeh$u(M%9gQi|lzrW#7!)Hz^2hO)lcqrac-T`0*Uh>$D ztj2RqH<~bfcYd^BBbZaLg;JqN2tu`5LfYoG?QB2UzM^Ae2dR_RY1(DcWe3(MX`)Qg z6!A>)w(euyKPBao$34$`c1d?iU&>y|ta@?1m-_Da74+Bi=MGd1v?<0EyOh_Jj>93t zFGo^G`bV|LrjE}af1rv}5jFmrN<wmN{hfH{LXiFt;(hY7b1w;s0E!un$Uuv4*K z*pJvJ*dQApo69!mZHjD)ZLl~S+*Dj3E(RBhTY#I6JAm7dtHp6}PIwaD43EIeaBa9X z_$7EW!GsV^m_t}ZSWSo|EFg^Fhw#JrUi?YIDMB|vMqm@&iSfW^JC_te8YU@84Yp0T zV|FS)mToee!ldk^tfz!iqo|?wi|kP}8`=ljbDDxCqK(oN9ww-Ca zowS*Bk$8#tj_{t)g>S;o#81NK;xfTLm_2T(&1|6ix3SsQY1S#2IE>UvVztz2zSU#P z+m;y?i5AV~73Sk+J!UvFLo*}b7r%`92NiGp)Y!ymz_8RH8SGO()#vF|>8W*f_15UD z)(O}0(>jINk6>x28YztN8(%nnV07E)`{8H9ONV9-g(!WLm5LHYYX67+-MveCFUt1I zs(Lbe%q7~AJL1#glcF7>yIt41&URktjO>`*G1R7PJJ))w)wRW;#UJcN+yL|C0)7qu zR`ZkQpr+s^uSRC$QeGtQEB76j&Gq0;g($}>bPL`eYI{+-L5*fI{P|aZFy~R zZB?zR)~pU$XIYnBTT}bA_5;wr54DGCFVs?Ny=nzOLo;eJYi`$Es)??Ns4=fGt+B14 z*37H>6|pvgTg(WE9ez>DsEP6uH0EUR;j8)Rhd*xubN$@tkSPes?MtpsF_+*SyNl{tv0!K zOWp3euDbrZtorhL9S(})$aUu$@N9S;VBme%n9)dU@@|T2`q6Z)`BC#x{w4k`!83tP z3%TV@>$ldLw$8TEcEgTmU@zv7=!EEr_?bAYJG}d>eiN{H_!XjSiI#HxDO|WR0vE-7wlZ+Bw=V)-vX$nxc9DqBh~ll$po{ zNCzz+t=C$qT649RYtPr2uj8TXr>m`JrAO3f>Z1*;3~CM944Mpw3^R;si~@~k7*`nA z8gDY$Xd*P}GC7I5jamhwA=jf9?a6ZYrqooF;#A+4Bp+2N+c7RQ~A6eo()VK6sNa{B7zO=r=I zfR+*%ct!|g8Y7eu%|J0M8C~=)x&gzC;mHVNL@^dIb~AQ?dBZ8jCB}6|65}T$k&yy& zLKp&iBfSvl_*?pG`fmCT`d0c%`c?V~dL})cK2BHD%^5g`0^G;x2%za641Z9g76ZYM z(0k~ebRoTzo(pCrEp#gem7&8hWfX(jB%tj*jGc^T2A81$;J{=tSAe<7apocBE#?X4 zbLJi974Woyxtqykx-pfEQ3jpq!aN8{L<8$0V<;Kl0BmP$V>mNh8AbGRx*S-fOviM` z8xCh3j?%W!4%lzDkD!KAg=9YYvfVMe)wZ*3_mZ}el8NcWWWrCvR{UoC5@21|+AOyr zWAWHVOerSC>aEor%W0Nr<|*dEX2E80rm?0Z6c+W%IN5lPQMl22gGUBF`mXvou*PiC zsneOP?WO%U@&Hl<;@~#`|5e_2$++v7>sbCs&dAE)6~hYUi1Oaxvq38bMzOemM*qv+ zYrO=ynLJMVMY^eHbx)|oOM>nm7iWpSicWPM>T>V&>P&4PF?cN?}Dq#o~$u73a#&md^+KEtaLmrP?LhB}T<&#ZF)~@wo7F;a`Q@ z3iS%ng}V!m7x3~s^N#_TlRqopD}QpnTYhN%_WZ;79r^9~vkRsdd@6WTu)J_>;qszw zMYLj8aWa4#C3j0wO7lxIz~05G@`L4><>kPK5L3ab46MX~-P=a65Bs$Gef0t`KWGE? z=W6Yf+Ff;L>L%4suCJ&ssNdGGwZVrI$T8z$xGCIJ?j)WMuZP#gOK;3-JkWHy$piQ% z1zz(>;{5C~QX{}S4@*tJ-;5?hB_4chLvy=kMjyS8g} z=ym9IqB}=Bb-IXPE^tA7Q7q^db|ZT9dP1dhq+PNBSy69s@4^1P{r?W!8`!PbtGGIN zZ*V}VR<0giGu$!KGV);T=~#qni7H85q8qxj4R0AeG7=jrjL9e`)O6Dr(}n02ApUu?**)_|=9w0m7S}AVS^8T|wlc+7VQMi| zn3dLxtp~09K)me_>}y~H_TqNoFnA;U2mB-acEUzN7;!4GhuBFxMLJ3%*^+Fp+1|7r zw;i#KxBF(dlDwLHi+rEFAH?PCByS)mlAn@YC|lj=aVr@jaA4qGYfC`pt!%3|t5Y74cI z8UQ?jPwb!D8`8{ZD`_ie4{5h()wD92gM*{PLWj8yRu0+@pK14LCuxUir@%`59_>t_Bu%Bnor*=>m0jQuP=+857}r`W>jeS%kaIyM}si^5Phz0 zneI!S$2u#tS8AJRnQHYT1`&J>S93(YP2D{%9N#{+X>4RfF>+-1@UTj$RIVMIJNR(m z^1xu9sPA3xzrE|^%jNnqLs>@8kDiN?za`7MW4eRH-eQV~C>rV<=*;WL>^Rf@Py4jC zDQ&^6o~`>^wzkv@%Y}1540*cXgFwOW;uAnrSakEW=Ce(IH?=i(HXd!f*l5~l-M9ky zCogf&b0r)Z=PM_cbDeXM6To3|>KpPKG8$4EcmV1eY8#$4JZRX{u)1M;!-|F*4Obg- zKuoW+LDpcwu>u-6nX`zqj1$d?;!rtc&S(RIqXoujKh7l1P5{q2FF8LrX`D9zUUNQk z47rxv6WlZ0dTteW2X8IUtI@6TP2;;pabsKKqNbRpGyv)*P1C04EzRA{istG3#UQFa zlfOZ*Nnj{65^fZ37WN9|LTQVrMcyg`@mJ5=R<oinF`( zx=}rLJuK;D>2%ow*){o75MR;OOYLX%UmJKZ&;Vkvx(2%ki9__Et6(0+8R;6y9xWTa zKlW^_V7y^`2H3k!1ZN7%5!Hy-$d|}@T8p%LwEDEJXLi8sm(6=n(mJrj)wYecb`#4Oc3!+fd5YKvA2vBe$B7nb|2 zE?Vsd@mGhfuUbc8S77V0E!dSdYi%SpQX3YCh48?6;zDo%xW!=H*^JwWdx?7kbRCO7 zjlYVo#<%0?1Yg2M!VN+tp&A@H)Favu8ANR&npi`qBV-b?3HgLVa8C!2OlTuC6a0xT zAR^-uunuCPHz|O$jI@L_3(WJwNRvt7q!}c4k|zmG(jke6JYo~Ej_5$5kZzMMlVVBl zNoPrCNXtQdAB#jM^#Tj?miUtBOJoxBLEZNVmk1{a`vEp=LJ2+}jFjsEmKb~;Sb@X= z9eR#?3p^H=aVv2vaIAl)5-u5+27d9l-M9_7Hk(G96*ddO zF{uG;3ib>3D)t)o68OJ@y?{M}-H(mJ&c@2EN3C~T@3%Ix*0)Z;Bx39_49qUDS0J*K zTQ0F&VY%C4r^PJuNOP(g*=)d6Zd!#ZK)pA)Z{lanG(Ky1(y&>-Nq?Q*Dm}T546Mud zXxnHJv_=qP2zVN_Ro$r`R1K+Q>a4@F9kc`CjHbtTAzL|qE{?yl)1`WWcAV(>1OF3>D!)9JwGMc zlA-Pq;Jsej{Zjlw{6KV9w7+Xx*NM)(oo_mxc4UKfx~Q$E&87|07S$Ts`Udz1eZk&B zhp<(6S$JM(CBzE<7W^X^*I~^Od4BxgS_j!+q~r<&U6vb`9R(zo+Zy1tdb3Qjy!vw2am-w;py>yaWlCmx#zeG zx%0U$TnDgjaN};^ZsVTjp5kujuH&xfuHfDV(9Gp=Ey1@lcp+dfu#$Ja@lK;{lT*{B zrfW^6&1PT)^0wI$#Gzi~KjGU8*n)ZiUvNTrL8#MW(sHcjWDBX4)LPbB)%sW4TF_HT z+ne_1?Wa1~WDgO7&zqvTj+2tVP}| zujsApP3lYTEAKDwrzseUzX#6`W-E)8mczK=DOe^(W#M%0FyaBv>( zF7g?&PisUgP$v@X5pK~v1>z}H`a}Bv8s0NBHzpbHHaTjN0?rVLOhu*+W)!nc<{QkP zgE)k4aHw!DW-BJey2Ki1L$f)ByNWBoH{vS@0>VdP0&yK_7fHv~)b^q616wCMn%#T5 zPj((;4{|9vle~+vlHv?TN+WvAO>= zlLy_OeuaLQ&Y`!`aSRe;E@Kw(V7+CKnNDDK`;f_H)-yYp4a{8TcjiX`_nD8G>j5|e zpo21@%*o7Y%y4D^GYCX7IDox6G2;v49hj-_VdybT7=O{1(9@ja!HRmiQ;j3XF%Wpd zPCM*#D5d=bkq}O_6#KUzg38wZA@vG%gwjiipiH4W0rLe68B2a)_u7ta=WJJEn`e8@ z_N486+bCNTTP@ocq^Dr_V+u(F_Vm6JzY?Q~(}+L7d>Kz55su&w;+t`GI4_(F?wHM9 zn{;dfRvW8@U1Po8Iv@Dcj4&!IKPwNby_S0|K|~Qa`mZ*RFrQ|A&FqRT{z-kgo?LG& zfGph{U6ihs?k=4}I-S}Qu-h|3`?l6Ktr}z{(iY6e)_~J-XEmoZ_tX#7-&BdJ^6}bn z>DVAR*QPh7JE}KoK4LmzH%uP38p01DmHJBEL4!fG0;Mn=FdQ)K*X~!p0n+-NQaHnvG@R#vN!MJ#g zc%HZ#tRq?Qtb?t#T`8DnAIZ2)-JP+-<m(Gbe3tRX)8DUVo*)mzk0RF74KP+F^Yc%jt{i= z3;QGcr}wAyCH67;?E7By-tV>SHR(MoKPA_ZBjguA46Y7{$2}uGDYcTCOFx77+^IbQ zJxw4Y2>RL7m5qS*8waPFA+P5nPNS$kyt9~6>&v8 zQKhI#R3@qx6^Saqe}hOa8Wb6eF=DEi1)^SNh}Vm^iEoJSigQ67DzRD|&^@X9O!w*T zy6&28dkICdSF&$H*6n*7dyWC9>8b0XNtx2U(&N%BX}Q!$hLOz$@KAP7)&jsu&X8}C zZE9APpM!oL6e!Yu(m-e3PJ=^=EH?3FRE9tfFv*`2abL*Sm7XwZn9Pdj5 zvE$sn>b~ASX&)NQSUdsD2eCE>`w#WM?tk0g2*6^%YGCHTtbv;Yw+CQ6m5YL|IH1_B zs8Hl6TnDLx*9K1y4h{AUt_N{B)ygvE)S)RuX+!BllZFF_^M><>7mq9&k&pC@To}DD z3i*~lRx!4J{Ma}hoS_z~x>c{$U)5W{sci;0l`cgLAW}eN-~p}UT3*`z+FCkVI`ulW zI?r^U>aGNHG+TY5ev3X&|DC}TgN=qO4eg9DMs*-w@T~DMW0ncSq{gJuWEW~DO3PH+ z^tS08QwBI|_Z|He9d71pR%MoNHs3r7cx!XaBP@I^(k(t)xLJ}dUt8X@G_x|Y+HbYn zs@|#$#Q!)0FZ)$YKc)v0VLjRUvGpD65fFzGgAKzz#@@j8Ujx ziOGq9M0a9Tk})YMsX$Vxq~b~ClS(I5NGg+5GO0vTJP0O+5?>`gPrRIX zHgRj>#>AG{Xy&&c;IU*~*n^6g95m0(Ix5<16sieE!L@nP&OvXK0-y<@t@ z%!!^By`H+`ulDW4(^Ix*)Fo3b4=gXt_sn-pH%*s~myO2_Ck?yxzv#c!eWRPEj8{I= zeyDA$X{xCjDHn+io5PvGm%*!nvw@xdP5yblX};m!-rly%(NuO9cPF`QE@Pf2Hx2vy z({aIZIOo@#J=xo`cV=zM+L8G~=B|vb83)q$q+duomG&z2S!#T0bZYaI#wpY3!(M%L z`BjBi@4Q<1^6Qt87p@ndy%_nzNxYZ?Dm*Xu{6X?x$;*=GCwF5VPTAx#$<}0BGE42B zxmfFy%TFcQlw35qbaKPwmdX9-_s-+lhm%hyJCeQ0m7iCA{wX*JLeG7yN^QXkqE#t*$q^Iy(;dH?0ZmlgN~vjM5{tMacazMk}Y%Iov=?UPcHQYNHKRPDTU>N}}l zq)th_oq8*^Tw3|Gsq~7@r(I5qCteLnAI(bhbLmML1u{O(7@Bb-<5Wg<`0F>B3o>&v zvom{T^~^exbtW z%ed6I3Gq|dBE*<5ms*!CUu?c5`Ib@dilY1Vb^c&}ZGmA0#um6);C_L+1sfOqq2P}N zBL#JZdQpen2lQ_#Z*>Km-rD+B8dg{#v2x<*#IcDx6L(X^NluJT%AeFEsWnk;3VG_r zq{B(4$b^%Vd`Y3C=)wtwixqySaMi*!==wG;+#EClwZMCYD-|wUxMX2#;i$rnBqtg6 zt)yK^KPSydnw8WpsY6l>c6&MTYU1?7X^CYM-%Y&o*7>)Fkm0%uWfz)VXlfx#Azh(` zC;rqwu^SZpT-e~6CDtJ1%JGdvf zK69E(!*qv*hX{BjKcpY?J&yB2&;RqM>lte38r zWnNW!HS*OsCcpl8Wu=!r^!4c1mtNm^T_vSf$`2`9Q}U-4BBriPjZe#;ww8I)(&^>W ze@{P>-X^1M#y=TPGA3kB%Cu!gWo^vbnpGpaLH6bBJK246M&#t=gmPv(mN?>_NzP5q z?aoTMHFFQ=p2%&K*F5iR-i5sPU9DW_m)t;cpgX#vK_gk4iyW{3oQt_LhjID_V2hI zz8P*2X%aaUIS`ROS-xYh6^quU{hYagOl_8S0J8i`xv4bMHPao`9n!sv4SuKJppQ1h z8NM`pW$+q&hSA1Pj8BcvjGav%n9i6^nyRx$!zN;*jg_+FEuZ4a?_26y>s!|WFZjUL z*|y8J+orYa?cMA>?c3}-?QXlr-ZZLl)WWEFQ8%NmMdgc*kM0V-0XKm)#uC#wra{d3 zn6WWG#%zkY9dnZnl0q?MW8Y=hjrOqc>9M*vZCru4d~xr_ zm5i$z_g-AxxSDbGzG+F9b#I<#Ko9n{))a7y)1e@JBT!o)<=g}p>!x}0x`dA zRH>*3_Ph2)_OI>r?6vH#ZO>SdvcOi`R@wFlmN3IQ*;?G1WIbg$YU#^51CQBZUSghS zE@>`Ik9H4J!u3p7jAxCVjcts78?G6;89Eql>96WL=-=0$*B#T<(^b*!RyHXG6`L|$ z`>8gW-Bg;euh81aiijhe#_Fm@%y29Vy$U`FRtr`L&In8nT=bvx$NJ6w9=?vg_1;z9 zWX~fij3qo{-NW5ST>D*mS17MjUfaA)x$AO0&KzfFdOdp`KRNO_Y>sI;<8#uole7C~ z_sG7Nbvvt9R*$UY%%_>-GRJ0`GL4yAGPY#2%4kWhnVY^X{m1kH>HX77z#Y@m($kKD z}M|Sy~$~l{Jw&%RAj{_ zPR!bvjWL0kNKE(GUa@;(_s2$J^;8u*#eEaEI__@V{kQ`01>@VtcZ{DIKRbR;{J!`* z@ekwu@sap~2}KerC)7@8p3p9#YeKJt{t1J@@Pr`=BNGNC4C9^w2_1Q)aYBoPO3a`q zGT*FAFeIeLXT)EN|0{lP{BQBg;#X6}oEYCBzFU0x_-gT%_?Y-t?74C}?n2y#xXp2& z$IXoE$zC|M;~K;jj4K@Hiw$E_$+0KdIp@dNom5el#(ow%F}64R=`@dR5nF+EHTh!; zV8x-B=P@s0E`gt8cE>D@SrYRJXahr7T#Mwv5vH6TGCjN{E_8>`L4N@`F-;~(_T}4QvuUN<7DG4!)-$a zLq)?({Ve@oy1#VAbVYR|m66Ip?Lqd43cxNKQIq*Haw&WvY!6$)9oYwIWpHWmF7kgn zP$)3O-_O6t_Y-l<;eFrR(7VdB)RXFd?r!9+<6h%h>2l>cS$)(c?`ZC!+>*J)a+f+6 zIU|ms<1@!tM=I+H2ImaQd7k|&duaCH?2N4RtVvmuvy54$tTmZyGb?3Q&Agm(HDg%D z$P8;nbjIHF1L-}}`?5O0n*KX>B{ubLTIsassV`E01S6_A>Eu2MOHXF!^b9jUu4eC zG-O%XHD*m#x$O6{&t+f99-1>M$L2_I9CRFaeB>PMEXXyuo_jC%>%5hDEnOeD%qwvp%z?SUcHz*p8BK6t}-?pKYIO|HuA}K1uDUuZcqUq8>z*j4l;D0{jdzLD`tH zOhpWg`4*gyITw=`lN(bcwn*&z=<>+e5wVM77qSX*XY56CyyV!YvA$S$Y*d^zt{ApZ zIj%xnLn2VCxaL@EyST1#AH;Qw>kK;buU2tQc(f|B77~w4aY|fT>`NHwS?p$G?C01_ zhuGG!g<}iFzQR&=$Lzp5M#WT&DIb#({W|)G=#A0ciItXUWAu@z-=c;^4T;Jh6&rQR z{)c^(eW<;FJ=T8GcGx!DHprG>v)hhYf3tpU9bk>O+O5Yehb_Y_gDnY`7|Sv95xPc0 z%(3QZ^Y5nLO#MxLO-7TR^$Rg|b|!pp;k6YR_tWYkO&(njH2}o5QM@LYh61osmY7`jH!W%z^Ab<_KklW`?F= z{`S!N;M!ohV42{dz;A)(;4k(b7=V3c`!anqd|&uteKy}F?>cV{Z)NWl&pFRWo<5!+ z{mC`%74BN@D(-u(zg*K?6I~@;Z@d14FMXajA+LPiJ9$rX@3UfOX>P~d*17gvW9~KP z6<1(~J*hC1au#(usX3f+oN%mmeCrtF80~27XyqvFc-LV9Y1Ari=KMw7;#kg(oLxEJ z=d90Jp0hG%Va{T13v-r&)!;|)d(NSp>mUO}JE9#mz(B_U$8vDaao)kkXpZ{M2F~fu zna;D$^Umnp*xWw3{d0fG-Ir^~Gw1cs8cPIBj_fdBV zqV+OtMB_DkKl4uYzV>E$`}hXK^&a`!`@8us`fvD~2igTr2QD+~*E)EXIgXa0j-jie z+o8_kUf~DiSA*G)E{pvQr?PLKQESnz)UMK&R7xrPlwXy`x~94t_`d=ALHZnhu6`!G zE|z(rAB;a5E1PP-=+2rtm^+&vnV*nbjl_oBmM>s3I-AKh&$iHJu}8sn7TNVt=BO{2 zJIjg6V}@vO^p)uA(N)-EXhqB_7?dNXX>7~b<*}<{A7UFt;AFky`p2z^`1au;X^@#7z^kI+qF7Y44w`AQzjrgkZZ^yqyRX#wZyA$_I+-@SyG~!VyA^w#*Iyjl28-0h`eXKEDFa!%XOA()9E|>j*wGE9=8f7AwKl3gc7D%(+dj_z ziQQ~B*w@>>hoM!nowlB|cD8o3KCwLJn+~_Q&AH|o<}b_!v);Urbr~_HXwwR2XcL&3 zSZP=e3yv`?(J#_l^%ngc-IuzE5@bc-1SOl=;ZW@$?PJY-RvmZHT#B4U_v=Isu)kl~ zaH;SQq3=TlLUEzR%xCL^n&7m+lz_+Y@Q?G4^k@2B`9}CY@}+u{y(7FIc{4pPJ)e3; zczkZB`%7kTW2pacaIJP#a+P(RMQ8fteMog9kLiza9-iOeptumye)Yt)Eg?fD!Zn*rmDG6f;*pkFgOIFJa#7E2YXI=PIwrc z_RjQ9_rBozwe_|39rXR`E6$qC<^H8i!zwW1Nr9X|c3?zsc<>b%8X6LM9eNcS5gs1S z0uv&iF(ng-%+Y+so{v%5?^st+N-3%QqU=%XP!Bu{I_Nv<@9H1u2N(t!UK!F1qm1K> zPNSQ(J5x9|vIzBq4O zMXaU|dwI-{p9AOH9e*SKPgq-8ypDQX{)Bu9#i=ir24%RF;9mt33c&1i2^sYLuf<=Y zqqr5mI0cJqiFL)qKZ?5*w>EBBT$i}kWJW<)=1w?Um)LNOCuSY7uSQIzn9I>;v8S%l zFImMn3Z9x{PqmM+53{G+o)cwy+3qlR($d<%dcd;NQpA$aGRHjCoML)nYHez4`pLM# zsH3gb+tAgppNfuIuhsX}b=Uo(>`=7qIMPMiLAzD6k-dhUkyg~**M--FouTYdn^4Qp z*5Ia~HW+5LT))5>@|v>#cl|4UOMMz&&^yjM+WXp*>={4}{)zj6dl0o?*`H#vYrMD%xut8~E$r(C{0MSB`Xt z;xrLyO5y#RvT|df^9$!J=LY9y=Sk-o=L_dcr#aV}`yS|#+bwri?u^{sxjTqjcXBOx z#=LrYwevp78_A9vo0$%IkXO)^&()QgoNrt!Tz6cz=_|d(_Z;Bf?cU+`xLxiRp5{b~ zZ#=1<6i-8M1MfE=lX%h6*UGoqx78Q+Y5jeOtVjJP{E76WrvzpM9t55Q>INGTfj0&N zK~1PvsDJ2i=tQUxOCu+-H|ZTBNVQ0<$g;>vb_LFgwA8fHYz6`LQSGArK)X}>lU9S= zy3w=Rp=?$HN}keA*FyKb?ps}&?xn7_zM6iHaBTfG{o95l!!X0ghF=Z)4Ix9&(9+nF zotKsw9~kc&OPWfWMwv#M4w!z$g8ZiD=BDNa=K1F9>@SpHiMMnIt1W9Rcc~{7uokj* zv39dAwJx(>0$MgeuVt%g8(|xUCtqW`NMAP3mScO{UdZ0m-q1eSKEVE^eTID_`w$(n zAD|L=!T!*G53PM=ciOY5KIGYbteNoeuN-@Z{UsUL9s5oDY5Q@i6Wi=d>6I(r7(CV@7v;J%y#NHE8R;%?_%U(+tOJ_@#InzAH{FS+& zxq$gc(-x*LE0_)#_Ze#%s~Qg&_8KY~${DunH|yWl7t}A;eXUb;KIKzoIBUx9Xxp>T)lk; zi<<8E9Lrfu1z{`P=ZquO@!AnbU#E$)v2&txf^#p(aXOqeiB&Vv`0M1~C3*j;u(rSR z?&ei<)j+>jyS%P|tDk$I`vO@)Wlwd__nsd-Ca>K)0S=VxP4Rx<>+U<@JLjwDujXGz z-QN<32}s`XEbuzeHu!;B?@FTHH7hiiU2#)GEyHcY+rzuV=7^15X@^D55R;3t!}3&c z8@#8jz<$ABX&-4HYO5+$lzGY=<)QLGsido@o28oxL%N|Wp)aogR6kCCN`F!xL+tNs z=wsMn*lBPX+=j-+CdLKEMaJ94JI1$7MNLCYADebl({Y&cOf}4P%#+~}ht0>>H7;bX zZK-dO*s#}fz>;dovJ|(zW9?z>V_k$kpRk^`=2&yBMQtT)?Q9)vlWbF{VQ)sKFWRzf znYLJajJ*o|-;Vb7_7V8p+4hZ?gYjUkqm(4|;;Spdfnfu;ubDS8VHS8*QU)V{CP84QvK@-c{>$>vHQ# z)#l=@`K;G1H!WXV7FwEEno`5^FkQIA+{@h4Y&M(B2iT{zuc^05$7cWASo_@4*xdNi zkZhRAUc7G^@*DQ(cj}w!8<2Bf(+$w|)uk&bbaXydSpKY?0km30J6rQ5J6tQ88SJGT z2nWLx!V|;UABUa<{|R;rb_re%Tnw;XYTy9*A|uxR4fJ92frV5=^HqMsLfWznb74JP3 zJ+2PeVw=gH8&raNrgO~BO>*APX_eD8r(4btFePVd&IpIEKeL5oBJshgTuL+ zJSDGvUPmh88}oAV9C(>gTWWol(^ZT=3tFuyWaV5h_};AhJoOA4A^#9Gwa$@+nHI{CwP>rU%6>kX^J z>a@n#Vwr?1Z);|2N><+8_A!_MW`KFN`D7VOY>TO+%1wTs%g&@X=m$%#x}LRXRB%x`-!&2;hQ7YGEhO6R)bY7VPrBnB4IC+UCF9biYI z*1CU`N6Hvwv=Y{av1r2;4Xhy6WS@9Cz)y$UW=*H@LbdiT5wykD}LZB=iE=Y?kz-m{md zo2QT`!SjICqCdF5r}{gD+_{?D;x@P+yB@fHa~+^+wTv#zSXVbVMtxUp*E{sq_U0G?9ORi3WJ`%EPcaeYn1 z`Nj3K>%Qx*i$a3CHtUNwLr#ykFU{+aA8_Spa2UoX%ku#UaI!vQ5YFgQ4PE_g9mK2(wF_e!QEeW8Bg z0pYXZ^WpN5_o$A4%P9fDNPo>onsb^9a=YYv^|xB%26f1E>ZWHZi?=v z?r&WMeI@-@`g!_?`p5c8hALEVXB%#UBE}-d5$sL2pBV0i@7FigLGn{gf0%wZ`AoUg zbt{;Mn?Iuau^QHL5l`xF7#7c^@DzC6LmizTQ?y|Tn$>1{h1*`z$EMr;y-Of@9_{~1^Rr6)@I`dlIf2g?{ z`_%YNZqsqoVRZ9zSa)4h$mpRiw$C`0Z}6_MnDIXK&xMA$hWhkV)Ag_PtMx1O&Ge1+ zS-K3}YPeftT_arzzIhp_4W4M9Xy<9?YAbQ=WEc0D^lIf?gWHi?kr|QckqVLW5w?mB z&kN5D*9zBUU;0;}??S6XZDHT)N>*QOH3R<{J1K`)2v(_%5Nv3H}0f5Ui&AG1koCM z7(X=bGVV5pj1gl8Q%8LFdebXYim4L4y9wrr=HG!AovLZ6g`RzC*+Cxn1jJk8tWB(q zt)uartJve@sP(Y*5q{Ng^;z@T^5MbD+Zx&$+1lfWd)oSt3l4#ij|8LP=A-fI!)*h& zx4Z2_TN}J}JzITSS=OEBqcR!bRi0Y^v7Vv^v&p*AI?ehy48N!??LY^iLiWO14E%!kYe`LyHBRruU#rc~1=(?(NQ>b`o|huCNzV{fD0s2Fz`wj0`k z41I=v0eAd z9>T(Kk#J&oPiSYT5&Ziv=D>yo2L%1hX|4z?3X~7L6S&|%#mct=)Lc`O=syFPd`sjPif+}i(bH_ivLIdHvcXE-+m>a4^#`(2n-E;%r02p z(2&CUyYf;B?5LX*(#qoHFVC9EU9wd16TZ`C=Fijhi@&m+?! zS6SyEXUUAye5yH%$7a|_`w2J$7}-@u5jRgMr}5eOb;H0B_VBgoZTg=2UQA4G*XL2k zWK%LKnR5)6ffQQWgN5Kch#14h>ZWR@VWy#`HKtXj^QP0L98;#L5bGoBvsS(@Z1xMH z{2KE&=3mS|o6ng~(?R+hM)T6_q?-^l2h2K)0wXZe5ye-@{+#wt$O6~}433a1ZtP6$k&wGfX1A>Ku z`GVI1R|0d{f4K?#I^+-dkNN+=JJ0Yp2R6Umf5&&1YQm4c@kHiU)YyvpiqQuPc<;hH ze)k^st_NQczsGpTvXZc$wHAn zE7ZEva6>kBC9dS_f;D~an~qiOfC>CfB}3=0;;)V;9pYc@|IUBae+_SH2-FWW2uuWf zK?W!nEKA(^n6o9e1z*FT%7oqx4JVV>$+yn{Y^xXk6dd5(6L;7ft`n)p87|W}edGk^ z0ckmjqzRF3mgbn|1T~MKrk1w0b}YU39aKJ^YM*KID+QF6N-OHVQ4>vmLEe| zEXQzzd4!$#(OHHW%q4VTXU$TET)k6&O#cU5=_`FJeQT=VHvJ{tW!+reJorOXsu=-g zFI|SAfYB)B3Ol_{W4ffGww(4MxyF3DLp3>TC>cMyII@rmd9BEca5BDj3E4?qIK=DF zx1n!B&6pQ+1|7jI!Oi4;UGXZW;PJp8NO^pqQlLU0&Hvi}6P{?Of3Uv{HNgyD8dcx@ zbdEmvz0Vw4e()M?Ito^R(d^IH#@pIk4nz~LU7lQg;bYHb&n2ct55p>U6U{d>&n7Eu z)_~P8=(SWJHhQ*ue)1gf{OUPPwfQg4P0uTUDS6ls0k&Pu`vLfrPR%OsYNG#f-ZjM= zPhQ%@*Ua}B7PHN_ozBfazWn}z{!ac6{EPfc{Fj-DvIU|8?E{_QMc=@V9t7T|x-$gL z-GgQNf}vpZP;0pDx1oPnuU{ctnO$9`hc9ueP=QEdWC-<)UpaqBPA}`gDNJiQVdteL zRa1pn_PKUC-MEWdyArF&nz8Sc^~yiWGo=`Fb%S(6benZs**)mFt}xxa?)nem3(L{M z3wobEpf68WT zkBsTY6n1WR8Use3QELhtbtWxwSs^lOsSJdSei*boo@q=ozF>mrK6R5nne{x$o;3T6 zdyJdNqn4qU(~Z+qo$O)k&O0_mzbhIG84L0$B8Jz76twcX;Q$kXYr%9d5HvM3Lpw_u zbOycQnLb&69DJ`|%kFFA_3c0@?9Z?B!jZ11wmBBQ)CgZ{hdbR>?oh@2K^Z|Eu8LAg zacf;n10PZSYGZ9f>Ju96Da}cI!gNlus?XVPKCb+4kxyX???oy`QrYQvGw1^ffE%Hk zOk6DtHD@1WO-KnH3my+n34R`|9jqJl2K<2|fun(Gf$4!}zy|*I-}e6i#`r(+H-Qi5 z^C$Sze5t;(aN-|)8>#Qj@D1_}#P7E9RRKkOZ?ifi3Z9|$d6`wo^*WhI$Wd=DZys?x z=r#F_YHfrueP1omj+j2!H{ik1{I_M_?xeFdvtqsw{>@rs$Z8#o?VYP*-PJBKT$skjb1^g zVVC|ixJTzE9fb8E=GdaBNGBOegKCDVhI;h2n}C*N?QIOL4Q=_^*3gRI-Z!*Bs~Yim zO`cc5P{vTqP}q=Qh(^Q0u?D{TU`ycacl2(0|VR_Tv*Y;*%87C+Y)yvU_~O z{kos|v~yX3+m}yY1&uT69xC^g-NcS*e7|-|Yb6nmlcIgW?zH=~v+$VhwXL*;s1H2X zJkjjY?BwjV@tS7Lr$lq^-+j*M+Zx#z85zT#!@dGI7UxsDFN6wV;&g*@w{n?*=If#v#TOswzGUtwRr zm--j_ApSI-j`6#OcgVPFp<^wHquuBr4l;}e6TlZhY7KM2*D4mMKj*SG(*KU%Tc@AKtVUn7QEY-CWqqzLS9cZf zw*^cFZCR1Vl5<^#l1U}xD7EkTN@t=)lJd5a%--2MwYxb3U>wn;rq)N_=MOA(Iv%hI zkn=*%QA?jkkD?8=M0>;J#>@8A#66 z&EM7Ej;!Q;e+%jejq#if)tme-_qFFSdCmZyJDR`wg7f1R`xp8*;^ltz?;{3ZWKWeR z%&PnR1p@h0z3mj}5Ev5}O{HRSU|-;uz-=_r6L1IEDwwRM39RyCJl_&>o8N+unYlEE z%$$%=h20iJkg{yJSUw`T&i{P5Sqm3`a(fGo8Oa=^(jEby^ ztmP_RWJ<#wkuxDbU~*t4n)!=nA6EaAUUUr6ry*I;7QgPaXLIzlqu~QX4?{0QKQ+1zLHCC6+YtI61G&F9Q>vZujx7x}c>cTe zwDR!^5xs&QX6SF|Z|M)Bhu@)zpX;_)zYr<(4Of9f8N>SUBWf)Bk<)_E*P)L>gF+2M4e%y~2%9ce z-Txi@opb5F53a%Ed;uRD6l@o46RZ)eP93XgFbdE#4P-G-@GOuVxC_`oC~yg!51a#M z!8v}vKt^>HZ}wN=};Nf*9~EAVGj5STw+QtopnsnoCjHz@6`>vn*ug~Gav;-N1`J&BGovP z@k6>QGuZL%M||LAX>o8iZvjs4tjGDB1Mq}%G(Ty!Yp!ViVo5}L#$h`x*(e=~~L|=zfy&9_ zYkr@H_x+N`rs=-WP1H?*!Hw1p)_p`xr-!Z$_4T@-jIOLMA2k9FD5jQ~s$5g9Gx2ml zS*5JzQ%+X8!-uPb7?6s$KLyr+Pv9O+Kt8|$jhaK6gPc}5SJR!UkemT4CwQNVoQy1m z#q^Ezrt(=f;wN{MSJh<2?G zPJZ!Kx9NVu=N)7v=V_wcpYX1Gx@TlL9EYUK z0dAd(y}A9m2!Tk8PgFR#S8n1T!@3}kczK3Xm&ID`S7hz~=pJw~-gVst-5K3s-EX>` zy#9B*(>&gBJi6KsF3?iZ^ek8hCV&p0EHH9b?DJr9@O1DL3~E#GtKe*+*if{i zEo%m2jmI=C*hA#|G0o{CqC z3n!>NZV>BL7OJuHVE8d?PU_*6z=uHk#6Ly0N3H=mUp$eSiAGdz26L+HJgN*kIZ5~` z{w!0IrHLYHRG^2^M%#|7K7x+_Jnawcr*c$#43BmfpO&LF5o?MlMez(ZVB>9IfBlqk z;7cU=E%;H{rpDScFhY*EAfNsR?~+Q?%2Ptj02*|9a!I=`9)pQ+|-;`j?HN%xdXc+kVj5we4wM8h>`(i~+hpQSh6 zwgsr5RHSyDPoW^D<-k|9M!JnCIiH^52+)>qS`Jw06{KoX(5wrZZJHnP^IxiGJ2&P^ z73CaenR$D_UO@ zkt4FyoBSqxv0>?gQ6o3=_B7n2hYQpj=+wy~vBm+QNu+6{BrtH+weXM2>_7H1>#UcN8H{J5qbIY; z4Oy>LGW-r&V`m;bmwwknq<4mss(%ixqI)#4AX+wHWnu<^-3k1FV^r%1OUqNaTkszr)&$1EW;zKO843*;VEAdM8L2ERy zN9aTJX&9boGAwWb`noQ(N7bb>@b`Oo(o8tKp3`%aVDZ(MBx(~LfX6-7U_>c5r@u3}?MpONfy>wdbhjNiWu?^=jjlIHeqD26~YL zj0NH!z5_pllgbHnbBDPm1w-i=Jw2wpkds=}b51b4 z%?>;l@JdJV6?@4@x8XH5(4}6@sp!kpI^A6ABVVF-v%pMlGt~dj4$bDiIplPrAB%bR zN@}s+1F1Lc4DF`2a*&SJ37Gh0-scV;@Hu*u6AIvirsGVo-N9pL zGbd}Jj!{HYoKuZz!?ZdQ_l9ad=Y;j;*z0z3qd%yt-PGLDyvF}C;;G>%S#3$|o6YsL zt?^vF!DuRO)4(FIPWwG zbD~lR&r+DESpeK z&~8_GxXc@j*M6q$&rDJqYGBp0Rkek&3%ypSO{cznleIv?&DT-!o`GNfi2S7`Ibb>T zCrV?{a99Qwca84XUMz40*KYzA*#pb0i-o=&(MJ^W!dF=CRcv@)_Oi_bcV?2n@X$BBB!!6|T#M=k@llvSTE zf0qfo%%>R0J`+F*AU>rz=mtI}claEBEj^Ge;1IO}iBrkI3u4IQ-U0Q%2Vhv_V|?y( zCS1N{h0QLql2ho#J-&ISq&=E~ti7qAc@H+!l*Zf2^wu@xq8NOOb}Yp!bk zp~@gb`J`xS-t&(39rUB7wk7C+4;rc+LjE^i`=xfa8Y?zZgV>FZ9Mb*<=Qss(zseNC zT_pKbn@%p}WV*(WkJ2g;tx++sV%16qA{tGJQ}v)A9RDrqoQ3#*LGCHQBMCesMzQl; zGk>8l8zrxh3nxn_mOg_q-_>5DhjdbV0&lWUyOnm%sc1zzno ze&#tf_FOoZjv7<`@LS|y`n6Si?TO}mjOIwaW)@gP6k828Yd4`gyVU&W516;~^)G{)Xwe<~ zz(aV+6WHu?Wc~`tr{Z_g@jjwg8QL^%sp`MexIcwwyyTgpcTez9573d@yprh21!Cn1 zx;MX}EuyQNwHtZ&Z#105A-U17F}>=7JSqBiId&fJ@*m^INasYTmHy zQfDRpBr(@jG14&77*ErMKI2gJJ1wN{u`#k)?KxhchV&4-$)<9t*O>4&Nt`H9iL9a- z6Qw;k<8y?{nHOu8sWVIaH3!g|^O`%%ki8-vv9L{Jf@c;0?_jf4fz&zMfbQC^s(d6r z9tUrj1V5dQq&ChhTPLNS?NUkOsIFW&lIFtZN0*U(~uMRLr;VPmJ6W|3i>B=r3ZRZBGU=Hz-f5QS(VF(PdKM~oKwURdB$PYKkVf%cTij2#OsKU zSj_9rM%yO9y@zQBvzoO#8rhPHRV{SpU9}%)L}POCeov`EUnR5t9o^o{4DVvi0>0gN z%|J~*IDRWMq$*xC2}WW-Ke8i_$g?j{?cW#q1&_N{?VU(Xr#~4(JN$87PzJD_k{WY7 z$Uy4XkHB>x^&a5`d%%xiy{Ze}q6)cZwOzT$cF z!5e*8uIiKcpiOAl4pk@is_%1xIphoY2hofB@YCm<6_Nogf?);8i5Yf?$7h}SB?gjyl^hMnnvh-_c;UmtP-A94u%1Xja7=77(@K+q91 z0Of%2G>Nz3KR9Fz8@i4y9aA~o8dXQ;V`-DswJSZSd9@;P%dApGrVfOgBmgrA6Wd+k zJT<<&L{3leAu^Zyx4PSltiJveK6#aF{EGVXPyR3W-2k_NJog`L{{=|L{+;2Ru%CFK zi)dLnW5o;PixdH6(a-8+Cyj^>(qoZY(IB#v(e$#W68Glf6;{w^m3rkaz6D2mld+t^ zGh9diA4XC@F4a1XCK9o8c0oZ_m>7<<{K<+Jy-Qdn8+U0PoE^uxq#P}dc_@9Gd$KjphokIDD#@iUj`A~$#j8-3@D({ zA}7fsOk|-pBEHB@)_cbM52Dq3>^yE$YauLEM7|m=8*^$H%S799$U;(8pY?!wCdo&n zzIL4c=&xWqSWkAcT(gvV+iZNo1U299#kXn)_mugOil7MfH>n9ksF-K7#_kF6^g0@F z0$;iZ$TeI7q_#2!48W>Bzymjnv>-dIg(S)msf$En@X~rbhA$k%Ivq$b1&{Frsoq7_ zH^S$z;gfjyKf))l>!U=I-^0I#f5Z15#QPtlig8f=_dz1T?>y@m&pV|?giC11b@g=~ zp&c(^37P1H2fa}KWB+eajV?tMtqMBP7<3?K?M+8u1ak>fz3?Qj8jM2stQS!r63z0<@X7AM^+G3!D3W+rT2f449wm8oys`3MwK`p>v zieC}EumS`65TRP*gTqMOK3$WB7kW-Kc!>7>MGx&VHJy{_=5J`|Zp~IW2uTEWHHJ zf#jLb!cSE^<2U)Y_yXaD=^z`q=iy=efHDMd{`T;_Go@`}fK<==US{k+dEl&<}D2M$QRdY}aelWr}&tnE44XHnYN8TnrURLFPMva+2 z!x^@6-6U6Af&9NFPn`v?oPrj7${v;@@xO!NW&L0iA2RdX8Q$I=Ym|7=jP=xwuuYLo z9Z(DJQ5{rMHKi(%yUKqdGL*+^f;!9<$=`@wHwUdj2d20rH|`Av;`xVT>ErkWQ}F)s zc@{(#sWpiWWD48y|G#4O$C30Us_M6?P(0(iW#a36b@YPb! z&Qd!;(hYiZ%jDh+9!(=oyuyM-1D>eSE*yu)ii$UL;2-%et<&HHGnTaagrMt((jDPX_mp@l|k&>+>7e zN#f-XKCjA<*dznQnPh2PsN`aD` z^;8@PS15)@cylYJ-Y1X9GbBGPjmMCD%6%<4I<+)n5 z)OuB0oXPcn~BG>xj-XK?EkXSAJ;xjNgG6`vZ!Mn~TKbeP27qJ7t3O>;qEP4aJd#n06 z_mRc?4!b*ngwGSx#g9wwE51A#CM)L)38!(B3$hRlTi0pqTm`WMshvo?FQX|<#o#^U zUL8hM59ZelKi`^b*oiE=JJ+)h9^fOq{cya%Cu$95Dt=Y`zHkDWBbS)E3`mbkc=lTA zeCv?V2H3&|u<^f;-{l@*5mL#LQ&U&*S1Vu^OYqwZRE{pMJp~9?9|gn*^#NUh^yHg@ zI-oM2{2h=4#D|%%Zdy*{zD~Y*3N^*YT#egE_cGV$q{@AEF(I*q>$f)YJ(@GzwD5uRN9xbP^ESvO=Sd3Ps%b|kLK9Bn5x!U`J{`F11Y>Y@6EKInw- zM5)<`u87Wv?tBhrkzom>$gx?(=*lqn+C;WSYHdXPcNZXhcK{d)MuKr*0@gg0F2!`N z^DLw|N38}dM2<_ra-{JM7QPxUzgCT@>r^>z#OMBi*B5LCTh!Z|-#4p|Y~bg5BrI`w z4YFOuYshO!-nbAQk$HeG!E`Vghpgs6N^~n;Cdm;D!NL~E$Nc3qOdNmoD z&s1f;oKLcr&$AitypxK}0r=N3GEJG`yoU91fF;s?igy|`pyAJJj6QGDn8eEY&g zF{yV|0M%hI|JrM7?6ngaTX!IKGLR@Zl&d-t+mYBk9?12UzLZ@1nMnOh%3Ze&d)M}u3b+N{OA-~H_?*B@SrE}HH zX#p&65!Sj454=*1t?S@_5?_T2O5aEP@F6_0#97I$uJ8#Z){0(AJwf7aHumdAXTxwz zBc9661bIHbv&gh0KCB!vt%6LY-rtZ2Eb&YFu@cLA5QqEViKT8a1j!D^8;`~pkEJdn zaZl`d5|Wsrvb4`tIg6~{+&)+D6@MzS63#BU&u2(X{P`%fWEi^gMrQrV_CF$nF9jPI^63 zum2qgN0D4xY*y;`o4K|dnP~W4wHA@$O0XOWEJY5BkcUL&`KmM}2NQ`(&EtP>G7~+Y zN91{n_$hxU_9w3+x!ZS0Qr%&cA`wPNcq^ zia(awO%IUoE1WV4i6#JvMJ0e-qsmBBbiE;HjzrrKyX3m|03y#p;A5`7#JD$pd4d}E zzCd;}uu|c*;+^NJo>MBeZy**a7AyD2{DM3~>{;wm>{~QI^g*O7_CEqhUs`5Ndt#Mc zu*vphy|SN>_*s!{bs$`c<5cmqMUiSDRjw=m#slezt0DB)jmORA+oy09o}t~3)O_L^ zS4cRN)R=@v9R^~PQe)kXeQc-hAlF#rD)khxAIU-2AcIw8D&GLHt>ye&s!B;D{eQP* z+$WF8bH3sEq7mZPC5Fq~%Ntu1YZMQ#i%7bMEPX$p;5W4E2$DPjzdwUzUR3kBYed&u z_}cq?{wI8o7x)*+`5fr17nz2TseETE-iXbP@x299xfVyRG9MxSw<-|XN*$>wS5f*A zGE*YHt{YeQLsiDTRX;cwyZso;m3qS{evZcGBv%pp8_UoCy~%xImGT_PvBjSbDH@??b@3m<MY{hy-dLlo$2}I`7H(#ZC)PJS9j@JL6e7>vyw_gd^M9pzn$IK| z%~dS(rkbZefa^U)D_^0TnS3MZfB1-?5vp58!=R_GnNm^r#v7)DWAjjU=lg$%;gWcadZ<ZPg~luSpCQE-AJC&RC1ouB4_dF;4PC;l<*EMYb}p`Ub+3#p2{9 zk`jpZiNwSLMQXiOZX=QtE0kQRJzDd|4qFht8>>E5YAF%}#9xTtkhmaRM`Gq1TeQOj zOe)`z8Bh=YReTWJ`f>$cBgJGq)MI$zUHHUb*yA70cu}fhy^79Secu>h)WztWwj5m_}KR?>@KeqP) zezZNBB7U?v@85_|QHM_>ezX#PqAdPG?5_yk<1M^MJl;e+sY$iK2o~r=dU;4sd}$ir z{*@XbA9FR{c+;DzKfQwdr2BXp=6V9@{h?kTv_U2qIYj> z&w)>IV|(I5Wp%TW?`z|G$EbPOTX-UopYXskKzb?F)Rt z#8xCPm0Vu@p41p5R*GH9?f)PwNirI-+Ai3ycu29c4tPoNlOijLdg3c3?$uTGN8+;d zu|%h&Hc$){MrsoO5|CRo{==$zPCXG&VxXVz>B84IRJ(i4_kRxlQ90`a)i2$|_9W6s z9pM~T?-cSo0mS}<>l^~Ycch*!G8F!?`#&-i+Y!k~B-^h3{P%acSF#7GNWAfpzwo!> zCl8oY|XlFNzTl>Ab->%X_Y|M^`W>7_oa zC(jniN#-ZM@r`Xs&rRlbTA&lcRD?Ix;k|3{8N|jaAg|KMOKMVYRzg z`$&&YIE!0lEjf6Xba=}vGK@FOQKs#s zGkOplQ0-6TC)Zyr=YJvh?^mB8&y#1%s&mO)nB+Y3Ie%qvOlLgeK_UVh{y`(5bqCQ^@$Qn`xAOeT5?b48>p{|;X0O`MZ{jMTNI z1}4{0{FT_6$WQV$u{W_1sR4<-yn%FdJMwS2NykfW!Z;*uiELV{e=Gh^BqTAcA+KEz zyQ=*kIZ2J_JylX=_%x;dYg=#PSpuIsTK)XeQ_#XNrRL~UIc6^Qm95H4YLXo2gw{UA z#vc7wVltn71KpNbA~HJ%BuA9%Dl!wP9aXJOr1pPu6KTA`zmgH@2-6S=NpyT;N7B!i z+(c$Hg?s!fC&|^X1BtKyauCT^#Ro{9BeR?$C&~3BM!)fe2Bc*D|9oN5|JYV(;zb3n zRAn@~I#;f?YF~}Go=sH=y{}40a=|wqQ8EVcik_R^K#M##{a#G<_PBy{{I$!JD>WQ<+B@s)LBGElCMjxMP!r?{`G-U zb9qcempbI%|Fx<&GP;b6BsY-kK=K3WpNLNsN&TV9>R&4p3H;wp{H5658_SW2rDLj9 z%HNBP%IjTHd7-fTe`O>5@NcZ>p2`s)^SOj$NNquCWg;W--*4iTU(LyN_>2G7-ub=S zl3i8U+tMORnhv!2)oRjF`X$DYyu^oy3L=RAvZ4=ykQY%=TE#Yz1Vbl8f}NNcJG#F5 z&d8jrcAaz2?OfreGj~yY)sIzGYmG6-oO7+(=iXmjeuHs2f0z1^)pzDge|@3x>1DZZ zF8gJC#NPt&J5=HZnu0I>9`j2JQ{IEan%Y8LjPg(zo@`$^2PZ_lKUm+tx4wDL$ep+& zb0=R|_VBqQAN=g0W!|mgkBOuF-4yRA$cqhSIgev2_Gm=YKja5UFi?ug>6@&8@}yN*A;)ZuKV-j>c3np zk@KNZ?oK?y+hQO8c<1N-b!q$GR?Dy>a*6*~?C?8-?=Nq#{xIl>P1s*)=(WQ>8K=In zmN%Do!G4M3Us!m-3v=6eBQPaa$;ltxc|4*PUXN^_QTU&%?X1i^l9~VU!QLM(mUzd( zoECWl`6l<~8Oa@Z5Bi&{6`#7(4zZKpDZjEt9>28giE#+OnP8rvc=^uq=-*zfFarDc z)qi+l6h;R4)+5U~h9_qikQW6t4smW>lFh#6lx6a-tK%r_a~@82zKGZW1EyQ@AK zBQqCd1YcZtA}iq67{r_3UjFnmM~+E8#~A99cX}Z{uK$vG`LtJ;T0V5-JIvcK$4U;w zJA(gQs$uRGAE9Qx{$p;4$#8?;|GPVWhz0l^axFX@*fQQ?#sQB0;#g5p7Pj$!a)LgH zU0jLwh-dt5B+-q$gfY@vODWg|_F>M={L?#&5n_#g47*}(5&gpn^Q-s;<`~Ik$&uiL z{QJ$t2zp@*Ox$4{jK9II!8P7Ye};Nk^lNB=c+W~M%~^PYH8|uQDn60>k>A4!xjwlF zI)x8@LxKMy51@U_R@=y3!#&zVR^6~B+AKyCSD|2u7^0(K*_@7*fzh5Tj#*VRP zVzhh^8DK z(TvuQ0{8`<3tC`ITzdHYx{I1Xd!IQ}h#DD1^Cl2w{Mu^8#}^YsJZ6gcbsIS}vqj`( zPnJI3TYUWY>f860K9ZX;2bgS{e46}>@hfkW$*R?enKg5RjtDDYQV{A(UWSw^U2Wq1=1#M7e@;yu>QTNf-Ht?Ua&;+v>NeXiqb z@^J3PefjMKPtixcacIJE%*R%%e&w(eep5wUXU>QBdgPM4uO>&PZ^m|WFmg|RpQkpA zBfS3#4~#58P=yfb^;*OL)>`=04-toze|ZOg#4lWB06tX%;}lq6R$SjC3tzj7PieqG=8t{+m;S;MB{HpJ@Bc>(4LdWQt4>rYI0Q3Lk z!u$i|_~Un${neO-Q42XS5tV!^y7>D8L+tsl7bp08<_oZP^dTdbDgYkP0kPWH!1#k4 z!T9jjaeuWyE`=Jte)voBDc-?2c7z9Jxfwsg19PPOMWV3+-$b9!9Don+dGO&N_gf1? zbpf`b&-)+tmIcg1gfw|8g>SC@FF4Thg?I%~HBDW*|)-Szw=oLNiKA+!h z&~`q&XMzXv5^_fJdh`zu%qfDySC^k=1i){Z@EOEYJV?cHwDGr#i|~Q9voI%M$u?ZM zr~>e3oDm(sFm{hM0g3eq*huj+skFKCd4f zd~CIW*%hM0t49=r1zP(HOATa!j@|ja2|TC=^IOJ;_$J0)#7l4ipJ>8p!R!>4%&35@ zhip`g)d;-EjV0L;=c&i|g)3pf@gDK{?K=+my$9nSBSUF{e|v)bg854F@}E00bbi&Z z9+;bWb@kU6@zI6DCl((3s-)vjqyRzuQgi|KU|tI<>3+yFas(gck9IC#LXY&TcUt)9 zvWVA?*kF|AjU#H{ms&3^7Rbu~XY~ml^h@Z0aR&2!U;q|sg7L;z4y4E}$!pLB7{UaI zvXJ+<25Wv%A?A7?J&=(AbrB83-?$6|aDW<#&Sci#URvO74T@z3^81U0@W7j!pI<#< z)WolB$<)II?{SO~_y)!p;Pa`qBvzmc;sq9sUE^0k6^)!%jQLpm2&wc5~M z;j>u5o|SEU8N9)tSrK>IIY58-qIcHQv4zA0#yedJ@2$9S)&lR)5~ImY$eEbW$0L!; zzj0^++{m58U9|B^Dg$-Yq6dl>G8)4UOL2ieB1?r|;xhh-yjgE#Y{plTLxctW5jpFR z4x1uZiWc}yob!s`S}cIXH}3Qh9^#vrA7OTwzy3lO|FrN`8{q63%)vd#WB)9LKN`d5 z;rq}XI)H!d039&b!EaymN6hUS7ihmZD{oSGBdr#AA3^R)zJxDG&V+>~Mqst231*B~ zP=?w-ANc!y<(&2p>fny|L0@3cC?U}xF`4l`V>jBw+btpjN+3si>4*v_fvk@_$(;4w zBLec?i}_u7AU?z|F%JY{@lDt<3tlDKKp*Et+{GUB!vJwWKg6Aj1AWmq7X#ryC15S& z6OI|;i(Wo@MxLZMVg}*E2Ls?AJ%B&&Oo$PnC-R~mUEpo>I$As5?Bl7ld_55y!J15v znI;nGjnDx+kgxHc3Y#E5>K+Lm7{B3>$Tcc1;FEa&k54i-FrNSq_z0{NpG_W#?eZQ1 z|Aa>gA2I?buJDtEI*iYmXXIM$z}P_i6ANHK9gsJpOL9~q0v-u_fd|@+7M`r=W?Ya9 z-h2G=>Mec7H^~OSkb@86H8~TSU~Gq3lY5gRcl@IS zyph=ve-Y$(f&7kqo1Tz+!vl84{4D*Y-}nLi0r8PJ!Qz4_0T<>@a=};|bX|%Qkr#bx zVEZy4{)`LoLi!<|0q^=Eegy*u-&rjpDiamd0y*}NR{OCf=4bFo%+-W}SANU@*-{i? zj41rE;8F&5UHa&r$?+Keiu1AqBWgeG}X|FfZH-ed?hmuH`O?$HX8aQ8>^W857Ko%#R!| z{BZFA6GVoW?wAM{%rrB0AU>c6a#zOGY65Fz9ATUwb|+e>3$5I5JWXHK4k{uBbET0$ zAEXY-6X}Z>GZU9#fjJlEFqlt5!}=ujU~Hgo*c!UunIJ~Ug__`3XUw>T3#=JFiV^wX zdtcxy{wE4h1>~jrB9uUGl(<~}h?y@v68gn{_@Hal;HW{5q)$Q-Mu;dvuY}i#X97v^ z)H|sT^x;xlIf5rL8pB8NKxX>!!|S0uasqM#;sJiq*i3YW2com_neoDtW5iG~TCari z%~?wi#)xPFza9Ss7qX#M!-$J{zwFdE=VJfSfDA+j{IZh#)R=%Ou?Z}LY&vnl@q#?) zmr4)V8`^j5Kzv|4ot%j`Gvu&DZIFv9h!xQV=(@z_gSWPyDB#r<4N!p*Szi=yq!#d( z=Bc|D77a(f+Vwzu!0PbDr9ByNK$2p0>YpCda1s0mG#28;)&Kpha7 zlA~s{@Lx-@%p<7=Jrbjaor5SMF&ahSmC%H7!rVy~;+a5L?-YHcj9S9UnG0hw^LB7x zUc?j8fw_@7AWvoPf^qZ9OTVQB$8LJ1MCs@O9{AT}&0Ui>bxo*>C__&rzN#eOdN6UP z7U;8bJzORxM+d}ZIoP#;UL7wG7ntKVM)R)GDE;!`chv*dNA{{7@DE_)I6_S%cTyL6 zDkBEmgdexCe0XC;Nv>o>(Lf?HF1NT=4%-->?&3RPxsS@-@DnSlV z0ybr)L?({4#Vhql%{U_CIpT!A2@bGhy_1%WGWrs|qz<)X`|y}(91fxbG)TTilrm4{ zcZbX&W$a8`$e4kDsl+ifwiX_u2C%>?@e$Dkz8mW`cOt6FNMZ&^pBFL5_m~Oke@X)| zT@jgan&SlWBUz{%2`%(IiR>HOk_B@mV*`31I_j735h|iI(RES2N~D8(c^K20Pn(reQW3aJIAd9`Yy45<8dD$gooruvOvomv!MmYZHdqHNuQJ$U4BU(@Xq?C zZ~s+E5>Q8u`d}c%m!?m=6&L$OICT;Q%G*kBH6Dg3*~46VvobnnQX z(L=bv3q%tYBg|jbgfTnOf_RY?ltsEY$~nt$XuOeya3JSrf8<=AV>ajW&K#h1dZ`-p z1Eq+Js?A+{tTux+Uc}CWe(e_n)DHutfUwYcz#pjtBXb`wFk;waLt-?2ga>j$^Ch@& zt`Ag#4_rhSc#*Rqh~}i5Q_75#Rv6iOS|ii3yGr5*Nb2Sqq8M(E^!a zd{gF_^c3Zv$e&6VXv0iOUj^FmA>KJg4eGg~g0MjRan8a~LOfD&00Vuzz=(l4J!bV1 z8PGyUDAqUq&vPd{hRwqYE6UgYrj?nTrD~=1L7a59&d$ zl=z@u3J<8l+({1NpTri#YuWcWo=B_@;yy57MCJ*qAS33|g8m5A-k&EK8yq*_lZX$= zm_#UQNd79KMhfja=;M8&5=%MYe6hg&U;s}f)3R_C5#o`Gg*`&=JYae8NydiKL`D&@ zUQskwoH-G1Vux05SqkvlodYr>^CF&{cz{CVkL17{scS*6lo*{TjbEzV6@*{|+{!=6 zNckyZEsI!Z&$42G*K?m93-m?{Ovj`nTwHxhdn{ZM(M#Di-s)Lhd2 zJYaq0mqf)VQR9eWqj1eum?;+YJRIK_yijr?o}d;=2Q^ZNN2w7h0>z(1JS~##iwT%9Pp86<*WzrQSea4Fvy01hdqN&3dG+2XfY~haMw3AE2Z% zz)m{`S7QcSSiVSy6ZcZ1a4+<|XQIK*!L1T*{gUJ8D8jL{Ovr}Wt1%mF99R3hf#4{* z$!9HPB;Rtu8CUfb>*qc!odurDl90~A00w3if6W4qg$K^(p`*%2tp0xg51F&$# zff-VwLg(QysXLEkA5s0z189hgOvu6h4UWu#ifd3V|0PGk-t*SxKE-eFuiWS%Ey#jn zXg!h~ga_hbIOq(71>=R95J_yhTX-0tbfI3~?mR>b++QvdnPU+(x1DSi`zbxdC!M)S zl*oIC;zS+_!Q!Rcw!GB2Tm{}?SF11E=b2ani~5WTDl(Tx%1nk@hXLlgeJ2eMynnzm zz(e6521GR+h_9IMd<1!YkCBCAorR!ZYQP4}Q!6&_YLEq)sOZqy2ohjo78@=~8*c3= z8_DD6gL~DHIe91s%#wXh@lY(7MeN=PE20PSNJi)=!k%|URFsereYkn0yf_0DY&-TH zabpX$L_Xi~MZsPc&b}z)h3Ft!xQz~2A1s7{LW?c2PYJ#pIpdstGoVt9b-hRK)bC$R z6bH0N9%!o{b3B=#M=mm&{WoH}loqEA2W6TIEl~v}d$s>%1F~p*q&lzn=q`xbjHFL83z90)4BVrtf+t z5aIWUT^B*lGAso79qD~<$6jBT2oMfLrssqOeS4yzmT9ZBUTPBh%(f{BfLKP*#Ll_9w9Is<+i*%0XI?6he zyN3t;Ay#B}>Y1#F1Lg8VL53g?_fu!m^rpCCd9)Fg8RF zl*S3lzJ!ZsDWj=kK_Aqg7A15GNmKy;a8O<;{j{|AYN7mtNX2Hwv2cCtR$bq>dPa0+ zqPH!2C>FFUJ#JTmHW(cQo#G*!h-3FtLHK@FtWgX^0Tqu+kw&Y|L|RN~KgzmF6Y)yj zK1Hc=nCy#WS4#Ib4>JRg_oLsjCo(5Gr^RM@_M-R8{>Cd&h5^f{perK2CS~e`A^Bi0 zH7IKd3-zRWe#gI*5d6bJ*F!N;o(WxaKDq_hc6fk;EakUyq)O|bIfx2)y6c&Xa6s8V z;i39mINUO^qgMJTT=%Vx{Vo31Ee7I=Y(ce%t;&*U{n;-S7sW)payTd@>}ZAo&ewL; zVe5Rnvt>=6l6Z9Hp=+U|Up+~W;3K^if$(wboq~1OMR6imSNl=bZ4J-t8B&kTGO;T` zRd@S}_OZd(W7v3{Dt7cA+B+*D4D{#GhFW?{yB4AZ%WDo)MBx+LEtESa*Sw@gxBgt8 z`&}ua?4nw_+Y)<@qe~ADaS>%$2IX$+qFc%d+Pi1FuEprYtN<%;2@9Qry$@Xn^s{(i zJBmoeR1?OFU|404-g)4tmS1RR%R6;`-HrwyiqD09?_GMFvh)yb1RKkp6ZQ)Ic$#>s zuyK3Me$T$=Q`4GQM{ltfbmpPZ*B=Cl+wrv+2GQ%XGtjs9+B*-OgIGeWLq(J~)u#4d zWv}|~R!4{JTQuuPxTqtyTU!13u6;ku_m-q}(Qo=vT2~F#^R9&}PD&#?s`ukfJ=xCfKFTbty_j`{Q5D@O9{r>P)3^j_}U-5%Wz z3p+dP)e^kx$o*ShdBs4U-A4>*U0U8t<8)^sINX+3+K``zIEqHDcoY5GC-wHYU2Tr# zaK!EOZ!d#HFT=wXvf(D>ZJlt*nbg|LJgdBro~Tq%{jmMj(?o2_^XH7va&3K!%JA-TN6#B zM_?Tdu>IH%{B+#FGy9gc*L_gOJ=-1g@-2pN-|G%(?7` zj~u5=E3RxI_{VC}evYf~eBbsyc%|$r0qy6xwo$ud|1=Hj!EA>V;*jTGq_$aQBg0?HSc3(Z(;8d zJrp<5PQQcwW6E5A#{WteJMP{+*R%Jy=hK5*ZXQCu<9>xwbQ48czhlkzzT|8_+PTiQ zDxl5x>w&iODFm`z7*4>i?-)_@f*D>z3W zJBs&j2XpShzY2N9TkhY>Uaz+|ZB9?qMoRkp*d_S&`Z;D9X7&PWhNmuLm|)xaAmsp^eewcZ{otz2AL1HTtphc5r-_ z@_diJpH{|xX!m13;pU2$U=$>SZ}xkcx`m^j>0IaP9=VpfJNng&bKkPx`Jr|lKW`Oc z;NF+MA5QxDt8JciwWI|(7jCL2ZtXn{`W?L->j-j;PkH^09W{gR)p5@ECuEz_`?_T< zkKDJN`jmxqw$uB^mt1+ZgpbZq>g8CTT4isY+p&}C>0YPzGiUlSw?XjwbH@9+)_yej z???Mni;uMFs!ZQf|_OJ|4>%k7lpe z<4iw(#`eDbx++h6er5WcGIw@AN5TGzwYY3SJ$60y29q_I*#2}_v-l7v1h$+o_Td$`g?WmS&nrKx$b%0 zH}`s|Ensy1Tpc^t$^LzHuZ~|G%YAzJ*n0h%Glu=#vur=F`<$Qo7*4PHeRb@7@9h77 z)y@5%rR+HN?Ps~ii&pnB_`aXMKIXnJ8Wzv9J?{sz=lT2(+PwzP4;rICJ^dNm`|06o zS~>^}0)xPdhQNy+Ltgauy=Z*C-}d~hkBi map, String filePath) throws IOException, SpriteException { String file = FileManager.readFile(filePath); int x = 0; @@ -15,6 +21,12 @@ public class MapReader { } else if(file.charAt(i)=='1'){ map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grass.png"))); + } else if(file.charAt(i)=='2'){ + map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassLeft.png"))); + } else if(file.charAt(i)=='3'){ + map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassMid.png"))); + } else if(file.charAt(i)=='4'){ + map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassRight.png"))); } x+=Tile.length; } diff --git a/src/Player.java b/src/Player.java index d8e4858..9658853 100644 --- a/src/Player.java +++ b/src/Player.java @@ -2,10 +2,13 @@ Paddle class defines behaviours for the left and right player-controlled paddles */ +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.awt.image.ImageObserver; +import java.io.IOException; public class Player extends GenericSprite { public final int SPEED = 5; @@ -13,14 +16,16 @@ public class Player extends GenericSprite { public static final int PLAYER_HEIGHT = 97; public int lastXDirection, lastYDirection, lastFrame; public int upKey, downKey, rightKey, leftKey; + + private Sound jump; // sA[0] is -x, -y // sA[1] is x, -y // sA[2] is -x, y // sA[3] is x, y public BufferedImage[][][] spriteArray; - public Player(int x, int y, int upKey, int downKey, int leftKey, int rightKey, BufferedImage[][][] sprites) { + public Player(int x, int y, int upKey, int downKey, int leftKey, int rightKey, BufferedImage[][][] sprites) throws UnsupportedAudioFileException, LineUnavailableException, IOException { super(x, y, PLAYER_HEIGHT, PLAYER_WIDTH); - + jump = new Sound("sound/jump.wav"); this.upKey = upKey; this.downKey = downKey; this.leftKey = leftKey; @@ -82,6 +87,7 @@ public class Player extends GenericSprite { xVelocity -= 1; } if(upPressed&isGrounded){ + jump.start(); yVelocity = -10; } xVelocity*=0.9; diff --git a/src/Sound.java b/src/Sound.java new file mode 100644 index 0000000..f5c24bf --- /dev/null +++ b/src/Sound.java @@ -0,0 +1,19 @@ +import javax.sound.sampled.*; +import java.io.File; +import java.io.IOException; + +public class Sound { + private AudioInputStream audioInputStream; + private Clip clip; + private File file; + public Sound(String filePath) throws UnsupportedAudioFileException, IOException, LineUnavailableException { + file = new File(filePath); + audioInputStream = AudioSystem.getAudioInputStream(file); + clip = AudioSystem.getClip(); + clip.open(audioInputStream); + } + public void start(){ + clip.setFramePosition(0); + clip.start(); + } +}