From 3a2d594626613099e80bf3609c424e3905dbfe83 Mon Sep 17 00:00:00 2001 From: Orkuncakilkaya Date: Tue, 29 Sep 2026 12:16:11 +0300 Subject: [PATCH] render3d/wind: trees bend a few per cent, branches move as one piece, the flutter is slower across a crown The user's play found the aspens' branches swinging like rope. Three terms: - the whole-tree bend reached 22% of the tree's height at a gust's top (three metres on a 14 m aspen); 4.5% now, and the side-to-side part at a quarter of that and slower; - a branch term: nothing within 0.35 m of the trunk, growing with the distance out, phased by the direction the branch leaves the trunk (constant along a branch, so it moves as one piece and its neighbours are out of step); - the aspen's leaf flutter took its phase from each vertex at eleven radians a metre, which bent every twig along its length; about three now, and half the amplitude. Measured on the lab's `aspen` view (10-frame bursts, crowns only, same binary with the old and new SPIR-V): pixels moving more than 8 over ten frames 16.8% -> 9.7%, frame to frame 4.4% -> 2.1%. SPIR-V rebuilt with `ludic-dev shaders` (vertex stages only; the manifest is unchanged). Co-Authored-By: Claude Opus 5.5 --- packages/ludic.render3d/shaders/model.vert | 28 ++++++++++++++---- .../shaders/spv/1ce5c5d1.vert.spv | Bin 16312 -> 18188 bytes .../shaders/spv/266d2401.vert.spv | Bin 16864 -> 18740 bytes .../shaders/spv/3b183d8f.vert.spv | Bin 16312 -> 18188 bytes .../shaders/spv/4dda406a.vert.spv | Bin 16312 -> 18188 bytes .../shaders/spv/512004a1.vert.spv | Bin 16256 -> 18132 bytes .../shaders/spv/5e70d731.vert.spv | Bin 16864 -> 18740 bytes .../shaders/spv/79b77ed9.vert.spv | Bin 16600 -> 18476 bytes .../shaders/spv/b4587cd4.vert.spv | Bin 16656 -> 18532 bytes .../shaders/spv/b603a056.vert.spv | Bin 16864 -> 18740 bytes .../shaders/spv/b964507f.vert.spv | Bin 16256 -> 18132 bytes .../shaders/spv/b9fc2041.vert.spv | Bin 16312 -> 18188 bytes .../shaders/spv/bfa15301.vert.spv | Bin 16312 -> 18188 bytes .../shaders/spv/f4a2b586.vert.spv | Bin 17328 -> 19188 bytes 14 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/ludic.render3d/shaders/model.vert b/packages/ludic.render3d/shaders/model.vert index c3149d97..03250e67 100644 --- a/packages/ludic.render3d/shaders/model.vert +++ b/packages/ludic.render3d/shaders/model.vert @@ -96,14 +96,30 @@ void main() { // height whatever the tree is, and the base does not move at all. float th = max(u_model_h * i_pos.w, 0.001); float hn = (u_model_h > 2.0) ? clamp(hgt / th, 0.0, 1.0) : min(hgt, 1.0); - float reach = (u_model_h > 2.0) ? th * 0.22 : 0.35; + // A tree bends a few per cent of its height at the top in a gust, not a fifth of it: at 0.22 a 14 m + // aspen's crown swung three metres and the bole read as rope. The side-to-side part is slower too. + float reach = (u_model_h > 2.0) ? th * 0.045 : 0.35; p.x += sway * hn * hn * reach; - p.z += sway * hn * hn * reach * 0.43 * cos(ph * 0.7); + p.z += sway * hn * hn * reach * 0.25 * cos(ph * 0.37); + if (u_model_h > 2.0) { + // Each branch moves as one piece: nothing at the trunk, more the further out along it, and + // phased by which way it points out of the trunk - the same all along a branch, where a phase + // from the vertex's own place wiggled it like a rope - so neighbouring branches are out of step. + float br = length(a_pos.xz) * i_pos.w; + float bout = smoothstep(0.35, 2.5, br); + float bph = u_time * 1.9 + atan(a_pos.z, a_pos.x + 1e-4) * 2.0 + i_rot.z * 6.2831; + float bamp = (0.25 + windGust(i_pos.xz, u_time)) * u_wind * i_rot.w * bout * br * 0.035; + p.y += sin(bph) * bamp; + p.x += cos(bph * 0.8) * bamp * 0.5; + p.z += sin(bph * 0.7 + 1.3) * bamp * 0.5; + } if (u_flutter > 0.0) { // per-leaf, not per-tree: the phase comes from the vertex's own place on the card, so // neighbouring leaves are never in step - a crown that trembles as one block reads as // the whole tree shivering. - float qp = u_time * 8.5 + a_pos.x * 11.3 + a_pos.z * 9.7 + a_pos.y * 4.1 + i_rot.z * 6.2831; + // a slow change across the model: a leaf card's corners move together and so do a few + // centimetres of twig, where eleven radians a metre bent every branch along its length + float qp = u_time * 8.5 + a_pos.x * 3.1 + a_pos.z * 2.7 + a_pos.y * 1.9 + i_rot.z * 6.2831; float q = sin(qp) * 0.65 + sin(qp * 1.73 + 1.1) * 0.35; // ...and only out on the CROWN. The mask was height alone, so on an aspen every vertex // of a ten metre bole above 1.2 m trembled along with the leaves and the TRUNK moved @@ -113,9 +129,9 @@ void main() { float rmask = 1.0; if (u_model_h > 2.0) rmask = smoothstep(0.22, 0.75, length(a_pos.xz) / max(u_model_h * 0.22, 0.05)); float amp = u_flutter * (0.40 + 0.60 * windGust(i_pos.xz, u_time)) * smoothstep(0.0, 1.2, hgt) * rmask; - p.x += q * amp * 0.10; - p.y += q * amp * 0.05; - p.z += cos(qp * 0.9) * amp * 0.10; + p.x += q * amp * 0.05; + p.y += q * amp * 0.025; + p.z += cos(qp * 0.9) * amp * 0.05; v_quake = q * amp; } #endif diff --git a/packages/ludic.render3d/shaders/spv/1ce5c5d1.vert.spv b/packages/ludic.render3d/shaders/spv/1ce5c5d1.vert.spv index e94e449447db6289195ee70feb2d5fee7788004e..ac0db988206fb51668dbccf5a89d620408ed9d6b 100644 GIT binary patch literal 18188 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 diff --git a/packages/ludic.render3d/shaders/spv/266d2401.vert.spv b/packages/ludic.render3d/shaders/spv/266d2401.vert.spv index ba23f6d59c4facdc74c4a7186171dc660f03716c..d38fb858d2aa03b764b5033966d0d8b3cd33679f 100644 GIT binary patch literal 18740 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 delta 6108 zcmZ9Q3z$|_6^76J0|Uq7P7a+B&3Z;;d4VT!&qcbz?VTJFuPDZtO8^U+IqSbNi%^S0%}% ztx3{1sZRbWPQ-nZm%wdn>)S8Rcy%(6F7<0$Gv5$!Ykgb&+C27%L%73t)-|thX({Jj z0B>k0<0as>#+GcnrKKcI+SpPQVPC38@s?UTncdb(Xmn{2AyQcIjl~UJtbe1Pc7Lm&( z83*r=1s@OglDiznd&yl6Ik!0DE{B{Zr>H& zqGd5%y#s2`js-H(RMA_k)(5jZm&W00a_(~IpPX}+VfJCq^hs}9R6qN8;*GnXxg41E zWQ9KfpE`Bw9Q|y9jMK$hUz3a`qRWp0HZ1@GRzy~4-AAKbflRwO(L-qh4I=X44lNiOfP3lshe;K!}l zQkmfD(gG76J^KXaKbj8B1oYBjb>7<1nXiX)JYSVhC=3Ukt&=(AO71kuNE5;+H495e^Dic?kEV5D6U67ekTz zA_#5)dpIg4?iiRp%-~I!$3U$1BVhHrS+N^vAH~#q>GvE9vk&a`qBj@(7^e0-`$jyE ze$BMMz|6fGi`-A-dVV+3p#GD|2yWc^s_`QhW{5>Z4eW2D*M6wC4(`2QPwkH zeWw;m|2N#e5%Vk#@wJ+eUFq6+<9?s;|V7H%%^u;P22|h3PZ_HO>7}`8E zeGxYtZ1MVH6C4d*N%7fg&7{L?5a8Kz_0swoVNfI)0XC6wkz^$JrLMu#htIZb&*)JF z?`W`_Gor`9jfsq7!N!c?-8FsK0GG#;bVAo1(`wUWa7@5rUdMvf#$ypV5j>UwJk~5g zZd?rbT5z#|N$_F;$H9$JkD?}n(bH^u#X!d+I#BVLIsr{R3Va<{%>>bJ3OM>%pxn49 z@I-L&yf_)Ic2emg?@ambpMt>H$q>wd=sXo%oXx3lW7T6euLrA-!=k8ZU0bKurqfZT zVNw2RU^RP0?mW!dxAOdM4N>xcJGl2u(ef z@GP+X)I(bgRzH)GmvNgs4bO)6!u8oY;RRrI7mS!Rc_YLX&4uJmaDz5crb*rmHb&h9 zOK8<1ei>LTj+}GAYMPf#?3;5Tq|8oS65OKBBjSFHf6#X0_Vu*r_c^!3uZ zQS9rc(H}du4($3AKXl#!SC5$bEQTYu_%y#0QAf^y#3~)w%hpNXNzZiU6KA=0K1#V0XxEAbB&@flc zxOM0>$rQ{S_A@pc97lRd9^l{xJGcX>`&x{r$To_(6g-v~c@O>C;O?2F`JnA^HO&iG zwk2Z~I?&BQT$&Bo3Q_dl_?UKreKoG9jU~PetR6?eIn-kU?+4p&6KzajGgv+L z)(61d-hUm-@?;+b>(G2u9N=oOgXoL64}qPz=CT_1VKig)c^j{wRg1zu0#?&^Ev-C_ zkBg5&{6M>gR;RP`qvK;>eOoYR=c{=u*!y36a<-wVTa5j>!1h&-ejf*WtLFrb;NuTO??}A?DHkC{nTR$Uk0-tX>txh zF4|WR6um;bE!W6V(Y~5%hA!jY_t4%BvA^;9JsY=@SKl3Q3oyo_@1)&@?Zi5g6U#GK zFwj-lO&f>no*diJhx4xNz40~FyRdj1zYbQ5H}c(JFCRyJ-@w#-9L2E)-vo~*YrM+7 z1y|F&Y~oe+ZHUV-->)D8qojMYlD>m-FBT8jcfo4KUk~@eP2np^fAQDD_uvj;OuTiz z4>sOk5BGqZXpM7`Tp0cCUZz(5_23-izf*nyE-&%H-xl|y>x*aXhhQ}y=6FB;2(CU8 tEsA*nZZW=ln4nH2y4 diff --git a/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv b/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv index e94e449447db6289195ee70feb2d5fee7788004e..ac0db988206fb51668dbccf5a89d620408ed9d6b 100644 GIT binary patch literal 18188 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 diff --git a/packages/ludic.render3d/shaders/spv/4dda406a.vert.spv b/packages/ludic.render3d/shaders/spv/4dda406a.vert.spv index e94e449447db6289195ee70feb2d5fee7788004e..ac0db988206fb51668dbccf5a89d620408ed9d6b 100644 GIT binary patch literal 18188 zcmZ9T34rEv9mZcfdtq6}9`43kS~^f_<%~8olj;xd< zRB}WVi6oI#BqT?(Q6x!jLVZ5}`9H6}_ieuYp6B@|W%&Te01|w><E=dP5ck3wv?P*<{|zkREn+PB=veut5_BJGJM58_ea-a;Q)8$)Z(Aq!ehN)Bm7rg^JW@>Z?q z4Xv#Po;SO-r;XOJtWMk0+tJ=$@R7B3XlJ)|%$nVM$egaO-r19Sw%T$h$5i;6YHQK< zww+jvZEbMheCrIatq1Pxo7pj=Wmad43pZ(S%+2UCG5gwxwsl5#S5MENZxi^e(swXz zZ+F|A>78vwY>PhDgQnoe(#~t`ZkrrIKK z2WHF}vGdY)tce+N}uPgwPjvc>Uj1#>b$A8G28=cAD+q9mbu+o zAJ6CfN}tETXV2;_`j`%$H`~0CwV7acY|pm#*1pc(L+5t1cXiL%y|Zh^@ilgJSmCFO zT3^fjj+U*EZFmvq8SiW9^zgLIXA;Th5^clP!6wsnKupLQo+;Gwlsz&%`l;iti?XSBb8FKXbYe~35L&Vlz9 z`_fdq2t1q3b#Jc*cel09aBPm@QTTKQr0*$lS6_LZG}V^L*<5|Eid*M+oC^LLygI%& zKg64Ao3nu@5N#iOiOal$z}<6NdpHt>Z#vwv_R$8e)|}nIy+_V(ncdgfIheZyK7+$= zAD4r>+d2z;rMR5a&EUa|!MJ(!a z^VH0nf+f%8s^-ZX^VH1i$1*PGr*>yWb53e^S2Sy@-CNPTXQ?f%X!fc0U_~2QYJaL| z-lvQksA%4!)Sj(q-k;Q-$J__+P3wdGgijcx1@~HXUmUM~uOH*B6JCw?+A-dbey^SC zK6~xRX$rsZKUMCvBX27FO~tiftm~WW#lHQxSJ750_+X6tX^d_1tf6MzXks<@$FX`{ z*th#2_gzf?$4c(?Am0RAof%kjeJWZ_8ScKRX>#{0G3zrw_se+W z^sSF~bc3d@t;zq7D}Bzh`Uzi~@r=h|oc*m)2C3QKnzZ((Zl9YFBcFi1G3n^t!Z&~) zy?DrOo08*rCzdhliJ3GQb4Ow}hO1dCF`I!;8FTF};akAl+c%mLzV#rl_q#3ph#hX) zIsP5sOD;aL?%%oKkJtHB_ybFq?wa^L;43_~LA}4d3;(Ek{ItRN+Y|rEf?rej9|~V` z@tSph1bp)3)$8Lu3SO)A*Zu9VB^O`3>sZ#&_pfHmy|BK#c;M1{Hhg%fc{bAjX<$C} zdgm4N&U$|r7QDaCFD>|#DfZ{Rpt<0K_2iE?@F(Gp$NmRs-D}T&`dz z-+txZW3$ih`7C(WVRq@WPWE9g+N9CTKr-P&chd;4yl1Fr|4r8$4@_jPdgv0nd%!TkDq+yUqQv+JguGOv?6 z;mgQVw{@Pb!vk>7V)&zQ@8_P!$H4r2$o~X_&k)D82CdI@KUufu;EV5ieP{Fk1$NB# zZ@k=Ryjr-=_;9Z?pYd|@Uj-u-{Tna$nXe{yU3}&nzYhFuuxsPJYCVw8_W`h)KFzxS zr8P&tb>zO|s%0JCgWHes?}Pa%u4nlQ1R6VlWgI^L)%1@AnCtrLm-{}T7Vi6id|RH2 z*7ln7gIs$H#doG1Q1z{Z=)1*KX5ySzhC5!L3EqcxAo%E;PHsEF~^|k}6 z`971F?ZMSPcZ93?j*~w9{h7J?vd_DK)qVHLICceR9QxDmZeZW3^e2A`*m3L2Sat`y zZpqsdthNW1n7zQ&@$Lgx+Z)Sx_XV4)FJs#eoU!RoANzx+V)`?-Pk^Uj`rJ#;idx3- zDX`ioPNM670A_9XWE$rCn=$WmCiPX%@))?E(OAy1|8~q-UbTY#w?y>S!JhH4v^moU zgGW@jzjqAx8acMYy(XrYJo7jNZXa2rPlK~Y`m#ocf%W+wn%u*|<|gJyu-Xw=*6}l7 zb>C0Z$I;;Qp+EVb1?zJ!l79@?zV*2e&R5MbIL}thwbOTO$uqtgaMx0w^Oo;WUN1Aj zUMt69`iyby)RW%^w!e&T7FewvOU!Jrd5P%&tGWM~!*O79^(F6ku=|<3PO#UTdd~11 zu*UJu@dY@cstAsDYo+ zz%OXvS2ghK8u%>@{I&*uM+3jVG}a~)2`T&M6;z{a=-`cK7-Q9rQMJ_kOnH22TA&tt~wvme)0Ep-=y)x0i@{{rT9 zu>z*goPJvMtXzIqM*12Ho=}Yd{!RM8BR=L*a!;RJF8h9qv z(*H%^e(anw{u^L5>m=r4a6gv5mw=5^Pv4h-FDxx<_f5FE@u~GKa6gv*z71Bp6iduy z;C?LqeFtpZWmsY^2lr!%`7YQvb?+~pn=3HKpfBV69=LIhu0%6dpKIiGs+PX42KQI^ z_e-9>e*iZ|Jvl#Yh`9!CoO;IcBXHwbu0=CepJTa-RxNd}2fK%{!Bo2DXo^|E*wS)Xl$zRxR;A2U|1z zcCh^?{}*6m)Xl$*RxR;&g1x4*7QX~HuEkwwcVhaI_bagD48I%f*mBMM8f=Vu#&QqX zTKdx8Z@{^?CGK7{WA&x}ec%(Y)c-BmICbZB2d!G-mx8PFdH|kzrJvuS8K*CKzX!X1 z;SYjcv-JBA*ckQH`2*Nm`ZBMF!Hx6!Bbu@LQvVTfbzYCcjZ=4C_tUBwKc4n6Y%Odm z*XQ!If5x2qe-6PyGn4`~lj(V)mzR2(}D6h<@$k z8BD*Q^z$s(Gf*AN-{9(A=jQz#Ggm!xdJbHj)AMlWU9IyExO)0}0o*vJf1;^pPA`JZ zQ_r0K1-3tZjdOYlO~0S?^KY>GUmeTKaP`dTKVWm!7nbvU1?*h)rPixp*QdGvgcX>RF#Rz}5A66YkurV|oj&p1$4&yN1=i-hr!Uef|qJPd)4NF4+F`HLlNlX!`x6 zpZCFyd;UK(^~}ka2y@jlr{&P9a~c9~-18bzXMS9Kh?mOHE_QRka*|gcLBnk zkKYBTa=!~u<$fQa%Kc72mHVB5aO?ZMfN<;ky?}7{XGsJ1y8!VU@Am=1jla2p`<;OJ z?a%K8RJq>+kb6e``^I?8zj;*eCu@|t&mhl}Jn?IRjjx{Rwc+Z4Q%e>+i2{FY$j9j|M@71;i(Yc(0Jp6hvQuzBjKvklmBq|SC=>r{Uyx;)T8tF3S2$onF=;f zJ#}{nSJ!6`xOJ-Y+7qsxI(vc5Q_sBi23ud>ft&*OeILyEIv4%fd-e3cFSy$OesIq~ zbsqb})zkkcz~-r^&NOg!e?AGfPIVrif~%*_0bujgGmito*4LM{JqT>A>i!%IS5NnJq!)cFk9JoU`$Xt4G5Wq&>^ z#+-}(Tz~2rcMI6_P@Vg+aP?8#g}mNd!Tc0|N7uIuY^`I!`m8mZwgYR&W?`A%aiyNI z9}idCnHuJe19xI$vFcvVDfQ%a!PVwsne#lb_4K9I3E+uX^?Y^1)l;h%tk#32Rv*}U z`ci8?*jm+bEr6@1)=6Ns6S34f8Eid$uG4f{HP>W-d4CRU-2+%(@AIDrt7(3?{TF$s z!Sy*F*LNY-xV~Q~b^GZD%d_@h1lza1MYM9U&-YWY9m?Ndp8+02pY~@BV~t6_XMyea zOf0p(1Xj;Fd>L#V^{n4l!0zjYSn|#Wt0(WPU~|HBM7`(BKt#<^hi^m88A z^{n>ub+~%^IUj7Edd~HQV19~ot^WedF`PrIFJt%yxN!^@qp9D@-dsZaO-yYG_9ivH zP3z|!_FUh$uq!a%1;v@mW#D5f{5xR#_usQ#dzXWaQP1BSz6<83_#1@&W#FSQ$9^eX z|J(HA80^n})8F^N_Lnud63kEWw=I3uI{K=0td}}hf$hsaFQS!ay}l1_T(2LXsb{@@ z2v*B_T?_W(dg=QS_G8TPi_`CQVAm)6dIMPPdd#t0L#yVvt!ch>;`7{Bea58rjbQVQ zy_!}Y-%Vi8X82FQ&O76{8ElMtVr~IfV}1%ZPCYR{1KU^X+zK{M-SzaH<~DFMR=ubF z9In2wJSVq<)yz-cFTlxjPIBYY_Z{HsobH5I$NNjTG3v>=t0CrBaO2byb2qp;r(eU3 zQ_nnq16IEWOWwWU=~!ZZ3s$=i%ioXg2lG?>tyh0ymx8USKl6V8+>C9DrH|i%)w6ED z2dkN%ya&O_bKT^|>7Pye5Y~9U|4`~V-w(spa=sq{`|*71`y;02`4l_8^=Kc%CSZ9s z{HfH`{rGIiT0D-XygO!`;~Pi&XKW(2A(nYRQR-Q*C*kI+JI6<9)e`>~uv+dp17LoN zzj2-lcp5Xt+^1;uXMO$(c70}HsrL+6J^lX;toAIHasM4W0juuUb8z*!Aw)UA=_V7Khdgl5**j#n<#?k%{bB(HJ&k3j}Z#lTR>Zv^h z>^VwI6WloU#0&*LT8SA3H%>iyBf#o@r^_{Xm3Xz(7zuX$a}6yIhZgIiFL5h?%}w1E z;l`>vSMSTCz|F)|-Vdm)5y)3#={*`^}1REO+9m26Rc)_^40<;&$-Br%XroXSLd=W zT+Q#)rS3<->VB^-^J@k>KhLZF)LS21o!$n4&dTQ+iR@)Ivt)0Qv)0bMifUQ-%es)DuPp#d+YR?jvT2tWG)0bLP!QOYO zk~V=l=S;L$&PP-e9$y%YDFfQ=ChEsl6{)-`4n&yC2-##C!s* zwm+7+d=jia4ND)N0;doC$v*(B&*yLQ4}{ydKF7Zot(w^1bNW8-8hJJkhI@V%V;SQi zXzDqep9ZV>Ec9$12KM9G)ORSR=Ghcm$M=>a!R}?AVMoE$G(R?(-)A6%)^^8?%lM84 zH;(VKXzE#mW58;MV|li>fUP$P)87Nhzn_kU+n+IcmuUqXza?g!BQWE#X8OIpGf&%$ zaR#{Y`kslV?ph2`vmHE<4zd=r%qb0bu@?5#hNdsIJB%T37MA@v4o%(o*|hRJ&yNRt zf3%LitWhWUP;~tZ%WHWKcq*E{#LWdec75q@9{3pg&sv=ThZbwKjJ6AIOlow4tz%qj z^ng8kiRlF!r|vwa)2b!D5A3-OpAR-B`3u0ts7E^ytnOaBem;*+f;Ypf_qmhN)Uyt! zfYr=T-l^c^IX<~@8P93p>i9kfua58YaAVXnzJ*}*ek}cb0c=0j``scm^^EU}U^VlT zcRDzEj!$k}#&-sIb1Z$I1y(x~%Qg2UFkKh#3;L7$WpH&aUx6E|o_c44)vIg$Rk&lS z-fz!AQ_ox$gVoH>T)qZQo^z2Km+_nnuCDcY@ap)!4mU>K{B;?Fn%C=QwBDC&^_@>! zz5iVRZ@j-;h^C(V-$h`x-2W~H`|6|F`=bAQU}MzH zznoSr@mGP>av!@Itfu*~$@%&|gp#%0G2^l>KL9tb%Ma1ivo6a?!)Jm18?ZbJZUj3{W1R1mv}!qfH-Xi1@B0bZTAN_{meJ<-W1cPj z&cS=nEnwHGdhhuuTs<*AD`TqH|E*~1nbU1xwd%X;&*9dtUTe3*)pH(x0k%K$^(`#- z_?KXPcVh09`+gVLdF_SicP(zFRnOl43cN8v;djH0Nq@fvuTwGC%-Z*$S$lKL8s-_B zzJF8t?b}%UwjXt`;app`>H9u#b2*j)@_q~Vyc|&Wc|TlD^JD+Qtie)rdui3& z7q8vlfjy%S(B>@s9;}}G!h>Kn_r>?3KY;ysU(ojursjP?Y@Gr8e*_PXb?|rnkHFP5 zKQ@lzF~FZN$MGnw`TlL-@lwzC)&2~(hI+>TB-p$sXfyt&!0I_yPlLUuspoI2e*vp& z`To=Z*go_nZW-8lYp$u|`YW2T`drh8Y1K0Bzk${CJxeRkd&}R!>rmqvT7AyVe{Vbw z*7qFd+`O*-0e0`J*USrO>W;;{e}c_bPu`1Q_t`whAUDo4mVL5yyq?>CgN--#C0coW z{{eeO^}P(1XP&QvU&HjhLMwL+-tXT8H~yRCEi`rG-=LKn|32;iF!%92TIc(*O_PxBCSqxJq17L))mr!mT`Ws$#;$h1iMObJzw@1U)^X1I-nF0SdEfo+cki?J z<_x=TD?OUl)s$xpOOjGDG8vwHx4fsWb=Kl?lH7saiS5Jg#_qumU=L&8!H$#;;)p^DdlJ6qbb@z$1;H0kWD4!9miwM#Xy1HL04{JPB7L#Lt1t>EoV-Ca#> zEt@yBb!P?bLMs;J+gL#$cHW zH@zj;TQ#ADOij(?>qz|laUNVmacKkl0 z9-sZx0RI7e!GZ-#^|KR_V{ns3{Lig28Qu{5m+;4rE*#*$&iYRr;D5;Y&Seq*?-Kj> zK*!VB02XjOOR#HzmnbtymJRR;@O^vt4)AI4$B!Oe90^|!Z*6T|dL9K&B9|}Sl?wmm z@Hy*t4@_`VIW^&_OXf5GDRgKfpq~z#^45;dd^?;wB1{E`g_@`v)+KC~#r zjT(i2yPV9(I=iF>AY=#Ggu#!LE6c~s9s4z0Ztw=GbV6T;AE@+>sbBmENEV()^jyuLzTWahzNWy5U!HK?zan7$AnuJH2^`Q{zsPqT9zE;c zkyrkZv05=tbF9se!0L~&Hh0nf7*p#f&GW3o6JVd0n7h88U}`V$zQqmnYoq;H<=ENv z>60StrhKJ;0ao+AFmfF2Q`mIuNwP*2Pv?5{`xRWxdnMjlAJ}~QB3D1yT)s7OrP=F! z2BIU9{RXV&r4-423pSy?NcKCh$vhoV*ze)$k?UEonipE+`XktU&z86%BiWxSrFr$G zKUcOb7@uw}1pgImhreL%GruC#V!*$H)kZND_v$~u{F0L~eNo6i!TJ^!iv1Vdz7g{r z7%fe>ZU?G;9<1Xy7K6M1=9dkkKN7qM)^|M?vwaEd;QE|^he1v3LAZiEE`polKUiz2 za`240<`X%MefD3t+CI#EmR%oob)V_`AExF$6T3cMlVvnt(pomSTf7FYR<0acR-X<5 z*>QR9i9&{=yYqKrvC_3@>M_}2V6_K{8AWbae>mKHvoZZ$kel-f=ao$PtbMt+73fMho9(}P&W5JiA>+j81VjQ>uZLI%@M&Nj`)$5D_ zPX({1fPA@<*TA9KYW34jfEyDzCW6glT;!Mpe!0@WXnbnfUbT}8-YH;rWJI3^HzqPp z1skIt+H|n`G|c7lik_iHp5i4n6HPszcAA_HQ8YnxoCS`K7AQ9^3VJQLSm11UvA{WS zW7MO-xnOm7UyL))4;Tk3-d6Jonup~TCTD=vOb{K<1V=v$lp7ZXz7AZxM9zY%`Gpnt z#o6Ez<0o~#JV3f~n9Uo&>c!<=1h=UC9?#C+8`0EbGUtHR?C)e!-_yB} z=;&-^a?B9W=UY$L+P&WC?P%gz{qVEJ7sUF(9!0MM{akF0m zc4TjM{qDxN+20MeGGm<6T3WT(RO`TMTw~QQjw>N1^KUGj{j~0s*fshs+a22kc0r0a z%X{GJ5!0N<6wmfmXzDSk4dAQ11a2T{bljMCES{qlH1&AxtzZWigdT(GiFKTCke0#*dr#gMB>o`re1BS-d!ky&haGw)$~%16)n>v9XX8 z@BysVOZY~B3H%!B%^e<3`3K=9QI8pX2^wS7;V>r7a%V&!DLre-EwP_=B{c!+d%7)0*Eu zxIdrk5%UFOJed9+96?`1)NwnB?DQqD9o1tNUj{qFi-~c$zXDeC3GIPgBgKIB)m$^Q xk$ureyY4}l3G85i_u(EA>pTRv0AsBBA=<;(0nDPEx!gGM!?gB4!ErqY`#;}jPS5}V diff --git a/packages/ludic.render3d/shaders/spv/512004a1.vert.spv b/packages/ludic.render3d/shaders/spv/512004a1.vert.spv index fb38e87f8cf42139f2e6a30d9fd029e08e9f3033..cff38951584d2c444aeb1e2b8bbb7e4042bbd940 100644 GIT binary patch literal 18132 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 delta 5539 zcmZ9QYm}8$8OPsq1_ltEf{}}Hk(9141?w6bs|d> zBRXY*rb$S5mFQ~pr4OyuTKIu7%fg!JZugsb%j)-g&-A2iuR`hux1I#13QM!H$*>@4swV z`jb+UZ0|~v;YnTcH*q2!mb?V+-rCx8UB>H@(R69u+Lielz+J7~ty}Zhu|v4S_qBBF z=*hbU{ z;*Qr(UgGlmaeaLZl+@OmO}{>SB=oGNzhv7c#~4n}qvazrN0iH{YdS6Kn*Y(q0l%~YX@)rMh~=W;k)ea_vX`se5TXwDbF8z~xkWYsBy!_tS>wk}&h0y}=6 zQBTf2QR6>=FIu!{xqfy+avW~bi2s>YCL^1I{{sH_vBfq1>#YCe8vjGacddx{f0x+5 z2fLom2C#sWS%Td)UZTt-SyAJY;QROOtMM7|$B!Lb8VO$yZ*Om3egOqfA(s!`l?wlr z@OfA7sZDTmIW^(w%N8>KX>{lyV2}=*^VW{ed-KsVw5L{X<^;?L6BNxzBYo zGl^VEVrTXZG=2RXK>0Vp_Eo$znZZxC#55ejZcrwUIT6r zXW@hQRZ!%<4vKs;hi&I6;b`5|MqV;=QbxF3PlA7hd3rF{ZZ8zjwhEXI>yKQA(OeLu$3o@Zl-o9Nd; z`_szta~spAL|82O&%tV5CPq%6J%P={o+4{h@pP_7zhA=DymaD`4uH+4FLDin&E=yb zSDHQhUqN(4vfqH!ys;wLZ^0(i7s-AHHkn5!3i~}=J#sw*R`a%tTz>?c@0k+!XC(Vm zrL>^2^ykXShqRsz?iR0utCcH< zS2U)>Kz3Z2d!mrx=YzJooqKD=`7B32nS@*a(~m zwtAg0;OXEE6p$}h@)|faTdhIbNpNE#$7Ha1jEfvoz%Nw>mrP78+pBhJ!8;A?j*RFt z;KoG8>0o2jLz@X!pMkktUeUAE$Wy$eW}~U+(@v8!A&Mr5j&s1#(E{bhMM19x7Ym#V zFBUitZj5>qI3KL;?u&62`0K`jinrB5f)-$Tg~?f9H4{X~v%%5N0_DaFOhTL zYX1C+`{G=1iSd&LA08w+F9H{5vlwo$dd%hxVD;j1FM(TBevfB6@QrBdF`4tgYW8iKfO3?qdaGt8tB0e{oy`F`0jW=^UhWr^K$&Z`tnH z7O)Fayjk7@SC5$1Jf?WIuSHXjNo@pQ>m^YAIa^J>DeqW3M{Q{8@z~qJ4rl^>{rRKZ z0@l}odC+~l?*%)ti!l98XalW!wk1-$*Fomd#vbW}8x#X>1^d@#n76;lx1rM{XJh8D zpRqCc^|{}{jdgIxQTKd$Y*NpSAO_zKo=%W_fR5ep+3@xGpgnLk&5s2LV-ousd@HEn`%l|4xXGIP^Dw)qFJmxOqR=kB460`!F?&7e}!-fvd$Ikrz6D?ce+~8L4v(k&18|e5#|%CQb_Tm>?dRM6Hn4hZt`C8|vDBOM zTptFjYn~MI-+mgzL3Bpo9hC=HH>Mvk47&q!A#bEri&F0btLfWKD~}%^9|cb#{hhS> zoQ`FF46JVt=5#zyd%-^N;#v8)|2xyspLeW)?Tn+=@e^R5t{p8xZk$^y9*(UAyIns8 zHs08~Y31SD2X<@fy9d0_gBdgZG{SwD&i%A=J&7h&*yp+^96X9TjbJw_Fn`m`U&kzxkmq*_T^kNw3+8SK>HPl{f*b}wYHbM k`W}WmxG@&^2<@ZTL2R~vp*sTw1I34FO~7B)$$8lS0d|^6Q~&?~ diff --git a/packages/ludic.render3d/shaders/spv/5e70d731.vert.spv b/packages/ludic.render3d/shaders/spv/5e70d731.vert.spv index 215b17d64e976a8aff39075e09daeabdfda81fdf..1817d425f782672220ccff0969a3f200b4a9c767 100644 GIT binary patch literal 18740 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 KTOX`mo!@x4@8RBtj`TVvu-g|OmeBL(` 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 diff --git a/packages/ludic.render3d/shaders/spv/79b77ed9.vert.spv b/packages/ludic.render3d/shaders/spv/79b77ed9.vert.spv index 4e13f85df1df4e7d92fd969a256d1d416b2f1750..d122576693bf226eef7801714bf5787d1e23c551 100644 GIT binary patch literal 18476 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%0DJZw==0jxHR9qb;ih8uFK zVcQ=crV8wr+{OSA>c?b6s+$qoH2u8a0l1t z1Uw6BV$Z=f6yz#hNT1r`q1kom>riX4*kPxE)%FqL4jTdXafj&}j;X!Gx`>^g_vq`v zzWF6=Z8!Jna5c@xCT4U7giwx7Qkw-vNh7n8&cr(cX4#$!f!|HxzMk~e})WLzYf26j_L%mrZM)SZYI zty;ui2zEmTpAI%=TXI3^lW-BlARUo(23WlTbIrV=XBPK1)}?PknTf^RF9xgGBO)&W z*E28gHcOHl7bVOBSC(`syi`)DqSgGEVm!D@Di z$a!E(@}jdOxp7fa6S(r8xE!uFABzLD0PNeU#q{TW)8q>rbP3pn~UCSBEuf`Kucw}LAd_-*jY0^bfdMm^gz6rtu>^yB6= zW2}|1lDQYto7uZ!`wYb3E3HI><)AtTc&CFt_;&r&pY{TD$vMg8qI4&Mp=%<5?%u~Qa!ZyfYq;LtY(g`m*TbX6L5XD&cdG)>aLJ6?*+Sr!CTPMC~djw_jZ_b9Jy`uZEUxGduw!{e>vzA!6}) zLF-u|Mxvc~Ul`smE)- z9_)Z7(6=RjmG1}ZyAkt^_d=PF>448ub-!aT< z-Q+i;()4k$1n@oL2Ckk#1wPgvnc;K+#KpLflq+#cQ|lVm)=m=Z`##*kjj_N(w1=^WG5^nYigM$`kJH-!RZjIK*#7~y9Z#?T diff --git a/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv b/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv index 76a1253def95d2096c2292dcd8652bf87d5ad3f2..ce50d71d288e23b7c2d2fdf24c7f47632cc83074 100644 GIT binary patch literal 18532 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 r)<84gc>UfJFQD&5v}?lc-x$a2--WG>9 z8`|1Rd9Q@8SW&{uz+EkE*?7%`Bu%=yN&|M{D0L|XZia8n2j7ds;i%Q3nuT+};1o)NcIgzO=2ib6#tA zPjmZxWsatL5PRbN)o(lv2RNTsT@d zc)>}-s?z=Qo9idh!N6ZK$_wM4?Bl?G|YI0Y?&1n1x_(8C%{Unx-1iJB#K@@drCjJ_&o%EYX?vYfBm3av6 zK*m1|<}aCqAb%{6J%$#AxG|&fpB0iZS!b8j0EFyZn=ts%LUH-9iRlk;xuF}V(h2<# zZY@1%7sF@K-THrorZ3`tTo!k3S=>+1^=;xX+V3#fzUo_Z?Fd-?hJ-pJ;ZG6D2d-y2 zYDWqOr_}s*X!ap-t60BVz>i5eKlucHb{WsMR2jFwAC>5T4ioSrQqGr^apLDDd`(^x z(0Ky)gAxfGaN7xd&%vqVelcX>Q;anQ^U%lQ{vNFU2n%#S?H@3;cCdT65^l)J zhJhn_Kd`=O=+Uq99l4eEL)uADvl~z7Dk-iyd|fSZyB>?yzBCA9t9(p_tlBtc%#`d5^vx z?3-W2R(G?X3Rly7Y+^>IK?vpOB-L49lr%gm>2%z~v6$!?V6{W^8A5Vb{!F+j#$)=o zLT=4(k+a|qVayP|8pe+R8$T5@PYv9-SQz~;QzTPs&*tVFqpXqO6Hn$jXzI@Y7)eKg z$C5baKN_y4`PevEEkIx79$VZwy(T>uWh`cd_m6x=zRAXc-C*|A7t8Vn@RjKLH|0|w z4{kuy7jYB7R;w>I<0S9~s?C=tO(rA2v-LSnI}vVBBzYs)M8-vuDPT8M#GD5@Tp*9wkGG5J_#2<4AK!vr-9Y$FxSi*dU|nheNFl%l<8Q^{X(#sJtFcV za4qxlZnGr0aZ$nyaCu1=!%HQVDw+v5Mm;LJ1dLvt?YS6eR&nTsHEBJrSy+@b8?0uR zh@1nqBriHkk{cH#HGs?SiA&*XbFnx;^T58XYD|CLH%%^sl-GYb++g*ne?C~fd_@<) zEvo#+T!^L~lX){(&Hgc&w}7KxebP~xC>R*Cc`LYlf!_u%FYxVfW7M-fLlJ78ML%v{ zGq(B`p_gA^jouau7o#>}ae-X{R*MVlonRj?Fn#a9)XXe)Dqe?6%r^90C`)qHkK@u} zLqkpaZj_~1Ea6pPBh^ED4_N(j#%ko~dMREFKMvPt>n!{^q3#M9^Iot^7`zE?%ogg> z|Gq-9JPXocf@QRbeI1sA)#Bz^0anv|Y+~cAgpf0tiy0S_Z^WIu#xJatp%%JgT)oy26im3X#MWDxT4pAt;HDU)J&@u+om0?#{HCL_jd=xWRozR z$7$UQu`l$;rd$tpLCSy7bivglraO-*|GCkFrXG{p0PgW07JiQQb?nVMmYyh6hCugKq)X5+pxH$D80|;fwM?x5CwK zD(;;(JiQrY4^`7|rd5lbcPrR$>n*fq^ke-YuzDQn4};Zw5B?^(4eaBQ*7p%i%}T{l z+3o(GE0tFIQL-H;VrC`)W`*no+<{rh4q6lVBc_<^o<;db;pR|}349D}zdLDT0v`vf zZ%xwDcjOZgFC-m}d9qz#b^{_YUm=;8D8$^p4Bn6F+(#?72yd(d#R`5+eFfz} z9`OLJ+=z#1zmEC39-=j)|2jXC>k;#fJjQ=@Bj%fE>UWUGKHmb{Pd&>1Hkc`;$>MyS zzJs9X6WVukjU0X2qq$~iBQN+E?IDQ$jo0sOx0Ag3z6ZAeV=VeH+V5izVm-;|(%L8( Q=sG=4Yl2s~4lcs}4}HQ{wEzGB diff --git a/packages/ludic.render3d/shaders/spv/b603a056.vert.spv b/packages/ludic.render3d/shaders/spv/b603a056.vert.spv index 215b17d64e976a8aff39075e09daeabdfda81fdf..1817d425f782672220ccff0969a3f200b4a9c767 100644 GIT binary patch literal 18740 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 KTOX`mo!@x4@8RBtj`TVvu-g|OmeBL(` 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 diff --git a/packages/ludic.render3d/shaders/spv/b964507f.vert.spv b/packages/ludic.render3d/shaders/spv/b964507f.vert.spv index fb38e87f8cf42139f2e6a30d9fd029e08e9f3033..cff38951584d2c444aeb1e2b8bbb7e4042bbd940 100644 GIT binary patch literal 18132 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 delta 5539 zcmZ9QYm}8$8OPsq1_ltEf{}}Hk(9141?w6bs|d> zBRXY*rb$S5mFQ~pr4OyuTKIu7%fg!JZugsb%j)-g&-A2iuR`hux1I#13QM!H$*>@4swV z`jb+UZ0|~v;YnTcH*q2!mb?V+-rCx8UB>H@(R69u+Lielz+J7~ty}Zhu|v4S_qBBF z=*hbU{ z;*Qr(UgGlmaeaLZl+@OmO}{>SB=oGNzhv7c#~4n}qvazrN0iH{YdS6Kn*Y(q0l%~YX@)rMh~=W;k)ea_vX`se5TXwDbF8z~xkWYsBy!_tS>wk}&h0y}=6 zQBTf2QR6>=FIu!{xqfy+avW~bi2s>YCL^1I{{sH_vBfq1>#YCe8vjGacddx{f0x+5 z2fLom2C#sWS%Td)UZTt-SyAJY;QROOtMM7|$B!Lb8VO$yZ*Om3egOqfA(s!`l?wlr z@OfA7sZDTmIW^(w%N8>KX>{lyV2}=*^VW{ed-KsVw5L{X<^;?L6BNxzBYo zGl^VEVrTXZG=2RXK>0Vp_Eo$znZZxC#55ejZcrwUIT6r zXW@hQRZ!%<4vKs;hi&I6;b`5|MqV;=QbxF3PlA7hd3rF{ZZ8zjwhEXI>yKQA(OeLu$3o@Zl-o9Nd; z`_szta~spAL|82O&%tV5CPq%6J%P={o+4{h@pP_7zhA=DymaD`4uH+4FLDin&E=yb zSDHQhUqN(4vfqH!ys;wLZ^0(i7s-AHHkn5!3i~}=J#sw*R`a%tTz>?c@0k+!XC(Vm zrL>^2^ykXShqRsz?iR0utCcH< zS2U)>Kz3Z2d!mrx=YzJooqKD=`7B32nS@*a(~m zwtAg0;OXEE6p$}h@)|faTdhIbNpNE#$7Ha1jEfvoz%Nw>mrP78+pBhJ!8;A?j*RFt z;KoG8>0o2jLz@X!pMkktUeUAE$Wy$eW}~U+(@v8!A&Mr5j&s1#(E{bhMM19x7Ym#V zFBUitZj5>qI3KL;?u&62`0K`jinrB5f)-$Tg~?f9H4{X~v%%5N0_DaFOhTL zYX1C+`{G=1iSd&LA08w+F9H{5vlwo$dd%hxVD;j1FM(TBevfB6@QrBdF`4tgYW8iKfO3?qdaGt8tB0e{oy`F`0jW=^UhWr^K$&Z`tnH z7O)Fayjk7@SC5$1Jf?WIuSHXjNo@pQ>m^YAIa^J>DeqW3M{Q{8@z~qJ4rl^>{rRKZ z0@l}odC+~l?*%)ti!l98XalW!wk1-$*Fomd#vbW}8x#X>1^d@#n76;lx1rM{XJh8D zpRqCc^|{}{jdgIxQTKd$Y*NpSAO_zKo=%W_fR5ep+3@xGpgnLk&5s2LV-ousd@HEn`%l|4xXGIP^Dw)qFJmxOqR=kB460`!F?&7e}!-fvd$Ikrz6D?ce+~8L4v(k&18|e5#|%CQb_Tm>?dRM6Hn4hZt`C8|vDBOM zTptFjYn~MI-+mgzL3Bpo9hC=HH>Mvk47&q!A#bEri&F0btLfWKD~}%^9|cb#{hhS> zoQ`FF46JVt=5#zyd%-^N;#v8)|2xyspLeW)?Tn+=@e^R5t{p8xZk$^y9*(UAyIns8 zHs08~Y31SD2X<@fy9d0_gBdgZG{SwD&i%A=J&7h&*yp+^96X9TjbJw_Fn`m`U&kzxkmq*_T^kNw3+8SK>HPl{f*b}wYHbM k`W}WmxG@&^2<@ZTL2R~vp*sTw1I34FO~7B)$$8lS0d|^6Q~&?~ diff --git a/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv b/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv index e94e449447db6289195ee70feb2d5fee7788004e..ac0db988206fb51668dbccf5a89d620408ed9d6b 100644 GIT binary patch literal 18188 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 diff --git a/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv b/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv index 03a7990be3da849816f3f1de3036de6eb67f9015..28c5aa418c358c10aa241449450f9a955a114907 100644 GIT binary patch literal 18188 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 diff --git a/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv b/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv index 5213b433489cb95ec1bc4787cab40eab6ddeef62..9ef3ae82adb350040ba01f05313d623fe11982db 100644 GIT binary patch literal 19188 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 delta 5468 zcmZ9Pdze*K8OHaV;U>^1j^PcEo7`1s2q9o#AOy-1GO3UnN0@=hVP=>a2BY*yM2e{d zCo3>b%rLD;qol|#YG@jybT=Vqx>(X*_1MK8&3?aq_BWkoKj(Ya`@Y||zV)rO*Is*{ zmv1k7@W!%=^4ysINm7;!N(Ll<$?dFY7`HB$B#&Z`V~4RPv8S+SuotkGu#>rm_T1bj zp95}aO_IJzd2)_85%)>Pf!o&CwO^C+@?-|QZhdR&n+0yIYpYwI#m?!)9lo=6-NvS- zV%}!>>eWTu32v)zO2^xrOY%uuTXDecIEr10fp@?+WrOcaeVugbn>-BOSliKFyRN=* z?YfS%po3_o1v&T5+D)x3?Zw=#LuYMsTNLb?bk=U{Oc*~+-~!d9LXo>zowe=t^=st) zlB4joO|{GF+g8-Kb<|%=U8qG}tgofLv7@o28MS{JUlw{}bI0Y4o9m4WAL;C~u&MA$ zzf*HZbA^HZ&za%f@pAdSOH^E6m#$8~^p4S?IQr7&HI~qqfllTQtn5E2mv_lWq+N8@zygddppz@Nb1r zT(zTTg1d5T?mfHDuAajDN6?`_KsOzBWvv~Z`Q7kSvPAOx;R9($;(q|lkDXQ=NdJBW zZ-<4PMeAPkib4*-cRcp@IV1A~`~YH=7GMXtn@=scn=kk(;@o_43wQ#IlonvT+|8&a zcO~46#t(xZ0lV7AvHS?28?OtZs8ciXPiXC=-$ZhsK($zzXW0@ld;3sp11(lQXUAWxPHB{+@y5ZK+fz|+@OLy!49h$y~ z`+Z5=`6Y3GK-ag0htYn21lw1ATc*7TR=+Nx&PeztgwlblnU30vxdRnv{B213ws0$0 zzgxyPMkycHi_a+G1Bmy{Q5x@?Blvktpt%?CEa8l|FyWQ)e;u~>;=VN^p#$#g#Si8V zj2_=vvGg?tn~J?!vTFYUs~=*8o}hglQ|l(rKUs(}a(Vrm$?J1Floj^Qt}H7rjG9@Q z?*lK#VukyG)jUaR$T^fg{lTMYpQC%+)d6Vg(QhDF%@Zf?;2^O1^hK`0U~^?Vr11KT zzJ((*h7FHCr{TBXsU>}e6uReB&N>}s2o@ur0ao)2i{5Vpn?YZUIJB_y;>!G)C_}O6 zeHK`4H?>6Xv*BjY=O*$qLoMcfE?8|a`_mmd3{3a*1lAY1hlBM^|KED$lMx7Zj-ZiX zHICe#0!D+?M`1C@7;p@tKl+aa>$|UH0_VdWT%Qwgr>j*bmF4Nj(Ml?ET^7-4d|`QY zWqtzg@mTDiiD0$EM7Vz@gT358`X*s&|6(JFT^o>>AwqdQ+7y9hdYEZgZaEP{>@(<6x2L{Xmigc-(DiT0rd|WCLDLs;3&2*ZFLv@6mR}1uSUnP61y(Ozs5-bsmA;OzMpKW;tOl#uKPIyV9Q~@3mhwcw zz?e-vxO9CR;H3qwg&U*pY7D0cH6O7uT2BvKed}mT&!t8Wfu$crZN%bSx(2Kk=hAwx zm*KkoC;n>2;d>hIJES9hxY@~W<9bolK7;70%q-Whm zcsE?1t+VhWK;0EGW)s*Y41O)#n61>M|3kUt>NH4)2|8&Jdpdj=tQH5#N5E>DmrZP( z>mcMz7GTE3EySd+OO%!C$oG|1TpyMz#|EgchT`q_*nR5*`Rm9)$S}zTYP5z^B{Yun*I)2wb*%k!M-x@ zrZuDQ;CsO8@koCGtmb|2Q{#(ZFCS@r_hM>RDvrwT^G|BAwBonMmvADcW&&VZ$OC{c zV-|8htqJ@#`AVkyEXuzMH-~ym;A>#}?Wc_iJP20bmgI}Ck%u52NII5f$-WL&*L*G< z-~iY`^hMk^z|LHACmHumG-LI-s{3fwqVR8l)vD*?JP1&T?}TrIhmquAT7AyWW&aLX z-yzJ|`38L?eXo5NTZ?=`t`?xVOlwwCDLd<<;7)((pYT6Mc{+=DidJsKG1{ME-mYh9&FCNApJjT) z{5*^C4{F5x0!@7vdF=B`u>I7d>|cSIQa)Lpt<$d&6um-wF4M@-qx~k+3|+