From 7a7ae28e1b0e3be7f7420df2d2b13cffa2bbfb79 Mon Sep 17 00:00:00 2001 From: The-Tysonator Date: Sun, 23 Apr 2023 11:02:21 +0100 Subject: [PATCH] initial commit --- .gitignore | 2 + assets/background.png | Bin 0 -> 40026 bytes assets/bird1.png | Bin 0 -> 12370 bytes assets/bird2.png | Bin 0 -> 11540 bytes assets/bird3.png | Bin 0 -> 11636 bytes assets/ground.png | Bin 0 -> 1330 bytes assets/pipe.png | Bin 0 -> 4452 bytes assets/restart.png | Bin 0 -> 882 bytes flappy_bird.py | 224 ++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 10 files changed, 227 insertions(+) create mode 100644 .gitignore create mode 100755 assets/background.png create mode 100755 assets/bird1.png create mode 100755 assets/bird2.png create mode 100755 assets/bird3.png create mode 100755 assets/ground.png create mode 100755 assets/pipe.png create mode 100755 assets/restart.png create mode 100755 flappy_bird.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bc6664a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_STORE +venv/ \ No newline at end of file diff --git a/assets/background.png b/assets/background.png new file mode 100755 index 0000000000000000000000000000000000000000..0c6b138cca3204135a17d5deac5cae89d7db1417 GIT binary patch literal 40026 zcmeFYi93{k`#;>L(n3N)SyCihsAP{RONx+P22;pxjCExFlthFg`%c++W(5-F-><*AJ&Np4oJik(s`<#o-v&=3L-{6Qbo!>jQOGR0ORKq2L;5Jcb;ZZ8IskT>PoPnMC+{w&-{fBIA}hla1Y0VD2VX{B)ww5bRMYES z-o0@0ZK~|*7DjPKHtetDqgBjhh5+n&4^N*s@$fX05aU2djQuahsYh?mojCFLIc819 zDb45C8M<75cano~z;QW}@gAA;-&_7`vHu3lfAi(PaPeQX{BN=NZ>{_AF&H?~8wSl=gDS3&Z}Ou7M!)2S~IaOLjd6JW`CdoF#DEGM@A z^6DMIS*#fQ+i+&b(wFi+oC`8;kG(6i^!h^OmG$(!1?ZmwtUIh;-U{KY);sl<@Nd z+j=x*M_vwf^6rczOd_P^kD|5Vn0u1Zf6TDe7A_SrU86DmH?RvN;;ci{Hr}Ai@hY@_ zCwLOvqew%pe@SuQ25h?MB0fU$Un#h-{B&S}KEmmzCcoUXsQt(76}-PUPl?$qP7Voq z)i)1s>yfbN8nWw;sK3FiIg{7smYS&b$Dn@mZAtC!1N|T5!!aV4(nr#a$#vfd?oVah z^<+HsD&6!d!FrXRXf$zXO++fEv#!c)B+3$}7wvb`I-NU}-9u_#x@cOQbm_NmQl$Em zUc9)k-MUfjz$5LZG{a4r7qH7pPT>j`ow+Jo7-Zcn$kAc~RJ2l^y?qBL1#CM??J2S- zczR$&`=#H6VM@oC#h{LIoi};9tOcEQaFZD!inwa2^fx76sjhMM+4vr{)d!$%Kz?%F z-`rzumRgc7zH$pd<63Y@jE(*I`q=EgHlzFhAK%W(5NOeo$=2G8Nh<*V>6WRvqVNy)ik(2$0`u6dNO{r?aLOG{ zZV^lhn`iKf*>%guyvb*0qThG&IH;%aMJKw|Dsb48od=~wR|OK!kF0cz2M-j3;Pu=6 zue0zyEzbwlK!b#eB_H;T4C$Do=M6iRv&2x-t_))6-p1tTkaAUz{}_$e(AeeqK#8Y& z+r>;8cUZahtX}m+JI`>6Ea#4v&Pdgt)L8^`{?Bt;gCa{)#o60^&c|MuxuF{a?Aks> z(6YQa|75dEP3Ct1da%4&ZJ&Ri%6@w>!QL>T9K3K2&IMN8GN{^9p1&t+a43(v^+44I z8;`Ert4Tj?5W}M;AQL2S{jMG#M_9V0n^3B&S z`%iM#hgXs2Aq<}<5uer+^>hWTo$l*5t_mo_s0>*#YYLK6jk{-}>%`i=pksnTSWMz_D8fWNyY+<=x=oDW04p}#F{v^TNRa5mS{MNEV`f2l?TtLT{yKdxr0B;Kx%meDlT8iN?mvH`mUl#!;Q*{w zl08!X+kkUEwoW+*e0siSq+xw_Pkt*%jQ^#(B8iKU<@*=8FDhMVTPP4Cy?UlN+E_iL z`&;&D^(hKOF*@C?KjQBE3D@@2%HKc)&1yX9ne_8h-88LL+?C-VO&uB0et7CUQWzEa zAB6TeE8AYo&~7?w;6XeAfl>;Ni!J0Evt_lJ{NDUiL=`TL8PD%_*_pSGfdBFlC%Y*X z>QU{M$9$FA4Ik^&j`W7j4NdED@#M>CKC`i5xzU zE;LLAIc=?>1^pCfqJ5g%W=iX1+gVl1jqU@w zL3>rC)?3^v7@wd9+4L79WyN=Vvlr=yHh34^sqCtV+^Pt;PHnbKybC1o7AZ)HOngG_ z@!b5U_~%KTIEOkGureRHO;;4ghF&9vEAP7;cxGVRLagQT3dVENOc$~5S%aE#VqC_6 zDza$=I;!^Rz(-j1`+S7UKbyY_<)s02&xgMj0~OtrF1raiITGJXO}e}O2|XJ_#7@~` z2O;j;O;h5%L06)W`ky$~3=;p(nxwE*a_=-A702|kNnO7GdV~8S@FG+CIqZuEuljta z)BdD_`DJPT3L8mw+TXYv(ROFgCMhri|A}ob-5@!?zEA4&t3DX(fVs~eUxwSNRZX+W zpy~{|1ulZv$~$A;zdf3@3i?IuM33@+!#p2Q1NL9ztB%d2=T1V~rE?C#>{K?Sq5(V2 z2bDJG0pa-2a-P7RTgEDIICqe%3mRnanZ7o0A};pwv1PBzbMp8~fC4j*1)tW}HobngaltJ#3#bItk_CGs8}A+$Urwm$tDS^8 z%lzoC`{3tcyfJS=-5=~Hec!5{C%}v23nT#Hlo$QC?hSk()I=iA6MJiInx}LFe%{jT zhB@Gmidf$?W1Til)_*|iS2P6_0AF3qyIorAXs=Z(!yDzJkRq5iM!?z_BLe=(YP$N{ zcZAmKtutz`)$G+SfJRTPv~TLeA$$I{lb0)6>wzsCQ@G#d+1%&v@l0#8B@1zi&aLn~Y|~ zjWiF4GeIfk5E-N4>eQFvnJs$*TVeidG@J2xO9;pOAwdV3TmSHbE0ZcT6Gh6iSzgqEf9@3vZt#K}v7w-uX(W;$4MDO$HHW)lcmd?FUsFQ-mv@5U3`S^vRBZqemv7()G&Ldh=H(RWbr=LBM^&=-i6dG+VI&_3FDrJ5f4UYxgFF&i$hN&6Sf{o z`PW+0t(_Hixqo2JU%p=|T)3%xWBakYbD?vmOiuaCu)TLGI*>Tm%=6Wm;1ZoSs+ljo zg-zbyQn{WsN|yi51#FnakqeWrJ%uUwIM|52Hu&UISfFD^(20UC6s+f%AIkZacOOEm zZDS(k2#*T~oEs-!HFA$-9P}Ur?z>u|v`LxDWj(qg;SSQtZn5e2e8hsFH`A#=KKxXf z-T}z^teg6{#qJUvDlhe_HXxA#sXqOxa*_Nc{b~wZDqE;}8Ao*&ZY_mvld`&*;Qp30 ze+jj??Wq(HY8OBq@{x&`U)|O+I!mZMexYgd%~jB1Eo_QOq>8@BZ8F*ZIq<3QC6%8$ z+sdnG1e4b->x$Vo-p!&*?yn{_zE{pBkmc)<_PTR9_TD^-TUYgjzz!pAX;nU&uHI;v zG@kOZad2+(>u6=4dU~IB6Z2>5y^LCZ+PH2TxvRFGf~9P#|C&CtY4>x zcmq1S+1lM4(NZY}PDA};%$G=*o|CuDPEb`! zd7%6r-8+Si$IzNhgCN2~dTD@rE$+gCymn8}Mq#C0=~lYbHga|PJRCUvUVfEn=xj8m z5k`T0^n*L=%Rn7JWy>tb#`utrL6jzyT&d%4)%PBDf%}`Ez!L=n0_l}rZr^s??jqqL zl-RCOD>vBP$IiVGnr{kQJP4HQ8;T%}$%qQ}r?elW86p4=on4N7Ds58~-p6 zn1RFX1e=@Crq{1Vr}9?SJ+xW};oT$WNA~M7Q&CJFZ|jottcJ=-gd*MUr!Az(H|jQL zfv9Itu>k@!B3D5fV|!WIb+~w-_7QrZrLOQ;GG&9F(9qxILp?Vu?Si=x;-dAx)CXr)#$%pt2mz_e>Q>!h`*Wi4w-dy)Wn^Fw=J`G*I zhvm?@#EJ($fxCieshA`IGSa~@csxO}<`NHE z?Q6ARQM2Lh7c9C2DqGrxk9)2f=|$?T%Squ4mXtkwYQihN_@ZmlMcQ=(vl0G>3Up3P z|EY3k+KlmFu(H_`1M=4vn5-)J9&-iuz424Gd>fa!b0qwg>zRX#zs zmfnl3Ed*K2yV`r_t2CvEx97) zcELC_Hu_W4zm|S^csVM-HjEV>7d)B@jH;Il(`UTA)h2TOXdgi4GW+ zarB9rCj!F>w&ft$)D&CdxXJqajX5KD?lD&9iqqoa=4wuM>NN5As0we#XqmE!bH+CF z+)p|OXiC+?l-Uo#vCBoQuf9|suT?pCh>+C{(DCJ73Gq^wUA5VQ`eWoRq0ZZ*D5;bH zHC1b6r5W0XM&%itnswujU1io}lmcC+*DWNP+fm`PZ{Wh5@~#Z@8IN2X%Ce`~q_<@% z!So;N4E&k)kD)lNo&rW6ZmlIT{heE`v`bEOc5F-SU}6DbFhiHXRgd95zHvjS+%;9+ zhIa-bAhO8meHqfL2Mor~^JOlt6T|ul=b&cQ!GO<;=UT3mGKk%}6Lp%Y^DzN#-`Ba{ zn+M7F0@f*fn9FlFq2}zyT^snA{pqsJR*#(hJ+ia9&*ZPL=U5Y`Hj8ctvGbs)@huWN zqi=%SARs%RlvjE~RdkPPj{|!p=T15o@(0c39VHk+!B%G<_TB`9O`oTPThS=mN=l}O zL1jDZPV;Ln561G`Q8{o$cN`b6`%32~FC9#Aq)a*yMNNS-ln&ojVyuPPK?RIF&P z7}EI^fB3-K$e+uR;#QVZ#X}#-KTnj_ftOm*Ud+a$`Mpr-XOrcp2T~+~SZIT8ps2Rg za~xePyS|pGxj(|3<3FNaAkA|bf2BZ(2LpEn1I(YmnT8^CKhR&?^&7V>v~W+5|CO34 zRoz?@Y0JlaWY0bEW`6N_TaVM_tvad35k<@IRXxs!NOf7v`mPBJ=CLUUn~ z0U!6z#^d?0*h$e*)UyU%{Y4xNrW+Wd2=IvNlJ5vw3n!lMw6RsQik#w3WwW!D!I_fg z<3EP(MSZ|`xwS#M7rcZ!L5raA#cj!+p3#wc!fF)8J+;5Rr}Q|k6B3`6D=L8c zo7kso0gw1kBUsKUzgeK3UohUDy*X#xSn%%CpS0( zKslg9mky~g|#US@)SOAyisCDcv$NmUB@W$RK?yKA3 z1hgMS8>w{JKZvxpf0LULTpb_Spg=YfA=@e;>nE+f8m-1}hmK@=?RXQ1((|fW8SXot z45&`ty*>k~_m8ryWB{Q-8C!qEUQYoixVs`y&FWIe;0J4!PF~jTf%*D1BjffvyeW+q z2ikF+0pDJ(y1CNrs=?|Ed_jk>Ry3T}o`}uveCIpyqzIknddCU@4=8Vybk9TQ@SeZO z5i%HRupSC)D#o2G9>!=V_hQb3S16V9o7yybIKnDF#Pc17{}Te(c?nSySvxQ zUmNFnnpV6g@83hNwFwqh&?{rxPx5RXXWw4OtSj?JwUXD zV}%r)FeHL54VbjJ^&c&`k2h2ttXvfmh%V^rLE^&9ke9a*T{wwQp8yl5C#Ef4)Q(;j1_TC0lT zYJIE6WVtt=q%-15 zLQ>Ck+I!+$tZ7%Ni||0nTfpG%wll$B`+w7k%aH(?IjPMeCdmWAXbnQ>ZHY8CI84U% z>D;7Swr91Hq}q)`@qXzqQ>6-PfGgOVe$5$i*zja8P@907@ zpw%et@Dwl2#Gr(JJDYcN*0_gOQXU)}O^rpT?}h(^Aaz_?L_dXF2-|j(^PmfC%{(pj z+46>sqISAEWw7kbZ7$NhZ=`!9gWhY6BeZm=#YjHR5I6^0#+S|=Y(9C_* z?dff3Jrm~rl~;4t*Q^AqWipy_>8*E)MSXL&wnqXhzN#v_Ww)VC6us-mhm>!)jBWhg zn2Qqg1C7Ql*HHn9)ZPXjU4n|G2b$;P;vlE)C!i?CHm1J{`aPYK7B*EXSB(zwYcc=b zxWaF&Xv`>9cOdLm+JO}hcdb@03+MY6w@4$5VcDNBp0)G>?R0h;jEnrwSi)PreZdRu zQX3P?1M31{&hE!snx6B5s@MU)4*o313MOUwfB1SmMrekfI7q9>mG|_TDqknW>&!0_?C6U zgyf3`lW;8kCTq*PQA&95w7p9MH6m=^FT%M0quSiVvNzAql0($X1j7$N9Q&V4cdt?TdSib%_f$ znK0X_>kzr>j2jp*yC5TuH`&4C!djk-9bPMb25=zip%2GVZrOR_0t%1qEhd8XBH3;l zNv0Y1eeXO@_!+FX|8NYg3%)ddVQ)R}_^bwlPr=T+KS>`uApJ{}?cj^$TObpRYIdN04}??~6zA zi9VCv{w+kyLzC0)Z6&xCvc_^WOSpMJZQS=!HqlYG`lr-W=c(QA*kG{DpL+=-gty!G zPhrQEmQavi)Srvl$37Jo9r2NV$Mn|cF|M50&+>&a*aA*x-^Gd9vPPd-fidLlk`fg2^gRY-BJ8)S1 z!r>so%cZeseSJa)Y@mcJ%$PRrX|@_{o?4X7`NRl@@iqkl;EIa|HbdSeUD|Pi)%UTr zQTKRrW5w(xm1**;7TcH;-W+{-N>Os}N{RCfmT_(_f)XWnvR~^qW04R2V~Bv3Vprvn zOJ{EWB1ls(;70LpAG?)NNyK*wu|8KY7GV-fW05kA^}OZcS?Vd}6}E*98J z>J&Uc*L!ycv;Uc%?!y?E(6anpb1WzJH!1*T) z&(_F`Zm^pfphKs|)V9};>vN=5E<$2}Q+knK{Qli~qofusS+JhKj~+z4-ZFlY&mGiZoca*^9X2alluahSMt`wY!v)nG=t=uTTJcAT3k56otOjbf{jc-)P+h#I|7J>49eR(tCwS7r zs(wIZMG_)doJ9qgmj@OYaklV=-m+3$5>-h*P0Lsl93S|5ugwqa>f8RYdsS!X^aeT# z*`*6jY5X#HaeT}1q_1lyqsXgh;7&MpJMPQAZG;UKhJR4S?z0?l zIl{HcC!&~dee2;s$gSt~W;1d&jk4pc5WgS?0A~?UlE5ot-Htc8J{WQP^ zdp+ZuR9Xz`KTUc`OE8~X+j0cE&O;ouifw4N-dxkenT6o0YRE(>$gRSbuhDKi<}Ua5 zfW7DeQ#XxzBxaF0yP<3RJ`mAgc73uG)PF}%xmxT$7n8r{TdcqIf_XzV-fX1>N`7SD0xY=fdr3cih#ZVQvN6y`gS-sAw_Y)|N$Q z2rG95@bxXty^ZWRcf!Tz3SF2RQ8eD$R`tEl>^CL=g46sP>i1RJszG7ln`Wu!x41gt zzK%N@z?sP3AI@Zc16S4BaZ%+g5a7gA_KDI^HF$%{L);a|2(f+FDhN(O_DiujJ;=>_ z60*t@>HAmBke*}#58bq7x3VV0=7Rd|M;(sYa8~o|H={V@s>h{IsV`RixGzRT4wx%S zt1D>FLn5aJI39=nJ!GiJFC-6|N1Vg)hqpIq3HkAGMXDj9*1w0E-#T^&EH9uWc``g{ zyDUd*r$;J{p@lZ=yD!quWjBfL}hv-JXkch8aWynU#oESuWZIMaOZGAI2R6NDRYOn9eo4O5IR_y zv}dspJ%S$6=FE{ur_ndB?V1=k40| zKx)2)u=$b(q_t%Zb?-PV8o@P~SQC932L|Nfqrb$ml~NQW zI%zaqcf_y4Zsnm^$H7?NtgD-D{M&B4la-hR4ePU17KwfU-+7@52fOr^+{h_kVIRh0 z!S_z8F=Y5{=tdUdeQ)kaHS{7~LYJL<4$5MH(_M@W@ts}pYCj4CJn|oI!>J}p=!+r?@!#8gN_<`b z#vHqAy3ZiFh{jO|UvVPebO7*mzC!M^Lh>H4zu6lbN;=<0;%>t3T-y2b=KxUZ`g?GN zizfmp1i!h4DdSnuWCoXJ;6tFtbQCf@B`}5-^OFIT!J_?Qh~LT>?*&8 z+R@M|y>J9-SQSi+UH^q)2_Je)5@d7G&l(C+i&t_F_j6nf?@uKTF0PUUccG|R-~;8a z=67wHGHySse_eQK{iCK|iC!F+57&y?LUydlsByFK+*zPtHtuaBh=+p%34RZ5A+$wW z&*?^oU(WnbY=(2Bi?dhWfDg7YIfASayVVtoQul$zQh9=wvGmr_m^CcEY1NfHnm;xo0Eb8-7~t_ zjx{!kE=lHkoplAt<$4KKkG=gS3^1VCD5%`XzuCyYedJU)bzruQnCmv?AK|jI{}J6q zL>miB9b!Vn4O4XFV_(ObA!iAAiajDDt?UAQZ1B9~OupJ0Ozn2S+P?zVS3$cUb-BfI zo7Yu}U0nG;5u7e;7W%Q_(m_3PqEk)y&9d)`WTZ#=>+qLH5j6nTQVS}Cjh?T2BZ)NT z@Z;)k9*3YGhdDw9J9}6hKVwt!>FD`W15-5tY19j8)HG0e3iLpJD%j@-fo%8`Z2Cry zT&<8|j4+6M9nUis<-cm5hqqOq*SC3A^uWAh2rX0*Z{=R{I;Ib9%0kY2AN%k0F0;Wg z7Ja|1;d!gse?z620h6s1KR}sYLoLOd@f4T)#q6!xI&fC#Aww#~=pL^+^oO|ZmjrR` z^f9?zsAT(qkKc3Y)sn%VbFRCib0ka8t!xqB2{rIKb*mBoVwLvTdN{Zv0#*5~KqC87 z(Y0;NTxAq;v)_Mz%YSv9*sox>vTMNcm?m{4F}2G~}mO3*D<_C>_06(HeSrkPaGJBX2lX2B<{iN@RuR$QO}x zt)lr1dP}?yhxs?P3ct*2n?BIPDJcM@*ktnSwW+fYwAg0sj4#wZUH1YGEvH7JFw@>% z-^%1CYUEv}4-4H#;C#!-%!7ngP!NarI%0DROh^1rdke0M#8)fQ0MTiPFimjU!M{WRVyiJusVd_TM|0% zDN0<5I>1zaa&Zrr^A#WQX$4by^o!U0hMv{QgWN_8RP&qTGj$4NU@$8uJI%HyojvAXL5fazlOkkr5nsB9!(~pS(n5?6qvKh~Y2St$}^fv$} zvCXH(u1#%_l8Rb(%+sSj9J+7qM6so_CK0w9hC{G zjqe3`P$s;V<=i`ocgMm0!C(HZ%8I7jxK_V348cwbPi1>*xS|ms!*G{MFa=8eMLqjV z&Ga_pqe@M${F#K*L3|lh&*IqSu`MqNe$PK^)Q&#{N z*sfJhdd9RNgRe@qUMX=Y*tns?X|ktv0m!9=2Cphv;?>lqg59e6R4iG89!&Y#S8YNV zz3{_hT1!R!jKI&z#J+6Akb@a2?(0%a#Z58?-RIl#mcJ`jt0`E>)30fH{E6`*Q|F}6 z?A;Nxf9rl!mVrUtiuKb9_hz&8H!!1s=K38!(B#=u))6Jvf~^~<>gm21d~M0o>jTX=9j@wIPkjZ?NCSRcsY68 zlBZ)?Z~1yFqW62Ksnxi|A^;oaA3NwWau#cgmmo@JmJF0$BA?;H{M~8YiD<)B<`_&n z0*3TfEVUaAOt^?O4jYRa)`i_$e%I)1XP134J-U1f-O6`T{%!cg+f|&ym&yWW4}_P5!WWQn?|&(L>i*~kL73sYxt0QK;c^E z6~ck-{ruSCK;}$lQp5YfW!s|y=)ZK7vgM?gSk-K2LFP-eK2bhjeyw(svF|asBZ*%C zta5kMFQ7^4jd*JMv&?Jw2S)gi+WH``4)FJ@UiHlvkSeYpP?d}VbWJXCL=Z0sD1A`R zOw*a8U0Eq&BPSY6SbjAP;OkVr0G(St`p2h5Ia5U;)q}B@)JCfKrg^1)oCAY|g|C0b z4H_5r^%#7QPrjVfQT(MN*QHx!wb7>1L_c=7pg`i(oas^UqS}Jq;#DnK*;J>NsY8l| z?pP-}_9>62DyNF03Z~#SgWx*16ggUTbl=lHLn`T>Q%Ov_SLO+tG|7_82iM>40nh&R52&f$l|lnfPn|5%u63+O3}Nu&moJf54=nJ-x!mreZg!wACWb@~X`u=eXB+;!gft;^P*) z86u*>zXTmVjR4`_<9#aT+A=2-f{iIjhS3M46X$PmE+xG87o21L$B@qWwk3mFrkN~D}XhbrZHeZxm8GIrI&wI znN5hY3&7wE8F!HGIc`hoyG!Mb9Ia2h3zau&l?%9DaiuBdR)OqMFJGfgH+CCzB?YvHBO7AayF>>e2Dzw zc5_-UYO2@}DxACMap&@ihS68bXL~!f-J~WX=>Q4Y^3mJLvqig2&h)>AnWySE2?$T< z@>e<U_#tpMQK_n;gUGsRPH$1bU$K;pM!Y69o$~qAZ*LAlxE(VkFUobuP3%1ki z#EzaX9mg)+z|~)sW&!%2zD_%69erXLf>INl`rMG}hHcS!!sJh^S;!Kz0#E!l#QwJ= zPo3oUNJmil<^BE3>ppOR-%JCttZII6M3|NXmy19XERXSOz0>XH}D_(+x9JS_6aTw@(~> zX>B_6ar<#~OL=4MYM@uuCc*@HagS?uQ>ximJe!yB)L=J*UU7frSZ{ufp7^q=a!&`M7}L``BQwD*vjv6(?%8Y#7Dkv1~Rg zl%LN9V4^1|-~y1F$#rCa$1bV#OMhW|s@q96s(0^HiBU`*jl#>7ySv8Lj zeUK7ZZWII?rG3bR4>Zpu&&|#GB2d&wq{{l#^Vxm{pZ%N%$IZb-Ns$BMzsU*wXXN@L z#w6}f>HY%+rqgWZ({Y&|bRWcGY4t@|QIu&g^SZe~TzZ#mj9q5-g=IEOVse(jP;z{7 z)Px68`?x;vAe5zjE{%h{IR)(`ZU;&qS-=H;N^dZ{JzszJg$QBcT2S*h^&pobf7>em zJWFK)D|eh(^w~q*ZS2QkMoS(}3&v@m@rpR(MWxn;ZuW%?d&J3w^=VHWMNAyEx*UhS zJ(@f7%Ohhmq*K52kbcK_pJ%T<@+{9@;fxlIrMy^|xzu!ydDFmV93V>&w(-wbpo2lH ztuB^GP~hR_h`zvGgqW|QH#07$v$wlk@i0`C!6H9S!GwR8y=boLfEc+ykZ|MoE^R4B zN5d$meOFcJ#cg9z#^Q=vr9k}H*HQenX&9+^2~(|~n6$mWA9T+|=M&GN43w2-FiVH3 z)A)@b^jW!$V{Mq$QTAli!El{*gZbSGNNKBrT@qIWw(QeaJ{$R$abF;p?#lMVH`6Y3@g zb-M%gxkL7xSi5R4LHyD>)B2W?NSJzRO;j6_79Y51m23@`NjA73xzOtVs5;VdMq3lW z=R7jh|Gvw0NDQ4Fhln(|xs}=@4|J&ePEmDuHmtlGd=#4z%xS;671<}e6VfHX9h({ zCgqtIlBF@-H}v9=dyiFz(2lS}dDdzGfFEpsJ>d_H;qe)+qa7Va|q^FR~WQ z;rm)_)&ss5YIAs`Uy$C|tnLl!?9*zJk{!X?&&giZZ1PgVykHb}w5-}f;bY*SO%>fg zB^#`wI-7g*oRE!PCa<&Eno+VPvY>1R{iWARLt)9wWP1Yz6tjx;qx;0p4*bC}KF+%% zy8mloSG(%0EQj^kS9f(0dbMhYe|*L8;WV@HU*u;-ugiLO+Dv}+I~D4z)Ca}J`jPc8 z$tR@5v~lD(R5`>1X%Oe@r}zD+Xa4A`;f>q#uxs?|K?SZQ<#?loUH{FVFDsnF1ESh# z`k(6fuQ-L4#s_{kQByNR9OKrIY_F#PwBXMtI)=Gn?#}EmeU3U8NuR;}_qUt<^ylN1tC0&14 zFrKj^_9h=GH=8X?Hc~<#$5G3g<9%;LZKOnRqxxNGHl_!@|M7j+x}RQ#Kp#S<$;Y+| z@k9yhJ1S&z2)R!0d=e25?_ED%6l!gZ1-o`@>Vj)vfxY^dHwy#uu9ak4kNI7F()lZu zMJf%$MKE~G%SAqQYP~*yi3Rj#gejm7dRS7UBo-^k3~ z${LR6ZhVYAa6Gb@LzQqY>#0+|a*D(MkZ*vXw36J+0p*DuDcnKI5|Qy7S**LEt&8n_ zh8!IKl8Cf zxGQ8_-BeUg3C%Y;N|)>b2$*#M6T>AMCt|m!Avv$X>7?s@-qjWPwe`_SNb(|J+V=91uO%gPx3GX zDXH1-R&DvRdZ|i1CO*~8)Ee_(*3(vu4)$R5#5by+C=&x3w z%m|^)zQVJN`UJLX`Tc0*B{{WPU#qF?AkdLE}z8BE+lt+KGgU(9J${WE=aYEaca}Ea-wuu=dWitO~|eu zXZ;=({Hyy?&8OT^47;KqiRYAxSscioP@@!;JKR?frS|*lI^>y7o8?%GfR##KO6kX5 zDAQp?b@aiiPb40Ot&!lDwF9Jfk)Og(|a!3eGwf`nNV@cHi8S?eL-FupMQ zU>7D-L7-F|o2+?pE2~7lu!x=2`WKUmPASj|9m`%Q=ppKM4r@JgFY)}JqGOWoa#X@( zi%3Jst<)MyCIsiuim~;9(W2bK+W5Rcqvvw8k6I5DIW{7Q4U#>s90rI; zh3pC0WXtG%gEHXI2cA7`K7&~K=}?qfVPrC3ZBxy&h1BoA(E)LwKb+i*@}Cf@2rh<5 zMoOnevl9<1B(y^%e7T=|x}Zd0Zo<-*MDm zz_mwWW?Cq0kI8Nrn(@(;DHa6KGU-(Go|jrqFG3OM&&zmjRxWDE@ zU;jx9PoaYBs1yfp)<-fh%Z@EOEEn|lV9=AO*^7TPPQNR7hAA&Lej3N&O*V1$tI2RyaBb`a!cqE~#A4!J|7IBEB`3AkA=emd56 z(b6%j!sS3hi!Io&D8(QYfV|&O)-*Ori48|?CVIVs7CV9(in={A`^0A|&6q1qqXgMj zUC?C);5rWPdDdlaF*tFA7Vm+SlTIZq~$OXJKfo`r!s&+Q3b_Orlj1D!c zem9p|P!c5W+Pf}xCJl94`g|Tys`tohvg}9{Vy@WCTCmHNq-m~kr{%N6rNkw&P2$;q zS0UtI9NxRvn_SxeAEvgMzhDcl5wY|A4$ITp^Cq0V>+9ISvN)G0ef)f6=!*wSfWz7b zhqTB|6E}MnK6*+>e((^IZt-CA7JAwnNiGYJAgl z;u1Hp3HQuCn@jbzpso7=A`&_{A3Et|9n*ZwSg|4I+^qDKQ{YNk^23_N6y1#bP+^~I z9D9h+L-Nxi`bGqM?dG_&Z);m4RyeD%$D@nWH*Jkslx|))3XsiOPt%up7Sn32&+Qp5Y|KNP%6u+ehFyO2l+cp)0E)nd zxO5C2!VTa|JbTvWTw=?b)@yExBf|~+0-Nyq`sgrqg(LS@{mrGm?D>%|a=`W-u?>;y zRV$Vpn|LoJ-i&3lu&DNvLflJ5+|PGH55t6^FKb{W;_-Oyr}6_~8!iiZ4o}lLB|{DN zj#WE@{G0z0WmFbMZC$iSE(BeXV#iqr1_Ui5-%7)M^x+c2dgeohorY|e%@XJB=;nHi&k4Z zuV*=;aZh}49Hj+wgg*4DQ}?$srAh9Jy`7dF6+zomi9!x@yvyDu9}hU|vv3Ie(%`49 zj0S}5tcO>P_}?EJ?V~?g-op;ZCG_$&qp6taLdhOS(KBB>Ugi*u^S)qi#9Pn9h}L4BkeQZ%IF?s zs7jFtj5NyWjuA)hf}tm@YgC$PsI-x(_EU;d#Zf>GGM#ofp<_rj5IE3$Uck4%Q*mzV4?~-@rz3#_wBcxIf`BY0zsrnrY2<_h0vw9%7nbb!EQ@ws1v#p5hkfL->U~RDqGDk(n?*6YAGpN?p>+8XU~8M*aPI z_mo_>>)9Gz;eqA4ahH}=I4KISe20y3ed3AmFz-0mKW%PuLWV~IfHf)&F0n6V zBz?JoU9{bH~6N+2i>t9xY7ReWkJsVBMc*=k6mest!KB&Cmv-|*dwZK;1+ZIB*Q3K=PI6?VP;cWrOE*^Vix0P$>g5Q79t^NJk)ojv_=XQ#1 zU>Vv#oE;FZHuIrt>NP^3;vi)mtNJgZTZ<_dEW=7JSa(}{;m7Op_QNfbE|>K>>YNJ_ z=Kdc>mdZ|URzVtJhWnWP&^2@}UbxAje}@Uzu+Y0@>arX)^?TFFh-C0WObbF-q1-R(zV&Ai|f z)Y(5DLxDgKdA>4JAU5v~? zX!qKZ6vKt#rF)4$ri(q(S8jdfx#>>Nt6wxt61E#ZmVIQT#-mK__t<%i_mrj?$kZ<` zZj>sWe2AE3-_^$4nt& z#t^oNx8sdD_H3;!jH$G>Vz`F|JbAr&pr)1zC4_xP9?5 z)5J+mm&lqtyBkB2UU9fD01YnM8t>AQ9LF(pnR8u{9{XCl4ZZbwyA1XPxU zJ`}gw+KP|&*t7R2=GW4NX|p}PV8~X1 zDkDmM>jc#tRV(6zY{^|t{nn2)8st`-P8FVTU*<2TGA}$V)2rO@pEw^AhieLxFVf8v zTr@SP=*lVxfV0~@nD^wMCzO>ht%AdPhWi%%iFIQVM_UAf--)c#8l;((JdL<+I}o_- z&D}Tx?BE_#6uz&XZ=kjB^;nH2)sJI*ed?ym!@Wu2vC{bN zbPl1yI11C?rxMXd=I6Mpzv0EU0AS_~Mc^kAjd7K7`RUtXi|4K~ui}IET_@{7vb;_lmY-=IG|Ymt5Gw9AXKRQ+zqqM@eNB`Tme)`_=u3)k?3c zFiuw5k^Jo23`5eZsb@4{`@t8XLdl=WNT$)K>_0sg%CDAKj9m2%`OPx7`2LlI_dBN7 zKPTIjKD`prNao`N&yRcRN}BK@5}^$=Z;f_GC-n)p9sQ2gvUbOtO$Fyoq(+|GG56~H z^+SWgp^4R-_fkSj((n6v zAF*gwvMZb;77RVno9U7ArbVgK+?;M8@FF z*M-u<7tXCkqb)2jr02^zC0RJn$=8}wOo1%PN@sG+V>YO~yFmj~Wa$(5pdiTYe`Ax= zJq*=cSa{4_QkBCNNEv;+i9IEonOrO@wNMf#1OxUT#vJuC4S`aGlL1~Uy{DHyZ}{78 zJ*l}<6iC0TPBPD1UPk(|kj5y4v9+w_!Yivjgo+pEqqC-Z9=1m|@YITVxBjV(8gTFF; zlX6mglr#6D_NwZG(+Upukb*_qXiKG?pKS4Pp)$`xw#g}Q!o4?XI2Hi4QK;NEbqNf* z5Db<1byUaZ9|sDW9W3x{+1P$3{G?72YV|CW4r@X=Kb_GZX^dc-ewWuUYWPNY?@v;- z-vCf$QEt*9Gqlktd_dE$Z2XiaL@;2txZD)ln3G>b#yjZ8L>nm#!7QZ!5>h^Tnvms= z+5)XxBLZ%nz{zjiM^kRdQ+6mESNOB^e3&JWRN>ve5$-z%K)2I2CtpGY*@ZJd;>AQC zUC(FE{@M7ASbV)CF7!dKIuMn%3aDB7l}-Vs@|u8_ulPHlkDlYn z3r7yv%;;i^yA}v^<0bGA*mnGbm^0OYM^LHNV&rP_@K3LB~znc2#l&M&8tqJF; zbvu;3-7@H_`3a1&dbv8Z?lKjR94tFp`>fhb;rsu5hwEfCBGAVPWAH98{~Gwqe(05` zkc$nqa`5teuK$ga+#94X!H+Q9VEl;7?9aTsBcoEc)0d^dWoetx)h8RH38niVpUL`M zwJrWL>c62;*q?(4j3CFh{4{Ig7k9Fi^v7SNT>rg3>`r#uG);x}wrxVl*psfF0)+Je z!fsPF@&*DPTmb7@3=+(5UXWZK+t9Dodikf9vv*s)-_I1&!|Bqs(i%4WyLzUp|JsKQ z0UHCd<6JT*&)>n(GyFIgXZ-rMZz;oFQ~B)}<+=yoK%Fv0VdPbKE?QJF9`IJ)zNX2+ zwaVsS1xX#)r;**-E7x*@zewszap$JF5+YSev=zz$xmDa*9=;yFu?~-r;Q|G_4JF03 zR%sW`?k<1&B*zku<#*nrSG;{hPqfJ%K%enenfAG1Lm9aaV{1pQa{pX!M|2d^{e&dKSpX^YhtWcgr!3^c)OKIUW`ZEC-K*bRsyp07 z6%G(^e{_1p$n#tn)B}^*_(O+8W*NHcd#!vWYn@2FKk1sAN&9`x!!Rys-7obq%T8(w z=B}>|m30xhpgCv$ndB2n1)=h_vU2lTCZq@m+3l&K{^bZV{i5t$_cWOzGU{GL^cR!7 z<+D~v6E{hkv)3YIB){T4!|u1#cxHa{EbY5Wp=UD_4k63*#+V&{kzS~9e&^?59yYe6 z5gGCbsc|`_rZ~+4n(mv)4HVumgP9-5X!HyqxMS>>ak>Jqpu3^O<0eTAem8u-cnc*Z zsZp%n`nkNhIgJ)x7wNxU9ak!sf7EjDsNY#<#o~Vy){YXO@z8GN<`9h3IqmI*WnA6-rIKL^ZE>&Cq^Y1vk22`47zEWv6A)iM$$I#Zu(gjTA;U;Ply!rdy)mz<4vW zSSSe6(I^ONegAMPXYm+V?u7-bfPPme%m0E=IU(r0=>=U>Tyw`(cZmL0k5wFQp?kfe zJzKollQx}2YDS0EItV}<=E2RixXPBLmCsC{qj;1O6L2@=JAKqNtC-pD**hbIv-u`u z3U9u1#<9I;K0zpE04d?g@u39S$OaJ8|q?fASYkcID&1epsIC4OVLu%D|@`% zQVJys+i~E|OXaCYKna_8;dLL2DZI{%Dt)ih5)|&JE_VFFZs@kePHR}DszypVU-KxZzX~Yc;D5zfR4WQ{iGVIDTKxK;4o()jHwnC++ZHeQ90PR zO>PKfp{4mXEGgV)c={Dg%h0m4P%2on#er2e7il>Iv{cg+#7(huxK4uraBM`M!NSVm-`Y9@r3W1YxKj5 z8}O9l@^O7rS?qt=6Cr;h1jTELxz2P&X~}P@&dX+dFHrFSovZ-dhBac%soOkIBnQxz2pZUbFaB8Tj3u-OCkn z5B9A88$FInyrNZvd)=V|-U_^1=8NNp+5z0$6sl70(b}wI!WMzywB{v7)hBQn!Tx%z z(_kUQQMdSEdHfp9eWT~WkDdn{W(IPFA9y9NFmOun6{ub&H@sFW9gAy>c(|utm4UaB zlX1z6c89FKvaaa0EtMt?PxgW6mK~I=sQJGAjWaQ1ad9kMHRr3bY8)Wvt`ivERB%vE zej06+6a;ihmld<7aIzrfWnLMKOrP-Tbz?u)-bAo17C?~aK6h|NM7x7FU+oz1V`D*- znxyfLsG3GjS5ZPMo`kEl-;sW-R>*ow+#9<^mz#khT7%*Usrln8rftIYwF#?js;NM@*$y0ig* zku>MLV>9ZTcbB)2I4&aw=TF@mr_p{MTNvV0F@$mNs;mi1Mtj}rDQ9mYvx*Ew2gSsK zH;-guo}x{3>MI!=q7}0M%bAFf^*3K={zMlO8A*Xqt1u2eGYkcid>pcosC06>M|2Ve zy~#{@?=NyY|AeK_7tH_(_cFu@L_XM}?ufZAVy(&yv16<^-tEQP2af-auUsI=-qVjq z&%Q3r3an-S)NS;nw+wmWv+B;8lr-(F{CU-pEd*+gOJt6CW2-o3mm1naqE%kRYDaVWo5J zHL34QcTYoE?@+8}?B2lcIbrtGCkqf_TlIfomDkCTL{KO3=1AHI(=4Gm2$Rjea9;aO zfi|COM-g;xZ!HXUWMPI+YN1$tv1UNH4tZ)ZgR#nen1I~4SU_HJkQXGIM2SURd`KU0}KdVD>PZ=idVJ5ym-DTLj7R+{YJRT zyUC(edUp5h9zo#yeY$rtJzXp|w&kEJx4)K;-CgTy1<@NsB}1P^TPXR(=PJ}nN$;A) z>)cu2NaFX>=={A@LpsxfXq3O0+(Rvy`{B=)lyZeqJO`R4r-ye)M!H;D(+;qGf9F#}HcTsJxO$LjM{0#xW8EOo-qpaa z%7SIvhSD(NW#lk;fWUpkocA%3=^)4Ke)?YYFaaf9S;(y;Z!GxY819Zil`G>vYG=dG zmuNvYEdW%@vQhe*iPrLF9CmiV;6uI(^v-HFTB zJtZ!v;T6l_()cCY8#J2u?78U!;y0R9Vi^(2bjl+UFb($;l2Zd7LURLrWEo{%v&qKDu0H4mOJZzI$m z*>LLZ2b_Ph<+!9XtNY$qD{^_Y534EHrCV)&9mUk^tk|=l!RGvE#QUP$TQz6EZkLk!txWSWnd+;_p8;G96wLRHn?n)VXi0>k+!Pnp=Sz%PvQ2`6YF%S}Lz_ zg~mh7HBb!U`(DHI;+(a}uPPIyBDtN6(2e%mLx3v8E$?B^Dc8_mv*^l@beLSWj@__1Nt)CJeqxQ-rU@ zMfv>5OHI_(Hk)ZBOn*mbjJsWAbSeBoTJP0@Cu1^inDNV*fEch8`nsuzV<%YO;78I?-c&XwXv+w$J zX>m?QT1k7W?6VPkIhxxy)9)`NjCjI~XJTWPL>4hiJFG#zeQUA?b&59;qSt%dI%2WI z|4zbq-X*DT(@hCVX~$!?EeztxoInntBb*h5Stp`<4&uri10Fu@Jq&LCj;*=5vo<}_ zFdtv|A}IzMbd!I-ozMDg)WM45_SNJ#)NtudC~tYWF!K>7?PGH#f4R7v$@VO;et zPqYUa_s7nmx1uFd;yF-KNOIg=B|u)xhB`NQR+}Rz>ypEjWoI3c%7Yl&`7f3_gpcGQ z$0nw-@_ok!%73mD8Wu_q##%8jj>FOX2#JEp+vRug{UCsbGHs2Z|4rxdXtBq|2=a{S zOHFBcV+D7H{)Ntw#T^ByYaSxWlN#0(PJwL;Mna!QeP^Q)IF!cUTo#WA>j7?*Cvj( ze6IN(aAwyN(ViZZ>S0KSA*NmGeD0*wm4*|u-> zV?p$4q`QR9asOS*LaP>~lgTlLn$k__`QCC8`9W)c z=>?C1CZ1F=bpSd0<@r%f1-ed*U4IqQZIZALc=NmKA~$sL)&46WGC1%F9|{az%Ey8N zEbwYSBLFj7yKrlngW66|$N3rV6Nvtkj#Y#9kN@(Z&dBK|`T8*MTr)zG7I_Cg*IGEV zWJDc4jd#AbD7M`Uzdcsk$%}!r+2Jcoxj}T7*H}hvsW27`n%=={CU%JKi?7x;ddV&> zlY59$Xe}>mN)3dB6z%|>v5xt-@lxXAD%umX>#p#wLwr%mZCBUchhrUK5B-+NGeg!D zNCgVC#+OpBv-8ukgsSkPW_yU3l~zS$b1H3uR#3>3Qbq5zAbyAe~9coEtY zKGZtFwTT3+IE|Jq+exH2d(8uU?%c>|7LgE0$MAld1YCjrGjSm zVlJP3>ETiTCE|L<`JvUHY1Uv-1qo3}i*#Mf8QA;i_d-ZQw6YAs+zx1ds=6qP*p_>g zmyc*PJ_RTS?2-14bYX45QH2DRC&k%QckT@jL85d&NwK{R)1zJ^4 z9@R?Lm8g@yRLcUqrAw76O@>`rL znHF6Hqy)6T*$q{Jd770hle!X6Qsr^G{;an?F=>ENNVo@cP#-glUYTjagz=8{t-fh= z>uQxsKhB8t^zH3>C@L-*B)(z`sK`~@X4*Lh+Ksk?qr54bX$%D|D8SQJokq^qA}DbB zhSvJz8suDRW8>!b)z7>2C;nWz%t)%rOPKuf(3-NR&@RJo+TD<7o!4rRgD#jbze@A1 zd6IOpAUe1|Erx=n<B4lqA5Ggzvx|tbgx(IC)4$OnTpaJF-7fN#zpO z^h#s@cGA|*^_Aj>D5lKr*B4IOdqT$UOtcQXfmK!9Uw&S+Um zk_(i0k#L^>KsoXYOlg9&F^)8UpgXuM}khrz`wWqDBvSnJsl@k zGRnfLK1;881#qW~u`iNdoR^jszWE4V6q)~MDTLLTy3TjaXV)e9R&?uTkyu9 zsVaxX_^2xsEQBP5KYEjNm@QKyt*sLBy=%2oNiPX+-6Tvt1AmcRdV{neq#E}p#1 zzX&@M)O%od_XCI>C}gy8&U@CqD3+GzI$nS*fCbhc6spCpolt|Nq6X z$o4*H*`QF~Z-kFYPNJTHE>Vfsd`+~qrivO(K>mz^#&rEFH)TyJFfytmiaDa3Xj?eI zpcKLuh3!b`zfha zU-#GdUl$F)M*!X&jCUc2`QJ>s2!j6YfOJS3*JAj`<%cLwtKUt9M6)qmBVW^wzrRC! zXnMvu>Ve~M+oms%-f^cEFednhn{ctcA_xhlvw7o`93RE|L>p`^oq~09rR=R@cMege zGy;&2Lpc?ahtE%;0_<#U@`GF)rwKzt)y!$TeQMfg)B%2dU*?$7e*O9!>)5dRNfg;` zzg^7GYK8JkifBN;D18X*!aBb(SW^|`=t#vuL+F}b{z7-@n%}2vu;}ZrV#e8P!oRSP ziNb*#0h~+{Of=6H8{W22R#O}kP2h%HjDcQ3wZ0qw(|Eod`7N$>cP~tcnibmS)?%p3vVfCdAH}@IPcmtpGs4T$km+?>;Z#VX+ySHXxoO>j}e6> zlM4_R@SB1<(?(yD#sb1bb<{2O(Frg82bvQ>20#_$1s!hCfj}6;Q3EW$ugsVm4XoT& z9~oSlCw;a^I0J=&A4}Wm0e!PuVALw})V$bW#tft8e(d|fiY?|rJhl;7pm95PjY<%2 z-1+WrMeKJBi&29x`PRL(or;d?C;I|vBP?1sFHq+NJA;wJ2#C%Srx15kw5J=wELS4- z9C^K;w}dyhTlP8Sn~_Z8sj;6zL{Vyve5KV8798)8REm8633%q&@UA?l z&eJFu-wf$ja!@<)*(yB<@56>V_u2T5#P7;Rc&!gpl>n1`%zjgg&%q}VAtf>LXM@G# zSKE`jD-R#`(w1Xpz4~bkBu|xtyBnAmXqW*$0)w9L zr%ZCN42QQfO|s1aFu$dThqPoWnO05sPL?H z&Ew=Im3lfM2gFfhIppmQ%HY_-od4p}70JP`=h_ElhuYLbmWO-V>6v64vJCV#(%qgi z&uM1h)LXY`SSe1U>I|Zh6k_ei+lxa~PO*bQ)MhWpL5}JjvtYVI0~mRlPD~TVu-PFK z-La0X_^~wA))xyE;C?ce^y5J&BCbh6jE`5*Q^Xc^+^_PbP9AdXRxcN+szlh@sMnr9 zLHVH8UK3pPjA>e_J6+2SUs@eP_B%$@_>x*N5F!pc8?+WVzp*AvH>6~28p`yw!X#dK zBE%<8;}otXxiC*2|RGkssl-rsq;K`K7z4(I5^!?;;N&0A9i6ca}cyxXM{4u z4oOu>h$=Xqx526fKGE4Q?yS)(kt6uGhwoKw1dE{#))K$Pn1;81I?n7SZLu|`FpLN(3 zu%3wuX!kR0?R$!np6P`P+UtQ{welNH$n@H;D%Hy~ggba(5~9hHpe21a&`x){E+{0% zY{Is=rXuLohH%mo;xwpqH5FF_@BKE%_CivaLbJoR1zkrh4dpvM!JR-I!_Th3;qXbq z;jQ*n5vBm+GX-UiP1*X>q48Zb8po%321UiG;K6=S-ewJ00dL(9Y;Ql)_My%%%56S* zvow22t+pn}9$-h5pvVN7g!6=|;D?hhk|xh(?8#;EXL%&T_9wP_m4?H5CKb~6 zvXB%sMta(R#SSuP(_FnqX=}sy+5637=Dv6(rea6uO0#=_RfY)LTr9cB_$jZlhLK;L z3!S#UvJ(r25-*c{WEim?KJ0m)lwRkm3xHc8y9?i{Iur#vMQb$>fysyO*jlgx1}Yut z1+A)HCF3e%`d1aiMymSJuFmWFwh8&F*jgqP`=Mn=Ftf(IV3I3%Hb~N_w%=3PRveahMif>$h2FjphS}fKP4^@p6ST zu5g#^d7FHt@LMOZIBu*o<+rZwea2do(3;PMIBneBAu^%fFC0{IKPmkDGY6aV0WK;h z3%N#K!?TBJws0{~=E3_tT39*Mm=nMtS`*}PGtEQy zZD4?iS_%ruIN$xIV`jXr$W}kcF&E-cs@NZBKh^5x6+~ZUqUnZ|@F!`K!Ak^ zX{ENtdipROvuEVmZ1C+Uqt*o9eK{z38dDw6pByBG=`WoQvB?`$5D|6>|L^*@1hikt z-*Jg(BLH}-nOs|e(=^Y@Z5V}*(6y|qJ+$k-?O6tsXLpN0f7#d^`fMqg0*`#(qR>Jx z3zf?pR-ImWwF)hvk~_fxBH8(FQ1TzePRZ9SK~K@w{m`@$KE<}BYKMa*)$utUt z-{Mn%NVot*+&ZB0=Y)7iP_+Iz?XzY2U?8kF|3gWWn7vIFwx$k+fkknq7Py1`n(8+P zwV@rwAMMRaZP6iB)fFfSkoq%~)PmDAT;<2(b#o3j@-L%GzAk1bDpq}SByQ8~qN)^X z)UQ9QI^6s;a?djoc>T0^o_b)uH z{a@5UZvR9d(=fE`)$%}=BIvBO~oqK(5cXgF_kB< zrfL`tZ0$w=_IYXn>6lZhKASreYwA7@$d_r#R#h56 z+y@0Kr<;nOL`A-DG}6b3XGtGe{}7kN7y5tgSVz?43P$*2<2|`3Y|0%aep3s@BqJU9 z)dVRt8Hg)g&KL|zJeCO@e-3ha7mV@ywO_scv6L1(Zb;CEhK41960R{~g_PclIm>VL zx~)}`@EdJ)4Z9PiV=U@qsuX=@;p|m}jeQBom5YV6h6mew^V~BTDFMO>XZm&+Qd1!~ zUqWW$0<{ASt_>LRBA?0x!lSA2E3&}T`JM~VCu))vwC|c%K)#q$%{PXFpnavr6yX#g zE)?!gc_=*Qb@@d+?(Fqhobz-coLOI^dr-Nq#kR9rNL!)guxAi6y?65E8f~VloyO zTheuAfr zMqL^OduPxG5K~GmYZ!p7_9_12$Mw`21`|1*-@+K$4LTrh>6Q$ufbg#D)gn{DvuduD(6eaY{4q+(hxfUXC{ z-?C3gOhK^dGutWHUX>3qe@U{ynLthxm{1GuAH$;iGblD!n)^cmPrxpS*`n6PxAAgu z_OQ9PtMlUG+JvIU0ASG4Q7yj?4{+$x-o#D5Q|8RZy}ef*+iMys;dS86{)7acBFRE? z+Z@A)>~mi%Kk5On5hXq2?b3qXaxA>yOnyD=I~t^ZdJo5@4Eipp!kRvC zpxxN0DCqdNnZ>3av}CkomZG>gGun4Vhc#E@HJ$kC6bbxIowsV$j{^rZh-w*`0%C%O zwI(AJNtm~uF<-AD@K>&EnW*VrstJW3c~;K>+gsNgU8+iPggAK-FXEcfU-4Cvt8nkF z&7r}7>Me@&xxjTT_XL=4AL#lY8H0Cxyu7ylmP0s<6MXqQ?NT>MdrYP$J=$0z=RYyQ zd!sR#`6p_%HCkdD_>jTAPF5{&^;6S}`DX*Mk!Ybm(ZBr+Z3to8NblejPItKB^y9*#PRs~HP<71xr|hF+ zNr)3W(s=!yxGj$k-}+U%LsKzS8oMFYEaQL!NFGk4qo{3^rBejXkHbT6ZYBEH2=3S#FBxtRb zMzkLRzwZ2{NxywkGr7_(e@c90@j55Y%r+PIYt1UPTHq-CQpTz-{h3SG1<-1mkx+hc zKW(*kqB4F^LB*n7CRFXqdl-PN;VEN3-T0v{DiQX~t^Zrbyon1%AP=^uHuO*>o2WW} zTTZ^l&d0B&L13Z*3Q)HP%2Z8!hjG$`)>Q6!>GeLF*i}yA64rCRuhjP%=|%&eKwx@~ z50kInN_@g|&tpIK&MfUX#T`_@HNu^IwWfPg(KM)Cw|;@pofDH; zY23smgAK8lFHb&2-U_H4$mm1eg`l1}k(S&?{p6Ba^$p|cv~l(_W(XKvhNe>%hf_2i zn}(-|Lq^0GtFx!>S1|YH)rzR!O)?Lcz0d5t?h6>Hm47q&tDWB%RRTQvY{6IY`a?FC zM0U3GJJWDOpRamZ)J)$`Eu>zD@&sH~?iF!V^XohTShc5~(!uI;L67{3+FRpf$)t#u z&2Dr!r0wxr81cXIrmjlOwkSQNMrCFISq6hIPT$sI5<^t3sn_V|PBM&)!3PVzuN--%yNeetC+_M z4wlhhyvhJ1ZaIUTJQhu_T(yZIMlpdca|KdIZz%aa2HQrt?nebjl-GMPMzD~FYK^$& z*@0Ug5Aoz*7*G18Iw!=<{BRcSm|w|SYEv%@M{hB1G;6&y&!AG6hszUQWz09!QNP3m zW8ywW$51HK`RId-DQPB+32RrNyC&oKp$?MwmxZJX1ATozO`8T|d{iGcN_b#sH_u9zK}w=NUBl&By6l4eM{b{2-w@8IC|0wIO%e z4<-Qo)S{;+J}2rBNGPy&~ua8I#Rjv33xP} zR@PpwJ)#W8E;&uf|0n(WvFvf3>#5Z7Gun2}(6a6@tbP;d>hl{AT}3o+!c8}Q0$RkI zEUdU1aJRsIzv|pdXvtE;02(^m2@@_}v9;3Lr zI6Rm*P34V`scTxGnQ4z0qGnp55Ry0EuXL+uxn)Lj%!@o|iY?H!Wn~Q3h>}d6&fakq z;VVnku(pn8Fb>Nh^eUIaf@-P<6Xdf`!$Mz*>l;{f#rpEa-wK^o>UD-M3O`ig!@Ya> zYGZnqQaQR5%konpv-1gxnssK+aABhdB{lST2$jmlg!=YZUW!3EZQStsgnBXQAfE&I zWug}5eP~Kq{<*5FRu5T8(v}T&n(Xj{9LU0tHbVU;(&f*hPYEE;PV8PfKCQ0Uny%_A zzOw$=>$PUZPfKy5`y?h!5wV?-y~V71D87GxAXN7#(T4&DFBU%c7GWq;z#Q^*7b7z| z8Yw{wTx#U4wbeiMt8~eJuNjH?)!(rsm5kdv5!gT06YY!obk>Z^f@Vt=Q&MyRpVpl= zj5k}qfd3)&#uce&_mB>sU2{jYy+-xlkk!$L)P3L-F^ctB<`yrus}2`V2%@ce-QK>P zq9v&%3kCza(~3Yo-l9G)`ftPY0mf)Vc3_ZNI1d!_h}VN0CJwk~rW|`o*X@I5|GGCy zo%S4`R<+=7j0jf4G86Eh!d-fc^Do#Igk?UQoii4z|1oiFj}arUK@%28XIXT zbeJ4rMM8re&aqf?QN~&^lkbIdmFYDyA>e@~enjH0MzB=L4@p zJUbp1Bd=C)?uSuB>+eB9m{#%M@%DX7j(0CPM51+1uTQ7FnI^p1qu$4WOflTd3)ozS zLx#<0Ca094pd8!uQAqkip2{XE9PgDYoJVo`cNcv2j|+XxeBFyPr+=aAM-*F3+>-ec z@w}UzIKdLjU_@sya`MD;%Llf-ZI11#@?`@q-=LHo^=vJ!32+(m{CIe=!A8l?6yGlG zW{PXM_II8>%Lw2vB0^4tY8Uz9E;QZ7znjto>tBJI&2c{LD5`z`gHvJ{WFT1>(D~VC z@P%p|)KjI^*l-Ej4#Bg+gTiT`R&x}Am>Bj9^2?vi5|`WD3IS~&X#M|Ss>3f zI(AJcP+&~NAAv%f{Z2t8@V2cdPeILM@YSiFaf11{-k)m~BnkIh1?QL(ut)1-!&!kr z4~}OHO5J)J_@}xuX~x-+>=pKbf2pzG0DANirsFgu^xe6%3e|s26a2&fZ5L^v4tR#e zFnolpPdBk5u}={#>Ugi|GO(j+gm3R;`!T@wx)N(c{oYmYAWO{WR_JQv3$3I;dkd|k z>LwLefEgsvgGo$|b7beNdtf;RA%9IXzS_69=ewT7?&YZRb%1Ee)xsSOZaH`Y6{ut% zB`qVI1@Zd0hMzwC)eVCh_85%uoa7ZK;?<{1>HjIPw!%>lSJh3-hE-M7Q8R$uYF1e+EmO$Wx% zf?mt;*lOA75#0H*Q=_C*4!-t|0~zf``I?HE(b4lytgEg%?4ec@TrcKge(NalLC9wp zScu5&o0q9e&J9p3)P8+q*uJZaCG@Hv;p zKS|Ev=BMa(=*;@UVe?z})b(ad&o@(lvfrxti(FexpS7>CJ-sxO%_g?#`4g|NRTKWc zu6ZIWn^~hGnJe~azp#=~9Uxw(mW;Yeaw1G>vMdul@gH3OQCA~v+jfHz>y7->y+T7; z{WI~XS>$xaUpM!|{x#Bc`u$K_{q^XQw|8WQ{(Ak)b4!b^naRj`C%$BMaVjX(KB@^n zmBQ4ngS~KFO#LypaOd(*@}G()4yNxnBX1LiVV@qP@}~X50-V%mqFmJ%>32^a3$x-s zUZZtfhTV3LL3j)z&#J zVPDVJ9!sgGeiu=#8YXs%jsqWJJF58?+d50$T)fP`d5oQ#!c892+qm5HeIVjvl)6PO z-H0l1m~>Qc#QoOJzQzAf&DIqPs4x&(>bB4dRQRS26_!Kxe+I238^3w{m!qA3ztAm6 zI1|0C%l4%3Uh({;F4WBv;GfajbzX@tzzZE(lCe9MbRCPo&Q&UJwXy5Fhhp#zwF2#i zO+AEVfSR{tT`Gz3>V1qb+@4PR9BSn_AvQuOhGu5{wM{e@c{{td4EZrP;)^SfgqCZmg|?~Ix4j%Djd_wc} zYRrF2P0@36`TkSy2U87WEXp)*uC3futdfjFYlyj}dF%O`LnM;v>1t>(JFzCd0|+xT zQFH&d%R8(3;lTU-M4C&s(CkHiDsH6R4)xG&Y4UC#RFUwsPw2ZaMSro4MyeWy@jz8dua= zXAxjQw8Z)9;$qLilvNcs;`LhOPdu00;LO;zl6SjJkB?LyoLMTS%`H9BtR{jJ+1(+I zEBz!+?!4H1pNHrzpX69#V^gL2RId~xRO&$cb(kl##xKP8NTa~`X-B)k=}EB6Uwc1u z9&j4t24u6BqbmbeWQeDSO{s|yvok=pe0{JI$NNDUSvbc?@R ztGsgCt`dc3EeZGUSyg&x%E*R;4=4JHWm&8;&a}4JRIJmN>Q+G` z^tnjA=Z=(uZql~{~d<^`oE0kQg2Nwjk5@4>r0(( zF;|f752JfK5=ZtVyZzmS=(_%Ii`R`iU##k-4vMm-1^?{E`!F?Ulv=z$VG7OE;oErM z@HMT_t$5eib%WgI3IWh_W+(zC83*u6T#Y-y`enBn?FXM{J@Lexvn3CV)P zJ*ibr+I3PMtl$j==G}=&_4nXlt%Obs{FZ}6xm8ZfQiiK9w;uD4%d<4}UX;Y0Hp)Cq zlsCS5#9n4OlrLf^pYkB8i>HF(HKKK8`8OZ?BzEP>42>MM7B$@PNwB3-9~FDz7-@rd z<@$~T&u7NuM%+}n3c%Uw8>99pLvK3Yx!7n!6p(evX4I}K&pKu67oxeVj(32@$(>8U zNb%e^2TLJF!cdK1#+o^TLCOfjwjDgm{JD;P!m{HpA0{I?c_bJ|?P|g^#bBpPW3PUj z`fQ-J`mD+T=a$0E&LFt`@)m8PZ&h4fb}K>rzL)&7o7^!)+EKy>^?htavo6uh=I#o2 zIaHrGs9_&q40z>-yfi7`)0Gdq{K~7LKkdsmkVjL6_zWJHMg3?a-tX+Cfmq|5nT(wW zbg9W&wdiFA6)Z`*ery!W3WL55uLoWyA#n()(VF(|KGKkxr)zXfG^62FmHho7$Z?eP=-ujhDk8Shfdu~Ib#FV3E(8D-oi>u~5c~9YR_XPV4ZjQ@Y zAIau3VqQHH90$$Qajlfc^+DUDVCgrQ4$2$=r%P_*V$c);I^m6n|EGE}MZ0&WYgcJ< zC?OORktrbnNmHc-08fW%-XSZ_f@ar^UT9se97F9W(u(ZpG`?pRqDG=LDSgo1Z4QnCh}pjKu_59eGvae5|n2K<$}=Q=w&xv%!7*ofg~MFu7aZt2ND( zvu>12a$iwsV|PCoCRYR#7Z`ah7EtNFytI8Txq$&k0Ufyh!U%SN#jmFIm75hp0hkW<6i{z&a!HpR8U_*fth{dB~KS(FSS z6p+?Fa}WImaS|j^IOYLJvXLAzNamSxDnJBQ8FL2_6duzVOdLRb#F73-2d1jYDA#2t zQ7$#DoB#fOJCQKoT}%IC%ApCCfYxi>Q#vrm9tB$K^Ey}|^Fev!^tpiNE6}Yb;z5Kk zGBO=o9!S&lr{B;!3`9OgKykG6v=Y{lIYI+J53plduG}uNIYq9z7sxqmB3@|jVvRC` zA8N6E4V55}=O~x-cOZ~2-%)pgKp-yO$DCn?k`4%TU^(D3=ljbl5XfZ}RU;4>nQH$5 v0?~GSD|tI&Zx_tl{qnnn3-AY({7CDEf+sb+h@@&T%0N6^y_!*jgr!+go1z|NSC0LbV#G1 zXV7=Q+xL9??CpRAxD*GVvva|EP;H z3pt2b*@N183HRsihNz|{8_nZ++y} z-@m`OuHZUC*;o2^K;mz2a~672;=euIOxo+eYao8?M``f3iR$yte?S*KKmQB zSp`IE{K(2bMOO>I_;LU*ss7j=@bS$@p*AVab3|^;Ny@jg0F%hgruBQ@cVwcc{pY3| z5==)9bvD4=2T>#~>U*n>k#ZUBiIZpN<>!16Tg+kiWS7>@85+%1O&iI)W^9@)S5Im} z*$J9%e{S-4eRg2=W!hMRT5L1)`_wjwBCCzOPTogmx3#)<>fnPPi-glc=cs#e-3Kjw zZxy-kRDs`*Rs8u^DrJZm2hBwUOF5DBQQ7z1X|QX*JyQK5u(vvN@`Kt$7jMbz^DDgB z(OsZly{ijf{5etm>Z{(}EFbZq69NH>p*Yevetk>Bx2`7ny zV~4d>)sriXRkv-uE~`5%`rJ9>e$96dnsa zqc+guTjAVuoL)^p=t!+5Il6SG>A}^x(%>4v%GM3+9#g}24P)jOOOIovCEDhi^BZw7@P_hT2)gzC~tACys=l@jKiTTO9&ceB!)eqcni8*;NO)sUY3G#V3wu zOAYDXDp#mmqemIJl^AzDykk1i?c5GOFL>!#PP#@ zss_GBhIk1cg&T^%jU_%gL5He6Imva2c8kHfqb|3_stm^ITkz--REfx@juy|ERKMD^ z!$Lo=e+ABg5@Y|oMMZ|`^>#W@C^G{aU}jc)9yAeqA+SSg)sT*Db?d$mYp&QE0q4nu zv?Uc>rrg#$v~y@0c%8?@CS|L{>&chF9Y#y@#KLm6f+E)dLlPIgwZ^njVj7O`s2exW z)%xQpMy@=D_ER?GGZFhn*!8e!$?&kUYs1qu%yNB>nr$mrr)Px>RIB%&1cXj!1%vyv zBgdSj3pb<(UOKJSk+q*K-d@)77O;*=yq#`VJ-AI!$l@pFt!aCd`Q`v?i;k@?wixM%N|BsnY&yL;0h5^`r%Jj)2=B9j!*fY1+O$JICvVHpFn9JBeDZ zb=@M~OhC}olRkm4co(k?7={;nmDN>ZKW~qXWh=fTI5OrsM z(PiZA0LzRBsT8Jh+8o)gcoB8+WryPvP`k{1H(RK}Gc)$$CElH%7koLJf;-AvAJBuZ zD7$@Ikdh1bk@_B}V{|_=H7k*+VwQhh%H*mleIpsF%4kZUnDJHH(B}A%uqFSO{Cuv z6$4N+Ka|W^+bZICWUtVf+REV7O-xX^Xv-WD@@2_;NW$y^k#6~`Y`QnE2$bUPl5hhW z#6rvceX^)IjI;@ysrFuS2ZylwLz~KVV-yf0$vD2R20Xj6M_sftV%>DcxA4{}7SeIc zE@D0?S_E}fEo$#m4?FRg@H;R!Sh#f08b%AwIav%=$jTQgrH(D&2pM^$Ko^ybBJ>`A za14gAI1K`V-AW{$1FrbKvWgaqD$}`vg~kS`IaO-hE0ai=EY4t4&cg=oQB^6BidpAk zYeNX%e@W9zxlX3moIuqjqM@v}*1y?uWh0NcWG3CeKUA!z&hwB;lC6V7K4|j}FOiQM z?kG9b5kKszTV59Bg?7pfc12KUmKulG`_^%n<;S}@4JRk zCa0&I1d7uKeo~?_Ckefx9_Gu0y=}1iHI)bAH*W%us{$%?TEFVhbgZ^X0x7<_5X|~r zQ0xroDj-5~9FffoA$X@RH}%Xiby*SYw|c+Q3;0@0ve3_)63wy!`ma~X;c$RcdD~(o z#^aBtvfY5-0VpKZ|y`=sr#p>mD&da zeaW3xuH!ub2ib5s;Rp3-v#sRgbWl}}DPOnaDca7|wZKX(Hm71Rxq_c0{FL<5v8^RV zV);Ixg9RKXOSKKCZQ$9^%DQ9BhJ4Q-cEwg*<=!(D$ za-iBLP(^W-l3zr-O!hDar0Sq;B$FwShQEqy zTgEk;bI67L;Ho-Fpko1Tc}?frCRwc4+1f-_H6c6qxg}=GwdwC9;%L!M17h%C!-3B1 zVZEN1^UJ16Uv3Iqa=ueCSgm&RStNb}WcoRUF)>zBtS@)ewe7cv4(0dEIf!DScSt*z zfemqDs39q_pg3?Eq!4`Q7N;r>H7z#j4}LgutWapk+eKo`$fY5lHehQs{+KoGqQw9z zLt&*vToa3zyQOltXoTHFxV$AoL%4}H4I^>%=Cz+x>}~No!IEvbp&8T&C+uqxYz}xj zZ}Hqn@T*;slDlU*ONtL0Q5W~8)5a(uLZulbOcq@3?=B%Q$T5n`sg1?=$*>$zC}@ob zu)O|ruquI5x9XhhYG(qCYDLp9$m=b6r zoHfpjL^6gy&CemR?F!+K{G6w(Lk5jSEP67xpV{Dx2UzOF*e9;>h@7kU`WGX)+tH{t z?oZxLLqpQ!cgp5mR~{kbGt7)13_A{e{KzJaCs4!{9`=MNY$_3#5zd{XL8uZ-=&P&a z^+8~Bmj4xJo!>^mVw-+tuY(=Y-Ok0EL6!MY3zkABZM}L6uf;Vxh-yE;=D+0I!U4=S zp~iP;8LsWAT{GRI->*%GuaJr2dYi}Qy?4>SnD!y*-kW~*7vyk3=6bB|Z@Aw2XT0S1 zw|j-thrP0t$^{^sq-h|r=Io|i4l%;_A45dvlcqW*)s(neUIaG76{eZ>+#V(}g{aiY z`|5=hPmtnI@pw0JYN}idF=<<=s?efaZoXoMx<72pYOI_|rZ1nOM(Bhz(v!MM#puHe zd9Pd4LhF^>`py}f?SU@-%Oqan9

>w-i2~!~1qhzq3UWZTT8q%Oz*~ff@3r!OYhc_>v-r@tF4bV%4D zSyCjuD_YiQ#$!PIE|KD?yJv~d6H^9**{9v~Z8EnQ8>QK?MCw|@DP-`ji6zA`3DJ}U zWmageCA*Yyzc7v{rdtboH6lys<*3e2;~v{pH2`Edb&?t0%mA5rb;so)LR84*4k#kbI7E=4_>{UJEMwO%#B=N{Y;$y>`QSBc3v zHk~}FQ|Cmib<{6$|@SMv1TBwyM>TVyyc8rYn={Q3Cc2ltG7xdJJM_jlAn{VD? zD;u}~Tqy{Rff-AmOW(Z|&!!uOGZ-vJJG^=toxr|+U;O#l%w?tYDW?sbVL zUy^wpJk&ZD_OVkJ#YOq`%H8cgnehjZsi@*<8;_jLk181GtEV#=Y-mK7TlL+%r3rEx zmyIh6W-ljQ-(AHO|9oOM>df+XcO)k)aZIE0;jt654mcmm%_W9Sp5pVF9p2(`5>5nee`{WK+Mk*xWwD96^W!sZST`9q9NYA`6a^$(Z zI2C*^-bfns_H}};qkxK%F}*{8J69E!_Vc8`;L6#dnmCqF>DuojZMukY;FAo-*7}kP zsmJOB$0UI`XHtPIWYb|o9LVwb4=GntBb{yiURsml^@T^Rz;fdDTr0kEDqomBpr6qg zal1IlqYn@bA_-#Js&XT#QFb;yoywb5Znz33wxWLcAX#sKC4)Y=Exl0d)eW0ZyD-aZ zDP`NwQ}!tdHj5pe-g*I9or zJdtKM{_(3JJ4PCRm;rj_JU!+iFE}}#;1XY&udwP;VMne5!TeQ;9~+kX8}hT_2+C}_5|?~nCiX( zhlgc%R4Z{(muH}-O_BWGvnKHC9B~v=dTud6LNa>@&04I0@4c@Dc@ZZ25_vPTd##Iy zoAYw>zIKnw*_wk)TP-!U@PFUUTp*Dm|z3Raj;)yjgx?OYTSA!dgQyqC4voU#VLYFP>--mIcX< zr051)cUO>&JTFLT`i=rcH1(6u5ApqCoziJ9s(7b-q24#8H{EB=YI->lP4Ea!~WbcY^} zgiwOUB@%h}w!CKEt;x#F#8qgh>?>U*$9r3WRZ?R{t)8s1UJwma1RL^)4joGYAjWMi zafXx>!r^s$p7NEkt>KO{?2!-+>QF~W;IpwF!ei{lvK-6%Wr_++K6)Ay&uS6M-i@-( z5I!NfqTCw`5DV?NO{Oywm70ls9$q&G*^k;9l?Sm%c)9#YNKOBBeqHvQ^J6y&tavv; zkIJxRipN>1k$Y@4rCjWGjDmVE}3gdXF4Hlp2cG@c=q!ib~&_^_$ z+s$xx(UjDMoH7AijdWTmp{_S;D>3;{@})ayO3eR7VdjD~YPR@rf2 zhI_^R>I&F=(NbcATHxg&x>0@3nTBb-$QjHd$1|<8cB)FJ zwzR=CST~Gwa@o33P}VlPc12)h5YeA8bpLF6e{-F=oNQEcQ^q01_i22BBS zv>_R#HA^;{VEE`zGu$;yyLTmyt>9s))CBz)RK9b7&H8zqZ-q^LAMhA3@MS-YP>Ji5 zQvET~5|5Q^UdL%XR)y*DDHOsNicQu+9KwJnLL`OcG%Y6_4kwc-qL(KUV4<_904UH4 zD-_ga_wHwWkt(dFp`(f25qDm!S=&q!YJF08 z@r7pHR#hcBKM$AES-@8~U-4^?vh$C*4?iepu^O!(`_vO9z!Q`2xvGS|AKgi2J?bT9 zxUoG{V6pRsPJeq^pRwUxU8e+!t(m^M#)U^Y-4SF|Ec?TlM$lTHLTPI?G9 z$R-w0z51oiVVV=kn`BCUDX%A5vpdw*W5?j)T~B(+;4r9V&RtJwM-r7&#?k2Z!CdBI zcFMGv8lCN=Q8WC54r5*4C6d}&sAA9Q?WZnlK{7@nndTw2_-0*q-EzBd3<&^TX%qxx^iwEDHeN8AZ%PF98-M_ucRP(6v z%Ef*}0RF}|naFRmH}3ly+D2c8Fb)F~< z^RR%($R_ro6hq=7Q!X2cP!SOtN(mg_*o=Y_Q)}l|SS*X1zgc=texMbYHLKCdV=Xz1 z?esRun23{JU9vYU1l+mAKBL#hyckpjzH6&D&L~1%!!mvt|$`C!#e!Z zRKm=|ggUQ6-0-B>cehAPgLy@t#vRMQlDB9G+irPS6hZRcJ(mMn`VCx;oXFpB!*}e! zC7pWo{1qh$-psfWO#eXlBQZqS$kO7@m+8{iZ%f3tqjRx$wrp}YY$b8YpU%{m6zn@I zHCYjBL20vzITKj;j-$;&IoITJsYVxwvw7_j68iHK9F1`9j@qmzQZM0Xj77>b1u@H$ z6^`lAs|((;wdely@nHHbAaPkn6Q5V}E_l1E{z)sl=8Q_&9JVFk!sh|hC|Y+$bI#v0 zE%sEyQi0hJN4bw|8<`80D{Z=Qnr(}AtwU%hlSaf209>C(k!LYGf#L^;0Kte)&+iK5 z#6c`7=xa4&A+1Gq{0TV__Jf|g=VGKDJ=ip5H-Qtb8`&jZ`nS1X?A1 zfTW4^dNqZb5wjioLr4+pjOUU2 zAocUOvm6UB&P{Zgb)@aVeLdgv(E^8Z{kLkf8IYx@)9yoz5xWL!ztse`eoEOP%8oqsIyaHY)3mUiVQ|Ozn*GO^-F8}w8W383y0(SyBnNg*Nq2nTZv19b)GcU^Q*Hyt5eVQ65b*3;Ny zu{!Kb&zpv&ZFeoiH?6ZcWgkczcCHIoSHG46ED)uA(KVPT|2E#j;0^%t0vw{(^wyc z6t~FTfl`^VdT>-fp_l96y_NJcvA*w8rODwGo>7mDXzf*9GvuzFKgbA>y)QTR!&9f{ zpj?ctn(#nq<)~ecH-@($)|~g7Z`McNG>?(s{0+M`sR!zm6&}x4F7$dL1J6&fr;^x| z1C~&eN~O?^Bk?G{r_GFaGG5smJyj&DGF7!3FB@g(l6oIhy5h9+IB&>ilr?ZQBvPZg zy8Dd_GfAsV$miHck`CmuM`Z+^;}*j>;jAl1+um)`PDyN!&kh0u)DDgv6xSfdEe-m3 z2`#A;lPwd0l6Su!&DOYA$VMNv&zWs@Nwya_VPRp1*()mQsVge}?e-3HXO|t2D5LiJ zCR4YyVKIQ_0WHOP!efXTInCYV8?>DY_Wbo5cih+MMD5iKZZqLehJ><48xzvmS~B0p zm*2zf>Kj%cR@OMTHn5{u>bxsAKj;79C2p8aO1aGtUcN(WqE1)$?fb^0F928M6zCO{ z;3c^O0yYa$Z95A~o0c)QzIop~NO|!eVaq1^#H~jtzmSL4*{^4xM82*N;OkoLS|YGa zI8EGq*6*6Fd6fhTc0!IGbiv@YW8Lm_bQbrF7#H4SUw!teu0L|^ zPfl=ev$*GOs|r5D!lE#@$K0lxYHL9duFirmq$?aH=;Q2$xoyS5g39^0!4QrpG#eac zYwsch*nQp(V6#Wc08GTRg|*!jQFiufe(oqkKOG~4pCdvF36PT|hWbD-1kNZljLpZ{ z$;AWWBLn!!3&DK9oE8GG{e++$WdNqydTffW?kF}7YHCr%m#Hw+CU7H zRQ{mAjAQ_IXtWzdNXXmUThJRU=<04OBqAjxB_s?I0)c=S1kl6R1r757x_EG0QvBjj zLU|zE?cLD!t}bksoG`enCt3yoz^t?VL5^8PDEnY0|4?u_{z>nFMhdB82BH{$FaRNt zu&^Xh7z6}K3H>gQS=HA5Q`*Jjk0@f|DdYol6A}>=7IJp}i-ZSS+3WB6{-K125#~}` z$N=Tx>gkR^DSM$@&>X)jb#wCc_+6)`2kLU_r`=9S8zGEQKQ;d@qpGg0_ovKd7;WvH z-F`}3qJKvs5r5*`Jl&msVvq!Kxw7t#WH|Q_^T(0~VLon+8mrB)@WB`};LXfTqdnDxNS5Xm331M-N1W-f@Ar2H36%hwY*?=X0 zV&b9*8x$NVEQu2SjY{3c0}XRQpf0H}9{fQkM_q3dpssRWqQ?^az>Au&{7abb)xQeYq)E-DHXm4b@_C56FKKuMUe zBwR`aEQMM7Np-mo5P3ay830J|mwi8H^qgR58&`K{OnKS6AYHvZ{th;>cSaeaVV7YO z5f_#a27$qnB4Dtvq?p9tLAOxu9+))0WEBw>1c838AQ2E13?~eeZuZVFTa=KSi|x;a z%Z-6x+`)tvc3B-5=AZKzZy<{9C>Yw+-N@C|Nd|Cf8`~x2&!S?3{!uOvEmy=(!Jl9h z^0MOos5u3gtR*u1p1%z{3Gz6 zOa_>4=Ye+jRsV0C`rmNSUkR&*k#%+V{Y}3i>h7=6ua@Lw|1(r>jQ*Xm6N1O5PTe1DJir6xYvvX5;-M|M>oj_qIb_CYLZs7$_nP1c@4n zh(p9AA(+JYwcCH}{=dgPlq5)49E=bFiX)MdKv6KJL}4&d8z2HK0vDAO#XJZQze?fH z;Qf!?1BpPuk`OTH|A%`v;$jk#mmNa_(?fuwAPEVKdydiey=)`t9^&Ctsy3`G61jTm~mxjEUR-2a;8 zf2;cc1MWBZKRV2RC;mI^m$ag*n=hsZ+o5&6UH+;1e*pZ&pkM@{u8c$DFXiz_&?e8 zpK$$45%`zD|H-cZXW=6L`wJ743+B}Bjd>m7eMbrh^D2b^uBobo^%6@5i-zDG_#0-1 z$W6`60}JbF*X0L0h5sreW|9!CuB}YCOo~fIhy695ejoF`j9*^al#KnwC?LJw4cp++2RjgBMNs%y)U_5R^FeehXa7!H8>uaS^aiDtd2b)+)!?e! zV@`?80Rm@`qK=5oSxVrPn**XE2@1s7wvdVpvKSqoA{ zt2jbaMg+?wsj!GK?bq{8x`l^mZB(>Xzfe5QOr=q3CSFYxNWbZ)u*Dq xuPC^}%h##$Xu3w-CfTT>h&u&iTwE?TmZ-if^z>oH3MP_R>dHDwRSI`P{uek%!`}b^ literal 0 HcmV?d00001 diff --git a/assets/bird2.png b/assets/bird2.png new file mode 100755 index 0000000000000000000000000000000000000000..73e9592a7521b40021a5bf798d2da6048c8c3aaa GIT binary patch literal 11540 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 FzW`_FUt0hG literal 0 HcmV?d00001 diff --git a/assets/bird3.png b/assets/bird3.png new file mode 100755 index 0000000000000000000000000000000000000000..d89bb79bd211f6d7ffcedcf462a245746f604667 GIT binary patch literal 11636 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 literal 0 HcmV?d00001 diff --git a/assets/ground.png b/assets/ground.png new file mode 100755 index 0000000000000000000000000000000000000000..70105cb523f0b40da6e266d9f6ec199db9a3622e GIT binary patch literal 1330 zcmeAS@N?(olHy`uVBq!ia0y~yU~U1jS8%Wa$sH#YUIQtXbVpxD28NCO+xp&~ho) ztpi0)PqaJ~3Y`udJdqq%y*4GU;?mmp)1U3A`uFKICj&#nob>PeffgL$Z~}5xJbriD z+TV?lfuSje14u4nQDk6nxKddA{g;lvTYg^t`~7myKRtT%?{(puo7mvL>$Z9z&jdCJ zFfb^*3iNlITWDTwh6Qe0e&ewd2LpqED%hgBpC?xsze_uh4Su^)jqIA{c|BH-^Sh06hD~*8hePI95R#3Qj2{17*xX8}8ivbG@JV6SGzVqhq zZ6$$m&QXNqJaBMAv~hwWO2ZKmbl^CGco^cBQN^R70nJuJDs4@l>a1rr4&# Qz(Rz<)78&qol`;+0E%l_EdT%j literal 0 HcmV?d00001 diff --git a/assets/pipe.png b/assets/pipe.png new file mode 100755 index 0000000000000000000000000000000000000000..03e3e82ceebdcf7ed1c36e9b35114e2b0656bdca GIT binary patch literal 4452 zcmbVPc{r4R_a5tL#*$(z4U$xrL?X$SJq#oBOboI`ma=6Kl_>j`WUY}UHJ%x=jU}YA zlwE1`EfZRhWk@BC7H#^ zw^v&45ANx_{`qQi({e*3oNwu{U0<4-0bN;6G(GVhBS}2mWINYa6TYDx>PyBEvRng; zL?IcMg<_o^7UN!tW7i%2Z;99O3#U0o@!|>J0+v%<{(cA^2`1=Yt<$@c5_Z8P#ufMnBL;M_SM2udl^K$8;X?Net#mTiIN4i{lC6Pv+P^j&_3K z4PW<~J4U}Hb!Coa3In?8S)>3*T6safx(%%dM-Vd*P)n$UO#uHfs^K8!u!w ze$W0`5<1iBd!}{mal_Tc@0ZuVcbuM@9hhC7nq|cg%8NerzLByG}tJzqGM>!pw#_Fz)p0yJAjpvrt5D^A2R1oH41!TMqGa}kijPzKQ6cmI(1e{hp#eQZ}xBM zKG|3sXx#<%1zrhG%${!j-Lbm1Kj08g{MZJ$;VNtL^7`jbYs{l#cOQ*4udZEQUz;ek zU);E8dv@jHDfG&R7wJ>8VGDY9A8k52MJ>;-udeAY^ei8GyRaF#sw<;MLkdFeYT>|9 z+;uWMY0g>t#VeIB#pzKr9S_>%@)5ClPUz_RWU$A*xws$yh7s}gJZ}6DLbx1^{?;GR zRWMl`RH$76i2AySZHNqC5Va=-YqWsXXNt~&Nz-Q&1Fm&O&otm^!OE<+0BKS<|1IUYhwL`-3 z(T`Y*S>+)-%7^1AG$|3XZ=js~@)g(1ee0oOKBZ>fCMKV^Gq7Y+f__hKP*q<&_3$mf zF%C^&c@`Q$zZk{Ba{squmy*P@II26=1OpQT3*p&ql33DSd{+GKiPcHTXF9HBZ+}tu z^0?C-{O?F{9}&a_JOjN%$7Ck(b$Lfje#yP4^hU=Vx1dS}IbUd!&-xY2+%(ou>|2X^ zE0xMcSHJ>lCCmg)%&}g}kw%lx2BNqoHPsZex^u&1Z zmlu`b8DSG`mv@tB`q^Nq4tua1YNp3cN_n#d7 z1e@}`^#>Xhu#)&n*e;`G678C)_DK9X>KpeUgc&y+-3@b=QdwR1%o`}I*WKR1!Ao~Q zk9Q}nX8A{ldDssSY$Ba>UTJZM8RO)pC8JM;zPOVtj$iJIK)5}u+>Q$nqbmxE(k)a@ z9nE;4PEYj6Xv?4bbrgX-u@qMhzF7;6!(&7kc3jFvr^bT(lc7EclqmMz?}go~JLiqD zR{puM>{hpf+#e6Vckn3se*IIH4z(<7I9wlv(mSm2v{2g;n$)#e4aP-3!(`PrdyRrH z+qlW2)qp5h=!D9hrQ0!WTzx^+E*d)q4m-=>rfNWxR&(uHx1zOX|Ck@Q_cN{D!s*Ab zsqNQ*Gd>^uUs-j4pDIl|dg7o;ZU|OB9p>JZq5Cl7q2U!hKaA4!uMjl_h`wq509T~t zlI9Oajw(^fWbz&7Kfx6UP+j}!9^Ts$<5H8D(0QEQ?t;J+Jt(@f3e+wg8sjfGb3@kJ z`>bxIz7UNKGCoixDME=NcHmCVp{m*{3mYJv({3Om^e(#%d+|X20kzU1-!p!#kNoqL zJ-!(n#oTwv>X*c}IO8a!hr?k$0M$3c(WAK8Wmvj?$YQ_dv*?*QyvD;hA36MYRPL_x z(TUqPUQ*f8b%4xUXR$)>2ar>t%+1R90;C9vO)yX-wc7u?dJ(}TOAm3|s%umWnha47 zuH{;ESyUdu5s&xJkCeWi*eTmkgrz-^C(6z{my+qpk~KRh2GGwespGn3YU z5=w6eJj+2}c?plC(}n4Pb#dTG|HmwMdv*~!DA{?tgw;*ES8D2ehkq>usqtd=C9)N7 z5Cms$#cSjw0aJAmrgp8X{qG#Oz|0q*EaGBp?7mM}WXPwxoOo$SR3vOu3+vCH>*PF9 zGU_^-rsi;n2h1!4y-;0o4a9g11wH-!ibm<+<202vlM_S~MbcY^64pI;t>h=El#8LC z=qAidww{M6y{Kj=lK%|_PMm@MS6I)3TonsLGxujOZ5w`$Jzj2a}@ zB|k3<4fu3O?A$oy`cgG>(!qX#Fp9NzkQyfE){-dSUufQAV_Or<=&XO4QnFo_p0=y! zvXdT?3@OL9azz%v77KgayGKb7sMM(75!<=bY+2862Yyl5i>3hZY*l2FENLtFC?~iT z5iY3upHB;8>7_iJ112IH@&Y9w9z=?<1j6o8VrFjOvwY>*n*{}cS%X^KN8^C3eMws; z1$-%C8`Skhsv_NjU8*98Qz{DL^XJBu;SHfepkuZi%6}bm_JF|y|7ZE?DH)iH{>&-9 zp`{Z$=B~yWcJq%&}P5=9*>l0eR)jF*^t&6+CAV+~j_5fKH@|{X5L> z1%@Np(-Wt}9q1KB&98A23u)hSM?3}Si%xE=90?C~k>|T_hHZ+?HaYbq;piyJ4 z*%8f|w=_T4sgL!!$;jaVq=!qP9zbKdVS8dR zO{cb}v%TH$S?-;GxX;;4@w4v~H@9Sea-BI9++V4+v}oof3Kea3g3j99E)gsO%RNRiO)jd6hG^=gp(;2n8%@fa3wg4x_+$lPw0NN>LCm zZ*e((H-h(wH?E`I*eaR;Ci<2>o-0CM&)&5$o8dT}9TB{;Gop*lCRgeVNa(5?lbrrp z!89{w!jLbt7Ep!IIJCh6fF%!4>{gw{1Ttexk3xW`0x@Q_9|&h0+inlXnhFbsnDTWSx&dDiSF_9CE5>y3H#V%o{p_l1GOw=lk4j$VGO z<&`pL59Q2u$Y;%lepg$*We0fCQMaUQ?DCY2Rx=N~>nVVd$Rq-ZX)i*3Z9leJATZ5F zo(d@ZGn?6KzuWuvPNYeSPvfI>=xj0>%rmK$_5a{Dq-gf|vI|C`wxXmb&=yPT0D1F! z80*@Bx1ZF6Tx0E5OM}80f|bF_ea0zyo%_F+ZEy%wvGL_wSXmi!;X~$3)rR^W_elY0 z!e!;YWTB9E^ZY%Du?|Y;84u{Ly5!{nh)oqdcG8ENWeF1APs`D+YpA}w$*)QtJq&tv z6KIhp7v6bvtTj41ydL*vFeTtiLRJNnvEv0&z&;z7XW)#y$Y|8#v&4wS3ZHs&6at!` zJ#dCkkh1m${|9eX;7MeM9{dd7{3WdCJudd;Ck@~^J9lv$O2P&FI#viVr@=n!iXa;+ z%HZ5Z1BeiT_&)}+wAi1BLTyO#A%_9+|08$F;n~^Xpj=_M9-O^+cTuVbIG|p)IRM1I zKL=u~6j^At)^q>OYHRzqg37-JZ)kt8Bf^|;@20Ln1bjvP`-n01Pugd?%d=4;tUm7! Up}9He^&585#M-#R&^6}&0NHJBR{#J2 literal 0 HcmV?d00001 diff --git a/assets/restart.png b/assets/restart.png new file mode 100755 index 0000000000000000000000000000000000000000..f6ba5beec982feeb7e9a24af32321a378469779f GIT binary patch literal 882 zcmV-&1C9KNP)EX>4Tx04R}tkv&MmKpe$iQ>9WW3U*L&$WWauh>AK&6^me@v=v%)FuC+YXws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;lcSTOi`@MGyn%MF`UpGxbDzAp_6xbq^n3@1i`*``n+STgjUY@QK8;OgAjzb>gW_ zOXs{#9A+g+AwDM_HRyuGk6f2se&bwpSm2pqBa@mV4ik&THkR9%l?;`5k~pHM8s!UF zmle)ioYiubHSft^7|LtQX|B^8LL7@oAPEsNs@Omo7NWFjq?kz2e$2x^==hW5lF79J zMvi$@ph9x|;D7MDTeC1R?k0s|K{mz`rwhjQ{`u24YJ`L;$@2P5>1K%`^J|000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jmJF5EvUW_yI)#00C}EL_t(|+U=abY63wJhjSr_ z){Iz1{Wh*6-^)cJJm7^J5(L zu6UjHt`CqckA#2(Lx*{iKR(wdB9Z}bvjG*1L_>ZOE!i(8M5jZHRzFlQ5)C96NHCCK zXuOMdQGRTlYj*GB#`mUpR&2jQY@~vbXh5PJd@r6Wug|{@PKnX>z6|@75~i)!_R96r z9(mpOSs{K^?e(>h3I-C4M0-$IKK@IR)-`GpX6Z6D+blMR_~o-V#6~I@i3TLP=Fr2^ z1zNgjttWVxU?K*U~ zIi8)8sI8ILEr0%f*Qc=A*RQ(wx7?!&dFYOF(MUAheHR@v%k}MYV|B%`=FchT+p&iq zR4@_^SxU6_Dg;o$K!V{`6nvwD3I-Akt?i;O#DEG05)3Wn7d(lMopK&Bng9R*07*qo IM6N<$g3n5X0ssI2 literal 0 HcmV?d00001 diff --git a/flappy_bird.py b/flappy_bird.py new file mode 100755 index 0000000..e14d188 --- /dev/null +++ b/flappy_bird.py @@ -0,0 +1,224 @@ +# Imports +import pygame +from pygame.locals import * +import random + +# Font +pygame.font.init() +font = pygame.font.SysFont("Bauhaus 93", 60) + +# Setup +clock = pygame.time.Clock() +fps = 60 +screen_width = 864 +screen_height = 936 +screen = pygame.display.set_mode((screen_width, screen_height)) +pygame.display.set_caption("Flappy Bird") + +# Load Images +image_background = pygame.image.load("assets/background.png") +image_ground = pygame.image.load("assets/ground.png") +image_button = pygame.image.load("assets/restart.png") + +# Colors +white = (255, 255, 255) + +# Game Variables +scroll = 0 +scroll_speed = 3 +game_over = False +flying = False +make_pipes = False +passed_pipe = False +pipe_gap = 160 +pipe_frequency = 1500 +last_pipe = pygame.time.get_ticks() - pipe_frequency +score = 0 + +# Draw Text +def draw_text(text, x, y): + image = font.render(text, True, white) + screen.blit(image, (x, y)) + +# Bird +class Bird(pygame.sprite.Sprite): + # Init + def __init__(self): + # Variables + pygame.sprite.Sprite.__init__(self) + self.images = [] + self.index = 1 + self.counter = 0 + # Images + for number in range(1, 4): + image = pygame.image.load(f"assets/bird{number}.png") + self.images.append(image) + # Set Position + self.image = self.images[self.index] + self.rect = self.image.get_rect() + self.rect.center = [100, screen_height / 2] + self.vel = 0 + self.clicked = False + # Update + def update(self, game_over): + # Gravity + self.vel += 0.5 + if self.vel > 10: + self.vel = 10 + if self.rect.bottom < 768: + self.rect.y += int(self.vel) + elif self.rect.top > 0: + self.vel = 0 + # Jump + if game_over == False: + if pygame.mouse.get_pressed()[0] == 1 and self.clicked == False: + self.clicked = True + self.vel = - 10 + elif pygame.mouse.get_pressed()[0] == 0: + self.clicked = False + # Animation + self.counter += 1 + flap_cooldown = 10 + if self.counter > flap_cooldown: + self.counter = 0 + self.index += 1 + if self.index >= len(self.images): + self.index = 0 + self.image = self.images[self.index] + # Rotate Bird + self.image = pygame.transform.rotate(self.images[self.index], self.vel * - 2) + +# Pipe +class Pipe(pygame.sprite.Sprite): + # Init + def __init__(self, x, y, position): + # Variables + pygame.sprite.Sprite.__init__(self) + self.image = pygame.image.load("assets/pipe.png") + self.rect = self.image.get_rect() + # Create Pipe + if position == 1: + self.image = pygame.transform.flip(self.image, False, True) + self.rect.bottomleft = [x, y - int(pipe_gap / 2)] + elif position == - 1: + self.rect.topleft = [x, y + int(pipe_gap / 2)] + # Update + def update(self): + # Scroll Pipes + self.rect.x -= scroll_speed + # Delete Pipes + if self.rect.right < 0: + self.kill() + +# Button +class Button(): + # Init + def __init__(self): + # Variables + self.image = image_button + self.image = pygame.transform.scale(self.image, (250, 90)) + self.rect = self.image.get_rect() + self.rect.topleft = (screen_width // 2 - 125, screen_height - 120) + # Draw + def draw(self): + # Mouse Position + pos = pygame.mouse.get_pos() + # Display Button + screen.blit(self.image, (self.rect.x, self.rect.y)) + # When Clicked + if self.rect.collidepoint(pos): + if pygame.mouse.get_pressed()[0] == 1: + return True + return False + +# Sprite Groups +bird_group = pygame.sprite.Group() +pipe_group = pygame.sprite.Group() + +# Create Bird +flappy = Bird() +bird_group.add(flappy) + +# Create Restart Button +button = Button() + +# Initialise Pygame +pygame.init() + +# Game Loop +run = True +while run: + # Tick + clock.tick(fps) + # Display Background + screen.blit(image_background, (0, 0)) + pipe_group.draw(screen) + screen.blit(image_ground, (scroll, 768)) + # Check Score + if len(pipe_group) > 0: + if bird_group.sprites()[0].rect.left > pipe_group.sprites()[0].rect.left\ + and bird_group.sprites()[0].rect.right < pipe_group.sprites()[0].rect.right\ + and passed_pipe == False: + passed_pipe = True + if passed_pipe == True: + try: + if bird_group.sprites()[0].rect.left > pipe_group.sprites()[0].rect.right: + score += 1 + passed_pipe = False + except: + pass + # Game Over + if game_over == False: + # Create Pipes + time_now = pygame.time.get_ticks() + if time_now - last_pipe > pipe_frequency and make_pipes: + pipe_height = random.randint(-180, 180) + bottom_pipe = Pipe(screen_width, int(screen_height / 2) + pipe_height, - 1) + top_pipe = Pipe(screen_width, int(screen_height / 2) + pipe_height, 1) + pipe_group.add(bottom_pipe) + pipe_group.add(top_pipe) + last_pipe = time_now + # Scroll + scroll -= scroll_speed + pipe_group.update() + if abs(scroll) > 35: + scroll = 0 + else: + # Reset Game + if button.draw(): + game_over = False + flying = False + make_pipes = False + score = 0 + last_pipe = pygame.time.get_ticks() - pipe_frequency + bird_group.empty() + pipe_group.empty() + flappy.rect.x = 100 + flappy.rect.y = int(screen_height // 2) + flappy = Bird() + bird_group.add(flappy) + # Update Bird + if pygame.sprite.groupcollide(bird_group, pipe_group, False, False) or flappy.rect.top < 0: + game_over = True + if flappy.rect.bottom >= 768: + game_over = True + flying = False + if flying: + bird_group.update(game_over) + # Display Bird + bird_group.draw(screen) + draw_text(str(score), int(screen_width / 2) - 10, 20) + # Event Handler + for event in pygame.event.get(): + # QUIT + if event.type == pygame.QUIT: + run = False + # Start + if event.type == pygame.MOUSEBUTTONDOWN: + flying = True + make_pipes = True + # Update Display + pygame.display.update() + +# Close Window +pygame.quit() \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..49f851d --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +pygame==2.3.0