From d393e0331b095eb16cae6f7e7bd8dc4d2a16bad0 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 28 Aug 2023 19:13:43 -0500 Subject: [PATCH] Added in extra stat indicators for damaged units. --- olcCodeJam2023Entry/Unit.cpp | 39 +++++++++++++++++++++++++++- olcCodeJam2023Entry/Unit.h | 1 + olcCodeJam2023Entry/VirusAttack.cpp | 5 ++++ olcCodeJam2023Entry/assets/prc.png | Bin 5339 -> 9303 bytes olcCodeJam2023Entry/assets/rld.png | Bin 5074 -> 7671 bytes olcCodeJam2023Entry/assets/rng.png | Bin 5264 -> 9132 bytes olcCodeJam2023Entry/assets/spd.png | Bin 692 -> 8542 bytes 7 files changed, 44 insertions(+), 1 deletion(-) diff --git a/olcCodeJam2023Entry/Unit.cpp b/olcCodeJam2023Entry/Unit.cpp index 656fc7b..80ec999 100644 --- a/olcCodeJam2023Entry/Unit.cpp +++ b/olcCodeJam2023Entry/Unit.cpp @@ -223,6 +223,7 @@ void Unit::DrawRangeIndicator(PixelGameEngine*pge,TileTransformedView&game,std:: float dist=geom2d::line(game.ScreenToWorld(pge->GetMousePos()),GetGhostPos()).length(); float range=12*(GetRange()+1); float totalRange=GetUnitSize().x/2+range; + if(IsSelected()){ Pixel col; if(CanInteractWithAllies()&&!CanInteractWithEnemies()){ @@ -231,6 +232,7 @@ void Unit::DrawRangeIndicator(PixelGameEngine*pge,TileTransformedView&game,std:: col={0,196,0}; } game.DrawRotatedDecal(GetGhostPos(),IMAGES[RANGE_INDICATOR]->Decal(),0,IMAGES[RANGE_INDICATOR]->Sprite()->Size()/2,{totalRange/12,totalRange/12},col); + }else if(distDecal(),0,IMAGES[RANGE_INDICATOR]->Sprite()->Size()/2,{totalRange/12,totalRange/12},{col.r,col.g,col.b,uint8_t((1.f-(dist/(range*2)))*255)}); + uint8_t transparency=uint8_t((1.f-(dist/(range*2)))*255); + game.DrawRotatedDecal(GetGhostPos(),IMAGES[RANGE_INDICATOR]->Decal(),0,IMAGES[RANGE_INDICATOR]->Sprite()->Size()/2,{totalRange/12,totalRange/12},{col.r,col.g,col.b,transparency}); } } @@ -310,6 +313,40 @@ void Unit::DrawHud(TileTransformedView&game,std::map>&IMAGES){ + float dist=geom2d::line(game.ScreenToWorld(pge->GetMousePos()),GetGhostPos()).length(); + float range=12*(GetRange()+1); + + + + auto DrawStatDown=[&](Marker&maxStat,int currentStat,vf2d pos,vf2d downDisplayPos,Image img,uint8_t transparency=255){ + if(maxStat.size>0){ + if(currentStat!=maxStat.size){ + game.DrawDecal(this->pos+pos,IMAGES[img]->Decal(),{1,1},{255,255,255,transparency}); + if(currentStat>0){ + game.DrawDecal(this->pos+downDisplayPos,IMAGES[DOWN_ARROW]->Decal(),{1,1},{255,255,255,transparency}); + } else { + game.DrawDecal(this->pos+downDisplayPos,IMAGES[RED_X]->Decal(),{1,1},{255,255,255,transparency}); + } + } + } + }; + + if(IsSelected()){ + DrawStatDown(atkSpd,GetAtkSpd(),{-48-8,-24},{-48+8,-18},RLD); + DrawStatDown(moveSpd,GetMoveSpd(),{-48-8,8},{-48+8,2},SPD); + DrawStatDown(this->range,GetRange(),{8,-24},{36,-18},RNG); + DrawStatDown(procedure,GetProcedure(),{8,8},{36,2},PRC); + }else + if(distrange,GetRange(),{8,-24},{26,-18},RNG,transparency); + DrawStatDown(procedure,GetProcedure(),{8,8},{26,2},PRC,transparency); } } diff --git a/olcCodeJam2023Entry/Unit.h b/olcCodeJam2023Entry/Unit.h index 00dbbbb..f8a6473 100644 --- a/olcCodeJam2023Entry/Unit.h +++ b/olcCodeJam2023Entry/Unit.h @@ -64,6 +64,7 @@ public: virtual void Attacked(std::weak_ptrattacker); void _Attacked(std::weak_ptrattacker); std::weak_ptrGetCurrentTarget(); + void DrawUnitDamageStats(PixelGameEngine*pge,TileTransformedView&game,std::map>&IMAGES); std::vector& operator <<=(const int n){ for(int i=0;i(vf2d{360,300},IMAGES,false)); + for(int i=0;iGetMemorySize();i++){ + units[0]->memory[i]=units[0]->ghostMemory[i]=i%2==0; + } + return true; } @@ -399,6 +403,7 @@ bool VirusAttack::OnUserUpdate(float fElapsedTime){ } for(auto&u:units){ + u->DrawUnitDamageStats(this,game,IMAGES); u->DrawHud(game,IMAGES); } diff --git a/olcCodeJam2023Entry/assets/prc.png b/olcCodeJam2023Entry/assets/prc.png index db07925ad9234aa6611c178e7d3e43469cd37dee..96f2f11bbe7b5ec741c7482beb746116c79071b3 100644 GIT binary patch delta 5372 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 delta 1565 zcmV+&2IBeGNZToYiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVE_OGTzXVk zbW&k=AaHVTW@&6?Aar?fWgumEX=VTbc-pO3S+eUW4E<*ny#yo%!EzW()!RWYzYjy4 z;l_!5``HyEgpdw80y}E^_fJ#*;9?f9tdroQ_ZpXtHgbZ05cItAc#^i`xjOnLJn7Xw zz)%^qW_BYl{RTZ`TK%|!(9QnlXpfX2x%)s$OP`S!S_G$ZS}CM-vW7a}|R zWg+r0$kWnlS&{8hh5OGMVedSN#nZAD@ey)hZ3X$P9cU{Yha)!=x+`w|n<)bmZ-$J< z(-=EZn*K9?CZP>@vIz=?WIQ^~#5ph$uR$ds0BKx-lHQZ~n45c!4z4rH(g@PFZv4R7 zy+EGpW0&Yazsg`|E%-HHo@v#7Z{O<4-5lKp%pQjyBZsm_e$qSY8N6TWk?z)NXk*b> zMY0~b@M}@Gr3?vnxo2_A^0-BNg{ln@`WxFioj{=p^!Em4V1(LAsv8Nu-LF^Y)qp`a(j2hBq_dhXvZH%(nL)IH zp+h@=cRfj64v->*b^t>L3}{crkq08dK}m!}1`w10osH!T2FN+C0Lj)E4|1?O5F2xZ zhABIqYMiRZDr{D71l(ZDf-Gwt>PKuq4JBusbCLwAsyVev>V1aZ3%Q)=aa_HQz+F&|*tFYm3$&_XXBy zvBra`ZYVoz(2Cq#P(Myw=M0RorM`W^8W=-icg}PmYq>MmIm7!1yTUO*x=v1|&KMYf zv>UN&v~#zZQ=I+|Z%V@8jsGums#AB8xu3kfW3BeLL>Y|DZP=5l4R&AI5{JY&m#yd_ z;tc%Js-uCc?JpgfAVW$8CtmI|59ZYu+hX{w zTlMT$cAKm2)u#kr$)EbP?ko7zw|Ja?D_KV_#p2zZpV?$RMp48#sfMJo31!=+Iy@M> z8g{!~_r_kmPD~B)t;5Eo=%=!T<3#O%6%Y%}$u>|eZs>7T=^^3E(oIO!Zid%zq#DL3 zKDXS=u*wdY^VH%P+ULKv-~6fN@T|W>zv?~EtA4dp*A{RbPrVIz*55;`js~uOwx1nI z3 zA-5g9+TmYJ?yFLrHT<^RbIJaSR;oHf?U@{^-zN7Jt@;G_3R-p2!8i6ES(7aDjZimy zr8ayBj$YCD?EHE_lKN(Fs>KHqy1L8w{KNlv^&d8K6;jf*7tFKH5|aS}4R*6*6p8{Q zVlg%`FfcbWEj2JVGc7b`F=Z`bGdMCWG&nF}V>2{1Wid2ilMxrI3N<-7G&wOaG&DGq z#us%5HaayqIxsksLKr6pHaayqIxsl1a2O2%vs@Zr2tMZzZlwSK00v@9M??TU01W_M zB>5=l00009a7bBm001r{001r{0eGc9b^rhX2XskIMF-~y92GkWvZ)k%llmeje*nly zL_t(I%cWDX5rZ%glYC6U6co%57c7xFWj4qHl-Y#BJ5VqMYkVr@-j40NBs3tuUN5~5 zKCbHpe>|Z)*p5B*8n$Cko)gOA&F)PR)jcN@Sf)8Xxnh~-_;ZA1n&SziS|kndLk1O3 zAdNr-0KL7Cuo}gGI~aj%vIstoU+3sMi=fFh!O~@O2Q9%Crhu7QPmCl>4oQaM03@qe z%_Zj}f|+Fmk4eJJ;EfCws~Mrhvfg#jbEG(m6u$ZMB$n-|b_=zQw{GSINc4BAjC^$4 P00000NkvXXu0mjf)EL2z diff --git a/olcCodeJam2023Entry/assets/rld.png b/olcCodeJam2023Entry/assets/rld.png index c4eb29babd71f887ae781209d7f323e6cc137ce3..3845738f0301b66675177e6da42b12322636144d 100644 GIT binary patch delta 3725 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 delta 1270 zcmVgRI{TO$0)lXItlnX-Ie? za@)L2L?LOsI$AB$vzsEl{G3D%K2UUcJGL=~gt4-95%H`8XfK>rLw*bBA=u};DgzTY zA+dOixDBO$jGstGuXwYlfg(x3#Lor42Ht{7KmgJ-9c6n2^J{D_F}m}-ax4ocy$$6r ztX&f1IzNsP-I32UI9Ss#7v!2&8;<@|PJTDEFUaACzk1ekc)pUicDR@^`a*Z_Rr`8q zoFcn`ScG|~{V3}QddrC7x+|bX8w|2mF&HhOsm->3Ag8J=sI&#+L=5gbIjWSYQ(OB& z1rQxKj_8?-VOfO=k`fmg$>2t#&QX$7l-9wu{+JES@gOB`eVa zMUQ@et9puc8bFBP+5-#;7_foFQvjmK9ElJ}1wk3mSsX85fV}4lknBVP$U$|$H}*tY zRoU|<#;q#Opjd-MaFZm1EayD(CptwAWiQ@&?}LwCeeyX-7?l@74C8vvQKE}Jh8Uxo zm||8@r(T0bRZW@`C&BgY6Y4Z+N-1YJ&9Iz*u{%Q{=YE$ILt+oktdes)m>ZnodxWa+43K`1Q)w^;23;e6 z_MHyyCUb`K@9<`#uDtQ5%$Y&mi_G2fcE(yAUx~6Zww2)ssuffp)|+P5JU*{?d-G7C zFE=*2o@<-Oe(snr`7kSC8=6Nb?s-4MY96Zp0GqjhdtuuHtmbVr-%y$BkiBo#{0^QO z?9cH$OUS>(+QZ&_YT$oEzhmg+HoD(ko4eQ63ueBSu6d`@&zzWZ3{RyutLFJ_{F)2% z7M>HSdGknTM|&-p&s>;Kk93xhADJ}IlJ8ZM=5ykovG&7UH?RLqcpL)rD|g7ZTD$R& ze@)5!0THbp>5$gs9kbjFlK}z^cC&E~iUK5II5RUdVL34^GcaakEi`5`Vl851GiEI? zGcYtWHeok0FgRnA9}%kyH90jnH!v_UI5jhq)e&?DHaaykIxsbpP!cBxHaaykIxsb} zei975=lli(a72Ng92yp<$mlL#Fse{xAg zK~y-)os&Tlz#s?%3IBgBAE1{`2O||QCkMrHI8iEqy%bN2Ms5C5_vC1o-G8nkt4XP2=V~3Nz gFb~s@!mscE!mD5#O+Qx2000002uVdwM6N<$g6T6kF#rGn diff --git a/olcCodeJam2023Entry/assets/rng.png b/olcCodeJam2023Entry/assets/rng.png index 104e48b8f23401d9bfd6c7bd6bee2e3f06f2cc05..99887bdaa0180aeb12af3fc128e87b5968a988e9 100644 GIT binary patch delta 5196 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 GLSTXtbKe>O delta 1473 zcmV;y1wQ($N02FhiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVE_OGK6+GG zbW&k=AaHVTW@&6?Aar?fWgumEX=VTbc-pO2Tav>l4E*O5djur$JPyyQy}=%T8;qTJ z5>JwuF%=670g}1}QSHBfyZQ$YvoXq8A6#@!<1x`hPUr-Gy*+upNt^jzAA0Yc^y(O3 zs032B&&W&Pphut9cU+s$Zoe;d?3B>6w}F(FKA-h@Ey&^PLdyf8ZD(EAgtd_H^2lu8 zWqIUc@TbsfSv#Ah3b&sT&(1pX25-aKdl%6Utc^!L>u|Iej&mWqCG=42-@7TpCvHNb z@fI`4xhR&Y3;-!|kwFGC8g=#(rGh6cW#f?W;S0@eRrR$ zM=cTQaO4Vp@u*ICp$YI00W%;%eI?b-1n=$ZGjJ6kXlI%O0!%uqZHa8@MlP8^3k)sf zR`uk6>skOQ!qyhfkN^SgNGv&c{R!H~uYhYC!iUa*wz@L#>WmqD;iLG8{?Og6hL~3yDJ-*Xvngh0)<0 zjOtwY!fcmK-0V3N9~nFD+()TS3ZON6wjvE?>g>3L&(ddKr&VDe-O?(3X-;|ez>HTe z52>c_I!#qWep%0`aTQ!hsd-CTBPscR7*$v1q0U~6ml2*Nu547o?BY&t@tbsRS!}g$ z);czj^di}}q`R3;Q_`zQcd2f%@J5Mjy17j69dW+!M*W&VOR9@hd`qZjL{j>Xh@_s! z^c}ID6G^?~-zekjkVb<)e5(5>!&`SNId zl6Y#!jszT*VW|81l-9Q@LHzh$mHCi8y$IFIfO&j#;~s~0=TyW{G5;%5u0*At(H z@?B`3CHF~amz#VPvij-7-{$BtWc5Q2{sR8@c%*;Ibaid;5sxnK{!iu8TI=}#7S;ck zbt8$J5K+1S00D(*LqkwWLqj05UJ{1^0u6Sv=M#zoBsgU;VKy{0F)cD;Ib$s}GhsI^ zVP-WlEi*M?V_`ToV`gDwGn17Ts|z(bH!(CYHZV3bF_TLdbO$y%H8nahGn2*_CkHk< zH8nahGqdy;4FR*@8DIz&bB^Y}00006VoOIv06hQ=0A3{dDCm<`A|VGAHx7V!&eW5B zA}D{GNklH_^>5D@F|*>w;M(vL2H7{&Z>)wR7`rBwLq9yy<# zgmAbHH(`ZooDkvjdIJD>WEcPn4x)+Rbm`_ewUF7^D0to<{ELPD+^7A`)|!=?oltg0 z5)w#Ki+_?VE&)m3tj0cHT%x4vpyiTaf+aDjLA!y6=YXqz1@G{No;}D$ltn_ bSFqVH=yyhS`~g4!00000NkvXXu0mjfr2C>^ diff --git a/olcCodeJam2023Entry/assets/spd.png b/olcCodeJam2023Entry/assets/spd.png index 251634aa8b41f9ce8c8cab5bdbbb8e5f9a9615e5..b2f6e3d0935c4dcd8328a7bfd88f17e5e0f792b9 100644 GIT binary patch literal 8542 zcmeHrc{G%5`2S?hE?Yyk&|7583}X!0_rV}ZBr#^j7!1RVC0h~MLe`=}DY6s_iDb!^ zr5albS+Zr%zQu3oUC-}(&hNbE{J#IabIvpKJlFlXKKFHf?(4qie(or9Qv(iGAyxnY zz=1T>wV?e%XczZkCfc|8vz-#!eUHDTHN^t$D^BwAa3Z+j#3@%uIB}dG!3hBH`%;!p zNF77Oh3zf#ks0R2<8^q(0)nn9?*?WKVA|UAr!&$bZy)!)-M|RBBRKYb?dsl4#op-2 zPoj2moi0T^%Si$Ao{JARC-Glv>L$0>cOQL{{(5zLAbdTl#o+sLtEhdZhx(+qU-d!} zvVMDOU31|mdNDsR1Nd!qb7yxmkOSENA>{H&3qPl|t;!Ka^XMY}@yVb5PoJ#)HdLN7 zqeu=8>Q>(ymnumWl3G?W09%|XvR$!>%>APM&3}Ho@5}b}_3ib?35t#PwU>5K(i#OO zYv9LqB|nsMCMqDWzitFP9I6elc*g^LsX?DPq7k~O2+xFWz5Sr^ITfGyVr~>{yN%eb z?Px9#tB@W)<2GFFCeGR~$ z`&9%VsMiUB)v~;GfrZo0?g}&pTo}I)=$%#mqdxddO$S#^ZSt1hW7Oq!?sq>~l%0Vi zVL|byWmE5bi>rq=jXPF~!4tc`88O{(s~OQns!4y0B&Y$6eqcZ&ru_?))3BoVuEU)` zpe(8F>dwsW_wY$;P`E>h?08eOw_bs%)d>Cfm-M$25=fV|KuWa>Lzx<>pLChpILMgm zZ_U=(p~f2w7b>GnFIgkh&x`5W({oGY$jSaDB|q$Hc*4?33Tkwi;dw$j1Gcm;6 z$WlO%Y?Lx)F4Eqi#xwu8q+t?ct%$pAl#gsdnO(<@U#g8CW4fV_JaOB?C85&@oSoy6 za-qO7d-6E)IbWVc=RJxbsBFNf0Cmx|I#x6w^o?<@X~0Z%eBGn#3CzA+azIQ|no|a@ zSNcWA{DgHae*C*JnZ9u{HGYww#2J@HG$htrFq&!T&blC0;IlZ@;-bGIYcl0kj&&lDLahjFZ zVaqqO6r1!tR>G0=DLz}<*t_w`D#g4Vd_GlcQLh%d`)+YA9?9w>uD(vfIvP zVR&bO$6(K;b}N?<29CSz^*Ju1K{M?=odZ1dNF>NfP@WiseOytwE-N`*Xy-a-xqJMm z^h@zV>9BI`&L$3vWPXuE)uoJ}27VkbQuAq|XYFLKzVFT*bWy?2$}{h@!nl#Uaaf_NU8+qUr|9vn3P9>$HjMK8MfrhrL;#mx-S$_GON<&xt>g zc}A(=nE`KhX|XY>#$>C%>|HSjUDjD;(KKI0a>2lIkd$vQ1EZ4vTkR1XYz)J=w)9$H zxk|I*DwyXgXV~@$9{AnVD&M^$OztI`J9@$cuEZk9C3(o<~dx+W3xJ=_Afe2>`a6+$ln`1tROYNgKYn_ItC1UtjD7mA`-fsv{{1 zTIFP8S;J5x@XU=}#QF6mH!=wt*2leCA9>nb=B2qxV!f$!XyU9|dbqg-k-NW@aFW{Y zG3(*$`51Si-+wvK{j!R^|{lMwlW)#Pvn3u9LU0kZv?!ZmC`qK@AJ#aNx=h4AW zCx@OUj97Q;+3Ga1vr%DmK&=H4klxAvUmX7#9>sRLV979Kj;p`>pY*&7aTn3P<*Nm#Nc zbPt=~sXq6j&qkh)FW&r-7-(uYjiJKA^2CbBB#WM1SL{&M&9~Yb!>7`t%4)C4^a4V% z+*}{);^QriRi0=I*+wrIN-&`nb?{y}ngD5birKt zU(c!u0e6+ZH{W}Cx$a%v8Bq_YrnqEZUMfMyEyPnPI)7N6Pgwz9Dr`xIR0R_APOLj9 z!Joq8m_w9yVei-IYxv+!&1M3fU2T?WpRYVR%r)bwTcwqT_rAZre7{g4FQ|1=wdX@? zAA`@huqwxy4%<&B_<=L>fk%aNO0sLIXQ$sh>Mg&L9iCT?QwvD;W`BgIQXGi5IN)ikW>=O+vNU!d0r_-SbGm6#!K%rd z$bv0(Spn>52SUM*J+k@3vx{d^KmWp4Q}w-C0gPPY^r)+S$TG_LTNWr^Z%{Ok+{Vm`E7lLJTwK zgvIitu^@0d4)d^4yE7=eU>U=sFc)7ZL^2^)c4@d7tunQ?fSwPMCT)8Y5VDFCD!n zkxzgsX`UR31Iq^679qGf`%Tqz8fKZ=JbkaP=|TFwJnEP}(M6zw6E4~`N25D|ul%S5 z!FF-qO9rBUbLcNGRT~`PzGRiPl()v#{CvWn=mHD#xo0Q*ilL(vCMc(sdE+VN9ItO^ zG*FZQ$W(IjN;&RsDj@$AG4R`c)*Mprdyu85j#kM86&}`Z!2%X#><7dYF$K<{0ooqh z;cw^J%dg`(1N?VPmQ6aRwm*jpX4Y?Hy>|_p=wT2xh%HlGQ|WRFud#SS=l}xao*wcn zm^ZD6x_sOgfo%Wy5XEF%#s$$zIG^7QmQft`d%{GiW|RmIi9YkdRmWrTy0mc16SKD# z3!Plj>@GwV4zaKky}jD1l68_*Hlw8m=^rPA1m;*=i-2XC9|Y68?=%5sF`b?nIrg@#sG(E@?3(u0*~nYl}@Dx$TzEQ@9A{OXB1PnvXPH4NyAD5%@{RCZ1t^#nJ+L zty6u|Wk{=3ujWCYYDkH5PgLWj89Ya&eGGR+I7z-CRzP=|_J<#*HJNCHi)PqLzu3~* zeY`ba@_X|W6ov0ZowHEb>F?Jho9n80wcNROdyc8*huR$FWrx=3i<#`jZ!?L}$LmcW ziYM{Qd8gUQ=W3LDfBw*Qh&7*^PydYG&?4$@wzS|M`tyY8y$7Sc0I;LuiZgmqTn2ainHD9WMb_xCzltY{LQya z!{`b+r<(Y(UMO1Kz;n>6l;%1w-W*fJjkb^2#Md-Y6BP6SGwz^z1-=mL0)~O59PMVw z&!9m*(34{u$w6!xA5j<6`Q6Tk@)qT?9&uEj`?zt(=D}2#x1o7r3~z>*2tLhdLBT8* zMtzlV=9bzN?xRb%y+O8^^=0Nh6no*hnVxXKWzSs}hxx1)`a!@KJH9PVw($3Eyv;|@ z#C)b^-J{b4t`Hu7!H6>Z0CUx-hmUpns$qaIBJ0_oQ)d0P7eb70uMUeF&L!}~y-|-e zT2s77t!;NKW9XT#?vQf?w%ZgzBAVIX4SB9zw13?9Ggkkq=y=+aOde>2N<|dK#Z5F# z(oJIu=jqZ17{}Ts9`wC%KYX)di+LL|^?H|civ>KRyAPCbo zT)6#HDD_$gx+k6m9yd4lqwefOM@iMC^J4b%yJwpn>RSTkjy-=UJ_6AcvK|7LJ!Iip zDznyaozT~LIhkv2ZC$0w$6cl))K#A2I8xD_;iwTm8>f~E7x6QvLgl%B8*Sk_)xn72 zdE%~ttGfl0zL@PCLPDU->%PJlE)FNZ-n!@Amz0E(}o!m zEnQQ!=r_fU**-sOz|+7W)PH(J3B^pYPSOiR^0)==+0&cSYiJj9`UDL|)WHJgxds() zUufsI1$>gfO>L~*>A#I6yX5oNMZ|oRb+|53@ij4s-^`dr$swGy%ghu}xyyde|6OdI z#oc_-fY(Wlu_^K4&2Xl!w@9~mV<{2T z=9rW6v2D3zwC+XIX@$7QrP;NBMfA#tQ#~2U>edq({G_UgQ%77Vb6=+2?zcrK9xF&Y z%`zc5qQ^F+qi;T-W6(6nC1NM9Eq}Kyk0*wDM5XB64%sAG@NNIH6jpYo)f<0FJ`T~? zP2Z>C^p&$Yb+s;KJ2hTlE+7f~z2&hLR{^7X0@nW9a7u&G@o%1)H(F-9;y4Sg>lkxe z8?4M3E8NTpTD=HN;d$D>d-8CozVEwu=wj<^ql`k6gY(Qu z#x+?;oy5`6QxyWjJJy9N6^NPXVVT3BV&c!_Orzy2M)wl6V}M+7+dt;New!B=CR(LA zt~3Dj6jvz{a$`#cp?my?!k}TECeiI56Vn=HFExKsQw^++S(05RUyTcXvPbTLMWy^>SjX?lfyaT|YQ#mzqhp(~qQX+7;|)yqFB zI2u{_Bzd7jS(f~Dw9s;L0Ewae-$E?mI0x!ec5!4DhF zZMdQw=95>L9)eoiH+lNG@yk`36p3c!uqI?Ln6DMnwi3-MpD2K*+ zIO62|h$PyH6ab*A;YUJaTyYd}M;xBut|qZiRU;uzz^X}HP((pcBpsYH!O-6ech29` z665cRQN~JWsI#j2sn7_BI0{w|06yk35EKT z-ktor3N$^yerOUHDhB}*iQvC`kSTgTG?L!~`X4>Wmb8OAumz6n;q8UN>G|N?DUyGu zz+(RNCwY6h9i)TBfN^d(A`MEW^$Pt*mj+0b`JW#965t6$(t#IE?0+CB1gF2m`bTX0 zEeGlRJrJ7vpS=G-|B?Fvn1({3RCGNs-uvMpb=4&H`&YqwU1gIfedQCSh;2nFF_ z3Q!PC384f+V3eRBWhe}$q=be+F%Zb#sF3bt3fdim+oz(D%MoZi%JK?WM~J*42o8r~ zX%vcR5E=oe@i;muD`3ztWe8f~Zxm);1X@+1-TofcJ{6Wm1%cz>iZBcu1ckyBK`=)p z1PB39!hoD`ScDS5RP;T(h-lhy5{PI#4oq^#A2jR>uA*g*RFjaG`xW?s z#oP@|aiTfU<^aJR>)}iO3v5Xs;?7af`+7p*$_nyu7y=4G$V1?Y@_&J>a9(6uE$*{I zA#w_^gO>e)QK6+nlNP;SsWgHEJ1rX(9WNZ3;^AfK;o+txu^)o?zUQCKDB6U=qA6%y zGzCW^g~%(YKoBbO2umpK8=?YH20;{6{!(5A<$)zQUHN~Z_ot7z>aRgJB#>$SUpX-S znp5X+p1+=cJ-QJNCX=}M!L(38V}7MTM*HBf2XWH4el=m7(e8L0ZTDFbFK}pX_80CyFoH3#Wyr=}6OxR-gx3 ziJ$s?sHFdi_jShYj{{9I5Cj4GQ!<*k;NO!4@2?ntWUC7Pzw}T&0Q_xsQ{4e%EqyDdxf2Hq#a{VXQzf#~|f&Z(n|K$2t3j8bZf7SK> zO)l2IUZ!yFv>lKy?NzCr4U$WH&0=yiHqZqy17-k#`EF}DnuUdAXhQ}77561joW=JyiWfpSkJ3P$ zNL?*U!{(k86e}H+J=|XRhkN5V1;iMyXg)Aw^zN~0sKWqI8rPIru5jNc#qG<&i7V0{ zHy%8`R_HV3%F12+0Z66;IL*Ia4*-zfi`3M41Xgnz-T`9X3)#AYh2o>kH>!*S0__6a z_;x)TkAIJ=SNCsj9|+11X4%Nc2k2zF4CK5tJQU4uI4%)qSSz5c+=roDpNG delta 267 zcmV+m0rdXfLbL@qiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVE_ODg=s@W zP)S2WAaHVTW@&6?001bFvl$U~0T$CfXDR>y00v@9M??TU01W_MB>5=llP4e{2Ng6h zYBYenlTRQhe~U>(K~y-)&62SW#2^eq9duup`Syx0i@JB__k2r(kPlU~QzIcIq<%P1 z;Elm^!QBscKL8*iwuspD<1!Kd z$y%tb3`CHG8X?(*v$|+wY>wc|XUuuhfu6YhAEW~nA=yCG{zvCstxacr8b32~PM-$k R?3e%m002ovPDHLkV1lcHWnlmS