From 5b097b347b2f6037bdc3baafb720fd6203476837 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Mon, 10 Apr 2023 13:54:06 -0400 Subject: [PATCH] Finish evolution logic and sequence --- README.md | 8 +- public/audio/se/beam.wav | Bin 0 -> 126988 bytes public/audio/se/charge.wav | Bin 0 -> 230268 bytes public/audio/se/shine.wav | Bin 0 -> 434996 bytes public/audio/se/{shiny.wav => sparkle.wav} | Bin src/auto-play.ts | 5 +- src/battle-info.ts | 17 +- src/battle-phase.ts | 338 ++-------------- src/battle-scene.ts | 24 +- src/biome.ts | 7 +- src/evolution-phase.ts | 445 +++++++++++++++++++++ src/modifier.ts | 2 +- src/pokemon.ts | 42 +- src/ui/evolution-scene-handler.ts | 28 ++ src/ui/message-ui-handler.ts | 69 +++- src/ui/summary-ui-handler.ts | 25 +- src/ui/ui.ts | 44 +- 17 files changed, 693 insertions(+), 361 deletions(-) create mode 100644 public/audio/se/beam.wav create mode 100644 public/audio/se/charge.wav create mode 100644 public/audio/se/shine.wav rename public/audio/se/{shiny.wav => sparkle.wav} (100%) create mode 100644 src/evolution-phase.ts create mode 100644 src/ui/evolution-scene-handler.ts diff --git a/README.md b/README.md index e719a780d56..91d35e665b0 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,9 @@ ## To do - Title screen +- Starter select screen + - UI + - Get starters from save data caught Pokemon - Moves - Move logic - Can't use when PP consumed @@ -15,7 +18,6 @@ - EXP logic - Fix algorithm (currently inaccurate) - Pokemon summary screen - - Move learning when full - Move remembering (no cost?) - Capture logic - Critical capture @@ -24,10 +26,6 @@ - Battle info - Owned icon - Status effect indicator -- Evolution - - Evolution screen - - Background (ripped video?) - - Particles - Modifiers - PP Up - Ether/elixir diff --git a/public/audio/se/beam.wav b/public/audio/se/beam.wav new file mode 100644 index 0000000000000000000000000000000000000000..f6fec5322e3eed80d02d65dfa3bfec4657ab54dc GIT binary patch literal 126988 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 literal 0 HcmV?d00001 diff --git a/public/audio/se/shine.wav b/public/audio/se/shine.wav new file mode 100644 index 0000000000000000000000000000000000000000..41c68c81bf8d80089d01c9ff3d8a32fc229676c6 GIT binary patch literal 434996 zcmeFae~4w(wYIx!S9NuDr>}@eBN8Np5JW_R1PLLCH+aP>A|k;nBGR9Th~x_*5+no( zA|i(nf{2I&k-icnhu}35ReH5fKSN4nf3Y?CSdc^UkMNzm8|kuBv;!`*%B; zj(6|cYtAv>ImVc)s@E9%w*T{n8?OAn=O_Qy|9<=bao_)Z_&XO)CX<=TbaMU6lgWku z&vY_3xo~pt|9JR+EVR!Y^xvz8_HVat9NhN5a`?%?SKqpE{`!L%IM3g~3>?hftA`H0 z`n>&}=kH(!&fCwy3>?hfdH*|@z4P(sy!{-^zh)_VmudZT#tTUmbk)(>v#0F@ER#^#?OB zX6xKn2VZ@j|8p4|zjL0ygBcjJb?&Q!uRd>o=Q1{a=RAK0GcacB+*b!*ect}gWo-P; zdHxP&V9eIJuMWQYy#1Za*!Z3QKl~l^tnB%pooC=Y1Lqllf!lZgd+oo=)+<}pZkyej zb^p_(n#a3q{k1jsS2wE7ZB^Tv{o`Ev+Tn5g*-W*UcdEU%Hf}G@SNr2!wbE=rudf_k zNk7_f+QM43TMv!f#-VCn-`v)no9=h5S6eyq!qN27Y(N`_UYt+AbF;I`{SI) zE-M*Ov32LBIr197wxY72pUwCh@QLMW=4Y$fcv`={UZ=b+>mJaH^S2yMKe=Eg`-I*D;_zTiDc<1J;8}8YEq&dFj@VNPBcWhTPUt+U4xe0bH%<;P~sEP zIwWQw%{SN_-Mw0^c5*;ohsQHNU|(l_ye8Y=fJuP;&X|dnkdt0ndcf4mc z5!am%u&o*RzJQmoo&3j>ez#h+YIj&hBus>&x?6Y8h&Ng6uz_v+qbuefQ;^bn9au>94U)-n03QyVl+9C$<6e1NM6TIqTEgyLGZY<_BzEynmht zY@KWm=F$3qUuoxey7$@o^n2#GmV2YfgZwr+^|od|^I6;TV4bY1uK{~J>*Kf)T_UYh z)`Il!++f>^_3>VUZF|-apS{eZaN{>ur6&)@iIy-Tzr1uj|H}UIF9tc$6F_l;jwKeVC!V=%qiI8*(SY5VDn|ajr}2CJ~D3e zhwhq7zhL{`t@OL6cTaa#s-4`fcGINV+SbtSSQy%gNws@+-rP=~KUD37-Eq@2JI;!| zWAT+!Z*E_(o&Nevwakb7)3=5et)dh1Ps`O9Fa55$ahrT=??xW(Sf@J{(|)#6?ZwSo zw&-(*UpY*VPDtxoD|me-<3ygN@{IcC1h%Z*o%7Z1*{ODPW@uUQi<{M6*u80zUORbm zn|*e>cdOcKv(;Wca{JMnn>nO=2RAle+)SUI9$K_2YdA3}t?!(lG+xqAZr{A){?cl- zS58&CZSA(T(&)8WTeA6?Ydb*8>R&!x?e?W=w{C2-DnLW`^jqct~smyG%1DD?2ajrpL}+J#^_5_`=4 zBW)-0-zeQc)`Il7jBg&y54u`k#~zQDn2xkQ;PTpIyS6pf<1u=_jr}HuM6dVGtHZ{snEA<@ZuX8ZDaYJI@=TiY>qZJja)GCncL!DFJ6^|qhc{}Q(% z&G*{Y$?bIf+}C-$tR0!T%XjU!6_vdnuXXU-;oRr!H%IK@L4F%MNc@P+Mkl1lvp-rN zu^vxLvsY=k4@&mdEX;oodc(efmhXjQr;A(EhSs?b6fL9$2gP%;D=6+-tO_kNkAL z+S1O_&d*n>U9w#5qRndeOpeXazgT$s$k4x7Nc(zP?c`>)(q=&S?o=~Fy!+*RwdZ%M zt!!1xEcb5=EjkVIo=IA1ebMI4TjO@)q*~4R6hZbF-7$nV+7~Df{-!;cAPMp@rY*ge=SW%X;`g_BwqvSM7!Em96yN9xiN_ zn`VA4*d1E5!UxjI0#0t;Fs&B*jr9Iy4&*z{25;JVVLKh2(n{;E=3IQM-GXo4I@x?>=&>&(J`z7b+6Mgo@ztTlbIWU2wmg^lv3-KA_b-;-J)Mq^ zl-J%kF%RA|bhWY6L_y^LwCVn7otKgoOyuNSi zzAf8-d=_bYz;-U*}lHic^ZDA*Is^$_u9Ton*sH{k=OjxI>l#^_K}{4=!CSc_H+9z*nS&sBBKw| zw&pmL*pygh+YL8J@1;2foA2I7yic|%{5CByI(u(>u3>jSpk`E0{~dYxj=9xwA` z{rJaKt3&&^$#mzWK6?1_1@{l%5_K%H!Z2Vxk+HW?h{c2L}k?GJbUl`hzbJd>Q zuJ*&NYSst*x0y$#>ED~F_TlD-n~%>_yJn->6T8)Zb7*M)u{*Trg#7+)wa3<~{oCfa zT{W%t=;3ku+f21bx2hF8KUltUeQ2NV4DF-2YT*VMU6Hva(&MrAG-e-bRD0+Q$L$A`YS=&;yAXYlwM*Y?+SUGLZ==@_xBhK2y{zHM?Xr?9=d2I7 ztm{{kvbx`FJhAk|Qdz(?8)dDZOs;5loF2Y2?g!h|;vdM5)gGH2w~T?zxJc%_VzU}L zrCHakA?$iQuiczjH*mN_W-Z9x9?C-=pUHk9vy;&){(mVl;4(zTs6fW z%PaoYytaCI$fH}~Ci_-i`^0W}$VYSLr#yB*w&U0~l6iWa#(pxqiYyJS$GxN6b(7&bYR=_$|`>TOV-7Kzc9P-|RKgHeeq~q>t}pz#j~FK(Rwwn;k&cd zY^z}N;{C(cdY!_v?IAuA`;AUW+n4RGv>A~7q)xWS*068u3i>*ax0jFXrC0nG`EQ&5*hu$U!S<7IjXYzAI^WFeUOp1r3?E33XCE=YVB3Rz z1a`b{wy(^G{K4`QOZ0!V{inx2khWvnx7Q6WuYG)__YrgHG5WKO`J&fee#_5(HTm95 zdhPyz?6-g4s>V5D{cLOIm~sC(^ZV&v=I%d4e`iwd;q_|o?o|6{yTa{1XRAFmsdoMP z_3Pi>s&?5%wVLIf$y@V7%P7B}R{LVR+TwDxOLxZY;<;+~9j^Ak>;to<(NmMJ)~nsH zS}n6gujqulNX^;1e^?o}XE&;OPS)k|O4Ezy9^9_>@cLiZ=zmyQT&7>QUG2xSdpGL? zE`~4LcyRl@t@O92Z%;qptro74KbfhP6-2ADfQQ$Av0KfYcr5U>yVbs4t=8KEI;EMP zzswCSHulraYGnb7%g=08yZ_L*dA!Vle1GHpjne4rRdh-#t*_n9nleuO16iK%?#^G= zs(raRZunJt#zV3T*6E?mYUr1iy-kkzkK48B?xA*`9U0z{i6GG{Iw5UewmbVQxV-k6E!#1C+Xm1ntvuwR&73H)Q|ldWkRH3| z!Fy(1;m6l`ysRC0{rYoj^lxvWkF|Sf)3#=gJucXO>pdfiSSRypemL8FzJ(9_E&FF5 zu|8niLs{-66Zo-Cwy*dCGCmT$q7yQHi?n@PpWbinC;ZIu#(Q?@&V$?O56oUXM}KPa zlNow+LRwe*x%B~i?L9}<34cv<9Lm`7T=NiakQcYun{H0Q=DYV1@00b5e;^a1@n<1mE}7i^JhQ1`N+6=z0QR_ zwp8t&)8po`tHK88<|FRb)nj`v!Ct$saZa)A4s7nsk*^1P>^It)()~WzYcfO5+b%C1 zkU78S^qY(6j!ED()z>jUV_V&twH-R9Or*T)E`V%{Lb> zSWNdm*@nh@esaP40Fv8|?9%A7_5RwxbK0eWv;S_&}s>(lu9lzqe0&pM5@nZAV_K`SNGL z{+ZYAdQ4!~5AeC^eE~a;{Au#DnRH*D7!>K8QroBb8F1BsajfnA%zIN__UeZH)aMsC zdLnaAhcqWWcI^`T2sp71>3JPneLjGF&)~6bt6=YKYzb-m1Y6&`SC6)u9YeRD_1xJW zj6D|EKIfnL8nE}>bJ@nd9&NT>h~4f z5K(E|d##4owolhX0NWmH@4a7m-+j+#zQOmN`t#T6jw80A{@k=bIu4m1usQPB{oamQ zD8_70W8QXVd~VtodVBD^=A`G#x;sBRF&pX6fbFXu&-{RW9$N3QA1ti-9>i<+KG$8q za5pgKu3kCbfz8oDd*=H_-wRluo`(w-?>&`n?s^{VXFl7^3D|pRjy!g)bU^0Fxc{7A z+i&|=ZJ$Xk1Ek}I`2m|FpNAKIJ#LOGW$izkG528GtH(1xwk@!AwVzox@TA4-^omyf zr-)b8eBa`E%@x@96OP;ceSvK>_l`)%aIp8uamoDnGhpjy?Dz>b|NR(#eJ(TSzT^8= zu=%pj6{7?4`EMKW{9xb18#~6?KEbYQ=z9*^5ZLFxbuBB2wUk!&GqcghYR5_Mh35hL zXPFJ@HGmyEN}E4TY&YZI{O>vKm}MUNv8}5)GCyFSqvqfG^tj*my!O2%*z@`f?fFW5 z8l-FM`7FvDk=ENj*T-Pr2brVZz8r7NvFCB@0^8@j&pltZDeu`qdtr|JxztvT^gWH^ zq<`-Nn3^d?KXc=>c7H&(d{e377FB7vck9B&mmB(L&EXwc z7WDiKOeF^#xzOrZq`%(k?4(A<^lUws$c)Pzw%4pX(z+%eADQ>F=A$zwCh4w;;hGQT z9?Uvwrwe6FB=baPu=bOS%dlVUbu$A%WdD?UDLv`rz~hd=HJ&4 zx6{l$IQxi%oAA`j#1+=+c;i?K4)@5!>_HAAaJ}aQn-kYGNz9DIAL46?eMtKRK4SZK z?BMMh+D~BXfDfkzN%)G4J>Wau zKVn`w??-23u0f`z6t*5+BNt}xo~C=Pu3G|TEjcq>Bg$*YJds%s5^geQ>^(AZmHkfq zMw&-({1+LYL&hG6TaKAv+feRXuWR|c&bbCJwwfIeti8QTcMiAni^&^y&hl5PZ$Z6) zkUrcF7l$5GoJp&%+RhqI<(J^R&!o+^5Kz}{cGHKFL}Vvp3U7y zW=tfrI7j&+)n=g%h;>iiJM#J6r8E8b>d#kvP4bZ=znXjYP`c~Jq<%qikez$%{Osg2 zM>-Fg+~eqeVp`4l(&Q=MIC*|I{l)cajA{OzyPt8H!*vC~=F+tVe!lX~a`jLs|RRt+*7B2$YXJjLIT_wHP{Lb0BQLfS8n1cQOwCS3DZHq(Ihxn0LWgRjee6MZX(ij`M*8q;4BQp*%??->z zzhhGLkGy#Ofwgq@AlKQ3zMOyNa5_A>#Sf9xbFi&AcE_*b%GZFs4*Q&SNIZ+3zIW=| z&FhA4A9hU|uye2kHF-<3pMIf>t{w-D|+l zGZ)hF)aQ@)0h~G?oHw?i>_KGq8TsvIKWVY6*qPUE{u95E-hVLMMECIBOZc+xiAPAr zFlVV5f{gz7p09VE7qDZu{XS#G{!dJg&Zc`!(LeH*7KhTPxsrPg`;V_r{ExKl_x@wM z$+?E#W$sAt#ao;AZKXR71&1fDNzSZmAbiqt{oS35Oiuo9&ekIN^^xx%bx+RiBP}mE zx!*|V*n+Q7jg!4{fXUrw3^(T#yAD8VkwpHz<=|emN^bDuD_5w7#pSKOM4EG#!C4QI zJml04_&_x^z{xlMd&~KCZZ)snoU`t{=wPyldmWr>{psnePp4Pb{(#KC^O9X-0Ir;W z?lD+Hbak#cI63rO>$QKs?YX<>`bafkQr98&;(YjUhxFRL2Jo+s{QAhh&koJG-@YFG zKU@3JT6*^WOg?_A&ExA_vm^V;9$%$eIJPIS=Xz}IYtLXq=FGO6ahc=lW1+`N8zlW zH?P@qUpJfv!>K?_a_o-JAY+GcJ+`60wOSC>b7ms#!#US--q~lof3cs)=#3;UMfW~# z$Byth$8N{6kEf5#UfwuL@9m%0%o7eHpHv+)$8Fb-`t{EDcj;HQm`^8Gr{(NNV!!V3 zTjUcPu?0F=<5noBX zLgoxWW}hQ7FA_cz_a2#kch)^Nh3{ppNXJjGea`h|GA?u2XL~%3+rQbkVzWBjSl?hr z(<>TBIeU<{U1Cw@^BTaP?mV$ezp~XDO05@U;!&jc&vp6|lfu(~?EY$!ZXPOX|8^Z; za3(l;;K>#KvFdjuZx%^j@9}T4+>cK$QT>4TTHf?ms#o&dTD9cGk^}2}bLSm{J(qK# zlgpdD_{&tA<^69eP`tn49Ch&TTefcc@8*6tmr5(nPj+4|dM+;C*s}hI?wsi_y8LdB zksN1u`&@NPz+W^y(o^3A`OxP38|kSIlN@X2O1rj=k?uLc7q|Kz>Exd0ny*`p2KTH3 z-ZB@``P6U&M`_-RjLRI(Y3}heTi0#V`L;AaD+Ts*xPC^+&)xW0DX?>l{Y;Lp0q40g zq`&FC*TK)*cx*p+>v_P|wVtTrd(kQ{3hc4{yj=h6yq{0=vr`A@{yMHz>ul=kP*khO@^KX5?wjr;fAKPp9JbsP}obU8Q zdJKX79dh-9Pg+<{Rv} zypDb^#?NclY_?U81r9&R{hpD;C(M!O>2)v$62j_V> zrhvT;$Dtlu2j{<-pMIaMlXbOyf-4jAPormy$2&nbS~ce|S~t%F_C9;9J}1HE$n*9# zKIUbkMeL!E#~!o1u=e^&y7##s+xBjbJT}<&>b`2l+_kL~fo zO{8OoeW~|h^Y7dO`xV$6S#R??-iiKM_hPB{IdkMa_Zq;y&SzVm+eY?&ZyWXfq~`=X z-g~?rdwlEXxa9Z2_D%1F<2Km*d9A%onj^2nw$bmi`LeC~dT{IqY3@8W*t~dbudmnJ z(|(qoI~I9V2f}NM-J-07` z&9iOFobP{XVngPY*V#*+nw*7!M0J`UC*)aN9<=lAHcS^drwt6D9_y-tsHsbXuA0Z zd+d8ud&zqaw$FGkeD0ciuz9de`Wmofx5w!D@?Iw=5NX|xE!}h4Jvr`3+o$&r?6~Ri zy#L_+IPzNivCC@4sOQ*Ym@nH9*rWJ-wGEjoux-k91su1*-V5{4=N9@LcD|&!x1M0H z*Bteq>p9PB>jSnOdT(tvzPACJ2Xo~2!H#XNC1viw*1>VkYr5Z4c(i*LzN|$FSY_8nA!I^fg`| zIJSwj4z>Y*2JC(M@1AYGKeFCn+qlQ}`}P;G*X#Q-`zhGh`5N00*nj=>p80d;2khDs zw%6V!Qv(RO-<}WSRb(5#roKv!H%^)+pL4nez0x8@x71L-V5vM7y!0S znj^2Zw+F`#>*{%WY`-u+VBgbtE}zf+`n)$j`+L5utNHH7^LiZz%#X(cdyUrH_oHC1 z-Pd?du=mrk)-`H857->}?038a+iv_jg!d2Zf7dog_Brd;W3RRU+nIH@t@VH3H%IoF z{my>;-0Sl`*$=?3OJn|fzc5F(0pFjRAFw%c?CHlIb5xdWe!%sU+jp&l_4c_09xA*I z%v%TZ12*SgQ-8L3eEY5Aw&wwx2Xo|kz~;eY`|JnXFP>E{rt`}B+={P8`6bB+xM0^g z7U1NsaD8Q_t!*UtCNen_$k%79Ip4uK4B+=$PU)>{e_W-nv|O$ZGk zoQI-Rz%$f`fARvoPjAeen7Su#1$o2t4>Re`F-y*BqjX8}nsvDi84UqfZ~XcGR3ge^469I=!Tug<||5GuzT!GZaewyL(kr_ z(!@k0yttY3><`jw|4ZY?ojmyD#K%97;U+S130;!2inNb`9XFE$hJ5N<)%-pfo-bMc z#S;Dfe^tx=M2n0k&vH&UeubOJaD-1-zsd?6vI9M@^~)T{ zlbdTB?yMzxnb&X=8IFjx91v$w$lg2qS;DI&R6kA~(%>W*!^-LCYgbbADW|M>-D- z3}4x+%0jw)JKRJjKaMf{eY(zt0w>o9nfxcDa~m^eWOAIi{`*I(CC4X{+z}e%{ryxm z=RAS4XUGrdA3dC&aga|ce=0cRc>lspWb(AgMshw>bc?jTdCzQLS%2gcOP{t}tKY8E zqZ6{v+X+KhlgG{;MLxM$&3T6&uY7GlaFhI@jDz%Eg2NHHwO6&gx^%A_oZQMa zu;Y?-4Ufp!UnCrb&+vgvK38OXnp`>OarM}oJ8nCttJfQz6TdxP{2?+NVMWmk*^ie! zLpop5x;d9^z?DO2j%{1u*tO#}`!r;+)(Mh)PvmdcKU+%=k4Wc7p2?Ba`DR_s2{>HA zo7ZkmdK?asIn$8l2h7i7N3jcJ-iu7^z>X?2_oMaLb7X87>6mU`$e9)i&#~F;IkNY; z%)z(^jpuycM)|E9z zFQhpIha>DLdLhj>*c{m&yl31$x^t#PM~~N^ZTT7TA^P#1wEj+DaPmfx&Kos$J|mc% z)?}V0pB4FI<+Os6-$)*%$N1&yxLu}P)6bRL`Prdr{n)G}->vJ>-dC(^g>rehH^0~FISKYrjn`ugJr}II3?70?OhU{J~V@3Yx(2ovX zxG=Qj-Xbqi-Z1z(YeT#7Ox|scd~QB(c5TQ-PCl&1^L~NJ?~NUWkG*6#Vx9i(U#}bN zoMrD>){J!SE%?Ue=a;^-_RCeeb$zRS$Ff^EA_vzx`n#3~ytth2skeUNV=w9a;2T!| zu#)~|`z~kqtb@s}q`RqozeZ>5LvGa^+I}SII$;oElYR7*+O>S~zzP}l1 z-}>uXwfJG=Us}%eKWBbFr6)HW>9N4hna;IHcyY^mkY8*+y_5dz##ig<&Wi`bQNEM@ z{zH7P`Ox2LL zWX>kW^&VyKB0ZOR{i>a3>E;IvM_F@XH!^+@`F@LMbYe>U6d8Mtw9n*PWc&;H{>H=W z?#!RPB5tQ;|05kIf4TbaE9t#Gcpd(Z`==)VY~Oo7^u&xv&h3n2y^lA08~2~j9H0Jt z=Gxt-cg$tJOFq&+%lFtLQ?CKp$F+yoA6`$qt&?bR*?fZ&gNWG|wJ4tM*Z}@(JKNF| zQ;^opaR|(rpYzx8-7yZFpRp&|JEYGJaOzJWJw~oa+HS#clRZyNLx$T(&TJYdxYr&& zB7M$TS99EB;(zQQF<>v5dD$0poO3_Y^TywhxgHt&i{#!gapC{#Y|HZ&ezwBTB7yyU zjGtfFX!%EJejWqtXJY*9j-Ph`k85AltNz&?Ki6n|{5d}}1NP7SJcaXOz`oAU%J_Y- zpBM4-R({{lih%u0o1Y1pZ_kLhIq$}M;cLLok+gmu%lv@-3{CbM>E~p?=E&pu8n8L? zzI$HpIoNCRHGUoqZ2qi|`3CPdp6#>e&ewR)%n#V>wGDZFVB4g*JV*yWmt{Zmvp-<# z5FbODAFy@ucn9s@e)^eju=$#{9HF%S+gQy}K7;g{{65&vv{@fN69-;s&u8w{JSW)C zACJeYC+7O+zZ|1Hp05X+bMtME!Cs?%(_{DRvkuNFwvT|VlWom52sT%?wf*>ET$5)IOR(ql`ux7_yT|6J=h*z4W9tL$DEVtv4lYv#-IfNj_2$hv`TH;zSK zpT`1w4DU;?gU7I+_C9PL%#p|Q^YuxHo~PIA>%ISAugUY8AFw(1HRcEG^;!p?mF5TR@oZ0CE7+V{*Zyqtbrl(39zCD! zvA`a~`(%B<_9y#UpBrEu%#p|Q8o=Z6ian17_88{Qd(>mcHIL_YgRPVO*1ia~4(7}A zfbAEKQf*nVqU^PFJoWWVJ!OE*_w z&t;B!AGUrz|H)8s_juOFy4t?M=GfPpAFy>Wm*xlT@jb8C=dr*Z!|U@{;GUPf_W1zz zd1f2;c;*LeoAmm8J=kNIqkc^u!|QWw^!4DZ2kA9A?t@(y!}jhqfE|}So?~NdGty_J zV^5ELpXW8%=fGa0$FM#X2?u1(&7-*od+i>tkB!#B9C^pqm}L$>ibr(^CFy! z*8958+l-6!*!Gbg+c*2MdtU0bE1|s7{!US~GrfP#5AXeAKaTEEjR&xQ7xkXm2EiVm zZ~abp?C*2Gymnvj94D~%**4YJi7@B36~`<40od2r){5%^nTLB-W5Y23?D4$U=Bppu zan1J<<{Rw4M^v@6Tid;xcY0@(*KEJ_yuIG$*q`hD!k@DZdEH>gGS^aZtnhlkYc1zL z&1>&TwRRwHx36nLDos?6cSN+W)}**?5dQwqM>EdhgHsabz0;yOxR1z47%wn{f>|uhxHi z_Wjy`kG8DDq5GPH@XI^p8U5L2+qIwdam25Ew%NWMlX~p2Z9`z61>P6OYVSF?Jb}7z z)f|(+9?u;4J_T&swSHcoeGF_)j2*YZ9>e;KPm7nPz7KtUrM#g|@w?W&Utr(U+UI=k zg6(t8Ngdn%%cJ^H9^1ZPeZXa1WB;?=fz5;0VeY`a?c}w6sdjuo_HU2fp9AJ-zu1ax zxi*gXv$q?+cHDIwvfg0tg>|rPfPJ0U%M?Jm-Vp?*%!g) z!G3G5z`oA;k|x1SAJH?VaGH+xC*;ytrIVEd|nC$T=Z6R_`3y%)W`n}6%wk7u3i z-+sSeqv!H?{pUQdaei+tS&`iP;_>?XNsnjybPY1F&pPvJ8v@&oygut=PQd<|uj%8T zIkN5d*y}AuVCnAF^xlrW_JhtguigLV+uvtcciWKTw)F&?2m4GP(>=EJ_BCMtEzTTy z&+J!V|E}Plc^##j} ztzchcj_faB+lp=6{D2*Q%!BvYdkHp2{+X`_TL*L0f3D{xuWjSL9&8)(Ui4%8?^78U z+56^x9NB-oRVh8-*N3)E%23=y(Hh<+=IQJ*4OI>(~|!k{gJN4(dTzNKl{1a>*tb#o}BMqvTrxF zeDQR?583UVR!1V;l~uwCIqcyo(re1K$kbYh#0FCT$988M!hgdz(l+G!3Vp4S_#ph* zUd#IiWM5D12qbke=&6&D+9F8XQ0xbpJ&&ZuQsRf}{&)`t{;M*E>%Nf3?^*}8qm0WO z*1NX{uiazW|JVcDjj??WY~BC7eeX`@w(U9&QB%R+=bd?x?5+12OG-~XVZQi4Wb6lN z{`az>#DDvo&w-vV*G@41<`Ilv)7Wd*Z}3^f8qAl+2q(jL!6)(!(luACcfJok()@cJ zwjsw2u71SGlnbfh%&{v=h6xgroa6{xa%56JkHe%ozzAz5cwm4ol5P zqBAlv2#IZF|GjQ-&NC`o`0TgsgS~%=1xVKk!S1}~#2%z;<_s1y{(r9Xyqsp~#5~(T z=0*Da!Ves`Z`yfboBmEa*qd&O#UaN63bg#hNgJVxf z&VlT;&vC~9VoycCn|6F31vj3{ew%ZRGp^SmXE@UQXD!IoNXoepn?qjL&b0KLbCKo} zA0GVo=B-;cUR-z2I#_o&Kzc73E4q?T>wNLlDIo7VH4`F}yNdKR{(kKNUo}ncyX#IE zU)}P1-LFwy6Y{n{Y2N`%OPzzrsn}6q7 zrxrydInCkEx!KOMM%OFmt6!yR0M6BC&Ca3DxXdxOp)fK?&uhJ-LwIv72Iu=HM?TWF z%NV)dx!QRT$!D@($g59R!!Ad2wYm*y8H4M;*S-zh{ey3+ME>e(-(Z74nv`_FoN8_GP9K8@faw(2!p zzFie!sD5G_iajIQ3v+H?$i6VIxd%HI?H9KbOLNwwK1yHT;__B+#4Ub{gq!fx`*7?6 zzA_imw$IPC0gmm1FEk!b3IP2%lYv#{fXZTj^;7o%fn$HffueS{)enfiz9Eal1vDxU1 z^!{ZYqb!tmKj64>7{ZpMxMISv_n&%rr2kv{)D zC)oTa1`V=2kSKCpTVuM{p18z3<_l~teU0zEz^*sr^WS@E`vJ%IkmkR)o7_+S_-y^J ztk-@3j{P9vf4)6aMDue9e$JxD&im+}fAI4#85f!7AR_&&h39piMnA8w@pBS>b_?v! zc|1RN1NQTi(F?gSdS33e_S{8vuh-9Tcr37=o7-tzaM*{J&%&c6Nc&a)YP;+4Kv+wew;b#^A7go$o$N;XC~czjrFtMJ+`fR zY;e|t^z%OE*w6fdJ-&4?_h3I8?!E1w3-VmXUaPMMdmYxh|D2!u^VnVk*tY9u&GzGm zInAq|ud=Oz{W*_qe!$*m>tnrpZ2lbsJWr4PIbRR<_+E$g>3zu@`MJ7&Y;$DX+k<)V z*xqMz3bvnl4gKeAQ=X@{UE7hbv99I^?4LO|$7=w4E|1-hw;xB=&2buRzcBxO?6LiO zZ>%r#8^Y)+f-a2-8k8FcrbL4pr8rvM%j=}qJdVKTmwfB14My*4?7hZ?=+_nZbU!Kc*?s>rG!8YW$4fZ`qgRkkwvrTy~%+Gk_ag8q9ZqKnf@;ufD-1CyxUSB`9 zIr2XDW1C~|v)>2%I`iPT?L7kfbLObe*YnTpn_feY&A$4v}tj#uMj%}Y{ z&ubgbsn!W#1__GobSK& zyD~7m2Im8VkE%Nt!+$RT*NOGgbZm$9+vA;^uBtJ&wQ}U-Lb~fh^>&lrLy_K>%Ag-I z>CL(MGXGu!xT?dvvE()Me66+b6HYhZL>TuI%auvzd}WVq`vyA?|L)b-+FvS$?tKB5 zHH`0D%@5f6l!r`rZf<<1XDyMnOVgb<7oC+n#?H_7x!Ln&&b>b8UV6{LR1`~h9O~`C z`SJVtGrsM*5%vqbJKbY}opbA&E7k{G)e&A_d1L9sa(e$cp9{_ldv$|c(R5q&s~hIu zYp@N0T}!~Rti~P2cRcj|*@qpIz}`PHqtpApl{k*u@13^|zChja)Vke#WbLrK_trjx z*Sh(g`WbvTandzu`^p;(M>XVaL*6s<1NNFK%HB3>y}|Y~?|ILw$1``1wT=N` z+rNJ&>FvRDxgxE9hX9*PbMAS1Y`%QY*ZYOzh<(ZYfc>`s`=-b1_hQUZoh9}cu=i*#`U>usQabFt+{McfDuU+dP83 zMvvipCHpVfHsrIv_Y41R$@e4UznxA--veTfY#Y8FY`)Bq`39RW>)r2}ZQkSAM|$k@ z$M)3QnmO`$?KlfQvHbclwjDY4 z^y3wi{N1?jn9aBC7Hp0@p5r#ycI2P+<2iQQUd=;qLmtojWPZTr$i7~g$3q6P^OA>* z;vuv6>*;f|sR!X4Y4BSuzdAj++Dk1@du`+7*{tG0dOX*RI58c!H(Q;6bmtDg|F4I> zzO^N9(@(1Q3HYnC^;3|aAHDV{{lxT*nG1HE#eMJ2+pASg<6TuMNL`9Zs~h^T=BDu==%)o43-R-@S2?{@m;hQ!3if@7qdsmO*-+cb0#?LZ{wHKen0q z@=PxIP#vJJAK>~MLw5R*+08!0UaOMCP*EcMAhVBDarpMB_fGBCU9Z8{gWX(v0gj{7 z@iVo5s&dFhs$Y{TGT6fPb7ZksU)re(5I0V$vPNtu^3N@wJU!eaFKsn9;t%7j^jkI- zCpS#fvj%F3;2Z9-Y2>A+sdO{+jkOoo-D79S>lU6loDN5+G~oRQzkB+U<@BGg9ABlg z=C4}~B=`6j(mrFK1;4X=d^Noy&s&?WZ{hrYu}xMvd-Ule=@}QvIuaX++wQK>5RRz6)B9ZXL#AF4GUG<#*XicS z^%iWm;FVTMD?J=xOZVA)WccR3%X{8q$A_xeGE{D%ic6aP0)FCaiQkc4M>s~m)MASCc)9mOJ~xZT z)$O<89_d;!-XpNjkDUF~y6Mlh+)w7S zT-)P{mXGWH$@1eX>8^Fr*JdGaJ^iX_RgoZvIr-k>O#6@4FK=}#(*L97Zqun$^4RRh zQ}^T!BR^aF?Rt80fg@cLqASFU@k0jKiG z_hy{8O;)*ka<-AqJ^r|Ha{2a$n?tXBe{%nsFa4@k-+=!2tyb%xG3r)TTs~?wIj;Ps zJO3H{iu8Eqh#gGcd-guk`*}t4MjEzczXHdmk+!wRS5l2&kha$`N39mX z*;+e4m^{&HCsYqV$gG8NUHbtXA4C3ah6)@*uaSmP<6}tsAN!lV&b5)r$wwyNA6tk% zk;KPz`-|&pfWsxy91%ZLGs87M23)m>67z_ViLsGSEPb+^?s$Cp!lQ@x>)x~9u3xiJ zV~wjadAx9gE%myF17x^Cezfk2PrupddC6=1FE;k~cAeWNldS&n8EiN9i{2!fUBHqwp;KITCIxeLnR5$g#K)UnZ0^Ho^8M!!AH(ApF?2B8)8}F znd2-t^>mQtrytKXO6()-A(ffvb@B}8-)Fx&oBr#a54P#V8J|O7`>^YI^s&sZ?ceYd zJNk6ziCy>DiRG~OW0n)sdg;10;M{{C9W$}P#6#k?yJLFd8b0ysBOffd`>f2_hJ14I z({@f)&pb%S9(*pb+c6jH@qGU3syFQG^0*4=DeunL5kCLx@eXDB*^${N3Dt&ZhskRVYa(&o*QJa`iiF z?w5U2Y2dPrtcQ9Lxi)gBmM~OPaUGIWj)-(Ehve2H-%&2Rc?93k_(}hwRo)>2ra^TxN^nDp3hq%U_7kst;>_&QG8WMevpRIb6y^nNF zh3L#E&oABBs?t=?xJcKkhz&)$&cJ)Ec0n3^XFS)q0Xz1jb`JFh-flX(XYY{TK2sNA zsE!n0igXl?eIc=#@H(!d_0XncS$v)P3Dynl`UY7K()J0q-uE4@hJR%LJr;QB^z%#U zsUbo<@L1sN9nyTKW<=yr8EL4H6mF3A3$GiTxP!zN>DXm_IWjigOV_3V+s_;)nJf06 zGcA&u5^0I0jP>1>U#_~_2fYr?0r#gSREZh7;|Bc1ro3*jInUVW>+=EZIO(5Ve5N{C zRsQgvIj%jd8ZJ45B0XN#lk?5e_a@(I)!Ncs2MB!K_A^`Qj+4|-Nj(*xyI}iCeufP> z7J{>v$k+(dd!F+#HsZ4lexj3o7VMfN@j2|uJc3=LUn2 zIoFWkoAo7bN5)=}p4V|3oH3BGK_n+fVr|Z}$nb+?>^y7X=SaZ*o-9AB=I2Pje!kt$ zlK5E&Kd%M$v$1}Tq<_xE&v*ElJ?jJZb6M8G@AuDU`gtTj_vB~Bz#h-fWAx8k`8f_h z-{I%A{EQ0N&(!$2lzuP#EQ$HD-e8aC=hOUrO@Ga#Ju91Tj{Iy4*w^{_eLuSe_TJcr z%(tJR0^5d?8;-O-;4w$_O`rXE=Ey&@4&E=YIr>@4MoSMjkzQY(u|*b(!zZnS_ubF8 zc|Bl1|6|+lpV_kyTA$v}Y!Bo8yX~8-h<^Xfi}~XDG&f%tZjk;A*v~T$6?TRvQ0?pH z3hZZ{7Fy0A>=RNncZs7g=-h6{S zhM#fl#~X80UTocbJ=lEvxli*0wyvJHk0Tz#Hkoq>X&%Am*w2*q99t)k*FUpozq3BY zh%;^m>^Ne+%@5f2VL$bm0N&3Aygu&>*z5K6_EWHZ*kgEoV2|f9oV(|91Z=-`T=M>d z&AENfXDHa$d2IW3Z$tZWGcDM;_1DgYAR1f#i)NeLZ;0QR(3OKd^Q1 zx#@iYdyO^PI2X-60=7T)e(TrvAM@?~1CPh6dq~HCo(GTN>&*|?|Jl~e57;rverg|a zTm(Cw`fT%Ff^CzIOZ|A($?J2xvds**cGUaqI0UxOd3`-!-ZRHT`-pi2+xEN{<{oUF zTzk&^fE}Y=X=i!5bC3Gpi+qiLH}2QxJWboR_YdsxYy$e{mQ)d*HE7&&3yNJ=3Hc-CBDA`nu?-%|7Sx%ukO!w&R+)0((5$WIvucvY+w^s<{RvGV!2v* z->~Y6Hanxgueb(`|Kpu_JNL^!vu*>fziN3d?^$m{-goN3o9yq8?9=AKaR}^~?pSdyU-gdn$vk*YaQ*f({#&K52ivAxnPYs$o1s5VTvx;A ztN8)@D&If!d**d`JjW&T1Ge4xe#^gifIXhq-uv0u_baOSyy!Xh`fLyV*tP+mZT)!u zyRXm9{rF*Rj!V|Z{D5tv&ZRX!;9B|ZyS5?g>d$~}L;hTk&5_Sa`vKVT)%<%66_Ey1 zk&OCP)ts{nwhh>B`t#qqj$?IMiuVOvKcSLe{pUFcT%YuwIVOR9ZknSpKdxZ#@{aAs z=e79;o3CR_)g0f!=BT33xIT2xgYR4Xv;K_t+8sN*=V0Gw*sjg1V-nc+H`d43gMI#w z^%-lMdsC#>-`@Q)Ans@JYbLEI(g%m>ARru-+;}X@7KVN zdFIG_2{sS?&+^*yfbHvEyZs96-%IT4_A9W@e{UN|hrx}@=9evJqjWnS9wk~W{4u(!1czSa1saHdDT?f|;Acx*G}afHIt{0P_4y#4tCv@ld6XUUuoIPi(8EZ zn)l3gd|ZnKoH{Q^TJpZ5e`Gj;tIUOTl>zE2IOpH<2IDVP1!d_>MHJgm>JT8E9}d1p z`RrdTR5OpMJrMcO*WW&s&f4N9wmWcg_wiqI*VhfP-;Hf(sOUn~q3l6qY!~TzC4C%0 zhs2MnE^~Y}K81uU*NyOAP^BdmmF#oicm*{kmd^SBa;UPDYD>4S#ZQp7yVzv>&APjm zfY<6e8esFEIEFm;`l@;pUq)g>p4WaGzrfdA6Qd&G!04CrR3I68SuT6F-odGZH>>R{HFZ?nv}E z|FI<`=fM84d+=!DfBX$;9>Jc=Hk7>#|JK3hPwXTz>q%TnEgJ86>UAOEs66hTiPzKL zKjiF3W*wZ~qYW4^Op|WcQ|~L&;z7e1G@X zJLDigv3qsP@Ey8qnvetjNy}|dOWrrqdCks~2Pe-K>D=YNpBgu+Z48;}PqsQJl~wGT zAI?_?r=|*$-1yXUcyd(BoP6A>qzo;*x$c2+><2km42%pNTMB1Yg@GCm)yU0uOWrlo*E5cD?Nd{RJaVrg zwJ0KMrXOxO=RbPI-Wey|T-sm2-V3-1Pu9U0uBxigRa4tOI%IyN=Z#;m$F8*i&YmD` zD}QTMOwv-_B71+8DnQtWU6}&xnjMTCeeHAL)D!ri)hM#hdH>+Xy1GtF{L1qM$9|BW z*ELeW=HE7yJwZm#$Pec$>yQ{stZ^NU9_MpI9I6o#4-#{%xBV~n7l}W( z#ZRtmXRUkI!9JU>@Q%d(&HtyZPD+~jkFJs4PwSmMkA$17-<;c?#%Dhk==Nya_uNONV|&3NeVvmcyu2}|^7x~(bM&2$?K#0&50bp*)JPy7IxS-& znJ4-qT?6EJ%kj6qsfmF6$(fo2|7`i%f0;{OdZhE=o#X7BZIHQ;;UhBn?XLd;4iC&hrJZ!I2kd-y*E&c}fAn{K9_tf7 zLuSt-sWB7lv(LG<5|v_XyIzN{XB^iLa9s`Wn8yN#CuG)wj8CLqL~02k?Zb&%k**`c zIN>RKk93_LDmB<{%s;;6_~mtEJm$6DJ$C$Z+z1Y5j(>@z$k|0;^C*v}Y zb@26I>l+S{u_4y{;P$xLrmT0aiNq%3yZyX*oj4g8yFn6*;&)>W9^6hWBTl$pgVzJL zue(MDX90~fF10!$6MK;Mxy0;9Y%_Lh9)?OVLsgh>Z#~p%UDUZ}8-knoZLfD;!&Bx% z#&;tfyZc&1#N=G-x+t!(5#EumV*~d2Z$B`nTxWarIe;B_y&fYrgumJUVmpzxU7!7l zBbnQK=J6h0zih+Z^^EZ0*u3Kq_e5#jBZb4Be`-<$rm>;m8|6b73V7;w* zY>(&Xg}`2~Ir18My*-!pa}EjExqzP6&!B-{Q)LbR%)Hvi!29v<>%r#8`|Pp7=F8aY z^SZ&F%Y5~pGshm=YXDm(KmTuE@H}AaciSl2d;HX%=k+st9vkd6Ss&X_j~#2h*4}RB z^$e_St>??SdKG@ZzsBqEJk|$n&dpc9CXeq}ZT`(Y*f#F*%p=%3nFr4Uw!QiqW=i*Z zz~;!;^v`aaFR#^lgUyls+t>7Zdu;2_^WeG6ov#7!$B}ENSs$?X#&O7Vf~}L!1jh}q z_re^TpMEdA4%?069oV{?hkiWn2GYGg&tuyM+n+s;uK}AE&ue|a9?$ErulLtDcH5u5 z2Jn7kd;h`SGwW^a&wxFb_oBz1%Y1oku-DB>+qdi&y$=(5PzYjLY=BT$_+h~o3$BmoE_t@sA-)FDa9F1ee_)PXS zJr9n7wgKlNSx>OnWc%{E!Cr^4xd%JX*$f>tw)Hmdb+El26d(LK>*uj;TVU^*_rhxc zdmY}3{%o^Nd2C;Q(AZvkZ#Vn#Z+*a?%h@JgpZNjzbLF*vX9HV5+f@CwGyLXa`^s2I z@5SA#t^o4-ifz|xa{dkY)HWKVwJJFsTN-Ed zT0i@(Z4hjpooBIj_~s+&-XpL%w|!Nm%^{lm?+50)ubSuh{68eU%o9b=XYg#*eav?pxV%m z=Gc5WE`s}eqjbap5~&>@X*yn=pk9!M*SR)SziBz9*q6Y*hxB+pW5ABxp36S$>%n(!^0(Tdn$tRYp%ANJ=W0`-)aa{86>R>mIXMTEY|DJ14 zwxo}3h-XZEA6r-X><9ZE&}WDL{*#y;>3#R#AbX#4?6yAkIk4lB?Z$kWAF%D%Hq`I4 z$J@__uqX3uj?9n80$cC={Siq89e3NL?;-s@*miA>%$@In!25CJ_zq4@4W#p8oofu{ zXZN42sFK`Pq;rjvcZ*zVx!N~xo!m^nsa5?*rw)Sq8#5=S>8YWBbUr?qY7#H5583X{ zfBve~kVsE04}$osf$2u1Ty2VpK~`4@3cA@Y2gOxyy36D z(QME#xx&cQ0Emn($ctLOc^d0*zjxFyd&Rjbs1cVhAiiF z#&WOG7AH4vt!<>Ic1NUnuno8diF4t}_x9NElJ?V4=%oUD&2E}Jr=b+(lcLV_=RKFt*||qA1u}ObmQdtR{dq~ zZacbAbrfP3k*Q5WeUj`yGW7@PCo;bum=9ACAMnQySic=||H-+J~?s*?{f5345POHpCFUzH_RGn@1 z5o{sn8q$8|npI#&ft+hd`yV(pOjv99MOyE~3?yf!$F_ah2EoJK!oaTUlO!HRGI#2n z{9>ujwo8`ZJ)Q2egLB6BH1?6ig-H9YvBv|$O>8Og8|gKyv^`7z#nSj}^I2(rz~;|> z>$3xlUB{NZPrgraEhF}Mt<_pd_u1h(0N}sPJTgspO^d!h!l$RNKKMVlm9%_Hb^y*Pft5v9Za5k z>Ka_WQ0>YywFam+@X_3p+kf9m|9JJP)lW}9xtPxDbk}hJ$DWYZEj4jU4s`@rxAU>h zNm<6_+i>7o98Yflu<1ASp(;#eiF?mRHq~;(-JV$b^mMY*OE2p76t9mSzI-7aU-Q`B zvv3nh{e?8w4{%)pFkDAR>lS{ISE$|%_7tB&+DCd@^B6;AiNW%`1~Bty?_KAkDu`UO zk+mSHbKt#63_|v`CA??h8tEDXVD>j-dW_U$IAgPCsv`|`HW=4?=6wIMguyb(-!9)a zmshPmzT*Dq)`y!z<%Gv)91r6wNOR0sRYBy5rN>u(u$*q22FHewj^iE={Et?*n|7JznBbq-#Fe&uZjhhAW!BsUegYfb`fOsX_x)6TD9zyFZI;13o*< z37D3;K-TZ^l~j*lD_A_$t*UdUCt0kf?2rtFiaUB`+V1B^10q@n- z?d*5|xW&z!y*?{_wt1d2HM!2-^F6!qRm(lD-sj+w^SW1mx7Dt2ryk35YeUtHFSeiF zNly+jGI`3$$#o8IRmb?w+WReE-_5lcemwi1v+2%P29tA}oZi2#{c<(^{f)|c@AI~Q zKdsF93d)vhKEN|2vnj2b&}R%-4YZjFo?8zQN|m|E}kMQ?qVh>utX0+P^!xn+IQG z?!e~N5U~_IAY(wC(fS0Bo&(9I`{~qb_%#q&*n-l9}e!#xYKIqsJ zTa2veb^ET@(DUUn%uydF&ADyJ>vOCCJFYoKc`UGFzvDyi>*mOM``^`jY%aZ~ipImg zh&y(BO}-x7$Je~}=lqPsfa_UX+qn4#TR)FyeZcm?oNGw?i1`8cyyUg@0b2+2?|lK= zjy#6<*)a*c-;0ES$F%H^#PlQJd1`j$L0s@@jQ?D0ed{}i_apk*JNJD{M2(!aA%!t zll}UvgE{g%V2|hfKgWRn8gu0J#TFy|Is2LS9K8Rtto3ZP`3Cze^7@ zd*~QyUhN}b$8Pg&+XDM@zGpYbV8=u2V;&u6d+g7dAF#*syyge&80FaN>(AZ4dP>n8 zd);8$k;k?^VC Jg@g0?D2fI_3QI^UQ>^4Z|3=+^;sv!D9;HdD>!|sZ-&lUU$V3? zN7kV~i_Ee0v3-JlFYGwd`%lkHUVA+67ubAxJnIAYx#0En<9Ut6jaPbZ&Y*qOF|HUL zP}YO=*pAI$$8N_w+oYe11=|L^XT422#+Z|yFZ;JSa@@8bfX$Mx@7HI({JB1kcunTP z{CGWJ$5V6UwSujaIr95p+nzb{-kNW)ZOH5Mo`W5`&1*lNe=o5OnIGFe*nVcdy+>ek z?lZxBgZJae{PZ0AXV$?!0(Q*uHRcEGH9DWo9D9$zZl1^M0sE}fcDw`I zPkg=i4{RGSUyfH`bL6qTKCcJtF}zRa2kf=iUsXX>?*Z(&%#rQWJ_0u9=E%B%_v6TX zgY75Q$9`shz#hYK&1WOndt-h2@jQlYz~h;d9@`)LJ@aepZGFH#7tDio^YviQ>owJ1 z#fQHlm}AFUU*E?O^Y3`-xDB>Wwn^I)*yH*4Hs5=J9kaZD#^wj?SY%y2C)hq`ySAT# zy=S&-ueI)Ahm&Hz@y5S3OeT)c-ZRGyu=D@z&;I+L^K|;0NdHZx-!qTx_?$eZNZYy3 zL&p(w0`}gRqdrF2x13jNe!%9{bNTy`z5ihEneDLmx%zE!ew6p)vBCBybK*5QCl73! zGAG_ku>XSY7|`2;uQMm+*tv0F*Vu3jFh5}5WBG3h{do3O$4QUZ+obvTeVz3ga76|G ze(ya3J7(D?{r6JO1GbIZ=j;byb8egL|Lq_-wn(qt{P=HMV6WG9X=a-lws*JH9$Ln*Uz!#8{+l(l!Kkj^*8})x3WL=HGsY?sM3CK4xKl z#F5WU>jU-}2d!y8j(pEJz8`&U%|7hw$1#cDjjMT|9ft;79GM5(XN@!<+p%@^`(Vc+ zb7X$N=4gEWdxc{gvVYr#`m?R9dNOgWw$Fjhk?#eLwtKcT#|p4HvVD0@u=TV5cuuf6 z@)(W@zMmOzebV=9J}1H6C);)J!{)_jk?q~rgPphQ^~Jv;$8o&&)A#IP+lM*w`{oMl zb=VGzodKC6^J;#;j@=&HYcM}x-;0|s$8E6Zb!?>)tGlh=9QoX}kAba&ulE`TTz3ur zT<`0?&auPikI$6h?@@I(;QJfT12zw?M`7;4V?WzFZkung0`^?{okjgMUavXo z&u;s=`R(r~Z4ZtK{yn7kXY*=?#{NeQziQ^Bw{h$0-*;?7<{NAsjC&o-k+JOw?77Cz zqEwW!eS>}PWq+pkY-|K;rdLU%o@JK^uWlWa30b089=h`a|bBUkU1zK5+q2G@=`(& zUq_Rj{eQprH+Q~SpX*AVjql{<&ielL^W4|9*7sU#UH9{6t;biN>Dn}wthT#@t?vQ* zy3Kil)xmkq)$$XpO@3cz=SzEyTloogJ-uc;GT(1py~y0{y`VM(YrA~ydD1b=J^J(; zU#rinLVaM@!B{Xa?Q0zWszw?RPt@F2*`9D3Fqdf^Ktz};8!&^;! z%630V&35Z`Bdv`OPQRBPH;!7}o~^Y{-M7~V|H+j(tRuH3KltWR_uD=lzj5@Z=wTgl z>VX~OXRq}~iA*hidug=xy0SfH!jwI4q$gGR=zWwmU9{=O$HFJlzw* zOY_g_HMwezu6N{~ed1G{`B2+e>ldr04Wczhg zy6%nN$d22bt^do(bSe7!)t6q+q$m1MM~9&HAMu)RA2HqYyngsH_w4)6T=nf+$vu;Q zrtiq?94At5du%kPm#5L-qt|}-$lE zy8kzZ&pmVPP33y(?~S?2*zsn0ySYCy9E}IPbmZ-_crsJpbIxG-*LT$?xcM`3?fY_i zRQEe=Pu}ifZyb3H{_fG^=ieR7=e&7zNa@ivjg0=TS^Y6G+;pu|ziZ8Har$FS_l?ir zJi84{RrgewKYdi|&(T`w)|OlQZJq93gKb}v)akb#z2ih$mz(8NV9 ze%YGc_NquNustJ!+fO7?y<2x4Sq9qA!J1-ivcJNKpSj&}?5|*busHKuhi?yr)c&_; zOQiEY_vn+?bN=Sh&*D8-|M9Bl5AS{UeowEN%J>t>pFIcC-=K%RAcEU3A~O99esuJN z$XUL38Q%0Edmsc`7w%frhf)t;U#r}EbEHN-hc)5Bv7vn%)>`dn9(&)h_BlU$bOmq? zpFX-Q^oVb^m&8-l`v-U2lc(u*&>jMn6EV+UaV_dk** z^W#_2)uy%Uk=E`fC;agBP6|J~*Zvcc?JbZP(RSlESbsH!J8t_1*ptE-*7wh-oBjsj zraXP|K_l_$qaVy1nX`RDB0F#7t9=3vj>1$<=k2(e;|n*|!<=I7XfK3Qo|&n+%6Xg9 zBLCvfPj7n~3-aG}tbFgGf6mPBHRAN*Fn7yk*WzTV-Azt8-F`m*Nau^xhTz0defFP@ z{L?cY)x#bS!O2E*e&))_(v#QaF}T-<>&9E;-n+>)GjAJzYsBQQi6;HMdtPPOII~yT zI%Q)wGV^z?NMkTQ+5K|$pfB9055>;$*1gZplh=o<_gppqwI4z1L zqzTTNR(EwUCxxx%ph$CQ9`m`5(H>M;bM@}NQ|a~Q?e_d=&!+Y?iPR^}+rhObGV54> zu`f}%k39LGUCZl(oy#2BeJy)b*Pv4V^}W@L&aBklRn0-C94}h0Ir=fZwwFa#|Jcwt ztgIc;-~LF=+mRXDHT&u9IbPq_jvQtF40b&`Pvmr`JEJ*kTl>2Xk@{2a8a?#~?;o5q zxa*R6yZ?Om=#}#6JMX&dY2S~Z-}=a{p1=LzJf67r#I;X6wjS?zbdDGA&GFG!-gvzG z=xvhYlMmi`rRR69&GEv67asiel@DF*`Q`g_eC6)X?tJpW_wMIx-;~O;)5)`Uqw&v< zPAEOvyQK1+M|YSWGwXM*{plm;(Vi+Z>zD8U{1~&x_v!SqGWY2_>DAKf{^jalU7K^d z%6$9LZ$D~Jm-M0O`R?0)e(R&JeEmkx+7Q`sb8U5v{LZl+p5dsc*LNk$QyA=Nf0*)A z*>#T$H=SGVK6P)7uipOZ?O(hy$JcJo@#4J?-?KZ-hL;>+$~l9}edM2WbnPR{ zX?f~8?y_rNsqN3+efDnWiX9&9jg#m1+Q`I1k8tCB@#P-r_0xVo`cUw@j$S=II#1+> zUhP4YK1AmkZpu^bjg*J4-&l{@6B%xLo$D9eb&dWL!7tuZpWtxxW=DG?#pm{G9Ix|4 zmbc1`QJ)>JS<$EOeEP@%b4=!mC!PKip2~Y=b;^~^L6POXQeE}Kj#J)}JA3F4`i$HM zM~BgT(4SqMu1x7fb;*aKTjz`n7d`4zi9Gv2IaYAvEz-594UPMW;Pl9vqtB~!jBrz) z{>c`fy4QRZ>H6<})bV1sbMCnDANi4E|LRc-%9lEHO(XXnU9~6D_~|&6^{MQ5 z+PnLZb2Szt>kYZKxuUW*M5=eMsmz*m{nT3@XslH_UVNzQzWZ+N$aT#@k;Y%}CH{LS z5T2SVD&;|4UpR8V=ZBAM)Vqe-9BDp^-e0}_Z}0SUEy7Lx)^!N3A7y@L?HW`z&LW++ zHq`#v@&D!ZdzswR^m&n=y7%l|Pxt@M7imAaKfC(G>$*l~?a1DmJ+^0kA+qav>O8Z` zW3boMmdN(P>w0_F(RGZh|5SeD*4J+KG=J$s-+uHHkM+zwQ++K`9^yldv*zx8x54k_ z`JI;?`<(~z{@s!JW>S88alTRGcS?eP-Fdz4`tjYhH#>Yzu-_%|dpG-cFucz1UF>tH ztKYqGJil)ee2F9Z3HJLZ>a%{6>%ZT3F0u3MdTW#G~(T9-w;2oF;2AI zd3Nmcyk72uFWIqvlWwiGa$PR*6R!MDn*8rPto)CM%1^NCDOLylDcHHxd-pZ3Q&;B+ z_Axnjo%bB&*m9yj1z#F_A5S~9-RpO~9~TO>@vL@<;byv zz0U6tI{vQ1CB5Y**qD(c`3W9xO@|M3)|?cqPUdHA2zD-c^}E~q*xK>1vGoDRmY?81{Y_D;=J?6B}nA`VF zIZ_8X_WSI?&L#iG*p9VnUJabD4CKfNbZlz@f?a37UoAhueh*u{-|Lnd%no`1+Urpq~V5hx6`h;W`_0jveg%sbl-^ z+8t~yjPvaFsgvXFHVs2-ZK(5@D}tSCooDqN{l+{Z-@)4P@mHoI&F9UprJui=Zuj<& z9lvnj)0&N7_l1wYGQXUB`!TChtP1xPwcslObL zaO~a3tvP!9=5+Hir#n`#>#jdlmrCEGnP0X4FV}aQ+)Lhe^lEvtQyYS(YxCVlZokS? zxcaY;%6G7SZGO=2f?YFnzc$!^BG@tHRUZnrW0&vI#G^dd$e1{D9&2oa{l#>jx4sJe z+iUuie!TPbwwK;|qo+Ake~_PGbJ7GGVb2%{gIpm8+Yb@*L>fL%uD9}eczM^ z_kY)N$J%SYa;#weT7BdvIJ;XhI!WOgWZ4hCv!mXcw{_uULnqoe(uQX zBrn>&ub+>Zx83`L*EpNMCKAu6)JFA@-^NR@ zxm%9h=YqXXo1Ay|A#HNa)(rLNU0*|+N7OA?&i~|B)5XR7IUao?$MZ3-33d&AY}dgt zw0(ZzBK>F|c8m|nPp~?4y&~l&Sex8S)Y}*fcK!5Y#|n0B-Je~*VD)o6v0Mdv&u6~! zv$kOW^FG!&gXPN|(YV-iiuu9&qldi@<9PeNaw*s9t8x;oPZ@K2T*$w9>GzL!XguBj zy=yf0yRO0RKVtKCu=mCKz+|Ko$ zyN24NKN;J>jwe66?;7{!1lKv(xXbR{Qyb(bco_PF2ky1`!f|VPij;9jzn4u9o$;u$X^_tCO+|6H!w=|pPm7yhNs5E$cg^#_2~@IaU<;|5gc23#-jEvX#Mucue{~M zkDq7#I(6jjY4c{%n)C7-xgUB*IIcd{xd&^9_3QSnNY9D&{N?fYc}`UAU4Z_>-L7S1 zcxfMizqymXG;`WzsCJ}B#-Cgnk8-Tw+7qci=^Mdv6db?Ix%+N?I<98^H@%M!M}TS0_bTE7jsXrG1s;I z$dL#C-4Po-Upn%nhxx*FYOGai$9Ip886D3)2f<%`Y&s@1uVsw(*NAlegWD4&vVAuq zUwpL}P&>GM_;DYL4ecHB?Eh|8sZ-ix=zkvlUUDY>8?TY0<*9Ldjzl)6M84zbx8U&) zhyTv`4|lq5#zAnp9ra93Z(grHk@hVKb}yJ@2T z+&OAbn8>|nkulf4Kj~9s%mvp6BF&TTZQs82_B)==t3Q4H>hB!gJmzdqk;vFmos8Mw z@)Oz4TVHw0SKea2X|IjS=DWzoK%_AiY)mIcx(CT|aCI}!4{O(!?;ZWy=InTp;icpJ?CAgFSs#e>{z3m*yo< z#)o>&I-aO&7TLZFk?Iz_^YZzl>OW`d#XVBnzn@`1-!0dbF8<@j8#GV56#UH{M8(D%cOr+LZo%5|mj9Njyn*9S+xp6xY~ zarGzd-Z`3hOLv9!kfU^TX*O$oRF3LgTjiyHY#KQF3>6jI3^z$saw-UF05L`bYgNWAxfedn$C^tnUQ zviFjaohux6jZ$x%%41J!X|3^Z4RWRRv+2dsirE+Gr4l?{QQ93P_56SO$oJ^w@xN}a zhrL~_=ly>k`K?Dh?N*YS+xC?BzmD-d9j~>_8Q1Hr;SO$3hsbBCc;0J|?QLK!vo+ko z&SuixnT(W762r=0)RBY$=6?bko?*qfbQ zyU2IH+R^6Sw^N^-ZV5e4&8p#7?oKC<4=p`h94lCk;~V8Ky&*209Rz-UE4)1M zTGt!bKiGZ*?Jbd>D8KXaFJJDtkNv{yU2&vp z`3`n$^LE##QjW}%_Av=|u5y%~5Py9o{jJW^-Uh+VNs;=OV+G4mIzU_+uY5<^|EYXN z?lISOjdU;D@y=2GXxG&o-%eNYO*2{7sB--KL$CKm$vA&b@26n%T;^@;CvSUp+{osN z#OS4cE#tah+Y?4#4c3>#as5EMgI8Y8em}{P^60*H?rqKLU%6}Eo^Bau*Nk_*-bw9~ z557+i7x%T`=?wDXz3$f;%VW(X~)@;#YL-;?lrGQoZy$?s_S zy%N9w66|+l{a(?P=apy?+1Bo__83O?R7IKi5`%T>oHW)9<%wYp~frZm zgN-fqaXdK*HrJ|;F&pf$^1XfwQ2o?febh79dA;6$4>mUSA?FE}XLG;Tt52|xsly&~ zuBV*rd^w(+U*bFVt+6_tFn0UYPko&8#Pi)q$1qNJtgoog9>eBSIg;;SW5K*+9@)Qh zY0No~V+ETBj7RwiUO5_0j5&QeSYGs}_3q)y@_lq|+H=1gnKQjceuA~v{HzZJ%aQBk z`UShT+N3`680>h)+-{#W5{|LQg|Y9tT-y7y4z80Nx&FcGqz~=>Wt=#M|L*z+%aM7> zYl5|1`}Q?69`{_-zkN=yHknhLGuZDBcdW>LztAVOS3mLkVC|I?uMbvt*KdzAxzwhq zocMzWu2HZ$Io{5(f6uqV|NH&jCmm1Q<;Qpl);_N{o`dxP$I$NJm7`fvpSR~VA9G&y z3DzdZ(4T@GPmbK@T>oI#%(1mQSe?uP&KZ1Zj7$84DaY`7{WDnIwMl-0&9!emYDao% z)9#bzrCGf{c;K1`%a{4e_1m%YYLj~I_w0`GF#Eh;)~AD=cPhHmuW(jlk9!|;|B;hm zZMXKwxDQr$>rh66D_49i9PD1Qj=frFo>W)u4wfT*ZGWDBUmDMK3HEt%WL;CRwKe*H z7Fp{R?AX_jSNlE8Yr*zj&^}`%_);G&eO!Hly=PeOQ&uMQ2YGP)gMFU(ZAX`u9_D~x zeagJ%`Ug9nak}%Rjn@7+wz(!)oxC5}*V%VvjHUg)+WpMA+z;hG*mZWibtQiP>U4TZ zpQJgoJGlN7sefwUo+pi4*I9moNUZ}iRZ%RF?H3j4y!z9QzjgEn>7fn5`jpohXS)urv$=Y| zH<1bRkoE-|7xLh|*6#)zC;GVj1Z$I6?t|SgV@)PX3J6^hfdZvqZPdV3DLcDzeIblNj_S#n}dF>eRUgPkPZ zM}pPKzAxsKVB^Al&i*O84%#Q*@)NAC^0kj=XAZB?pX6u9#+-Zyf9&WP)Kh=h^QpPW zy~**+L%|;2=db+4!{>1Sk&|Ha#a!`sM^A=!VMsKt|G8%Jq7A`vAKIXgN@%I0Ayw5Q^n6?J1tNtlJ=8a&v)Q7Yu*s=HA=-gY_x*TE})T3)ZLHOXN4$m@{{%Td;m) zPSA&T`{eG89L=upI*aw8VExF|^qz0GPaU-3VSAf4^}WAJ$CFoelb>MyM*AEq*d9;g zLF;cN@c)$1FbGM$n)3Y@< zsRe0WXXX6D`4^Ahq@QY9xeI=^7U-zc%h7s|UA|g_bn~gB66!ps3itvq>M>t!Ol&XM{;aqGAG`_PfY;&Zp2zw*Tg`TgKG zJ5wuWP0t(s=%|A^>OHLv?r)n{w#F&4zY!kU%H!5ZrM{-8HmP^;PmX$>9{PXl+9LJI z#GJlcJ|a^aXN_I`C$c{D%H1%!YZ)ASo<4rnJLlAc%gFOr ztW6Bohr&&HD&Liji^Q8%sCyk(ua7iur`kT}XOCZY&l-A8Rr8U<$$!?R1wZrH`yTzl zk*9N-xAo)G+D7a1ujlRL@7CO>?!Lc+URhpqrTfL6f9gMxpS%0y!Qgo|E~ZMq6>R@> zw|hsV*MH`UnfpCgV^i1O_)nc?kJOY~Q>yQKea12FT2GpKL2FR=dPH^o!quk_F3z)Y z*=wEGcsAyO-G9POdD4fhL(lqu{*k!@(1&7^>u$ZHb-I6XXFXic&)%QC*0pFX*5}SB zYBaUt@+b6|IGL;eoR#0t9QCy4uJ8H=p5||GWQmPcwfvkJp~a_-5nRy+2t0FYl4f+m+obQ-{-+H{PdkmwIi+dNj-!$ z7p*6%RPX=v((k<7v$bEXHM7npwNX7ER+F0QidLx1FXKLYx3)y)7lrqF&i>u{(=z67 zmC$H&mYe(uo!OopAdc8gr+<(t=x?YhV zeWlfdr?ehW+r7SARa(QQ-i^7+_*5&yTYnZg)m`WB!aK$juhmyZMu+nB;#L#hbI@hQA^fiDt1#xwjT0tU6Zkx+NJUQ^*7FAL-g;Ntktue zWX9&8NbL#kIz>9~v&X18nm_cT)Y!=h@@O@!aQJ=V12|IdZ)H8hJ23$X&44$axO>C8Eo#5BV#UDE*;yv ztK#@zjy3i2l;Yd`3dfvkzOMw!TOZXbG&j>Y2Ni3eJI$uv|ZhToy+IxL;E^Awj8NX zupB$ju7h(qwz<`Lf*r5iMEdW++9cmQRtNKdo0VEK}x z$)1niHQxnmhhwYvjvZUOgVj~+^SnM-9^^=Uf{khIm{mEE*U5?4IfETr{s%LoD0rQBG&B$GSbM#G*g27pd5!$6yXN|uM2;OR*n67Mdi~D&xfa8c{whBw zo>yc$NBvtKgI!xW@;k1<+95}~P3q*>#@z15j$J(?{r6xwx-?Jb^mT-5X5Mz59Xqdl z2Wy9q?Yx@1jX`bj`h9F;WFK43)zz_g>|CykIVsrJB+j#Qq)z5M?}>w53w2ug(WCa) zB$E})cfs1^*mAOCpC{Ia;EA~PeE|I_SdO$}pV#a3A?MMjgB?%2zi;K(#<1%gti7(E zHu&$s>ZGqYPq2@PcOHD_(0QF_UuW;RwN*||Jny)9|L54jYwn&E@Oi#35v;D4@^<*m z9c9lM`5Q}}Tl`jz&LL(Awd9KfyjPyKhf()ZL{5=f6Jc>l)+P&jW(3xtOZC zj~%~Dyn5I-Z+`rhp4Ps8>&D-|)KeaV^>I1!vzlOY@PE1fyKm{a>)_`#`j^+&w=3m* zs<`exVr~w8>y4=@`PPl8;@k zC9ioE*i(NBR;O|kX+3GMKHy#}KPUeCm)?4;eNH)gm`_ghsYm6$H@Xc^{3$5kIk>9tDm_(*tj*8gpaNKfykxPwG?ZbK>F1 zYs^W(uKQfEeg=~m)4v=;o4$422Y4Fm=4$y4zQmDspLje@j^|%lKceAi+rnFu$-Gi^(XlW&bLSAoD7{$OFgwupIYw( z@_F|ha_pLUeXw!j{gJsoSdPq-=A>YK%JtmG^KWCu{eE8yAIpy2(|LmBMVnl6*DF{Z zj5&QM*j>SO{^OV5c64r;(;TRN^6kF|dyRXEJ``-Ob&Q=aeZUCx8uEB31Kuz1W51hj_Ti;1YPry0MDVO*O zSFWG>8DqijP44RQ6Fi!JqEY7 z57s~AXusc@oO|WyzdP^dO!i!VTOi!)H~QBeoBr+d}B2)cuKY`R__q5i#Rpix6d+qzuz6p`)6P)_t9=mI8ROiU{vuMwY*1t!tb=>W2aP*To`i*${d)r^Q@$}0* zZ;i<`=!K9Z%nsr(Q|Vi}SSK zh5UT(?%9pt{Do>gYV8BljslVPO$fHDMaPQ_KaGRPzqs?k+db_wP@idSyK$#)v^@?Qi0uUuY>mGhg`aeC=~=EL?G@7)>DoKK zu^>OIufFfm_J4`|;O+TU`Pfw(Bh6*TTsFvK%*d z+oLJc7@6)3M;C|VI*-r2Wq!fiv6KJ17ev~_rTH?lJvKUKeKby89>)!vHuXot#{#NN;WS5oPOQ@5+>t56tY5vv!jWhQp#|m~l z<2f z@*8O$uMb4l2dme3fBGYhM>Ky#R^LkVkZT!#F}92g$1XozZ+)P;rf$_=eqDc6__rQu zO?0HcBA;KEKYuO#{8eykVXbj4Ze8z-^meeuJoVu{-}zcScIEj?!u_@4R?vR;N_&>{ zI;HiuFTD0^)UB6xyw(m!YR}%sn}e{Z(_v zZmoV~`wCQAt6gp)V~>3cTr+FR+n=L-Gun41@=qUWcZ~do_&n0u=Sq8uICeNLzmac0 ze%ri9>$@YL-Fj8Tk9u0K-!+R&*Bs9$=o?aQBJDvETdl{|@5)vEz?$xN-JM_DwqJw2 zAcCzc@0v#LaZ#=#)w|sM*5OGx^oOofsU!zYv_V(+Z=5h57-^Q(Dn=8ss zbGGYe?+p1Vca@E;NXHH@>f{*qk?EYSPqAa$t4DtdwoindeB!ZBJm&A*>$`GX+NXH7kv=?O^^jBlcnCl+eyk%^CpFTj{ z+ak?l!5+qT_;I}N(GN*}%1PJCobG-vuD+G7lQ}avw7pd#yAMU0)5~#vv$;Fc@$_lO z3hw?HxpTDYSFNA8=HAiXIknT+DmS~7(_s15SM2?i^{Ty*^3WX8cvC<3c=_3Fb&r>$ z@KT?T^d6-7D6;c30>Vc>-&o(Lolj-_EF{?XrTv`4_k4qWUwi!wYyG6d+7aK^_C5Dq zhxs%z@7d4c=M}+zmf&X$`*@e$*Pc&^*6+pUJ#IhqkdqzzJUJSMPvmD2es<&ae%C74 z&$r~;&(}^op8z?p*9ZGqknh#Ieyg78l`x0)=^Mf7C!VWM*4wb zJC|b&J15e1IT5Q{u;b;I9eX-wu=dH(?vs8-=NR$5o{il~KesZ<{Ol*#&%um2^$FGw z^(l2TPJ{h^wDIUzC!Q5`{p2Uu@BjEbb(n7-oh#?O<%^?z-W@11iw($-*gn(s$`>&8Bw z-`$WSeSg2kzl|mN2{w0|cXyw3jFqGL2A}m2!E)qyu4}LyX`lK8`#pkn{brALUkhG+ zau}DNVCPal`3aVXH8;)(6Xhq;CVkTHkp%mFB;$LxX&rAga&PN?P&v;^-Q29%uIpH_ z)*kuq!R8Kq%2;yE_q^u1s88^$W`0k4zLE5>y>0G@g68{3u4VAb(R}~g*#1A=+Z;nq zb}UEwu{kr?_?Dx6Joh#^a&KE>_HVBlbIzka!SXfH^LKam@$@6@bN%Ee*mc$>uMalg z8@Kz~%8~x*_3{&}P1+zo!R`ZcWR5%cwz*gF8gu`yx8vypI}h4q9?`yF$8!wh!uSg| zzWolGdSW&b-?b-LpK_jE2iMHJrVj<1yS=BKBk9! z?`tdPj%RGX(T9d5$5Xdp*HFLN`BHZ|cWj>%?B15|GWOJlV0DsjuMd{NnONnUjK7 zj%0TD3EKUre}C)79J^0ihwA$)yM1z5{UiMi_+WF4>ug?<$6)s+^OF1o&pWf$?u? zI_35CdD`D6So`E(-w!s{tUSiHu<+> zOvkYGbN<*WM_x0Z9Q@uRu2-;e;V+xWPq2P%Z%h9@SdJV+-!;a9<<9HnCs>>0XUC53 z=TQ%fx%IX2SZJ;Z_PZPI|LPX3PZ`5{fcyj-Gt*gO?N6MswB=-~^Yvw+xuC9gqTCk5f&#r?$ zYMkvHnG@FiY&deBV8@dq^G2}Otv)pQAbYac$%E_czXxBsKic`ykBoKWIrvguQaAUW zV13HhJ9}Knk^bN{!HzF?u8}?%?0DLwp9K4u<2g^Tu`lPY`HuB9ZScF_!LEfmcz<;E zqna7i&#~1r*xc>d`cSazDM#`XtRJbj_mF#T9j%ka=h$_4j_P>pbW;Ot|Ar@z4i`Os z@~bcXGUs33`ZqUQ=Nj4i*2>m-M>d`v<^ltdly{Y8id!abj+0Emu4DYz@<#18bE5=&*;MCf8<{uxm_&uMz z{<*jGw3a=%^F}^(jM1JH?fX($JEFg}^444jtM}7arjoz4@#!P*<71sYQd8g4TJ-v2 z<&UpDb*-G~L*lGi=ZdU7k@k~t9fI4>#NH8m|A>sO-d}v_C%@|1od!W_tl4{!;C#|b{)Ex zC3f^7eLuMKM>=oUVrHA3U-NGVI`)_zyAQ>duD$W|{Lz`KNBX6F;PsAXA9zDPkpGSq z+3}LM%s25F4|UaVitB&!H#^afui397xbsG4?DAyH=~MADuld1)&s>@F2M-!2k>+6g zkd&*+>K<9{BlV&Fd)M1OIpXp3)8orWWH{M+`zx}(A6Y#s-T#e0YsG_G8=X2@Yk;i@54L8#y#ONH_2kR%N1nbGClk+U(Q-TW9+OJvLJ3+nyBmqX=$2Z+eqhQ`}nV%IXht;B2|I|XaKSHGI5Uj4PkB)qH z>vy8=j?sB4TlXFr+iHLLj{NzpIm25yj4U6K@uB!nPuHS29O-w#_8YNIzBTBPUY{}S z(<1-XztSEQ8M||7cW`^kqz{ZoZHaXKW3Ovbe+pNwe{gk)Y@9`Y=kWdYoPH|S-OEY! zue4WBe6qb1{^jalUGtPbZEx?1O8Z@?cYP=t+eaYSSkQKB`p>-d)!XGsA5x#jS?8`j zk+Gp`z4mVSv#aGH{`$3>bByPnUTp4ovmP7mBe3?6m=*Z`?K!j|IK2eEeE+u}Jr(tsL$4aBJHnW-U!x?4;}faaVL+>J=OoC zugu~8v-c$FS}LRWhwrsJ%_;S%u5;vXyt?mY@B7~Uu0@~g7~14q!A4-#qWX>pov6Kb z(tD$GMY@*-U&`I`|L&uwiH9~#_Wbhwoh{bKv~>5bEIGm|=$kIL@*k;ZWSq4w)H-V2zo zf?bP@(d*55-8&)^Z}qjjf4jdo>)*atyuJ@T-(}8s8vSg;_k{f{Z{7_)k?*bhUbbTe zJFnO5?^pXCyq`O&kMEHO`@Xh1`0v4fm&DJH_Rl%g)z6Z&$>#*iw;X9}usZo!mwE^9 zpO5r!`RTt^`Z<8}uAgaNSw4ew-hC~uAK%01;pa21h5YPTTX&BAT)X;5?!2m>_>!%$ zTaNU7ISF3!Rjzq9#7*tz`vtLqo+Tw_tL@SBnORjWBJ>8-6hR&V_{*m)gW z8-o4bg?5;Wv?o|Uc0BjFVAt7ec3u7aTN_MlpFi?#;K@o1WAhV}4y`k`a*zUyP&OYCvs+GvCP1RHa5v}(G3 z2gA?sy~efN@y?Nd%aK@qb}SFZg8v?D?w2EDBv_8TCz79F?bTO|Gr14;nw=N__Ioqt zGC2u$e0A`fqkiu&c=g@+j*sgQyz|n(_0M2Amm~MK{Tkz}h3zLTd=xcns<+9f9KQ3MGvH)^_Jn?_i&2UYpFb-jjtlby8Pt2zD;7(T8^Iy02reHL}{|*j^ue zi6i|fSidnY)IqL-jbYb$*Fk@mqdiBthWe)*y>aZ(%9z{Z!m-s`euCvvj^tt2+sC}d zv4XY9dDSi0dq`~>OH=c)9+x=U_cqtowb*q~cW08j{TlUCZ+$EH5=ZhAZ0=ScZCJTl zYghCY`3cr0^)Y6H<;dqbwqphRnD+u+AFLhvt2_qF^E%gX{j>yha;>T?_Tu$Mf$?W1B02wZpOHI9NM;On=zd!rZ+-=HK$K z4bBf@{{mADzPw*u>e0{g)YGY3BcU>=y zt=+-;WVw&@dAr`1ING15?apJa2=;mF{p8H#{ZOzuO1`xr*beYM&v}B)QDSwK`xDRT z_Fk|)C0JhOigagk&|-+E(ysn|VmSor;APl-Ru-MlOQ=-u1LZ`pe|UOL3|%)6|f zuG2g#eJ(w`b6tCP+ACr0=koYb=RSL{{Z2l1{ED-u>!goAesuHi>Ff638F_urT~31K z-}f_&?O@*rlOOfT4&iCNr1rQ*!EZhKdA!*vKf!+5sZVK>eN=*1`{vGbs_xIV(0D_?*7@>=!edg?>+6YLtw zxjv)~!N#1Ncztm040`%Lz*yHco7GtTXQEDfg0;!t1K<7Kd~ZJw?GAR27aK3~9c=Di z=Uua~`=~jnqk@8pGz#V0AJl$Yby&j@_SwALiH9uls(b9(8HW z!?1p1-ri%=x_N!TxZn2ybDnv~y)1a;Xm%iV3)XMM+PC|VaqBhm6Rb{-p$);tiQ{>H zy2qRx>67vu?0D+qUK>2#zxHf%9{CP-J=Z*>wd?O%Og8<)J8~SXFV_bnz5m;FkaIb5 ztTQeq_8o8EyH{SuLgz8huCMfxf9Ej9f}P9wc8!9)%QmODC(JA-GLN`sz8(+uo@O0y zT{Gj(z0zy;`#&G^8slZhjhQ@3EplOt^nb_{iO{e$I2 z+h_H1AE2k?n)y#1T-RXdRUhXGmY3>TbWE^xjF1>~9k6{e<(XPq4Yj@yts* zcjkBTz81!<_vz-OVDCrd{1QLmN}cw5BL7xDIo`3l%8_|@-v`DU^!&B&X6DzYE?txP zU3X*d(wb+zT<1%9JL_-m_x@=2UGHhU7f^5WY_NxXPxs#T9-UG2wOt4O)q7B{F>eR! zL-MUX!RBsrx@#URN5+V`UVehj3FcY(3DzU@<6-AS#*^c%{LH;b=65_f@_sGY@#I(^ z3f3maGjH$qIi4KJU9jt zrZRQPPabv9IX-{0)~FGSd;i!EAy7s4ZruW`!J$7odt@VE2qwV-m zIaS@|H}VTNE+65jJp_Jq^xn91w$?uD(wg?jr?GhHFb8{eyYdz2E&m`K$Lcr(E~B zu4`m{DAKXrhl0I-u=h#rt}I8<#~ffD3O4S{yTe@Sx{twnA+d1LIqjtE*FJAfDP0v)hw~o8@vytC^wZ};-xL`;{MK|8X)SN0eE@#zk-xg;nYr4B z;9W<3c2CC&ZtsEU`=P7tv=F%-_Fm{%k=AX?PjL82mG@M7pVix~L9a|je9m+asLqkr zMF&4|E!`Z>)B5M>Z1B-nI%Z`!4!=3ye*F`V_3Xb@)~2le*KbUvyYmFMW;;@!QtzyzP{sdsSsi7#nu^{@Q; zjXAW{y7_lJx^^YW_>Ft*2;&}M@gFQc*Gb;55$1}!) zjT!YZ&YnHu#3Sq0F{i7*hpyUJAoyo@&R!$wq#?)76Rbbfha$^kr2GWix4<~t*Q_y} z=i7(oYd6;}O0_4_ylsqhtjciR*qv?+A9+OpN;z`8=CDX(BsezJXN}uE=FV_RIXZN;9^%1YW@#XvB zsIhMjuKks@sXeIbue0x;sQEI|T3ESHSzu#itqdSx&QvYz29f?GX_7`2zET*Pxtdf z#|rj4K99ftYw3^Q+~3#M4nLdnJ@R0`SLJ)$etzM5_&fG_+7m3tayz>mtgeoy zPpVt6I_X2Zefp8{ygyHl#Lg>M!RoDjd)#}SG3VI9uC*Nb@B20Sq&Y=>g5^uSL5q+&AHQy-E9rC2cT9f_+TC)1QJp*4#gtcIQ}~^bM~M);?|WerCsxXRel? zVC`FTfSGOI+vZyZULWkdV)@xQHYdoj`UE?kv0%*Ydz)jJmz*cq@#IV0f*nsE(!OA0 ze>`BV+0~w4$GDW&62D%jKD$lEx*TbfF&pgtq#oc{!TO}*c}=kTskeN4eXu+{Y;Thz zeah>DjWc7=y-j|CwO3yCp?z=jnqPN3`Ej0L$J17GK=8`ZSg+p&>yuW~$d5i9Y<#=s zu3xZgD@WQFtWJ)nt$S{D4A*bp+w=kT_L^YF_j%^VonzxfeTMB5nLEtm`}2OCz0G|x zSk4_!eS-BPUwe3cu;1I%hg{2@2YpEH9v=7eF2SxtUt>i&p8J{p8LUoTuWrFUPmXq7 z<>A-$A^CDGygpcecU{ycSk8?F^N4F1>=^RpSi$n5kIQ$kK5ib6N5=|Y?VIn^?lI@< z67Ab_zq-5b^1WZPax@z4>ug@~v3=* z+t+Nt@~2PA&$+iv<(t=-|c_cn8_+y|?> z9BH3?2d{hEe0x}Xg4M}+-0yd+ueg5hYr*QIPrLUAuYNS|M;Noga&&2Lb6*RVfAfv} z1W&}|USjqOuMgH<{YHP1pJ1<%WAzEvCdY7{gVjl2b1yPRf*o(=d;QDtV0Cv4 z{nP7%SDVHw_uRAYZS#s{_et}T`sp|F6KsA^KYb`z`}SPq-($sPqz?ugGtM)Xo;#?z zuJ&1Vv*v2o*=rmt*w2s5jb0OMF99vIjyc#hb8N?R{exXk^^>1qACn{hJ=iSeV^*H* zI;fx5eEbzFYu1`b*Ua}0g5_V|lar6XvL247e)1D6|Hh2h2OHnB3qQKNpRW%G%Y)c^ zjuX$7*3}wwXRaPCw8_14AKP{J{!M*?<=nC5C)m6scAa;<9m8BU)||-a`Pi+Zbz ziJSym+vM2t6Rd}7$HV+a{p4gHTc6U8wL947iH*fz?R5;-S)UFzFS%du_BpS1>|KQX z^wfJ$b#qS$)(7NR9)o?%G4|*A+Q_^lCp*@Mw9m1Eo!7Y7?`h@1x?OuZ%1N;ICO#(j z!TO56D?h>7=<|$`bmQ~X2gLjCBS)^Ea|RoCa;L8AzV^+VmpGE2V8_!w?{9ZA`;9Xe&wCS&EkD7=-Mk73Khw2ik2yK=USQqXKK_cF>o+?#PSj7^o%8ge(N>Q4 zxR__DO+3p8%zMvsr=||(N#_Zc7x|LYVEH#MX?L)^ICfVw(y@ZIcRr;`uLU#cs=2)S zUSO~+Ij{S*c{^Bp9dC~dW6oN8?^A-^+tgKlQpxP;dg?3A6D)t;Pwua?d_A>3Zy1uF zU^zD~%(=mGsZH+vXI=ATKzZ=~RPKY-N&emQf>+K*Be@HnNB-`3UudF9PIiv<>tXAS zC>?R;oSDsW!RC88QlIv0s>y8!e=CE(VWaiT{*G#i%2n6NMDi1?7iqixBtJVg_vq8X`kpqqF2Uvj zW6Rz@yFVBg`jBGU^(g@5b1dObg=r#gZVDl$GYc6x<i#8u8RvuU#lwy?e^{-=7XI(;Xod#OE=!-&0YYI^>?u9i0h0I&Wm^$J>vf z^}vzVHK%6Ty6b%`Ys9UUZ(VbGnxtoq=ddt6U!Hum-nkXv=@@Vx)wk=v%jpzzR@S#S zLS)vXYt?ZopFH}SYXur zbe@s*$W&@Sb*+pU2jZ;V(^r0Szo$JFf}PiOw_iZHs?;CsXYj?Bo_^Ugwza>F_3QRF zNR7JwU%MmYPvuPi3GTn=IqF?LD%*o1(zU1`ckMGbC!e14<21#dc-%)ANKpHUeQy&tGRs8-ocJ%{CQ1q{V>&v8SRgw4)!8y{;yOA`LDlM){oBKV{?`37o6v$_$XB*i*0+Fo`{*C*ey0_O9 zpPfL?E&?w+n5yEh-2L#q_58}+*4Ss9p5Hra$$O@&i#5;Uj8(qEzsGluzjCHuhu5r~ zXFl?J9eQe`yJnHKzg$}@?^<}x_h0M%QJD@UU%j0w{-58n2HxwVbLWbD=c^rE>J{(2 zqVBFmeJZus_B|+{l`kGu;ys+VxSTo0vvkrpwXYSc?`Cbg*4El~1gt>!=6lqWfNyxrd2hssm^rLtqhT4Ppwf;)d?uZe6dCr>m7Rd!7x%^mts zaBM11&T9;(>r#4k^r-%k^51+{ssDS8J`}93=I#1)<3>N!rs^N54Z&H9`iptHYZ96H z^*ntjw#b?DKKojKq{OeiyR;$LHPeT>uH|X>qyDX~!L=tcy!Lt8VEkr}>s-4G|LR-+ zi8TJ?KDc{XWP4jg%75da`Zi}r)^{UUy#^UGsnAhP{ODr-+O;nF{D19Oaz;@2>Kat) zQ}v(7#$08%>D=lq4rk`g>V3+u-fo=iaev-DeCOz;m0fNQ<2ktN9oZZdnY@& zhnRdBzrpe4=3dvY_g<0lQGH;=bA85nGye%!?X#2jlYMV^$LnVqzSH~v=XZ+d-R$ef z=j1*7EW^)ePdx9!JL~@0i0^azxq|;5?ECwEvgFt^s$et3Gekb>5NpGf1xwR#!g*aV_L0_%cW9cWwOaU{-wn>?reV`^wRL!_YZ{^+RhC z_I36;IU06OBrn=7Kh7EKHDc!s-skGyUK1=w`hfcAGdu3Mk#ZmG=eOFl>ncZLb?`Ix zU_aLr@Af%{YwkS3+Tj>-GN0C-pCS3YsqWetTEAcIHI1)I=TcWaeAnCOY3sfg@~;kF z6YO~VT>X2$M!lV9kBeR(DNFu)u;Z_vZ_Wy+XRzz%c>! zP``cb`2;d~X}s6#gUw6MW&9YwJNC0!uL-_1o_YJkvx?ernIBg#^|!Sl_O_e_cpI`&R}z`91X+kz80?ZDQ%aN9Xs#NgB)G* zPuDV7UA0erf@Q_Ay;lnMa17^l&S2-2lO4O?I^NEa<9m(#>|?8|*E>&ee>Ex6wbkz6 z%N)&B&KbPV)xY=W8C%*hBcG_(N6L}^zK?ATi}&a0hmPmJ2fMcFCqFxPUL$s%9XqdM z2Wy9Z>^jR&u;Z(Pd}nQZSdcN9ed5&X1w*c z=pDncgI#OaOx<=Y|Kc@ouiwL!Bd-Z|d^u7d^$gYy*F}DU{SKf$<($EeZ|%O^sZa1e zM*rS*&|b$=?_fC+JFhkbcg{$!k)L4WME&GD*zukBVPk8DV|#tDy81l%33e^i+kbZ- z33e`Ra?aqnGhcsC*Li}~$?@c8AKPmjZ(j>-&-+?E_wlsJYg`NG36>-E@%mtGn!E4h z!Sz4aRy)*T*W0}0Jn9pCX>9X$uo^j@|GwMjT+Xv&?Qo3UCg=4rfqSH^6xs!gSrL#pJVUXx%4UL36@vq(gx=Yb_{dtz82~vN9(J$b#HTQ`O%(W$5!th z`#iDxeX#d@>YzXEV_(W0UK6Yxu7&ypue{9Y&byE8c=GSM2D^rix9i|_zV>jQT?hGc zY}b5`3+Iua9Xppk`RkAEJ1<)Chj(_{{aZWa&gZCGu%pY#{yfLf4($u}c{?xt+j)Z3 zdpu~pugG)UZ}ppwTj@Hv*E)~<>{#37C)k+wdCnQ^Tt4O(8nwwy2 z>V0p}`rWfv#r#t7?$`cp9i28gw*C}sem5iNTfu$?<(%^_^m+BpOaGSd9jnvhH>Z2I zYaXl}s~=i{^Lvl@9;dOi^3%J~Q_d${e|v52RP$cT`Yv!@)%TQR<1bi_^ke-&?t_gD z>)i5+!c#lM>K$xcINllyGW2(McJ4~w(akLC_sT~|)l*VFpsy5{TsqqoA;+&O2kdy#o)U9sf!i9*+T=WFHYaem!oVou$H zT|eX2v4Z8{n+NAT_qgyn`Pt|7Z}%oSa;)HCVSRnL*P5=pOzzMhjH_UMs`mhq@)Ima zKIZxd>qll7`I4Vt*IiEZ>0o2aG4^`_$1_LCgL!f9G2}Jc6D)sbFLPY5IZE3dTRns2 zOZ#>n^htBx?l=DJHS)FJo4B^xu=AxKYm@#I?ERJ;Ii9{B?09mt^Pqm(XYL6$PTU=x zSMGz21@-ZoV0F+w^$B)7Ig+0>e%HSoPkn+fR?}qVAoy$T=#_Edt}vb?v~s~g4dXtC|>i6Gp)Vla3arF-N{zzNZ zC)n|(W6tj%z4vE#)4zk&+xr=PI#~X+Y0pt!=QV4bjZbI2)Jcw9^I&tWdBi*v?07zJ z`CYe(1ZE*KeEqBV*3I5iCcJAU`|4#IgA}*tPL~#_NOSMf+ScIXUrkx-lNTe)mazSAK$BTRD;w zuMgHv0P1t%nawr-@lki}X5%tyA4xl;Y)NPlQ=jgg~yIZDrfmDA_1 zxMtRLw|_-t`mXehEj=<{dkC}_N#!$-%~79@|9;^{JKR)Gr<<;81|K_tv*;8zsy-5tF$LiIXYuZ?Gj~km>-PU6F+zBncL^tIU>`m&JH8fal}}7&(%59C)n}iCwA3F^H^~CiR^kN2JDBhV;P$GDw;UccQb!u zbr?O7aaNncUHcl(e*hTJ9)nA{`|{NzwBv`jOOQDTR*CFyxJ4#^>6I6 zF?}OqS8Z%QtCZ(Hr#@uQoBUf3=QYNHyRSvcQP`;$)z-@9#>ny$UurB@)~6$z-y%Cs zWn&_;>lhi|sNLya`zq2H2 z?UNMT_=uEmWA?-y`Ked3rai(-_X5WXwjWOK|Du;UAh`PNa?dyI6}0dFiIL_&*C@Dp zM%IGd%j`W@%5`dKzy0VO|8jLbUZg79{s^f{{{Cw{IMzDYPd-SOlR3|-`Be2fR`7JX z`1!5Yh)1q{Ia+mmN^5|>chtS7XGzYl+->#rDXl+GRdLSr&sazM?iG6heE;^l4~x#z zTIgVV0sPgqIa24_8t7-~IdnUtgKZdG$_D6Hja9}3*e6iy>R`A5ftY5}4W`kwCYZh7V zD%EfAK~bH&KG?B4?-_5?&nj`@cptg-wVOTPMGv3g&J$^WlGs&0P|x6wrOa6B7QC-p z|CYyKeL&xcuhfU$C@1FXhv_@9$8cji(%dmw@kH&55owI14@$d(m5<8CTVy$kR>oCu zbKIHdy1V_xef2r3@kyyb6su}{a&L)R#>`&wk|Xpa)}Y_Mb3 zrd;1xtE|69cFiIiZB5Px%ymq|E?ESUZeKOd**2m)e)vfPg`(C^6)A~O4iRT?_KSO!+cwf5b zJmW-u{@~{lzAqkp>3wZKTM72PXun75czzZYT-_qoZ~bOOekWlL?USG2OC0&Wz4`>J zgP)toNw9~X2g^^epCzm|&G)tBK3Ki4zxw^*^Z$+&?DN#e&rE`~L;JK{-A+88o;r`$ z2RnxIs!y<-`}u{Rl{rtayy#E+^ZX20j?^t!o&0RX@zgEYG303dR6JbG;peogf3Dx( z*QbmhuMgIz{5(>7g8jbrXtRFjA~wmnF{3`NWw7Jv1M(B>H$Jq<>w}%Q`7P3GR(;ZQ zWmxz6{WEDFn@o}KBCUtxse^p`@4@OM|LPq)pQx?h1KxQUi`H6i{bu(E$8eprHP|s$ zo7PVQ)m?_P)v<#8o}{+QX|Nor-_EOl8;_HPwED#Qo^h)W2AfC3ULX98BVYH_$1m{{ zt}cxy-@&VXV~ct1{LFS(l5;uU^_Fw*1>`Z<+~{NaP_Q=nyoc>YW6}D1>5dh=jyJV6 z>K5$tRv()0-n*{_8z*ukKPMiRF6~Qa?w@ao%&Nqvr%HWBIz82O)(5mFc)zFV-|`r2 zu6Cc(KKTj0w72Qg``*3VvHm?;>4%r{Y`9V<$8wE=y$Aet_cqs4n^vyYJ~!sF-QUN$ zKX~AH#$T{@sDsy=$98NUS@l`_i8-(Q1h1S=EUbBZwNTFWNyiG_b?V>h9jp(yX7b>^ z7VKjyFY8|9^KwViQ@(@cNShqnm<_(f(ays<-srd6RDL3zOTPE9%>!Oz9tzezbBg=~ zn~Pj^^F#NvN`2h5-S;A6*mahlVC{80ulL`Bwa@F-JJ@yC_WgP8A95@w>J#jE=2piF z_IYw7_Yd3K5U$8pK>&nl1r+6u^d3~@tIiA-Co4eKL5SIcJaE1SpU+#^?JSk+R{5ij+`ghG0gpI+~=>!liK9G*{o&#E z%?SEk@Fk9R9n4X#i#9n{u(4p?9&JvfP39%}4pt}mGJbaZ)YW;_Ex0);QakqX%x#Wg zjji(p&$}l1Ywk83E7D%Qh!)2PtU`tN835_Z~4-8eK6Ry)rZtg-w1x3?g(q1b!D#Imm}j$zYEr{eGk}p zRJRk4RqCof!Sc60PjAg<1ap7tBkJJw!TOEYSTh=I%sGZ}dgAc{IX5n@-~Q%J&r9R! zL&3(0_qWDNu=Dzu^Jr_ZuLqoGzen?LBf&Kap1Yv6x4HFktEa7f9Q99a2-c6($8`>N z&3v6?jLBp0I^M3~{5_tlrE8z_@aShy`n79e{05H)<$dv)QyYTU+OO#jqHe*)t!t|f z$W^dh`n+9NpQjJ(&zs0pgDY1aKk{kM-9FdJt6cwJb#RRC0hQ)mIr84be-D;_Idc7i z=UtTi-pK4)>K1J7mLu)ku|A}I@*S*B<__~>us-kD?s+>8{_S}36D-HB-+1S_bBtH7 z44J!j9-LS1_OaE$nA^uQ&h!DVk(1!@*2ix;p8N!>pBAcHuzA-!=h$8!?7F+=J5~qB z)`x=iYv(e~v(fbxv5kiIr`R(Irezg%jLwLCc&$FLI zg1tXA?-~ce=DB=A-Lt-4X&!L>)yYy{^$#pUN-ic>0)YD?hGFus-Fy+7m2CzRula*tNZsw_VF% zebn*RoRnQ^m~bBL-m(7We(f3s%aPZ}&yLLj?)SmwCD+|G-+jnDr+&ulzPGtf`cSam zzdmo6%sT|0K2IIoJA!8=@>;!JVx95C+9b#Nko*KYwmzhP2J1(c@^<3R@w`7$H|-8? zo{!WYc8*t$W_MG!VEuKnc06hh>%N2Aha}RPa(gWVr}n!&1X}YQX)SH)Y+ElI`PutF zc+fL-vaN-+9yqx5w`VL8^zq!Dt$&VeZ`!l%o_k%hTHEuXjI_UieF4fx zaeW1ETzV}!&>&06OADOl3Iz@J@$ku6}wd`kqjrNhyA7s4!Eh6g= zqxTQ*#glTjZ$PAa2ah+TGX9GX+FL*yf?Lae`b=kg{)%A#`Rt9Rofy$!ksmG;;$)8z`o}8P1yB*{^&^2BlYa9|F<7PaK||H9L>vTIJ zQRjZl)pK8q#6)|EOsA43?`V^L8>~L*Js+Shzm;`HP8SBNx!HJ_$Oj(pXhE4|*l-L>d^UGK=J zUU~lIp2lymcDR0B$4EIjxf;z~i*Pd?Z=SjBb;bMj>2qQJss54rVe?R9Exj=29Ix{F z;QCKw{w`0hd2n-4`cZTbh}4IY8`ZTj7g-+j{MuS+kCOBo>#6S-cir@(`hKKyp7TyT zh6R0R#h<^KoD|N?+s_>_>(M+H>Adkv`#05JBjwWT8_Sj9raYOq^`XS=bShi-|L{3; z8Fk4>=MkOtfwLFN+!Z+2_|N-aUzN`8y4&}o`+j8StPB_B$=+1;gX*sj$$kDk+V`w4 zM7FQVxy#jql0Vxi=9JF0`q0Tly`^ywx#)B7@6ou6tp9|!u4AM&ge!B0KIHWo;{$X6 z)BpE1)2FKU6GyG;JCEAxp6xBsJ{hf7jkH^d_3FWE{quKU@0()X_leIQ2I;e4t?#q+ zAxW+8rCRjX{HFf*J4Z(fPwS-BJAGd~@>pwuTdN(}n&!wCjw*Ez>*0f2|K0lE%CqA6 zdq+=?pWU&pdB^f)U31nWN4WaR-B!GxvUT5)@+FVK;kLEVt&xv(Eiy;fI`Y$Z=7=rr zYw{w!bb>qX*}r2dsI@0pdtHm-^1u60|F&;J`(aeZj`Gy!M|KU=zjn0OLuA%BPI!hnZ#5V7Um`ot|JU6et!k4U=K-G43?dic17Sq2#26#y3QP#b zh+KdX!I)e~5XK0TV-s>`tN@{HcI}F?_Y0s zuX?NMUA0z!{q5botM!>3si;~z)G@fYvc~xwr&>>{)vh#8Tl*7h^?j?Y`bk?gQ*G+H zYNz5)TluGrpSS#Gf5xKf)paPiYAJPQ-MJ10JOA`s>q5o<$;Q(WlHEy|rGZ*Sv zN7{&^S;o2El~39nv#;wwJ+~riSwkCZ@4CI`UyVar*P*JPYHQrnTL0hWIWnbPtsm;& z>(Pabx6b{xIpfqAywzHB+SRy}Z{s!wZGx+AuC~wr&imlf;~Mi`w_X4C`1uSt^|$VV z)x_GbT&i{cSU2jw&)wFL_NN%4l{OW3wd!RIl|$_7vr@HF|E@gOq2SEps#(v&+FyP? zeOW!Pca3}6Fjwq*{Hm6sl{K_+*{7|!oVH$-XZ+Q7w|+m|-_qvqEzO@y_%jQCPU837 z!Nq%hAH08>(A%ehCyI}3)+t?Z~-_7T? z`DtT5!Bdsq(k9rt5j%%>+}4!28e6cxZzcE4`y8t|?YOO*lRk+-J9BD9E@bWM*SI$} zUo}#nV7ZOQ`rO!l+V8lHRU7pQR-<0sr#`WlZ_e-bY@c9tF^?UCwc^j|r=R(|&L?hj z4VJqjeSL1z&iSl9!N#tQx$n5A-;QW=tC7dr;zHJu^<}@kt~uwdPvZ`rvG(tY^-uG! zpLEM%tS5ccD%f?~9DNxc zoH`TZ33lG9k)Lhk3U0O_fA4d$tAiRj|AMtrBlX!axUHY9(n%xjgY_#`*B$psqp8nX zBe{d0=x=Nro71ePtV;cIe)rxBsnM6YPslRy#TSv|jZR83zCvz~KV7bl1{lRja&TYmMtp2BUJNX%te%v1{zZ&^_Vs|y9 zy?!p-HRW92d?$_6|7i_vjpa5!&oRNqZmh;&uEEn+UzO`8SUdIK>xeP=Il~+r|6t>j zZ`SJke5C$z2YbwTj9Yzzotx$=SFkm;HFCSJ{O7qyzxEF{568uLg4M{Hn)zj3T%Tpq zdLEEleS+t|KL0yL!Nz1Bz4~1q)lVDwUXOG8)kb}Stt0z64}zygZ*$8PtS@WBxPu+f zea!8XM$Qp)2-e;)-}yO)j;%Qa8-pBk-S)`*JEW7lziZ1HF1PVawrJn~%+K7NW5L#t zezXbRzG~Ys3YO2$d~$b`7xMRqi#M$~1j~JQZaZt#(Yl5N`|{hagQI9$2_E@OD`ROOvdNpqS1kZ8r^`SGE-|nWZhh$|*l~6&c0bPrYNS4X<`0%nYz@uT zbY4q2MjNZc)W=WU^S%l>)F;^d?592(8-qHiPq4?-RZW8Bw}!L{-eXvKkX z>ra!Z)%kJ^XWSl{pPigr&Wk+N&bReyPJ1l8lgn7uC)j(I`f2j{DOGRnwYr~hTu+0% z+Ih#*KfK)Y+$(QiY2>^zt5@|rKla_9`8%}Ez%ch67}l=#!PY>3Q<5{DpA7Q+u0HFS zNB?E&?|GpG5<Z`?Smcn8DH+B z>$iFIlT-8DgjQ00Hddq8HQAb5?;Cp`y*1?cx&Nw$j_}8y=f1V;?R*Y)&Nwoj=dRBJ z{Vh%3FZlOg?7DH=8vQnZb75o0%=4yP!5u+XguZXFpD^_O&&(m%81&Plcj?sC{%60n zpYt@>nlc{kjV;)567MnlFTbk4Xg=?BbBznOrvC2ZKmDlQj;-Sw>^$qr_}0tyWzVtw z$!D%Z^S(Fv)x>qEN9a<-JY1vv9f07IM&=OgxH}e(x$`$TBUo?aktcYdzj-+sADt+(-9xIb6P z?ONe@1wIoPu=Sxv*5}Sojpq8`jG5;Z$JQKzJs;W6b!f+Msv)%x zb{(nnP+Id2_Vbo&ZH;|e$2{0MXRO|T9qhTpxSb=x#$?>8I`xUyt|2utpI~diwO>EM zfA{ehFX!v)tuN#5Coo=50`i!AUwo9$+5PsIx;p;BzUo|<)?AG(SdKn>MW6XnBWqWE zf<0Fnw>7lu!MOdLEmyD+$>(_>*jhF|*FQhcT)6AO`r0vcuc?-G9BfY3u~>bAU5lI} z`<$#s=I1;JmP23Wp#2`dSvTi=oo8wv?A5F_>2>JcoYUTQHrV{sNPU96F0r5XuG_)R z6F;vRcd&f324tAO|KK`eFY7K?Uura;l=brYc4Po+%KG!k*^89b!!H#vU*=ZfWx$@7?M`|Qjur=j) zy3Pi7q&d^|4C;}5{oS48tUh~YIySD`u1UduzhzDO`AB^(je0b!$vx*>H(j6ACs<$F zxK651@YJZYSD#?{x>v4?y`spf)Zei=F7xx6pDy$FfBNORy}9L6Blib8X0CIdE4xZA zMbyZ#b+Ab;f^+Xp-G@{616*zHPrTm#&DNj3+-vYxzv(+=u=W_hfOCIy} z!JZ zF-4=wHA{`!~WoqL0-YDzXm?;#(y>f3- z=0?4%p3|mQeEK=U zrh}tb)m1B;wX9#RNf|fq8LT;wwzR3%c>Md=@&#ucD?Zn6_NIcHa+L_d|y7pMF(;-TZHV z?fty--ryg6Xid4MJ4b@8Dd(AW9Gtu=Pw#chYF2OSB#Js_&f9%Yo%6ymQ=ihPYDjMN z&Uvlg*SW1LOg{Avc71T1JdXsY#w-86Yu?piR$4Tj8n?2}kzi}e)oag-pS|3rTya_d zrA^wpXEJS8l!`g6e0AQh);g*=mR7xk)xj~-kNQ*%RUPz%0)pQTxsZ&NJ8W+|}}+?JKB-k*Gy6|G-g4c8niebTC*^VaiP zaO%41x6T`Bjni{~J}Wur%-zq#8~eSGpV>F|I#3QjV+ZHTtKMF>?a$w*>k#7!_IlCl ztiF=^;N|Iz^EW}{_BzXJ^nyKB%;65} zcWbOhUR!x>9jsq-^81Yu>w zS~CXYo8PGHoLW70*EM6iaDOXeJlY4#vGb^HYc<%PAez&T!JNeU z4E8%j*F5`aAMAKq13N#DSwkD^%bc`#T!KrVwA$~VNuR!x+&Q^zjjPY*c5IDjW8?GO zrhV|%rM4a0t+6%g+}<%1S6au}ITCEFefF8(u^LaXW2Ro7V}gyz@!WjoXbm_n=CiSD z*~YH$*74?WJ@wpXPUaKrx@3N?+rh4L9y6X``HfqB9RFaoG$+S3SUdUl=M3`@`~9%_ z1gp90toj6-ue$D;2JM4)9<{yCZE7T6t9>DJ66<%@q-&o2Dwb-kN&C5O z2b=rWsJ68aHYe9LYdW}MNvqz@gW!2?>z-<2Jp~(+Yqk0Wo1gLQSo@RCfBt9rwBO_B zTuj*=i1D~z`(W1*kEwUC8X4b?LCxhep4a2o5xO=y{=wFYF}OcizsBdeZO0&=_U038 zeRb6HcN(LW`I?7%%N4BV#%FB7<|KA*2WzKB&INzZBG~zC4#pEaIeKO|UxH5>`Povg zV1Gt#J(y3h>zvxDcd#7#GB)Q}uv(gv`-4v!sdw;PU;DSY^lLuBzVy3ma>mzZmOW-_ z)V=0)yZeLH$aU6uf{j6q^%-nT=I*)8^IEVqxixZI&ATFl=5Ll5pYgbE>oeH3Tl-y; zYBckkzsq2as*&-?73_N9I$}J*)}-t99LxFlt*t57KjR5jBlA+?~c+stF@C5LO7 zc*pIS%Wd4jYUDBX4pt-Mn|jat(N277A8hQdLymv2Iv9gBZ9Kv9&2yV8NA7RzZy1f+ z&)dOju8sQa{Is!#+#hV+SX255*3MX6Z?=sZX|vC5YHSR~7VLa7C-rt*gRM#V3W1q;n)#4*jZ^`ULN}THB6muq(G3xmEE+aXKK_xw}~HfRA+129D>!zIkNLJJ~eX8gHLs>KBaZF+NhDS1y}#HYUKW4 z?bOS-%_rD-q7HHetFhzaoDH_08d(q4ZLssqoUD^zHImPGf+t^(s5xmL>_0U!o?!EH z{M0U3U7feuJ4V6kWk1I}*cx|iowLE_sOIWpuECS9V^W`Bb&`Okm zg3a%quh(w-$>;vylSb+jEQj^EYu9<=dBGg^&wh+aP1HNsn(V6S?^!BF`OMF;v`?_{ z^{O`KY{p1F$IN(woiqCK^PBsF<-5~ZjnrhX)!uvTcOCliKBQoe`FjZSzVB@HQ#Q2O zV`i-8dzvHZW9{{)p8fs%e|mZ5N+0d3Uq|`E)?r)x*>An~SiOVQOO0IDf*ohqwXK&q zsge44eIIO1x^6q>!TpoZe81dE+~wq$S(Cel{=>`PA+J}>ue9b9Y)-BL>K%O2%Xs`Q zB3M5A8Bee)fqBetQRXu>?I-tZ+!bLR?{T&!twd`m*c{c;dExvGc3qNtufZMZ{Jo8> zmwwgG+^xHfjo~%!I`n&5a|kvDIXqWdpTX9U_kQjCPJA8NHCvn~uH(k$91C`ysrS}M zU)s1P1@}`T{^8fwz^R^+n;JQ0>Jw}oITpqfET8L=^{zg_YUDgKo?tn=yL8v?-0l_8 zxYZ|EjkI^&2sS43*x!-5j;n)fzkY(%!T8KOc+Rt~9PNX(Gj9Fv@snGHT?rvw|f&kt~au)6vg+c6I|KG!*`Yul*5 z$J`$*xAE+LC%v@aW1%kcX%jp(>a(cv1bhB>&2x;l#@3YQ4r9A;tK?k2s|Rap#?U!j z_8nEV?$HW7cOs zO|!1vIxGFS?gzUrSp)klY<%){l|-reQX@6l+~(mrwDoeXd#{fA>>4tsR^&Bu+|^ip zf?YeD7c$DVYe*et-1GCdxldKEvs>{v7E>Q9H&M4T)=mgIG;4y z`B@Lfz5A(=+1hW%?btYedo0{GC(p^jY9x1!Pg*}?2dlq1sC}@$vbxsWT!W3zd0~EP za^dDP26G5@3>^z|*!Xm>_NOoRx_U3N_Yv3M$<1Ga?t6QU`)%IA-mC3B)BEr9 zMvcCox$m0x-v7j}T|Mg}t@j$&z1P*&UCnv6g*lWS)#}T?&s#d^`z`GK{`L2StIe_U zU3#ZAhilCHufmt#w9&S7PU~}Jj9>lh-s@_O+56!OmtN-Kb4bchw_UxthrRA;FMqqu z82NmWequ-N)c?cZ{r&Co?O4>kq`B=7Ty-(ipkAL;oUcG}$kE{KY-`2dD zPfhyEmwENmFY~^hJY?jJGcNjdEGmZRHGSr9h4)h$s(#Yem{pr65Y*q+F1^xv-+rp! zch;kNslPQ8Tx*i^H@NHILY?iOjAxDf%@@~`EAs3J^A7&6|NN7ezfyj^=bZD24_76X zPL*?7Yv`J5tyqnF+Ax&8b1t}I+GAepcD3qXHfgi=&-K3)`^C$6_6$-l$Kk?1{j%a! ze>IK0xf?@rbG~U;Yf!W@hgl6j{j#H;sGdqxPq;D<*P-%Lt+khPW9d}mkXEk5>@!ZB z&%ws7U1^fJW8T3Pds?42<6OL+qVtz8zVlR_ivDViLA|eW?kvObdkyIRU_bXy?5FX3Q_}zZ%)R+Oe)(p*-+fhL zY+m8UQQn0~J7kj|ug?Z1iS z6-vID=$Cx0&V|g+Yb(D$3O1(?UcNc5x7-^WtGFY3jowzIto!Kn)!#{0&uWcZygkb| zuhpA7SA@lzR*kwk^PSinS-Hh>ZR}jwv06v=(`#4EYh;b9Nw9h7SDWCeQD2oFl<;D>J?E(wVGQOx6Rl1 z)JH$Tz1qy5libB>+-kD1>$Wz#Ca14H|Cmqkj=i?GU-{;`-P|*tfBm^_$EyBfW9?C` zite6jWIn9`3M$Wfj`^oLP9jr#$cy2S!;HrwWzIye1zjK>@U#oQO*)@66$b5po$#YvO z-1pX{ws#C}I~F^qxi0lutv=XXXpm+|bnal3q^b)0t%HS=D#r(TY&F>Ji& zT5TJ{woxPfs86sO8TZy}^7U+R&Z$qZF{zP$f+x2c&B*0*-L-B?n`+g_bx5DVdNPmQ zZ^vHSa?2I$oRfRzv#*gyR9#6Hr~E!yFFe=#mz+Rf~`F@D&A`CCx_g#8uFaP z{#QI{_dn}ejnpUjiAJ+#^m=)&s#2d|^Dsa24tA~X6>8?>xjNX-OXg=yUwA8XZSNXz zd*;z|PCpm!(J?2#0}D1LIn*cEv61hjPqeb18o6!4?3lS4nQ+ZS$jb(nwgcK+V2{qAxyhC6+% zDc1nw4nEDZ9fN%0&NRxy8Gmd}<{3&PhJ;<}Q79J-I)4 z+ts$*!Rl9ic56Pt{?qRsXMM@3eXttoOPkH@=Oz0YPq2KB`R?bozN}TX3f8ZFHa1`R z_PI@dZBF{ck17y^X zH@4r_<+N?Sdu-j7TN`r-_Lx}vU}IOi+0Uzud9AKr{RGQxO-=6k*+PBf-Zp(jKEGqw z{oIys$Lh8=YHzIutJmqXQhfF|1bL=RUv%XT!RloV`HX>JpLRO030ohzf~^l@@L4gz=3#tuWaqO>)ZAKCpJ2~tev7;7 z#`x}Pz~>RD(Mg|ZE!)ZBI3@ej6Mt)YHO z(sfs$<7qtk>pQ-U&#|>8_c+TZR-a&N!1di6g5_5ub5NgPYe>Agr!Kv=s(r9EHTCH^ zvh%Zs%;ByctV#6=Hs6^?pF7ki*mcr%ZP$$&Ic9xkyjBfs%5$4G^Ql6AI?gM`Q}eZ2 zYe2o6bHQrlIGy#0TD^8SpN%Kjwb6ODV=&*TQLjUC1v~E6kX*seGsn!lgVjrJwX;vK z>ykCSV~|6?#uF@udRb4qCe_6`GHW`Yef_-EpXKJ7lxIuz2sobRu*c71&fA^ej;Xe_ z4>m{R>6tmd%ZOHf_VV2Cyb5-WvNqHw*c^?o=2zOirZ^Y0x1KKCs-J7fYM8(8J8Niu z`c{9}rM-@ryL_IDg01-zpS2q7I-*9_Q?T=-6^TOgpKFmvv{CzDbFv21C)n84XpfnE z-~a4Cygc3Jde7MECy`g{=TrS?6Rbw+y<>39)WI66IaRIwa`oFltG(^`|R z?~Z@48tt{i?U`e*1NzzH>~|CDttK0rljovf`P6cAxb2)%W9vKEJk(_7J@0+UHv#pw zpZ3Ad3+I{V{@|%m{}!O*AFM{^q+aF|ywCr&tv@cvdD3+@_@vREXKp)w^7;8M*s;-GeS+t>_fd1& zH6*v|n)(EL%rUF_>9)N&?&>2~u;cE%#~c5YXBFgF-Pij19_7BvyzYO_ed0c6MXunw z4>s)|efW=Gz3cf2)p|egC!hV(ufF@m&p*%mdfG|dwfwU$?bn5fo!h1H?%Rj<}(y_80Ezkao0_pL@1OWJ+!@ee=fr?}+lB%glk zy6@e%gXJrYe)Rb-Kda}0r0u7hTu-Set<&b|2KC<0*w9xr@mUe#s*|+!Je-Vq@uqdW zF5FKB@Ocft{A|Da-t<)64?fIOPv$dR@;r&sCvDwlpL@$c`K+I7lY85J*S+UywfFw; z;C|xDcRq;T#bK=mt4ZO0($6*9W;IwDKYh9Tzh6~P)fQjc+}U3DwSV^u?@a%z-&F2t zE2oUV_2hU3S3YUw^FH_B;;XjmYV%pw^(=toZEV*l)@aUl&fEDs0q05T_j(G*r!UX6 zaFl-XfzPe@*^5Sb|MI04`pF=F^Mz|guo@ZPo)^WJHglxvz#R5 zSDmD-bt&`B8mRL|wQ5w_rFD#g`w2Wh`aHE!bJu#h)}pSEnvc=3&S`1)d{(21E3M~; z>s-`NT8S^Zh| z=xX@hSZAGM!D^JVYn|V6UOv66iW7H_t`-$+b^kwe@v+J|p}2J^167?|JI&b)eU^!TtF< zeEsqoVt&S+*RuNcy6D2q;&q6h--Eqw^Lt;py{--Rn#60unNQT}pWAmd^LJD>pVw{1 zv$^H-y4GBSjnAAmp1SmJa-8%@Y+f@Nw__gccP%~2$*A=Smd|mQZ|A2*V&e|h&Ro^; z!uv|~+O~G5-t(FG=C^C|q>-@&8@n2*&$jWqf3HQg37#7DcU@|-@zh9t<`HX6jb^W0 z`}cPaVl@tS+^q-s)F)W|<@39i;K|oH?Rn;R3G%7Gc?Uc0&NJ zkSn-X#`&G?>zq1zHIi?~twxnw+Ge`YJh$~v_SE~T@cvw?FZ0{j8h4(#KUh2GZCBcb z%tP$A`;K|AYl?BJPq60&*Bj?-u%A~QcjxfdPCmzM>o7IyI?_JaoVwS17L@t~%b`Z< z9jxYRWPZWMKKZ(a`mA)#oE=kb%N1;X#%*jD?inP9_H)k8-)kuUX&uX8$JyW4QSV@X zcT~NM$8~#S^D~}c*8y|COPkZ$VR&({Xo`PMo)IMn$6Z4nb4?2NP(%tC47?~`fAEf}wvBC%pJS#D+H5@i z=KF(w8@p?(9Mk^%^GLaZr$%09nMLlA=--pH-qpLbsrD4#9y8~YHhX8s)EU_;!sl9?xyN9!`Aj5BA)v#_AKSM$S|FsZX%SJg45Bi(DHwpPHZa z(PyxlyGHGPJ$7^5-seE)i1DcF)F&0yFUQ=m44!pu4b7^QW1ibOBIoRNo%}YR`UI=L z@u^R+v6`=AX6*;h8uEAIXMWb9Ym7dFjcLZvv%xtMe9Fms3U)kCdPjTXGal>R*n;Kj z%E*!Z>fcBAh(0gezx$!a#^e5AIlPA0>!f+8(H;xO%$n4X@oa2-J$e_Kb=0+@&Bn$v z=WKuGjE!rN9L61dJ{MUj;p??qjpW;N&REs^P9tshn9Z8%d|k_oCwR`=)_BKYPV()X ztZ@}m@0siWTF(LO-}~G3;5ZqdeuC9V>>6M`!D?qe^$E5nXCCuAN%{PpH1%BjYw6;|!iP z&@sKvudC0T^b@Sk&fB)0Yf@^#`cRXdpRuZu`2{aFjA!TMoO3MX3ik7n@$I@%FEvu*VC!h+(d)MMyN1+j+Rt^w__hw7 z+pNhR@jWjnAvZSQ*GNP*qn^daSgVPtS|KrmQRh; zp<=04?bO?Nf{k5`c6}L>HL1NhT=?yC(bm{)`P3)4a!ae0>a+8+pZ4Y&Yz@d^Ji+QZ zHR_(~6RdXn-TBEk&;R{zhKAHe%6q22G2ZNugz^tr+6-(T@n2$Hfr~4#xtLj zs77iMZ0!CGDbF1j?yOE4`=@*8jWM=hKW}-=x>KKE`K-e|D)uuz$2{1a z)V$T1>wa=`++E-OEV6NrY<_Oj>+DtIy(&0PUiKRVKIj1#g{e+rN+O zcm>PX8O+?0UvZ^%UU(h|HYUGkS1(Ow| zUbt(?7_1@Z@7=v$#&+Qz9pl-!Dw|!D?;| zsa>#q&f%?><8FM`$?F<&Hrdn4d;Xl>ehNlDU-e79_gKt%*73CUh2~n+>Z$RCyGqs0 zG1}{-$JA(#nf=UZpWE~+o;l6Wpp&ny)F;?+cfFbVNizstFHX2I=%I{ zZEip3_3AgD%@Z#@D}vr$x2?fo*SwB&e%~6cOL*w1Kkt7))$O^v#Sw#NFJHKf=1 z+11Z~#uKbY&a-`PbDZX!YsKXXR^y3PZ`P&P1Fb!m^YpO>tM&F#6(V{^>scMIw@^_dwO_vV}1Tfu9) z)wz&BiE#0$INkdO$wIZ_#8ju43MozKCin%eiQd*812 zA$u=w-LqTww$?qjX}wpwp8HU(e7Rq{?uYe0`QUn8_nP-z;@;b?eeqOVIeCwD<3IlA zisuhsJoWo8f9pN*$))adHupS*qF&xJA6$OZYQLWba^3TP<*&`YueoFX>o2{Rx$eO) zooq{kwB_fmHaXQZ1dKr(|KEGL&%fXO6ol+8^@^w3x=;JMpS_<@VLrk2{ExIh`=Vc! zL&dHBegE|zkLR&?pLTFw^?ZqrKhHPmSNVCX%{}aOKYLnZuNX4s-tX@-5Q4jMr{B8I zzjX3hEu~@FR{KJAU-|WXi+(!xBT zooXD?np4$JwXOrxs*=zOp>(L zlJ)ae4V7PQf@>_I)%NSQn&RX=IBUXF(Pd;Tw;v=wKyp8vD2^4;rp z)kW$=y;_e8=}TO^@nOsxm!Gs%Kh=8v*RMHTW8Sl{{H6_0Dc)!P3l(2t)~1;*RPpAs zcwcGcQ}ulLS=b|f-rm^H+2OB$ch?Pm#@^Q*qrXK{rl=lzKxAR>@|t{ z1kdZPzE)G8;2nEyZ(Y5fni_Q!Wm~Ozc#X4T^*c8GXcH`-*jRUd9o&cGaZn=1Y!K4DJt>`&2{eV-{-U_ea6< ztC9K`XRzF2xq@f5z2%w|tVVL^S3h@n>Jx?fnC`g+gc^LgI&v}M$NcmFhBX!C)j>>xII~2^XFlXdGPex-}IFp z)y{RPJ?&W4Utj7|oYgkljCI$8zKr`$6OZXq0H`Z^(pVps~1e>ohob-twW7zSz ztuAV^v9UTw?C0mJVEu@VEm-dPy|zc@xlN6nBb$3`Ufb#zY<%L)r=7XGZo5BN4(;`G zho=hXbDP|A-Olew^vifkk810@mR3G(f{oW>*1*=GSA^&5kldZYYotb%%UkVJKJ$~i zSM3X#qjjjgK7+MUWBpvX&lvXG*g33U@p4YK9 zqc$5GYghj6mF+&-%<~$;e1aVdbJAz9-kfur&m8*!j_gwl`nxPir3P*|Fmi!eByTeg8e6-c)p`q}ubQG1dr_@vS1RxdT# zSbjB<&+}Tab4L4)`ua}EV|Q3zV&i#TL#`cNz2+Tk9m&1pQ5S2YHZwd{O9*=vY1csH6mAQtap6o?z*i$!TOckxPv`re)Dg!P=?ONuMk3j!M4Xdymv7SdGN4Yx=pv+6U`P?RJDGjnv0=J6MhMySY#C?tX3? zt2yW=SdFwdpJ0#4VGhCi)n@a#Z9n7L-1=2l?KeL4lPlP`=du1glV0+la!4Qjnul{l zu3-7Zd;HbNu{DR_&HwiHTt|#s9rP1?>bHHIe%@n0^|@-O*KYl&$sLwE*x1!b?ro#y zuCv-~tRJ-twy(ZU`ozEebNQH00PCMr=_j~}oTwdHvSI@e4MOzJvS6pF5Vp*1y`R_vTiA zbx@yR?Yh!tEhKL_)X2=W58k@ewmEEUJn9pC(#V?J*qGEyeS*zTjocq>eEl@Ic^*-d zU_aBGYAE&OF~@x8WPP0Gh<$?hI#=7)@s2^g%{%y{k?YdtR!i--UXGJkeS#~8tL<-b z^p{1q?XY9v;lVAl&Z(oe8?sFC}7 zB(G7OHPqU<&IUV%){2^JEQj{HpWD{MoMV0N&zdCPJVWOf`8ZbtN;3&_pZ9D0`=9| zov%+q={jOg<`C?eWX-!RD(b+Pj7aYvVk99YcFlquzTVbFzly+v9xV+x@I@ zZL|KDwp+)p^xe(xUWQ00e!BU`s6yKUo*bWLVbdrgXZD*1)nrG zznS;^{m_nJ&c)dg;r29gC?@ zK4bSMLT$_;*c!0kt{czY`rUkP8@C!+Pr>FsH8P?c>6aSmXVBlh& zmP3tpPIXW7yfZ%c^#Anb4&&=x_xskpt=^Yh_eQ7n{^#81`!k-A;eEe#A8gt``1mhA z`lAnj_(8q<=^MZJ>UkKspZ9NneLcnHuYPkq#ij1WO}qKRS-jqZ+jqAA$!~x3`S*TP z?|pB3-Orx3aXRPL zn{n#bFF&h0`G53z?zGOkIRE0Kx1LV&>9>qK`F-+PKb2(i^&RKYXY%!3;?_awQ{z^- zrfn61D%#vbUlCueQmaJO)d1O|H*GF{%36!Xk7ZH zt>?F-mAmq&_0c(3`_ih)Whs0w|b>;qKd?xnuaj>6vy>9dKdvISp?Z27T-?ijgrLQ9LOy~YS!q3j4nJ~N-^0gtKo>vLNx zsWAe!r>@nln*!Y|y){uSfu$lzRr=9aY*nev5I%__`+NhEHgTEeMe?MZ}I|lQ$ z-)r0}j`8fewk91X_1fowKC|VwZ2P)<>!3z*8&9yByGF^k&jZdMHQCtwSZ!+`EVuT?6I}Lb)p)NX z<}Qc&$Q5i|J7;!3IULX3Pd<-nv)5|-8N;qgH8P&fr$){Z_0~SvIp-XaE7<&ub@Q38 z`DyR|V8>5;_XlrXYJ2xHCN(l{*QDT+Mz7bA9u4`-FW6(oBi?a4Prlx{O|QMqhF4#X zx%-3F!5S*9t8EqLy=d+aHX=20zhi#kR>}C(C)il+_Zs)Pt>RB>Jl*4}7}pVV(r2)B zWPI8LtGW5gx7Rf_GN)GOLe5+B+t_($e9jT$37#4?!;Zo2?lsrhaQQN)sgG>)JfPm{ z6D*$$<{E5{au~OoUbtE8=a>h3tS#pFCs$)t6VKgp1zVHmCs(j_WDRUSIgHh{=RQBb z>5yUGha!jC2Ww?K)}&(;?7C#E>J#isjnw=U`k0^C{DNnWeQj&p z&XKEzdezcieS+28oHn2FIcDZ3*WLK3Pq3PM%>06l!DHrUO$Xc0oa72N_PLI<-r;ks zPkb|;)K9Jx0fj?=D5kIl7K z_8jR~M-c0NZ5?EAp0&k=tm~dh^ShBAtqaNLTCLu}9rgVEfAtAAcKOUTSUzJiS2f*O zKiX`pMqSYtlEWCp_6e3_>OFf}NAj6>u=Cbf9T)9`{in^=*odsj9fSQGcjv4=gUwGq z^$B*)>Bl*HcWzVTyZoj`{e5KAG7tHjBf%$))OhFTF*Q=3V8_!u_Bvv$<|Ln7!Nz2M z#umKiYHjcDw~Wtu=Qx*bwVC<#?oS^^c41>Oj~#=@jOQ)}ZF2Ugw|_$_*gBMNUmMHk zHwKf>89bktZ;h8u)p~}$8?zZ}J{w%`;z_%;vkt8x>pNIGvrz9~V~{VuK~`_aJlM70 z8kZ|rjl^mnY)rF;dIW2{t2JM3_PlR~sB6VfeER#y+E0D@`^e-b_nsN*CEu<|H8Q`+ zH%CLwJyP?vTI)d@DuH$S6Cdu!4hc79dgY3H1?LhpW$plj0Dg3VpM%r)44 z)}iBf;jSw46W9Ex)|}+qF{rtE?VPNeej3G(KX<oc8k*|O42|KePe!a?#$ycypEQy?SdEOx zx;D08bL?o|dfr-}qqVui=43oO2FKlX$#DrjtxH=k$El;9KmRqhU~5V~_XoRHPd_tS z`OV$^<`Zl`{klKcadO_z2(nkCym^{xjiP{v0B$^v}2gt zU2WQ^Pp~oR*WZs1b}XC=+HY)5*5{0KYA1*B1Y1Y0&f08j+{R#i2cITSxL4Td@3U zWKNq~K98wSupHvoG4$tJ`SfGm27Ao7)#vWqwy)ddH;w4Y`KfCwOzz_M9>K_NDVP?yZBminZS{xLy9!_9vig#+rv% zKf!8rs)4DuSGn`tZ)|sZZ5`%zuQ>AUxaW3PvYKq{SlnU#s>#Okt5Ki%FJ!EfyVrxP z+#Z{n^wy4BZm~5K?8~@!PF=aFsD5<>n{8faSx@>2?vb7MCdwVG4qn%|-+VUisONcd z_q*HHmoc35iO-!!ZEqdaTtC&nTI;CxrFET@E7*TCzn&vmujI3z@dSHJY(Mo0wx471 z8uzMY9@bFsDJR$M&8F zxPN2&?HF9!9E;bu&uty``8(G1F%C7_+~@f8G=FzT8};cZuL?E>`?)_@PjahI@Qi(X zySC*Dc3qNt$6$@>N1Na|hV5yrqy(a*;E?N#VHo4L-lpLtE9UUCKBX(XR^cX7Mc zPMba=?`zx|=_h#WQrr3oK55h=KF@1eAw2)fH}#PrarQrLHa3q|;q~?AwCj00z0Px+ z+>Y~}7jmo5o^zei{9SU_?R{?B@wt8CGahpYey&lo=tut-?oazwGrQd}oHWu;a7Qq| zo8SD#AoO z!H%r@IF`Y3be!2cU)!#>)n~3rbM3YcrwV$V--*tV$nQ1wOTR|yT5;j#w4eF}pU-VG zJ~=$nt7ocYzIGn9J$ub9{cJq_wq2`}&wD+`g1gr~_fN%6-0Bm2(%)F+3bqD}r}TKM zl~0=s_l(rnosDs;kv75dsgV1Fjp_8=)aG_uKDmPJ=dqbXvUvNYjea(^-yOI8HisIW z;#QwoLG%2qeXzcaVPjP=5BI;e=~YWV8yk~+`nhn=J8e$-?EI!i&gl7ln|a*F+WFnZ z?J>EXv%%X}ZJTSbd{d*h^@+`$M)EsvRmix5wW&DMx_{faZ4MjTPpqFiET1_9o1fh3 z6YM{8k~>&_`Lwyi+HAai)%NDo&SR$>(nlL}nDsQ*j;)c~`kLJRbA>x@!>fJue*NQo#M97h2Q>sq|ades*!%&A1sF&$rWr&)?}-5A^XXp zANOypy>SQc*lSyxV11o%*;Z>FwJ+`FRwKE0KRM*KpZ399i_^9o`q|ii;_cUMeQIM4 z!H$hK>a($a?zqiE?x$GpVEImQ+b39G=HdQeeW{UiBv?CjxWjTA_g$>|*;u|4)=#kg zHlN$(;r@-MM(s^Mas{iu$FvD z3HF~hatF6U^S&$Nkt^6^a=Sm+*!8Q;#@p9vTfS2c;Wj2U+Puc$yuIU=LqF~h_L$fl zf}iNMx!soAe1gqGKiUMJG}?S_%WY1Z`?M`ru>IsS?rmc~H8G!Hx#cj2V0~$G$L%q> zZFHZtF{%J3ejX+SqT3 zCs+=Txj$Gw{g^|r9BSnLugk67i93Gmr(bi}c;`{u+TY>Lr$!!=!yGm?2knDT^Gusy zIrUq)z141CwY~f5OYS=?$4Q^~v!6L^Yz*3{PjKasR-3z6?I*Wf8{1F&V11c~{j?7@ z4}I-^@`?2stldd}r1|ksY-~TdcTV!landJ!`PoKda)8=VT@|i=h$K*DL;L|_tgXQR<<@@V%I%xbCmjD;zvd8Ze8#Ru?hpQ^H8Ll$vFbC}xV71_p0>3QmjC2e zKfx!B!F-toAeRJ8aw=Z(pZv?ewKa_6gp))b{pq;*&er z+&9N*+nDsT@u{CagTIa+^U&|+E`8GKN1I^z#PVr>hs`^9`+Bnd)bI9H+vX7Lzpuls z{pK#8Y43FLm^N~6eCp@^;8RY!pWEiK{hs)&C;J4;A-6tvta7MNu*c-S!`oMF%N49I zk5&I_%|pN1$Q69jNc-R?+&fl%Rg7sj_vx7XH@?fsW7?f^NIdp4ZuJS4+dSmn_{1$& zu>J0^e((CpZ%*#t_QrnaM-Da8Pp}+f{p=Vv$7y@p)wX_uYkyjgnZx$sv6Fqc%;Urz zu9HSjx$U=OJ#A|fY@jiqsMb7cUs`RmrJxj$GA@ySp6$Z^VH#~`=b2kXmN#rg?02D$IBHXG|}AFJ)n zZQSDOU+s>)w)Gh-zZ%KCZBEeu}4#$xliZA|j*eC((F#`cr%4r?Qy`!~Mpw_~quW4PnHi!?N1u*esY}fj{Bt1Q|{eQevg@h``-tflXi0NI@o3OKlzPe<2ye2?I*|9%YNF6?Gr5D9oFuS?@2%P+1ME53f8Z9 z_me}7?5F+4_LJ)lYx8yS9slW=zIGmN+fOd_3HF%wcUYT^Pk!D1P2laCGW=C2N!QzeQrCq^}G4pmhT?F zt&u*12qVbwGTF@d8~8TeEJp3b>X))ddeqvuz9GF z`)3aE)c>|$x9>PMXK$Z1lDi|A_0&8UnlUuD_IFr&_1RdzcYNj`cd#$V-Tm6%;T^-| z=&c=t+neLGt2qUamG2JAanfhU zBcDDuzT-2e$^W)K;XeJF_HUoplIM=^#OHqX2{xy54l~;A*KPUDc`i zXn%**$vuJ_$}La?YrZu4!?`%t>c^TNgi+UJlXezJMlc>+I`I9&d;`cvi+3XeouIJAMNk(wtKR@`R+8b z?-TCb=iiI_&d-kN$+mgR9qcjj6W-lN`#Zeto^0>9-Tt@q^-Xi%@p zvaR;tbPdJ-)7b6zB<|fu`#Zeto^0RodF%<-?xX!vyg8n3JJu&(Pq}u#C*0fT=6JHb zIZoS8xOSft*WSPFo@{T9C)-bW-|F*pEZ(wx*S;rl?>_J1tmE76$#&VkPy2*7ecp$& z`l|iLcYe$MecC%dkG&6P_0|3kSO52E@Ayu~-iN>Xp1Ah@>i<6N=6JgOK0d1N|L@%9 zS2@2=tNk5*A5Qx^kMHk7@H1YyT8K<=*|C@Nb)^+y9p1{3Pz( z=V{#b+Z?BDZJy#2*WLc7+`Hc$r^mM4lWpyv;wQZ6Bj3|{ddh7-{oG+~p5i;cyJJuJ z?RUrLF>Rh=?VsY`2X15drsMuP+&cz2p5o1M+J4GszZ2Kqugz1uIi74k<+k4w-t^Jt zeehF$`@Ii;_0|3kSO52E@Ay3SKAhE8`=_{U-?x3j|Gu2n{|Wc*Q?~DFx80NNcX7UT z{0VRRyk+~YeNVaV_b$%UaXIer$^LHt9pCBL9iPWe_ILZWe~Rz;Joc2&e%ikemg6aY z%KwzleowjWr~Mt)<|)48J01Id;NCHuV!hkHIZoSm9H(O^uDkswuD$<`<8*9uJlQ^R z?fp-<-s-b?o@~Fx^R9hQc+=-yJZ~NUec(2Rw_<#F_=#`tKiS{y-yBc2@Ayu~p75s6$^LHt?*sRa;V$0O zvCVPXKH1;xKXKjdzvJ`R9mnaI_D}JNYwv%`XTQzybX$(6`1gU^7@o#$Kke_ZHc#;# zpU0l^?S67R#hc^F_U{9?F+7PmeYAOspK|YhPx!aZ)9okRyU$Z@`)!WXwl+`kiR*6v LQ|{eQPLKUxxo;mT literal 0 HcmV?d00001 diff --git a/public/audio/se/shiny.wav b/public/audio/se/sparkle.wav similarity index 100% rename from public/audio/se/shiny.wav rename to public/audio/se/sparkle.wav diff --git a/src/auto-play.ts b/src/auto-play.ts index 7314adf38f5..68c91337f7a 100644 --- a/src/auto-play.ts +++ b/src/auto-play.ts @@ -117,12 +117,13 @@ export function initAutoPlay() { let nextPartyMemberIndex = -1; const originalMessageUiHandlerShowText = MessageUiHandler.prototype.showText; - MessageUiHandler.prototype.showText = function (text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean) { + MessageUiHandler.prototype.showText = function (text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean, promptDelay?: integer) { if (thisArg.auto) { delay = 1; callbackDelay = 0; + promptDelay = 0; } - originalMessageUiHandlerShowText.apply(this, [ text, delay, callback, callbackDelay, prompt ]); + originalMessageUiHandlerShowText.apply(this, [ text, delay, callback, callbackDelay, prompt, promptDelay ]); }; const originalMessageUiHandlerShowPrompt = MessageUiHandler.prototype.showPrompt; diff --git a/src/battle-info.ts b/src/battle-info.ts index b6b2143f941..8aab1d98c7f 100644 --- a/src/battle-info.ts +++ b/src/battle-info.ts @@ -6,6 +6,7 @@ import { getGenderSymbol, getGenderColor } from './gender'; export default class BattleInfo extends Phaser.GameObjects.Container { private player: boolean; + private lastName: string; private lastHp: integer; private lastMaxHp: integer; private lastHpFrame: string; @@ -75,6 +76,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { initInfo(pokemon: Pokemon) { this.nameText.setText(pokemon.name); + this.lastName = pokemon.name; const nameSizeTest = addTextObject(this.scene, 0, 0, pokemon.name, TextStyle.BATTLE_INFO); const nameTextWidth = nameSizeTest.displayWidth; @@ -108,6 +110,17 @@ export default class BattleInfo extends Phaser.GameObjects.Container { return; } + if (this.lastName !== pokemon.species.name) { + this.nameText.setText(pokemon.name); + this.lastName = pokemon.name; + + const nameSizeTest = addTextObject(this.scene, 0, 0, pokemon.name, TextStyle.BATTLE_INFO); + const nameTextWidth = nameSizeTest.displayWidth; + nameSizeTest.destroy(); + + this.genderText.setPositionRelative(this.nameText, nameTextWidth, 0); + } + const updatePokemonHp = () => { const duration = !instant ? Utils.clampInt(Math.abs((this.lastHp) - pokemon.hp) * 5, 250, 5000) : 0; this.scene.tweens.add({ @@ -205,7 +218,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { } setLevel(level: integer) { - this.levelNumbersContainer.removeAll(); + this.levelNumbersContainer.removeAll(true); const levelStr = level.toString(); for (let i = 0; i < levelStr.length; i++) this.levelNumbersContainer.add(this.scene.add.image(i * 8, 0, 'numbers', levelStr[i])); @@ -215,7 +228,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { setHpNumbers(hp: integer, maxHp: integer) { if (!this.player) return; - this.hpNumbersContainer.removeAll(); + this.hpNumbersContainer.removeAll(true); const hpStr = hp.toString(); const maxHpStr = maxHp.toString(); let offset = 0; diff --git a/src/battle-phase.ts b/src/battle-phase.ts index aecdd4096cc..7c76000cb66 100644 --- a/src/battle-phase.ts +++ b/src/battle-phase.ts @@ -1,19 +1,18 @@ import BattleScene from "./battle-scene"; import { default as Pokemon, PlayerPokemon, EnemyPokemon, PokemonMove } from "./pokemon"; import * as Utils from './utils'; -import { allMoves, Moves as Move, MoveCategory, Moves } from "./move"; +import { allMoves, MoveCategory, Moves } from "./move"; import { Mode } from './ui/ui'; import { Command } from "./ui/command-ui-handler"; import { Stat } from "./pokemon-stat"; import { ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, getModifierTypesForWave, ModifierType, PokemonModifierType, regenerateModifierPoolThresholds } from "./modifier"; import PartyUiHandler, { PartyUiMode } from "./ui/party-ui-handler"; import { doPokeballBounceAnim, getPokeballAtlasKey, getPokeballCatchMultiplier, getPokeballTintColor as getPokeballTintColor, PokeballType } from "./pokeball"; -import { pokemonLevelMoves } from "./pokemon-level-moves"; import { MoveAnim, initAnim, loadMoveAnimAssets } from "./battle-anims"; import { StatusEffect } from "./status-effect"; import { SummaryUiMode } from "./ui/summary-ui-handler"; -import { Species } from "./species"; -import { SpeciesEvolution } from "./pokemon-evolutions"; +import EvolutionSceneHandler from "./ui/evolution-scene-handler"; +import { EvolutionPhase } from "./evolution-phase"; export class BattlePhase { protected scene: BattleScene; @@ -63,7 +62,8 @@ export class EncounterPhase extends BattlePhase { if (this.scene.getPlayerPokemon().visible) this.scene.field.moveBelow(enemyPokemon, this.scene.getPlayerPokemon()); enemyPokemon.tint(0, 0.5); - this.doEncounter(); + + this.scene.ui.setMode(Mode.MESSAGE).then(() => this.doEncounter()); }); } @@ -735,7 +735,7 @@ export class ExpPhase extends PartyMemberPokemonPhase { pokemon.addExp(exp.value); newLevel = pokemon.level; if (newLevel > lastLevel) - this.scene.unshiftPhase(new LevelUpPhase(this.scene, this.partyMemberIndex, newLevel)); + this.scene.unshiftPhase(new LevelUpPhase(this.scene, this.partyMemberIndex, lastLevel, newLevel)); pokemon.updateInfo().then(() => this.end()); }, null, true); } @@ -744,11 +744,13 @@ export class ExpPhase extends PartyMemberPokemonPhase { } export class LevelUpPhase extends PartyMemberPokemonPhase { + private lastLevel: integer; private level: integer; - constructor(scene: BattleScene, partyMemberIndex: integer, level: integer) { + constructor(scene: BattleScene, partyMemberIndex: integer, lastLevel: integer, level: integer) { super(scene, partyMemberIndex); + this.lastLevel = lastLevel; this.level = level; } @@ -762,25 +764,20 @@ export class LevelUpPhase extends PartyMemberPokemonPhase { this.scene.pauseBgm(); this.scene.sound.play('level_up_fanfare'); this.scene.ui.showText(`${this.getPokemon().name} grew to\nLV. ${this.level}!`, null, () => this.scene.ui.getMessageHandler().promptLevelUpStats(prevStats, false, () => this.end()), null, true); - const levelMoves = pokemonLevelMoves[pokemon.species.speciesId]; - if (levelMoves) { - for (let lm of levelMoves) { - const level = lm[0]; - if (level < this.level) - continue; - else if (level > this.level) - break; - this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, lm[1])); - } - } + const levelMoves = this.getPokemon().getLevelMoves(this.lastLevel + 1); + for (let lm of levelMoves) + this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, lm)); + const evolution = pokemon.getEvolution(); + if (evolution) + this.scene.unshiftPhase(new EvolutionPhase(this.scene, this.partyMemberIndex, evolution, this.lastLevel)); this.scene.time.delayedCall(1500, () => this.scene.resumeBgm()); } } export class LearnMovePhase extends PartyMemberPokemonPhase { - private moveId: Move; + private moveId: Moves; - constructor(scene: BattleScene, partyMemberIndex: integer, moveId: Move) { + constructor(scene: BattleScene, partyMemberIndex: integer, moveId: Moves) { super(scene, partyMemberIndex); this.moveId = moveId; @@ -791,7 +788,6 @@ export class LearnMovePhase extends PartyMemberPokemonPhase { const pokemon = this.getPokemon(); const move = allMoves[this.moveId - 1]; - console.log(move, this.moveId); const existingMoveIndex = pokemon.moveset.findIndex(m => m?.moveId === move.id); @@ -804,45 +800,52 @@ export class LearnMovePhase extends PartyMemberPokemonPhase { ? pokemon.moveset.length : pokemon.moveset.findIndex(m => m === null); + const messageMode = this.scene.ui.getHandler() instanceof EvolutionSceneHandler + ? Mode.EVOLUTION_SCENE + : Mode.MESSAGE; + if (emptyMoveIndex > -1) { pokemon.moveset[emptyMoveIndex] = new PokemonMove(this.moveId, 0, 0); initAnim(this.moveId).then(() => { loadMoveAnimAssets(this.scene, [ this.moveId ], true) .then(() => { - this.scene.ui.setMode(Mode.MESSAGE).then(() => { + this.scene.ui.setMode(messageMode).then(() => { + this.scene.pauseBgm(); this.scene.sound.play('level_up_fanfare'); - this.scene.ui.showText(`${pokemon.name} learned\n${Utils.toPokemonUpperCase(move.name)}!`, null, () => this.end(), null, true); + this.scene.ui.showText(`${pokemon.name} learned\n${Utils.toPokemonUpperCase(move.name)}!`, null, () => this.end(), messageMode === Mode.EVOLUTION_SCENE ? 1000 : null, true); + this.scene.time.delayedCall(1500, () => this.scene.resumeBgm()); }); }); }); } else { - this.scene.ui.setMode(Mode.MESSAGE).then(() => { + this.scene.ui.setMode(messageMode).then(() => { this.scene.ui.showText(`${pokemon.name} wants to learn the\nmove ${move.name}.`, null, () => { this.scene.ui.showText(`However, ${pokemon.name} already\nknows four moves.`, null, () => { this.scene.ui.showText(`Should a move be deleted and\nreplaced with ${move.name}?`, null, () => { const noHandler = () => { - this.scene.ui.setMode(Mode.MESSAGE).then(() => { + this.scene.ui.setMode(messageMode).then(() => { this.scene.ui.showText(`Stop trying to teach\n${move.name}?`, null, () => { - this.scene.ui.setMode(Mode.CONFIRM, () => { - this.scene.ui.setMode(Mode.MESSAGE); + this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => { + this.scene.ui.setMode(messageMode); this.scene.ui.showText(`${pokemon.name} did not learn the\nmove ${move.name}.`, null, () => this.end(), null, true); }, () => { + this.scene.ui.setMode(messageMode); this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId)); this.end(); }); }); }); }; - this.scene.ui.setMode(Mode.CONFIRM, () => { - this.scene.ui.setMode(Mode.MESSAGE); + this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => { + this.scene.ui.setMode(messageMode); this.scene.ui.showText('Which move should be forgotten?', null, () => { - this.scene.ui.setMode(Mode.SUMMARY, this.getPokemon(), SummaryUiMode.LEARN_MOVE, move, (moveIndex: integer) => { + this.scene.ui.setModeWithoutClear(Mode.SUMMARY, this.getPokemon(), SummaryUiMode.LEARN_MOVE, move, (moveIndex: integer) => { if (moveIndex === 4) { noHandler(); return; } - this.scene.ui.setMode(Mode.MESSAGE).then(() => { - this.scene.ui.showText('1, 2, and… … … Poof!', null, () => { + this.scene.ui.setMode(messageMode).then(() => { + this.scene.ui.showText('@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!', null, () => { this.scene.ui.showText(`${pokemon.name} forgot how to\nuse ${pokemon.moveset[moveIndex].getName()}.`, null, () => { this.scene.ui.showText('And…', null, () => { pokemon.moveset[moveIndex] = null; @@ -1016,277 +1019,6 @@ export class AttemptCapturePhase extends BattlePhase { } } -export class EvolutionPhase extends BattlePhase { - private partyMemberIndex: integer; - private evolution: SpeciesEvolution; - - private evolutionContainer: Phaser.GameObjects.Container; - private evolutionBaseBg: Phaser.GameObjects.Image; - private evolutionBg: Phaser.GameObjects.Video; - private evolutionBgOverlay: Phaser.GameObjects.Rectangle; - private pokemonSprite: Phaser.GameObjects.Sprite; - private pokemonTintSprite: Phaser.GameObjects.Sprite; - private pokemonEvoSprite: Phaser.GameObjects.Sprite; - private pokemonEvoTintSprite: Phaser.GameObjects.Sprite; - - constructor(scene: BattleScene, partyMemberIndex: integer, evolution: SpeciesEvolution) { - super(scene); - - this.partyMemberIndex = partyMemberIndex; - this.evolution = evolution; - } - - start() { - super.start(); - - if (!this.evolution) { - this.end(); - return; - } - - this.scene.pauseBgm(); - - this.evolutionContainer = this.scene.add.container(0, 0); - this.scene.field.add(this.evolutionContainer); - - this.evolutionBaseBg = this.scene.add.image(0, 0, 'plains_bg'); - this.evolutionBaseBg.setOrigin(0, 0); - this.evolutionContainer.add(this.evolutionBaseBg); - - this.evolutionBg = this.scene.add.video(0, 0, 'evo_bg').stop(); - this.evolutionBg.setOrigin(0, 0); - this.evolutionBg.setScale(0.4359673025); - this.evolutionBg.setVisible(false); - this.evolutionContainer.add(this.evolutionBg); - - this.evolutionBgOverlay = this.scene.add.rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6, 0x262626); - this.evolutionBgOverlay.setOrigin(0, 0); - this.evolutionBgOverlay.setAlpha(0); - this.evolutionContainer.add(this.evolutionBgOverlay); - - const getPokemonSprite = () => { - return this.scene.add.sprite(this.evolutionBaseBg.displayWidth / 2, this.evolutionBaseBg.displayHeight / 2, `pkmn__sub`); - }; - - this.evolutionContainer.add((this.pokemonSprite = getPokemonSprite())); - this.evolutionContainer.add((this.pokemonTintSprite = getPokemonSprite())); - this.evolutionContainer.add((this.pokemonEvoSprite = getPokemonSprite())); - this.evolutionContainer.add((this.pokemonEvoTintSprite = getPokemonSprite())); - - this.pokemonTintSprite.setAlpha(0); - this.pokemonTintSprite.setTintFill(0xFFFFFF); - this.pokemonEvoSprite.setVisible(false); - this.pokemonEvoTintSprite.setVisible(false); - this.pokemonEvoTintSprite.setTintFill(0xFFFFFF); - - const pokemon = this.scene.getParty()[this.partyMemberIndex]; - - this.pokemonSprite.play(pokemon.getSpriteKey()); - this.pokemonTintSprite.play(pokemon.getSpriteKey()); - this.pokemonEvoSprite.play(pokemon.getSpriteKey()); - this.pokemonEvoTintSprite.play(pokemon.getSpriteKey()); - - this.scene.ui.showText(`What?\n${pokemon.name} is evolving!`, null, () => { - pokemon.cry(); - - pokemon.evolve(this.evolution).then(() => { - this.pokemonEvoSprite.play(pokemon.getSpriteKey()); - this.pokemonEvoTintSprite.play(pokemon.getSpriteKey()); - }); - - this.scene.time.delayedCall(1000, () => { - this.scene.tweens.add({ - targets: this.evolutionBgOverlay, - alpha: 1, - delay: 500, - duration: 1500, - ease: 'Sine.easeOut', - onComplete: () => { - this.scene.time.delayedCall(1000, () => { - this.scene.tweens.add({ - targets: this.evolutionBgOverlay, - alpha: 0, - duration: 250, - onComplete: () => this.evolutionBgOverlay.setVisible(false) - }); - this.evolutionBg.setVisible(true); - this.evolutionBg.play(); - }); - this.doSpiralUpward(); - this.scene.tweens.addCounter({ - from: 0, - to: 1, - duration: 2000, - onUpdate: t => { - this.pokemonTintSprite.setAlpha(t.getValue()); - }, - onComplete: () => { - this.pokemonSprite.setVisible(false); - this.scene.time.delayedCall(1000, () => { - this.doArcDownward(); - this.scene.time.delayedCall(1500, () => { - this.pokemonEvoTintSprite.setScale(0.25); - this.pokemonEvoTintSprite.setVisible(true); - this.doCycle(1).then(() => { - this.scene.sound.play('shiny'); - this.pokemonEvoSprite.setVisible(true); - }); - }); - }); - } - }) - } - }); - //this.scene.sound.play('evolution'); - }); - }, 1000); - } - - sin(index: integer, amplitude: integer) { - return amplitude * Math.sin(index * (Math.PI / 128)); - } - - cos(index: integer, amplitude: integer) { - return amplitude * Math.cos(index * (Math.PI / 128)); - } - - doSpiralUpward() { - let f = 0; - - this.scene.tweens.addCounter({ - repeat: 64, - duration: 1, - useFrames: true, - onRepeat: () => { - if (f < 64) { - if (!(f & 7)) { - for (let i = 0; i < 4; i++) - this.doSpiralUpwardParticle((f & 120) * 2 + i * 64); - } - f++; - } - } - }); - } - - doArcDownward() { - let f = 0; - - this.scene.tweens.addCounter({ - repeat: 96, - duration: 1, - useFrames: true, - onRepeat: () => { - if (f < 96) { - if (f < 6) { - for (let i = 0; i < 9; i++) - this.doArcDownParticle(i * 16); - } - f++; - } - } - }); - } - - doCycle(l: number): Promise { - return new Promise(resolve => { - const isLastCycle = l === 15; - this.scene.tweens.add({ - targets: this.pokemonTintSprite, - scale: 0.25, - ease: 'Cubic.easeInOut', - duration: 500 / l, - yoyo: !isLastCycle - }); - this.scene.tweens.add({ - targets: this.pokemonEvoTintSprite, - scale: 1, - ease: 'Cubic.easeInOut', - duration: 500 / l, - yoyo: !isLastCycle, - onComplete: () => { - if (l < 15) - this.doCycle(l + 0.5).then(() => resolve()); - else { - this.pokemonTintSprite.setVisible(false); - resolve(); - } - } - }); - }); - } - - doSpiralUpwardParticle(trigIndex: integer) { - const initialX = (this.scene.game.canvas.width / 6) / 2; - const particle = this.scene.add.image(initialX, 0, 'evo_sparkle'); - this.evolutionContainer.add(particle); - - let f = 0; - let amp = 48; - - const particleTimer = this.scene.tweens.addCounter({ - repeat: -1, - duration: 1, - useFrames: true, - onRepeat: () => { - updateParticle(); - } - }); - - const updateParticle = () => { - if (!f || particle.y > 8) { - particle.setPosition(initialX, 88 - (f * f) / 80); - particle.y += this.sin(trigIndex, amp) / 4; - particle.x += this.cos(trigIndex, amp); - particle.setScale(1 - (f / 80)); - trigIndex += 4; - if (f & 1) - amp--; - f++; - } else { - particle.destroy(); - particleTimer.remove(); - } - }; - - updateParticle(); - } - - doArcDownParticle(trigIndex: integer) { - const initialX = (this.scene.game.canvas.width / 6) / 2; - const particle = this.scene.add.image(initialX, 0, 'evo_sparkle'); - particle.setScale(0.5); - this.evolutionContainer.add(particle); - - let f = 0; - let amp = 8; - - const particleTimer = this.scene.tweens.addCounter({ - repeat: -1, - duration: 1, - useFrames: true, - onRepeat: () => { - updateParticle(); - } - }); - - const updateParticle = () => { - if (!f || particle.y < 88) { - particle.setPosition(initialX, 8 + (f * f) / 5); - particle.y += this.sin(trigIndex, amp) / 4; - particle.x += this.cos(trigIndex, amp); - amp = 8 + this.sin(f * 4, 40); - f++; - } else { - particle.destroy(); - particleTimer.remove(); - } - }; - - updateParticle(); - } -} - export class SelectModifierPhase extends BattlePhase { constructor(scene: BattleScene) { super(scene); diff --git a/src/battle-scene.ts b/src/battle-scene.ts index d3ce9207322..7502305364e 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -162,7 +162,7 @@ export default class BattleScene extends Phaser.Scene { // Load pokemon-related images this.loadImage(`pkmn__back__sub`, 'pokemon/back', 'sub.png'); this.loadImage(`pkmn__sub`, 'pokemon', 'sub.png'); - this.loadAtlas('shiny', 'effects'); + this.loadAtlas('sparkle', 'effects'); this.loadImage('evo_sparkle', 'effects'); this.load.video('evo_bg', 'images/effects/evo_bg.mp4', null, false, true); @@ -184,8 +184,11 @@ export default class BattleScene extends Phaser.Scene { this.loadSe('flee'); this.loadSe('exp'); this.loadSe('level_up'); - this.loadSe('shiny'); + this.loadSe('sparkle'); this.loadSe('restore'); + this.loadSe('shine'); + this.loadSe('charge'); + this.loadSe('beam'); this.loadSe('error'); this.loadSe('pb'); @@ -257,7 +260,7 @@ export default class BattleScene extends Phaser.Scene { for (let s = 0; s < 3; s++) { const playerSpecies = getPokemonSpecies(s === 0 ? Species.TORCHIC : s === 1 ? Species.TREECKO : Species.MUDKIP); //this.randomSpecies(); - const playerPokemon = new PlayerPokemon(this, playerSpecies, 16); + const playerPokemon = new PlayerPokemon(this, playerSpecies, 5); playerPokemon.setVisible(false); loadPokemonAssets.push(playerPokemon.loadAssets()); @@ -345,7 +348,6 @@ export default class BattleScene extends Phaser.Scene { this.unshiftPhase(new NewBiomeEncounterPhase(this)); } } else { - this.pushPhase(new EvolutionPhase(this, 0, this.getPlayerPokemon().getEvolution())); //this.pushPhase(new SelectStarterPhase(this)); this.pushPhase(new EncounterPhase(this)); this.pushPhase(new SummonPhase(this)); @@ -356,7 +358,7 @@ export default class BattleScene extends Phaser.Scene { } newBiome(): BiomeArena { - const biome = this.currentBattle ? Utils.randInt(20) as Biome : Biome.LAKE; + const biome = this.currentBattle ? Utils.randInt(20) as Biome : Biome.PLAINS; this.arena = new BiomeArena(this, biome, Biome[biome].toLowerCase()); return this.arena; } @@ -401,7 +403,13 @@ export default class BattleScene extends Phaser.Scene { }); } - playBgm(bgmName: string): void { + playBgm(bgmName?: string): void { + if (!bgmName && this.bgm) { + this.bgm.play({ + volume: 1 + }); + return; + } if (this.bgm && this.bgm.isPlaying) this.bgm.stop(); this.bgm = this.sound.add(bgmName, { loop: true }); @@ -418,6 +426,10 @@ export default class BattleScene extends Phaser.Scene { this.bgm.resume(); } + fadeOutBgm(destroy?: boolean): void { + this.arena.fadeOutBgm(500, destroy); + } + getCurrentPhase(): BattlePhase { return this.currentPhase; } diff --git a/src/biome.ts b/src/biome.ts index afaf94ea1ed..6ff01607f4f 100644 --- a/src/biome.ts +++ b/src/biome.ts @@ -132,8 +132,11 @@ export class BiomeArena { this.scene.load.once(Phaser.Loader.Events.COMPLETE, () => this.scene.playBgm(this.bgm)); } - fadeOutBgm(duration: integer) { - SoundFade.fadeOut(this.scene, this.scene.sound.get(this.bgm), duration); + fadeOutBgm(duration: integer, destroy?: boolean) { + if (destroy === undefined) + destroy = true; + const bgm = this.scene.sound.get(this.bgm); + SoundFade.fadeOut(this.scene, bgm, duration, destroy); } } diff --git a/src/evolution-phase.ts b/src/evolution-phase.ts new file mode 100644 index 00000000000..cc58f2fc70b --- /dev/null +++ b/src/evolution-phase.ts @@ -0,0 +1,445 @@ +import SoundFade from "phaser3-rex-plugins/plugins/soundfade"; +import { BattlePhase, LearnMovePhase } from "./battle-phase"; +import BattleScene from "./battle-scene"; +import { SpeciesEvolution } from "./pokemon-evolutions"; +import EvolutionSceneHandler from "./ui/evolution-scene-handler"; +import * as Utils from "./utils"; +import { Mode } from "./ui/ui"; + +export class EvolutionPhase extends BattlePhase { + private partyMemberIndex: integer; + private evolution: SpeciesEvolution; + private lastLevel: integer; + + private evolutionContainer: Phaser.GameObjects.Container; + private evolutionBaseBg: Phaser.GameObjects.Image; + private evolutionBg: Phaser.GameObjects.Video; + private evolutionBgOverlay: Phaser.GameObjects.Rectangle; + private evolutionOverlay: Phaser.GameObjects.Rectangle; + private pokemonSprite: Phaser.GameObjects.Sprite; + private pokemonTintSprite: Phaser.GameObjects.Sprite; + private pokemonEvoSprite: Phaser.GameObjects.Sprite; + private pokemonEvoTintSprite: Phaser.GameObjects.Sprite; + + constructor(scene: BattleScene, partyMemberIndex: integer, evolution: SpeciesEvolution, lastLevel: integer) { + super(scene); + + this.partyMemberIndex = partyMemberIndex; + this.evolution = evolution; + this.lastLevel = lastLevel; + } + + start() { + super.start(); + + this.scene.ui.setModeForceTransition(Mode.EVOLUTION_SCENE).then(() => { + + if (!this.evolution) { + this.end(); + return; + } + + this.scene.fadeOutBgm(false); + + this.evolutionContainer = (this.scene.ui.getHandler() as EvolutionSceneHandler).evolutionContainer; + + this.evolutionBaseBg = this.scene.add.image(0, 0, 'plains_bg'); + this.evolutionBaseBg.setOrigin(0, 0); + this.evolutionContainer.add(this.evolutionBaseBg); + + this.evolutionBg = this.scene.add.video(0, 0, 'evo_bg').stop(); + this.evolutionBg.setOrigin(0, 0); + this.evolutionBg.setScale(0.4359673025); + this.evolutionBg.setVisible(false); + this.evolutionContainer.add(this.evolutionBg); + + this.evolutionBgOverlay = this.scene.add.rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6, 0x262626); + this.evolutionBgOverlay.setOrigin(0, 0); + this.evolutionBgOverlay.setAlpha(0); + this.evolutionContainer.add(this.evolutionBgOverlay); + + const getPokemonSprite = () => { + return this.scene.add.sprite(this.evolutionBaseBg.displayWidth / 2, this.evolutionBaseBg.displayHeight / 2, `pkmn__sub`); + }; + + this.evolutionContainer.add((this.pokemonSprite = getPokemonSprite())); + this.evolutionContainer.add((this.pokemonTintSprite = getPokemonSprite())); + this.evolutionContainer.add((this.pokemonEvoSprite = getPokemonSprite())); + this.evolutionContainer.add((this.pokemonEvoTintSprite = getPokemonSprite())); + + this.pokemonTintSprite.setAlpha(0); + this.pokemonTintSprite.setTintFill(0xFFFFFF); + this.pokemonEvoSprite.setVisible(false); + this.pokemonEvoTintSprite.setVisible(false); + this.pokemonEvoTintSprite.setTintFill(0xFFFFFF); + + this.evolutionOverlay = this.scene.add.rectangle(0, -this.scene.game.canvas.height / 6, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6, 0xFFFFFF); + this.evolutionOverlay.setOrigin(0, 0); + this.evolutionOverlay.setAlpha(0); + this.scene.fieldUI.add(this.evolutionOverlay); + + const pokemon = this.scene.getParty()[this.partyMemberIndex]; + const preName = pokemon.name; + + this.pokemonSprite.play(pokemon.getSpriteKey()); + this.pokemonTintSprite.play(pokemon.getSpriteKey()); + this.pokemonEvoSprite.play(pokemon.getSpriteKey()); + this.pokemonEvoTintSprite.play(pokemon.getSpriteKey()); + + this.scene.ui.showText(`What?\n${preName} is evolving!`, null, () => { + pokemon.cry(); + + pokemon.evolve(this.evolution).then(() => { + this.pokemonEvoSprite.play(pokemon.getSpriteKey()); + this.pokemonEvoTintSprite.play(pokemon.getSpriteKey()); + }); + + const levelMoves = pokemon.getLevelMoves(this.lastLevel + 1); + for (let lm of levelMoves) + this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, lm)); + + this.scene.time.delayedCall(1000, () => { + const evolutionBgm = this.scene.sound.add('evolution'); + evolutionBgm.play(); + this.scene.tweens.add({ + targets: this.evolutionBgOverlay, + alpha: 1, + delay: 500, + duration: 1500, + ease: 'Sine.easeOut', + onComplete: () => { + this.scene.time.delayedCall(1000, () => { + this.scene.tweens.add({ + targets: this.evolutionBgOverlay, + alpha: 0, + duration: 250 + }); + this.evolutionBg.setVisible(true); + this.evolutionBg.play(); + }); + this.scene.sound.play('charge'); + this.doSpiralUpward(); + this.scene.tweens.addCounter({ + from: 0, + to: 1, + duration: 2000, + onUpdate: t => { + this.pokemonTintSprite.setAlpha(t.getValue()); + }, + onComplete: () => { + this.pokemonSprite.setVisible(false); + this.scene.time.delayedCall(1100, () => { + this.scene.sound.play('beam'); + this.doArcDownward(); + this.scene.time.delayedCall(1500, () => { + this.pokemonEvoTintSprite.setScale(0.25); + this.pokemonEvoTintSprite.setVisible(true); + this.doCycle(1).then(() => { + this.scene.sound.play('sparkle'); + this.pokemonEvoSprite.setVisible(true); + this.doCircleInward(); + this.scene.time.delayedCall(900, () => { + this.scene.sound.play('shine'); + this.doSpray(); + this.scene.tweens.add({ + targets: this.evolutionOverlay, + alpha: 1, + duration: 250, + easing: 'Sine.easeIn', + onComplete: () => { + this.evolutionBgOverlay.setAlpha(1); + this.evolutionBg.setVisible(false); + this.scene.tweens.add({ + targets: [ this.evolutionOverlay, this.pokemonEvoTintSprite ], + alpha: 0, + duration: 2000, + delay: 150, + easing: 'Sine.easeIn', + onComplete: () => { + this.scene.tweens.add({ + targets: this.evolutionBgOverlay, + alpha: 0, + duration: 250, + onComplete: () => { + SoundFade.fadeOut(this.scene, evolutionBgm, 100); + this.scene.time.delayedCall(250, () => { + pokemon.cry(); + this.scene.time.delayedCall(1250, () => { + this.scene.sound.play('evolution_fanfare'); + this.scene.ui.showText(`Congratulations! Your ${preName}\nevolved into ${pokemon.name}!`, null, () => this.end(), null, true, 3000); + this.scene.time.delayedCall(4250, () => this.scene.playBgm()); + }); + }); + } + }); + } + }); + } + }) + }); + }); + }); + }); + } + }) + } + }); + }); + }, 1000); + }); + } + + sin(index: integer, amplitude: integer): number { + return amplitude * Math.sin(index * (Math.PI / 128)); + } + + cos(index: integer, amplitude: integer): number { + return amplitude * Math.cos(index * (Math.PI / 128)); + } + + doSpiralUpward() { + let f = 0; + + this.scene.tweens.addCounter({ + repeat: 64, + duration: 1, + useFrames: true, + onRepeat: () => { + if (f < 64) { + if (!(f & 7)) { + for (let i = 0; i < 4; i++) + this.doSpiralUpwardParticle((f & 120) * 2 + i * 64); + } + f++; + } + } + }); + } + + doArcDownward() { + let f = 0; + + this.scene.tweens.addCounter({ + repeat: 96, + duration: 1, + useFrames: true, + onRepeat: () => { + if (f < 96) { + if (f < 6) { + for (let i = 0; i < 9; i++) + this.doArcDownParticle(i * 16); + } + f++; + } + } + }); + } + + doCycle(l: number): Promise { + return new Promise(resolve => { + const isLastCycle = l === 15; + this.scene.tweens.add({ + targets: this.pokemonTintSprite, + scale: 0.25, + ease: 'Cubic.easeInOut', + duration: 500 / l, + yoyo: !isLastCycle + }); + this.scene.tweens.add({ + targets: this.pokemonEvoTintSprite, + scale: 1, + ease: 'Cubic.easeInOut', + duration: 500 / l, + yoyo: !isLastCycle, + onComplete: () => { + if (l < 15) + this.doCycle(l + 0.5).then(() => resolve()); + else { + this.pokemonTintSprite.setVisible(false); + resolve(); + } + } + }); + }); + } + + doCircleInward() { + let f = 0; + + this.scene.tweens.addCounter({ + repeat: 48, + duration: 1, + useFrames: true, + onRepeat: () => { + if (!f) { + for (let i = 0; i < 16; i++) + this.doCircleInwardParticle(i * 16, 4); + } else if (f === 32) { + for (let i = 0; i < 16; i++) + this.doCircleInwardParticle(i * 16, 8); + } + f++; + } + }); + } + + doSpray() { + let f = 0; + + this.scene.tweens.addCounter({ + repeat: 48, + duration: 1, + useFrames: true, + onRepeat: () => { + if (!f) { + for (let i = 0; i < 8; i++) + this.doSprayParticle(i); + } else if (f < 50) + this.doSprayParticle(Utils.randInt(8)); + f++; + } + }); + } + + doSpiralUpwardParticle(trigIndex: integer) { + const initialX = this.evolutionBaseBg.displayWidth / 2; + const particle = this.scene.add.image(initialX, 0, 'evo_sparkle'); + this.evolutionContainer.add(particle); + + let f = 0; + let amp = 48; + + const particleTimer = this.scene.tweens.addCounter({ + repeat: -1, + duration: 1, + useFrames: true, + onRepeat: () => { + updateParticle(); + } + }); + + const updateParticle = () => { + if (!f || particle.y > 8) { + particle.setPosition(initialX, 88 - (f * f) / 80); + particle.y += this.sin(trigIndex, amp) / 4; + particle.x += this.cos(trigIndex, amp); + particle.setScale(1 - (f / 80)); + trigIndex += 4; + if (f & 1) + amp--; + f++; + } else { + particle.destroy(); + particleTimer.remove(); + } + }; + + updateParticle(); + } + + doArcDownParticle(trigIndex: integer) { + const initialX = this.evolutionBaseBg.displayWidth / 2; + const particle = this.scene.add.image(initialX, 0, 'evo_sparkle'); + particle.setScale(0.5); + this.evolutionContainer.add(particle); + + let f = 0; + let amp = 8; + + const particleTimer = this.scene.tweens.addCounter({ + repeat: -1, + duration: 1, + useFrames: true, + onRepeat: () => { + updateParticle(); + } + }); + + const updateParticle = () => { + if (!f || particle.y < 88) { + particle.setPosition(initialX, 8 + (f * f) / 5); + particle.y += this.sin(trigIndex, amp) / 4; + particle.x += this.cos(trigIndex, amp); + amp = 8 + this.sin(f * 4, 40); + f++; + } else { + particle.destroy(); + particleTimer.remove(); + } + }; + + updateParticle(); + } + + doCircleInwardParticle(trigIndex: integer, speed: integer) { + const initialX = this.evolutionBaseBg.displayWidth / 2; + const initialY = this.evolutionBaseBg.displayHeight / 2; + const particle = this.scene.add.image(initialX, initialY, 'evo_sparkle'); + this.evolutionContainer.add(particle); + + let amp = 120; + + const particleTimer = this.scene.tweens.addCounter({ + repeat: -1, + duration: 1, + useFrames: true, + onRepeat: () => { + updateParticle(); + } + }); + + const updateParticle = () => { + if (amp > 8) { + particle.setPosition(initialX, initialY); + particle.y += this.sin(trigIndex, amp); + particle.x += this.cos(trigIndex, amp); + amp -= speed; + trigIndex += 4; + } else { + particle.destroy(); + particleTimer.remove(); + } + }; + + updateParticle(); + } + + doSprayParticle(trigIndex: integer) { + const initialX = this.evolutionBaseBg.displayWidth / 2; + const initialY = this.evolutionBaseBg.displayHeight / 2; + const particle = this.scene.add.image(initialX, initialY, 'evo_sparkle'); + this.evolutionContainer.add(particle); + + let f = 0; + let yOffset = 0; + let speed = 3 - Utils.randInt(8); + let amp = 48 + Utils.randInt(64); + + const particleTimer = this.scene.tweens.addCounter({ + repeat: -1, + duration: 1, + useFrames: true, + onRepeat: () => { + updateParticle(); + } + }); + + const updateParticle = () => { + if (!(f & 3)) + yOffset++; + if (trigIndex < 128) { + particle.setPosition(initialX + (speed * f) / 3, initialY + yOffset); + particle.y += -this.sin(trigIndex, amp); + if (f > 108) + particle.setScale((1 - (f - 108) / 20)); + trigIndex++; + f++; + } else { + particle.destroy(); + particleTimer.remove(); + } + }; + + updateParticle(); + } +} \ No newline at end of file diff --git a/src/modifier.ts b/src/modifier.ts index 69e0d583035..4456f9ed1f4 100644 --- a/src/modifier.ts +++ b/src/modifier.ts @@ -342,7 +342,7 @@ export class PokemonLevelIncrementModifier extends ConsumablePokemonModifier { pokemon.levelExp = 0; const scene = pokemon.scene as BattleScene; - scene.unshiftPhase(new LevelUpPhase(scene, scene.getParty().indexOf(pokemon), pokemon.level)); + scene.unshiftPhase(new LevelUpPhase(scene, scene.getParty().indexOf(pokemon), pokemon.level - 1, pokemon.level)); return true; } diff --git a/src/pokemon.ts b/src/pokemon.ts index 62cb94fe08d..75401412ca8 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -298,15 +298,23 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return null; } - evolve(evolution: SpeciesEvolution): Promise { - return new Promise(resolve => { - console.log(evolution?.speciesId) - this.species = getPokemonSpecies(evolution.speciesId); - this.loadAssets().then(() => { - this.calculateStats(); - this.updateInfo().then(() => resolve()); - }); - }); + getLevelMoves(startingLevel?: integer): Moves[] { + const ret: Moves[] = []; + const levelMoves = pokemonLevelMoves[this.species.speciesId]; + if (levelMoves) { + if (!startingLevel) + startingLevel = this.level; + for (let lm of levelMoves) { + const level = lm[0]; + if (level < startingLevel) + continue; + else if (level > this.level) + break; + ret.push(lm[1]); + } + } + + return ret; } generateAndPopulateMoveset(): void { @@ -593,7 +601,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { sparkle(): void { if (this.shinySparkle) { this.shinySparkle.play('sparkle'); - this.scene.sound.play('shiny'); + this.scene.sound.play('sparkle'); } } } @@ -631,6 +639,20 @@ export class PlayerPokemon extends Pokemon { } } } + + evolve(evolution: SpeciesEvolution): Promise { + return new Promise(resolve => { + this.species = getPokemonSpecies(evolution.speciesId); + this.name = this.species.name.toUpperCase(); + this.species.generateIconAnim(this.scene as BattleScene); + this.compatibleTms.splice(0, this.compatibleTms.length); + this.generateCompatibleTms(); + this.loadAssets().then(() => { + this.calculateStats(); + this.updateInfo().then(() => resolve()); + }); + }); + } } export class EnemyPokemon extends Pokemon { diff --git a/src/ui/evolution-scene-handler.ts b/src/ui/evolution-scene-handler.ts new file mode 100644 index 00000000000..2ef37da5f89 --- /dev/null +++ b/src/ui/evolution-scene-handler.ts @@ -0,0 +1,28 @@ +import BattleScene from "../battle-scene"; +import { Mode } from "./ui"; +import UiHandler from "./uiHandler"; + +export default class EvolutionSceneHandler extends UiHandler { + public evolutionContainer: Phaser.GameObjects.Container; + + constructor(scene: BattleScene) { + super(scene, Mode.EVOLUTION_SCENE); + } + + setup() { + this.evolutionContainer = this.scene.add.container(0, -this.scene.game.canvas.height / 6); + this.scene.fieldUI.add(this.evolutionContainer); + } + + processInput(keyCode: integer) { + this.scene.ui.getMessageHandler().processInput(keyCode); + } + + setCursor(_cursor: integer): boolean { + return false; + } + + clear() { + this.evolutionContainer.removeAll(true); + } + } \ No newline at end of file diff --git a/src/ui/message-ui-handler.ts b/src/ui/message-ui-handler.ts index 3d7bea0764f..2d5c9cef8ae 100644 --- a/src/ui/message-ui-handler.ts +++ b/src/ui/message-ui-handler.ts @@ -16,9 +16,25 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler { this.pendingPrompt = false; } - showText(text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean) { + showText(text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean, promptDelay?: integer) { if (delay === null || delay === undefined) delay = 20; + let delayMap = new Map(); + let soundMap = new Map(); + const actionPattern = /@(d|s)\{(.*?)\}/; + let actionMatch: RegExpExecArray; + while ((actionMatch = actionPattern.exec(text))) { + switch (actionMatch[1]) { + case 'd': + delayMap.set(actionMatch.index, parseInt(actionMatch[2])); + break; + case 's': + soundMap.set(actionMatch.index, actionMatch[2]); + break; + } + + text = text.slice(0, actionMatch.index) + text.slice(actionMatch.index + actionMatch[2].length + 4); + } if (this.textTimer) { this.textTimer.remove(); if (this.textCallbackTimer) @@ -26,7 +42,13 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler { }; if (prompt) { const originalCallback = callback; - callback = () => this.showPrompt(originalCallback, callbackDelay); + callback = () => { + const showPrompt = () => this.showPrompt(originalCallback, callbackDelay); + if (promptDelay) + this.scene.time.delayedCall(promptDelay, showPrompt); + else + showPrompt(); + }; } if (delay) { this.clearText(); @@ -35,19 +57,38 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler { this.textTimer = this.scene.time.addEvent({ delay: delay, callback: () => { - this.message.setText(text.slice(0, text.length - this.textTimer.repeatCount)); - if (callback && !this.textTimer.repeatCount) { - if (callbackDelay && !prompt) { - this.textCallbackTimer = this.scene.time.delayedCall(callbackDelay, () => { - if (this.textCallbackTimer) { - this.textCallbackTimer.destroy(); - this.textCallbackTimer = null; - } + const charIndex = text.length - this.textTimer.repeatCount; + const charSound = soundMap.get(charIndex); + const charDelay = delayMap.get(charIndex); + this.message.setText(text.slice(0, charIndex)); + const advance = () => { + if (charSound) + this.scene.sound.play(charSound); + if (callback && !this.textTimer.repeatCount) { + if (callbackDelay && !prompt) { + this.textCallbackTimer = this.scene.time.delayedCall(callbackDelay, () => { + if (this.textCallbackTimer) { + this.textCallbackTimer.destroy(); + this.textCallbackTimer = null; + } + callback(); + }); + } else callback(); - }); - } else - callback(); - } + } + }; + if (charDelay) { + this.textTimer.paused = true; + this.scene.tweens.addCounter({ + duration: charDelay, + useFrames: true, + onComplete: () => { + this.textTimer.paused = false; + advance(); + } + }); + } else + advance(); }, repeat: text.length }); diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index e859e505ea9..1abaaa9988c 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -411,6 +411,12 @@ export default class SummaryUiHandler extends UiHandler { extraRowText.setOrigin(0, 1); this.extraMoveRowContainer.add(extraRowText); + if (this.summaryUiMode === SummaryUiMode.LEARN_MOVE) { + const newMoveTypeIcon = this.scene.add.sprite(0, 0, 'types', Type[this.newMove.type].toLowerCase()); + newMoveTypeIcon.setOrigin(0, 1); + this.extraMoveRowContainer.add(newMoveTypeIcon); + } + this.moveRowsContainer = this.scene.add.container(0, 0); this.movesContainer.add(this.moveRowsContainer); @@ -518,7 +524,24 @@ export default class SummaryUiHandler extends UiHandler { this.pokemon = null; this.cursor = -1; this.newMove = null; - this.moveSelectFunction = null; + if (this.moveSelect) { + this.moveSelect = false; + this.moveSelectFunction = null; + this.extraMoveRowContainer.setVisible(false); + if (this.moveCursorBlinkTimer) { + this.moveCursorBlinkTimer.destroy(); + this.moveCursorBlinkTimer = null; + } + if (this.moveCursorObj) { + this.moveCursorObj.destroy(); + this.moveCursorObj = null; + } + if (this.selectedMoveCursorObj) { + this.selectedMoveCursorObj.destroy(); + this.selectedMoveCursorObj = null; + } + this.hideMoveEffect(true); + } this.summaryContainer.setVisible(false); this.summaryPageContainer.setVisible(false); } diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 94fdc0670be..a7333635eaa 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -10,7 +10,7 @@ import ModifierSelectUiHandler from './modifier-select-ui-handler'; import BallUiHandler from './ball-ui-handler'; import SummaryUiHandler from './summary-ui-handler'; import StarterSelectUiHandler from './starter-select-ui-handler'; -import EvolutionUiHandler from './evolution-ui-handler'; +import EvolutionSceneHandler from './evolution-scene-handler'; export enum Mode { MESSAGE = 0, @@ -21,13 +21,19 @@ export enum Mode { MODIFIER_SELECT, PARTY, SUMMARY, - STARTER_SELECT + STARTER_SELECT, + EVOLUTION_SCENE }; const transitionModes = [ Mode.PARTY, Mode.SUMMARY, Mode.STARTER_SELECT, + Mode.EVOLUTION_SCENE +]; + +const noTransitionModes = [ + Mode.CONFIRM ]; export default class UI extends Phaser.GameObjects.Container { @@ -50,7 +56,8 @@ export default class UI extends Phaser.GameObjects.Container { new ModifierSelectUiHandler(scene), new PartyUiHandler(scene), new SummaryUiHandler(scene), - new StarterSelectUiHandler(scene) + new StarterSelectUiHandler(scene), + new EvolutionSceneHandler(scene) ]; } @@ -79,12 +86,12 @@ export default class UI extends Phaser.GameObjects.Container { this.getHandler().processInput(keyCode); } - showText(text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean): void { + showText(text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean, promptDelay?: integer): void { const handler = this.getHandler(); if (handler instanceof MessageUiHandler) - (handler as MessageUiHandler).showText(text, delay, callback, callbackDelay, prompt); + (handler as MessageUiHandler).showText(text, delay, callback, callbackDelay, prompt, promptDelay); else - this.getMessageHandler().showText(text, delay, callback, callbackDelay, prompt); + this.getMessageHandler().showText(text, delay, callback, callbackDelay, prompt, promptDelay); } clearText(): void { @@ -111,20 +118,23 @@ export default class UI extends Phaser.GameObjects.Container { this.scene.sound.play('error'); } - private setModeInternal(mode: Mode, clear: boolean, args: any[]): Promise { + private setModeInternal(mode: Mode, clear: boolean, forceTransition: boolean, args: any[]): Promise { return new Promise(resolve => { - if (this.mode === mode) { + if (this.mode === mode && !forceTransition) { resolve(); return; } const doSetMode = () => { - if (clear) - this.getHandler().clear(); - this.mode = mode; - this.getHandler().show(args); + if (this.mode !== mode) { + if (clear) + this.getHandler().clear(); + this.mode = mode; + this.getHandler().show(args); + } resolve(); }; - if ((transitionModes.indexOf(this.mode) > -1 || transitionModes.indexOf(mode) > -1) && !(this.scene as BattleScene).auto) { + if ((transitionModes.indexOf(this.mode) > -1 || transitionModes.indexOf(mode) > -1) + && (noTransitionModes.indexOf(this.mode) === -1 && noTransitionModes.indexOf(mode) === -1) && !(this.scene as BattleScene).auto) { this.transitioning = true; this.overlay.setAlpha(0); this.overlay.setVisible(true); @@ -153,10 +163,14 @@ export default class UI extends Phaser.GameObjects.Container { } setMode(mode: Mode, ...args: any[]): Promise { - return this.setModeInternal(mode, true, args); + return this.setModeInternal(mode, true, false, args); + } + + setModeForceTransition(mode: Mode, ...args: any[]): Promise { + return this.setModeInternal(mode, true, true, args); } setModeWithoutClear(mode: Mode, ...args: any[]): Promise { - return this.setModeInternal(mode, false, args); + return this.setModeInternal(mode, false, false, args); } } \ No newline at end of file