From f71d9293fcab7476665800f81c90e6564519b411 Mon Sep 17 00:00:00 2001 From: Oliver Rieger Date: Fri, 31 Jul 2026 23:10:52 +0200 Subject: [PATCH] Keep the pole in one hand, and write the session up MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Oliver spotted it before testing: a whole-frame mirror swaps the DRAGGED POLE into the other hand as well as the legs. True for the one wound stage that still has an arm holding something, so that stage gets a leg-band mirror about the hip centre instead — legs swap, pole and stump stay put. The other three stages have no arms and no props, so a full mirror is right for them. The honest cost: a leg mirror leaves both feet in the same two places, so that one frame reads as a leg swap rather than a stride. Written up with the fix that worked for the shamblers (a passing pose, feet together) and the measurement that tells them apart. HANDOFF gets the session: what changed, the two lessons that cost the most (the prompt sets the art resolution; the reference sheet is what the generator copies), the rule that anything which must stay identical between two frames belongs in code, and the four known limitations ranked for whoever picks it up. Co-Authored-By: Claude Opus 5 --- HANDOFF.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++ assets/z_gwb.png | Bin 26095 -> 25776 bytes index.html | 2 +- render.js | 2 +- 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index 79fca04..364f31e 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -397,6 +397,55 @@ Known generator quirks, all still true: - **Colour-match any regenerated frame** of an existing pair before shipping: fit a per-channel linear map onto the original's mean and sd, then verify with a mean-difference number. +## Session log: the art-resolution pass (2026-07-31) + +**What changed.** The whole character roster was redrawn at real pixel-art resolution, plus a batch +of gameplay fixes. Everything is on `main` and deployed; the start screen shows a BUILD timestamp +so a phone can be checked against `git log -1 --format=%cd`. + +Gameplay this session: the horde machine-gun buffed until a grown wave is survivable (rate scales +with hordeGrow, fat pellets, 2 hp each) and `hordeRate` raised to leave a standing crowd behind; +the steward ('d') added as an ordinary body between shambler and brute; a pending horde can no +longer fire into a boss fight; bodies stopped blinking on the way in (negative-z modulo); the ball +machine rolls, dents, and dies as machinery with smoke; the player's death is five drawn frames +with the crowd converging and dispersing; wounded bodies walk; side-on zombies mirror when they +walk right; the racket zombie's cycle steps off ground covered. + +**The lesson that cost the most.** The prompt sets the art resolution, and I set it wrong for +eleven sheets by asking for "big chunky pixel blocks, flat colour, no shading". See pipeline note 9. + +**The lesson that cost the second most.** THE REFERENCE SHEET IS WHAT THE GENERATOR COPIES. Building +it out of the sprites you are trying to change reproduces exactly what you wanted gone — a +front-facing player stayed front-facing and a side-on runner stayed side-on through three retries +each. `_regen_batches.json` supports `ref_only` for this: the frames it LOOKS at, separate from the +frames it replaces. Draw the back view from the one true back-view frame; draw a front-facing +sprint from a front-facing zombie. + +**Anything that must stay pixel-identical between two frames: do it in code, not in a prompt.** The +brute's wound moved between his two feet across three separate regeneration attempts. B frames are +mirrors of their A frame now. + +**Known limitations, in priority order for the next session:** +- `z_gwb` (brute, one arm gone, dragging the pole) is a LEG-BAND mirror of `z_gw`, because a whole + frame mirror swaps the pole into the other hand. A leg mirror keeps both feet in the same two + positions, so it reads as a leg swap rather than a stride. The fix that worked for the shamblers: + generate the second frame as a PASSING pose (feet together under the body, one knee lifted) with + the prop explicitly in the same hand — a walk needs the foot GAP to open and close, which is the + measurement to check (`z_aw` 75px -> `z_awb` 65px is a real stride; equal gaps are not). +- Brute damage stage 3 was drawn slimmer than the others once; watch that the four stages keep one + body size (they are drawn from `z_g1` in two sheets now). +- "Player looks transparent while running" was reported and then reported gone. Never reproduced: + the run frames have zero semi-transparent pixels and every globalAlpha in render.js is + save/restore'd. If it returns, establish first whether the court shows THROUGH him (sprite) or he + flickers (renderer). +- The chapter bosses, the judge, the ball machine and the weapon icons were deliberately NOT + redrawn — Oliver named them as already right. + +**A sprite's drawn size comes from its TOTAL height**, so anything held above the head eats into the +body. The serve frames were 29% racket by height and the man came out a fifth too small; they are +scaled so the BODY matches the standing frame (98% of sprite height) and the racket overhangs. Check +this on any new pose with a raised prop. + ## Gotchas learned the hard way - **Stale ES modules are the #1 time sink.** python http.server sends no cache headers, so an edited module often loads STALE. `preview_stop`/`preview_start` only helps if the port actually changes, diff --git a/assets/z_gwb.png b/assets/z_gwb.png index db8843ff9444187645401832861b983e9085c787..756ccbe69f0e9b2aa94ed114a4807bb960701feb 100644 GIT binary patch literal 25776 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 literal 26095 zcmV)3K+C_0P)Pwb*1Y{!GAjcp4X^PkNi(5 z!)d^)H(lw=u^j&vSN-N!AHZi>tFAw<)_v($Jq2nkL%F@(=uHThKbU^$yRHo5SoXU^ zIqr|;1OXdL=}UieET{6juYZK=1sZF$S)I3cYYGm8YaGYYue!3{tSL*QWvczBF8l?p zH4I}p9!>>f`0(ehjK}fj@SAI}FTeT#KJwa>bs4+i+^tLL*Af~SyH3h0{?g*l5yFK3 zbYTxe@cL3#J%n=L%j?@!Ih4bBb?VD$9Ddse{2$@EqOI1O^|^Fo+1%fj&1OXvWWTEG z`_Nb;wNj72`;Hoo%ReV;q^9#)t-5kLj%D|-KX)Vju-{I|{t>PP!5X^p+;97`T6g@n zhH%BAu7ZO;oXYWdqCnB1@B6Y@x6dsvX|?TkU53rN9QKDYj+?T3+?Un3DyQGf5Bo>B zW@{|ve0#Sobl!WYtM-meUo&^ZfC$hg5WhbsT%|^lUHEV7?Wzppx(tW$d^-JJKJY)n zmDZ}P%H92Kfscg+G3ZNAA%edo$U)MENN}}Yl@ZZj-(G*oI-O3Gt`#Cr?4#S3eRnLw z!*DL8yZK!-*gwJ*YhBi5D5rA=$GvOj4-2O6Gz@gg^P-bZ=U%YGOV=>Kl$J7dLs_j> zG^bF0hyAgPrzL;wbFP1cD;5N6wOLV6hVfJeXqQ;fFu3{0;Y4jEO*WRzW?kgkzif>( zq7p<1D=@Iz?Ja`={lka4a~XaQ^Z1W&5pvj+u^%FugT@LmU`RLyuGI^bhY$d8h|m1U z>iA!6i@^N}nyaTkBO=}2ZpwHl<+%Gj%;NtmfAh5tEDKu84!i`YB*z`$q0A#QK7B_4 zxfCtFySSe*p<*s58uD^MD#9N%--nwLPyyG(tl949$BC&Kt<8Ev({wx? zi8JwI#I3|$Xz84$1NZwq^NRpHV+WO8GtosO(E6UjbT}M%9QaP(Pb9Fe^-AbJzgJDC z0tjm3vi{V>!Y`kL0g9)1Ed92@1y4atm7M_X0Ify9a!|Uaj7%6SFX$Dx744w@&cXm^ z{{H@s&h}g@#vc9uid*d-m37t$A?FPv(|dp7G8%*7I-?xv__iB?rUEj|J*4b z{z=z|5H6_yQid}KdBm0i#I!$jLM|?x@@^bx60JbO-<~?vp(SAYV4gOcEwuvts^GHo zgAf4IY2bM8ANS?)`$M_^dLPa_7^J82#~z4}`(dceGcPnwHC|E&D;R;KH zn}HkD6Gnh)A?=eli&Wy!Msn(PtLRAAZNO1BmL-H8f(t>Z``E0@!{e@Uw3zk@D1qA^ zMq*vq6*QvuEKP)kh|jPW7Jk6r+H5!Fa5z?o1FuVyH62XXi~9|zW07$9xz;Zgu60?T z0T@cC5Pd1yn_Sk!BX+{LyF;=!!u!x}OgQ8HK-fz}h|m^-DB8mNx7#gm`1kJ*eC>b! z_YVr!-Q6}+Vo+;BlVTsc-JU2sgcJfpPCWg(L5zlREO&Re)V{0GbXm}r97S7HXt(cw z?#kD%cV&CK)q`P}04+rvu*grJeX^>!ycKo!J zN;HhTxV0WAHizA@9QHaVoEw4x{B$(?S=X0ek|-_%HCEOr(n4l?HX%@orIZzJ%DSij zwSU|ZN5aLYhclDM{oz=S2bsGHtcGy3Z3_>Bx!rCz)Jo7~clX;M@p13f*WxjT5W?{X zqv7Gt|E0F&*1*R)p31-f@1Y#_aOB0H(0khVaRo@fD~~|m1ED=&TVpA=QAvd3-tP~h z=722riPyUe7X%Cb6*LBJsQf9H(=-6oDVDtGl$Vi?y)h*$d;|O_n@8@){t~}qJZzeJ zfoX&(#m$5dHT2q}oPQKltP)$aV-&YL?P^*`{*^UkDckL;{OgbV^0+^i|NGB(y-xPS znu%(ePLKjmWxxBAuE78P&)0Id)%*YZ|NY5_2M>}>Jm^4&awwm1y}Mb&#olbUjH>)Z z%T!E?v?`YX+KCY(o_r*aD>I=b{wn8S7F`Lz?8}NEX4||R`2$UC6~=%G)&Ut1dqU(l zLDpq{H`_JOW4AvQ*13kMgJTb^IRu-ucV02fKKw95g02F(yS*)2P<;%blF`~%fyP5P zbf1?Y@ot)HT~_B?IJ*Qwfnp!4qYO<1PNy%b7oJ``$xQ4<&W!>96Ebm>XMUGcEJ@%T z{n;+sH-dJ8{{&5Xd$-{+5QAEDcjR;R$Dther}FLFf6D#W4NV%4cP!<<|9v1d)!{gy zk$8?0G~jA{px|fi4>ZHa6X1)X>~=dsCq1+rSr|t;_BgiTIG#7h{^ql3urF`VOCQcg z)%#6EUSU(1poN2uCp~g|_Ps;{hPew3(kD%{66c(&lL@^5%`0m(W1QjC$A<}RL}UkT z1DF9f+^&31%@k`<9#2;`xAOURyA%I;F~p!rU00tHrnCNTst&QWQ~Ca|FWb|)?DtAX z-3G=*KND~XzjrE!)A76>SD&g4z?%wJ*OfCa5H2);%t~bmljSEFPAs0(a_nd($X7o> z=!UZ0Zp+>MozggC6rk2UNDE0=K^q=J03!0cz0-}X#j2BHXrkvhJ_HB5)4n|5Zno`V$sjwEnpK1|*GDJx2^ zlm3!bW72E+#rZd>G0RxKhK4dwYdp$sTD8J_U~q0q?owz&T75kYmSx2L&NtP79uX%xEs&oFn)Lw`Qj2VUcr{j_S7H`0eGzXK{A-}k?L*HPFmg13s&4SP5&`+05vP;GA zyNWM5Io*Ldx%mjR3p5n8oTI`9%7w5Jme?vFISl3B|Ng&PJewB;@!KEw^;%Tl4pD51 zhg}#_TpY6L%WxRZn_=^zo%}Da#Rf%@11>z&I4@L(LIXu%SV;KNTrr(84e_}`IH2Lk z&|Jy^)vOGGgUP!MP{=sxSOI@&fh9(%^q~4SD2hXrrsI?*MSm?&V3<^g`HN7L_#8LU zRiSv;?+c=0ES$&V<6i922w?J2>pH-ngK#-lsst&vRiT;;w@{yW5-HaaVpj z;WFAj6y(?xbt$JNW27)#H}CEa6qHlh!&hPEKeSjfRHg)~Nn)(7KJGK+vDpjnN=W9=T18~hrtjX`KUROSSF zP(VAwT`=|L;rpLF-*4aUshQz>BCtT@DxY-9AMt&Yna?n1s zT%je&sfQ*g9kHhTO+pTvb&Y7t@zgrrbjLE{0qNE>e@K9T{dylhm$rh#MLG!@ZncsI zw{YTN6xIfCSU-`m5dTbWfvD2$p^^VLJugBckK?(F<-_%u_!-T0hI}zxXAm>J;dZ#m z{v_R3T=j3?zDfx3Avo@QT{Ib+8AU`ur3Hv)*ulK>D>AdpJD7de4?#u4iJ&V&gZV=M zfygg!(v90pHYQVnD1*^_2<4uFpsYjexYOrxnVd#4%VD+BXOBBEVx5eKwlenSo?p$k zjH^3y^RyFoFFdcy`sO3iqJLPp939~TK#d=FJK;)1pl?O--R&w5+?6o;ZsVUTGCYve zUcm57B!Y~zUuY>p=RZKAoB3|KX-Ghep}OI|qWHqD9Ww$$+4M4f%tLl?(7}2Dpm{2{ ztJ}&{#rZLjema%^{`sK4x5BI_g!Hu#%@%YLq<}p9_q)0buGa;g1oDp9mamup1?*Li z>o`VFu(*~ozpHW(zW1R_+^9Go03Gm$omb)?^0&eM(|4k3~uUE?cP*a zgboIo0?=G0S}H#4N2HF2%R4R4O`+vAK!HdI(q_X$#{&t|NwXQP z0&2JDR1*Mg=_I|+7yELZzEJsHKb3BWPLo=kSX^ zpK#&8>BNT?VY&lP6rMOXOLIadlDuxM&7uT7xfy$c>X*NBn zx3AF?qAPb_?^#6zZKa+PI35W)O=uE&pI{|9rp0bSeV7ZMH=6-i$4w3hanen~fF0%FCYua^PZ3G=iq2N?97kjq^4Wj_de0u;iO4B>$j z5Qnl_DXlXMeJSK$0i#o+TnZ-!8SFuPl!H%`T7+34G405hj0^Z?1Xd-aab1%nsgUF{ zsA&T1#pCUDy!pXH>gns|{`~#$aPw(|t1I128O!;w-_fT+#jwzbKJ}bJ3J1m6KJ0_28zFDI4qG|Naku;yVz)yjC5W z?Y8t)qRF;qOV#(9`C@!c|G~Mz+|o?)0X~&()0Nd>bv~8T&8HA9Mj?Cg)?p3-_Hj{T z_2rLS6gMahgr^cuE^>u@O5^(Qd&G7+<{(Q-`A`_~-TD|#(dlc&&a;nI;hBEs5@vPz zeDz!CRJS=kxzNK~uKCau0Pv@2*9Zu3UAmUbB$`ggUX6Q+4F-JY0^Z^u=fDs%b!)alwqG)iYjRemL?@yA~enPXE zczT80qyvo968ty=qE#z2&&}Eg+6o#78rA(L@E)A|$K9^<$DZ3U9R}tSDXi7EZ}kA^ zz(jEm`D`a!ukL6&+lcw+m*Z9E$btjfHj}c*R2}N&{&Ha+rNe@V3}v& zbj8j1@KA)Giu=25x!)o(Qaokk(*1iU%cssdJVl8C5MDhz3CQ4K7R`DEH9uqJlLAyYQG<&5^7@;(Kv0M}wP3U^^8 zzX^he(la0KxIjOe1RfVskGKQ&v%ZQ!pta?95eH35EXG@IOTYeVIR6qw776=H;wW^dfsSL+0AoIir1RC!9pAQt$|Ni-%0t=0II0$iP zizN7O5066qH=FW*e}1RXZRvL&860K&ihwJx%S@UUQa=o?4%&}?kJ2;<7X07CiFwEJ z8H9^Gt>CgtZUE$=m#3b_4W80L1qZ;6vj3paJVNo*G1*TYv<6-kIH}*;b)0zaQ(tU$ zjJ!edIlv%=DEQ1NiyvyKgc~B}DN;DB&Oy@o?v~CzZWsj2mDG42=stT^th;hQ-d4_+ z09mmxu*COAWGI)R`gGAyg?{PjMB&dGca~C|LNS@tTg%Wwv#KvZ73%RbnML6|VdGKq zg-Ye%i(_RL192_*FKECK-^R@Yw+r-?*4|N{mq`rJF#hF-bq48NUn#OQl0Kk>_^xKD4W1Cd%Be)j5`5w!Zu*DX{NVzRqG&;46JszW(cL_$Q~bf7naSM}*je zo3)O?OT5s^fgR~|p7=UPqQp}R!CSBFr)0Fz8tcl{nmwXqwr;l+Vx?cqRkyR;5&*{A z&}Io;oAHlSo3v3)C{vneby$&!%7-g_H8Cro%_JauG&re#Vnf;88h{#$!l`bDVz^Fo zs_A5=XDt&D9e^6_aZv?Dc57GGO)I#1KH zUtq)%E-cHT1o)(Leq})^_lVXBzrsHLI9ZS+Hxb%^Nr5wuwSRalBOJ>}4BOe?fuoM6 z6XpYDW@H$k6%wlPbko5~FzeIWV$t8qQRob~?VHP9VOkX7; zLp&h(-F}lujw)(JFR$)SmE-^OKYvtM#>B{y1pvwVc!g;Gt|98AR9|VZOOrmS=M)14 z+hguB&I8A+C{}F=YUNWrpvKicKF)hTjd9)~i*8AcZvQ%vZ$Y|HoP+Op;h zLzR)yjK*YDcZFfO85o=3J;6y0LB(owGE+m5@H4QXmNJ<;?(uZHN+-4flMME#OV|MR zBCSJC8oLZ0q9b5mj-y&Jxefq}X`NF6sV-08NJj3PCl9iJFNQ ztX&^G{CAwRs;AZ(h5gqjLZhFaxXO_wY?ZvcYNTqdKqPeu2(w9RW>68D{GDo&;-;Ne zpk>Q9gGTN9Eu%)l3S=|LEUFd}4mr${n(JoPXlIy&`;&$Qg=t|!RZ0t&hX{nFs`ZAV2CU7mC1xz6tbTBmp zSm4Ta)3UFV|87p~B$@)P20=wsVy`yRbUp`w5Jiq=|fu+FL4)R`01nVZreBef|Rbr3MGag(X zPkF<>q7XKkm#Dy0W(Rpaytmu$=wq>W1;hST+3$BXmuHhl-)awY*hfjdXf-Y;!?Du$ zN{+LyLtd-69{3(KWS*e0?+%qAk+H3*yvg+XZ}+RPgI~W8PQNcOGZ|yh&k1w1?8ker zXN8Mtgb*kuZ&M!5CTxNqrSk>>P>8#pEJl#d*yCx0lY4)kc<#+nx8sbP4%`VB=yp3z zlvlOoJRcPf$cY%b32+zWM$?($3&KfPQW+m!t%OxIpth?wip3)kihf0`427=b&_~P#0A-vA@DWA|N8X9e^iDT?U;n58Vs!N!Wik_#gIrZs}hsc_zR*WMJWK$iH zvZ%@NGi4}zSXk2=8V&9IfX#|fd~N4KRngwOMN`N5FzqAZ9(}?Btj727ga5ewp={qV zk^Q9R>bmi~juw+DRLv$JBb+)}cLBuG7~eqY`ShyEn!kcyH*SXJs+-vE+haXf#6>nfXRP(;M3Hj1w?{>Xe-X#p|xJ@1H~qWBLF+Vl+^(WNJT~I7$1%Z3aS>d zcJ|Hn?n79HQMpLJMwbHGFs_aIq`D1xJNBiRvChS=4N01y);wtJ2VAjZl$tq^5sf^| zYB@3bKfFUK=t8)#V-6FKqJ(XfT_IQI9_$7l;ZNYSFj&0l^|1`$24Nd`z8+bap(z-y zPTT||bq6P#ECZxwBA*xcP*KuRK1>KW7M@J_MEOw`QW1{*?3|30PsKALu~glo>ZE2q z0gn16k-j~g)b)lzfHDA3ePo?Y;{2AaaJ_qRMC+!Fd5K(NWg1T&y$4V!~y#mU8o2 z_-QJGl4($&uP2Z$FPH*gjMhfZO}m+aF?V=#2Z3b-WC~lDz0h=G6JEm+Fd-TZqXxY; z<=DZ#3KYuy!Ri3E)-?b#G>Y=9V!)mv=Z6Ore}l54z-D@cFG(jdXbSDu&Pt{n`ypLC z`EuFp8;)UO{_8y>UW__^k2TR;TQt=efnSN!{SXmb6EM4`MVPc@mLK^~VBsupjFS)T)j>;y1T_OTcRUd71Y$BJV$&`IxM*l*GdT zN7R?~NgRiTC1XyYE5pBiz{3Tq_FhhPi(|Om6y=E~+bb?{Uu>ybz zt0Dc8aT=PEz|ByK?ji>Ct;(Pv_dlag`#9gPMfphfeAfx6-Lxc4IVFR|YU&@Co9wr}0J(LA4R<|AgmXU*Y-8P%0*=TV`cG<0*J!PoS>lb=`p{#3yuAx4F4p8 z%PiF~w1slds)lkEcRkjb-?(%?+7Uz~9VK@@PWHTrD(uQCS7M-Tpu5&%(0Y?tfl#mdFCN6E|N@|Zd!g) z9GZ)JB*9`rn7K%elw-y&3bpy^#IwhL(Y%(4Wj=|+#l=>7XDkB(2+mPdo9?FJR4XWL zB2zZ0LCk|;uiRS-4Kx|LtAq+P^a1X@OV`M)kK+)Y7M*m6inj)LEwB*8^Bko)TlffX zs;DVnh|bdPbN0-(QnZ}9^S_^P!NJ=M(QOY6#mM`P<{n`#U@jpTcn!bfBEf+d6-SGF zBa|$%0vXz>FJF=P4cy14#qATiP{*57;v{i)VQ9J99y~6MP;!qmfq<{dA&M08Y8_+Z zV&-eQK%=_0`qa9}CqT^B>-3O36=bl|P+TLZFs~vP` z(t@JFZ~o-vm#5J)*{S8%fT%YeP~3<>Sl^c##kv61=2HIE^fu89fyQz?5zpF!SB@ZI zqORQxP3BGznY5XJRXM=!gd^5LGn=*BOk6NB4cu_9?!vvTn$}&ss83l;ccZ~W6q?8p zZ!PX%4zgibgfhCU7F*ev{%ktrnxEy3c{pia!2HP2I7y(D*oT|q?r5_JbWZ1iwLtb| zeA`Zh3&N%3t;?0Z-ro^Og;4DP!UfBc6lFw4%HAp*4v-I8Xb;ekk(Qp&jADzvE3g%d zeImlF8Nk$c6mdD9H@RXtFBg%Ly;%dQnlYp~K0o@TPL*7kY-l1}AJC`<){keGPJLrfRPoF&`-Pa6tXBQS3!of9;$j=ewEKt zep?F`Tx~;q2+luAg(K?&ox99JWNoK5kL?Q4agUp>jxWKa$a-iIOG*cKc|j&GvnQ%^ zh8C8H7OP+_tZ}lhXYQ(5HZRrl{1;!4(;Q7c^qQEFy)|mp}gXt!&)HzqaXC z`bLRVoQ(2=hf|Cz^;%MN{%qGqX0$o(!>eeIFab=$K(WU?r-WITRObJ z*jTUDj`gx%*VA6}%#uxC544=kgo6X`McmKO!`!5H@$y|q#I6u0`+Lx zqJq12ixJ*0j+LZOj_TwlP6bSRHNvm{U)3j?1OR?&uROWkb!~!}nLQmQpk_)f&GMV$ zPw9ub*1FtE_Cx&;c;{1%JC8>5dB45p`ZAd~){kfOm{OIA*bcyU;8>$hkCd78u;`p5 zFw|aA%z$@jQ72JaG~V!EiIKobvFyEokXqoUmOxk@A7RtC9G#`0e4 zk-atARfVhX%lTjb)8^JNzZk*=E*D#W19F%_0BT#=)#m-x0j=gS@!KbeQ_O^pc0cR| zADfQB6cv&{N(C2`Is=*gnOX8}79!u0RqarhFXBQT{5lR+e~n|Gux|Cp_}tr#9jDuP zLaXWTXLKF9)lfUPZSPS+;bOr!r9kJL@q4dYy<yx|O&!t(^MVV9&z2W+@#Rw8~|GftdSUWRK1f)0!S0CB_igu^jhUf#~0H^kk zaS=n9Ok9q9$=!Pa0_+@{LwP58-TkF9LBUo9OLXvf-nfb>EK`M#hYMUbh-<=OSR%w` zLa<1XM`lE1WsrDhgjKV^;rsQN#(Hcu!!Ys7s?>+S6vDg!`ij!sdU4^CZo`f>pXHbi zbt0?2Z*MGDTwgGU`r991GOEFblg$vY{SGyTZmHZ1nj<)BB&#k8(MX5iXXa)jAPUyk zISN=^lZ{=mXBGQgZ8<0bjkXWK$c`hMt9j%ev=u9P@Op>hgY3~cG6dE&_xJqKrfp?n z;&$@03MwWh=TfG0UNIz!Oo*6b#)pLh*FM4`o36 z@Y+v8g%3KR%!y0qCPBa`-yNvaz1l0XqWDnzk>aPPxT*!Y1^}o|P_3A}d~qAl+I+4H zFDA1)lS#@2z5(L#byt4_@o#-rMJ385Xx<>Ic>EX+JOBtq@@=CN7w-8s`NDN+rd6e*JFjeD>Ym;q% zISt~+SF&Wm6D_-z%cZh6rABlHOqyfpdh~_xg6Rc6Ud1Z9cIIehZ8y+&jJe%m(wvFF z@_^8Ep!zLsi~7!0>e28m7l9aZ@%ZKj@HWFpXeazyUoRH!4zMh5BVb?3*b~13a{-IY z(i0M}s~Zc~BxrT=6W^OP&>!=^a8y`SYwZx9Q>Bmgr>6&|Xkf((ZsPv5k8#E>OG8%| znFVs!Z*Nrq8l_q_23nA0yW|-mBgDa3kWq^mQ(;{IF)>b23U8kfizLMY4R9($Os~LA z#{-f_qjbUb;_w=lP&jtxI*J0Rr{fh`SzgNfgdCb)-eA+E29$!X>T3+A{MQRLR$)vrv#SqXpQ{p08` za@Y>K&h@gn$Y3BC?Fcygx`Cb0WH9fjDU3s#9I%Op#v7d>xLCEQINC!MmG}GDvoHBx zkz$1+cI8<8rlpl}D_xXQ9v6gfjt^I04^d9sFqc}9fJc}?rT4C?VRiBvRnLt%O89{j zBE<7jnU*g0WyO!pNvnWqU}=n`i`*vpP{A72+f)5EXNoGyQau167Yd})R5L1c3FZi0 zjwwt~6>P958g!!1G1EZ}wJ&{t7aBYHm@uUrvTie|(SmqRkelsLwC_M8n%^lm>rUEj zJI5zrwfAZM771sI&ow!m!!=m&pXeXc-nYqS9O&d`9pNLmJ6O^h4AC%+&T=@mEc;J4 zS=yzwH?lTEgxZ|lXcL~;=@z8=`vQdTt~9vWI2W}%NFAb+DG|Ok)sl*4;S)wjLnE~%=cUf`!usDk2KJ^QGz z>4u3<<$6AWjmZpF?CHv7z9L|)*$S$DrjGX{_#5k&;wAZ>+~)*Z&@Ub_Y}p~xG|KeV z9^vvRGxkNF6zQ^r*TIi<-&O@z*muU(esNFK=Vo9X3c9H1@N)GW6_1|VOZXF0MQ$t?jw+qlL_N-Pv-5eh+|LwDoD`B)%^*L^ z0mjr1(>8F9O-pL^DaSXJ&9;vQNVo0r;f#iEuIm(z7uyYuEQ`<@?p6|G^zc%D3kbd* zFxE_>DN8^sZj*2|ss8@moC9^q^>)`jmbw+gfv0+ALyQ=fIUx0et}?hV5FnWWrh?2O z?Sy+FTzATXlzp}WHNqY2%kWDwD47nW%F1#VnG_)=7m5P}CMET0rI+mMq>*ihw~dDP@c1${K)#Bh`ysY1=}aYc;n_XwkQ{sRWjr9XSZ98lSTx)|1+bWsr(bIBJn%=Td`BlZqI13f{$?#fML1ML0~VnSOc#SjSqgkkoee(FEnd2 z(mdccb2H+-x2x!)(m#dno7_DOEER0MT z-~5qaFR!Y7XAMYVs49;?x=kAH{pLRnJq%&YDkx2K2Re`C5k+XNY80eHtU&EK2D_l@r^>+)%6mzRL z$d%T4$kRe=Nt*QNHt0bG8JX{DuhcY}Ws20KpG^=sWtQ4o8io%dtJRx!RElg(r`;O6 zCDL2Pxys+7wlg{^iuuwGG^)qnqzdSV%;J7pw12T$WhY=Z#KLHFgE^lv`dW^ zlP0^iQK!uIF}fLT%{lfMLIDufdZwE9_FY_41W#^)Vy;=O@G-8HACU3w3C}+@Z}IBl zMQWLTMUDbJ1r|22F^|f#a6n7Zf56kqUJ)9u?rr;`WxR-$Md9FLbWDqa+A+1AG{*`e z=@BwBV0>ad=VF%Q%0}zS57YElt{HM)eY=^7rY{s7bqMkvhtjPOC91#Kr1o?2Usb-> z#>Y9=>TcT+b!We_?f7ki##a@taTssPFd|n~ok&0qZb76E#XQ9hv#e9nIR=3vbphW@ zp|f&}T)_`>G^G6rEw@RkFlLsDB|qz#flgD;arQ=-+@=K*R@E%-l|qjRNL=?I$In!^L!xIv2XSo>Dh3G#<%;b=T8qHWoBl1xlBq+yqBF8Q7wKaQ7w6oxVpLw7FmdF! zNAGyIN1_R24|s&inW1376rbxS4dIsf;@4IyVtDSrQ<#@un}=r(`f5?Hv@B^ZCEAS7 z0>d%yCSGyW`;yVa#JqZAUio0!&&xp2{I=wDrnsWDV~=Wa;JgP+`#ye5;R1KHJM=fF zv7EPeD$iFb*osV2^0Jt8#n8`9l*Xq_zC!kg+)|0uk)hJ-lx=28h3ML`LN}G z>GwKQD53I3<7;=HCl0CRSp(okAPnvMVa*~|yYa?m++{DCpjCdjo*xfOXK^eU5o+X% z3x+VdCRsh=B=N;-RngLMv;%6rCZ1|Tx}Xgbz`>;lqeY|_y-jD|_NvDmQ)(4m3VB!J zKKiIuqGMU~jRfhm&Wdg8Hn?rIlK<>~wogyE^y_uddxnoMT=tDH1hbOxqJi#&DVq3H ztn%S7tARoW6NE8#eoDXn@hx4Dc*3q}uUs%%CF%u@Q0E(|pN;)ung@CEX;#lmT40W2 z8EDqU=CG@+w2tuit!dC#wkLT?f}EHek?fi5ujLyjAG;poTuah_B;n#Yq>eD~FF1WQ zcm7jmH zc+mug&sdd7wx&VVMeXJCF)aUSyee&WqSabeRHE3tO~&W#g{uizpz+aqvT?*!E=Fxt zahbSTakXo|_3$TaT}Mu`eH$|8TTN@`P*d*Z)7W-8K^y5h_}J-_C~MW@kN+p5(R`G z20lF=Mv?{8vZ{{#8$Y4uk~xr{LfxO>^Ul;#g zI_8OsmY(oSKTTTI6*kwleF}19Tg|-&XsmMlnQ2|v*tP9X8VJ-L6ERafS`w@_ssI8; z=Sgg8MHQ{#gKhB%d@eW0jp5~WU_$H2$4})_BCDlq=(%~};g6wpxk}?zK~%T*)Ox8V zO26l5e=&v#4%@UL$#fw~M3a>)KG5dtJc@V{{bdcCbnV2JO*`$H@@1q z@x}N9f;Hb)10dV+UPE6e5Wv!f7~1$?_s~Frk0$y=n^wYzg(^{ zzTyV}6l{aY8T|ByTUW2P&FQIYD7#g9CTl37#$3x*M)*AX^ z5OWQ`ii10+YOGzdNdD#s(ff|imZhKd>n{a(;)W&z;$xwzr!!&#^_?O*1xZO|)l0MJg!P zQ^_$ovxa^j(xJCnu5$+AEC#K{eGRads3v)!`ed8_H!(>@Tz?E@fAV8l6J`01GJ7{S znFze8E(;r55ejH5+KXL9%FBJU+Us@=rmdogOTlO2q{$U~+2-o%in%4?r8lZ-YxMmB zm}*cp8pahC$b4KrS6c!}Crs4z)MCNGWkgvWRe!1tSeU(BRg<3L+&uQj^7+@JyY!er>$8!z2`;HM1G#bCF4S%5*L9?9i!3D~c~ zC3*3I1vvo&_-1`9XEc4|^=9*A?>imQ#AlFEzPsCUKYs$sDC0*iEz@$8RAPjP`)4tN zbY3g|vA_MHfq=)Ddder>{X1ixcI7iotfHe#m-Tz&KPYT7)ib#di=Q{$IYtfF0OrSb zIi^Bi5hBAmU)VR!6oneB{<&-^4#5xrnj*=|?OgV&_z`#F*9%vVc|PjEN((z?h?Y{Cz;)nYqz~}@z2Zf zMFVM#17*x+`3f(+I*UUWKCp}_<=?tl!re%{O6}V)1|M&Q$YPu9HD8h1TWm21()f%#%kunQCtoCXLwjijY9Y}enh?yk8w8E zg;hXl1HJ}6V!8=1n$OZ$#tx=08xl}~Z}hQ8)0E97CVjLoW!$Z!h6=5K!wN@xl0USz ziint{`-fv4KBb;p3Q(xQpXo${;S}pppQkxJwKBh@bM&Do>ED;`d&h0ONT|wiUT;?% z1SY1iju!>b$KCP#2AWGH`!G)sj^P9W&>h0fz^z6PRBEPZ@HTG|$!9#sfaV&x?V|T# zYaz2H+h)__)JfAEPdx2mDla-Z2i}GkaJ*>2$-2%0 zwGM4H_Bi)V4FdE)!~``K`pQzhs&EZuIQyyg(?}Bu;Rr3VTD4Jfx{1PY7Ec04M~E9mvMerFtw&mK z9QwXLm*FzMNWtocv$$c%uIT>l9v>?zK=X~`1+!v&W#JM8fp$ElY&*d_D~&N}K8?O=3wT_yYn79q$_Vvz=( z*cU=}^t;TR*Hz%n^u>ZklhCTENqnSo#V;k9jK4q7Es zOH5lJ+;`N=&bs$mn-7;5DU%=!M$9u>HGHifrNNAV6x@W5*xwbMHLK938DE{CBH8U` zi`f8WJYxMz@U*sfipm$idi5dJ zwJF_hn)ts+h)C;$(hsndJ=qr4s|i=^fa-f)*2GuXLGxzpP)3@wqM6)lwwsYg!ji zUEGv-O>>{80mH=+Ow90we!l`MUY-Z(#?f`JZD*!QCk5nPYi<`bBbRoyei;G4rrJjP zfeR&dYqJ#{i_g$+K#7fF?Lp3 zyER9R#^u_?3+F6_7e#VCf&$F@8GxFf=No^GBq_+sZM1@i@ErrVy zJ4ST!>2IzL75gQcD@RJXPy_sVEJt5h`~9xm1FWP2Z%MOw$*?H<=s#&XBl?2`cSJ~7s@}y{w!2B%C;|^&ZkrSWtuYQ4WVMVlNT63Cg zueX~tFzbJa0qSX7aD@V*AQd-+RWgAq)u``6IkhM){`#RKcaD>O$$ZOKDrF`UJ4WqO zzGbUeqV^`-){^yA$=6`<kjC_oZVEb}AM4p@<;Z*37a~3He)i4Nm!;uX? zS#I{`!o}!{K;>m6aK4ykOTw|`_*@j4ni0`iTcMHzbZHMzZ%>j^J=4OC6NHd%ncxH` zgr9Y^YCsutj3#ZtwJr#Y(ZNqevT&-`?YPqX9#U$YC8$15o_ioj(Z46()>?UDS2l2WgPG_uk;sbt|<@8(bC*qF+U2LiIEv_lyqLX*92Y$#Y6Lg z#6rj&J0A#(eJQdR9<=e@bz=F4s< zADo~|tGV%sk)8&hh5&D7`?|n$Me4*Jaa>H)Bb`PrUSTly;e<;G*`^5;c!YUKzLbX< zP%DLFuA${X%Cty%PE%o-M+{uXHwS*0XEj1Q5Ir~CFvAb%2T@3je_<(k%ijXkzbKC% zFVS^vOZ&u<4>Rc82Hp5N+AsR3NyJTQTeX6knsyulZX|n-=JO6` zxr^@9;66EZZ0+E{7!RMQ-_pw9wIStl&8M3$&6jmk-4nal)Mtsk@8RE#<ldF}0%4Ek5QFA1>c$T#nwkK!G9yENuCD*%!>;y9MIKQNwP?Y1GZ=~>e2zg?M5*TKMjkbvZBLk9?Btw@S;`TnLopF2ONYU4%8xXnA#Nd7U z8Y>9WXhF?jR9Ra*tOWxl_B{S|jJ)=Bskxna5H#CT>{>2dhB?6fk%Wss6Bi51j0$ExueVF_E6WjTa3sd;3Pt(cV_r*g=ENP7;1ld zI_{y}8C~<(x-uRyxPAEP{t<5;EgHXRT1-MC2RBBQ#AjL>X9id;QIuyN<32!+iwcz5 zA!pWp$ORkK+{Wv*D|7V^k?IJ1t!l?<-@gi_R4Cl}PWdq$dX)w?WWO^b{{F6`Up;%5 z8HM>GL4ZD;=s%UqF)P|_ex{bNLIn=ww5?X<`=8(IXZ8S2Pr%v!T05mTcj&_g1VASN z@}&5D*X>UMC&CSurkP$~VlnA&w}7<37?_1z89U;|on@5#-Mnh^6V^Aj=+)e@+*dS5 zc=;G@);+Pc3&E>>O;c{tTsLdfIxVc0UO#gkR{F1h-b~2_Kk4y>r%yxKkSgb%zkp)>I6S!u{*b{z!}eIFyc&x=|2>#I6v17w7N+(I@S;bC8clgHGLH3k$4sx!5k=5e^s#F z2Sg3^@2VYixKT#Fb+oG&Jj_DP`qb9iWzl!jH)B#qJoz=Mw3f*lE>${La~2%%c>*p+ zstrM}N1`V_>MAP_E7B+S#m2q!GSmDLGCT@QyY00`Sx*Y+l|%1q6Qtvq#eOLGPOHUcQMbZ zr0@HihLBw^2>%LYXUbBz0?H=PJhCp)d)B2#Rsb~w^yN~AM^?W>AWtj+>BjNpN%D`Q zxw@Ni9H&?pdyB@CJ^%RC+*Zz!J-tiu=A#9Zi#y_r$ub49uF3apG;#pD#@xu}XaZBs zOi-3va8@0gps|b*c?QMCYBD(J7pGwpT+Mly>(ZYgWQbBF=>BrkSUw`Qr-JXq$3$cS z!8eWdOL&EOR z5?j@+F!P>ZBKVX8wT6j^!2!C-r-`#~|I5*)i!po?l@*BmXO|<~j43sU!sgd!$9;qk z2i7Me)|HA)bJsyS?nfM_TaHJ{2`tgER~yT+DX0DE+-=Py4czY#%|edHo9L@r-fF#z zSqwBMSqW2*BWoY|JgtTzKOc-QFXj}%PpT~~<QT?=&c?=6{OU<% z;ctbh5fjwsxop*AQ`HU7zVtHEFAyvhvnn`nlMgI)`N2aOW}5z{a=7rBOy(ndbtpH7 z$KZ<#jOBukOj50Ne5MoO%44ARw?DR8do*=5E~-O+>`8heq!z? zCfH#rWZlK#PG6~z0nM}ohqDpc5D#WrU2h`FpeaTo8fFs@#;UBY)(n1x^*)+wC^yIB z>CCp^AteGIPnrV3z-|Gg%vfrABvSX{Y_(wwS~y31Ct}E zO>?j6A(&5`671&HOXIkA#PTU9S`KzCwGoCvC@28U$T*sy0%`dH%{>5&o``o5HuzCa z`)?^+dm#0r=qqk6+c5gFkVtuEO%%W-XrW4*)^s*EX@g*aDex4gqi7J}zbdocAA){W zKpgfWYnms6uurMiQ9^P&MP9G(=wH#;g+Mw0s@NJUz15aTJsDmXkNPcqu8Gg#&{$sm zVsnxN9ZhamMk%UhNC{f9Ia$rp*D51#0On->OzTJ7K=9DWWn%w(bp@n}1+g#n{Hlc} zFX*#6up~~@8q$a{dnao1DZ?pf8DsXrdxww`ij8d7yCK^j$N`Ez- zRtr^Ihde4GPlZ_5CU9$zUqmgehldJ!#rr5ub2v+2qIgm;*PO?9*{$S z=wH-f`R{BN)nT|I?@e@a3rDp)ii`c^imk)|0o|;Ydt{PhsYA`r#WLECWP5IwaxLT?u=lg=@LdBvB=t&IMlX7`` zl2&u68gd^|mWw7$DgKFj1YzVLCnm*RDC$XKt;)wfrN#pn;#N#(GpekFX-&!qzmJvC zL+)y$@8BVGPxm?){u8b@oD@4<6e?(rh~6A&Q3w`ug_oe}+_}#{s*(4Kb9t}EI%ktB zesq~1Wev1Mn{hw^GuT)E&sqyUntDb+kRVh-+l8mOye`+I2mqc=7Wqu;-85G?q&Mqf zbuKU&=#Rehs5iAEx}2@m)(oVt(N&JnCguCoV(xKoQ~7g~P=VT$S2YeS0I}(VxvRlQ z@Wv1g)|TeQ-X(CY##wjwX>1Rl2mhTdp~810*)Lcc+`=bSUhj`{&A?A;FkzL+)J;vI zwbq1~lc~1_qpKl0*7r>-~jmQc~ZzT?ol*uTfGW%w4!Nix=p3B#Zr-TD%$of=G1F z%m8}9fiu616ik4%?8nYV9~+JNnn)b&dc`uXyc&at_sx+K72Nx`vKgJ9Peu?wWNcoBev>{=@{cc!R)}3PtH5RWHe?2E%_4))-MyTs#y@q2VmG> zgiDiHzc<^?6yt6vdF?4-t?^oBg}|tsb|jlQQ7oBgkqYHQj-kcaafbOw&}n-5SoqBD zB%1Pe4g8DtvpzkS9JhaL$?aa&)Ax-Dvj6U~ze-IVjoWp;~ zHGO)s{-^zUlxjeunzbGr3P8SZcT3B3U@U+?eG`+u2t74H}}wMH`_>JH2k5Hv@W*`9b?ro#My zGmow^Xr{)&?lJSG?ka{fcvg=%`krE@XpdMY%zElB*m>}1N>;mJ-Te47T}bpJ{rx#J zi@!j)>RdmX#~}Je!`FJi)bBh(?OH>)l3HCdB2FLklI*%?EL0`gu%C`3_zTTqV~MgxuS1e{`XoDw z5_K7-N>6=8f`lpM$+Io;s?_Oc;;eO9olz-90l}ObPrBgtBfj+TgfNF~29T%E2LFF) zUt^0;L|2=PHEW*<{+R`DuBkukdRO6MmqAqJ;O<4jpEoH9m!Dd+HS%D9I)oez%#LWx zFAYOY#XKZ}gX!R>=ddwMoG-n!PK7=~FwsE<%mi*LSQ}^%g7m*Rc$zcG#E{}W&cuC0I>vL{k)c1Sh{T744~FO?UuRWZ0t_y+m~ED!VKOy|=kV{8(th z5hDO2alJvO8{{4TLhtwTcX#NgspJ@?QZcRksTKvg{LD?<)Ij#6f({E-ioxilm-U%c z=M@A(o%wopka4#iHTpmaJwef-lpUvL#IXi!kgZ>Hwwv%|Ijf2DQEiv1X^hdp^yLzM zCQaTd#-GomexCIK$b!0AFgI+q9i~rBOWF;qQ5UCT$V9asp#hjqf-Kz3aQ<5(En!u) zg}9jv`Z5Y8SVJ8Ug8RwW??q-ofNtH*q_CI&Bcpjt4SZWyY73hMwzdU8cR(b)e-o|s z?q=~CG+=O1J?QPgYc7scy6m9GKnmt1!u5)72X^MZs3??(88~P(N0dC8rWH_=Lwksp zET^5kcG7`{8)!TP9IU|EAIkQ2D<~vPuxAiWeJz8nN@uM@qh4JJm3LjqXU4QXsOCzJ za3puL$t+XRXUvg+sfyOpTY63jcOJ8qwxo-eHhV|vFvvH zx_@=LQCp_0j+`4%b@r6iF*WtG`H$9GpRl6(<1`|f{B{|_n|5;y-g&0A)E=bn9y7~F zYREwh&4dG9!!J4@VLx6@khT5(;v za<<=UGL~~rF@^=A^aW<--xOc3W&j%js^n_72}~V#}j5aODMPOY}2@307)@n zmE9-erd2LFo#r2_UnI487440J)K|^B&2IF2a3p*wD_zCH8qg|V57F>v&mVrAKJ@XQ z3`x``8)^0pmOIC&5t^E$olXaur8;&lH5ajl$<++#fK1^c`2KRiLLQV_i`gL+usUT^ zd1N6l_gNq9_)8vAI%Y)6eO~ zpOs$v(S(ah<6cj#cv)DQ1<2m;6auL(q2kgOs_!%7QxO}``K|-QLQx?FDj1@Ixnz8x zK@f%goU`ni+GfexY_}GeD##cc2Vl;-NodAX&w z%$8{_w`@P88-?j%%pLX#y8_A%jfDu3?Z7z-m77v$8#Odh(~+MWOo<19gRVODchK-n zWd&N0A)oH{7VHWI7l=HWvVsXm>!XwWFm?(=HT5c}%fT=`496H~@cXX!5w32b3@l!w zU?FiFoGJ>43uaN_42{*Q9pum8MgweRml>yUO4%cV^w^c3td_xuU*-?f9BRHEg2Oab zF1m<{AfFc-^ZIPN2q-!?AyM0J#ka$!>~s1-qs5lOkyDPM&_-z%@Yt1yhew(aXfd%R zS~>_fk)#AV$Zg=b1oU+fZiq>r>INO`>h4* zU4#oM6fDjNgt1C9o&jjOE*3XtKkUox?WX1jJGMbmvRR5QgerloFoQ5(73Gg&o1a~n z0yYf8*)tBw+{f{7^l#I+ShWwU2YmJ-HF}Me@MsDBZP+xwUbrwx{si^UeyF7!PN2Ym zRiKI=Fb?vy-r~KQduywLqN%9}eH}a8F@}Wz>tDQkh%Eb)nHM-tXALep{N<>TJ-YzZ zF5+F|VvmX6eZ8r04aAD1sn9$Yi&MkatyhFK89TvDaPXMeMYe;8cUX+zIJ(4<7h}V~ zvt9@B?x?*+wM+`?HC9VX2fZc$RF~*O*zoXVYV&9UBxYOxe!1x<*PGh?byV1J(9_cU zEAZK)&|#rxgz}A=K0y(RDr7qRU?7k*C`5`qxhQC_H`NO@jhN9RFjS0(RxKT)l%tqJ z>VmSM*>~+3Vnr7$U;h zI)yf}c+d|i0n*^5mVH4d=(W3z(^Aq zJ=x8K;vxJ@qXXNrNkBuqcGBv#y(Oh2;k$*C=+0$EI%0n&JsDW2V=C()QO3o6Mx2yZCTh*HREe92m%XvBXP}i)r^Q; zo4~Ojs!~QCBn2?oodl7z9?I!#h~{@*Z?3uE6hki1@pUeXTyOk9^E04Cn!! zWISSp-;6uTXf1rOV0FFO`M|7?y|6kC_rwU6G}Jv;P+L2fI8GOIkS6Vn!~lO2+Vx5l7oJRL6ID2Gl9^DmG|QNp(<;rv8y7v>d4mE&V)vQU8?3R$;yqJLE*LG`^7^Hetu+QQRQb)U>MHFYNf&Y`^34Z8uyYhG$nsuOQk zM~2}$eXfGPp4f)bEbuc=Wj*}9(c{f)Bl07-@;wmgs6#}V*BU7u^UI@bKH6zhdj)QV zix1d>eMN~UNvK*OM*n0tK4=i6k)ZPcO}wVl3|h_DVI;AlTJq^5=l+OwCO*^Kq>Ibuw&qDD(Fp)VOlL> zOs}9K8-lrAm(zayEzRSX*N6nsM|9}n8*RvG@7Z4+)2d^zuP6wc`Fx_8=@9Q z4-endXPQ4na-RFOhocXtxwe;_>xl_WApza*a7_ITgyS_9!;G#_z}Uzws*c<;6ZMnr zAj*Xzb3LZ9J2GugUD+M?|7fmxcfJnRP$bcEce|xYV*4SmIK%&7<9~YFU3uIc%GbNw zxWr6Rg_mTQnS&ag|_u<^Ui+?X}En`Z7~CXfijxo|Dg(-DA1w2jm?!SW4Pi z{@1Vy0`@44S_i9}qGJdq+HR5qHvXQBiN9oaoo}WGlnY@C$IZbi?+)nq@OrBs`qE&gnYa)v~*>6J6cX{megZafa~wL{<3iCBAPMUa%o@y1YeVm?`|I#9sj_Q!Ysl4 zK{E?)w|ozd{lmkq!bp4#g`>4d76HIe4u{L+bZ!-3-DZA1SYofecH_Qm#?8$zB7&6P z1b4vMht4x2Q&J&UgsUy4QeUTq^C^FK;X0J#&E~YCGjFWPXmx98G?XK{=QaLA+r!!@N^aPoU8Bj&|54?Bk_#Z>^k<9}n7V z1sxx4{pFL|Vn9GQp8HKR0c44u2Eqyutm6|6&5Y!`F9RHSgQd%B7Sg9G=A}hv8-oH) zhc~~0K9~Fqb@{+5%cGT`{Vpvkm)6ZI)+L?+1Gt+E8@eG*8@rq5CP3h(0M0PVoi$bx zpI8a~&e`woN{AK|<-_>)!i6

- + diff --git a/render.js b/render.js index b806352..5d4770d 100644 --- a/render.js +++ b/render.js @@ -155,7 +155,7 @@ export function proj(x, y, z) { // ---------------------------------------------------------------- sprites ---- // assets/.png; game falls back to code-drawn figures until sprites load. -const SPRV = 68; // asset cache-buster — bump with main.js?v=N (see the img.src note below) +const SPRV = 69; // asset cache-buster — bump with main.js?v=N (see the img.src note below) const SPR = {}; for (const n of ['p_idle1','p_idle2','p_bounce','p_bounce2','p_toss','p_smash','p_run1','p_run2','p_run3','p_run4','p_swing1','p_swing2','p_die1','p_die2','p_die3','p_die4','p_die5', 'o_idle1','o_idle2','o_bounce','o_bounce2','o_toss','o_smash','o_run1','o_run2','o_swing1','o_swing2',