From a658a2a4e414888e1b6a3e0a1ba63281ab8cbf88 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 13 Nov 2022 11:05:53 +0100 Subject: [PATCH] palette -> colorRamp --- src/nodes/QskGradientMaterial.cpp | 42 +++++++++---------- src/nodes/shaders/boxshadow.frag.qsb | Bin 2655 -> 2666 bytes src/nodes/shaders/boxshadow.vert.qsb | Bin 1572 -> 1569 bytes src/nodes/shaders/gradientconic-vulkan.frag | 4 +- src/nodes/shaders/gradientconic.frag | 4 +- src/nodes/shaders/gradientconic.frag.qsb | Bin 1806 -> 1808 bytes src/nodes/shaders/gradientconic.vert.qsb | Bin 1518 -> 1521 bytes src/nodes/shaders/gradientlinear-vulkan.frag | 4 +- src/nodes/shaders/gradientlinear.frag | 4 +- src/nodes/shaders/gradientlinear.frag.qsb | Bin 1434 -> 1447 bytes src/nodes/shaders/gradientlinear.vert.qsb | Bin 1594 -> 1604 bytes src/nodes/shaders/gradientradial-vulkan.frag | 4 +- src/nodes/shaders/gradientradial.frag | 4 +- src/nodes/shaders/gradientradial.frag.qsb | Bin 1542 -> 1538 bytes src/nodes/shaders/gradientradial.vert.qsb | Bin 1483 -> 1477 bytes 15 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/nodes/QskGradientMaterial.cpp b/src/nodes/QskGradientMaterial.cpp index acfccaaf..5421af50 100644 --- a/src/nodes/QskGradientMaterial.cpp +++ b/src/nodes/QskGradientMaterial.cpp @@ -37,10 +37,10 @@ QSK_QT_PRIVATE_END namespace { - class GradientTexture : public QSGPlainTexture + class ColorRamp : public QSGPlainTexture { public: - GradientTexture( const QskGradientStops& stops, QGradient::Spread spread ) + ColorRamp( const QskGradientStops& stops, QGradient::Spread spread ) { /* Qt creates tables of 1024 colors, while Chrome, Firefox, and Android @@ -75,10 +75,10 @@ namespace } }; - class TextureHashKey + class ColorRampHashKey { public: - inline bool operator==( const TextureHashKey& other ) const + inline bool operator==( const ColorRampHashKey& other ) const { return rhi == other.rhi && spread == other.spread && stops == other.stops; } @@ -88,7 +88,7 @@ namespace const QGradient::Spread spread; }; - inline size_t qHash( const TextureHashKey& key, size_t seed = 0 ) + inline size_t qHash( const ColorRampHashKey& key, size_t seed = 0 ) { size_t valus = seed + key.spread; @@ -98,15 +98,15 @@ namespace return valus; } - class TextureCache + class ColorRampCache { public: - static TextureCache* instance() + static ColorRampCache* instance() { - static TextureCache* s_instance = nullptr; + static ColorRampCache* s_instance = nullptr; if ( s_instance == nullptr ) { - s_instance = new TextureCache(); + s_instance = new ColorRampCache(); /* For RHI we have QRhi::addCleanupCallback, but with @@ -119,20 +119,20 @@ namespace return s_instance; } - ~TextureCache() + ~ColorRampCache() { qDeleteAll( m_hashTable ); } - GradientTexture* texture( const void* rhi, + ColorRamp* colorRamp( const void* rhi, const QskGradientStops& stops, QGradient::Spread spread ) { - const TextureHashKey key { rhi, stops, spread }; + const ColorRampHashKey key { rhi, stops, spread }; auto texture = m_hashTable[key]; if ( texture == nullptr ) { - texture = new GradientTexture( stops, spread ); + texture = new ColorRamp( stops, spread ); m_hashTable[ key ] = texture; if ( rhi != nullptr ) @@ -141,7 +141,7 @@ namespace if ( !m_rhiTable.contains( myrhi ) ) { - myrhi->addCleanupCallback( TextureCache::cleanupRhi ); + myrhi->addCleanupCallback( ColorRampCache::cleanupRhi ); m_rhiTable += myrhi; } } @@ -177,7 +177,7 @@ namespace cache->m_rhiTable.removeAll( rhi ); } - QHash< TextureHashKey, GradientTexture* > m_hashTable; + QHash< ColorRampHashKey, ColorRamp* > m_hashTable; QVector< const QRhi* > m_rhiTable; }; } @@ -253,9 +253,9 @@ namespace updateUniformValues( material ); - auto texture = TextureCache::instance()->texture( + auto colorRamp = ColorRampCache::instance()->colorRamp( nullptr, material->stops(), material->spread() ); - texture->bind(); + colorRamp->bind(); } char const* const* attributeNames() const override final @@ -292,16 +292,16 @@ namespace auto material = static_cast< const GradientMaterial* >( newMaterial ); - auto texture = TextureCache::instance()->texture( + auto colorRamp = ColorRampCache::instance()->colorRamp( state.rhi(), material->stops(), material->spread() ); #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) - texture->updateRhiTexture( state.rhi(), state.resourceUpdateBatch() ); + colorRamp->updateRhiTexture( state.rhi(), state.resourceUpdateBatch() ); #else - texture->commitTextureOperations( state.rhi(), state.resourceUpdateBatch() ); + colorRamp->commitTextureOperations( state.rhi(), state.resourceUpdateBatch() ); #endif - textures[0] = texture; + textures[0] = colorRamp; } }; #endif diff --git a/src/nodes/shaders/boxshadow.frag.qsb b/src/nodes/shaders/boxshadow.frag.qsb index e5d35e437ca6f7fa39d8f41737c032ed3b553d1b..ff5c1229d590a387932efbb4f8bc0b1979140c3c 100644 GIT binary patch literal 2666 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 N@%G8Ze*v6R4&+$;Y$pH! diff --git a/src/nodes/shaders/boxshadow.vert.qsb b/src/nodes/shaders/boxshadow.vert.qsb index 40cab02d8d5a89e0c8c939fae2ea1629b9121fcb..c04994404c01febd819adecdc4639c13479d7863 100644 GIT binary patch literal 1569 zcmV++2HyDq03kwnob6iwPuoTmKavo@Kxv`CHoDd=9ZhJJ1r*wf3`EtTtx_dWnW{;M zxyEt8n`5W`!k1P^)1>_Y`(^*m{)GKI`(@hRyL*n$j$!LGq<}DTa__y*y>IvKE@#6S zD>8BA;l9o+<}i&J%!NOXHGr3cyYDZ$Sn?Vt`~foo9l+-ia0@6pwTH&u0#YOW*bnr> zJ#b17lqp>vou(hrMYhXA)`Zp|d`IoJgu<9dSc~c4i3c&D*TW=RlW^CghH${p4 z`<@i%6y+eIXHt2%OEmgC0a|h#pXa_{dkR{(*sE|)10HcjlBqxslHbU$6Fo#clq(c} zBv&ZMeWY)c^cA=tBIl#jcZ~F0qrPL5SL96seS`c$T@Q&Kr`SFMdV+Kb-Ge+&5pR@y zD$AzBXaL2XcHGQcE*K{`w66?9;q!)6*Nvz<&>g|oSKy^n~PMftH z!wws!`bEnObX$Y9-nMpEm6-2at;Xm0QQ2RGO!>IcIeN?VA%UjKd(|_BkLRIwlpI3A zln0SG@-TANe;i111EZ~KFod!*G?eQ0cIca4$#xB=THe`7_#uzM_I8_^2skcv(KqE(7aLU-us2l}1~)XvT$h{*xc;i;eFRRaL{Y(j`= zyxf^ikw&~%)b}UCEuboKJywz>iNdqXvXZJy&kRD(!H!Ys^>fRq+Jglk_uEzN^-k@@ zF~w_%jCyiuDm2xDub+UDm(Voi@E>a%_x{CrUCsY)hyeMHvJ5@DvIb{nQVbIQA1G3d8=l`<0^;$~AN%S)UJ=8w< zw?r$nOP%l@$#qudmE7&O_`TAVF*Tak(2gAFWMxH`rlx6}+%A+nH>L0dBf~S%-Q|P; z$(+<;kSM1vY~;7(D9!Ptk(1NT(KywAl+V%8`QgLP(L=m_);ap>3?0+*8T#tXe12!< zUO&@joH6BX7@u){ceM@o%r-0w66fRd-JY|4*v5b-7k~f$@aF+Nv)#vTCSg)_T$Eo0 z^3yFO=Pu#Xt@C|9A;0rUy^*`b?|d%O8@cFxDNDYQyTtEH&$r?Wtm}bnlwa}x0j%qx TS(iNZ;NeVpR)6+4!RW41A@>&N literal 1572 zcmV+<2HW`n03kwnob6iuZq!B)-`pi3aS}cfAZ?*w2o0Bju1AyrY8nKhQHz9>2r5)5 zN{!?51-Cx?@JA9rk*Z34fd13h=_B-Y`cKu)?9Rqx`wmLgNJkW-!#gv-ov)o;?=A=- zhJ|{n@H;I$5eQ2-B7{GYXacVSzk$E$5&375@H@fROaKIH6+H>i6m**_R;)B*mtb)gw?LcqL00S?HyglgCv7H~oRx5Usn$wtDmYoz-0iDo?&UxHo7hGgFy)-TW zmpE`i0qwZsI!OU|n*$YY%TJ@#y~GVl*!t@-Is}B5yedI=0lL3z7)G4fiRWmSw|#3p zjJ?DQgXNrP!F0kfY8IJZV0GayB7et?5_fMIEkr2<_H_NxlV{e$D2!w4QP4>f8i`^L zaP`~O?;ftLJ^8AU%aXRm0Jl^ST`a7nNx=j~&_jJLbih1)#u9-xc0#XdqK8l-UQp9@ zq;#&ZL?D;zS~1(HUpolzCa*Ib1j8u%ZAu%ZjG2(+ZP)U!tsOYX$_kg(^ZsPXEur)< zA&iBm7+pM5-9t$z5a-nMk>|>(gw=jCMZhnq`)nD8*j5PLwZ8NajZVXexHD#}?h+uGXg$WCT8mnBf z$l0IcsCk|%ST&>hl+5NX=h7U_)iOrgzzlRN;f;+nhSkguouDzdx!JRfH#R!dL{Le) z7xbEf8yj{4F>j@bTPs*#^N^!%&1n;);vfLks%ewZ9XjeF+}ykgF$F*dGWD}^b^t)F z-_p3Q^h_iER?Ij1%B_%@HU<2t$8kuQOzIT$g; z&61T9^qHm6;QmVgojXCUMWe{tJ^n20K}NfBpFB<2o$E^~I%z+VoZR zlo6-IsBGghu5FA8wco`(=>_Z$QsiAC{YZ}yjXJ&&L!eVVV+WY3#Sur`CsYorm{T7AMkI7=3}|VG4Rx zq`WF^WBWX`@ce*dF%5W(Wte0p&?Dq0@|TGoB_7HRidV}G%IN^=_ z^qi!=rznreI|uX`@(Xp{AbOHw`3UGK(xr5d$h>IY1o<>fKeTs_;yO$A&dK<*Sf{By zMf4|RdxG#tUmzaJFOjb(zYU{Q5!o>W`F{cj$8Lr4I!?K{2hvfZ9{^%n#-n_hBs}`? zG4WR@j~B`Quh0kSPYH98^q@bNDTk9}=Q82`0US@tqK?97RSTAZRs|nGQgb=|2pRVKL&ksdy~1Dhq3BVANBsfwM~A|zCnWbJ7^oS{kDTP9yE^++ZoLd z+elv_8ht)Kd>`K78)@z9FyT!an*oYvhT;(v57O6IEm>UH^deoOzSmjbdDeH1?9CJQ9hV76&K|+bgv0&54vNyhL+h((_5TAz W=^wA&Dj(<~FPz9qa`6vtpsrHJK@ms* diff --git a/src/nodes/shaders/gradientconic-vulkan.frag b/src/nodes/shaders/gradientconic-vulkan.frag index 681ac96c..526e224d 100644 --- a/src/nodes/shaders/gradientconic-vulkan.frag +++ b/src/nodes/shaders/gradientconic-vulkan.frag @@ -12,11 +12,11 @@ layout( std140, binding = 0 ) uniform buf float opacity; } ubuf; -layout( binding = 1 ) uniform sampler2D palette; +layout( binding = 1 ) uniform sampler2D colorRamp; vec4 colorAt( highp float value ) { - return texture( palette, vec2( value, 0.0 ) ); + return texture( colorRamp, vec2( value, 0.0 ) ); } void main() diff --git a/src/nodes/shaders/gradientconic.frag b/src/nodes/shaders/gradientconic.frag index 55de04e4..b131e165 100644 --- a/src/nodes/shaders/gradientconic.frag +++ b/src/nodes/shaders/gradientconic.frag @@ -1,4 +1,4 @@ -uniform sampler2D palette; +uniform sampler2D colorRamp; uniform lowp float opacity; uniform highp float start; @@ -8,7 +8,7 @@ varying highp vec2 coord; lowp vec4 colorAt( highp float value ) { - return texture2D( palette, vec2( value, 0.0 ) ); + return texture2D( colorRamp, vec2( value, 0.0 ) ); } void main() diff --git a/src/nodes/shaders/gradientconic.frag.qsb b/src/nodes/shaders/gradientconic.frag.qsb index e6d57a321056fe1abc6d4d33c38c78a5ba8fd5ec..b0e6d5950624231607beb962523ad5b08eaf41e7 100644 GIT binary patch literal 1808 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 B?ScRR literal 1434 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 diff --git a/src/nodes/shaders/gradientradial-vulkan.frag b/src/nodes/shaders/gradientradial-vulkan.frag index 248faa9e..a250e8c7 100644 --- a/src/nodes/shaders/gradientradial-vulkan.frag +++ b/src/nodes/shaders/gradientradial-vulkan.frag @@ -11,11 +11,11 @@ layout( std140, binding = 0 ) uniform buf float opacity; } ubuf; -layout( binding = 1 ) uniform sampler2D palette; +layout( binding = 1 ) uniform sampler2D colorRamp; vec4 colorAt( float value ) { - return texture( palette, vec2( value, 0.0 ) ); + return texture( colorRamp, vec2( value, 0.0 ) ); } void main() diff --git a/src/nodes/shaders/gradientradial.frag b/src/nodes/shaders/gradientradial.frag index 1297d3e6..3638a17d 100644 --- a/src/nodes/shaders/gradientradial.frag +++ b/src/nodes/shaders/gradientradial.frag @@ -1,4 +1,4 @@ -uniform sampler2D palette; +uniform sampler2D colorRamp; uniform lowp float opacity; uniform highp vec2 radius; @@ -7,7 +7,7 @@ varying highp vec2 coord; lowp vec4 colorAt( highp float value ) { - return texture2D( palette, vec2( value, 0.0 ) ); + return texture2D( colorRamp, vec2( value, 0.0 ) ); } void main() diff --git a/src/nodes/shaders/gradientradial.frag.qsb b/src/nodes/shaders/gradientradial.frag.qsb index 69e6faaa6e44ffdcc90d60cbdac0910c4129aa84..f8ec93216d9e1b8b3040e795a92cbb3fc9f50645 100644 GIT binary patch literal 1538 zcmV+d2L1T}020Y~oaI>SZ`4K*-{kV3CP1M;%cHPKT57{_T%$lKM~%n;w(TdYR^0XU-kvwcTZyJtM zBvC8PI;fl%@L{p?pwo>-wzST}G)}WkAYnBvBr0C!tt@D-;X=cS67oRXcGS8OdMI6O zbU%m-;gSEDkVTeoDGuOUxIOh%rN&j*DzDe-o(EonzBFn=yiwvB4O(e8$bt@E;ju{C za?e%f`7ISkO~>s~;Ko+~8^4sW$FFO6nH0yt0zhlDGY8hr?3X*U^k3VV{UAGxlJ>vZ zily~;uo>;x{~GpVJ&?i6`p(<#i0&l4QTb)D3(7hH590uWZ$?2oNpl&6Jc3Ckntb8r zi%yj1keZv_ES0G|?23HBaTcQ_jEkn=_d7xcv7gIk9PO@J{5OLI7K1)`4zkI2Z>DIlSoe`2zVhd80 zfKZW(%#G79vE>4l#3YUq!F@lF5X){Mh3~s=5Wflzb6+odomf`WOy-eP>jXNA9h(-?pJ zqNFzd1cH2RY)h=#dohsqp|fdi0w^_Sby~Sf?Xy|_L!9`nY@hYI)6GN}DQYij?{#$` zjUjfF$Wf>4-LzWm!vDG9;w#jW-Ec!)?J8UMAf9%VL(1LVdN0KEmEQ@zgVO4CLNws( z%>o%P^nKcDj^HIgD6fZq0W6>OU=(dTyAKDbt# z5wPWX7JgR9?)d*2_xRRxe>=$9LXwJshCaTI%hsz?;tnTcMEh;orHy|0 zZ&%;`+r8cSc4-f%MIWxATyxX*VQxIrPOR8Vwb1%!UWTF>BaCU$R1q3vbNc$SRVG%- z`xU&g&nlySOJi!gGPyX5?bm@DP@TA^;YedcJ`Q&e{QlD_Zq zv03%Tg^#gu5uVEo?`jprpG6%o!@Ju8*)a4x=|LLhu2}1rE&4IgS7|=2=;%^fKTrPS_yACoimoUfI6n_FyuEStOevr6 zLEeWzA7kZBd>%gEWBMM7mVfvp zlKx4Ozd-RHBYC7R5)aoek?pgzj`U^XeFXFslATifHluQPh497}>fvPbD(T^rN93IY zdVz8_L4GgLo)|wrq4`;B{f6admDbVT9oW}NR$kZ<^E+^+$u{QNqnxi$PCll%9s&w& zeM*+X45 z;{Qx?w@9`|dM^_153qO_o;!pyzoB4leE~R()1e&9k$$X~(^MBIBA$?a@r~Pg)a3NE?p&vl#hmnDIi6gP>Z$8RTsBNnc`v3p{ literal 1542 zcmV+h2Ko5_01}~ioaI>SZxcrlU&nd%2v8`{@+fSQmfnFeZWJgbB!VVwgM>sxBB&Ha zr^|WmTzkH=?)E|gLh468^<)2n{*nFC$IR}mZ|&GYRaLc8H#+-f_BYR+9q)!QHpv(p zho=IM!$OwAU&fk1jlskIpuzeFqR+AxAOqHBs~{6AIj!qBsY$lW3Xo)M8otf@mW4tM zGpqxeC1{M;0njIC?xBTy-@IG^w*^Z8EB;lK-T;-SfeUar+n()sX4X2xlFjCZB z)ZXjzR-6WM=?FVYfa&BiD?-V4i)_6CFg_Hsi`$2XXC2caR z4LU$90uiU#Bk5{O`$1d?kDShgEV6`4aRA?9Va+9dHKoQ?*cxxt8=eQQfxa|qLXc77 z8Vy=$H^_nxU*@q$+H%iT=J{>qd|e0Y>1f-r|4kOO*8&-AH+De6IHxpt{Dzh()8RN+ zB50DC%I=NokMmtn)(LnR2M~HQ3ff7U%P8a#ykw%u=We~|M0pO0xz){5naabi$mbkq zK1#y4XbS$IBV-W!xopPK?uy0FqfYZSe$@9?ApfX>CqYN#;F{n{YFHVld@LUHmx5vr zDF))dqa4Tv=AhxHh3vD$TabZOOd{XjR>^c5-pePy-Wm6Ad_5bQ`b4w5lxwDYd%oZE4){9 zeX>;KW_A;(Y@lvws;;4~jjU0aM{5`p)`68M6RO`_lO~88(gHbX3!rv(YTBV7QR{qN zRVV=9vn6!4Ya?R<98D2$SX5|DvlYnebrj|o2AiPE=ua7cOA&r%Q_j@bhR@7 zeW^aO7p=sDLbEp~l$+F453J6emCbdb@vk+^|7)wnAL9k9RlW^%y{a7DhiKYS4vBVm z8@&M2mwqSs9txz_!_a`Qmk4CQ&<|;=l?&;H4X>|*DWJ7<1L(yeXdUYyu>Q)1Y9vKC z0KMbswcj!eqIce6x%I3lCHlLmOJNh58#FaS`DQ~}=p50e2@bZ|rM`)>eyF}THy%HG z?yqKPp8JoJZhyBnP4_=^hA%I?_o;b6w|j2!>bVPp~V{`-nzxB5^qEKQ0?K+pVa+DCf(RlaDE`M}R_GpOSy`7Unwf-vS2d&qxmWGhi8QyA;D$G`|AYJ>q`} za+s?dOy86}vWLFkB6~N<9_p$S|0j~WO|o^;dx?0zfyI09+$Eg3g=1}f0XU4)p&ZPR zeyo=>R4c~bS;B2leCLUW_49&sUm!W0`yKQleNR`X={HFH%zC5psyw0H`EQ-j@W87M sWL8gwQ~BRGu>Ir5wRirk9d}Y2xY#P*k$-N`KRpIccE@7bpO4Z(Kmid3b^rhX diff --git a/src/nodes/shaders/gradientradial.vert.qsb b/src/nodes/shaders/gradientradial.vert.qsb index 29129e611397a0bec11717b0d15aac0ae84c34e5..c2e3fe603e3cc88cf9a4657c271fbd9b078ccf14 100644 GIT binary patch literal 1477 zcmV;$1v>fw03OhIob6d{Pa8)NUTj_u5(o)tQxYRTiuA@Y5RU$9zJ9xfd{r_*C_Kt4jT0{WbkkwKKc3zP+;zp^ZpMICOVAv(L=V%+Br38phZ# z6ITZAt89Kwx1~|v~Ys8mha93T{d^u7UwJbGfsA!r2UojItir z1b|F{IbcIT;MIQMi=cBC;1<9`c0kUo%YgoyYl4*2=?(XQo!hhh!0}xDvrit{j;vI`CfOKo zV_L{D#%Q)@;hsZz=tbVgq#x-Cg=MhdOkwgNb=yFmFrV0O1}gybSSH6<(Hj z>)eKH2Z#1d!~2$EAJR9Kv9D2kyo1Sdo|K;>f6%tez|C;^EFV*>P+7iW>2QAlc*G4; zpAPgW*@yfJ(PP9zyhivz!jCh#8VUS3i@&fBfu5wkL2lPD_jQu=%dt_<_Auzeh(kT?;pUj9^eY@ znk_qk)!x>*RHesO!k6rFJGq^3W{(Yp_{VH1GzPj-GQ22MN1_cy-`tD>+s`*W%PkeQ zwiI3E#FD?cxl2t1b!m6pgd6IP0HU3ZDKExAae;`96Ro^dr#m=i5SlwSP+MCIV6O|L z%VTzjZ$JQmX9LVfwS~@}EH&a?)n6S7r+_NTJrx_HRTXPdxZC@qNJ#hjAXfB^=Za587kGMgyCmwou4w7qh@t|SII#R`<0LQdHtf6kGF|?vhq zNVH>j)U)=|`C0oE&e}Kuzbg~45l_JK=}!O_YijVJ{_Bo9Fwb2(__K02R}21B0dxim{u6W6DP6+D%~)6`vY=LM8kH)6N>xol z$TE(@yd^gEgN9aon)ZFur2S$0YxZT@&bjwEzIM!GT}2DS$d1pszjN+++?;!IVT=th zapmB?&i0taJQl#S!&aCJe;#YVNC6>#)5Vh41k>3IkkJW^8W`(?d+-nm98;Jn>CYXZ zAJGGBn}w_iZ$t1Iy+4ysXyGVpGXpH~m<{$bHbP?$CER%Qavcn?n8Tg*63*sGWQb*4 zqX04hW`hkrfmaU$Uk07K05<_1uzhl7JqqZXT%)Aq_n6f;Ufi=h-*z4Kv&D*{_<
  • S9IYF)tzw_ZX!bGZ@V=Oo^F7Sr|e3W73WEs6?*<9WBCsPWN}|Viyzh zz*zns@%jk&P~zo?w<_`S#9QY!5t|{Jy*zvanghI1o0+;zDhQu-dUor5smVbgdODbh!`j|_7T~CgLET3MZ8GYO^P4l zZ;`GsqVEtE^?d;`&#|~FApcL`;QFXjd@fN8*1#IH=Q8mwkqp}W2qY$XK7^mwNPdvV zS@3@X%pi}W(1HAAm~ohRsN)tB>ve*Bs8h^u6F;&^C7XT)8HI^8bes672YoD3TyD}l zMZ*0B7JtdD?tWJbq>kLl{Z_OcvlTWh^{ciO7%d&Xk}Z3CS&8|+-EQ2+hxYw4R43nd zc2vh`TRs#mOXX6vjEcxBTeXv{ikz8I7m0sNWu!UKm5L5EQJ#rvqq?~n`j%H}xu#Po zZ*57ss)_oxxw%WP2SVJu3)32S=l=rJuV)U%3W-!rf=Z`*7v-_u)Om+sEZE z@5S9LXKcywSZZ~g>TaC^^TfzmNoC~l%^ea@2;|NEJ`Mc4&3%}^AGWzqv-7{fBYv9v zLEA1i{I|d1BYl@ezios*q^F68wth;sGSZK9iFBZRncfGa@p+o_|JYEV4vfV;isK`o zFh(;Hz9ivhY3ygvi}W1H&PuYHBs)*@X@t#aVB{ZWxFKx3|3A!td1lK$uJDC8-1$FD z(R=V9EWysbWBXuNX}c1+;khsMw(*1O#T_6Tr;~9@Dunb$x7qZqpk!9ciT;lRB~Mf6 zY6e>5EDh9N$xwl$T&AFlWszK1IYwZc8LeV1G1N_U5}$~;Jd{W}ta= zrhf7jtRJ(2+hMCD3C_u@ru-(WxHkgg`_>bEHR`wFJ#t0PL0ty)_PwzcNuZSYNF#+y zFf!~D;w~oyNamzE^28GD!A7|-V?(LUPEK;5q>5{Yb+5juxVSF7|K0XGI{=f5Bz6KT z7e(^;BKcp7;W@5#r&zqsT2)G&0i1!VbPmn{O&cb{Jz8oq@?!*hNdc)~-yRGV=I l4)xwyn^9mr=l4+v#ea5tf3F=m&N9YRU-h1G_7CtK0>0zW-BJJm