From 9237c8225fbc8c5211c32fa4ccab27c52af0f467 Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Fri, 21 Feb 2025 22:23:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/editor_menu_tools/editor_menu_tools.gd | 6 - render/material/debug.tres | 8 + render/shader/effect_debug.gdshader | 5 + resource/mesh_level/sub_grass.vox | Bin 30406 -> 0 bytes resource/mesh_level/sub_grass.vox.import | 18 - resource/mesh_level/sub_water.vox | Bin 71723 -> 0 bytes resource/mesh_level/sub_water.vox.import | 18 - resource/mesh_library/mesh_library_sub.tres | 48 +- resource/mesh_library/scene_active.tscn | 7 + scene/character/soul.tscn | 2 +- scene/level/level.tscn | 190 ++++- scene/level/level_instance.tscn | 12 +- scene/level_active/grass_high.tscn | 19 + scene/level_active/grass_short.tscn | 18 + scene/level_active/grass_tiny.tscn | 18 + script/_global/util.gd | 6 - script/level/level_active_plat_lift.gd | 6 +- script/level/level_instance.gd | 3 + script/ui/hud/player_status_item.gd | 7 +- .../vox_png/level_design.png | Bin 0 -> 3594 bytes tools/level_design/1.py | 96 +++ tools/level_design/2.py | 162 ++++ tools/level_design/data.json | 749 ++++++++++++++++++ tools/level_design/level_design.png | Bin 0 -> 3600 bytes tools/level_design/output_graph.png | Bin 0 -> 83219 bytes 25 files changed, 1258 insertions(+), 140 deletions(-) create mode 100644 render/material/debug.tres delete mode 100644 resource/mesh_level/sub_grass.vox delete mode 100644 resource/mesh_level/sub_grass.vox.import delete mode 100644 resource/mesh_level/sub_water.vox delete mode 100644 resource/mesh_level/sub_water.vox.import create mode 100644 resource/mesh_library/scene_active.tscn create mode 100644 scene/level_active/grass_high.tscn create mode 100644 scene/level_active/grass_short.tscn create mode 100644 scene/level_active/grass_tiny.tscn create mode 100644 tools/MagicaVoxel-0.99.6.4-win64/vox_png/level_design.png create mode 100644 tools/level_design/1.py create mode 100644 tools/level_design/2.py create mode 100644 tools/level_design/data.json create mode 100644 tools/level_design/level_design.png create mode 100644 tools/level_design/output_graph.png diff --git a/addons/editor_menu_tools/editor_menu_tools.gd b/addons/editor_menu_tools/editor_menu_tools.gd index 56a168d..c3afcd7 100644 --- a/addons/editor_menu_tools/editor_menu_tools.gd +++ b/addons/editor_menu_tools/editor_menu_tools.gd @@ -88,8 +88,6 @@ func short_cut_index_pressed(index: int): print("[", item_id, "]", mesh_library.get_item_name(item_id), "::", material_name) elif short_cut_path == "func_fix_mesh": var material_grid_block: Material = load("res://render/material/level_grid_block.tres") as Material - var material_grid_water: Material = load("res://render/material/level_grid_water.tres") as Material - var material_grass: Material = load("res://render/material/level_grass.tres") as Material var dir_path: String = "res://resource/mesh_library" var dir: DirAccess = DirAccess.open(dir_path) @@ -104,10 +102,6 @@ func short_cut_index_pressed(index: int): var mesh: Mesh = mesh_library.get_item_mesh(item_id) var mesh_name: String = mesh_library.get_item_name(item_id) var material_set: Material = material_grid_block - if mesh_name.contains("water"): - material_set = material_grid_water - if mesh_name.contains("grass"): - material_set = material_grass for surface_id: int in range(mesh.get_surface_count()): if not mesh.surface_get_material(surface_id) == material_set: fix_count += 1 diff --git a/render/material/debug.tres b/render/material/debug.tres new file mode 100644 index 0000000..0819bc7 --- /dev/null +++ b/render/material/debug.tres @@ -0,0 +1,8 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://c0dpl6wyx3b2d"] + +[ext_resource type="Shader" uid="uid://4mnjdo06f0o7" path="res://render/shader/effect_debug.gdshader" id="1_n56k0"] + +[resource] +render_priority = 0 +shader = ExtResource("1_n56k0") +shader_parameter/is_hide = true diff --git a/render/shader/effect_debug.gdshader b/render/shader/effect_debug.gdshader index 906eb1d..da78557 100644 --- a/render/shader/effect_debug.gdshader +++ b/render/shader/effect_debug.gdshader @@ -1,7 +1,12 @@ shader_type spatial; render_mode unshaded,wireframe; +uniform bool is_hide = false; + void fragment() { + if(is_hide){ + discard; + } ALBEDO = COLOR.rgb; ALPHA = COLOR.a; } \ No newline at end of file diff --git a/resource/mesh_level/sub_grass.vox b/resource/mesh_level/sub_grass.vox deleted file mode 100644 index be768458b0ea00eb0b3aac8de4b9d886962ff4e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30406 zcmc)S3%DF*eaG?H+1Z_)*_qkhIkP)EyE8jc1jK4QCwCCgAecl0!4PR6;PE8qBsq|i z6Hao1fS@1>f)rG|qhh@w5V_cjRnd5*-ioNL)!LSNExkz9YHh9l`+esmktolj=Xsx} zS)UI(JM+H3_cHH$GLpldy>8=zHyDO-`pPwD@Mhe**D%gnbM9%L`oL?!0ZraFo^$S+ zTL&EQdY^3=Rl`{BgKNt(luE{O6BZoQ(LjU_67-OxY#PfesG^PlEp(8gR3-x+h7ch^ z4<(ChsH24;MChQ8a)my?hKB%Mq{u#q6!}!^k8<#MH4+_D8=*#Rn*}jK!`SCbdkg8 z(g!$j;Uh*DJ(vmi2?3f2(MFC^kMal*qKz)hKJCLs4K7-U(L;tDrIazjf(;*S#7NLb ziX2YHSkOQSV?bRr5h6m29#RZY$(aKcBNHu{J{fQkAVh=&83r%{<^T>nw2`6GV6IU|6A1>enqQN2>LbTC^*{40&sKG@G zF?z_5qmviD5(p2^;$90Ih^L5fnD40sqqgajpv^QfbR zAw=k)k8*|fVZ%d!E>h$$s+>cN1bt-4VcOJ#3lBqR!>Dl$7F>jABSs&#W3uNMD-sM~ zxRgf?bu5~B$0YXGbkYNBLU{2tnjSSTW?V^bU16WP6 z;GuyQB6QJ5iUGZ6VjR>)^G(LsvZ5Pd{|N<{l`5uk+#2~rqsGEqebJ(wLb&_oXz zN-=GriaI<52+>B2E{ra1!hw$%UG!ik%qs#kk)zb390G)BqYJZ7d$3W1ixy(^kReAY zr5tSdXd^~~K2kUteMSglz&j$u=pjWVXKZj#hmQslb!?Q`LuK|*nLSiy50%+NW%f{+ zJyd27mDxjO_E4EURAvvA*+XUaP?S$pI5jrSW zXb&E`NRh*+l8YD#`pA&Ow9D+3GJA!37(yFHjcc&rB19W8`mmicdxbF}!2pI^W}nbE zG!deM9Cn?21c;EJkBUbQS}=X;!$p7)5i$&51dJUXGE^J1g(eaVU^U5rhXz`R&_y39 z1}L|vk2*qFA)nDi2PtYp^bG+j5pBaofEFSoNMW?eL=_$MV0Oqr6B$Y|*HMRu0BywR z!syZt9QcUQMGt1e93nsyIZ8dsAwY;Wx-k2U2R3SO(L#(KGUO zLKp+y5g|qoDXKZ;P=}91y&D#Lz+w+r>;a2CV6g`*_JGA6u-F3@d%$83SnL6dJz%j1 zEcSrK9-c@1c;EJkBUbIS}=X;!bOM( z83r%{#s?1>stxjyU;wL0U3h4qg$P~rkz#;yi@K;Igcb4`O>~gLAEKXdBKm>=5fY>@ z+SEY@J=8kXM}|_&HFyZnMvN|uF5`s*A2GV9tW}kk;Mhz}n zh>;;jDWwc-_=u4pg_ALU7z1(_qD-Bwt)71nKqbz5QGR#>wY z)@+3}TVc&sShE$@Y=t#jVa--pvlZ4XW#E)6tl0`{mU<{zoI@Qg3?V|fLL2bVMT#6o zwZfXEEo8`H+7;Gpg*97Y%~GbuIaqKJqKz1~Q(?VUSg&MY0K=`YUg-mx=pct(r+oy7 zkf7pGA1#rf9FN-@{qp^X?_RJ!yVK4NsygPAZN2+%|hzsF~UXrl|W zPak2U1{W>F$dJQIxegyOQaBl7gfSow5n}X^qMB0%J`(kAR9TNz)?<}*SY;hnS%+2D zVU=}QWgS*ohgH^Lm33HU4OUr$T!&MxvIcp#sD~DYP_9&2b6i7;97eUudLt7Va+r3N z^;TuQRatM8sZkFu+OVA}Yplu|tFpeh?p9e}^cOkoI&C08go;Obv|##_g^LgoG7Mk@ z^cfy9R2yVs0INwocxa%72wn7%qTHemLRcZkXrhA@{t$hF8}W_^35+&n(LoQj4)u_s z6mtz8VpO{H5k6vc(Sw;VZUkr|hu`BfLbTC^*{5%?QG<&XVr0l+rCf)P7%7~LdkJGe z9wNl(Aw@N(416SL8a8XkX6@Ll9h`p};G%^X8FE-D*Wn{Z z3Mb>9z!;E+2r+s{QOzj>9|@X9jWtkX4b)fzHP%3lHBe&>)VTjO?thK@U*rDQxc`(Z z*SPn*Ta<@asd29&3bBcOd`s5Z#K09KPaXrP4%UG$Nn+@d@}SRu#gAQ+;Zh<8LV+FU~iJ=8k1 zfjFj*UD}3^7(JK?b&LQaCwf zk)Tv^xOWcs&f(rU+&hQ+=5Ws(?itt04)=?9i!$&k4)@F9emUGP%EGiA?v=y6;vH@H zj>EljxL2HaDF?4kCMq7+(Sqqy2O%;HU<9;>4Aq9i{c*TA4)=ykw9rK#DXJ~5hrFYM zU|`QXVl^zhJk^;e&cmxy2Nkc*Jk^;e%KDT= zhztW50lCOvHS5e#ojIaBQglLchU&~qoq6GUhxTJ~yVQe^9)g5+Vf85k7cIodVWpIX zlQ9Mu1ICCRQuukD@q3KlWBeZD_ZYj!*g03`oaHfYk8yJzrtL9ik1_Mv^%yT@J&&<^ zjFs!Y$5=ha>M>TzsrSHRj2>h37^BD7JjUiRHqLd(kICrL9(?o=B;>>DQwA^oe zDGMi~k1z)G9X9MAJe)_n<}((KU7xY|^xvodKK=LU zKiAZI;M0Gf{`>Ubr~f|vCnqMi>(ghSK65UiT%U4iA%>N59Zp8uFb0%`pZoMNppOCl z3+NxmWsa)>eG2Fk$8JD>0{Ros7X$%)2hHGI>)<){ZbD`J zk-ET3eO9kBRD?QK`pigO=cS6P*THCYymsX|>yK6k2VUwL zf0b^GZkgUOJyYjs(bA<077Z_1FtT*9YD-l(>M?~6uizZ0u!5$C4;DX|ueyDB@gjf8 zvIQfHj$bgcX=C})-=3e^@03^bGqRKh z=KOXA)!V~6^m{6({?4m{%9~dO^{X25s=)7T%&$T)-wKWSR#01TUSnv@w?a7I3Pba) zp!WQ{#?YQ`h0c5{#PhAtoo|I?z7=}&t{xar^#Di_&m91*9Q684U_V-yRML* zeCaj`j(M^eC#;q7+EHnYzgX&1*UB+B?vvx+^F?{>*B+JCi%*mrPCj1lJN=pRrSqRD z4`2QqdGsBt<=6XHiG2GCS^D&+%Lywllr5XDmP;;wi(GlrU2@9@zbgB`@!#@S|H2=S zM;$HZ!dQCG8^}=`Ls_)lm9wtt%Ej+FPHz3|c4-~cmM1JfL!S8T&9d~u8|Cg;D5-KKN6{*aH>3Y?Ap9cD1Z})j2Z0?`3k^7jKtUZBJgF_2th` zULpT5wn=_+#Y^Q^Z+@4^M;{XT){o@)r!6n$ZuGouvUlc6x%w4vlzsPpRzC8%ugfEk z{!*SXa)P{Y*SmFzfYDmGg-Uf88UVJnR3&{S^2>9EwcY5cgVNjbie%Qf$z!Cv8RZ& za)TIWoiE1Zq!_QfOpJHjB&CnsD=R+#F?rG{Pm%Gp!*a>QTDkGkO>+0^E|f3aF)Kg( z%WFg)zFRg#kzDkoWpdN0tL2Wdjq>r!#^k{_P0M#adbRxXSMHQ&4L?`TI^$~Dvh{6p z(WM`h8(;g^^7glVSMIy>7xKuLMAo#H$tB00B=0(LoqTrPHu?V68|CL$en8}%UlDoW z`?5YeTDGiMB$uu^O2m(Ag|ht>$H~mw zpC&il^L$w{T$dNDSR%7)&n)`)zNvF$|K%@|hhMW>{_*`c$TL?hl2f*wEgLW0A=5Ws zC9k^sb@JMezE$>pqWK`VMmq~cun`N-)6SCs<-;wnn{<&QC>7UA) z=gr7VHtm%+&s-yacHPbL&~5LQ@9n=;e)i29x&ODz(OGk@|7%_*muw zuiUV9+1!tU;wO!IEGwQ7XQpSjZC9U$7mlc(6{C~WGjksot7pB@ZR+Ik!X+b*O;A_# z5>#!y1l2FS1oh~sm!M`)FF`$D>LsWrPQ3*62&$K$o=No*)I+LXf_iGzOHhxodI{>e zRxd$4=;|e?Cttk;^(d^Dpq`EO64b-8UV?gh)=N;2(|QT&`C2bQJ#gzKs3&l}1ocR+ zm!O`}^%B%WyIz8Niq}g}kM(*9>N#I8K|T2EB`nZRc!GAq6SWhL(oT4ic7pnMVtV)D z80~~(wG*DKop79X!c(*p{zyCFsoDuo(@t2Zo$z$+gkkN35$%LU+6jxb6P9QvEY(g> z|Bp@YC(Lr~gcaHe$7?5?pq=mx?SvDx6Hd}jI9WU4nc4}@(oR^Zop6eF!n3s#PSs90 zO*`Q^+6k+)6IN>{tkF(*u6Dxnv=i29C!DUGp#F<%y+1G3X(ybio$!3^g!S49XK5#F z&`x-PcEZ`(34g4euu(hV9PNa2wG%dJC!D99aK3iJ3$+tQwG&>XoiL`Iuvt4{i*~}e zcEW^q!dC5sZQ2RjwG$?_6E4tBxKKM`hjzl0cEV2WglX-BUD^p3X(!BRC+yZv*rS~= ztDUe{JKA zE3^|{shx0*cEYvV39r&lxK2CadhLW)YbV^Go$x2x2{&pd+@ziG8tsJFYA3u-JK<*S zgx6~)yg@tRjoJxs(oT4@cEVe<6W*$waEo@r+q4tjuAT4>?Sxyk6W*zv@Tb}d@6t|q zw|2sNv=iQ|o$x;GgxjAk318Aq__B7wUuh>isGaZ??SzN46TYgQ z@HOp(uWKj#wRXbaXeWF_JK=A&6TYdP@Gb3xztc|mwsykbYbX4JcEUeuCp@g3@K4$a z-_cI^u6Dxrv=hFso$v$ggdb`r{Ihn#Biaf7qMh)s+6n)ro$&A42|v&!q2o5ey*MHU)l-3&`$Vo?S%i)PWYvE!vAU~{7O6F*V+l9ouIzH zp-f5@qkr(XH_WU%<+U91 zJzlghtcp)^MZMI34lh2rbF0c2omAr;UbwvYaABPf#TS~XFEv}bw3vsno!fRysLFiF z*3#i3Wo%|*Of@>ZaCmufVtjJmKLo}FCHB) z`gHJ9QEz0pnDzxDBgI6XdZ4drst@(GSSDMiw~Zd0%(?aM6rU4 zK^(l5D*n(Qii53_JEn?*i5KshRsnN&YwzS-kBduVTPAk@=F+yYDRpBOEnK7)$wm&< zOBE~%t36lTvCTWCr>BY$OijLc?pDsNWwzIjx!qB0t}(R%=hlY0zoUD$&rIyzKE0!u z(h=3hNvZ)}hppwJ?lyit>>MweE4~X*4ZiqVKfc+oXnOm>FMBD1jxAz-YvZca(aqa_ z6QYKpzL&6=xf2dlIjrqspcCWU<_21{e5g{9bMfT(o&#SxQ_Rx&2U1k2qOzK$;$Yj% z_pK&fWRpMMV+z{H`5i#gC??iy4Lry_S zMNJ^m(9+Q}FfuW-kXYH+IXLl9{JD8}`S1z<`O7a^u1`)uNkvT{($Lb;GcYnSvyfQX z*f}`4xOsT_@L>P>%P(1>PfkHeMNJ^m(9+Q}FfuW-kXYH+IXJnvd3gEoMF08AFIlNi zPC-dUO(4?H($O<8GBLA|SlQS)IJvlac=_-m`}3DyvPz$vf|81wK%}9iqi0}bVrC(+ zvaxe;a&hzU^5F&k=P$oxwLUooB^5P+NJC3U&%nsU%tB&iW9Q)H;^yJy!<*~RUw+Ag zJ~;&?6*YlKLrX``z{teRLSkiO=iubx=HcbT8~e{+e#xRfIRzyZHGxP&OGnSZ$i&P- zVr66J;N;@w;pM|c<F604nV4BftZeKYoLt;IynMKU{rSr;*{DxWK}khTAkxs%(K9eI zF|&|Z+1NQaxwv_F`Ec|6^Os+;NuQj8l8Tx@q@kswXJBMvW+Ab%v2$>8ar5x<;l};v zFTZ57J~;&?6*YlKLrX``z{teRLSkiO=iubx=HcbTq2bS8e#sVnatcZ+Y66jlmX4l* zk%^gw#LC9b!O6wV!^?*Q%b&mek|lj|3Q8(!0+EK6j-G*$iJ67O%Er#Y$;HjX%ZJ0# zpTGQ)t@`8?lvLCNA`LAaJp&^XGYg58jh%y&i<^g+4+phBfB7Zb^vNkGsi+A=8d^Gf z21X`k77{BPI|nBhHxDl#4vByM@=LbslT%PqQ4@$Xv~=_gj7-cdBvv+d4o)s^9$r2i zQ2+epm+a6dr=X;wCJF604nV4BftZeKYoLt;IynHwu|M|-=*{M%XK}khTAkxs% z(K9eIF|&|Z+1NQaxwv_F`EW4*^Os+;OP`#Al8Tx@q@kswXJBMvW+Ab%v2$>8ar5x< zVHEuN%P-ljPfkHeMNJ^m(9+Q}FfuW-kXYH+IXJnvd3gCSNdElgm+a9er=X;wCJF604nV4BftZeKYoLt;IynGl#fBy1I_Ue;UP*PD7h%~fx^bCwl%q%2UHg*n9E^Z!P zJ`AxxfB7Z*^vNkGsi+A=8d^Gf21X`k77{BPI|nBhHxDl#M&O^n{POSPhn#|vikd*A zp{1i|U}R!uA+fTtb8vET^YHRvfd2W*FWFyxatcZ+Y66jlmX4l*k%^gw#LC9b!O6wV z!^?;9`{yseWWW046qHod1R@PB9X$gh6Eh2mm5rT)lZ%^&mk-1H&tHDYvLAE!$0YqR z3x7!H@qNp7|eratcZ+Y66jlmX4l*k%^gw z#LC9b!O6wV!^?-D{jX1!>yuMZQc)9#G_-W|42(?7EF@Mob`DN1ZXRAfe6sexK3Snp zPC-dUO(4?H($O<8GBLA|SlQS)IJvlac=_-^+yDAxr9L?YB^5P+NJC3U&%nsU%tB&i zW9Q)H;^yJy!;@_P>yuUbpPYh{ikd*Ap{1i|U}R!uA+fTt zb8vET^YHTFjb;DqlSO@U3Q8(!0+EK6j-G*$iJ67O%Er#Y$;HjX%ZE3${jX2f=#x`W zQc)9#G_-W|42(?7EF@Mob`DN1ZXRAfTu|(PeX>@coPv^ynn0wXrK4wHWMXC^v9hsq zaB^|;@bckeX8-Gxb^7EKlvLCNA`LAaJp&^XGYg58jh%y&i<^g+4;NDVU!SbkC#RsK zq9zb&XzAz~7@3$^NUUt^9GqO-JiL6kh}-}AWP?6A1tk?Vfk;D3N6)~>#LPlsWn<^y zSSwEy+VW_@xBN-Amsk%pFzo`I2xnT5p4#?HaX z#m&RZhnu$juTQq$2vZPN=K}khT zAkxs%(K9eIF|&|Z+1NQaxwv_F`EXdV|MkgMeR2v)Dry3ehL(<=fsu)sg~ZCn&cVsW z&BM!wgOdHPPqyikQ&3V-6Noglbo302Ow24KRyKAHPA+a9UOpVs?08ar5x<;ecrW>ysV&8 zar5xyv%@LKs-}?XekyB7oQ4@$Xv~=_gj7-cdBvv+d4o)s^9$r2SK>J^x?5{dG1tk?V zfk;D3N6)~>#LPlsWn<^y2|Mkg!^~otHsi+A=8d^Gf21X`k77{BPI|nBh zHxDl#hOhmvPnLP)$tftQs0l>Qk2+&sK|_(bi0eX>%YoPv^y znn0wXrK4wHWMXC^v9hsqaB^|;@bck7w*U3XDt&SaN-Amsk%pFzo`I2xnT5p4#?HaX z#m&RZhbP$n*C(s>$tftQs0l>Qk2+&sK|xR}`g`edCxIRzyZHGxP&OGnSZ$i&P-Vr66J;N;@w z;pM}H%>LIW>-EVgD5gK;dIm-&W)>1F8#@Ol7dH624XQc)9#G_-W|42(?7EF@Mob`DN1ZXRAf+_>z2eX?1foPv^ynn0wX zrK4wHWMXC^v9hsqaB^|;@bclNY5(h!E&AjXlvLCNA`LAaJp&^XGYg58jh%y&i<^g+ z4>xT4U!N@LlT%PqQ4@$Xv~=_gj7-cdBvv+d4o)s^9$r2i7VLk0vQ?j)f|81wK%}9i zqi0}bVrC(+vaxe;a&hzU^5LLj|Lc=&`s5UpRMZ3_4J{o#10xeN3yGDDor9B$n}?SV zha~%7pKRABr=X;wCJF604nV4BftZeKYoLt;IynHyI+5h@vhdwz4B^5P+NJC3U z&%nsU%tB&iW9Q)H;^yJy!{N~W*C#vm$tftQs0l>Qk2+&sK|7$Ww+KG~;FPC-dUO(4?H($O<8 zGBLA|SlQS)IJvlac=<4b?0f|81w zK%}9iqi0}bVrC(+vaxe;a&hzU@?q?I3Fwm*`s5UpRMZ3_4J{o#10xeN3yGDDor9B$ zn}?SVA^TsStkfr`proQE5NT-X=ouK9m{~}yZ0sDIT--doeE1~oe|@q_pPYh{ikd*A zp{1i|U}R!uA+fTtb8vET^YHTF0k;43$!dLa3Q8(!0+EK6j-G*$iJ67O%Er#Y$;HjX z%ZDe|{?{i9`s5UpRMZ3_4J{o#10xeN3yGDDor9B$n}?SVFD(0CpDgN=Q&3V-6Nogl zbo302Ow24KRyKAHPA+a9UOv32?SFl;MxUI5l8Tx@q@kswXJBMvW+Ab%v2$>8ar5x< z;SFW~>yx$mXTDYQc)9#G_-W|42(?7EF@Mob`DN1ZXRAf92D$-eX>oToPv^ynn0wXrK4wH zWMXC^v9hsqaB^|;@bcl1V*l%t?fT>tlvLCNA`LAaJp&^XGYg58jh%y&i<^g+4+kXs zU!UyIC#RsKq9zb&XzAz~7@3$^NUUt^9GqO-JiL53oZ0{SWT!qk1tk?Vfk;D3N6)~> z#LPlsWn<^yQ3w*U3X9({5ON-Amsk%pFzo`I2x znT5p4#?HaX#m&RZhr_u2uTS>slT%PqQ4@$Xv~=_gj7-cdBvv+d4o)s^9$r2S0sCK{ z?9(TwproQE5NT-X=ouK9m{~}yZ0sDIT--dod>A42zdrxI>;KU!Uw(pPYh{ikd*Ap{1i|U}R!uA+fTtb8vET^YHRv_}TyZWSQ@{Ag7?Dq9zb& zXzAz~7@3$^NUUt^9GqO-JiL4uo%Vle|NCi=AANEPN-Amsk%pFzo`I2xnT5p4#?HaX z#m&RZhrw(A>yzdBgK;dIm-&W)>1F8#@Ol7dH$tftQs0lD?2Ea;O{P*PD7h%~fx^bCwl%q%2UHg*n9E^Z!P zK0LAZzdl*iC#RsKq9zb&XzAz~7@3$^NUUt^9GqO-JiL5(QQ80cWQ{&K1tk?Vfk;D3 zN6)~>#LPlsWn<^yF604nV4BftZeKYoLt;IynMK6 z*#G)ui#|C8B^5P+NJC3U&%nsU%tB&iW9Q)H;^yJy!wt*+*C$K*>Qk2+&sK|IEdT-`edIzIRzyZHGxP&OGnSZ$i&P-Vr66J;N;@w;pM{!u>bY> z_Y?pBzU%+rSN{L4|9>A9HGxP&OGnSZ$i&P-Vr66J;N;@w;pM{svH$hS{_2xcP*PD7 zh%~fx^bCwl%q%2UHg*n9E^Z!PK8zpxU!Uw(pPYh{ikd*Ap{1i|U}R!uA+fTtb8vET z^YHRvc-jB@WSO6~Ag7?Dq9zb&XzAz~7@3$^NUUt^9GqO-JiL4uefEE4|NBi3Kl#LPlsWn<^y z$tftQs0lr`s5UpRMZ3_ z4J{o#10xeN3yGDDor9B$n}?SVFJ}8+pRCg-r=X;wCJF604nV4BftZeKYoLt;I zynJ{g+5h@vy*@bwB^5P+NJC3U&%nsU%tB&iW9Q)H;^yJy!<*Rt*C!kF$tftQs0lF|MkfxeR2v)Dry3ehL(<=fsu)sg~ZCn&cVsW&BM!w3#a|BPd4k5Q&3V-6Nogl zbo302Ow24KRyKAHPA+a9UOrs3?SFl;MW394l8Tx@q@kswXJBMvW+Ab%v2$>8ar5x< z;f7)V>yssYatcZ+Y66jlmX4l*k%^gw#LC9b!O6wV!^?-8mHn?zw(65pP*PD7h%~fx z^bCwl%q%2UHg*n9E^Z!PKHMnne|@q|pPYh{ikd*Ap{1i|U}R!uA+fTtb8vET^YHTF zCT;)glkNKC6qHod1R@PB9X$gh6Eh2mm5rT)lZ%^&mk$R7`(K~z&?l#$q@pGeX=v%_ z85o(ESxBsG>>Qk2+&sK|IGou3`edg*IRzyZHGxP&OGnSZ$i&P-Vr66J;N;@w;pM}@ z$o|(SyY$H^D5gK;dIm-&W)>1F8#@Ol7dHqzdqTmPfkHeMNJ^m(9+Q} zFfuW-kXYH+IXJnvd3gD7AhiGW$sT=j3Q8(!0+EK6j-G*$iJ67O%Er#Y$;HjX%ZJ0L z{jX2<>XTDYQc)9#G_-W|42(?7EF@Mob`DN1ZXRAf9E9zEeX>uVoPv^ynn0wXrK4wH zWMXC^v9hsqaB^|;@bcjhZvX4^@3;N^`-%U5-}V3REC2u2|G$r#K%}9iqi0}bVrC(+ zvaxe;a&hzU@?ikj|N3Nq^~otHsi+A=8d^Gf21X`k77{BPI|nBhHxDl##)ti{Pxh-% zPC-dUO(4?H($O<8GBLA|SlQS)IJvlac=<4V?0F604nV4Bf ztZeKYoLt;IynGm4_J3{v`z?<@`s5UpRMZ3_4J{o#10xeN3yGDDor9B$n}?SVgU|lg zC(HH8DJZF^2}BxNI(i01CT12AD;qlpCl@ylFCWIH{jX0}=#x`WQc)9#G_-W|42(?7 zEF@Mob`DN1ZXRAf3|;$QpRCj;r=X;wCJF604nV4BftZeKYoLt;IynGnh_P;(^ zrB6;lNkvT{($Lb;GcYnSvyfQX*f}`4xOsT_Fz~$v^~q{|atcZ+Y66jlmX4l*k%^gw z#LC9b!O6wV!^?+%xc#qB7WBy}D5gK;dIm-&W)>1F8#@Ol7dHG%3HtLg8 zP*PD7h%~fx^bCwl%q%2UHg*n9E^Z!PK3qKPe|@q^pPYh{ikd*Ap{1i|U}R!uA+fTt zb8vET^YHTF!e#&Klg;|%6qHod1R@PB9X$gh6Eh2mm5rT)lZ%^&mk$?B`(K}I(I=;% zq@pGeX=v%_85o(ESxBsG>>Qk2+&sK|xM17=`eaF;oPv^ynn0wXrK4wHWMXC^v9hsq zaB^|;@bckiVgKust@`8?lvLCNA`LAaJp&^XGYg58jh%y&i<^g+4>v0NU!QE#C#RsK zq9zb&XzAz~7@3$^NUUt^9GqO-JiL6kN!tJVWV=2&1tk?Vfk;D3N6)~>#LPlsWn<^y zQJvH$hSE`4$eN-Amsk%pFzo`I2xnT5p4#?HaX z#m&RZheMJ5uTOUClT%PqQ4@$Xv~=_gj7-cdBvv+d4o)s^9$r2i$n1Z8vPYksf|81w zK%}9iqi0}bVrC(+vaxe;a&hzU^5HOO|Lc>z`s5UpRMZ3_4J{o#10xeN3yGDDor9B$ zn}?SV2T}W9pX}2or=X;wCJF604nV4BftZeKYoLt;IynHwW+yDCf`%VAB3Uf3W}k2@gN|gK;dIm-&W)>1F8#@Ol z7dHFa*zdl)|PfkHeMNJ^m(9+Q}FfuW-kXYH+IXJnv zd3gCSu>Qk2+&sK|ctGuceX>@coPv^ynn0wX zrK4wHWMXC^v9hsqaB^|;@bclwwEy+VI(>2qN-Amsk%pFzo`I2xnT5p4#?HaX#m&RZ zhZmCluTR$NlT%PqQ4@$Xv~=_gj7-cdBvv+d4o)s^9$r4Yi0yxUvO%Amf|81wK%}9i zqi0}bVrC(+vaxe;a&hzU^5G3+|Lc>D`s5UpRMZ3_4J{o#10xeN3yGDDor9B$n}?SV zZ(jRfpKQ`6r=X;wCJF604nV4BftZeKYoLt;IynMKD*#G)uvpzWmB^5P+NJC3U z&%nsU%tB&iW9Q)H;^yJy!$r&f*C$)_$tftQs0latcZ+Y66jlmX4l* zk%^gw#LC9b!O6wV!^?-8v;D76cIuN;P*PD7h%~fx^bCwl%q%2UHg*n9E^Z!PJ{%0} ze|@q`pPYh{ikd*Ap{1i|U}R!uA+fTtb8vET^YHTFP-6e>Qk2+&sK|IE>l< z`ed&@IRzyZHGxP&OGnSZ$i&P-Vr66J;N;@w;pM|Y(Eisa`}D~vD5gK;dIm-& zW)>1F8#@Ol7dHHptv`}_A3|Np-0|KC^s|E>RjACZQZj-G*$ ziJ67O%Er#Y$;HjX%ZCH7{jX28ar5x<;qYz$ z>y!QJlT%PqQ4@$Xv~=_gj7-cdBvv+d4o)s^9$r2i{Ox~zvdo{bKu$qPMNJ^m(9+Q} zFfuW-kXYH+IXJnvd3gCSI_&>w|NGM&fAq;ID5gK;dIm-&W)>1F8#@Ol7dHDH6zdl*1PfkHeMNJ^m(9+Q}FfuW-kXYH+IXJnvd3gCS zGVOnTvPz$vf|81wK%}9iqi0}bVrC(+vaxe;a&hzU@?qfG|N3OLJ~;&?6*YlKLrX`` zz{teRLSkiO=iubx=HcbTxVHcG$$~yP1?B%=+?{|=a@TbNF8Z#jKB}v$x~mT$+~Q)G znPhT7z;GogwzF&CK-BrAMCuF$pO{MvR$|F(qe4 zLCKs26-!pE*nNd(OXFByKHUH}; ziuKc?O@}T$`V5FkNEtF>%!G_7IWr1M<}9dKvSQ5!cgXy&pD58!i#8p)^yo7nCLv|W zh%pl~rsT{hD4DaMV#$g%8yrmYzkZ@rKP}pH=+dLlfS81oAtT02$e5Bdqo8EYf{G<8 z)@<-Vn*a3^4fWHaO@}T$`V5FkNEtF>%!G_7IWr1M<}9dKvSQ5!Pa^Zbexi|nTD0lV zrAMCuF$pO{MvR$|F(qe4LCKs26-!pE+29Fm{?|`5)=!Hz9lG@BGax1*Wypvz6Eddc z%qS?Cv!G(hiZvU&c+CI$i6;7K(WXO}9(@MHB%}-(F=j%>l$;p_C36;3ELpK;gBPy( zUq4Z%pB8O8bm`G&Kuki)kP%}hWK7AKQBX2xLB*04Yc_b(F#qc(n(C)Tn+{!i^cfJ7 zkTPV%mAWX^($B`el! z@Zo6w*H5(2Pm4Aky7cHXASNMY$cQl$GN$CrC@7h;pkm32H5+^|oB#C_Rr+bsrbCw= zeFnrNqzoA`W8C}T4qbZm84#0@GGxS<2^mvzW)zgnSx~WL#hMKkL*{?| zL~H%DXw#ufk3Iup5>keY7&9SbO3sXek~s@1maJH_!9vXZub*h6pB8O8bm`G&Kuki) zkP%}hWK7AKQBX2xLB*04Yc^N}n*a6VU${5_>!<#l$;p_C36;3ELpK;g9WJhUq8`Z^wXkEhb}$(42Vfc88Twbgp4UUGYU%PET~wr zV$BANU-Q3yqPyy+MVk&?dh{6(laMlG#Fz;gQ*ve$l+0OBv1G-X4Hn+!fBi&}e_fFl zZ8~)6(PuzRLduX4Vk`-$@Zv{X{MOv}n_zOOHMSViHn@j2JT^V@l49f|5B4DweER zv%#=q{?|{`)=!Hz9lG@BGax1*Wypvz6Eddc%qS?Cv!G(hiZvSyTIPTKL>>LKXw#uf zk3Iup5>keY7&9SbO3sXek~s@1maJH_!H{SE*H6^dPm4Aky7cHXASNMY$cQl$GN$Cr zC@7h;pkm32H5&|==70S}J^i$3)1ga`J_BMBQihBeGa+M2&WwVRISVS5tXQ+baBKe8 zPt?~>i#8p)^yo7nCLv|Wh%pl~rsT{hD4DaMV#$g%8w}RwfBi%Q{j_M)p-YcG17Z?V zhKv|9A!AC;jDnIm3o4eZShK-U?=4V2QLLX9Z8~)6(PuzRLduX4V zk`-$<2sHoeCrb3wqD_Y`J^BoYNk|zoV$6h$DLFF=O6Dx6Sh8Zx26x8%ub(K@Pm4Ak zy7cHXASNMY$cQl$GN$CrC@7h;pkm32H5(jA^S^$gp?+Gl>CmM|p8+umDMLn#nUFCh zXGTHEoCOt2R;=0JK{WsCCmQLeMVk&?dh{6(laMlG#Fz;gQ*ve$l+0OBv1G-X4W2;e zfBi&b{j_M)p-YcG17Z?VhKv|9A!AC;jDnIm3o4eZShK;C*Zi-aXriAMZ8~)6(PuzR zLduX4Vk`-$h(I zLdKMw83iSC7E~-*v1WreO7p*dqC!6{+H~mBqtAetgp?s8#!SeVk~5>AWX^($B`el! z@Fs2k*H2XHr$w6%U3&Bx5R;HHWW<;W8B=m*6qL+aP_bminhic6%>Vj{=K5*TrbCw= zeFnrNqzoA`WE6F^ zZ~oU${cV5s-}tZp)PMau|Mm1=|4K+1GGfexj43%Y3QFcIs93UM%?1lV^S^$gyXdDy zn+{!i^cfJ7kTPV%mh(ILdKMw83iSC7E~-*v1Wq>zxiK3QAAWX^($B`el!Fl?Cr^%J%A)1pm>E%!G_7IWr1M z<}9dKvSQ5!gRS{rKhZ!xE!uSG(xcCSn1qxeBgRa~n36N2pk&U1iX|)7Y%o-t|Me5a z`f1UoLzfh(ILdKMw83iSC7E~-*v1WsT-dnJKqC`I}+H~mBqtAetgp?s8 z#!SeVk~5>AWX^($B`el!5N7_@Pn7DXMVk&?dh{6(laMlG#Fz;gQ*ve$l+0OBv1G-X z4ep5fUq8`MKP}pH=+dLlfS81oAtT02$e5Bdqo8EYf{G<8)@*PP&Hws|M*3;drbCw= zeFnrNqzoA`WCtCEOhU?#5o0D~Ov#y1 zP%>vh#gY|kHhA)w|Me41^wXkEhb}$(42Vfc88Twbgp4UUGYU%PET~wrV$B9mT=Tzv zqD((6+H~mBqtAetgp?s8#!SeVk~5>AWX^($B`el!@S-vQ>nED(r$w6%U3&Bx5R;HH zWW<;W8B=m*6qL+aP_bminhjpC=70S}xqe!->CmM|p8+umDMLn#nUFChXGTHEoCOt2 zR;=0J&BFYzpJ=9^7Hv9o>CtCEOhU?#5o0D~Ov#y1P%>vh#gY|kHh7~l|LZ3z^wXkE zhb}$(42Vfc88Twbgp4UUGYU%PET~wrV$B9`lIDN?M5TUOwCT{LN1p*P2`NKHjG2%z zC1*xK$(#ihOIEDe;0@aRub*hHpB8O8bm`G&Kuki)kP%}hWK7AKQBX2xLB*04Yc}|B zF#qc(TIi=mn+{!i^cfJ7kTPV%m%)bm-Ef&w!YOlp!O=Ovsp$Gozqn z&Vq_1E7olAfo%TQPqflci#8p)^yo7nCLv|Wh%pl~rsT{hD4DaMV#$g%8!QIQ|N4p6 z`f1UoLzfh(ILdKMw83iSC7E~-*v1WsXi1}YX(MCTl+H~mBqtAetgp?s8 z#!SeVk~5>AWX^($B`el!un02$>nAeV-wFT1z4>21^|$@if8)RYQ~&kv{MXZe{VQe2 zh%pl~rsT{hD4DaMV#$g%8!W)g|N4pUqMsIRI&|sLXFyCs%8(IbCS**>nNd(OXFBzF{F(pt6WvumE!uSG(xcCSn1qxeBgRa~n36N2pk&U1iX|)7Y_RY&|LZ4;QuBXm z{`apd(xFR_J_BMBQihBeGa+M2&WwVRISVS5tXQ+bqSySNn*UStzkXV@>CmM|p8+um zDMLn#nUFChXGTHEoCOt2R;<}z!EOH6Pt?*+i#8p)^yo7nCLv|Wh%pl~rsT{hD4DaM zV#$g%8!YzC|N4pA`f1UoLzfh(ILdKMw83iSC7E~-*v1Wro!~CzGsH2}2 zZ8~)6(PuzRLduX4Vk`-$<7;?=2`iZ*wY0;)bmmYlv#3ZB)88K!; z#*~~H1toJ9R4iGsW`hCC{I8#=r=J#WI&|sLXFyCs%8(IbCS**>nNd(OXFBya z?#%!CiTe6!(WXO}9(@MHB%}-(F=j%>l$;p_C36;3ELpK;gTd1Lub*h3pB8O8bm`G& zKuki)kP%}hWK7AKQBX2xLB*04Yc?2a&Hws|V*Rve)1ga`J_BMBQihBeGa+M2&WwVR zISVS5tXQ+bKyCilPn77VMVk&?dh{6(laMlG#Fz;gQ*ve$l+0OBv1G-X4TgCi0s4tj z{j_M)p-YcG17Z?VhKv|9A!AC;jDnIm3o4eZShGQp`CmWLP(Ll&bm-Ef&w!YOlp!O= zOvsp$Gozqn&Vq_1E7ojqC(Qr)iAMTq(WXO}9(@MHB%}-(F=j%>l$;p_C36;3ELpK; zg9B*(*H1LoPm4Aky7cHXASNMY$cQl$GN$CrC@7h;pkm32H5)v5=70S}6aBPk)1ga` zJ_BMBQihBeGa+M2&WwVRISVS5tXQ+b6UY3opD5E$i#8p)^yo7nCLv|Wh%pl~rsT{h zD4DaMV#$g%8$4;v|N4oh`f1UoLzfh(ILdKMw83iSC7E~-*v1Wr8jQL+b zQLdjBZ8~)6(PuzRLduX4Vk`-$ECmM|p8+umDMLn#nUFChXGTHEoCOt2 zR;=0JP0IYQpQzMNi#8p)^yo7nCLv|Wh%pl~rsT{hD4DaMV#$g%8@xf9|Me5i_0ytF zhb}$(42Vfc88Twbgp4UUGYU%PET~wrV$B9`&gOspL<{}2Xw#ufk3Iup5>keY7&9Sb zO3sXek~s@1maJH_!3Tr+Uq4Z$pB8O8bm`G&Kuki)kP%}hWK7AKQBX2xLB*04Yc}{$ zGXLu*TI#1on+{!i^cfJ7kTPV%mCmM|p8+umDMLn#nUFChXGTHE zoCOt2R;<}zAz=R3Pqfibi#8p)^yo7nCLv|Wh%pl~rsT{hD4DaMV#$g%8!ST1|N4nc z^>?C$f8pNzub=wc{_4N+U;nB9`gi{8>A(IpWW<;W8B=m*6qL+aP_bminhh2}=70S} zchOIaHXXY3=rbTDA!W#jF%vST;)l8dtwXQNxM ztN+`oe@+|{5nU-Kt*AIg*6V1BY2EKYWV>SQ-qp6mvzligr_vK!Rz z`zQ4{_`k&`x4~Ubc7wbAXEwOx{D+(u)$gbEjqlVBcfZGd!b2~3OxSzXwc&eS`~%@9 zZhCL{*l&M2{L`2IIb43(w}t0k|CI2$mpn7v^oAFQo8R@i@SDH%w(z;nd^m)^`{Quw zY2O$Qop)Av;bR{jUi;)ng?C+hY51L&9t>Z4$FsuUfAq~^eD7}v(K#1}_Jw=GWZ%<6 zdgz7W-Y>f;oc*TX2(S2^FNO6faKH1;3A-*jJDj=q+;Hyk3&Q!|_k^(Tre}vY|HfOw`Q+1L69k&k4`_-X9D%z57Gq=YI8* z;qzboa(KYbbHbC)dw6)^C6|P^JmtyZSD*is@X0qmHGKZVFACv{9}H*RZM{7PdoFxX zICR7liQHcZN%gB0Tk;XM~qO?1J#ty^jw+f8*Zpu^&1T zKKK6Tg}?mx+rl^R_?Gb4$2>1wapmj7Q=jpk@UmC@Zg|7%|0KNkZT}oT|IrX0IXxrX zaG!I-k3I0B@S%$igg?9TW#J#6^Y##a^y49X_|L*6cfMD+;;dca8IOE;c;#hJ4DUX2 zefX7UJu7_dB{zmoyy>~&zTXgq(=O&`EL)G zofd_sKBya>cTpT(dsP|U`{G^UH{W`0`25En7Q){=C!BHbWq9DOM~BBhZeKWj@KAX9 zGoKdT`ReC}kG%86;qN~COY%<*J0J9j@W6{67#{JY`-dl8duq7qd+!^LzTum~OW*aa z;q)D8__ni7563UOc)Nc;dFTn@=4XCq`0V#z7yjs{UK$>J{;u$l1CI-jf5tW8$g7?k zzVDr{46k_qYr{<+|3LWEm%kjMQ_c-{+PNnr7u*=~C%z`!<=8KTvtIqVaLN1rG2Hme z{}3MesH5S#F1tRw=I9H;Prv9@;S+EE@$jcNzcGC2(=YS*za`x3&e@6mf8?{njaR-a zyzaTb7vA=&zYgzv^FM@-{9*`qzt?w!`<%8v-0$4u;hc+K5-z#&t>H<>-WLu%=jQOD zm){&7be{)={oj0kc-p0xg_rKTCcOQI?+zb$(M!W8Zn`OiKlo%gbk{h%>Wn;maL@h1 zpE!2^`i?4uU%y)jfBv}b+VauoU3%deC*BISZ%y^GY`aE0dgS zZN0|g!%|JOQ_eE%@XPrXS0NQ z3EC{7UXwOUs28ct66#fJvxIsX+bp48*EUP27rM<7>XmP^gnB95ETLW-H%q7&%gqw% z)pN6idO6)JpUZXcls2APHCKQx5f!~Z=7(C#tHXqoKXKiv1X6Oy&EUor*XnJG)}m07C)EFE zw%MckO^p*yZJcob#tAzbC+uvTu&Z&xX^j(3Z=A5ZaY8+@HG58;**M{>#tCOPPB^D= z!UGy7Jg{-Xxs4MZ)Hvb6jT64Pal(0x6CTny;h~Ka9@aSF;f)g>(KzA!#t9cRPIzSF zgl}n_@TkTK7dB3KbmN4_G)}mval*xo6TY=^!X=Fp9@{wK(#8qj);QsDjT64Tal+#p zCp@8X!gn-IxU6x)6B{Qysd2)S8z<~(oba8E6ZSSvxV&+~6^#@2HBQ*yIN{312?rV{ zT-7+?VB>_RG)}m>al$o?6Am>_INUhlNaKWS8z(%qal+BY3D-4FIMz7fc;kfY8z(%i zal+FZC*06D;Teq+Zfuf zZ=CRg#tAQMobY{(6JFFf;l+&;UeY+>rHvE*YvY8MHBNYWTobZaq39oFN@T$fM zuWp?11C0}YuyMiobcMl39oCM@cPCHZ)lwGBaIW@*f`-w8z=m?#tA>x zIN`?|C%ma~!cR0#_{qizZ*H9MQ;iee(m3I*jT7G1IN_$o32$$l@Q%g_?`)j#uEq)P zZk+I*#tA>&IN@g+C;V*Vg!eX1cwgg$|K2#^=Nc!xzj49`8Yg_Pal+3xPWXk!2{$)R z_{GKvztlM4mm4SiO5=nNHBR`|#t9#8obYRn6MnsM!bch>{6^!1k2X&D&Bh78)i~i} zjT1iJIN=kG6MnmK!tXRr_+;aR-))@mKN=@|s&T^qY@G1v#tENkobY>%6MnyO!XGqF z_`}8tf7CePvyBt}xN*Yg8YlcoYC}QsabwY@F~KQU=pox?}I z>-)Ro)HAmiu1;OpexX_YrDnT#Z;!*?!w0U}UvKP7ws!B>rtCese{Ws7w_q{jl*>~co zoPOICS0`?Ny00egzm_rBm-~NX66<_xd)<3xA%RbK9y=^^m+Ma#eeY*A1cDtQB zwuk+cojbP&@?p2^YkjD1+t=;Wg~>z5JTJ`}XfSyxnHIYbUPQ zK7+S+;?{?TNgOp?zz0(_JH??!~3>%+wTIb@BH>_{d}|Ew)(1D zzwBijbf0a^zkA``+_K5-y0>?9|Gon!?&!ApwvDzqPdm8p z*ezc=vpq^rx+SH))pq0hC~eOiIC}7__W!n&?W1_zwR^8PczF9j?EFgXiAR3NuI){{ z=C8eG@Aj=}ySvZ5rKtYlZAB--_8&VY?5hsj_94A(C$>+X?WOvTedW^S2liZXyGwhw zm$v(}eI)B`cAnzbcH=AdUvo`;gPlhodfuat-?BILf9egkx2WG6>-*q|eBCzX$|F}C z-#+oT2Yq|hZEttmtG4@mbnm`{$G1j4%AP+J9G!?@;h_~>eta7x&!r#^$y*E`XluJ b`wl$jqDvqCLdEsz6zW$(eVzZ@VW void: original_position_y = position.y func on_set_open(is_open_set: bool) -> void: - print("[on_set_open]", is_open_set) - + pass + func on_process_open(rate: float) -> void: - print("LevelActivePlatLift on_process_open", rate) var offset_y = rate * 2.56 position.y = original_position_y + offset_y - print(original_position_y) for character in character_list: character.emit_pos_changed() diff --git a/script/level/level_instance.gd b/script/level/level_instance.gd index 1784844..baada7a 100644 --- a/script/level/level_instance.gd +++ b/script/level/level_instance.gd @@ -5,10 +5,12 @@ class_name LevelInstance @export_tool_button("视野锁定", "Callable") var view_focus_on: Callable = func() -> void: grid_block_material.set_shader_parameter("is_focus", true) + debug_material.set_shader_parameter("is_hide", true) set_focus_editor() @export_tool_button("视野解锁", "Callable") var view_focus_off: Callable = func() -> void: grid_block_material.set_shader_parameter("is_focus", false) + debug_material.set_shader_parameter("is_hide", false) set_focus() @export var size: Vector3i = Vector3i.ONE: @@ -85,6 +87,7 @@ var print_item: Callable = func() -> void: @onready var grid_block_material: Material = load("res://render/material/level_grid_block.tres") as Material +@onready var debug_material: Material = load("res://render/material/debug.tres") as Material #character var level_area_cfg: LevelAreaCfg diff --git a/script/ui/hud/player_status_item.gd b/script/ui/hud/player_status_item.gd index 0af3922..816c66f 100644 --- a/script/ui/hud/player_status_item.gd +++ b/script/ui/hud/player_status_item.gd @@ -17,10 +17,7 @@ func _process(_delta: float) -> void: return refresh_debug_info("硬直等级", str(player.get_status("break_level"))) refresh_debug_info("姿态", str(player.get_status("stance"))) - refresh_debug_info("位置", str(player.pos())) - refresh_debug_info("关卡", Global.level_mgr.get_cur_level_name()) - refresh_debug_info("关卡坐标", str(Util.get_level_grid_pos2(player.pos()))) - refresh_debug_info("关卡浮点坐标", str(Util.get_level_float_pos2(Util.get_level_grid_pos2(player.pos())))) + refresh_debug_info("位置", Global.level_mgr.get_cur_level_name() + str(Util.get_level_grid_pos2(player.pos()))) func refresh_debug_info(label_value: String, value: String) -> void: @@ -60,4 +57,4 @@ func on_mp_max_changed(value: int): func on_mp_changed(value: int): for i in range(mp_list.get_child_count()): var mp_item: MpItemSub = mp_list.get_child(i) as MpItemSub - mp_item.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 QjQ{`u07*qoM6N<$g3UwE0{{R3 literal 0 HcmV?d00001 diff --git a/tools/level_design/1.py b/tools/level_design/1.py new file mode 100644 index 0000000..22b4430 --- /dev/null +++ b/tools/level_design/1.py @@ -0,0 +1,96 @@ +import json +from igraph import Graph, plot + +with open('data.json', 'r', encoding='utf-8') as file: + data = json.load(file) + +g = Graph(directed=True) + +vertices_num = len(data) + +bbox =(2048, 2048) + +node_labels_raw = [] #原始节点名 +node_labels = [] #节点名 +node_pos = [] #节点坐标 +node_color = [] #节点颜色 +node_label_color = [] #节点字体颜色 +node_size = [] #节点大小 +node_width = [] #节点宽度 +node_height = [] #节点高度 + +edge_labels = [] +edge_label_colors = [] +edge_arrow_size = [] +edges = [] + +for node_name in data: + #区域 + node_info = data[node_name] + node_labels_raw.append(node_name) + is_battle = node_name.startswith('战斗-') + node_labels.append(node_name[3:] if is_battle else node_name) + node_pos.append(node_info['pos']) + node_color.append('red' if is_battle else 'gray') + node_label_color.append('black' if is_battle else 'black') + node_size.append(60 if is_battle else 80) + node_width.append(60 if is_battle else 80) + node_height.append(60 if is_battle else 80) + #key_get + if not 'key_get' in node_info: + continue + key_get = node_info['key_get'] + if len(key_get) == 0: + continue + vertices_num += len(key_get) + for i in range(len(key_get)): + node_labels_raw.append(key_get[i]) + node_labels.append(key_get[i]) + node_pos.append((node_info['pos'][0],node_info['pos'][1]+0.1*(i+1))) + node_color.append('white') + node_label_color.append('blue') + node_size.append(0) + node_width.append(50) + node_height.append(20) + + +for node_name in data: + node_info = data[node_name] + for path_to in node_info['path_to']: + edges.append((node_labels_raw.index(node_name), node_labels_raw.index(path_to['name']))) + key_need = '' + key_need_color = 'red' + if 'key_need' in path_to: + key_need = path_to['key_need'] + if key_need.startswith('战斗-'): + key_need = key_need[3:] + key_need_color = 'red' + elif key_need.startswith('单向门'): + key_need = '单向门' + key_need_color = "purple" + elif key_need.startswith('任务-'): + key_need = key_need[3:] + key_need_color = 'green' + else: + key_need = key_need + key_need_color = 'blue' + edge_labels.append(key_need) + edge_label_colors.append(key_need_color) + edge_arrow_size.append(1 if 'is_one_way' in path_to else 0.001) + +g.add_vertices(vertices_num) +g.add_edges(edges) +g.vs["label"] = node_labels +g.vs["size"] = node_size +g.vs["width"] = node_width +g.vs["height"] = node_height +g.vs["label_color"] = node_label_color +g.vs["color"] = node_color +g.vs["shape"] = ["rectangle"] * len(data) +g.vs["font"] = ["SimHei"] * len(data) +g.es["label"] = edge_labels +g.es["label_color"] = edge_label_colors +g.es["font"] = ["SimHei"] * len(edge_labels) +g.es["arrow_size"] = edge_arrow_size + +p = plot(g, layout=node_pos, bbox=bbox, margin=100, target="output_graph.png") \ No newline at end of file diff --git a/tools/level_design/2.py b/tools/level_design/2.py new file mode 100644 index 0000000..6735c14 --- /dev/null +++ b/tools/level_design/2.py @@ -0,0 +1,162 @@ +import json +from igraph import Graph, plot + +with open('data.json', 'r', encoding='utf-8') as file: + data_raw = json.load(file) + data = json.loads(json.dumps(data_raw)) +#数据补充 +for node_name in data_raw: + node_info_raw = data_raw[node_name] + node_info = data[node_name] + for path_to in node_info_raw['path_to']: + is_key_need = 'key_need' in path_to + key_need = path_to['key_need'] if is_key_need else '' + is_one_way_door = key_need == '单向门' + is_one_way = not is_one_way_door and 'is_one_way' in path_to + if is_one_way_door: + if not 'key_get' in node_info: + node_info['key_get'] = [] + is_key_need = True + key_need = f'单向门-{node_name}-{path_to['name']}' + node_info['key_get'].append(key_need) + node_info['path_to'] + if not is_one_way: + target_node_info = data[path_to['name']] + append_path = {'name':node_name} + if is_key_need: + append_path['key_need'] = key_need + target_node_info['path_to'].append(append_path) +#多余数据删除 +for node_name in data: + node_info = data[node_name] + for path_to in node_info['path_to']: + is_key_need = 'key_need' in path_to + key_need = path_to['key_need'] if is_key_need else '' + is_one_way_door = key_need == '单向门' + is_one_way = not is_one_way_door and 'is_one_way' in path_to + if is_one_way_door: + key_need = f'单向门-{node_name}-{path_to['name']}' + path_to['key_need'] = key_need + path_to.pop('is_one_way', None) + +#BFS +start_node_name = '破碎遗迹' +end_node_name = '战斗-魂魄妖忌' +start_node = (start_node_name,set(),set(),[start_node_name],'') #name,key_get, key_use,path,portal +stack = [start_node] +close_set = set() + +useless_node_list = [] +useless_key_list = [] + +while True: + if len(stack)==0: + break + current = stack.pop(0) + current_name = current[0] + current_key_get = current[1] + current_key_use = current[2] + current_path = current[3] + current_portal = current[4] + + if current_name == '白玉楼' and current_portal == '': + current_portal = current_name + + if current_name == end_node_name: + useless_node = [] + useless_key = [] + for node_name in data: + if not node_name in current_path: + useless_node.append(node_name) + if 'key_get' in data[node_name]: + for key_get in data[node_name]['key_get']: + if not key_get in current_key_use: + useless_key.append(key_get) + useless_node_list.append(useless_node) + useless_key_list.append(useless_key) + continue + + if 'key_get' in data[current_name]: + for key_get in data[current_name]['key_get']: + if not key_get in current_key_get: + current_key_get.add(key_get) + current_path.append(f'获取({key_get})') + + for path_to in data[current_name]['path_to']: + is_key_need = 'key_need' in path_to + if is_key_need and not path_to['key_need'] in current_key_get: + continue + next_name = path_to['name'] + current_key_list = list(current_key_get) + current_key_list.sort() + next_name_with_key = next_name + ':' + ','.join(current_key_list) + if next_name_with_key in close_set: + continue + close_set.add(next_name_with_key) + next_path = current_path.copy() + next_path.append(next_name) + next_key_use = current_key_use.copy() + if is_key_need and path_to['key_need'] in current_key_get: + next_key_use.add(path_to['key_need']) + next_node = (next_name, current_key_get.copy(), next_key_use, next_path, current_portal) + stack.insert(-1,next_node) + #传送 + if current_name == '白玉楼' and not current_portal == '': + next_name = current_portal + current_key_list = list(current_key_get) + current_key_list.sort() + next_name_with_key = next_name + ':' + ','.join(current_key_list) + if next_name_with_key in close_set: + continue + close_set.add(next_name_with_key) + next_path = current_path.copy() + next_path.append(f'传送({next_name})') + next_node = (next_name, current_key_get.copy(), current_key_use.copy(), next_path, current_portal) + stack.insert(-1,next_node) + + if not current_name == '白玉楼' and not current_portal == '': + next_name = '白玉楼' + current_key_list = list(current_key_get) + current_key_list.sort() + next_name_with_key = next_name + ':' + ','.join(current_key_list) + if next_name_with_key in close_set: + continue + close_set.add(next_name_with_key) + next_path = current_path.copy() + next_path.append(f'传送({next_name})') + next_node = (next_name, current_key_get.copy(), current_key_use.copy(), next_path, current_name) + stack.insert(-1,next_node) + +success_count = len(useless_node_list) +key_set = set() +useless_node_dict = {} +useless_key_dict = {} +for node_name in data: + useless_node_dict[node_name] = 0 + if 'key_get' in data[node_name]: + for key_get in data[node_name]['key_get']: + if not key_get in key_set: + key_set.add(key_get) + useless_key_dict[key_get] = 0 +node_max = len(data) +key_max = len(key_set) + +for useless_node in useless_node_list: + for key in useless_node: + useless_node_dict[key] += 1 + +for useless_key in useless_key_list: + for key in useless_key: + useless_key_dict[key] += 1 + +useless_node_count_sum = sum(map(lambda x: len(x), useless_node_list)) +print('success_count:', success_count) +print('useless_node_avg:', "{:.2f}%".format(useless_node_count_sum / success_count / node_max * 100)) + +for useless_node in useless_node_dict: + print("{} {:.2f}%".format(useless_node,useless_node_dict[useless_node] / success_count * 100)) + +print("-"*20) +for useless_key in useless_key_dict: + print("{} {:.2f}%".format(useless_key,useless_key_dict[useless_key] / success_count * 100)) + \ No newline at end of file diff --git a/tools/level_design/data.json b/tools/level_design/data.json new file mode 100644 index 0000000..d4e6948 --- /dev/null +++ b/tools/level_design/data.json @@ -0,0 +1,749 @@ +{ + "破碎遗迹": { + "pos": [ + 5, + 4 + ], + "path_to": [ + { + "name": "战斗-黑色剑士" + } + ] + }, + "破碎遗迹下": { + "pos": [ + 5, + 5 + ], + "path_to": [ + { + "name": "破碎遗迹", + "key_need": "单向门", + "is_one_way": true + }, + { + "name": "冥界洞穴右" + }, + { + "name": "深暗遗迹上", + "key_need": "振翅" + } + ] + }, + "战斗-黑色剑士": { + "pos": [ + 5, + 3.5 + ], + "path_to": [ + { + "name": "白玉楼左" + } + ] + }, + "白玉楼": { + "pos": [ + 6, + 3 + ], + "key_get": [ + "下砸" + ], + "path_to": [ + { + "name": "峡谷上层", + "key_need": "单向门", + "is_one_way": true + } + ] + }, + "白玉楼左": { + "pos": [ + 5, + 3 + ], + "path_to": [ + { + "name": "冥界森林", + "key_need": "下砸" + }, + { + "name": "冥界森林上", + "key_need": "大冲" + }, + { + "name": "白玉楼" + } + ] + }, + "幽冥结界": { + "pos": [ + 6, + 2 + ], + "path_to": [ + { + "name": "白玉楼" + } + ] + }, + "峡谷上层": { + "pos": [ + 7, + 3 + ], + "path_to": [ + { + "name": "彼岸" + }, + { + "name": "峡谷中层", + "key_need": "缓落", + "is_one_way": true + } + ] + }, + "峡谷中层": { + "pos": [ + 7, + 4 + ], + "path_to": [ + { + "name": "地狱上层" + }, + { + "name": "峡谷下层", + "key_need": "缓落", + "is_one_way": true + } + ] + }, + "峡谷下层": { + "pos": [ + 7, + 5 + ], + "path_to": [ + { + "name": "战斗-火焰猫燐" + } + ] + }, + "战斗-火焰猫燐": { + "pos": [ + 7.5, + 5 + ], + "key_get": [ + "火焰" + ], + "path_to": [ + { + "name": "地狱深道" + } + ] + }, + "冥界森林": { + "pos": [ + 4, + 3 + ], + "path_to": [ + { + "name": "冥界洞穴左" + }, + { + "name": "冥界森林上", + "key_need": "火焰" + } + ] + }, + "冥界森林上": { + "pos": [ + 4, + 2 + ], + "path_to": [ + { + "name": "战斗-琪露诺" + } + ] + }, + "战斗-琪露诺": { + "pos": [ + 4, + 1.5 + ], + "key_get": [ + "冰冻" + ], + "path_to": [] + }, + "冥界洞穴左": { + "pos": [ + 4, + 5 + ], + "path_to": [ + { + "name": "堕落神殿", + "key_need": "缓落" + }, + { + "name": "破碎遗迹下" + } + ] + }, + "冥界洞穴右": { + "pos": [ + 6, + 4 + ], + "path_to": [ + { + "name": "峡谷中层" + }, + { + "name": "白玉楼", + "key_need": "单向门", + "is_one_way": true + } + ] + }, + "深暗遗迹上": { + "pos": [ + 6, + 5 + ], + "path_to": [ + { + "name": "冥界洞穴右" + }, + { + "name": "峡谷下层" + }, + { + "name": "战斗-村纱水蜜" + } + ] + }, + "战斗-村纱水蜜": { + "pos": [ + 6, + 5.5 + ], + "path_to": [ + { + "name": "深暗遗迹下" + } + ] + }, + "深暗遗迹下": { + "pos": [ + 6, + 7 + ], + "path_to": [ + { + "name": "堕落神殿" + }, + { + "name": "静寂神殿", + "key_need": "夜视" + } + ] + }, + "堕落神殿": { + "pos": [ + 4, + 7 + ], + "path_to": [ + { + "name": "堕落神殿下", + "key_need": "激光" + } + ] + }, + "堕落神殿下": { + "pos": [ + 4, + 8 + ], + "path_to": [ + { + "name": "战斗-摩多罗", + "key_need": "冰冻" + } + ] + }, + "战斗-摩多罗": { + "pos": [ + 4, + 8.5 + ], + "key_get": [ + "祝福" + ], + "path_to": [] + }, + "静寂神殿": { + "pos": [ + 7, + 7 + ], + "path_to": [ + { + "name": "静寂神殿下", + "key_need": "缓落", + "is_one_way": true + } + ] + }, + "静寂神殿下": { + "pos": [ + 7, + 8 + ], + "path_to": [ + { + "name": "战斗-饕餮尤魔", + "key_need": "大冲" + }, + { + "name": "堕落神殿下", + "key_need": "单向门", + "is_one_way": true + } + ] + }, + "战斗-饕餮尤魔": { + "pos": [ + 9.5, + 8 + ], + "path_to": [ + { + "name": "血池地狱" + } + ] + }, + "彼岸": { + "pos": [ + 8, + 3 + ], + "path_to": [ + { + "name": "山脚", + "key_need": "大冲" + }, + { + "name": "战斗-小鸡" + } + ] + }, + "战斗-小鸡": { + "pos": [ + 8, + 3.5 + ], + "key_get": [ + "振翅" + ], + "path_to": [ + { + "name": "地狱上层" + } + ] + }, + "山脚": { + "pos": [ + 12, + 3 + ], + "path_to": [ + { + "name": "战斗-文文" + }, + { + "name": "间歇泉" + } + ] + }, + "战斗-文文": { + "pos": [ + 12, + 2.5 + ], + "path_to": [ + { + "name": "山顶" + } + ] + }, + "间歇泉": { + "pos": [ + 13, + 3 + ], + "path_to": [ + { + "name": "电梯上层", + "key_need": "缓落", + "is_one_way": true + } + ] + }, + "山顶": { + "pos": [ + 12, + 2 + ], + "path_to": [ + { + "name": "神社", + "key_need": "大冲" + }, + { + "name": "幽冥结界", + "key_need": "单向门", + "is_one_way": true + }, + { + "name": "战斗-早苗" + } + ] + }, + "战斗-早苗": { + "pos": [ + 12, + 1.5 + ], + "key_get": [ + "大冲" + ], + "path_to": [] + }, + "神社": { + "pos": [ + 13, + 2 + ], + "key_get": [ + "缓落" + ], + "path_to": [ + { + "name": "间歇泉", + "key_need": "缓落", + "is_one_way": true + }, + { + "name": "战斗-青蛙", + "key_need": "激光" + } + ] + }, + "战斗-青蛙": { + "pos": [ + 13, + 1.5 + ], + "key_get": [ + "祝福" + ], + "path_to": [] + }, + "幻想风穴": { + "pos": [ + 12, + 4 + ], + "path_to": [ + { + "name": "地狱深道", + "key_need": "夜视" + }, + { + "name": "矿坑上层", + "key_need": "缓落", + "is_one_way": true + }, + { + "name": "战斗-土蜘蛛" + } + ] + }, + "战斗-土蜘蛛": { + "pos": [ + 12, + 3.5 + ], + "key_get": [ + "夜视" + ], + "path_to": [ + { + "name": "山脚" + } + ] + }, + "矿坑上层": { + "pos": [ + 12, + 5 + ], + "path_to": [ + { + "name": "矿坑下层", + "key_need": "缓落", + "is_one_way": true + } + ] + }, + "矿坑下层": { + "pos": [ + 12, + 7 + ], + "path_to": [ + { + "name": "旧都下城", + "key_need": "激光" + } + ] + }, + "电梯上层": { + "pos": [ + 13, + 4 + ], + "path_to": [ + { + "name": "电梯中层" + }, + { + "name": "幻想风穴", + "key_need": "单向门", + "is_one_way": true + } + ] + }, + "电梯中层": { + "pos": [ + 13, + 5 + ], + "path_to": [ + { + "name": "电梯下层", + "key_need": "通行证" + }, + { + "name": "矿坑上层" + } + ] + }, + "电梯下层": { + "pos": [ + 13, + 7 + ], + "path_to": [ + { + "name": "反应炉" + }, + { + "name": "矿坑下层", + "key_need": "单向门", + "is_one_way": true + } + ] + }, + "反应炉": { + "pos": [ + 13, + 8 + ], + "path_to": [ + { + "name": "血池地狱", + "key_need": "单向门", + "is_one_way": true + }, + { + "name": "战斗-空" + } + ] + }, + "战斗-空": { + "pos": [ + 13, + 8.5 + ], + "key_get": [ + "激光" + ], + "path_to": [] + }, + "地狱上层": { + "pos": [ + 8, + 4 + ], + "path_to": [ + { + "name": "地狱下层" + }, + { + "name": "幻想风穴", + "key_need": "振翅" + } + ] + }, + "地狱下层": { + "pos": [ + 8, + 5 + ], + "path_to": [] + }, + "地狱深道": { + "pos": [ + 9, + 5 + ], + "key_get": [ + "通行证" + ], + "path_to": [ + { + "name": "旧都入口", + "key_need": "冰冻" + }, + { + "name": "矿坑上层", + "key_need": "夜视" + } + ] + }, + "旧都入口": { + "pos": [ + 9, + 6 + ], + "path_to": [ + { + "name": "旧都" + } + ] + }, + "旧都": { + "pos": [ + 10, + 6 + ], + "path_to": [ + { + "name": "地灵殿", + "key_need": "锁链" + }, + { + "name": "旧都下城" + }, + { + "name": "战斗-萃香" + } + ] + }, + "战斗-萃香": { + "pos": [ + 10, + 5.5 + ], + "key_get": [ + "锁链" + ], + "path_to": [] + }, + "地灵殿": { + "pos": [ + 11, + 6 + ], + "path_to": [ + { + "name": "战斗-古明地恋" + } + ] + }, + "战斗-古明地恋": { + "pos": [ + 11.5, + 6 + ], + "key_get": [ + "无意识" + ], + "path_to": [] + }, + "旧都下城": { + "pos": [ + 10, + 7 + ], + "path_to": [ + { + "name": "战斗-勇仪" + }, + { + "name": "血池地狱", + "key_need": "无意识" + } + ] + }, + "战斗-勇仪": { + "pos": [ + 9.5, + 7 + ], + "path_to": [ + { + "name": "静寂神殿", + "key_need": "冰冻" + } + ] + }, + "血池地狱": { + "pos": [ + 10, + 8 + ], + "path_to": [ + { + "name": "要石" + } + ] + }, + "要石": { + "pos": [ + 10, + 9 + ], + "path_to": [ + { + "name": "战斗-魂魄妖忌", + "key_need": "祝福" + } + ] + }, + "战斗-魂魄妖忌": { + "pos": [ + 10, + 9.5 + ], + "path_to": [] + } +} \ No newline at end of file diff --git a/tools/level_design/level_design.png b/tools/level_design/level_design.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca97903b34023ee3f88bf3d7c8c985bd46a11e9 GIT binary patch literal 3600 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

