From 6fd1d2d49c7d4cd85234fc7ed08e28ec1625151c Mon Sep 17 00:00:00 2001 From: JailGamer Date: Fri, 3 Apr 2026 22:29:25 +0200 Subject: [PATCH] - Premiere i gorro actius - Canviat l'sprite de Premiere --- data/controller.lua | 2 ++ data/flow.lua | 6 +++--- data/gorro.lua | 49 +++++++++++++++++++------------------------- data/logo.lua | 8 +++++--- data/premiere.lua | 46 +++++++++++++++++++++++++++-------------- data/tiles.gif | Bin 11918 -> 11899 bytes data/title.lua | 1 + 7 files changed, 63 insertions(+), 49 deletions(-) diff --git a/data/controller.lua b/data/controller.lua index 7f6e222..32c227e 100644 --- a/data/controller.lua +++ b/data/controller.lua @@ -60,6 +60,8 @@ function controller:check(action) elseif action=="shoot" then -- result = key.down(keyShoot) or pad.down(btnShoot) result = self:key_release(keyShoot) or self:key_release(btnShoot) + elseif action=="ESC" then + result = key.press(key.ESCAPE) or pad.press(btnPause) end return result end diff --git a/data/flow.lua b/data/flow.lua index c67b48e..1068195 100644 --- a/data/flow.lua +++ b/data/flow.lua @@ -46,10 +46,10 @@ function flow:borrar(nom) end function flow:executar(nom, stacking) -print("FLOW EXEC "..nom) +-- print("FLOW EXEC "..nom) if stacking then table.insert(self.stack, self.actiu) - print(" APILAT "..self.actiu.."!") + -- print(" APILAT "..self.actiu.."!") end self.actiu=nom self.registre[self.actiu].ptr=0 @@ -82,7 +82,7 @@ end function flow:next() local ptr = self.registre[self.actiu].ptr local steps = #self.registre[self.actiu].path -print("FLOW_NEXT= "..self.actiu..", "..ptr..", "..steps) +-- print("FLOW_NEXT= "..self.actiu..", "..ptr..", "..steps) if ptr+1>steps then self:finish() else diff --git a/data/gorro.lua b/data/gorro.lua index eeab55b..563c643 100644 --- a/data/gorro.lua +++ b/data/gorro.lua @@ -1,8 +1,3 @@ -o2aX = arcade_config.org2arc_escala -cxr = arcade_config.character_per_row-1 -cxr2 = arcade_config.character_per_row_base2 -cw = arcade_config.character_width -ch = arcade_config.character_height -- posició en el gif gorro_gif_col = 6 gorro_gif_row = 2 @@ -10,11 +5,14 @@ gorro_gif_row = 2 gorro={name="gorro",hab=5,x=6,y=3,w=32,h=32,bb={x=0,y=0,w=16,h=16}} function gorro.init() - local habs={{60,5},{4,5},{34,4},{62,7},{75,4}} - local r=1+math.random(0,#habs-1) - gorro.hab=habs[r][1] + -- local habs={{60,5},{4,5},{34,4},{62,7},{75,4}} + -- local r=1+math.random(0,#habs-1) + -- gorro.hab=habs[r][1] + -- gorro.x=habs[r][2] + -- gorro.x=habs[r][2]*8 - gorro.x=habs[r][2] + gorro.hab=4 + gorro.x=5 local world_x, world_y = coords.room_to_world(gorro.hab,gorro.x,gorro.y) gorro.x=world_x @@ -24,28 +22,23 @@ function gorro.init() end function gorro.draw() - -- draw.surf(96,32,16,16,gorro.x,gorro.y,16,16) - -- local x = gorro_gif_col*cw - -- local y = gorro_gif_row*ch - -- draw.surf(x,y,cw,ch,gorro.x*o2aX,gorro.y*o2aX,cw,ch) - - local x = gorro_gif_col*cw - local y = gorro_gif_row*ch + local x = gorro_gif_col*gorro.w + local y = gorro_gif_row*gorro.h local scr_x, scr_y = viewp:screen_coords( gorro.x, gorro.y ) draw.surf(x,y,gorro.w,gorro.h,scr_x,scr_y,gorro.w,gorro.h) end function gorro.update() - -- if gorro.hab==abad.hab then - -- if aabb(abad,gorro) then - -- abad.objects.gorro=true - -- if premiere.scene_intro then - -- start_scene(scenes.gorro_trobat) - -- else - -- start_scene(scenes.gorro_trobat_nointro) - -- end - -- if abad.objects.gps~=nil then current_camera=3 end - -- remove_actor(gorro) - -- end - -- end + if gorro.hab==abad.hab then + if collision(abad,gorro) then + abad.objects.gorro=true + if premiere.scene_intro then + start_scene(scenes.gorro_trobat) + else + start_scene(scenes.gorro_trobat_nointro) + end + -- if abad.objects.gps~=nil then current_camera=3 end + remove_actor(gorro) + end + end end diff --git a/data/logo.lua b/data/logo.lua index aed0ecd..905727a 100644 --- a/data/logo.lua +++ b/data/logo.lua @@ -98,8 +98,10 @@ function logo_draw() -- Final if logo_step>=5 then + pal.subpal(15,2) draw.surf(0,0,63,10, logo_anim[1].x0,logo_anim[1].y,logo_anim[1].w,logo_anim[1].h*5); -- JAILGAMES draw.surf(0,10,55,10, 100,102,55,10); -- presenta + pal.subpal(15) end end @@ -162,7 +164,7 @@ function logo_update() -- Pausa final if logo_step==5 then logo_step = 6 - logo_wait = 75 + logo_wait = 125 end -- Final @@ -182,9 +184,9 @@ function logo_animate() logo_wait=logo_wait-1 -- Següent bucle - if logo_step==7 or logo_wait==0 or key.press(key.ESCAPE) or key.press(keyShoot) or pad.press(btnShoot) or pad.press(btnPause) then + if logo_step==7 or controller:check("ESC") or controller:check("shoot") then local modul, pas=flow:next() - print("LOGO_ANIMATE 1= "..modul..", "..pas) + -- print("LOGO_ANIMATE 1= "..modul..", "..pas) end logo_draw() diff --git a/data/premiere.lua b/data/premiere.lua index b55d05b..21e9e30 100644 --- a/data/premiere.lua +++ b/data/premiere.lua @@ -1,8 +1,4 @@ -o2aX = arcade_config.org2arc_escala -cxr = arcade_config.character_per_row-1 cxr2 = arcade_config.character_per_row_base2 -cw = arcade_config.character_width -ch = arcade_config.character_height premiere={name="premiere", hab=75, @@ -10,18 +6,18 @@ premiere={name="premiere", y=24, w=32, h=32, - flip=true, + flip=false, frame=12, wait=0, step=0, anim={12,13,12,14}, - bb={x=4,y=0,w=8,h=16}, + bb={x=0,y=0,w=32,h=32}, scene_intro=false, scene_object=false} function premiere.init() -- premiere.x=24 - premiere.x=3 + premiere.x=4 -- premiere.y=24 premiere.y=3 premiere.w=32 @@ -33,9 +29,12 @@ function premiere.init() premiere.update=premiere.update_stay premiere.scene_intro=false premiere.scene_object=false + -- local habs={75,44,20,0} local habs={75,44,20,0} premiere.hab=habs[1+math.random(0,3)] + premiere.hab=0 + local world_x, world_y = coords.room_to_world(premiere.hab,premiere.x,premiere.y) premiere.x=world_x premiere.y=world_y @@ -43,14 +42,10 @@ function premiere.init() end function premiere.draw() - -- draw.surf((premiere.frame&7)*16,(premiere.frame>>3)*16,16,16,premiere.x,premiere.y,16,16,premiere.flip) - -- draw.surf((premiere.frame&7)*cw,(premiere.frame>>cxr2)*ch,cw,ch,premiere.x*o2aX,premiere.y*o2aX,cw,ch,premiere.flip) - local scr_x, scr_y = viewp:screen_coords( premiere.x, premiere.y ) - -- draw.surf(premiere.x,premiere.y,premiere.w,premiere.h,scr_x,scr_y,premiere.w,premiere.h) - local x = (premiere.frame&7)*cw - local y = (premiere.frame>>cxr2)*ch - draw.surf(x,y,cw,ch,scr_x,scr_y,premiere.w,premiere.h,premiere.flip) + local x = (premiere.frame&7)*premiere.w + local y = (premiere.frame>>cxr2)*premiere.h + draw.surf(x,y,premiere.w,premiere.h,scr_x,scr_y,premiere.w,premiere.h,premiere.flip) end function premiere.hit() @@ -59,11 +54,32 @@ end function premiere.update_stay() premiere.wait=premiere.wait+1 - if premiere.wait==6 then + if premiere.wait==96 then premiere.wait=0 premiere.step=(premiere.step+1)%4 premiere.frame=premiere.anim[premiere.step+1] end + + if premiere.hab==abad.hab then + if collision(abad,premiere) then + if not premiere.scene_intro then + if abad.objects.gorro~=nil then + start_scene(scenes.premiere_intro_gorro) + premiere.scene_object=true + abad.objects.clau_premiere=true + abad.objects.gorro=nil + else + start_scene(scenes.premiere_intro) + end + premiere.scene_intro=true + elseif not premiere.scene_object and abad.objects.gorro~=nil then + start_scene(scenes.premiere_gorro) + premiere.scene_object=true + abad.objects.clau_premiere=true + abad.objects.gorro=nil + end + end + end end function premiere.update_normal() diff --git a/data/tiles.gif b/data/tiles.gif index d27e22d500d17769479cc2448aea4d236b6d704b..70f3845ab3008f2c969e7e06caa3868352db23c7 100644 GIT binary patch delta 8884 zcmV;lB1_$lUHe=NM@dFFH(>w)00HL@u?!Xrf6>bL%Wr%^-lX*GZ@(eeIGNs~CijA` zz96~3Q}jmU`xwP8D=~h~XL?!EWAVp&n;{bkSbU1qNN|=AfOl6C_#_IT0EA~3pR`jK zh=JDkB;e;;-(@%*1u-p=J$%nEy#S3=SL}+XgrZXIuR6HxGhCU zcR&J49;bvC$b`d`OHX)#RR|a3G=()N5~HOyUPyT&IDmF2fC!jJ+3{7R(GeoWF)Ia# zHPwdMK~nyP$SZz0RdHm7RQQLE7>B+Be*uxmhBS2$jMXs^kclX@iG?*_pm<_aMTwOt zi8@h=rYI7qXo*!(6@nNTk3|u#I8w04S_UzTAGL|LC=#Im(2TJNi@vjr&PR>A_!Fzuiz>#5ltYZEh!NsgjJr{ee>!Lv zyLb@NXnM}Ljk>s3*eH$fn2eOOj`LW6^*A>J76AR&i@&&1=twgIX^i5yF|nAB^!Sbt zm5}YodizKb4*8I!7m>W!jTi}v0SSras5AvhMjxq;k42HOSB(bYj0*XXCRvMf2F9C7>JWS$q~-zlJ01aC%ITeS&>G`k^zvE0|1k| z0g5xJSpO)Bg$RW;$dls;Bv^Tqj_8v$n3Z2Cl<(-2(+C&!XqLW{mQG1CQu&rNDOIF6 zmtqNpK1r8eX_r62hJ2ZqRCpR}nUrf;mTifagejOvQI#1~#;hAiumZSNULs^(H$(XF!jWy{jkGYcrz?n!9n?D(u zKRKC{sg(#Zo4MJUo(Ys)rNn$≫i0VrmPw#&WuW#cjq^#IVc#K%2-RP5=|N;P^zRmVU9P7qr(}V5h|fws-yRr zj|zz(KMJIcX%`3ZkVJS`#QBv>nvQLTC~s<+aq2r$L5aQzg?CC3E*Y9$x}~fKsQzNg zrU{Xa9lDs&xs)7ne*kOhe2&_tp3)J0sxZV;5tZs;^)eEf`laJ3qZ^8Tej2LIX%`;a zk2K?`s=BJGDycXTUVa!Puo_ab3N5)vs>&&-L)YNj&zmZ{3B!s@Er5)=?B6;);c z$2t>bv6U%_oQP?mC25+{3X##N@Ai){!2_?onfsDi)}gY?m~g!r`0 z@`?`ousIt54)6d8TeCKMvoNc(51_R=3$4JZt^shhVT-jxo2W&rks^__aEn2HR3vwk ztV^VbbPJ-z*8maQ0M4bge2bi?;e3IMwOK2+GV8PHf697=`?rWIxKY`*Zi^Ifo3w3l z00$UiVAvmXGb?)AjuG3VRZF-%+pzHox}~eQ8!NfrNV%2!x|s_tLD(NDtB5r-m!Au- zyK${m!MoVXx*kgruM4}+aw0H@tieb#`7;&$I;t-DpSqj76ge5di=G(%F}!d~BAj}+ zc7ZiGfANT}gba&6WKGq`%ZI46yv1^pq>(-Mi;E>ViAyVk6UWf!{1Z>S!%=L-G*iVip zf5&Zn$Z$M=ek{gJ?8txf$2p8fKupPX9K)16$qcZ_9HGgTyvdh*$jbYIkPJYjJjRR& z$PB<%n~ce9#mPV-!>b$st<1Nx49i9A%Cs!YuN=yRJjx+MdgK=}sfJw!B!|oW_a_%={wE!wi4M%*>`ofY0no z=FHC1$v8j^&e9ylRWZ-6T+iWb5cq7c`s~YrOwI-H&g|FD3Z%~PSJ3Gk%!-~AoE?CZ+1kwhbMa&%11DyaP&HhRtjnXHb(oq%7e*vAy zqAb(DOw%!a%6UlA(wE14Tvo}%!Q9-@0R6^8O~*D()U(smN!`di9mx$=k5G-0H0`KS zd;lID%~TDk9oYeX*`luIWdIJK;Sr|a;{3%%T@x=1(p+F zYfkHZcHJ97wf){C-5_J#;sYV!O5Qm1EnB;7h8yk~Ks@Ar4bd|!-3adEZoK8XZR7#n zatp5H5H8=*_kf|})K$StG>+fkZQMUjc4!{dU*28*%LUea<$p1Jf8f7N&Q3n%%lzil za~k2J=1gwkZVlCoam9R&hb*$$fG}z*FqwMWcwIOtiI{4{#TS9>%&)Q zr*Y())ZVz>(O2Cxf21Djr1Rn(`Tq)_TD)r^Eq^9O2v-Y4B6__Eyw4M?CCzk>u%odZf!vQJh?8)6~#>T zzRbc-NLJ@Sz=VRX2k?(2?g4M`TKvROx8rAo{^#8V?>nCCe`c;U9{$S_KYxFO?fv#U z<5J<>L{9a4xBkBBA3uv#3=t#m!RYi!goX09TM_OR>K^(f5qGT-v9x@ z!9aly6dXi|5Q4&k2OK_p2qB`w02M7-gn+Rk0009#euMz>BS(=RO?o7G5+z5LEnBMe z2%%tte*`iI-o%+xCrz0$9U3s;6XH;!5P`~cnN%r92tg4%g$jXbPpVaW3c#9G>sA3e z9TfbEGaQvu4i*g$*A@++ZNj zo31R7cLWT1|b`t{q?X-@=~t$zN#x|L=Ef396~f(1KptOB#F#}Zw;mhHv20cvlw zOIPmzxq0vQ&Al7*OTc*rQ%#)Q@Z!Njk3yy#z4C$Q!lRbrtq+0DZtZkqG~nQ6lx4Mh^UIsHrnX>@1(!#+lwv+bK}oA110=yM&}-*v8n}M zbg3zso(pQK99`OqMW??8?LzfoP5#A00+#mCmYjxuF4RrOVURiFYB(#q>4DDKZBI70DEtMAJnW^;$H>M$dzEr#L00G*(NE+*40X zG38E38vXh-RA1Fpkw=w?11?pRR+ULPdM2ZSTeRUUIcWx6UfteNj`Yvg&2_ zI+VHQ)v8jDESq6wIaH22{t>dhD*xHXCS_^g`8Lm&?+bJrA*d`$N0qwz)OEuf}_|tpzgs=&;Qz zDD9GoKH6l(y=GkPwe@q`?!7_0d2X{Nue|D<;pSZOn*UxLZS>BDlxxG2e0z(fCf z)Fqwnd~%nuzPWD9v+f&n-CqVhb=7|+T=d3KPknXOOW%#{U<1BHC%e>JHY5Nh};ozejJKkt3-bgWv~uND}+-968Mw_{)S^i?q1Tc8e^GL5-RV8Tb6B&sGpwYg8**b|$#;ioiZ5>A2^ zRGhfHrCM@{(D$fQEh0LnLm4_ziB2k>#XP1wp|Vk^IHaEbf2<8a{Yjf`Y6P1m-DgNq zs?w8|XrMe94aK}EQ-d;wq6szULt&GaijF9vKGo?>gIbh}78L*+mB~gu+Dw*aQ<~Ov z>06pQAAa7ZsaK`uOKD2enby>%L3OB47TQpWj#ZbrEbA@DYSfGtGb)^U%2GkP(x(D6 zs#pyuRrTure^k6~bE`4+YB+_m(Aea3Qesu>I^VNcuqM``^K>U<;dxXDJqQ7Em8wfI zGSX}W+>Obk)(i7DLurLkmOwHQR#_rUyLQQBbf7;p+v6Y@~tt?zITh+{xwx6Tr z>t3H(Rp4&+uc$RGa+TXnh`lxLh`lN#3pd{j%teQIz;OHya{ zgt+4ss7#NWT=p)vo0LMUMAG`)`NB4~2S^xpC9Bc5Dz&=_=xj+pYhLtDm9+IcEqm9S z;L*T$r}b4RY$3eR{N6UZ{q5*~1N_X-{O>Jb*yz?5!a=QY zWc7zMX-4e%;SYn?sUt@2dKZk`6svfbE{?E-oeR_$PjC+fo9H zH=8>Ku7OPoWFePWusp%3d#DTFF)Q}4O_ryA)qGnJo3zTEeKTlXis01NRKAWatYK?O zPBZTm%^0=tegREPEBCgaoaJzw<-FPYow&}be|0cfPdUjy+g8T6-SCMfP3aMC+S8x@ zOr-^FX=Z}j)I9^0sTaNKXqwB_uZDGD4#E+H0ASX%zBR6CZEF$U+Sj$_HB;o%Td9(A zUe{U*P%sr4j@*hR&UOi_rQMcTSKHc#sr9dW4eW&2n%CLOHn_XpZDJ4GEym7JX|{rD ze*pd{`&N-zHl_e@s{$mYz*)xky$e&WeH(_~4fuD!{XOu07aZUN_uE)-&AV@hyKe~b zu#P4E+m@(X0NA=Xpt7QItU$ox8%wqU=q+-Rmt5opaCb}cUFelxmEZ?AxWHrna+$*% z;2vtYxMh}eoj+Uwd1cAQD~=&g2^~;Ne<8ZZKP~`NE8FSuMmfAsE^n5wT*LtIaiKZF zSB}_R=3Sq8VrtGEuhW`#JM_5%;rH|Sj3z!5B07;W&T*vAUGC|&II1=CZjwjc?@qs1 zU$<^$@&;GfaA69~4FmR?A7<e9#0Dv)~ z{Gfy0IvF>5=!@PXuCQC_OyASgQU4f_BR`vikNrQl9@6pS1|z$Nx$aqln1FY^{QyWm z{P*1wwGY2~_RpKWH$QZ{KY#Adf9E{WqrUFD4y~w_)jPeQFhKpY4e*OLmKwb8!@LF@ z4u4ZW-1|EDi$4oQHzR3_=`)hJi#`AdKoT@T5(Ge{V>c4KJ_G!W(qI|HgS`{%4wNE6 zY`Q_(qrn}NJo($fnj^v7lfQD=!6G!mBSgX^Ou`Q=LI6ZUyBon0+(9QCf21E={<@`O znc7go9Na+}8f3#aL_^RUK_{fcI=n*|JVHQR#2HLPM9jo7 z?8Hw@#71<)Hl#s0j6^v^e?e4KLp!{~6~x3vd_^?m#7vw;P_)G*+`lITz|Px6NHj%N zOhlQe#45bSVl>8MM8-a}h)48AC`8356uKz<#1Na0WVFU>#Kuot#x%6JIYbyZJVCBV z#*E3va*RW8R71*GM0G^Lb_9<(e8(b83^SZZb8N@|b4Osb$9?2Re{@VlcK-aw$$-ar z#79(A4h^hFbG$fwBuIYD##l^5f22VMpva0O!HTR%%J`9WnT(B;jD-Zre00YXgf)b$ zMH>7j0C==;6v+U@5PdvCb#q8%{6vYINQ`8Fi^NHdgpQ5$NzL%c$k@1-Y{+;##8;!o z!#F~4Qpwa}$%YI`e`!oYqmxQ+oJldX$(zJToy16<1d_-2N~&PTg-pe=?7!p)#Dql2 zM@vbTB)YdWN+bk|aP-BggvqN+MSIynoXkl8;7hOMNXZDwxs*bXgg%l~OCv!=g0I zB&1Bvn?%f1M9oyhqcDKZ+!V4bNHRo>z3j_ER7%E7P1P*UDKtvn+``zD&Do^QB8)}N z6o9StOPth662#3NgtDjD!Jr^a-h@lg`%U0H!r@%Y;^fQpWPolWMd%|+ePqtOtjgzv zPCoQTahyWxf8@*SY&XrI!R>?!8uZTG49&v~N#9&N@>I+OJGFeO{=6(1U16oT+ow@&oHEYSOuO9ItU z49(CtyuuFcQ0(;16C6#@h^0 z%CfB7f)^0|PQw&I;XK2e3`9?CQ}le(^>k7>ZO#KVLgsA79j(a?J;MDo!2tzR2$~?7HBhK+LF8QiRNA#V@3b4cUSfOmzv&!R*_a4BeaE-bAF1_%(p|e?`;A zecbWIPg@1j^9@U&^k4P8)%I;xwuRsMHDLO!U+`VLK=LE0DKoTCv~7}4F$^d3jSR5_ z%MAWWfZW33Tul!yrj(RY0v6y0t=UhMU->mn)kVZV`WjDKty-$83GQH~Y*+pb%nL@} z^*zs4ZB_P+P#LY+(jDULjZq(7f5a3%;1x!U@Fo7iNCFEPYK=%+iw)DloGo7g6-Y0Y zj5PEn#}wfY9$_$ETHp;>0!~9EMqooN3@3hK|5==uIiiL@3!o}5@}k@Mq|+|uVrDbW z?FC{GCSxRC)Q(M8G)6-;p5J73W9!Yv=Iulb-d~OsR%VNisl`s(qED#@QXt=Cz9G zJwcpE=Uj{BTcqc5B+Q4dXRlbtj@;mV&JuRq$Tn_Nj4Wj_Y~F&N-GjE4ghuCvD_CQc zXl#sVXg0x{cz~Eb<|D*sWzJ}f-sc^jWRC7=Z_eE#1dibxXL2^@e;wsxF+6IdF41Yu ziI_GG2Qb2#K0&JJX`C$O=iq3Ez(}o5&!qO{x)ACB1psm`=fAboZ{Fh@y=0r-;+OUc zr#|Tu^qU{-iK_PKRJN9^=IUKePk~m$pia=CCg!6o42AYr;XTHc?oPCBS7~nOcy?@) zew3JgfVk#4hL&BRf3WL-#%ts-3t6zsB2O2Zyb#8zom=H#7qW)2p} z_-qx*u573_L58#7&GzYP@oc^3YV{m#B`odWJM9IiU)4@f)-Fb`p4H_P(504cGK3V{ zo@r!$h=vfMf=!kNP%Lk5X&k=jp9ElV2J65UYqCae!d8rve_m}wZf(WBVc3lB`p#q? ztZtdUZd;?s1JG`|?(Xllm=Fcb@%~?(M#ED>rE8RLE$-Xcgm5f<+qc$l+|KRnRsjE| zYoI6$T|R)VfZ)sENq)xZRc34?RB(e~@CHxmD{b+}er%F#>I&b%40nkCc5nmea9!pK zqTrGd*Jkpbe`U3P<|2P(h-Pu;e*W>tj_~q?lzYZGE$;464P{(53O^q5sa5hTHS#WR z=WN{aYJTV@Z|pKxOp1o`xt?mm063+qask+>@IG-ZpL60a!frXiVcEfAF~)EqZa>eB zJqL6W#B&-f^y_6yukzb{JoLZ*7Q5JUBh>Rde{>`qe{@0b2+{_0HX#*5>GVb?bU(k3 zL|619EmpVAiBDV}M=usW2kKQPbVEmpONVsx{&P{k^iTh5Om9ktg_Lf(TT{2wC$??M zzF$j+i8Ra)69kT2hxJ;A5l|0xT4#1?4|Garl5pvdSXvse~%CKjVg4HfC`|`^D#xjpC@gl$M<;$ z_>~~|Sx@;#hk36k_sXq#VW&Zymw2784@IGLnW%W5|9NLG`k@~Hp{I7D57wkFd6I8? zmM3}@;dr_~`D<7Cy=cn2t$J5sc&$(9cAt2P|BtrWc(I>%yC{0N*LbpjdtIDOV&zej zf6w@xU-q647LOqHn)>_xdvrdo?|QFa8{v?9#GmwzD0{|l^t4}mC6xSgyi3Wi{Ia)v zJ->XPNBIHRe1qzIsRaGOC;Yo0{b@IjiYGyOt2ZP>{v=#}*Vp6bbbjZf{o2RWA0l zP0=S7{97FT@dt9?Mua%AV!{9c6bcZaP@~3-8xwZ? z2vQ_Rk0Lc9Xo*0e%a;aQ9;A72=1iG42gF>M;3v?Z7=s3lsFI}0k^odX5b)qZe*=tC zrzYHaaG_O$Qyo%Gi^#R>*NP`0f(!{@?834m(V7GqlV?nsZ(-WhS+nk4mp+LKt;o0U z!lOwCdu;j?YJn CE}J0$ delta 8903 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 V?