From f26d43a97da5d544e229d2a87609a2c9080ed5c8 Mon Sep 17 00:00:00 2001 From: JailGamer Date: Sun, 12 Apr 2026 14:00:25 +0200 Subject: [PATCH] [WIP] Treballant en el jefe. Super power done! --- data/fireball.lua | 93 ++++++++++++++++++++++++++------ data/imp.lua | 131 +++++++++++++++++++++++++++++++--------------- data/tiles.gif | Bin 11881 -> 12017 bytes 3 files changed, 166 insertions(+), 58 deletions(-) diff --git a/data/fireball.lua b/data/fireball.lua index 45b9370..851c13b 100644 --- a/data/fireball.lua +++ b/data/fireball.lua @@ -6,11 +6,18 @@ fireball={ wait=0, flip=false, step_length=3, - bb={x=0,y=0,w=4,h=4} + power=1, + size=1, + bb={x=0,y=0,w=4,h=4}, + x1=0, + y1=0, + step_length_x=1, + step_length_y=1, } -function fireball.init(_hab,_x,_y,_flip, _off_x, _off_y) +function fireball.init(_hab,_x,_y,_flip, _off_x, _off_y, _power) local world_x, world_y = coords.room_to_world(_hab,_x,_y) + _power = _power or 1 if fireball.hab ~= -1 then return end _off_x = _off_x or 0 _off_y = _off_y or 0 @@ -18,19 +25,63 @@ function fireball.init(_hab,_x,_y,_flip, _off_x, _off_y) fireball.x= world_x+_off_x fireball.y= world_y+_off_y fireball.flip=_flip + fireball.power=_power + fireball.size=1 + fireball.w = 6 + fireball.h = 6 + fireball.bb = {x=0,y=0,w=4,h=4} end function fireball.draw() if fireball.hab == -1 then return end local scr_x, scr_y = viewp:screen_coords( fireball.x, fireball.y ) - draw.circf(scr_x,scr_y,8,16) - draw.circf(scr_x,scr_y,6,3) - draw.circf(scr_x,scr_y,2,8) + draw.circf(scr_x,scr_y,8*fireball.size,16) + draw.circf(scr_x,scr_y,6*fireball.size,3) + draw.circf(scr_x,scr_y,2*fireball.size,8) end function fireball.update() + if fireball.power==2 and fireball.power>fireball.size then + fireball.wait = fireball.wait + 1 + fireball.x1=abad.x+abad.bb.x+(abad.bb.w//2) + fireball.y1=abad.y + if abad.x>cxr2)*self.h, self.w, self.h, scr_x, scr_y, self.w, self.h, self.flip) - pal.subpal(5) - - draw.rect(scr_x+self.bb.x,scr_y+self.bb.y,self.bb.w,self.bb.h,3) - - if #self.hot_points>0 then - for _, p in pairs(self.hot_points) do - if self.target==p then - p:draw(true) - else - p:draw() + if self.update==self.state_super then + for col=13,15 do + local newc = self.super_pal[col] + if self.super_wait%6 == 0 then + newc = newc+1 + if newc>15 then newc=13 end end + pal.subpal(col,newc) + self.super_pal[col]=newc end + draw.surf(96, 32, self.w, self.h, + scr_x, scr_y-self.h*(self.zoom-1), + self.w*self.zoom, self.h*self.zoom, + self.flip) + for col=13,15 do pal.subpal(col) end + --draw.surf(96, 32, self.w, self.h, scr_x, scr_y, self.w, self.h, self.flip) + else + draw.surf((self.frame&7)*self.w, (self.frame>>cxr2)*self.h, self.w, self.h, scr_x, scr_y, self.w, self.h, self.flip) + pal.subpal(5) end + -- draw.rect(scr_x+self.bb.x,scr_y+self.bb.y,self.bb.w,self.bb.h,3) + + --if #self.hot_points>0 then + -- for _, p in pairs(self.hot_points) do + -- if self.target==p then + -- p:draw(true) + -- else + -- p:draw() + -- end + -- end + --end + -- print("DRAW path= "..#self.path) - if #self.path>0 then - for i=1,#self.path do - local world_x, world_y = coords.room_to_world(self.path[i][1], self.path[i][2], self.path[i][3]) - local scr_x, scr_y = viewp:screen_coords( world_x, world_y ) - draw.rect(scr_x, scr_y, 16, 16, 14) - end - end + -- if #self.path>0 then + -- for i=1,#self.path do + -- local world_x, world_y = coords.room_to_world(self.path[i][1], self.path[i][2], self.path[i][3]) + -- local scr_x, scr_y = viewp:screen_coords( world_x, world_y ) + -- draw.rect(scr_x, scr_y, 16, 16, 14) + -- end + -- end end function imp:hit() @@ -513,16 +541,24 @@ if DEBUG_FN_NAME then print("state_normal") end end function imp:super_ready() - self.target = self.hot_points["altar"] - if self.x100 then + if self.super_wait%4==0 then self.zoom=self.zoom+0.1 end + elseif not self.super_fired and self.zoom>=1.75 and self.super_wait>100 then + local x_ini = self.x+self.bb.x+self.bb.w+4 + local hab, tx, ty, off_x, off_y = coords.world_to_tile(x_ini,self.y+(self.h/2)) + fireball.init(hab, tx, ty, false, off_x, off_y, 2) + self.super_fired = true + elseif self.zoom>1 and self.super_wait<=100 then + if self.super_wait%4==0 then self.zoom=self.zoom-0.1 end + end + if self.super_wait == 0 then + self.update=imp.super_end + end end function imp:super_end() print("super_end()") + self.zoom = 1 + self.super_wait = 200 + -- self.super_cooldown=2000 self.super_cooldown=200 self:reset_fight_mode_cooldown() self.invencible = false + self.super_fired = false self:free_movement() self.update=imp.state_normal end @@ -1027,13 +1074,13 @@ function imp:next_action() if action=="stay" then if self.movement_type=="free" then - msg_print(10,20,"FREE",true) + -- msg_print(10,20,"FREE",true) action = self:free_next_action() elseif self.movement_type=="pattern" then - msg_print(10,20,"PATTERN "..self.action_event,true) + -- msg_print(10,20,"PATTERN "..self.action_event,true) action=self:pattern_next_action() elseif self.movement_type=="super" then - msg_print(10,20,"SUPER "..self.action_event,true) + -- msg_print(10,20,"SUPER "..self.action_event,true) end end diff --git a/data/tiles.gif b/data/tiles.gif index d5d8c3ca485ea5e76e2875b4c4fcda2c1721875e..8c1585da1c3ce543e88bcf6f70df4a259b7acd49 100644 GIT binary patch delta 10653 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 DmP_e# delta 10515 zcmV+uDeTtqUFlp5M@dFFH(>w)00HL!u?(>Ve*;#L#5!&KvB@-}ysH5gW6bkyHGivR z#WNG_^JPE_J#TC7Ap|ngN&9%3*kf}|+1UqKOm@;T z&4%{QPn*Pc*+9Jwvi^D>4~UYhVeL$J*>(daW!QSZtyQ*3C9ZhXn>lWBv!iA7xRx5i ze?_+CdXv}o%D_S;uR)JPg!!#Bv8mSJl3Scp>zgyqdgs|<*LmWfQ%&UTu0$LaDo1EgGlQjVmJm0a5gvG9DJmOJLaM8Sw*B__uiMp=-p3;KHQ-Oe>q~r z5GL%3-y@G-j)*#rlyGri>>Y1v7%5U|YF*}2oM}ubJ*s&JcV9e77i0IpI)+gw(1RTW z7(mD#mT-$3JYtL1my|w2@QpI`-sa|LMFLXtae1^^LL}F`WAW~Slslmy3CRFMp3#qL zTqKv0SHyKil8T^&UhM{1%1>G>e*p<7V~a@nNeJLFm!sjO<9vzBSRIj+rA(wEQ7K4_ zxGyP*dSe`eRuMV|lb6){W$lm|$b%G9B;3qh(7ss`C(@Fa%A}?cE7_u0D#V(4WSAzS zxjSP15|`NiWL#2^S<206Gb{Y;=Pk(zPJRmRpDVd1LTO^qE86p(*vyGHe-)a5e10%7 zvso2KC|c1%t}dJ?B&bBgIZ=H!lA9nC>1a5L6Czgbp}#~Yg*YnHmu8M5q1?<(M}PslbBG4N>rlu20yqtYOZn*0!3ItW90rT-}OO4fV9IH~Xnh{rcCz?o=pe z4L|_+imR+Dma!a3>|(o$*RrmZqH()ttT?L8g$jkG22rR!!?hQ=W>o-+4Zvv6idx04 z_Oz*W{%U29BofZ%5+S1ftZj?w*%sM$Auv_xvD76y*0%PwR+Wltf46$tRPzL8Ky9IJM7`cjyS|A1~G~e z{No|lRjn&lFJ|+bTewVjzWUWMU_>igChs?0F6nPuW}{*eBiYMeeeRbxT3yW!#DiWIB5nx?&D9nafsBbBTPAW|_3G$HBXup6wHs~i zn-I-17*T%?b*&>@(m@mHwioVosZG6;fbvt(M}9S|C2bkJu9dBlJ_w|Vx$9!yI@407 z_KYn|ZC_(|f5z87G@+GZ>~b>zOUF9WfhDT$XG6O~>n`VBXI*GZTbtCMM)RegOlnY5 zd(?d%ws6U9Zeycs&a2L|vRMsjS9iJ4YEF#418wF{|2pF0_S)MDUT%2u$0MJk)%C^Ta70a0K`}<>DUq#yK8PkAn$6ttM}We-iF+k_XP@4Tt!>Ma!XF3w_^2 zUqF3P&RfkEJ;sTnIWld&A)GV2&av)FQ+e)Vp!;0t)z0P9w<}|N_XgB$2Da0;(`3y# zPU;Mx`n#QSq_2mU?pC+^Q;$kkF868PHnz5<$@<{nhF$EwK|933J$AI)vSJ07``r1i z_sA;sfAR#L{NID_)y;D?-eA9Qn2erwq!*Lzif6j0*PeLNOA>Z9mwZy{p7+uA-Sgz3 zz3wZIc}6Fhr2|O70ESO|;VYig+9dw)Q?Gi>24DHhKmH*-_~D(`UhAH>K4dBWzx9)M z9zU~nO6HqiOz1=3yvT=u`I*mY^{+qpyqW$0fA6k+yhGMz+1GyV^WGeKLgGlux|@0YgZHfMiZb_$o;VN@P)hd~}9Q zXogmyMtAjvLpXp1#Z4Uohq7aA2l0hJNPd2@gg=9ZvS%1SF@H$df}2Aj{=Gz5aM*)# zcujQZ6k2#!0hNbZSX-DCHbg;)WN3(ifB1)M$WB#QSfS{LhUHSL(-B~`hg~sLs>p$+ z7*`y)h}^GB^MUky^s&e~Vt@ zelLg+@EAAi*hua8j==2^amSkq*g`7`a?5x&DzCNf9eqk;Lbc z{`il|C6cg6iRj2SDH#?)X%P2lf0NMHk2D!uMyY&ANt8;tlor{M9=VfLsgomFjtF6n z2I+%7iHx(6i(QF}(gKfAX^{(=T4gx^5$TkQm6mI{87BskRVkNOX_9&viL&^WcL|nx zxs_Uomy0--5Sf4m{b z5jW|Z$Vn6BNt}c^ol~ikfA0B@%~_5=X_xaEne_=66X0KLp)u*7vq7M%IT|v!R#|C>s+C&I7&w6$qKY-5 zo>ZdPh@t@Mkou_r7W$y!xt}XYo&j2;a5V-OyrWXo*5DKGJ>Y_6$pi;VzEE$vjGoqziYGfyI02L`awF0Ag ziKYlCr$I`lfeEQzf77UxYKN9;qc#bgfSRY^nTIdPsf(HrquQR!`JPe<7zd!JD%h%w z`W4Kxse*VDvkIq?iW;&y613W%H@bkNdZR7%t1~#DIvSU;(yGe3tjZdz#1cH211!vP zpt}03iYAT33al+ktizhEg?g+znXJq@uFkqGZNZ|F8WTN&f3DSPu3N#P7pk788LSU^ zo`HIk_6ispYLy}}uFN`GU$L%ns-`4!t^=E{6#}Wb8m|p7uk@;x4GWdRX?_6^u}e84 z5OJ*H>aVb>E!6U^2P>%wi>tXxup?^#=o*t1yRr>n{+xt<%iQp>Xs3%ZD#x27AqIm)<=D-@5Lwr6nwEGTDEBdd!+TwPj`oQtK#>ANnA zx(^F|zYDWH3%jwq8ME8Gw!17}p@z&7vYM2zt^V1&4vP`_O1Rm(xUjpi&MUOgi*BWO z6+#p2Qk03W548DIkI>`S#dd9l8hxmI~Hse9ZFewTEM`u!PcR?)ziEOv8=Td!JsHg z_F|jX@i+nuSfXfCF&u`Z7&vh&QEofKBM2NSf1!$HWQsl-n8&fpxMVI0M&)y%V;TGZSkSlrII49~aB zxdGtL(X3eU%n`!e&n<*B-u%rIXwKbCd?^^t=~Ms%ozUvc$Mek3_&m&G9MKg!(E!cH z7OlD$eb1oG%>s?k52((|6CU`o;%v(*}XXaqY!(4cBvx*K`fm+l;6W!}Q)2=-+R5; z?6ca+>fnQ=;xJxez*Z5Le+Wh#-r>w0*!JT`k4M^yy-cSq#ZNus)$GProfU9w)ofE~ z{jFgXp+yzL;djL~IbHx)UKk;sMXY1sXY)&mV;1fmh)-SQ8jjOaJl;tT(Mzt!(N#=R zy>wA7<(f!9CQgH_^WnM`jDJ<(Q z}Tqr1?WV6)~tR*5~V;olt7i9Me&X4xenjEj^V;C z=U|;?>!o344(zz}f8T^I#sBQ+vF_@TbLCisK>-czKNNUjein6(=HjhQCOqWgj>!I+ z$I{Z@69w)SeeZvLHdPehZdd8*jx8uOM4gW7nGW6NF7J)p#`SLOl`Qe(YUJH6>NWm@ z331jQbwaJ)iT`WqL9_nrz?I-i_Ii;Lyd+xwjx8OrU`B4?G+)PsB=Bi1!xXF~ zE3x%+a~&$rJ)90g2d>3$+=xOkiP|*vZEsNI{pL2m^Mz;tY`+ai$ATY7ts{hh#+^G2j*83&$`<(CjogbEBiMGxg zjHQp00%4N`!TbaMk$@qQfWa?#u|NAIT>Gb^`M3}Ef3UVAvG4nK0sI3d{22E6?p2FS zI)p;otje1F-I!X-ADlBdeDM#e^sj&_2of7S`@-M<4yN4zVZZgzsPzXea1{GR#=u)9bnGTQ`6~NP^D;*?AKrrQ2u3NEkG|2E~O|l2YN=2)2 z;6=6wG6L`zccTEhb?x32(ABDgy$)c`bSd*?&9P$-@cgOM=T4^slsabG81m$!QzVq<(yQbu_OD`qz&dAHGYjDD}%KWZLC_4-9rYF|~ z(MyWvME()WB_-POOFj2Ib4)QWbE>*Of2(6t$u-qXZ%rpF(vzS9Ab6A^7w^QAKRz$T z^hh(&s*p@g|HQ7)&blHMr8d(mD^(5|{SwkgA)U?66Q#-%Q(L|46x1TG8}dC()AVfA zQb|2^RRUG5Ny;u=b+v#;AzBlyT5qM+*T|-PD#&X=ZAw(o$Qut)W7T7Cy*RmKf7V%8 zq0LfSORI&q&rQ2?P_ueL#Zpah!woh{63aDr+*Z}a=-EkUO>5eC7iM^2Zxv0_#y6on zcS=|}GFVm*X?wR}k3YWjVMWEAc*%+_hQK!l-a2?=j_DGXRF8(8d03lM>Ii3+ZWgX1 zA*=pEH@O*+>uBh}iZ(jw0c8Y?e@3O3W;kY)F4!Vbr>Ao8hKA@2&No+Q;pJJ}z+Mgcfk{rU@t9Xu%72y79ze za(i#dV|?*NzO2IgKdg1uJ9Eob`mwe|OgEbDZC{ zn`_Cn_B?kOf23}yuwgG8K-ObAeQ~y3KfHOy|B~JE;iT4UrQUV7`})aCCFs{5hfh54 z(~~yd`Q@K~J$=??uNrgTai5*<-EZGK{@c6%6>QSc7EJjXl?R}4hBiL(nXhdQ8=3w7 zKxeGRXhaM)E^6i@;*4_GGbsL!fj-on1FC2%4hk)88th;Hf53P}z(ukKwe6Hsyn11&4$STDUy+R z{L2U<2{BUMr;>XTVh2mP$~wiXkOS-@D`i>AQ|@V&w``XyUztY(+9*{X`DI6t{x!@4 z2-7CVB&JQ?;(!O_f29Ela0oM<2~7Y<(*e(nW;3t(866?UBi&R?N5DBw9f>nBJ0hny zJK`I5w$q*ORMIegS(bSwlb**aCNk}blWb12pWFN=Hmj-4XA&fx&)G;ib97LKCiI*N zVkklh0#AxoG@dxo=Ya@QAm(6nImzs3K0PW@l9DB$)U>8Rf7`NB1Q?{C235>C!&y$} zz!aSjg(x_ov(tylw45pXif@3*&Y@cLGb9aZF%48wWsY>IBUP1QLORt{oz$uTXbVBw z;!tlH|RLUBaq6B(sVeom+y+YNV2GVO%6LQs* zQd6)TA?yKOI@Ys>Q?ZM^X=BaW+So$2n-i^UTP;h}r`FY}zWr@*@7h#(>NBsTC8%k0 zgW8s=mYWBK>0x1O+uF(&p|h>-WQDrjw!ZbPLRFM;e>o~#(e_rU=KZK}m5N-yvW2xlUG8S3o!|8hJ;$rp^NLr!o;`raN_*9;$|tqY)M-t9a##d8 zw7!jnC=L6YTmSyoodRBtT|JAQ&}Q_h3QjJA-RofZCLqGqnE%AX#iekSmIIx1;p@)0$xgN}I&I8fD&M%j2nMZ)JBwKZ|2Vxw z2CR`;nq&w|RzVhyag)=W-PTSy#~X$xP?Orx4Fz+v`z#Qc1!`nICs)6Tv9L}9?bzFD zc(;}lvTJtud@I~_EPe=|*J9?=lMhvqGa8;wg^HmuJ@o^)wn zyjW6`($lSmb*wuQY4(QM&$7n#t4YmiUXycQzXo=&L*o*MyaWKmE;h20UF>5kVA;)1 zHnNeu7;1l&+EQudp74Sn0kmv4X%UFCTH_FB72qM|mPoJFts`Onx7*#KF}AejJ#S~% zf1B9xwl}_sU2Vi#yEb-V*_XPlr4-c%IClwnM8aL})`;6#04TS)BSPIZS3I&l2@M29 zqw$Py+~XYwc>_2u@{g0e;{j^6u~Ux3mEW6rf4OdACp_~2Ohfkk9`q1( zo97QPyU%|P5~&=$=t_rs!DiG`={~cj^$6_nqT>xB7UlE^@w0z1ZPHTjH6g zBi}ejL^;p-b9RpQx}aSnYbQHghJN&^+7XUz0W6&JMrXLV1;X~aOZoOSZ$4y8AJgeW zpZX68Ip86}dXK-JL2oQ)1~r;&c3^gd!qh-i~Z(gpS8OxW%J<^A7+r6`|&FR zbciJ8?)|5&x40?21B&O9JnREGf9*rSs4KjUYe4aH!0{tL#4$g#NjKd?i;-}@17sH@ z$&78YKb^}!fQvZSP`;7izlmFr=Sw%Qy1N~D!QNZIw+Ic1@VgoWfR6(_!mA}Ok&Y3> zxtxPP&cL>fuow{>LA>A%CA>hN_&*UjC(&b!=X1i$fd0K46hCMwx$wime=F?4DfvMl z!z`RZJ?ukA{KF(92_u|{QS-zSsgE(Ek3>{N z;OIR`{1R2HL`=!UObn4Qf3!m;{6w;#4^f1R< zS)9fC6OpLOMMHE8jhGJ^e2E9mfP~3~d>Njryo3=;SQN^%K+2>9fVE^wE2)yWi<9e-lrfN|`)N&TLDzw8+xX zN}i+*-_XhV`^vIJi^@Dr(p1e#Q5Zg92-AGc5K23;>`0nCMv|OFgOmu~oD%EAljm&C z_YltEBu;fyMaI+;lzdE+tWAeVPKh8zi5LjsY)-obOuV$jhmg+cJVvg>it=1blw>F1 zt4pc`H{~?Ue~u~6@Dxw9BhT7Q(E4mo0X?!YQ#jkWOu>v#`8-O!%*u%9PX*mi{=`l# z*-pSz%tRT#QhP^45!^pwztAjP(Ti1ZXq$_vP-$k2$eP5Ycr{G_H1T}x=n zPv8T~(+tqWG|>|sP(@tP6-CeXgoqfG{?R9;h|nz3f3v*LlibW4{Y>iwQlu18-TceD ze9qu>(AA`tB>k9E)JG_Fh!tC@!E#X&{mL>eNU5k#9<5F<{nC=$(CqZdnQS`;HBmJU z%2R4XetgludasT^fH^hIpL~~v%u9*LQyj&@Jsr|M_0tcv(k(Gm03gu{4b1O6(R@@( z78SY|e-*6zYgLeVR8e(PE494aOw}zt#xT`SApKK<^VQ54)fz2TC7qJvJjw*6Qqz1@ zt;!9UiB%dUP>Q_M3&qg;OQ&b(~bU7gm>yw*PLRnY{_ zDG646)wZ+CkNp^yA@$cIGgn=F)>#GAht1R;ZP9A&QF)!$h8p z)uElye7(uA{no<-K@~}Wq@7u`MY1@R51cJKyp-B4%|V~NS_WVzthL)(ZPU2LO3`3| zoxMlD%@e>C+<~px(Ct`q^%DNKrO&Coe@&4!*&tOJ$PHTLJku_;NzB#Ub+pU01l-+{ zm47|N-i_6HoD$O=Sv}QIA$?rdo!m=7h}50k(a2np^~l@(TLBQ)I;q)!l~cHI%`OpM zo+Vy|-P(C|-Q?X9g}}tr8;|FOUWRl?Qst7!luWpE4Q*UqhJD>G;gI|_fc%xuf6{nf ziEUrJjf%*8O1PZM*P!3I<<5#5k(&`@eD&Z0mdg+>WwF4sVIE|B(camZ(q(4msC|f( zfaVUy=1*o1Y3^iz{^8_#e@0Jjeh+Sr3dkYMZx&~8rcBecU{xu}mCWR6trJ8{=YWIf zmCM^|iC9qvWqpPSQsKvzB=;e=_a zK#2#i>61u{mM+b2Heio7Vwr9YksfJt#zt$wjJ#ZDc3yyHMn*HHe`kyqx@_L&t+46f zP@{iVxrx|_p(g3=6$_y@2$T%#{d8({MrvdR0Ht1PcUH%9UfF3b7kM6KQmN`^jtG>~ zYJ%YEgx+3`0PC?9=KWOYE)gDgPHJ|>%ZScPl#Q2}?&bl$XqV>YGaVM2egM0MW}OCU z1K8_U?(1(6Y5s)(f6|iXl*%~ki%4drPHekg>_@&8YbNE2w&p@c;9#w6%f@L5#A|u( zYz81^zs6h!VCB)?UbD{1!*1t-RP3x|Y z@Lm~B=IEX_@1KV1hsHH~Y#7HL<0CE2iH`8<<_g^2Z|ydS{}vJ32#vZph`YGpw_r+- zHg8=v=>=zShLLaDm}wGq@%#Q-s@Cu99>48Y0RQ%81L$xMKLET?2q_tH0}p2ekL_zV za>UZ@6~y33q7< z-wLT18UW8Y6tr@V8t)Zn@lwW>sF)XCnU}(b7a%ESskj%*=#xN4i@wy|UtOa+=Mp^! z^oZbdZBcYa|8qa@^G5e`N)HOBfOO4(bW67vJMU6Lf43+@7gT3Xb3WM?!rqoguXI&! z^rPVPPVaLH$@5pAicC**FtHApwd$^5r_ZHa%gpHOw(Qz1?QB8sRM!r9`E%|t_G14N zS?Bb6p>!Z=3aFrVMh6pE*L9gKTbccJm8~WLsB3YzX-ii2Q$P2@jtoS{b6TegdZBfD ziT45ie?Wj)$BcW2bxfCcq`>t{?^40-_EH&A)THUUP$LH*_XjZdReyJAZ}_38_ehs_ zSI2fC>5h88_;|OBh{yG6ul9X!j9SO^d)btLCl=rEb%GDghz|F1|B|n9_pfn^i;#Gv zXp2n|3bv^EAVKZSpm|^U`AvU#?I3zbUvxZIe^`JIT(gBHmH+mLKzNtO6{^6WO2;2# zhj^Ngd7a03dgpq2>G`zKda#dGN6-0ncXhO{^`e)IOE-C5M|q~VQ;JQCs8@JB5t6I# z_^U^DotJg3xAd&%cqApx9|lnqU5bc@d5ixU20;o?H>$a}Jdka9sh@fu5tNDNdqwwp zfBtsgc*Xbgn=i_tHT)%2&#Yg3i*I+2KYNdd{7_eU%8#amU-)9@jLavJ(3y~kTRN%W z{ml6Nu`GPqKm3IR{M3hdw5N9=IeyQ_M}qs$j3#$tcX%Y>eCuy^a*H_N-~O}+e!>_2 z@Q(#vIJKR0yae!BC1{ErGb3_c75hyVcq z5ELMQAOL{^2`(&nkfA~Z5)lj-Fp*+Kix?|P%;?c##*QC3PDBVG0m_spO`24xk|ltL z4rj(B=s>`O2Mu8I?AddqN0UG^`UFtmXiaqwnWpV VH5ZK8*#Yq2!hw(0ZM