F9~yaZ-XNZc4-$KF zUcW_j-6TP@r}9V7<=OH?hH9b8^G4L9XpOeFuaJoWBl}uHmAsTKM5w2D0KF5^oDYbJ zn%MGZJgCWEmz71I^|8F3_FBT9k$l9+${TmVgdov8S%;Z$jB>c#Fu?FXhU}FFfwOMLXbOtVMpoIQ7WDV^8EJb zux8EGg^Ah3uw5NUMYX5FDy=rfe(zN68pI0mygHoIm|h&NUdc5{LcD=o?sWh<;v?_V zXhTnUaU7(Xd-}ah3&XC}VUB67*zH+Y19q*IrW*x*jtmnbHt@0KF-S+4Q7}AP@|u^Q z4+yz>qKaXGHFlr}x$g|$SZu~qI?RDtus~4Bb&oP&4!u@5BU_4YX6j6y^gE7XYvaT#bDztc1!163nkO+)6G*vsf$=;%`#~|X zd;O>REMSGJ4n%LeIIV9r_st*mKS2L@4cf3h)FY=qL>tM=7Z?N(esl-}#$yjYUp`=X z3I7uGUv!BviqPq$|DX*-fH<*kzyaEzOlY8oHq-*F+?(&#Ay9C72e6CS_&N%{mWuxY zy2o`fobf*N|C`}V=W1NQK4*7drb5EmJ;bM5dk z87YtwqD1J?ni$j0J3jyj&%1c|O*ajVI)+gM{Iavzz95E>i{=(Lw#Z2L| z>wiyp@FUB+@wM75rO9qr?e|f0+nE|sUGL(Q+H7Qp%$~IyfUV(P_wGB6hMQCpz%Sz!7>97W3E6QBrpmQ%?2#`Ak z^!Fkb;zB0CsBs%GWnh`3IxuYB;QD79oQ1xB_CIMp{$Kw}0Mps{@l&{bA?}{Z(h`D= zSf0>HOHD5A`5$AShVZjM`eKKBilHy;K&J;n)LB@b34tnmpa6BgtT`m1ek!Bxp-NT6TG)`z#)tVPvE5 z$RJfa-m!ENF&@$8xk$2IJV?mcwbP_XGyScOH;%{-%J!-a_#L3_L#?lPzRt5(el%Wr zb^3rYw1Jw7{hcYNo}b?*|4zpm78`fBegG%s~8_y@^?BK{;5a>@_;}6iL%Fn zD~{{j!Cz;E(it#rut>^#5-Mx0JVdrLE+5o#A1zm|xN1{ZV0v%wL^#r3Roh!W5LL#~ z7_>Nt8lyhRXnE2$cPbzH>Efy!D{$F-=XIi033Vw~g}5{BK^0YgrK#6;gtOd-IHI+i8V6#!OOVcBuUOCp_iiXY8*9idLry<@udG z29j52OsroS**5+0wMOa7P7(HmnYkzW9WMQPI2{i-a=%BYfZ}pOR3b5c2P@Jb2h4j104 z48{dMxSQW*wB?_xZh$Uh_bl*owW8}ty($zgYx5K_`XJ06pVys-_swWDdB-Q!bhZUYMW96MQ6{7GG(e^ZSj|o~5JlrPASYY`k zPd>d}>nT