From 69a6b1300652ea61758bafe22c0e8e0262665f27 Mon Sep 17 00:00:00 2001 From: Richard Zink Date: Sat, 7 Nov 2026 21:17:17 +0100 Subject: [PATCH] Imp in 64x64 when close, 32x32 at normal zoom; detailed sprites in their own texture Co-Authored-By: Claude Opus 5.5 --- art/generated/imp-sprite/PROMPTS.md | 15 ++ art/generated/imp-sprite/imp-64-preview.png | Bin 0 -> 19704 bytes art/generated/imp-sprite/imp-64.png | Bin 0 -> 7414 bytes .../imp-sprite/imp-hack-64-preview.png | Bin 0 -> 58794 bytes art/generated/imp-sprite/imp-hack-64.png | Bin 0 -> 30912 bytes assets/sprites/imp-64.png | Bin 0 -> 7414 bytes assets/sprites/imp-hack-64.png | Bin 0 -> 30912 bytes src/gfx.rs | 221 +++++++++++------- src/render3d.rs | 26 ++- 9 files changed, 173 insertions(+), 89 deletions(-) create mode 100644 art/generated/imp-sprite/imp-64-preview.png create mode 100644 art/generated/imp-sprite/imp-64.png create mode 100644 art/generated/imp-sprite/imp-hack-64-preview.png create mode 100644 art/generated/imp-sprite/imp-hack-64.png create mode 100644 assets/sprites/imp-64.png create mode 100644 assets/sprites/imp-hack-64.png diff --git a/art/generated/imp-sprite/PROMPTS.md b/art/generated/imp-sprite/PROMPTS.md index 596eccf..80efe4f 100644 --- a/art/generated/imp-sprite/PROMPTS.md +++ b/art/generated/imp-sprite/PROMPTS.md @@ -108,3 +108,18 @@ The game copies `imp-32.png` and `imp-hack-32.png` to `assets/sprites/`. The gold sack is not generated: it is a small hand-made pixel pattern (`SACK_HD`, `SACK_SMALL` in `src/gfx.rs`) that the game places on every frame when the atlas is built. + +## 64x64 (2026-11-07) + +The high-res style shows the imp in 64x64 when close and in 32x32 at the normal zoom (both from +the same raw sheets; a 64x64 sprite shown smaller would lose pixels and flicker). The 64x64 +sheets use the body scale 60 pixels, the feet row 63, 24 colours plus the iron greys: + +```bash +python3 $T raw-1.png imp --views 5 --size 64 --colors 24 --crop 0,0.27,1,0.72 --step 9.217 --feet 63 \ + --add-colors "150,152,168;104,106,122" +# hack rows: --size 64 --step /60 --feet 63 --palette imp-64.png --outline-weight 0.6 +``` + +Results: `imp-64.png`, `imp-hack-64.png`, preview `imp-hack-64-preview.png` (idle views in the +right column). The game copies them to `assets/sprites/`. diff --git a/art/generated/imp-sprite/imp-64-preview.png b/art/generated/imp-sprite/imp-64-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..66061707004fefd0b6c85eae4e1659ca30da4ce8 GIT binary patch literal 19704 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 literal 0 HcmV?d00001 diff --git a/art/generated/imp-sprite/imp-64.png b/art/generated/imp-sprite/imp-64.png new file mode 100644 index 0000000000000000000000000000000000000000..6fbb9b3334eee007b7ed12a3fa5e342e3ba1aade GIT binary patch literal 7414 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 o`9=2vKk>xOxVO+h@rU960iX1EPS^f^^fs z0D;htlte*lgg|IQga9G*P!a++zT@}ZJMPE(*S(Cv;28|q?EUQZtToqMbCU3vrRj;I z5=RdmI&|XxJtLb#hkh9reExgncfoghD*EFN9h&jKZ*MMxx5l|F-axHYT>}og@_4sd$fI%cY~r-lPAzJi%BY>0JS@0{ zLxGb!r-`_FEu z$yrv5Y(ss>_ZBzL*$RGWvZ|ay-T~2zFnq#DP?LGnwft_(X7f!uA68&P3Ec9)A9yDw z?60h}vJP`1#(>p&h`0V71br5_c6UHUvDX6w&oVRRbOqP_S7-Iu|K1L@&o9?N(nJ!_a4ldH;Bx zL#My}F8Sl@-@odn#zz*O1geZ-q$YwlmNKVf@>`zwZeCTiDvwc(q3M6%PO;#ia>B}5 z?IcE<@Z>xmp3EK}s5|a8ZZkaaNX%>U1z3>nM|6l%ySR6*b z$5df-NT&q!B6tlj{CG##7pxE7%rz)2kKr{<9ekdI_(+VbGO`h-Ic+o8O03LRsPRW? zPQMpE$+~`_IVV%$TGOiqu4K_Np2p`kyJ3g69J~iT$)DJD~!}W-84eKM}{O4V;MS*gSJ!zs~E* zl^dp2h`z=&L6$K!z?1vx4x1&?tXo#eup7PD&F@9;=}xA<;*}_!;FR^M!eZT$JJ`mB zE#6fnY)#5-cVo}`lsg@kR&#-a?hWACV0)vM8%|pqY$iRro4RoZKMP)L`}%66^k$tQ zK`$RLS(^WE@AdAF>l=rWRVkBg+8k~lR6_^o)6^4=IKo@m9f^{uevDtVv%Ndlu zKQoXzy}2L^}>t2_w^X{fw9Uo3$+f_F|l@1g&3@xFFXmAz2rmVV5p) zjGzpA;rY>ZpK}wgG9H(DH>`r$+x?jq{ot-1`OGsy?sYJ3*|>Nil&&y&X{{Ks<`q%D zK+;;GFIqLxYl@z(o=ci^O#8O;!mP__qQHM5@}#PmT0M>EQcL*3C`bYxagPkYyHhh>0-llvM#D~3SFuP8m;!06`X)z2-7o` zIa2zbUIYg5qRgN>`YxlOEwKovh_Fsc7c4~?nZEp8b8nVpgaAJVIM#ppc79965s6N6 z1)`#Vd1kpo$gKjCjJK#&hNydu6VJXEJvrT3R_3z1mz4)$o<}@%gZ!*g>v{>U1YZpM zejtm30m7+7?oI`=%cW{|p%nNW5I&7V%~g_-)v#5A{$HkTJ9hPEi&mTi?Jr)#RZMoQ zml>s;>1ZKFQ~`G-%^L&dSNpYv!dpTFk0q*nvR>s*L$~G$RJWc81j=YY z7bXCuwxFW)bqf$>z1DLvMDg4eHgo3NrbC(`G8{f;sT_sbx$7y5TqK$t4$g}bDRl8W ztq>V;bpm(zRYxn*49|7&3N=WdYPbiu&p|olx1bKIjs&jzmv+~IpaVsE{H@3yR_=qs z;^x3O|FM_y{y7RLP`^7MGoYLCJ~w&Uff9qb_f&?eIg8ge4%`JnzjuX)spnN{%De&a z&W{qN`|7(;=)0N2VIh*JPZ1b?e;_i2_3?bvJMf9UZ`;Q`QW!bWE@-!@!~-d5?xLLY z-lpSV4JKY0DW{D5AcMRaHvlRfh<{g-MEa@)zNfdRvql7}0KHToMFka%Sq!b=R(#U_ z8_X_pug7>g zw?yY2XN6%Lu@u)4(pVzQvFnCx0iO2Hf^BJ|s*Dxep~+7+@xv~(EGBY&FFBd|=^4cK zN|Q65($lu7zv`FdtPr+zV)WaAh`po*l(z)qlAOJuK3yFXE;@xY%%0eH$|u*Sj02ZmZ3`^|gHBaSmdK2-b1wu#Ba0 zpk-G#rs!lheg4P0z3SXY|HQVNQeIO>`#Z@)1oPDWx~O1OpxiF*N&sd!-=Jl#S{|=i zPOD}lFtW7+ULc*TuINuX0J>GVS=9t?JP+!&AENxYBL8!Hd@MzV+M|O^Iv8DziQB7v zkPBm#{zi(yd9A}yzII2xE)YlKKIF}NTwvwW&HXM`I65sp zwdd_1>4HQ-Z|4WS>xC$w2%Nu*CxwYwvk6}`!qTgW1{VKjOZ3IfZFk*Kp7KDlJcGNn zMb!Ng03w@J$0z4i-gy1Y!@=NRY$E@b3DhH0&ud1BxrcKj`#~h~VD-;1)!!SXHOq@c zTt?e{gJW=IzZ74a)Xs{)TSgR(OQ09!-0Qqsm}K4tW$p@ga?`7$3As>H zoR2fM;gd!p?)szshbw6^U)B24o&34aax8MTObr8(BeI>EgP!_AF$%hzTUh$$$L(nR z`&TtLWc`;#x~@OAPr5%C?I0$|G8y&3F`cwo!pP;y_s}2M(^nCx_-0L~7um9fQjSxW z?lMo<@sfRu%wbHAT#f2E^EnnS!Vg6s$MyT`1BKd@E-Pm~21Ehsg-{C>raGCvGrJ`` zT)z>^>!fZb=ejik;Jm7(oF%svbev+Iw&EMROXw%%8IkzC z$4>d4hEl0HTisGLA+mTHG=P8qQaA5mfA2^74gGxBAYZL?_lZxSOhg`dhD(kWpu^IH74rn^YMg*oi6)_~3)H^SdDAZ-F@D)JP=6xxrTD1Qa zt4D+rtcE^MGrsHU3Yfo3d(BGz-C=O(Q*|ZgvXZje#Bb6$LqW-Hib6i0TY5|{_?Y+|N%O1{wB44A`mgP_UnU|s}d~6pb6B%swlzbD9K1CePG3wDQEEV*YgV5jt zHu@;9?g*kSQA|dPVkK=mME%LlOY==9ne8CbfuGl=*Wy_}ndAM;nK#LqV_I|7l}^H$ zk>x(HI3LR7OhPQyj;W69WCa~ZoHojt_tTaB*Y=}$G-_dbDE%&8%~$^)V~@&|M^RpH zqF!%8hR_}TGsDe@FWAkECeLW-GXtW+<`q5Nj=THi^i{(}FuO^nZ~`6OOeH`&>RcYh zZCtSywNh!^Yl_>{>2*Jd4J+frR#_EjZ9w>&c+1OOTI3qUr#9WRv_FV%j=UEUvj?jD zC5vf}7V6TnaR+zm+?T7isP^|hT-z~sKQ z6`y`m)UJ%PBlh3ixL#X%q6DB)j;Q|XQiKME?})o1DM1-n=K44q`Ao`pwOV?1jPG3B z(6{&tcKllYiy7T$&XMBP53%j7TCkG$QhO9P!3FA6)a|4-huUqI8GpHsjf7fL(U*_jfAC?P;T) zZ(i_zeE#|hjA~MCwJ=#e_?6QX60p{{Ug7KruCm$ivmerGQP{(8cu5Dp$xr!s0BT-L ziicnN-Z35IZioy4XUd6%0n!*o6wV-|J50-Q0y-k?|@$EWNJ3U#KF$Ik3H$ z)jv0@$ooqT@`4C89zKl3`F#gFmBpkaqu&h$jLY&zIbJG6w8okfsNdf)W?BAVLU<(X zPjrsauMu{1sQ@orP#9ZGtU=N6^1B+{3isw|y#e(yA;yNn^aKPMM*}km-gHpg7RwBl| zV?SuDJJ|polcbfd4}b}FHOhRkMwPWrP`Zj8*YksvQ*F$OdRb=_O&BJ@8|2WB_e0U%Jv@6use-_jA>kR^6d=Wu(7v z^3ip5-c@JqYvbQsMQhNs(=t0rQf*@06@#F#%hj6nxzjrJ3UF-JH zItir&@=HsxANbF58RE8H?gMJ-)k31uIShxwx^rTu9lIqb4>C$%<8~-xtO!h!=Wp6x z$vlnDNDN7ReJZQ(aD}7E>DYno$!IaU1VFWG_TG!K0g}i*P$D(g@VQUKK(mAv4xrzi z?ScbX>GwMXnF`Kj5mD(X#bgbaIA+F(2VUg;rLCS?5<~0Xc6`B@ok^n1`oI?dDte}j z(a4WwLQXm2L$7yXYX;-AUg57n7uyFI-ycp!HTQL5+g#T*b{V#AZPX9Vhxt{8K@s#E zBW`eZ>cAZ5P6~luadIFg=v5YKOK_+|a8!lAK(>ieG@YUkpKqfZu z!EefCZ;86mXuaRRy)BKaa8SLB?0Um;Vyxxcv&b|1l_Pd+ZCeN1ey`s~-N%C87#P0? zT93U|vU#JWHt1913OH%c#7#$E`7ha0X}b38b!u4K)O^tM(L(DIp@b(7kPA`7PO>Wp zJhL(wXZI5lw^l|lVg0lL%w=TC>_ubsMBZwdU;zzUKqppy!T|rS{4?xwNt&_M*(Y+V z#_Z87Yh;LLx+#tA{V2*k-&M8~3X*ZmI_FiAty}D5!$XN2oAfQY<6U?ZOMg>6uvdPB zl|1w7LqN#*XS?_~mYQ>9Xwbsg$M;E6vSoTr&A=|&(VaNNx&eqP2lEfokpbJj+}O^w z$lhWH$`17p!xn9!IEA0b0=+pB>=_*RmgllW~dUA-AV!BPn>^3}D*a)5q2@)WClOf_7n;GYe)+wFy zNBWn-zwhMY#p?zsIP{-^=oOspFSw(pw ziH^Qr$twqF-%v5(3i}kFo(IX7)S6!pKLftqX#aW88w_N3Yh&rGE&7C3bBNBHZI=;J z;%7{vL-S)~m%irFfR}M}E5jr*$M4FTKbvm%P{ushv1QA8kF)1RP|}M8rF9&3@KE4Y ztm0?%aA$a54?)z~z4Wc1qt9g4IV9bT%^`p1zCCZ_5KfeVLFLi&2WVy#k1@Lxu zf~w!LEZ(Ke_Im!)^^{4(M3J1hl?%* zC=y#Ac?Wk6hZQIZb&C|^{Ruft1zJJxmg(ZgVQeqF8h}kwMv~ntF35#NN=tN1`@g!r$IrKEntOyS*R&o(RcJ(@}TFF1135<93bbpKoHD`oH z;pqi--@Zr<265Kw$VVvpNqHf{U5T;qc6uTm25A(Ek985l`c;q_W;i8V3)*)1D-J z--jB9@3k%Z@OmBx^Dx}~i?}WugQKHJ+xQfs-H(u6`7sNi*q|N5r>8S#6r+~0cOk!m zD>PJy7+#70$mZM3I*1ajH{6axAWfX|rP~- zu2)}Tx=xF!yR>ly0XG=ksh}{)axX{&qwDA6^H|)`!{f}?>c&=0_hL5t#CN=@Qud?l ziwoLUur(sgp2}H9Be|75Bft^XK|P=_)mAge?q$!f)WoD^v4UQ|nR%tOHsx$*`Ea)> z&M<6UqlMLs5qYKcA8rbCUv64vG-lk6J)iF}8$tUwG1f6-SQP~#MF@rwJg=AbKFFj< zrFv}tc{rq;rq`MHC+q9=@!77M$&@&Un+rn7`Cx+H=m@)Y@A%0G16_p0Ojc%z|0-ap zac^MmI>KQ2U<$RD6{dy#O|~4e0R+41ebLVZXjF(^$;|{fDmQ>%7-u7Lq7CAFYTmCg zT|0#RB`?Nm4*L|V>lFSyL#XS8tH3mR+PLl@h1ZYV9G>sLysxstxq^dQyy**LTW^{| zkrJkcXI-U{wnu~I`if>bRXL?$CAF#Dwv5qNgIau;fPXFY}gKFmh*hp&~J#A6n`yyh7C(U;3N%1;+sSblOdoDR2EEsppdesk) z%-WRRiMkgBE(@GZSn>}_#5(89@2I`zXmuLM# z$SpL;;N&Pxz(C)t8+dE`*zS{xQ1>s(Q$;&XPnD+Ehoj;4y%u)j{%F<-DSBGw}naqcE6IsFz*-ohm%d( z1!y29iSsa1Ounl;Kb4vL-fAQ)Te~HToIotxzA40r@RUl@RNM1z?^s5P9P9`Et{)F;FEgRPkO6yjsni|z#QvasoXTs z*k8G|K5GUrii!5_c)#H~2W)iJ@+?=IFi}0KCWD;&BzNuf{h3Fg>cVXsvtY;73rKSZ zsiM0>-1A}nxXM*^N4CV+|Dh_OAD);0Rgfz#{w;<_F$+q^L1TTM0f zu37O$llakXb%!Amq=o7zEw+D!t)>(gSpx-#8S2d-S<9i_qqGVFaMf8*UyE#=u#Qai zt_Z*M@f+H~Cmm?0~nJziqEJR9-665qV)M z6yb{B@NDB8CNE?-98i3-|Qr0t&;b6J)=7|v>fa6YTOIW;elROu#Jzk7bZ z6`Zl=wJlWQU8Sc@xlrv^20PF)e zq4X6G$i{1?xXdj8B{??f3&{D_-kSoS4qw4QSHgwXJg$Z0m14l&K$cSzfUU#8UMIp+ zKVj$*CyG|*!NjOKZ=HMl;jcM2PXDCesZGQa26q(Of%?pJ?ZH;Ds+DH-<;rf((s#IR zo>;Y84Y_04f|k*i;Q`K-iA$wWnX%()So)44t|k2Vvq!r!L$ykYWra|)VCiEqA<3qE z@2a%un(nRJK#{Hf(H-ssmH)aAN&pC?$X33nFHeoO36xnZ7Z%2Az86lh1AP1kuEB4) z0f@W;UB4|C?+_Ak3q^neIE#1NkMOGnjcH)>tGD^qBLIh09V})?$4kT$`_v!f-(R|> zvy1Z*mZi=%>rTGlxO@+5$k@@bMHl0(V)|H8d7>ISo)e|crh+qH-&`|D)m&u$RVu7= zy1D5kf90-cq-DSy68&KRtI{-MF^Fj{B1Vfm+`Cb$maggyH(rh7hNUVWB! zq)0)nmH3SyXNC3@2|AxqUUu~>=9}-`@Ar$w3292$1r@>ys}lS`08lwJ-52oSr8{zy zKAso-vf_No-Sced5>)9KuFF$Cbhu}me=W^015z>3_-+BPS15?NDi9dlbo%MmOsI2ZZLq|umTA-MQM3iE zS6ZCA;V9Chehp#{(`CXk|DdSHsNHJC?(DLz-01HaZ31xmJ2ByxlGC@E=k{wYc*UEe z%-&f8+^SxNlJ7XNq+NJY%`Qun){z*yT-Dc;Ncw~wxFRBf#@jPb3hp>CG45lw(puOj z$u0KnJ+gtALUiN*Zqv37s3hWmsq^QbTC#L#TBytZh$ z8?AOD{CLg5P&y@Sg=3LOzWa<*m{8d9#Y-(w>0-6Fiz0xFK=%Uklg>yO!D-#-lz*h2 zt@uQ3fnR#s=vMnME^*oi69a#+nrmGzkP%6|aTMtowfnsW<=MxCwb5EJrzm%XXQg%7B$EE@jq^*nCI-F>r@@0*nGYpPJ|F+R+M?Uz%&t9$XYlq0M6Z ztTf9-u`*)n60|JyM@?^Yqt%tKl`$*SlDrk$@i1 z6{?(?dFp3fQF762%EV){?9IT8d0q0FeZmvg*FW$!<$5eoe-Hw1IWx!2HcM4Sk;4AV z0WxZr2l*etawi{&UOQoBJh2VNE5ZTU#G00Ca&iO!3_!EK3lT#yV7sH)Ywr*s=sn=Z zr?U_czP`GSvn2me8aqvTOAgK8VXr1Ncar?wFyDuBO|wi@twG$ z(`I^FNzaI8A@t*=C(n3^)$;|y2h8Tig$*o|`NUv)>}wwQJ0KfKbQZ#nsy%ieM41ip z*LVQIk$w09{0P8fbVc6X|7ZL#%+@}caH=bN=&U3`EjVXLYjB8gfuj5PQlMaN;Z3<7 z+ZUjcBP4oPzHrjxU|;0)LwV7rweUg1%@UX{r!5LMZh+SMbwrG|Yd?{Mt(JX)eL-<1 zi+?U7$KmF}Fbi+$djc$CmJ&s-HczX8y1x~jWR2fjiav1n)r3hpU@GMW5>?Q z@Eii-VeX9>)K02lv{y@?YF_I*Fn~Vk0cZ&Na%=!D12>bV>5xQyQ1NMrDaQ~CiNNIw zWX14&bXuiy@>9nHf%s2DO1z^85I;=*a!>7xZc4c4^Se-MGkGbnad;nOgQh7^cE~sp zN);gHjUlhJ)Lq~at zU$a|3jLw;Kk!cZbQ!s<0Y4oT7UFRJ4vdKTo?j=7$u!!y>yRP%xoY%`>`$&3hkEHYpJ6}5+77hehl*C9EIZd>=s|ao9(T-INI)B zQeT?rG#N2Dyj>e?F{qQ3RY2KSD}RHV$71xJBZimm@@}JUK2bgR>=VZATD}GTGXi?; z`*H@R6(hp#i^r7*z6_f9bVfb>h^fXGY)G_llNHO)@=08_m#I!FfDKZ;&rT0DI01gE8+8wKPzSYwr zW9xlg>%J3%P>u|A9<9#O?SGuym}1pZ;n8W8!;*R@goAst_m!cIAgZM*io<__aJ^ACoQigxiE* z$f1-Qu3{0yhx!E0$78M$PsqfTHNsLS6EXY?P<%S4A)0QC@c{!U98_VAP(bGZp_KL* z@%~YHKvqD>i?%1{6{V@~)D9~8=7Nm`?eyD3WnI?$ZKeYy!UYNQR9Pr7&amHbAsk0c zBo@@5%NGfVPuR^>@#z~9Xs45wl=Yyxa=(rasPdzT(mNn)S8TQ>eck8=UXfIpB0vcZ z$cV|C+G>7Os|`P?ri|H$vQ3YdaWgE$_Gs_9q`U{06=?H!i+3d0$SZf8+B@KsN0ghy z(jy%**umTNH5?<6^1!}W1^gWs&8?mCiV8hF+gs3O_4+XUrNO%U`FEzzq~s%R${s`( zO)2r_1*Cs20^sGBdR!9_bB!YCwMC%}ZQkeXwZ2k`MzTd0G_Y*d&Rj-<@1u(Nd>QeMMvnTxBeAHljQ* z=oSin|L>F{wK?MR0al_mD>956+fh$jNp{G9!3I?iYJ4N4g=;a2F%Rx0e>@XN3{yJ( zLr1EAr3=G9@1OGFYsl5YR2hOu7rXXbT&sY)ej6lypj)rYW2 zH!99_Nr-W4DfSIM8pC~p!ir2X|EKpOPrKSY91pOrgGYQ>=8B6;9y9b9^Cf)Sj`6*# z^LL80|Io0P|4@*)yUVc-!0{SPN~ByViX{cVMX*Zxrpwfx+Zv9WFC=W}Vl3L}*PHd| z4~(lbCj%k52RiFHV?mJVVhJnbdKGlwZ(w&kv_o7|wA=tm!V#sFTV45V;8@3*sSj>b zbB4-mUxOh-iCmEN6CVn&B^i0afw00gpmelm$@x2!5cF#D;l)umy_bIJXbwNwMl_{u zY+rpv|1PN5pC`L8QZl!kJ7a{P;oMW3RX^}AVmEbCZfmLDD+AgaB%bPajvT9?kFm=B z^hm11L?6x@n@*q6F`e6J`dF~b&6&Dfj45BPiymUd4YOo>5oQ=O24PD~28|l>7ovd= z6yQJA1^osvC}hn#h}$gjdBsTH2GE;?Pnk;~h813!OKk>xN@g1pR*Q!@w9|a2 z&Xzlo`-Y(|F$~mda%{$G)0`d2b!f~A$8g4=Px-iEo!UcF+gpV{2OdvGx^5voa2=>) zZqTW9<^1T3qX&lyTEeSv+GVAY+V@v`Dp>E?im6HcU_#q)*eg@-eVSs!o)hZmU_C$b zeLy(UptN9M?Fq=Fsiv2DIB3kPh3Hu_w|2@|@|I6$qE9VaYAGQ$a%?ng<3Vg!GA%Q2 zv7Z)<$fXg!Y}{zCFJUd1kGp`F)U~e2!2f~?u*vadiHRKorFJL$f=Dt?3UICHMb2yo zK?K!rg=$8Gbz(QIb;}*P!~DMg6Y(eI-5^uT2FtK>$*H)LoJ;7ldVN1UAn!*fO!eBX ztg`lme~oG$R~WgGI*jSjwIl|FsbCFdg{J)WhrK0e3CP%9kE++K<&cKgtg-9L^$sB` z&UAq=)k}IE&&oBImc$2&(sWjCGO23h*HqSGs0%%#2V}hxHP*O$wFg@h+*2Q?@#%mp z0pf0?m#NU2c0W=<_=J7^nn#&!>Bm$@`3*w+1|MhIv!UOkerMa$WAp~=dhcU3 z9Q!Zxsao2&)qBXKBEzW3BwST6jtUh_3Pq7mY6TFCMeD8W9*uMHHkx$H+hQN_ys5pQ z5lDXqZC+acYp;N*1qYv^>BNgj{zgOV6L9nI-`M0o725&_Di!+6w3N)rZ>jBZ*yr(l13@wC+=X55ZG#&oUgR+f zXgVC0W}fI*DKT10==EbPf%aTGNa9YoXLHJcf&-{4V{>Y_%rfXUg(QO5-}Y|yje45_ zaLivKB(uuT5_V&A;c)VTcv+1NjYfjAIe>yg^%P z8Gd~2;4D&FcuP^e>6b%F?G`_M+wC-8{@0LH0&6?uD|BFY|L^hC56{UVQpka9@&C`( zbHE(5V)bU?KPH|(|6e|z1ioa&%<}XB?dSjaBmN)j&;RK9Noc`H9-MG8ez0_{*ezLb z^FfrrZtWflAkt;AVJy%2ZSP~jQVLVUap15cG7e;TQfK_Opl`w;#M50SQpm@-qN<1V z+={++I-|D>{1N2e1lFVA9}XP6NQb`vssR;5+H?9Z_crHb zG?v(^7Q;0koDdg|H?T8K!P9BAo=Z&i3(+y+=?b*v(Y?vjRw`p|fFAp(A097Si3KET ze^{zb23e)PY_-|w2XR(ui=4sUW$23XCH1)>`v_o_=a^jrZ296IZ2s;pK$*c# zn%y><6i~zWy3W7}Zc`lrs?&c#4m=jg^wT`lv#o2 zpK>T}MYn2;T zeLY$&D%eI^0nZ=%vPPaM+656Q%VkAhhu#j}t1*@zlVDqRh>7{7e2fIe6e&EN`0W5E z`fgod^tga34Ih*-w|iJO5!@sx<^ibkKBMJ*2C>=*WSo;YW(sbwh(DAuV0GC&>k$tT z|2J%Z)vj*wy0X$(T<1IAbWfIp*=207(d9=FlOC>i<~tzTp7vrVe5Cbpo|nz_uzuX3w_+&l4T2 z+FHNnpX5l?eZI^OUb7?Ol>`cm0-cjvyCY+7H0i||-({OsEt~BnH$kM7BZXu*V3Mpd zFks+ikwqxg+bA%k6)j5D3Ns_h0hU%CjCqBv`4s`T!O$?Oh--6gqd)uj3;g4-M2| z4>ea#h<_k+$Feo?F34Im$+t`;r*=O4r9PdycTQ3nT+zloBQH3qDey}>+Wo8Ag!kG6 zef-5N{bk8F%=+D9Jlga3Z1#N-=8|Kuf9cNoOb=L2O@5p)Bc#%rL>5O@k%NaCo}8$9 ztLgIE+u+WvH$IjIt-J_Sz@7XStD@RMSOvLE`HQ-YmAcFEY%EBOHw#}IDfNUzquK=g2Ja;XG-|X6YJ^KvH(?8XZRKH&`Xm z&0L73>mdHnv*^hD>I!fMQ(way85;>AJkiRD+jRAV)QStJSVT>+?v{pgPuq3&k}FVK zZGTKaId!iRdrKw-vPJs+iN?L#d(TXUI1xoGQdp*kH7nFf72?1v-MSg!SIBJc#$5HJx`;`wS!({lTWfVE{^wh z+3^}foMaE{QDAV{>fYWL7Xm_5+H@oITo$uy{U{xrsIy{ugN&Vv_Wz=@V);7y(nU4R z)@Tv7gYD_`=-G&q-Ke&$5=3+N**{qIGvha1;HRT*^0?{e^nD%qli7Qv8)L=%kW04F zxWIhM$FQGci6<$Wdmlv!j0NJ!gPHP*>433UtRj0O6c7zVvIux@Ff%s9Q$ z0(-5+*#({FKRjed0$7Zn8667NoG#~ibd>`L0-QiYLBsGVa#bNv-Cfwujh*P z!ELROpC)XY1UC?bBR>d+QLD+HP5svpwjC`{2LXdZ*5(b(5`pPXSasMV_qwt*w&At1 zdk=DojI3VI#`jQ*>++e{l`Qon5@LM=xk|#(8?2p)$3{E^+B4ATEhVZF+Yjw6bEy`Nrls1m-Lj~P$QJ4pNZ9yhyq$>CnU2iZVK)2=piIZ}fv@6DN73;` zSJ3#_VWgBJ;fcObv{?(MedXKM%e+0kV2Gz?eGP>B?<0{O;S#7Uka6mk?Bni=FiliX zUq^6Hfv2+pt{WX+m45V#-zb&kNc#tyN~PX7t^eUSF;T}fNBNmEIxWkBIj0H5d_L~= zeJ>v^oI3WAOFq(dvzP1NoCUmH>#b#}&K{}8(cz3H9PImYe%Tfqd~k*&P<~7rdTull6<%|CMW^fjY-lF>B5}H1IF+VOH0?f>JOT6(g8~9J9}wmXtzgDLGx>1H!Q`{1tIb(%W(m6+N?k8iG1UDn>152al<_ zOY7%?glD=-KcIo!?TzhNp z-ChLu;%}@gzi^mzNR!;Alp>W{wcT|y z03(qXmLoOyL=i_{q{#E7oM}@CXn3iV^FfB8FDaf>7EnnkD=OUn6ffiT;C)SVd+isc znO0kVSXFoS*6mQAGuhzVwKaaHyD|3f^i>5TxdkD#P|R{wyR|`Sx5)nE_SXHs1jY($ z7CeUc_A%g=iPh5~yZHGevDnDCIV z+TPl7x$90t`taLLSFKl{vb1JyGb)L+&d6Zt&zqi9Kj_w!0|sq4(@pVUU60GxQoSSJ z8R7HLDbmx}O^_0WR{L&Z$=C8Ps>w*UZQ?2b{E~+|4^=3E?AJrK_fB?v9zU0Uczkvq z%86rqmLL$GAmm6s3UFo&AOu3G&?1kvx2i^@P&-F^O@e*9%2qGF zt9y_^ER8(=9h5e6P5QA6P^U3&(_eZskaUDsC-9}z0HntU;>`9A=0^caL@!>1lLR`P z$O$=eQUA&DSzx6!P^)W|S1tfL-D!G4$e7etwXaG@csngI(<{hGd0W*9@W6_y)M<2L z|E-8TMBw9j&lwDZ0NL7vyUN#?S$p3K_(qILu=Va=y3ryKtrF z3xOG327Pn$Ao^@|o<2deKAO?JJcEAk*U@@To?k|@-wK6*#qn^cH!?jIhi7Is>SsQi1e%@Va_J%oyQGJX)B3TXY%2B)uF;8~9={U?z* zzCWOr8A@XLYZ#vL@g4%)Kg4V@a=nE49)7A3__Nfa6z{Q-vVw%r>#&uDw)m3IZsWaM zaa7@x_~ST@R|BAZ6azq5y$I(E_S1swb=-;)Z<06K-eFJvM!>{6YW}X5r=5BWKWvzj z3E;7>tHfy4SCPfEl(O#I1*o|P3i{5-#~eqjx|i$(yYlrY?Nb)nv&zW&iE;$&+_~}a z)i5rRK3NTe7uZH8!@d}^5p7%)zf36r49xGfFL(wXOu!rXb-d+}@RTSPWb8#*VMVZ$ zHLbD7EhNH_H7ewT&xACDT=U!|>b+ol&a5P?ZoH0c_MN}p8*CSJ7DC1uQvy_^mv!-1 zG8HOi%&}Xnx_N8VkjAxAl?-En0(_`BH;x9jt$$&X#VPUkWsm+BGjoKn@bXi#1=HlY zR?PshRAi#Yn4xP$ZS>!1Xg4L&@uuG2KPSF)KOHV{KN<4+g~aG5R3e!z{<;05i9tTm z2xA5}O-na{ zr4nrCmbl;r%E03H$a!roIV{De3v)!a^P14DrW@pw2+nSGeTAhX)r>AfXKMB6UoRa1 ziP|6`W#VC_H6rQ-so|vxb9P5c^4pe9)j%y=Z3S?o?20N`5J9V)73-5v1QM!Arw^sk z?|ZMQ#5gZwHhG%2>JZof5;28bHQE<>I4`9@*cai}@j6!*hZrjRV~#lX=rr9_=R8=z zKOA(L^hgNPK8^gKSDKtdCE0z$t~5>EWYFe$tTsg&nSxsH|W9f6?_W{!I7r|NnJ$bzOC(l7yPm z6-7CfVlm8BIaFdfY|dPa9Olqs&f~f&IW4u4yDZrsMX*yLR+Jv4+otf+c=?v>Wss4ocwwV6Q!l|0Qy;p~YCbk9y0O~Q$_|M* zxOqoM`oqR_$9jkc#E+QA{uF=}3EhDdzPsN9*Vn;5lRucuRMUoKD z6Fvb3vrEu5g|!u$WMlaUgZ?YJxv5s<_-dp1l1QD8ux}vjN|S36`_|@dFRRBF+PkU< z(@At&&f>7g65qGfWw}umLt(^G- zX5b*5FDGE!6IRln84{#jZEotQC%uxih>0;mVv{AB2ZzcEg%M#I9PPOu?| zkCiOkbH?n-0O6SfsWJ4E8dJ$hl8EgCpiuAYNUq>KvX!F?SsDJWg7TYZMLpkT;Ne z{2`SF{$@&;IX=j&i;d+CEco=sE7*~)=acRc?-p5}0ra3#d7-i;ZDY$D?@FNcnOt*r zcci=Nm^mn2?`u1OC^7`5nUaNJ`Qr^nZbZS>r`VEZ_QRGbqmAkQN;6M%E@~dug{9t4NGuu%S7t^Y7x|CR^u-MQzbK|)5fN+9 zhprdJ-lCxmRt64$g^^ggRpX!dps}QRG2Jl0&Ad1)ab!aOBww8U@4Tx#{1yj-k53;| zB!<8U=OyjP7MusHYSxW6bQ<{*ksgdH)8y-8sX9e`Vm$Hfkb)Y@&`opDcjZd)c*Cka z%I;}}T<9`8(z}zb0`(^Jc z>($P~C%m)|k&0(LVx7J|4(+Q_dhcyjW@>;ynuCHPQcix@^kA(I+D+bzQ}Et`ubCcF z8;=iFvJdmzvfmsrmn)M2nfhGDT$8T=DyCyGshM+?Uw`-v?#|KQ&{0CQc>-`%S*g4C z$0iYy30&LOmb(uZ8x^rzXaY2zo+}ZNptz1zJ2@J_h&)-nRXfYyElj!Q!j%<(3fzJ5 z02B@Xt>$Z|&G=|-c4bm;YCMBpPi0J6au&JVsrh^+sV}_pnaz3>gynCkS}z32H{*;) zziQV-FK|O`$`p;9;7lmEw~1@x@@? zvX*WtPqYECi#C~iiT_K6;=W$al&5_N zUc7zT7U)z7dH`T7XoKw!w?}@MEu0*0-~4;q{zHm7Z}4A08H8DkIKiKr?Ha1l>sJiR znkrI*vZ2vYCkr#0XDGgfPrb1B6RCSwG5==EG^*}I&SX`eP_9Z=I)u{u!-+F(rwwjz zTKuYMV9;sX!Hn1X_TMxH=acrwVxVKyPHoX3;%pz7(-bf8?7LMwj;0ta`v&)qtTJuJFZqD&SkKu z#!9^!K6F(>+0#U z!I*1=)>}S#0BlU7$~QmTHLucG{vrHpbI>elq}^DyI}32Cz}fM!jKLFyfF?7FI8ZXY zu@3%yQvvCsgdSQ%)vaeOY8pHPs72Wyj5C<~xnps`N+<~P{d6-T5W)Ej=`iM0fb#lQ zFf|O`^?|8gMyWTi2C3HFOQmtUWLYOFOZ;Pz2d}& z7G3%0Nyp-n-C`=dg)673OK7)Nri^A=;=Mhi1194t9P{8r~96%=lH45U8t>6n$-cs5X&inZH_o0ib(vmfs!ZM??Xe8~jQ9sp8CAAH)B;?eR3x z9d6F@I=E?S&BdU#j%@e(`zK$#6d~_Rhrayj&0~3B2Mi1 zSe>9uL*InmXXtG*TUY8zwFC;Vdm*3+IG~nIa)-=yYbNssqc#glM7d&N4~iTM@0m*ndzWDhG)n}eklZh%ZV|b0%Ggr+ zoox%`eP1O#JFF2SdNm3qxIHL)+_>LMB;y!md>r(Cc&-Vd$>+`NEN?{iaH`;^wbP8; zP`wdno~_B5GheF16{~tG;FEy-`c&<7HcLAhkTcw^*S}x;$UA`eEPj7 z!oqS|A{yn;U*+{gI!neAP+|020gJGJVrr1;=J&CXQRoxtJv08lmBvM&30)&M4wFrv zAdoQttisoB;qa2n!cja{K|E65wYV@W#I+WI!R8CP0N5NugbYD0ivYC430pCQ9zh2DV%#SWj`cPB_`&6&P@?cN#4MLTU%kD6~PHeXj<{CwW zD0Ckc;#Yyjkze3>U)thV#9TjyfT;Rd)0u z6nbN(ZZ&T1)adk%45bakR+3gLm2~ecj6SQEpn90X zyXIZXg%}p7u*B7vEb|U_Exqexq1ehh*Rd(`QxTzl&uW((LPt;vC6EUkc0m-aa-`0i;g|gET@aAZhToUj)pTzFF_@$Xws)KbZTi z=?p3n*mHgBi6d>N)Gp2l%K^?`PpZpT?5r$uO}9ElZxXFX(vHqnM|{7X z*R_!Ai>iOSE2XLtktHj|JGaep8y~NF3l5;Jt!zl?rBr-ruQ7iQa4kN6=V2{IQOgK} z21KD<2)&>uz(EBS9}^=c)PL)%Jra~Y*p_mgY5CLOkKTjxpM>~vlKBzk2b!|c)BSB> z89HB{68x2mvng@fMNs3;?+gv-;9Wvzhyz%yfBhwJf%0B(6I*q0(S83uW9rT*w_KPk zP$x76{%n=B;ts7=_rZrzRWu8_(KHPX?r=n+<_oZ3&DCOKG2VX@K;}Nkc*VKD0}&FNa8(qiPlRQ>!q7Eek<$&o9ab_Y7-7Q z-wG^qgfHnrTLE!hR6Ktj?gKA3L`xBjjZ*9wv0~Ew7y!L-XZs;SzltCQxb1B@SSrSW zxxD_2`m8cjqIcczt4UqMDgqKNcnp2}B)wCDv-8cnm4xNu)Ns5DTgZO}{- z&*{nEyZZv(MHfKBiZxU}JQrgQ%q?GPoBXw%b2my~) zPW;lTGiTd>7-9rHYTGxW3udNwL1lFSZmY6Kg)aCI@B%yRApZA@1g4dArJj!2EE%I(v)DhsqS~8L&McSB**lM4Ju>Pb+GxFg=P#R3t_yxFUALWp zRC+`sM0(Ml-wW3@uN{ES#JvK>a*VkbfB4)Y6$X7oN4nm_4&vMR6NiX7mqHN<-2cAOp& z81~hkYYE%3FU|;830mC0-*)?SJNJ3JN6Q`p9N#6l|8Jiywqj-a(Upw#6Bj9xMqrRvXnm+RE*}&^`E?)>m*$r_!+faWCnZ%_ z<19Y_T0L8iFMuoeDG6ckb3=-guD70?1Lx$~a}4FLgU&~>ANPNg?rWW4M>@95su^x3 zX-}RuKiz|~GE++$)6!*smF$0cODdQbn-QL? zuUvwglPSU*!MyFfT|982*iIrX<%*3iXB@;tvovjF>p{H&jf&ECWZoh|rC#MaJ78;O z-=40bix(T>^D2*bFh;TVHGK2k@UOTpN9|e~#TE$L)4Be^>XYxAFN-_Tlf^P|gjBqZ zR!{Bf3&9;i5UR1~Mit`MD-`7Nl7p*{Xk5Ry%Ifu?t4NHbqSB44$P;QNn@OuTnHqg+1wNlzwc82e)S-D;Y42mdfb0(^^f@;1M2abyfGFyh@~bEb-) zZq8gEWmP8@dQZNe_H$fT$DMAtv44RUo8Zx-);r%htoFg z$SXKPp*T>5LrZ9t92?k!-9j}m*ZX<{i^+nax*#EVw;T<-(4rz`Y*!4jj@G-Qr*5_s z;bL_hptRvHj3kb2wOaiVc(v^PC%<&~+y)psYNC18GJC+)_cB<`&$l;huKMsp@Z~C7 zP&=H!oUpL`k(~vwivd&FuLLpYx>!dVf>IeWeu|X*MA7u9kx?&Z6V%bSe&-I-GtWDqJ`^zrdLJ8hO|$6T)Sj7^uiJFN-+GQ$5Gd*LMCNbn+pdTX78zJyap zxpNA=miS?jyL@S)SW{nDYodMXQ*s3bu|pLHdXY&P0>mCZT^LttudBXkm29HiL|g{Z z13EZygig1&BFBs+maFx`lqVXcsP@4ZwdR+_8x*X<^u%@OY%7Vi`qjQ_GZe?JQ({k% z{1Xt4h!bt>(+Z36cEYj#qD2_^m%x_Ofzq(Ay6{)c<8l4tTP5r6KC-I@Pjq?8Oq;Gq zG06+dRw}?v?H01ZyXrh)HD8JEq=W05ESCEKW*f{e+Yl@zQ&vNXH|kZW&TFz>*`M7* z`#O!r8kPY$)eZs?SRcUda!|?G-1<*Bu`*+NDTqo*J~R+e#CM8poHcasiM+3yd{u~v zVnZ%WLs$!qRatTd0mP*&555fcxXg-82xU3LfO)BoOX+2teFv~SG`@`>)G@p0er3h`XT9F6X*C*ql) zsirIF5QRP4*Yk_&tFJRVBmo$%pEL~PZ_PWT#_PNV5d?QO?K5q%{5%?jrRCuH?!v`U zgvFDqzEn-6Ey{E@;3?VV#9dkYnch0@nl$I=KzUp9B-tVj)yGHU;d7H=5-ZdX1;ZcE z&0+EJixGayH*Gp?1@^QNXPYweN#U|-!{yqJh91pC_dQq5*Zm@BOsAHyPXwf@Z8Sd@ zgb#^Zx#EP>*`6TFC0PIOTbf+OeCT1-uXLgZv*m+V`JfcZ2iNoPj=wKiG#)E!Nvw^4Jc!*c z=l{F-M16RGnx*vYO;lZBwsSb91JylM{U+HzVMQ7zSCG5Vw{s2Z_ulo6W0w%RNV zuiKiVlnYnd?(&K`;UtbBa7{V9GOdLxoV`pE>qG*QuY+ogdx7sE`0UC?@=LxOiS9)> z{}&#aUYJq)jj2he?R~+;Ko~&CcqnJ>;TEr}+Dy`SeB7}`r1CWByZv*5>pd0ai~-E# zhT8aTVS__DNUSqwZMl0KZ26bpOx*9;jU~ma%@kTXC69CumvAB7d9DlL)8&((7Zg`jd_;{FO~Y;3jh(l+{cU} z4z7W}b)LH3$H|#xV|EFRSvWK99U}Al2w$vcmcKpzJtf=0lQxu-rEh$@hc$iDqSIG#>QD45W(n-JxCD!hyz4Hi!Z1u|7;3?u@OueXoMw zNUH+(%)HN052bnVfJcR=;@ta9T=hT#Fg7hOHh@3OXR*pu9hP6MIUP3CT!TE7((4x zRLGmrzM&j1ES)kWycSJ)cZcArau1O@{0c_ z=M>x56ZO$YrTepmQ#cb%MNJf0)c_cH`^|_^PhGFe?UMbWf>y%n5&)>@UrDUEXqKLL z%+N_XLm9`>)!0|Nd3ZFLKDIoNzu<*)3dg_b(p2tj7>e1hO53iwlGu>cTRzk*YWeBV zh!XtQ^8@FsfuW~|S%iOum;YI{&&S#` z(X!b&dQsI|S^%$6k{_)1v1v5FALCnKkR`h3y#CXm{ynhkXy~b08orS$oI0JvYW24W8(I9D zFLANOR+~OF8nZ^2Lg?^d)1W{7MBO{1{=bF)r{NhnqZkIPH8^Be+U_|4DvbsBK%O?U>S|8JdyKfZjcS_Br2aIpAG4#(*^l z?UlMG9Q*p0>AfJC|7_1Amp8akrGs^?>pZ=IZC-(Q(h?fzYBwwA9#Su;+cgfvCoFv~ zL2oqrfZ;luV=)A*iKXIlWzTj&?YAX_KE;8;8Rz$Y>!jFfvEOZoEO@5Px@>Pqs!?oRVuX#lu%Q$${BE}M z?cIeS%7MF6cQ8AL-h^V;pWgw^qWi<1f{I{u1u^LcW#3EZ{qZ&4E0q}Tr zKTg!KPl_z8@R!#HDDg!ANiDDzs}!FnB$bV3S~#LG>RC81k?I4EuOw>mPGL;s^F3qW zX@KMItzI%4Z)R(iNKMj_~ZX-d^Y@d@# z6ec*D)bagP&(6H4x$lq?Y!nJy2sYh6M>yz#_4gw$MkeX_g%_-TopOm%kd5{!+=yVH zC9&e+k>{VNzYWw4qrZ-qP6FJ>m_a>fp%KEp9A)E@#=vrz{2(F(|^M^bx&Gx$w9eNpyhNq^te!|0^?&v zvXm^DIb1{-9St}mJm;md&4|rAvO4%-2{}yPo>)9n@WFsP9VaQon_A;&WM$3F50oGtahx^ z2LYWZe~oIaa6z{Zt$JbU`)8=h)(b5}xNTbWs<8f<&v#WJYWUxFtx2~B;}eU)umj~v zWA=hV1lfXKXT(s=w3TUyGS#@|1&?{`EGt)Gmlg6NRf3(QfG;{ixHulVCjOyL9Fg)) z7yyx?xXF$K)Ayr*X&B5}TR?@7an)KXB<>$fEiwx*Ix&qg9UHw?m*OqU4>CgU1EI(TS}9$WnoxOcX{soRy@QD3L;qrOJmZr)7Huk^llPrb8vH9~Y%vBa?qLd72B@j{|9Yy{r}4TqYk zKHI|Almo(mm70F<`ODKuE-ZBPy_bU*gFcRRBSSLJ>&6!y5x5x|Asd7B)Q(Kbf}XG5 z7VV-Y6XrV}_ly?g*nWKH8fxPQ*Y^vE%dtFo*-_1x_=n)T@50KJU*w4NG0@Gz^V01a z`Tt_RPFLgo-D-FvW6SC}Ds2Q`=u1P^=i&D?aeHdY|HQi0Mf_51G3qVmstrmYE5$H+ z)~5$zmCq?p5lHbx25{%IgJVVUUN^-Uvy!+KyKmYM6fObi0u_wo0-{<^E?CXTY%MR>-koEsW@YXz&E!ME_{D5b3lr4_cEdpnfh?^=!2BuOKu$ zKhv489CZ`i=Nf+@(fc__C@H^tr~|Aca5}z}fV+>Q7gEaJ@$(7R@zjo6FFeRX0uRgL zO}5YWu|eaRl9?n#+R@$LabOp}*=bAE?lev=pXlikKB;ZSjzi!%7s;W$xUqh$xlwE@=MF*{kk<%_X_g67a6q|k} zyVDNEqW%<%tdM~r#VeQ8j^@8}$H1OA6x!97U`kSVs%LFmWGJcz9xmM|VbtvB!rSDf zS4rZP73ffC2Pi%LzG@EOAwh^Os7;5HPd#KU9}#>+X7}`5+0&o>OOqSVY(4a$=uJEw z7{!LJGj1RsSu_j*5Va=i%?UC9%38U|A2^60w8}-UQNvIU-%beutjIZ&XrH^3b`S+g zYb8!s$MlWr2HG)D3LI;CVh=h+x=FH3*eJ+bGy|4+J+Y5VK2+=Rl@ktPvH=y8W15Tf z5#~&aR6Z7?NNSkW4W#CnA7VkiNv{qYwICU>+;t!6=h(0u-PsOu~ZRy zdnV;<{^o1gu`c!SCk_8zO1a;Vg3F+MzS~CEdt$oxz>6b7h1h}~LP?}xOEslVW%D^k6eW{~+J zbExa`Q3a-+vrtrHR>yVrEQRUMFXNSd3Y#k_(o1u|KmKw`h^28T@80@fjY4w^2BX$a z_K$pzR%#$!8kv9qY;!|FHZ?JLZf90TuIPJZ!LTi|D?ULPrQ5kUWmd1r+8KzhlHrnt zd6vH&&j%XD^JnC!>?~;K6RF;D@uZG+e~iywpL|r@Rug-zr~FLC9JcZ;AO(n%V>`Cy?eZkJ)|I%;Aj+ZU>g z+5`pk%y-7m+P-sLvP+v!IL57#gCnxL503j-8q6h48eUF(%rzb0E~=&re&=~cGhHRO zeqH;!1$p)a(B^^QrgY zumb18gp)1xGC?i+0A5Ge6+vYvv{~5}pdVNJGC)h0rU`kMCGK01W&F4#a8C1b0(Bd-FZXBWm;qX1E0d2FC8awtU43HbL^Ra2>Ghatb#y zybKum#2jXdxgOG#6`czFeivyeEnve}WjcuT6{ zgOm0}HeMg$@<)nEBF|qulF)VQ5Q!bQH6`OqP)1E4T_dazDTc^*2#sVd*WlW>YJPAR za#a!1V6#dyNSFQ2&30gVHcxxXZ6%cWsAd?Hx^z~qv{(Iv7_E`sYfbd})$To9e!T6n z`xgr_nx%AhDty5y)HP(8y@U!Fs=}Wc&mql~&e*VQe0&ViJibBUUlW(2J8G#tv07Le z-%jH;g4(xGf}uq3v@Ucq!p#&wV~@DVaSNt2`RZnSM~?}HEvaG@EiP=UXnY*u(;Uy< zT^|q^&frvw24dGeUuml8e{H8vf{b6CQn$_rVsyUV0em7!1KUw5nL4$I4^>XZy6TEB zgP~b2K?QJMvR*(=s;lOke;;TSN2B#&JDu3BoUt~v&sywf<@?J4;69fDkuEjjc%c%lg2F0phkwvnzU9c18@!MP-i@SE_ zpL-nk?&G17Cjo^$m}Ab!;ASZ4J9^d!Mb0n%sAo@z4Uq+IQ%PQ}$~JHfc8deh$39N6(W8WGK9#PrVh zaXl@w$urq_ucNo*$L+MEAV=EU7kLLfnV)`xHLh6QDQhTGC;t<>j){{N0)}_qN%7y^ z!<8QKtfI|5Sp^R|DLA*iGEIlPu-jWDJcD52@s~1~nddnlH!Q$U) zobRNAGWQ(iz#{oKd`zn{5dVZ$P)58#Amj2(-20RBGAJ>HuD&V)_NadIsxjT;Qk0f} za!h2taA5tpSyb08+N8@swZjagmzfKMa#`DUUxjV;jlbmQV4WIn=sFeKEAvC`{yVo^ z?kIeo^21xtS%8aD&Dkvo_V;BNF4q6ap;8tp46G`dE}A@72)0zz1y|OiLkT?5IVR|5 z-^;&V2N0wxLN5ynr+3QVoqG6^6yed*s*h=V*lmpr?Q|!>Ocp}^XDX>NLfOE@+~3!Z zU&HZ^{Xe?>`2VZh|F7EAO`dD1ifOJuX90Z~NhIC$Z2Edjr%0Kpd(Egx9eeFsu*O|Z z+%>Ppp7`X+g+RcT|H|IEIJH(U^&_(5jEtAjJ!!aF_XsfP02T;^X3eK=H?3(xf%#K< zM*^ywXC-2r;Bn}g?LW@BUxhxyaP2Z~IuNpp{t*uCGVS;De1->Lc!!D^x;IxtOBmlR z=no1(HD_17M8r`l)6b<#ibMx@oJaCT#69yh(so@G}yYWF%?);JzU%(@2uans2FD!8X{+-+0t}c zBQfNnYaglP#dEWT7u1+Un>Gjp3^3ag6>}VwgX~*;V-CIZ0;Gq5wQa@<=+AzZ{%Wky ztHoWi`FRXPYyXPkv)U~GOyRDUCjX?!egyoxN%wj!RLga1WJsTVd!zg0Tzf&e^?o@U zE}EHAYsFCq){tfwE*1FHM?OM(!?zOi+1-Mu^G%DX>bPR&-YdobwdZ(%<_3VSkJy() z48e;NL{c(`KtTKln?Ar_Tx!1jI2dXo)E&x;Lb!#`m1778A1G zWZYRO<4voSn)uY03yGe;QPk(oZV^dvcOsLS0B!9yeBn6P1Ce?~oVVaS^ITrnGNi;y zhjp4&DixW6S$sZkFViG>TOWYxa;j8~I|QLs+R{Ih=?`SG;a^FEAfa6-A6Z^B6c$**a7xZi&jBX)l1mUBkf z)R}`Y6#@!TzuNiCH2D2&v$)>Ta6+MXAUNH7qFKc+BZ&rqhJSrCj+O)}R`WKnTQYsM z0-m;%Jlewm_gE82U6??J8JqG?h3)y-tU}<^PQH)JVDykyzt07x-gmg5cV#Bjmti6`3uy~Jtp$n1DWPs!ikdx9)AII$0V{aFeRJmDeulc~*dtxjq1oc{P|-U2I^ z;euQ`JOeOHA_X={#<>5)&InCZ0>xn$1XE$5{rMC zL9%R4en7+S>K;C7^s4VN?iz#kXD-LCXh1&b$!#1@6t+W2R0Ss0-oiM}M;rZ0rm0z;AmdLVp_Qk_OJL(FcTiYa4Vcjdhh88$Wgh8W-dJoeGw?jpTLh|7^-2Vp580_`oFd%~Q& zD$3!b6zN`j>ogLy!GijCW4tZ@ahvVfJ&$~r0du@L-EL!&H~>rA81Nyix^_q4l_CXX zZ+r9t#dlp&R@Ahz$vw2wlmu|W3X<&t!-@>>@*(tWtQrd|9Rlt!PI7dn9o;)>Jw(OSVQ~O}5JbIxWh`gOXFkalPbi6Wmp*6e$US4dI)gwV)Tp)s(B^w@VMt zsf~||W1V?n1y7e~4h4;RrT|O1>PR~h({0_)`@V5O90&oZUiTI&a8yaZM2(-Qd#wB# z{$7vMN;dtRn5YBSxpJ!Td@(3AlfVIjOig(*v!K0$=3SI>pM0uOW=TvV4+1J%Y&n4p zRT2#&2<)G!2Z-x~ppIGN{xCCCKZZD{y6=1ShGOTiQ%H(~-kq=oQa=-LQvE$N#p4%zRD z_LpJ-b^m6rkHe0y{i~rVzq+Eq=QAoQqjOD*H$$9hD+6;R{C>0s{Y!)-y=nDyzxAU6 z^es|BxJ?NfBJ)`ASqHCh&wo!Ru`4KiLz3FH6yJk6)F;G`%aFAYZh`wLzVb8upSzvr zdrEAojiQ`mFAhHfo5Of7q;!aXy@-B)@zjTZ2f$_XMZj!0N>7pKQ=c}=D3UAU4^E!q zOs^v$Y9*Wr1!i%TS^7x`JrN_|yd1Qw6MuHCJ=1m|dp9>6&v__Dh65WzY}@kF0f6UR zCW3|oCcS}d_zNSFLy-NPtRP1Oot2RzaPIG3c-sxEle?=0;NG9Im(Ty=JkmC|*N6j% zyl;*IbRqsR%l#HPxmvnLwo8i()jkg2;%Ig-@98D0UvbgFzQ87~3Vu~WkZcnD9U0(S zTVRt&SOuhEzBo4?rdvCy4^rw}SuPA2S~F7F+PLhu6-LP5Roern@Y^{Kuzv~#K;u)V zf)Nf<+`Uszp!q)!!T=c&p7O^wG%I00yU0hyw4cn-9Uz=`rR^+qbv} zg@m`x;m136g&ROn&2zC|`_Wum#j5)unS~Oe1?eMfviJ{bZT)pnR6J3xR0QoyiM!X* zW0QxVHc(zL^t$Fh0m(dZVC?3rUfH0@jS-=AF}AfPqBhDW@tIPwMX?yWQYj`0H?7k3 zE3>-1bJO>5Wfv28@$+>TpOy&TO|K6_AI;f|*aEXa_RnfG(H$0HJB^=`FCK95``I5o zK$jN`@Ve&qxSAjl2}L6z6NS0tmV?%bCv*BJ524sty_;84x`H$ z8#wd<@rp_C8M=bdL=vS&Fox(?fI)8hdCaB2p)1Ba5xaMs-s`qxBqM=NTgitByKMBn z4$Yvi>$NzLYpE6VJj6kLfVV^((Qk+OH6}#*;odjz@F@hrdEcSmcoA=q-YMDsAoKn; ziM7Xjb{2ogMJnuGEHCue?b<4vAelfUeC(%4sdvZ!iZ!PphWERs4yM_x_iFe%M7{FZ z)r2T5hrI0}b=nkwb=yv_Zd@+CVypgXFdXNeRAru-lsFvZLOMw58}VeCjx!1cN{-X$;06bF0j4b@aTCMGV z<#?UW;1kmRxF5b^gaIr5r^)ACofS_dY>Dk%X%;UK`-kmHEr<`A%ETh!qCu7OTp zRpJ9hf9rz2hMJ<<2;M{Kky&0Br%>iHMyD8U6QzXJlFVm5=tq{iNOc&yY*ZZNq2@oG zTi-qw6xhflR3Rh|)ZWE0J{X&mEwdh4Da=_6LPjw0qtq_)gJ5k1-8Pi*edci;!ED-( z^yI7i;eu6w&y3olCKLU69m zubiT4(otewk-)xf>bQjLU9aDIb`O^i3@SR*wypH0ibDsbu#EiT+23k5NXxQ>cNGor ze0>({MTJ!+L}Ft?s9+eI^n-6_#M0Nb*6}SohMsOCLbZ?2Hm&FyNzL&!VgN!7?1lXK zVnNzLQC;w}Gmba&U5Wc;Oq3r1lF-p$mwd*}fD>IAPTdM>e$weIUU>vbtD)mMQO0*@ zv(uxJ(7>J}th!zDiU9i1foyw7WI+#2LpA~9`yo6J8<)0Vn%{JN|8O#PpEmkUBlnvgY`zU7>k9CR&zkc2Vpe|;>0UD zS1Kr!kr3v&)!k{UdgTxtRd*JDa9T^4G16eA&`+T4K61>*E*s{#Uv!FchiK|sgGtEs zVb!ckAe0j{2AKUP=Iz-9=7vKUM~0y3uZ#cdntAr+H_2Vu%-{P)9%(!M=( zKvx^BQY0FAxtH!q)(T^b@0Mw>Ok|;r0jo?al1GA!V)h$iRH~6Z@m6bdD<>!|TEeYj zYvc5jIxbU#G|(S2MJm}WcbEr=7fk>bub92CEUK&qeL6cX%M?HgN1HLRK+Fukp}69( z#Hr63C3)EE?4qF_kHmLs7}L~v#HyNtFW$R5A{W#k<~*YC1H}@6LmtZGox4G3%{3C$ ztnwv_nox>F%KEAsyGO&9bOCQ{`^B>2GDBLvrcP$h?P$D1bz( zipQ?|_05l%Fq%xdw_Z+rxX%@e3C#xtE`jpnM`%W0KPoX;fxpd|TsR&|=D#phu8>Kh z|8$Yn?^=rb%=CyG%a0!n`{?1ERHuwf7?tEfCSIY@Omtm`#><8$$%6=JWBtv`_(N}U z(F-5!ZOIofo$;E_JWQp21M)~((RURYvP%w@kD_!FVcC@_njLMIQ!!TI2>RR)1d&Q| zrM0nMwhKvN%e8NTwS@}qKA?V72G_rg#ttM^5cGC8&dE*&G4C3^oO`yt?iLtIsJ}sm zLPj|=O#Ezzj9u3K3kxe(MKahi_1-Z3=BO^f|Fqy7D_sSjFP;hISFJSIm!Jy)(#PMd1}?!E1QA3ihcs;_-uxpBWSvyw%=I$B_E!wV_+ zl{}VFCBE_Q;J>cY{&3lX`!<|+R5M$$iLK(Ql)ysgkpUIanTemtj~T>|K=<6(ca!c& z-LYVEwi;oKM)xGo-aSv!08op-h}x1Q#U<_by!RV67lSk`ir?vnb2JufLT{v@7EwNU+{O1EY7gP4)EDTn`-V( z+vw6dEtEJg^p}9tqX~W|Wix>0Flpj%wG)hx9h=-c-gw3`LxnQQ?NYriQ z80(X{i3H%?d2vh!n}=d8izjf4uB?H7Frd$jj|GDNoXD2&D=P-Rs(4R>e&M1dL#bjN z{96LOX)P)5G1=Gd{lIbie`N9E>0Aa5xv?w-2 zdWjd0;wfeHmnJIZJ|tnR*6KDlKln9QW8ZAe(eAcdJnAQy{<0LCsKo~YQ{D>9Sqnq= z@98!)^~8|==Jl*tUR1#s$vL*aaRkKhElmrIJ_ z8oVgE)h>g75&tb<27U+bDKZV3vdXT7V9%1k-Q=qLf?wXu zQu0Y#cKq3>><+aCp$5@#>ErhAwGdx7hMNQQfIz^OG%wE^9E;wI7zf^`dawvj4Ii{{ zniDwv;$`>ULpk5LdP#dV>tB=rpMi4c8`Af6?~ffo1gqG^s!N3x1a)QQCN#4<5jqVi z9p%nnkp!8C#5gB18^d!M>G}M3J?9Kz z7J73sm^s|PJ{(G@ zBtRK&08D;A={u0NxwWwoRG=~gEejm9J0Lu*#pUL~?#AJ((gIyDap;&@e#UjM)Gv$cHENh`R52N=#^stcOX1FJ8W2grlDZSKR>$;iH2=Rt$jJ7r@9(x@azc%Rx$1>H8Pp~i(50T z%`T_Z`Y8GDooTa~WUa0xL5YR&eoh=Zul@3E)!$@6|m zV7{SmvMD}^n6}i8qYAeNs{KP`e{#)CwN*B)9LQeO+x6!G8(Gv5NXhjl60`@q6*@0y zVAH*i_gZK6M8VN+eqhun)^r2ag|)~bJZfti-G1Z$THFc#UDb7NsM$Tjg&)>94x(5S z4*!gq+1K-t~U zmP>}MdQ-6|lSJgLo#2b05>Z9(8981WlmE}D-|-R{t9#gB z;=BvmffN64qW^O1wV(9OtjB`EL`PqPe?Vvbj$+||VDOV|F(dfdz5kfx{}Y}pwZ{SD z2ohZRcX`Yg!TZ1`{<(kGJpjIvwP9(%*$RQ<Gn{tLwfTGu(~^?2>8V2qi> z6BAmSH{|~cZp**F(a>K)bJK9#wxRrh2;DMd)|~Dg!bsm*f8v6d$Y9@9f;_a$*ck37am9HWzgH-5oJs}k=nM;1i8s1k@nr2tSCT!Qmz8*8_)W4&t z8pn2*f4la?y93*LvO2~ZDs!d1ib?%FHT1xrpk9(@J-_5Cv%_&88{r)J7t~;UZ5lQ5cEC2iEkumWDY`O$@HnbxS_#LW zCFjZi%jZEZ=NAh2C2F9SE;S>NMyb(=Gm_yBn4ASyuKVwmPw` z24h)Gsdind6*0KSQP+5}f%|$ZsIUTIy3QqOgtV<(N^{lj0HA-={yN;WB4A_>7bEdG zs&>xq*Hf*#eL9SQN%XA=8GECVMD&CD0{GOl74knL+Z$Epb!oL%{dW3$zHZV;?>*p+ z^t&)0^z!JDeKw7mN>!cQ$5-ie9pa(QYWT)_Ym}j+(Art<^Vr@B7tEQ+jp5PY8YcgJ znAfZp%3FfIG54u9+5#Js9FwE_Zz$3Bgx3ihtcB}U#ssljxVl>&n074y2Y>Ymvb{&cuR7>T#0P_3bxdSt#L2KwQr7p`H4J)Xb{?%!1DbUM3`^i*}iK*Q=^E=<*UcU zf?Vfx6*JqiKsY+Twvh2BZ_9hEVe3ZDs8}dGXf`Rf3PapCwygahqNPF3#6EVI zIuH-FdsNBNX7_>M7wyt>j_S)jDp|<*ieIlKRjlb;9=#aEyCsgG^1g?!wD`+Y3iL6* zwtMIt$2l*@<=Y48bB|D2X#wrM70OTB={inG2cX5J=;WV%y;@(J+E2X}Lb%k<>iZ2h zJQ#)-t?&IhtC&?tyc-sXK|61{B)39ZeQoX7LjlJF<|7SUP;F5CSQq17m%fyhO#KUA=4 z!znBP(+!W^$+{UFEBaO+Sbn*09*?RRGQd}=8w_8>P=Du!yuuz%BaZ=vpVac=)*J{6TPfxZ-Nb!qp<4mJgbU``bpF=<2+L!#mL7r(Dd`W9K zwhke1-(A{SViT3oU(w_*S@lo#^DCj^(%rRF4~QDe;+q$pt2iov6Z)MGb8O2eBM$Kz zY1lETB{w&ZwI7-Ae^P)HJ{g^mJ|>;#-+`5JZ^NXvI8%NB)a1S|Wq#`;6LoMPV9OUx z_(pw&nj_U4D?h87OTlwaL)+ySAL_-v#eV+Xs#m-34TIyKvFkt(UvJ*bU9eQ zGKBXr+r0ojXvc5wiC{ODcF~`e)J7EKrA<33(M@zeuSVunWmh@aqALRECazomg5>~W zzJ1Oal4#eg%g0iS6ksJhuT`VcxxYDe^LEF#vd_rt9c!d2go$zI=G$c881LUM#BvdN zX=nR`7bCo>Elg%eTD|+8j5`j#^d{6slaM^!ah=y9BC__0>Xdh(5P7!QZLlF$Hz;*6 zidWE8DKp+8jDX4+AqQY;)~$k1N^SQN!#MSd=3fkd{VLP+AL;Bkv2)z-ZN30$%vrBz zW}_=Ym=5#Qwc7onE?+inRwKRb#p%-(sV2&eaxM^z`*!4hyAb{`pI7pesnRdExKsLJ7w%d1NY@-svg}e&44Z2n@M`N*&4r zqVC<_9f_wMAiCs8RKJI|mgOF4Z>dRm3v$;$Rcb{l+$7dIN9H^)6s>=l&yn;`@n}~g zjm@?9W+AU?Y7t=ZlI(EfD$@CooafW!zHx-_9TX7nx0Abw-Gt_UUavRJ%TQI5CALQ8c;Bi|V{bBljIxc6s0vC5fkdRIt~tzlaJZHpL{%zC7J zL0<$qk%|s@_XToilSunaI3r-0o!*{X(A<6E0i^+?4%nd()8)_}&Z2*AUNq|<024=f0s^Gd?tuYTi-Hv&G)){#)^`o&zQ+1qkM*cYAfRxTi6Nv zIng0GFzw!tkND{G;}4CFQ&w6=SPDWJ9n>ldSID&{MY;*4yP4s7RC@akEcBH9=x&;r zy94kBhE}zP$0XfK0dc$mDzP51t=07b@+sv(ImuI*Odl^hcj&FY5?CSBZLv66M9UYX-wGC$?Ws* zp_LOmQq1axj|N|rWz7o4n6sk0w@{`C95_gz_k_EBX}0kG+n}7{gj$rZE2Gm7%()pi z=-YJZ@MMG<#oWx^X!f@|x>D9kD22|)qP94ZWz3MlhIO5?$d}uzxuj<+3{Pa+ii18z z{H_d_HFZ`gGXUv)RlGNf9T5uAc|iPmRBP9gdI>nhwkGNe7J(nF|r@&-V70Teb4|VV!Zn^`D4`M@T#aG?Z~f)F%C%t~lfaa|^yt z#9&m5YHMeQomJE=DeQTcA5cb*bbJ0`ZC#a#dh?r#qS&|<5e{#~NV-oxZpvh-Qsdma zpYNV{sX|RgZKthDk}V6iD^CgFXgqw)<}csx%i40GNyPaGVc7lTstK0vuzzDor29l< z>AR9>=lkTh3ynV^>DC(naYrYr10Phl&saqH4hIN$hfcefXg>SMn;~d73aB_BM9a@a zk*5)f6c5I~eFHHOhe4}tD6NOqpaaGtnTivv-*74CspDg*0Tl{~E3XP|aUFE!+Y?9h zp|z7qc5bk(3L&Cx!dD^Kh^>+Um#SY=^Jp))~0=869wU>2Dy5Tn+ z!GulzXU3fAFzOH%_;)AFJY|9^oe7gF?Q_bgr7+IFkKv$GWoaCZqvUQjkz8c?#n*^2 zSW$Y{A9#XvW8J_g(~-$+*J=yje0)*W@EM$f)joCunsw36CmCt?Ti7U`5b}Hhqv1OXM^*-*GGIhMyd|Tp?39m4In=(8U4wz zPZoXAMIC!@Vgj23Ee3y^HPMh|@3pPE!=aWM-K(7Kg8J=HHpNn&i~@YEnU|W=1@3Ma zRKpuayqnCdtGd=8a5$PMOU*ihzHQ<{Gd_|?B#zsO80VVhMBdFwTm~1Y4=b~nUIb;g zpDSj2o$;P-V0aOkw$lw{d29c!j||t#5cU9?`fJD6_Uo2}4#mz+7V>X3j%!xII^V)( z2cF?WN(ARfXKVWtC@#I4+ljlc<^zzD*onT|JiPNfG5(WK6)oDtbke}zTu1(gWS=a` ziv2YxNFKsa+mg%vGYT+I>J&-)(AaAOOE_4I(ZspqWul@)1Ml8SpnK&ey*_|V9kTpp^CI$0-3e?KM5;8gn#DxMRinQHry<+!f$8(p{5-YsB`UB?B zF}^AOnun|ttOr{J)7TnJoX6Pqv>-I}MiErXn^*+x*}RlHTjvCK#YweuaU{E8SJ_?% zb^A3+@`LuTo_XR)!_kEc&YE_9&-!>Vl4^dWipU8~_BCjGGDnHlCET$X(fa<|#g#>2 zvt*fzmTC7f?|dh)pODvUumrlIZYgA78bWao&@CW?ma;Ouoeu?Lg7x*gFJK~DUS(Nx zk$q=%Kp3_z;h>tw?5+8|46$xlbdDO#p)QuzX`~v&h5ZjE1YT6<)7Fpqo59TP|kA z4pPY>Ugu%c-+>|Zgg-Oc{3I3^#Ne5r`xl9flx(Zuq z!n#WoCWv^xlXuT%u=|Oyt|QqZ8G$UlnS&AW2<;u$9gH**rC7(TsQswE#dW>5)hskP z(IE2|)%Zk1H2xFurmT_1fjb-JT@gkuj5a|3iMNjfE>TCs7s^yiVP^skbRdI809g{G z<}n~b3(9?PGzwRVOP%<6*RJ=!`*Uc|(V*4@30k+o*SEqCm%B%fyGI&=S;kx@`SZOA z84(AlM%Ge)o)*7G7y>gcnuQkMfW^4ky`oc{PE<+R7U!3Bg6Wo#rhx-lCW<0 zGib8AsyG_Bd^Qb)9UJxHbkO|WNWk4BgX@Dvxqvu#e9ZUyUA4{Y9;k?-JEt`Z9{HMI zc`(Szbq)iQTZh%_rsA=E7^R+>Uj5Fu1dhj}$>7+tmkohQqgx{Sv;tvx!x^);TFS$0 zyZxA~8A#Z%QfWbtg&*bm=;DUGox*u-zE)H<`2-_ajDggzmc+_>WNJ!01$ws1!e{7F zDX@3D%22Wo-ICjlp@C7^n%z$=G;LghXw;rXy?_))xQg=ku4l=$;2sf)tpVy%kLpYx zkUq3tr3r`W@!UR9H;p#`R8*~`G`TdXRtqYJl%|yGoEyB=26V|$+Nz@Mf*U(zt@Y@* z+oO3oiqQn-F@5?fn%QKs$sPDD*tOjvbTq^x9LImLdtjpj;K&& zcW7UnxL%lomV4sLr-hPW(XNZpac7MNj`pC@f^b4l)Q;Kf*|nGQ#)a&OhkRIKS?a{5 zw3WW1{-c0f5l_&?=hS{Ts2e)7?t55^w-^M!hd_77T`8G~m#d1~Qumkto0+7%#)kBF z0qJx*t0(gE)xglLpcwqH?zy-3aO(GVzgGY-o;z%F@L^V=hkA?Z;h;TnbQ6^=sT0=` zVlFx@RE^UYpMqd9IZ#OdLuX)y$#<01n6E4+9Iisd#8nPshS>TwK$2k}6^3TKGb)o) zSp(wd9H;Sy*t)ZpciMa4fQQ)blu&W>>HDwUBb2C6krQiM!%-FL0Ty|VVxGuHQ4Iyr z*|$AQW>4aS?WEQk$V$B3@0y!gXVUfU@6Jq@hu;V>s8^V$W!0?m#E);ef7<79ZafMj7jxhNff$~VgWvbmzC3NAZAkbZ$@#26uPP?-wqAAm# zyjY`rTim=ZI8O*)@grt#qN0;rCqFHrIl?RmiiHwK=p22~u7J(KhfDtwb&N3H`u&V_ z){Y-@P`Il}6xS7;@$vN{EZu~V}1nE4OjG&&kdY!=v+2ai2 z1;nI$XpRk<1anyMpk0MsZIgD!Q!3-eyJtTpc{o?R=d0E-M+QVb?HpqhDI5pJVP%fY zHCx$jPAddHNKbf`PtEUPv6vO~zcR&U?OY{U5;51Tq?(@bRx8iXk)YFeN&hn$4sb1F ztrYEs6+lF8g9+}HGwsARv#=ge^qhR3Y#An!UR^i)#pePg&TfYl?z^Bzs5Ma4RR8Tx*8M_&#)0z?O@0LVyWy#OMx=-?lLH!95_FKGU}y zfzY+Y(5N)Po6gG+X~*m2&7_nrEj)zCnyw8bKk~=d8^r&vs+zj_%)6lVf1C{Mg7gWYs9*3T3T_xKpsz~pnTI5SiC!z9pTkqVp1=yi!!-NmIn{YLU0qGRx z#*4&{A@#-X{eHy!gn1-wD%Erz8w}rn^9;P%txv|OmdCvo7cJ8&!4SD26(#FkAnz>t z2&7;m1O6gOTr>m8uw*laVKH_Y)RX7zj;(>(@CnwLRCcc+dPJ;e+jFF4C^>xrRSic3 z$Wrg25n|1+dOU~XX9DD`TxHhGDKDYN=+gt#sjuNYh{gMw;H!)&U37`Ctak08vg6bBs5P@Mg>Ra-vKBhb#iDg-YP zg(g|f-z%`Hc*UJK8c%D8RN*n%eP<%)pZ&^my=f62iOT)Zw+1q9J<%JzaeZG4;R_GImH478nNOlmyz zhEUzR$Le8=KZ}z>a;*v(pO#tmz3yZ)sBubp*)3n!S)&rR1lf37Xue2Kdlig9yz2EB z1X`Ux|NT5yH2t1*!EgQseL}RS59M7jaJDe9A9?+Trcd7ohPY{Wgst25L8(=HQe30c|*l0P|c&H;tb})KQ5^* zDwdU2u3HgA+mk9pnCBD8k#zs@L0uevqcz<7v#Rk0>e&Ys`d7N7Y%8&wsVo`lvl1<@ zwEyUq4(EAfdr0ePZ9+14BV)~|#DF~zQR%0P_X*?`fwwoZ)_TsLKM>V+46dF;(?*0Avp(cD;I$a1XfZu9@U!Sca<}*f zDI%hJ?$6zq^a=ZeqSnKkY*tGmr-GoTZUJYsy3}LW5s3XGAFIDTO@_XkSm<~}W`L{( z+4z#QCvZHa3tSfH5Ii=c-brPFDSRXk9q*G8D4=e8FqYqkhA)%WF6GCaPdB&#gftZg z$Yse$7YdRcJoxlCzy;ytq82tLejhfx zYHpRQmZ{jpeG(CKeb8~e?Tj?NPogpIBUEJ+8;)av#6%Kb^0wzDiAvZY4Qdf2US$iS z!tdp|kkYTrsRRoY!txT}jy~Dt#gRd-S3U!le&>aAGslI3U(&Bdql-5O5*i}03}GI% z$-qifJi@|a?hE4n+{n=UgQs^IG?7HT8@c>J>X26?|;?F8gHwkAJz*NA9Z|!4~fljVK zN^i2Uw=eGd>dRQz(a>`IDE0upE; znAC4q-4Ujy`>CQH?IL=Vv(pb~o-z1#9`F+wvpc&%X$p-Mgx|f=KRH$kViBkAev-#}> zw_d4-gB$Of#FASp2dKA7LU0EWG5r?w-LLRC&|sS;L3Uuoxhc73Hz*0V_9gkPl5%xP zx29!P`UR_7({f(Y^;j{XiwdPd#o4CtGnZrP&VmHzSKw>|Y9-xDWR~eGQzyr=o+akE zZ{V`Gh{9c5{i|M`BClvj?NlD7xUB4QwWvMYYuGYKFW+3tsm3vuA2SJ=is)q>Euk@d z9)A1r2JSYV-*cg!@^WM}tt0fw5Ww~A7}uy4ykiIRET2@p)txa6h;^dihRWtTEp2Uz zwuTx;r(R@xnzm7Tm_<9tpR=edy{|0TaiBt5u${VVqX*Hfu8d1kp8bivV4Xe%6Lr5^ zUMoW~MZ*i1_3WQ%XdSRm`-6PE7v6gB#m|cxzw$#a0`Ue^?z>k@%Bg6+x-zcLV9(z- z{z3#C6$(DOU8B&Z8(!_{dL2b%lu`PJX56H+y>cvp^Yx0Q66OP0idLh5bnY3t5bm{E z9Cls%gFsj|Eee~7u!t81PmL1<(z(s)Lihvs{2A^sX2xKYU(SUJfi#LxtXaa$N?l|v2(meWT)!&0aMVomvch%xsqhy3 zsnh_ADqkaIPr0;`+78_c%ukP#Q^irxYJH5HsqafTi@vV{s{1SdZreFrxcGqB9A$CQ z-P`xHv=Bz=6Xq&MDxK6x?iyL&pSMJ@QVM#b|CqkKXM`sjiR_SeUa|( zIpYtn>-Aslh8}DfLLzjZSYDG!>)3Rr9H=bf&DJ~%=_yZ%4iaacz};K7Rz2^Ytgx|J zxAgm+wjY)u@P9jUq8&^|lSkMkKP|4id59G1NeR_@9W>eyHaqe29IBDrC8Tey;PCl| zmouYpmQM+)0fBsegG*j$5ghf_ms!ZC9dBeGNwJtB|9Ug*)pu7J4N%fuz6?I{IPvvF z6flV~qG4O08JmuriUVeT31J|c&%X@&)}PPDz#7Wrxo-fw)HPcCt|#d2p3Lc*fhgC? zH?<#@E*CPQRR<1yO)wvCK(K~`n+}Y`KJ`;cW+1m`L;J2FTn3Nr^|sesn<;#|p%QG6 zpoEJyWK6~E>PIgvC`^4gddj8(`*u)LI9A>~Y}6=Z{uS!oU!p?$AdHe6_5Q%z1odSl zzq7c)NV-Uo0RD_&tAk+B^lg@!LHlYE4a4w(1(L^xN|dCRu$9msZ1mfLp$Bw_?dAt;N0Vq5t%p z!92BNchamUw8?d8wRmF$Nyo*~e@Lv#c>&anWCs6;m1h81M3@Tvt z8}y9|8a{I#X`++EK#?_j4KY;z zFUH6_7ES#oqP7n9ugfDWD9L_k#U@KfzmuXuBq>Fj>w>K~<5b;|dlR>ueADi22U*)G3Fn>6mCq-q#5Op9~)t`FeM3Db+3e6aZhKUH9vY#w&m0fe1;EjH(af)Q0 zY#~Ayp+Rj$Y@c!k1D>J4Wr#Wv2R7N(t;Kc$`)kZt%@9z9m&n~N*p}%QdsybPx^OOS za-l!u{**2=u2v_ttN*M7^rQ=HXgD}5+lWpV#hhs%51%8_P3E8!+1>p`4d^da{(uR0 zc!oSODv~AIbDCZ*1zQ#0cptK`F9AN@&^tr$broz}OWXkDmd;l7JD2tShb9~wN_y5w zCl{ptTW%aeI+uLuu z>=ts427)JJYu+4;-ycCgL>jJbFr&+HD$r|G6npQHCa!_b#u?S+HaCYLk{2_qjNV9_ zt9EPP5^pxr+J))~)HQL$c>TYBZY+Rhw3crF@I&uI--|!|jrsqsuf^@)g*Z=F!0{Jm zUitY!D!%B)KTdSK{`1El2}Q3Tl%Rgn@|DnR7=EQu{;B+C0rckmz4!NAD-tR!D#HCK z^pmN>{lS-i{y6yZrOwaXT6)eGL3o?JyJaAA?ImeUm0~`)oX>4;`{9SjujS(e)qrpw z@zdB6ccdwNV=fDc9o{h9GNQ#rH_7bz+#u-4nr22EYW3orBDp>iT*&Fca^-9A{@dNB z11VU`>nBA43()QL(LnIyhaZmouPh}ovE!CWEWxpA*_a|KGU2({`PRdIj{ap~%|524 z!XsgJFZk~>=P@^b-ub=9KU^Hz`T4`iOU5#)n1%-bBeFnqr3PkL=m*NmVwOnoZE!kXJ8Y%UcH=FL_G!I_%TJs2F zx4ztLx_d7D!{c$Grdc_j<9v)ABDOu~?_Hm7Ct`L2pyMb}=|Nv2xeHd*y|@zVVT2W{ zT!Hm5;x7w}oWX=Iw;YV*S#Q(9WLx~!_u(P#9-k-)$PzhmoysslV zc0H55(jsONkyBI7h+*s*_sp_Yy@-7f_2JWA$_e?Ej>k9P#PZ>UsWWWe8SxBq!kgs9 zAAk6hIypK=+4V_a6jMLsAL$k%OhlKZZDKz~TF~)vPFI`JOCa3!5&$1UD@cbmq9H3^jB zf8UJPzy9}m9u@&}py1!UR`sn^wx*BA-f_~Z9LDt+%#pa8uLRxKBFD-Uy(a5dS<$wn z?dq|?$|BnzK1b`|+~h_s{&^ZNF(Oc}a>Gz5r0yJTxevqBRq{?Wclo4|NiKfr-g=Zx zbL{yZ=h2)H-Be3&iL#nC9^zZmp`aS_H6m7CZG-1X>dqQjrB zZ|={pXd~ZaS7BFzjQ5>`7T@J%8XORHIX;>!kV_d#8oqP+Yb4Rtv{f~G#SZZ~Q2;EJ zAJPvX^?JZKl5a+j8WXi1L0(i~b-u_BSjPP*7qqSLCwFBnYDRd#&xvGJ@P$WogVja{ zZu1TgQ=Q}nk*yF*Th2-wlJ542LIo21O5p!f@9scJw_MZCd&^r%V_7u&HVc=>NZ7go z=XWl_Yf|YcOC3P3)s|<2u<@HqyH=K|$dUp1CVqX5_zuTC30w$WF91KpGta(nPaYnO z8tpRCUX7_$@EoXzvF|A#_@1;bM}45!(ML&qnE;J&0I+A+pnQ12Mi_=(8Em0{19RYO z5aq=qo}0&0j-*!90dofW>(;q^IG_6vLisur2e`lW!~8H864UV9ooZnO zbK|=gB~>%55F{T<=;>lLfk%hhllJcfvYq^_k7oMs)nOLeIzlQQr6Y~sbUuT%rtxIV zJ0?m^mv-4{ZBKf*o* zt@I5bhL0AA?<26*+!&BRR{FYph~Y9HF?Lcc4o8IXo03h67}5NiNTF`c)5GK?!#e-k zHcB0%p?>Ox($FnkPi)LSZ?};d{diH__adU}gAB@IT3wl&qu1s`QX2_kpFg>4vmzLG z64v2?vG0;|yG$cA$iMe~C~s#!7&`Ne{2sG%*xN~Us;)@mNRfyK$R;uKeK6$DM3gZK z&7W1iZ}@cfh)~j=w(tH>IkagFFb27pgi^K&-NJhWUABeco?b6ilt}L$I(tM4+3)xa zfC#sSP2?HKw5K+L4EuBX?&o~Il&6YjtahfHW9B3M2wXoRWip^Tl`5vMNQT~^J2r4| zVu*Qaklw-ye4}q#WsA+#SD`9;>JddO_-(6>^pnHc{wa>_x&4pQD2vWDYZ_IwlLu0{ z#o6u`b27x~lF|vZ{`KiR7kdD8P@Y)K2_JU;L*FB0OCJ4yx85V8|2=vxDT~0-34RC9 z)(sbn)|?H86VDLjUR)Jd(3kpys31wTA%*E&wbdB~<|8gzIfuubR0r&$=c`X=IB1Sn zKwzHgYHF1sT<3J+UFFgk?OWp8P@IA?;c=k7EPbY-|0>-|KC7q(x@A6*)h3Q+I8*e) zR8mGAsU^B{WK)VQU+Tf!TjH1za-$IPR~#t@EViwp{j7IBIOYvhSW2~lyz-F>8~Y{p zc|@9&IqgiTXa_e}=-bL7g<-z_N%#x%1kVi@8QY^S5rZfnNWbmvL@Fa!xj8}>`gn2) zx~UqsM@?@vykSkdNV(jGeQ4KT3;1J?%JX6n*uEV zz_f_;kNq>xp!zh&XVLt3Up?SeG;!c-aN@eRWTD7F{o%AEG}N+WYSq(O-lUt%QBPSu z)>ai$E^`MhME(4qv{(#HRqa$^)d(a*$_<6ma|ZG0D`u9>HHgYO1a&5zsrZcsAc;>3Y`q(^CH=oiOtFCrBN0AZ5_nR?+~W_xcDM$FHM zQ{yTB2SsV1vz4JjY*n9fxv=vMAf_!R2XiMPh`PiJr!?knEb>Af7& zEVP|Scx-smraWwwQ-B{HT)MB#3e$LD%A9OewJ~Z{^?wKzm$$0Mj&X-{^7};(`eEZW zRco;|&|~$TrVli2DhF;QoAU#D=>7X1ZT$QjVITnW1>e%pCMsklx?NX#zQPWM-gP}E zQHd_;!sw#`q31GU5}Ta*p4lF!d7;;F_HG+@-vLkccpttTJvfVwe3pn`?qp&xJXw^# z&HXPO1KWxq=C18iT#U-xK6B_h!y~7@h}-CJ?K1;7airmST(}2#EW_Wa#BT$h+#q57 zM=pI6b<{MV4sKgzy7 z2V8f`-yqb&d#85qP!1v<@y-HXF@SsfX}vjC;ub>W5n6yY$gBF=GR=P%`+*}JeT4Zy7pR1+?nlEW?c-N zP%r5As{LJC%64qv9t}{k9r?d|$xr|9UZT7VBFfP4w^l{xrDA~OY{bN!G?IGUN%RRU zNQ<-7*yd2mNkQ>XRt+(rODUzOHW z$sG6z*@qs?jk5X)@%lMxLz}H6*=|C4GUAP0DNZJ3;I=dosZa$teGXcl{Nea`bxx}t z@$NyFdB=dCtzH4C&<{Uc`BVD8^|^0ra)Y92c}ApWKb}ZEUFk&QX5$^Jbj8>UW+@43 z-Q}DFsq|`c*L-XF@Fu0j|7aCk-0IZ!aZV6#CCqijwUl_5FGqXKThx?2@S@U2f_0J? zCR`%on|Jj>F{{v#X}>gpB8bINVIOqUX6#5_8F8+T8maE@BHx$gwm12n&R|}1io>aQ z?W!o9(-M`H1qB+HYrqy5u66uLp93axFR?rrA4%}h{nIS4Q-j7DPqx=|DDo)F6h5~$ zSg+65p%LBMJc57-QrD)vSP^BaF1^zrTTdg0!u=5%@~hHP!q*!gFb zq2!`fP8p4KeOff?uK; zSzh@kz*dPW?bFl|4+M2uTLMeLJ5LR|Pe)AF-(ll^_e6Y{1qy7Il&}w%Oy4Y9y_ddz zZEFbRL`K%Vpytz89f!F(sk^@a)+AF6*FF}l2zVRM5=;wJ5NYq^&}SM<8>oZZ*$(XL zl$ZtSq#%emM@MNYp6v%yStV`{6OGyJI165ll+6SbYUrRV z`cC(B%%|Yyvos0oL6E7=d^|OUf!}gd3;UI^8WWTP62r4ji_9E9dkDVvn_H%T?CxTB z+!#<)MbeLV72>ZxhpKSrgQbmc>1SL^`h6@DSX6}}Xw!mV&c@I?kEeoQ`#y)&?OI5? zY5{MkK7&R*H@toE2rb6_(ezV#Avbsy*Kt%ji$q4vbq`r%;9ncv&u@o=&T1tA^pyD+ z)ie_49<(`@^o6eKvlVv~)O-J&`tPsAPq=^vHXdhS+G+oEY4;Kld>_=i8zi---WNXu zC7!`4HJsA=rjgm>0?#_V`EaD)@miqkVm9AU>i`aLr=%W2-rZelF&m?vPQMJ&hO&4d z<7}cX73Nm1QMq}W6U5po=|1&dTQ};^cL^Eg!J*>*d*YQSNOrERS8H%Ri9KB{SfNiN zGb1qyvU3dlCIZ^*TI2z`e5?}}r75O?!6Gif%4fa$>C$S@ z`N3oZ_Y3}swYA7OH8V#MR+mfPvYgv({#%oy8%=SsaQvg?Tp>I0$`F->6?}MOTb7yG zUnKL7?nPK=E=TRiS&u5CJ@XlzU1rTFwRkBa-id)laRV&0FyE6>j5y z(Spwbx5<-|J?sI8bZmdMT!N3&6N@HCx>iN4$OS;>^gnJrB%G8Tka4fe@lG0358XNQHn}00a7GTtc6?^)qj{jDN-s%e z-p54#$7xA%XswS~Z*Lacrs#mk3^l&M5 z$WV$FY=%R%6FhL-0^hagyMZDAN(8@6W{)X}Wz2=;mlYhSRP?_>`nvg> z{>~ek-*~HbhI^g_)Ua|`R4s`nNL#2>d_P>hIHZS)tFm{YSWE9Z!FPa|H5rr*aUni& zesLA9QXK7uYic0B6}3Id>zW&ZBIUx?7r)J}@Y*1KP~IFOSytSr>D$t)LWXW>wwB1Jaq%j1i!?yWnq8%QHg}Iu znMhAPQNp;>J^~FQsE*${uy@ycC}C%u>-ag%sqc_g{H4N29Wb)*!gEm}vj}6#TRj!7 zOfe9R8RQ*+TQs-d0X;-nmj!one8%z9?C&9zs&k{#0r)6@KP%TsbsrU9gZx@l80kE! z7fX#^h(>x^cqgN$s!#n zA&y?SzCw>j$BHaWCSn4QHi z#Pu>TM^bcJr~QW@Q<;GtS=>QuY`dHm?uW^FwrG^WC`ZNXTOfaNK&j^wJ6kK{ZSiI? zG4H{fU6n&LV0Rr}xq@<>=Qq^*9lM@B(>9b`gebOd(jwm+v5(gj5QvM_`-xk9R_{H; z#2qufHk$I(Wz&GAEg(y&xH6_J97Vh8ZH{kHQ6^95Z!e}~)#5|GtZ2t#s3z+l3F;-o z!2Us8(j(x-1ET-$dmipO)($Eu$VspG>S5@6cygjd$AcL(W=7fe1(Tl;o_U*5;b9##h6#H2=NG{Xou=SISfNJ17vRJ+UY3%^7>}{q**5o zZa1jvAv>3)tejajEN6R_Lazcm=QzK^;>=wQ!oy@RfO6f!hzQARS)Kfb>Dz98pPYME zp=x4A=ME%u`_<+a5Z{?dGfc{Uz7>V2y(bt@*kB!^O)`1ZyIRUPu6y+>%+QMdtJ0e( zK%Q(>bGR}1e4EWicX$lTP2$3o*aOzCKy>8A}%o|pj+p)GLz(2QvPtwXF>`^--6{k zE!X=;W?k7!|6@q5d+nx|L+7qFtSb&=fNgd^)p|)oHJxu>DbE#7TZ5h1=4m%>2_37S z(zz3(bh#|~mxYKCEPwgPRF;)he%0St4fi$yCqE!-;sU^^h`dMKgeeJV|A7^`wQ#pv zT?=82rl~8WqK~0Jr=VC8-QxI(P1x5eyH)R&+CM0XK2qI;PUtaU=)4QSeHkLM#3;XB zoyRw5Zb-E!agg&j2%J#oZTTa9M?!eIR2-L8d8OJ=0yAWQG*`ir(l8Hb8Ha9rz z1Ic(yt&&&GKLNS||CrL7#mU`sQO9Xv>2c7FT0za6^G8uXzp$l&v#SZqdpGZ0v-ti8 z1oqW#km}cHZ?dG-`^WBUI0|5`7k6S9G90&ceh|ZX_-#8-a|->-vIi%L?jNySx=Ph>Q-0I-^>hh2kc?Ft zrJWX=m%t&kwGPkQ&O2+!M)<>4J<#oTuI=-Yz@{5virpBg8& zZUqRR)5Eh0XRS+bN`T!qlIUnV-s^sm+j7|a#A-CZg4U&PYxhZx`s@J9LE>3lS@g%x zXC*+qpAwfx!S@IId5S$CQJeCE@5$`H7Br}>G@S;@ABH0VPxLru;-T8Iz=&e{9E3J?yX<-VSk)ho1=%V{}$(T zPHn;XBzcw-MedCe;ZZ+`u(c@H@bBQamh3E3(fbArn~h*(qV4VM>%=A3?H0(4n(J4P z5;>%n>LIjz-7Gn;ZJ1o;H>2G@(?;&f2(w%`v1>27OBVqW>-4~v-4K4`03z-Z?evm9 z%i&~ga+Ts-#ce0ws+v0-HbSyKE;F7wdCV!A2C9VlwM}fRqe`JW9mZSO*&h@(YY>F& zgm$a#CL@|DjYWBHEYMV^|9q!MSEH0iiXRFnE=%iX;!Ovvk6PF+C+cta8YY)>HVxPh zcAf2`ZpJOS2w}THA=Vm=QMkR>;3#RxmFAwF+RFFEjmIW1AXr>)k z^%7S;uXCq=jt}-;V5p(g>?7vU!L#zrN%^u6gnEqB*X3QB4@+k{vOQ&~oOQe!=@~!p z9{N_E&@sOMP_~^^nr1pXB6?W%$!eBM$MB5DpbvC7)x>iM zvQ#|OMqmZV^ws2@uIdU+@^lGA0fNLatFEIocdIIK_61nK*Rm9MV=<)sYhahGzWTeJ zPSllZVdmtXIlb-5(F2oL(@$$(3jL|Y_ZpxU2@}+syEojCqj$~xeM7m8`}t0|(X96G+?z@=ts+T-uz)W43 zjnEa6XZm`C;;NKD(2b?(+1S=nXP+_M_Q=Zkbx!gf-R6ihcj~0Yoq%A{y}pX86msvxW=o6L*P;cH zRMm#tVa8S(S2phkc3mUfj@AClFm9BjH~l92LErTHfWB|hgG$^~eIJ$3PBYNS%e3FT zwUzylyn-n!pk9>Jy9%RK1lBpx2KN&O_jm+x#p`Q68twFY&8ejA!8L)7~e2ZeKmONH!|D^#9KqteouP=UDf$vxLE8%aLrQee8C0~0O zfU#qANr?}~^>*m$B8u3oGgR$fJc4^_trFz1!paGv*h&N=V% z{an7E&x?N&Oolobk`$|&?9Nvti9BfHjo9#-e`ceE+i%5bq;G6D$If5Nsok{BT%obN zi*o$TW-eL0=HPE-jZv%eiEbnFF_-(P%;8?OGI85-j8Bw5yDnY(N=9wA&E$1{d+Y%2 zdJ0l5a5(dJ$pA@wQUKcOFnicJ6F~y*636*DR|QK=c6S@vq}55+BOeaFXLgl=om|(V zT)T!3qgZG>oja8QmVvg0xU^NyJckcIHAwbi&7l$=qH6CvMhc)wpRc3pSD|bxtvsss zPZ(%2A=2I}ZVRJrXRNw*Fr$lR*ss>k`^h;(1|$wmJJqueVwm1L-jS#XNMk%yhEstmL)8P5==<-#RQP|dO*A!0Nh+yh-=HMbhoOBt%b&w5+8A~U8p zuczJaBIg{0z<+Vzf}lM`zU)?^cA1S6cCaO;_5p&S>ik7-Ov2C=nUXh!fEbTPlLBJ$mmxXd2P@)g#4-lugs zE$`kmVwg>j<-J-`_kG3#;(hlTjWTq-`2*O*bRNfX+w(_9kPIlKe{pPkiuuyD}kPsOd> z2aOuld3n5)Kp+mXE}JJ!75D9v6T(mmO98X_C2-xD$rqLQ04y%fx7+FF3#&h7QVcAd?DJg0XqeE6ua+5 zh9y-O)NGv?L%wK0fU3!AuYb)+es^%dOFu!B2Hv;#^kIGXXd?Mxt4<(wVj6Jb_M@yV z+MGAI_Cz|!Hl}$xm82R0=9!TCQ`;Ylx~ff&81AxTS8$bRLMREcpR+}~R*~bVvb^OQ zS#dGD&)3y0^hY+;S;->wey6>>B!&}4Kr34U}g0j3Wv3HCNpDAV*-zY*ch zfTzg*BXT#0JLZbb83`;x+Y^p$3I<3!$?Lh=%st6r(}sEOEZQ&wE5=`hWk3Mm(T zdf-P}ydAJtfzYc&0)`{T#xwj0`UhrwpL#RGHk?BKL&?7@lg_E#%U1Yx(WGt|tZ`)F zNnkm}wiP6Tq_(^?63ADZWeZAo*&yEn4yza2SZu)qscH4Aqsu(=FglcY7{WFj2E&7A z!mO3D^!l7OU2dG*Komx~ay6n_tZ{>c(LN`8{N=n<;cZ$~G#Q(mIh=xWcAyqtiZQS$ zo#-C@dqJ60h$IqIs@HZ9eNV>G*_KxhycJOF@$h*deAwAjblS3H375(qM2zSI5yM08 zKPHNt7dG{}Hoi{2xt0lxH?^Pdh&1+{-T=Wr) ziEKyx1Bo5}F?3%tGi zD7+|Z|MHA}eNSRlEotaI>)zhUfxWtmYE}GtM;?vrCo{7XR;Y2_IyC*U!8j@Vpt*DrN-94&9E&5qPsb*pMQv~ZL9Oc3VxZGXpgjGmdfclyq1oq zKO4?T+@z$iaaKcF8=rm_AyAelaSC*2KZed|uG(lG0gpCmm|I7l(G z57u^aAmwMf->g}~DY2(qq`3d+JoIbYH^{!28c4u&0gkAmpjnw@S79M+I4QB1o`H4Y?)>G2-$9D&-t6%m0{6tJ^H`-U=X|K6ArQNw4x3j>L@%gS?`(VtvqRm UcsXZ3NR(e*3<+qw@VC3a0$YF)k^lez literal 0 HcmV?d00001 diff --git a/art/generated/imp-sprite/imp-hack-64.png b/art/generated/imp-sprite/imp-hack-64.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b65bd7875a14b6a8b38a2cc1a2aa20f3062f40 GIT binary patch literal 30912 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 Image { const SPR: usize = 10; const SPR_CELL: u32 = 12; -// the atlas holds every sprite pixel as SPR_K x SPR_K texels, so detailed sprites (HD_SPRITES) -// fit into the same cells: a cell is SPR_CELL * SPR_K = 36 texels +// the atlas holds every sprite pixel as SPR_K x SPR_K texels: a cell is SPR_CELL * SPR_K texels const SPR_K: u32 = 3; pub const ACELL: u32 = SPR_CELL * SPR_K; -// Detailed 32x32 sprites (generated, see art/generated/), used instead of the 10x10 ones in the -// high-res graphics style when close enough (render3d::billboards). Transparent background, the -// feet on the bottom row. `idle`: the five views side by side (VIEWS); `hack`: the digging -// animation, HACK_FRAMES frames side by side, one row per view. No gear yet. +// Detailed sprites (generated, see art/generated/) in their own texture, used instead of the +// 10x10 ones in the high-res graphics style (render3d::billboards). Two levels of detail from +// the same pictures: 64x64 when the sprite gets enough screen pixels (close), 32x32 otherwise, +// so neither loses pixels nor flickers. Sheets: transparent, the feet on the bottom row; +// `idle*`: the five views side by side (VIEWS); `hack*`: the digging animation, HACK_FRAMES +// frames side by side, one row per view. No gear yet. struct HdSprite { kind: EK, idle: &'static [u8], hack: &'static [u8], + idle_32: &'static [u8], + hack_32: &'static [u8], } const HD_SPRITES: [HdSprite; 1] = [HdSprite { kind: EK::Worker, - idle: include_bytes!("../assets/sprites/imp-32.png"), - hack: include_bytes!("../assets/sprites/imp-hack-32.png"), + idle: include_bytes!("../assets/sprites/imp-64.png"), + hack: include_bytes!("../assets/sprites/imp-hack-64.png"), + idle_32: include_bytes!("../assets/sprites/imp-32.png"), + hack_32: include_bytes!("../assets/sprites/imp-hack-32.png"), }]; -const HD: u32 = 32; pub const HACK_FRAMES: u32 = 4; -// atlas columns of a detailed sprite: idle and the hack frames, each without and with the sack +// a detailed sprite's cell: the same shape as a 10x10 sprite's 12x12 cell (6 texels per pixel), +// so the billboard is the same; the 64x64 picture sits where the 10x10 sprite would +pub const HD_CELL: u32 = SPR_CELL * 6; +// columns per detailed sprite and detail level: idle and the hack frames, each without and with +// the sack; then the same for the 32x32 level const HD_COLS: u32 = (1 + HACK_FRAMES) * 2; +pub const HD_TEX_W: f32 = (HD_SPRITES.len() as u32 * HD_COLS * 2 * HD_CELL) as f32; +pub const HD_TEX_H: f32 = (VIEWS * 2 * HD_CELL) as f32; // kinds that carry treasure in a sack on the back (instead of the coin sign over the head); // their 10x10 sprite with the sack gets an own atlas column after SPRITE_KINDS const SACK_KINDS: [EK; 1] = [EK::Worker]; // the sack (k outline, B burlap, b its shade and the rope, y/Y gold coins at the opening) const SACK_SMALL: [&str; 5] = [".kk.", "kyYk", "kBbk", "kBBk", ".kk."]; -const SACK_HD: [&str; 12] = [ +const SACK_32: [&str; 12] = [ "....kkkk....", "...kyYYyk...", "..kyYyyYyk..", @@ -1411,6 +1422,31 @@ const SACK_HD: [&str; 12] = [ "..kBBBBBBk..", "...kkkkkk...", ]; +// the same, finer for the 64x64 sprites (d: the shadow side) +const SACK_64: [&str; 22] = [ + ".......kkkkkk.......", + ".....kkyYYYyykk.....", + "....kyYYyYYyyYyk....", + "...kyYyyYyYYyyYyk...", + "...kkyYYyyyYYyykk...", + "....kkbbbbbbbbkk....", + ".....kbBbbbbBbk.....", + "......kBBBBBBk......", + ".....kBBBBBBBBk.....", + "....kBBBBBBBBBBk....", + "...kBBBBbBBBBBBBk...", + "..kBBBBBBBBBbBBBBk..", + "..kBBbBBBBBBBBBBBk..", + ".kBBBBBBBBBBBBbBBBk.", + ".kBBBBBBBbBBBBBBBBk.", + ".kBBBBBBBBBBBBBBBdk.", + ".kBBbBBBBBBBBBBBddk.", + ".kBBBBBBBBBBBBBdddk.", + "..kBBBBBBBBBBBdddk..", + "..kdBBBBBBBBBddddk..", + "...kkddddddddddkk...", + ".....kkkkkkkkkk.....", +]; fn sprite_rows(k: EK) -> [&'static str; 10] { match k { @@ -1868,7 +1904,7 @@ pub const SPRITE_KINDS: [EK; 31] = [ EK::Inquisitor, ]; // width of the sprite texture in pixels -pub const SPRITE_TEX_W: f32 = ((SPRITE_KINDS.len() + SACK_KINDS.len()) as u32 * ACELL + HD_SPRITES.len() as u32 * HD_COLS * ACELL) as f32; +pub const SPRITE_TEX_W: f32 = ((SPRITE_KINDS.len() + SACK_KINDS.len()) as u32 * ACELL) as f32; pub const SPRITE_TEX_H: f32 = (2 * VIEWS * GEAR_TIERS * ACELL) as f32; pub fn sprite_index(k: EK) -> u32 { @@ -2105,6 +2141,7 @@ fn add_sack(g: &mut Cell, view: u32, pat: &[&str], front_dx: (f32, f32)) { 'b' => c(108, 70, 40), 'y' => c(232, 176, 48), 'Y' => c(255, 232, 120), + 'd' => c(112, 74, 42), _ => continue, }; let (x, y) = (x0 + px as i32, y0 + py as i32); @@ -2119,30 +2156,32 @@ fn add_sack(g: &mut Cell, view: u32, pat: &[&str], front_dx: (f32, f32)) { } } -// writes a cell into the atlas: column, cell row (the white silhouette goes into the row below), -// every cell pixel as k x k texels -fn put_cell(img: &mut Image, col: u32, row: u32, g: &Cell, k: u32) { +// writes a cell into an atlas of `cell` x `cell` texel cells: column, cell row (the white +// silhouette goes into the row below), every cell pixel as k x k texels +fn put_cell(img: &mut Image, col: u32, row: u32, g: &Cell, k: u32, cell: u32) { for (y, line) in g.iter().enumerate() { for (x, p) in line.iter().enumerate() { let Some(c) = p else { continue }; for d in 0..k * k { - let (px, py) = (col * ACELL + x as u32 * k + d % k, row * ACELL + y as u32 * k + d / k); + let (px, py) = (col * cell + x as u32 * k + d % k, row * cell + y as u32 * k + d / k); img.set_pixel(px, py, *c); - img.set_pixel(px, py + ACELL, WHITE); + img.set_pixel(px, py + cell, WHITE); } } } } -// a 32x32 picture from a sheet into a 36x36 cell (the feet on the 10x10 sprite's bottom row) -fn hd_cell(src: &Image, sx: u32, sy: u32) -> Cell { - let mut g = vec![vec![None; ACELL as usize]; ACELL as usize]; - for y in 0..HD { - for x in 0..HD { +// an n x n picture from a sheet into a cell grid of `size` (centred, the feet on the bottom row +// of a 10x10 sprite: 11/12 of the cell) +fn hd_cell(src: &Image, sx: u32, sy: u32, n: u32, size: u32) -> Cell { + let mut g = vec![vec![None; size as usize]; size as usize]; + let (ox, oy) = ((size - n) / 2, size * 11 / 12 - n); + for y in 0..n { + for x in 0..n { if sx + x < src.width as u32 && sy + y < src.height as u32 { let p = src.get_pixel(sx + x, sy + y); if p.a > 0.5 { - g[1 + y as usize][2 + x as usize] = Some(Color::new(p.r, p.g, p.b, 1.0)); + g[(oy + y) as usize][(ox + x) as usize] = Some(Color::new(p.r, p.g, p.b, 1.0)); } } } @@ -2150,9 +2189,9 @@ fn hd_cell(src: &Image, sx: u32, sy: u32) -> Cell { g } -// The sprite atlas. Columns: SPRITE_KINDS, SACK_KINDS (with the sack), then HD_COLS per -// detailed sprite. 10x10 sprites: row (view * GEAR_TIERS + tier) * 2 with the gear of the tier, -// the row after it the white silhouette (hit flash). Detailed sprites: row view * 2 (+1 white). +// The sprite atlas of the 10x10 sprites. Columns: SPRITE_KINDS, then SACK_KINDS with the sack. +// Row (view * GEAR_TIERS + tier) * 2 with the gear of the tier, the row after it the white +// silhouette (hit flash). fn gen_sprites() -> Image { let n = SPRITE_KINDS.len() as u32; let mut img = Image::gen_image_color(SPRITE_TEX_W as u16, SPRITE_TEX_H as u16, Color::new(0.0, 0.0, 0.0, 0.0)); @@ -2161,27 +2200,40 @@ fn gen_sprites() -> Image { for tier in 0..GEAR_TIERS { let row = (view * GEAR_TIERS + tier) * 2; for (i, &k) in SPRITE_KINDS.iter().enumerate() { - put_cell(&mut img, i as u32, row, &small(k, tier, view), SPR_K); + put_cell(&mut img, i as u32, row, &small(k, tier, view), SPR_K, ACELL); } for (i, &k) in SACK_KINDS.iter().enumerate() { let mut g = small(k, tier, view); add_sack(&mut g, view, &SACK_SMALL, (-0.5, -0.5)); - put_cell(&mut img, n + i as u32, row, &g, SPR_K); + put_cell(&mut img, n + i as u32, row, &g, SPR_K, ACELL); } } } - let base = n + SACK_KINDS.len() as u32; + img +} + +// The texture of the detailed sprites (HD_SPRITES): per sprite HD_COLS columns of 64x64 +// pictures, then HD_COLS of 32x32 ones (two texels per pixel); row view * 2, the row after it +// the white silhouette. +fn gen_hd_sprites() -> Image { + let mut img = Image::gen_image_color(HD_TEX_W as u16, HD_TEX_H as u16, Color::new(0.0, 0.0, 0.0, 0.0)); + let png = |b: &[u8]| Image::from_file_with_format(b, Some(ImageFormat::Png)).expect("hd sprite"); for (j, hd) in HD_SPRITES.iter().enumerate() { - let idle = Image::from_file_with_format(hd.idle, Some(ImageFormat::Png)).expect("hd sprite"); - let hack = Image::from_file_with_format(hd.hack, Some(ImageFormat::Png)).expect("hd sprite"); - for view in 0..VIEWS { - for f in 0..1 + HACK_FRAMES { - let g = if f == 0 { hd_cell(&idle, view * HD, 0) } else { hd_cell(&hack, (f - 1) * HD, view * HD) }; - let col = base + j as u32 * HD_COLS + f * 2; - put_cell(&mut img, col, view * 2, &g, 1); - let mut s = g; - add_sack(&mut s, view, &SACK_HD, (0.7, -0.65)); - put_cell(&mut img, col + 1, view * 2, &s, 1); + // (idle, hack, picture size, cell grid, texels per pixel, sack, where the sack shows from the front) + let levels = [ + (png(hd.idle), png(hd.hack), 64, HD_CELL, 1, &SACK_64[..], (0.7, -0.65)), + (png(hd.idle_32), png(hd.hack_32), 32, HD_CELL / 2, 2, &SACK_32[..], (0.7, -0.65)), + ]; + for (l, (idle, hack, n, size, k, sack, dx)) in levels.iter().enumerate() { + for view in 0..VIEWS { + for f in 0..1 + HACK_FRAMES { + let g = if f == 0 { hd_cell(idle, view * n, 0, *n, *size) } else { hd_cell(hack, (f - 1) * n, view * n, *n, *size) }; + let col = (j as u32 * 2 + l as u32) * HD_COLS + f * 2; + put_cell(&mut img, col, view * 2, &g, *k, HD_CELL); + let mut s = g; + add_sack(&mut s, view, sack, *dx); + put_cell(&mut img, col + 1, view * 2, &s, *k, HD_CELL); + } } } } @@ -2308,7 +2360,9 @@ impl Gfx { cursors.set_filter(FilterMode::Nearest); let badges = Texture2D::from_image(&crate::badges::gen_badges()); badges.set_filter(FilterMode::Nearest); - Gfx { atlas, sprites, cursors, badges, font, font_map } + let hd_sprites = Texture2D::from_image(&gen_hd_sprites()); + hd_sprites.set_filter(FilterMode::Nearest); + Gfx { atlas, sprites, hd_sprites, cursors, badges, font, font_map } } pub fn cell(id: u32) -> Rect { @@ -2335,14 +2389,15 @@ impl Gfx { } // the cell of a detailed sprite's view, if the kind has one (same layout as sprite_cell_view) - // the cell of a detailed sprite, if the kind has one: a view, standing (`hack` None) or a - // frame of the digging animation, with or without the sack - pub fn hd_cell_view(k: EK, white: bool, view: u32, hack: Option, sack: bool) -> Option { + // the cell of a detailed sprite in `hd_sprites`, if the kind has one: a view, standing + // (`hack` None) or a frame of the digging animation, with or without the sack; `fine`: the + // 64x64 level, else the 32x32 one + pub fn hd_cell_view(k: EK, white: bool, view: u32, hack: Option, sack: bool, fine: bool) -> Option { let j = HD_SPRITES.iter().position(|h| h.kind == k)? as u32; let f = hack.map_or(0, |f| 1 + f % HACK_FRAMES); - let col = (SPRITE_KINDS.len() + SACK_KINDS.len()) as u32 + j * HD_COLS + f * 2 + sack as u32; + let col = (j * 2 + !fine as u32) * HD_COLS + f * 2 + sack as u32; let row = view.min(VIEWS - 1) * 2 + white as u32; - Some(Rect::new((col * ACELL) as f32, (row * ACELL) as f32, ACELL as f32, ACELL as f32)) + Some(Rect::new((col * HD_CELL) as f32, (row * HD_CELL) as f32, HD_CELL as f32, HD_CELL as f32)) } // whether a kind carries its treasure in a sack on the back @@ -2582,36 +2637,46 @@ mod sprite_tests { use super::*; fn opaque(img: &Image, r: Rect) -> usize { - (0..ACELL * ACELL).filter(|i| img.get_pixel(r.x as u32 + i % ACELL, r.y as u32 + i / ACELL).a > 0.5).count() + let n = r.w as u32; + (0..n * n).filter(|i| img.get_pixel(r.x as u32 + i % n, r.y as u32 + i / n).a > 0.5).count() } // texels that differ between two cells fn differ(img: &Image, a: Rect, b: Rect) -> usize { - (0..ACELL * ACELL) + let n = a.w as u32; + (0..n * n) .filter(|i| { - let p = img.get_pixel(a.x as u32 + i % ACELL, a.y as u32 + i / ACELL); - let q = img.get_pixel(b.x as u32 + i % ACELL, b.y as u32 + i / ACELL); + let p = img.get_pixel(a.x as u32 + i % n, a.y as u32 + i / n); + let q = img.get_pixel(b.x as u32 + i % n, b.y as u32 + i / n); (p.r, p.g, p.b, p.a) != (q.r, q.g, q.b, q.a) }) .count() } #[test] - fn detailed_sprites_in_the_atlas() { - let img = gen_sprites(); - assert_eq!((img.width as f32, img.height as f32), (SPRITE_TEX_W, SPRITE_TEX_H)); - for view in 0..VIEWS { - for hack in [None, Some(0), Some(1), Some(2), Some(3)] { - let r = Gfx::hd_cell_view(EK::Worker, false, view, hack, false).expect("the imp has a detailed sprite"); - let w = Gfx::hd_cell_view(EK::Worker, true, view, hack, false).unwrap(); - let s = Gfx::hd_cell_view(EK::Worker, false, view, hack, true).unwrap(); - assert!(opaque(&img, r) > 150, "view {view} {hack:?} drawn"); - assert_eq!(opaque(&img, r), opaque(&img, w), "white silhouette matches"); - assert!(differ(&img, s, r) > 15, "view {view} {hack:?}: the sack shows"); + fn detailed_sprites() { + let img = gen_hd_sprites(); + assert_eq!((img.width as f32, img.height as f32), (HD_TEX_W, HD_TEX_H)); + for fine in [true, false] { + for view in 0..VIEWS { + for hack in [None, Some(0), Some(1), Some(2), Some(3)] { + let r = Gfx::hd_cell_view(EK::Worker, false, view, hack, false, fine).expect("the imp has a detailed sprite"); + let w = Gfx::hd_cell_view(EK::Worker, true, view, hack, false, fine).unwrap(); + let s = Gfx::hd_cell_view(EK::Worker, false, view, hack, true, fine).unwrap(); + assert!(opaque(&img, r) > 600, "view {view} {hack:?} {fine} drawn"); + assert_eq!(opaque(&img, r), opaque(&img, w), "white silhouette matches"); + assert!(differ(&img, s, r) > 60, "view {view} {hack:?} {fine}: the sack shows"); + } } } - assert!(Gfx::hd_cell_view(EK::Knight, false, 0, None, false).is_none()); - // the 10x10 sprites: every pixel a 3x3 block; the imp's sack variant + assert!(Gfx::hd_cell_view(EK::Knight, false, 0, None, false, true).is_none()); + } + + #[test] + fn small_sprites_and_sack() { + let img = gen_sprites(); + assert_eq!((img.width as f32, img.height as f32), (SPRITE_TEX_W, SPRITE_TEX_H)); + // every pixel a 3x3 block let r = Gfx::sprite_cell_view(EK::Knight, false, 1, 0); for y in 0..SPR_CELL { for x in 0..SPR_CELL { @@ -2628,32 +2693,30 @@ mod sprite_tests { } } - // `cargo test --bins dump_imp_cells -- --ignored` writes the imp's cells to /tmp for a look: - // rows: 10x10, 10x10 with sack, then idle and the hack frames without and with sack + // `cargo test --bins dump_imp_cells -- --ignored` writes the imp's detailed cells to /tmp for + // a look: rows idle and the hack frames, without and with sack; 64x64 left, 32x32 right #[test] #[ignore] fn dump_imp_cells() { - let img = gen_sprites(); - let mut cells: Vec> = Vec::new(); - for sack in [false, true] { - let r: Vec = (0..VIEWS).map(|v| if sack { Gfx::sprite_cell_sack(EK::Worker, false, 1, v).unwrap() } else { Gfx::sprite_cell_view(EK::Worker, false, 1, v) }).collect(); - cells.push(r); - } + let img = gen_hd_sprites(); + let mut rows: Vec> = Vec::new(); for sack in [false, true] { for hack in [None, Some(0), Some(1), Some(2), Some(3)] { - cells.push((0..VIEWS).map(|v| Gfx::hd_cell_view(EK::Worker, false, v, hack, sack).unwrap()).collect()); + let mut r: Vec = (0..VIEWS).map(|v| Gfx::hd_cell_view(EK::Worker, false, v, hack, sack, true).unwrap()).collect(); + r.extend((0..VIEWS).map(|v| Gfx::hd_cell_view(EK::Worker, false, v, hack, sack, false).unwrap())); + rows.push(r); } } - let z = 3; - let (w, h) = (ACELL * z * VIEWS, ACELL * z * cells.len() as u32); + let c = HD_CELL; + let (w, h) = (c * VIEWS * 2, c * rows.len() as u32); let mut out = Image::gen_image_color(w as u16, h as u16, Color::new(0.35, 0.33, 0.38, 1.0)); - for (row, list) in cells.iter().enumerate() { - for (view, r) in list.iter().enumerate() { - for y in 0..ACELL * z { - for x in 0..ACELL * z { - let p = img.get_pixel(r.x as u32 + x / z, r.y as u32 + y / z); + for (row, list) in rows.iter().enumerate() { + for (i, r) in list.iter().enumerate() { + for y in 0..c { + for x in 0..c { + let p = img.get_pixel(r.x as u32 + x, r.y as u32 + y); if p.a > 0.5 { - out.set_pixel(view as u32 * ACELL * z + x, h - 1 - (row as u32 * ACELL * z + y), p); + out.set_pixel(i as u32 * c + x, h - 1 - (row as u32 * c + y), p); } } } diff --git a/src/render3d.rs b/src/render3d.rs index a97884d..a889602 100644 --- a/src/render3d.rs +++ b/src/render3d.rs @@ -1563,8 +1563,9 @@ impl R3d { // sprites as billboards // the world's pixel rows (detailed sprites only where they get enough pixels) let world_rows = pix.map_or(screen_height() * screen_dpi_scale(), |(_, th, _)| th as f32); - if let Some(mesh) = self.billboards(g, gfx, cam, t, world_rows) { - draw_mesh(&mesh); + let (small, detailed) = self.billboards(g, gfx, cam, t, world_rows); + for mesh in [small, detailed].iter().flatten() { + draw_mesh(mesh); } // solid unlit objects (default material, depth tested) gl_use_default_material(); @@ -1638,7 +1639,8 @@ impl R3d { self.draw_2d(g, gfx, cam, &m, t); } - fn billboards(&self, g: &Game, gfx: &Gfx, cam: &Cam, t: f32, world_rows: f32) -> Option { + // the units as billboards: the 10x10 sprites and the detailed ones (two textures) + fn billboards(&self, g: &Game, gfx: &Gfx, cam: &Cam, t: f32, world_rows: f32) -> (Option, Option) { let (_, r, _) = cam.basis(); let toward = cam.eye_dir(); let amb = |x: f32, z: f32| { @@ -1656,6 +1658,7 @@ impl R3d { let rg = vec2(r.x, r.z).normalize_or_zero(); let tg = vec2(toward.x, toward.z).normalize_or_zero(); let mut mb = MB::new(); + let mut mb_hd = MB::new(); let sw = SPRITE_TEX_W; let sh = SPRITE_TEX_H; // detailed sprites only in the high-res style, and only where a sprite's cell (1.2 sizes @@ -1761,19 +1764,24 @@ impl R3d { } let white = e.flash > 0.07; let v = if e.captive != 0 { 0 } else { view }; - let detailed = hd && w * 1.2 * px_per_tile >= crate::gfx::ACELL as f32 * 0.85; + // screen pixels of the cell per texel of a detailed cell (64x64 level), the 32x32 + // level has two texels per pixel + let texel = w * 1.2 * px_per_tile / crate::gfx::HD_CELL as f32; + let detailed = hd && texel * 2.0 >= 0.85; + let fine = texel >= 0.85; // treasure in a sack on the back; digging as a drawn animation (detailed sprites), // frame by frame with the same rhythm as the swing below let sack = e.carry > 0 && Gfx::has_sack(e.kind); let hacking = e.working && !e.moving && !sleeping && matches!(e.job, Job::Dig(_) | Job::TearBridge(_)); let frame = ((ph * 1.3 / std::f32::consts::TAU).rem_euclid(1.0) * crate::gfx::HACK_FRAMES as f32) as u32; - let hd = if detailed { Gfx::hd_cell_view(e.kind, white, v, hacking.then_some(frame), sack) } else { None }; + let hd = if detailed { Gfx::hd_cell_view(e.kind, white, v, hacking.then_some(frame), sack, fine) } else { None }; if hd.is_some() && hacking { // the frames swing the pickaxe: no tilting of the whole figure rot = 0.0; lunge = 0.0; } let src = hd.or_else(|| sack.then(|| Gfx::sprite_cell_sack(e.kind, white, e.level, v)).flatten()).unwrap_or_else(|| Gfx::sprite_cell_view(e.kind, white, e.level, v)); + let (sw, sh) = if hd.is_some() { (crate::gfx::HD_TEX_W, crate::gfx::HD_TEX_H) } else { (sw, sh) }; let (mut u0, v0) = (src.x / sw, src.y / sh); let (mut u1, v1) = ((src.x + src.w) / sw, (src.y + src.h) / sh); if mirror { @@ -1813,6 +1821,7 @@ impl R3d { }; // the 12x12 cell (sprite with a one pixel border for the gear): the sprite's feet // (bottom of its 11th pixel row) stay on the ground + let mb = if hd.is_some() { &mut mb_hd } else { &mut mb }; mb.quad( [corner(-w * 0.6, h * 1.1), corner(w * 0.6, h * 1.1), corner(w * 0.6, -h * 0.1), corner(-w * 0.6, -h * 0.1)], [vec2(u0, v0), vec2(u1, v0), vec2(u1, v1), vec2(u0, v1)], @@ -1820,11 +1829,8 @@ impl R3d { [toward; 4], ); } - if mb.v.is_empty() { - None - } else { - Some(Mesh { vertices: mb.v, indices: mb.i, texture: Some(gfx.sprites.clone()) }) - } + let mesh = |mb: MB, tex: &Texture2D| if mb.v.is_empty() { None } else { Some(Mesh { vertices: mb.v, indices: mb.i, texture: Some(tex.clone()) }) }; + (mesh(mb, &gfx.sprites), mesh(mb_hd, &gfx.hd_sprites)) } fn draw_2d(&self, g: &Game, gfx: &Gfx, cam: &Cam, m: &Mat4, t: f32) {