From 83040c50e760a3d04b5a1d41f202513b5a9981d9 Mon Sep 17 00:00:00 2001 From: John Bampton Date: Wed, 16 Oct 2024 03:09:40 +1000 Subject: [PATCH] Add `pre-commit` hook `oxipng` for `lossless` PNG compression Oxipng is a multithreaded lossless PNG/APNG compression optimizer. Lossless compression is a class of data compression that allows the original data to be perfectly reconstructed from the compressed data with no loss of information. https://en.wikipedia.org/wiki/Lossless_compression https://github.com/shssoichiro/oxipng?tab=readme-ov-file#git-integration-via-pre-commit Oxipng is a multithreaded PNG optimizer written in Rust https://pre-commit.com/index.html#rust "pre-commit will bootstrap rust if it is not present." --- .pre-commit-config.yaml | 5 +++++ doc/mruby_logo_red_icon.png | Bin 8561 -> 5339 bytes 2 files changed, 5 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ec071da8d..56d902e1a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,6 +10,11 @@ repos: hooks: - id: identity - id: check-hooks-apply + - repo: https://github.com/shssoichiro/oxipng + rev: v9.1.2 + hooks: + - id: oxipng + args: ["-o", "4", "--strip", "safe", "--alpha"] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: diff --git a/doc/mruby_logo_red_icon.png b/doc/mruby_logo_red_icon.png index 9006c84eb9c2077ef14f11f039418a318ce0b5dc..e36f34a1f28d0c7858c27784800eba9d0c60facd 100644 GIT binary patch delta 5331 zcmV;^6fEoULfa{jIDY^Eb5ch_0olnce*gd!fJsC_RCwC$T?u%McN(82R8S(~sCG$Y zo1#QST5T1jhpR7;{2!ySi(Twu7k|6h#V&TSi(L$t16?&; zfN{Xvz!C-XfMy0i0A}DIw-F<5d{5JL&4qT{lUKY z-Cs1cyEXog*MD%G6uj@VhddfXsG!yFa%f#`~XA& zC4h`@kg?|;8RZwg|CkJsk}KI1yI>6YyTD?a-XLTIzkePzbvW&8jBEPvwU_=GlzS)8 z0eB2}0_Xv_DZg_7ynq*hWxzHdQ4}vRAkafx%T6c!Y$b{d@)Q?zMVGFa}r|LHB7WpgEL<5$oRs7I4oE zYjC7v!+$%`xeuq)nfG2{l6Kvtp}3D`k*RY0#qP94qk+Y|Oa#gJeFI-pNdm%dH!^0! zCl>=4#T;lw!OlQ4ps9vkL_iDn<>J4+BoH4RazCA%@&uj!`*^yr{u8 z343X8TOs7)@BblFCHAe+^eYI7nKPOyBy#KGglHxGmvv0`{?7b7 z!M04qNFYvPfs*65(;ztV2jA0`7zWxo$GVdO4m>)KHt0ek7f+6f8q2N4o{tJEQVT=ALLDRbu! zQiq(5WaLDIP{yzSrqge~2<18{bqFh)pC$IqnuHW(Bq5&N#c6eLH%>k}+Y%Ww@qgg3 z1_9g)9(of$Y3UfinIhNDMYE!JIBF<*`f#dEF74mW79=hO zs9dQx7K;sPkKcC`1iEp}0p;^xfr7Q4!TWLFqp3DY-L!^@R{qXjTOp$-5Cv=C2e^7{ zKk1T_Q=g*k8mXAe@^i=p!Dv2+nty{8#hF%Zl7BV^iWL`Gy)RY0mj!?n9q$7%$f%GQ z%qJZJ>mOX%b@=$X%Bg!47{db%Xyr2(|# zPIg&PlqrxHg3-?{7F|+!As%kp2`-W?tMo>3Yi&Zt0J*p!Ix?Ug2Sq)ENPn>Ol)#+$ z<-26Cl$XJEj6#r=5$<0HA^GQyb7~skYBDKoWk;TFOBdEHC#2!r@5(tIOyxy|R7ud5 z`9jk7F8sM2)+S^qkdD#8H+62wZ2cDEQqk6sKpQr|9U0JaC@`AJOG~P9P*^~@QDJoc z^M%OHnn|kJg) z&z{t}uJHpo8Bko;>((TsA8-~y5Wby*x=s^6G3f~=L;|eybEHlWX`aFmL*MFC;0k`5M2|((O z7$XBHpp}N*;5LnhV<9XMDe?p<7_(CG*?PEN9x#Qto` zIIKdeR4wGe@h~6=aFtqRuN#kSyua39i!^mA87g_vM=9>Z*Xii6j<`=pCS`w@dT?hB zAVPw?q`QuEYR6ZPu*HL;f)H&N8|(wydXWf`?p-5ytOR0U-|-#kGX-BBQzV>Lp59>xV%gbqXvO z1dm1gJ&OzwkQ5Fgyzs0{3I^L~aa|Jza&@n`u2-!!C*fbo?0>n%aj18Dx?WO1)g|m1 zU-s#8!=?f51C@SLieEm5l2IsTZr@0SsflE)#LONJ*C$q)x?vTWB2m+au~$I$h?o+K zfS*sOYXG+FJlt{8HT)!xEsdg|$?;2?)?FY5N`Q!;KEK``Djz1_WY(daMk# znusyo>EhP^8hC*cVxgCtuNNCFTx z*c}RwBz(dJ>V;#sv>)S z;V6)KCz1xS8U$Tje;Yyc^}E>JBz?7rR0yZvziFzZ;oSI?jx!I?%h1U^mL%n)TJ!h^ zq{*1M<9{d8C#5-8FipA>@7qXcKX{dbczF(61%l-e1lml)I6vLqqz2njXa4Ju{S7oLO& zZ`fS+s&^0*gvhvM^T-rQ`EDgFjQh0|**dD~WE5-lX}iOXjAaU`k>qbaTj2qnLGjO3(DE{NwglS_a{7E|8&lPF1xG0%3kmo!RRvr`!1oRV<9EY2}gMV*6dgf44BXNFjz|#2dX(6X5MJhC1HcS`FaY0qs&dnvvoG=I>`fN1#H&S z%1%Jsaggl9O@lzci%b#B!9%ePcqHR`eBD~6YLVTwW>RG2nhdGC8fajZD@d2*9DhFm zk|l-5-%G{kT+G^FG~}k?XVK2?MDWCV2|kX%%xg{+xAzF27jR!HJYbx5p4PMxQ^Ck>5%Z}A7N6Yt#3RTux56R z8C&WuE^(tMT064kDg)qQa}mvy5LtxlwjU|9mh z1VQ=y6G~)~L0t7fE3bz<;v$x%UogVIrO+o@!6GFA31}_>JjesMk1KBOBKSK?yuj~J znfIn^anVMu2?)V8g;3n%Vt;dPh{-diK?t|PRc>{O9QQQsou%zidCc;=LN=u}p&vvSuNX#%7A$I|n z3|5vDV(_Omi@)rBTQT}&REkeG0p9GonAoh{o5@6hJ1fQ9NjhBVIe%`gTrV#-{Ilg{ zgvKhjgAzVjz;Q6p!vPjvWsZN0IU9_L#wkr)SJIm0wbT%^5NO#&8EGln`FgDXLSJhN zSwKKs30n*+f5n@qxB64)ldUl*B(uc8kcESuHKrSenlsaiHj)r&U36|j#TQekx+H!5 z4gxv*YYEie23SQ$DSzN#VW^I0m`VAiyk-FNE|~9`%N^d(zOJJD=1@Mb;OA%K*JL_D zCwiNckWk}uc(Ib0xf7{2$%{FL1q!{C)$h`ZM^+=j)}4bk(p>2Z7vI2#Xe|^@(^URsjToCnIQbR+>=Kr{pU4UNA?<4$vnojOcmufQ);G;I+U*- zIe@b{3E8CL=6~4bq^$dlZnj_zF}J`mO$+5u=Ry+ez2F8bDc{8e<*P>;(7>F8d;^%8 zrb=$!wHXy>r>RhWF6BgqP}={#9ctb>nBKEhh2q*pMC#WFKKQ_Iy4|tAi?|oe9q@=h z)W;R=bSED9GEu~&anUG~OSddGnf*+Wn|8C_JfS6PyV_b{B-&Pvdia@}kP){85k6elAJO_J7dCv#i|?`me&#|k1sisvravVcR^7DCL6ulwZbJIoG#TDZ21dOgX5KKmmJmZm z2ybM?oQQOyy;a}SWJ_%RB%1^$3*0wDQP>8x%6|dUCk4rIynCxQIseJqa9=m&zDApy z5O14}70PsL^o${dRdZB_pmp9J^-!%#me{IftDEY38)$AqJZ+8;CPNC&IKSCsfN+Bn zT?3wviJCe96HTR63(~x+*qh>vSfcv=9yK>1cLRks6f;n#$V&M5kLHu1lC;_n^$w@H z{D0ZQ{n}SK0t7`W>Y~QVyuT`RGB+X4z*XC^5OGtnZ@o;$NW{3loc4;llR`AGy#rQ@ z{9dsLPrb{MfqS>P326vq*hJju&eNu7vGgNjBriIWtpd>2BQ1D3m~rv9HB1Pf0?|R$ zJzfEtT4IfFnDv9W%pwN+xMC$?x{=!p0)Kg}*Lf^TNcq+ey|d3LW6L^Tc!2|JcmnHE z@OHQ>)oq&uz`+uPEV42oa3?ad(>H%lMhI_rj+sBI?pkEmCe$&i+bNNj+9%QsNVgs# z()EoP^9UIsQ1W`ts)Bv*rMe{jr!^p4H6i;gxtnUP)d=z89u#l-H&Eb`)+ilhiGK@u zry@z8q^wizpm8YEx4}NLdL?zeelinQyoCuc z)%UvI(p#k`S%Z)uPwvPXwE84vogb&g+${9b9#$4R|3%U#ID!@=s=n7xt#QJ`F^dx- z+Yjp8Iu|o{B>gIf#|RnHDC7z~^nWQgy{Fy9%o%wz2>FLK2zk!3gvc!7LEi>g33-7k zOIcnHr?gn?##z#Z?^mKm>4qs|2U&pERLI=lQ6|H3B97=i6;DnyQiZwJI+!NFqJ+5L z*nZ%w959oHEzuL`#LK<$T0_E)D&E|m6}W>G;ll?~kpM(Zdy@C1VC1vqB!8}2PCA5F z#qVyZ`d-Idi;%}HM~F-~9q!wTAaGl8*x4lQ6A;BpJksBjbO?&bOx`0B_KXLe!iFGS zf>X8O>QvwB^VU4z>_^KGA~7IrP^0$^XWyT0@PRT|(O&CG5m>&8tW5R2 z_Om7-K9(Uw7Gj5w>{e;}Sbrd1;{_7zva$oWk{T(=&cqI{Mu=6a@734Z=Q6Ig93kG- zHg)#kQ-VTzx>6~EyBaA-h`m{pQ=Zl)!~-Zcdkk^AF-7ZA!I*;e1~|^EVcy1(N>jx0P19=kvmZ#8n@VO3|K=qHc{?7Jty#R=yi5+uXB+ zfqbrt17!vLNQ&^vcWghxYAL7NCZi zO_Adt#kE!UvCi7k8Sx7&Fgb-RNScfhW4lxGzn3y0NvjuQo7)^5A~S(E{+xK_aZUij z26=GibkMgxAA}s_!GAlkxWz8VL;+2eBW7Fi_0=u`3bnQGnTof-B$c=?S6L9ZyEXrt z3qLtbMidSO%h5^ggb0j&Ij8plvo0h3+~&Sl&>C%dQLNRGXOrK9SaI<3pA1>RgBlwY z?fF`_KZ<~(z4zLG!ALy@QQ>Rr3dHOaWAb$hc47>^SQf~#;CuPem zM!z6D`+&vOX!_*$4r}Kq#;h7zy0_XZ^Ak8Q2880r&!rc1;^c$_$kR z!~$!9$v`K&Moe#lD5IGSKp7AYtWv7}ws!5AkCc0XrN9v&6DS1IfqlR-UKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000)8Nkl*Q~pV#!WR*n8MUM6vaZ7CMY0H6p*AuLDSNV4Pt{;GE|ij}Fd# zpU=HdyU)EZ0iaH?9qCj;Cy-9*1kwqlQ#yhC-hgmM9Zkk^MlW(kn>eHGlC0;9p5%<& zIir4@(W9KvBF^Yp&M1I0>SC$!{9b|d;f%I%Mj4zD_&9=YBthpx(2XGIM-wm@liipHQrNFhOolP`D5@UIhIpg3ed^dq*MKdkF@A@p;2|f_exc zq(6cC6SyB;;*7jHfwWHCIim+SqothDF+-qGzRaEw@qjzdZ(oVa$G<^wOaw}kV^EqH zg~F2>@xk zP=FG(qk_Nd5RNwDsrgf*m1C6H3zasz{ z%Nf1I8U2kjQgB8&_2YU&AVKLy&<^j0%zax>RdlUI#gwHdBWd$Ogt!ayq;w^u@7a1s zAQ~?r*TR*phLN#vCzS5OhtvlG0J%RNguFLFKZd{=8EhHIbDUACG5PW(sD~01u40C3 zeF&iwh4T%YG7vX&(psgYtD2+GcoRbU5>x{SC5dNR1j5IO6{Q|R$okI?lfI+6tQ0Bl zy$od^;j0u*je!6_?9!(o>uEGy8*LHD7lr^~R^$%C7ijM#L`-)^^pdGa-}4uoeLeso z{RtXxLg5Kjo6JbYzHLyt5rVrBQa{|-G>|X_RD*@{ZIFjdcSGujuOeUet;j=?qEVU@ zjiRV9a9-ZTV?)u0|q zNZPy*`LZJ@O^QZMMY-`I&aL?)juGMHV_vAOu5J^M8|UMpA594ELWo~IugT98=!2jd zU^FRckg4|;D^}}G(2o?N@f10S+(AqhgMZ!c$a@pct(o8C_hcX02bsO`d(^f9WC~{# zr@dD^!1dGmW|bMc;$Z}l$e623i`oRFC@K`1VM0-{%VswDnbMR5XuO4qY@#mJu$JW` zpfve8e}b$B;rs`0H#?r_C9~_BuC=xRDer!-O+ez` zdRt+Ycd~_(P%Su}WqUEA9ZK^!!<<28w8| ztxz=Hgp;#8kachuGQNBtIp2MOqO%6n+$?YKU0Gl65#jq-0%sK5-aww>jB*YBBBwaN zeND?N#I>%hA+sk$KI(<6|Lj8P`FPY+RW@W$UWVehNL>8KMubju5uxT-VM>&)&6}(` z=Y9-o4-o+9M%7huO%?rEu}b7U3Bg^3k5LUKgim!w^5#V-O^K~DU5g%rte4Srz1p5Y zW^hI++)vb#)I*zJ;xRAJgu=C+qxBPYCs{A?;3sCd;q3DPh+1?%&OAL9;Zq%<_7I@e zLmE0;g%cre)l+v|Sml?}5WDmb26%(xw$ATfCC^Q%L>bRh*hT5{7^-&<-Q$ z$99Dw&<+NF;p9cQ+Xd&=K8c(odr){%gVMw(lqN-?Cf zz13h6*35&#Nvz83L%Z7qH*WP@k=wWsN>dV1bF&m0Pm$YjKPusjhFTkl8)x+6?Y20$ zJ0We?#wIe{3kaRq7eV((nRF{1txmG%8gJpOgS!f4=zIxL3j=Za*ndr%;mIObk@X@Z ztbMx81<1;4R}eA14}K*=%GNhUHQ~!0kkwg&qt*uE$Qd1Kpg2FNu;)#s%;`W(r2oTDSd1X!uRaph% zRzHH!3Ehmled@s?Z!q{v{>Xu#8)1iYZ_P%|_j^$s6M^!qG~CR)gz~HlD2|In-Y*A{ zwDEcHaor)a7pq1!kZ>*hcncx1sCUVG6EeQoY8H^#Wi#;$H4MW`63-Yb&fJf#aYloz zSt>Ldyc}95dZodR2Jr&R;j&Fg5)iW zp>!8;bw0gtGdHcpig3sPLiqH7sJvd#CKv_!V6hq2yK$m=@w2T6?q-YA4djcQl%=KUoXN+GZWGOwgE z^f7J;qu4)#DezZ`Q!iAt6-US!_?=6&`k86I6wKceYT8D&nbD?w> zrqK{6RSuRnt{fD{L_jr2B+cB9@;Rfv)&R1sSs;EQ!PEM5Ls>@39kS|7=*MoT)|WbXd}!CeX5uP1Ki5dY>=W&ugv@dkpri0?1YJm1*doX|A@Qhx&JMv9rQa1x4_JCZTiPh|&+@lJdDev{w`xNt^oMFt)1{o&h{0df$ujqU()>QoSq{}e5yEpn%I1t* zEeT|XDT7wJ5>Cz<1)#P?Ai5Ev<4`-I8w&W*R>3GuK7+8ygAn2_BDLm#0KkR6ZN_nG zxU1M|7y+X0rW@&m%7UDhSMBz7qDmo>;e(b0GTEdD@DmO`xRDy)%ASBQu^;10;Ec9e3P>N$sH8OoLZv&Q zKp)(=Y2d|KklCA84ZgLyWW5N{FF$UwvTAEp{0Oyt$#egRHey!5Hj}dY9fbt3&%<7kqT(Nqt*Hlju9bwi+RbV>EJ4H zBQ;(q|C2u>Zq*|=@lb#0Mu^B#W-m1k`ZU^Zc*>HUi}9@mq8>ufk8woBs!@9ov|hq#s|JXwu&kHp z2#I>ZAJo&i- zv~Hhn{6v|AGZ$1`%`rpy z#VCpnL(c#HiIn%3BkE6+5O%+PW955F%4h8=@s>Ux@`+iAoK&K3&cQdz>Wd3;{j?t0 zhdxKj)}@GgaWca0w-*P5q_VlvO=Q?Mp!}vJ%+f%%nL9}R7?Hupt$ZBC(P5}6Ek;e{ zO;i?MLD3llvJZcbO z;U{1y`v^%`KNmMHB(y55&X*m5dazW9_A`4-ODzp#ip|21f(2O*Lip5yD2nDSH%Vls zqNcp8$$z`}*(PySllkMCZ)qTYHtQ>-?bi6$<^Z*KK8}6jA#WtCYr19W#)SmqQ8zQk z_L!xC_}Jpg(D{mlGj+!r6T4Popc*9FP~%oSirSinU5`~I*AX_wS)BhcZ+!P#8pr_7 zsN9x(hJLi@girhUZIk^(#@-!}JBm;@xGN!IhIfN2Kq?EbAZ&8)#{2%Qmr<4m;>;Oc zx1|*l+?|m4&P%Ow+)*z+2!%_Xxs&%MXuR!kE$mlg6W(1gS>@6MwkVKZoKc=l_>DlZ zZF+XWj8?%YiH}Bb*Sb?#3KvloI7UJ)|FREd>B-_22w$_tSjZVUS>raKNLz5?ssRK; zfEy|ca$9-4K!b$!&*I`|8*u5X9mqcX59A#^h^x9|$d`SKl7urTFa(JcU*?r2Sjhp8|Buu8<26L29 z($iK4A{{@t)6uzvbGBvuKwY6wHHdKHVb2zCyGvO6+}!~3*Y*JNM{5JocoRa$ z_dvzvhQ|-8ONvk!sX^MVwaAwrLDtuw;_L!{=*QTJ20SMLQ$JE{h80DfZ2nC8iihiN zG-|u7Yp;8Il~x7fMF_jk830gmB?rly7bE7SX$ZTo7ed?#zYyVyCb-@;AD57QWDnw2 zJ_J6_4sr*=Pee%Hy{q|5e&Ga!^fh~|i`omw1J(qh_8>$&*iV!=GEx!LMU+o8UZOkl zm47{Af%sYkO*-n zT-6*is|&L7YCb|I*hAxO_E^Wa_ucP%tp~*KwnLqh5OfbAY>FGIN{Y+^Qg$KnZf#Ea zv^S7poKc0veTXL^e5z}MJAtzge<`j`GV>w=04R<<0qt%6zai*^xf~94a9gqig`U^S2&~IwgAN4_|g^&?hR2hZ^g@>n*4Ug<4;4kms22i}`L7R=`{RCO?A?a6ookW&?qZyKYc675c>rgg^GD?4 z!w^2r4WZ+^fsYlnFx6nGNlv;ZO5r43G22h-$uh46=!7i+>CPFYS!0t*KUS3DWxd4J z7fLtLfq3gO8D$@#VAUXT`;T^*sDGvCx`B3i|?R{ z?!aB^<~Z{Sw)#@A`M(ngH#wtIoYC9Oy|&d>fRMC}`C9`}#2KkLqxYm;DE@;|0sM2*j5&s%ZxRrP7<#wsS_a>lgg2DYgiNq*-Z=Jm45- zw23pCUcbQCo?@#&23nwVK2th+{D!n4)WsG6bfovGzh)+YM9%1dbaro)Eh@jG0U>EN zo1*+`&gcwhv|GyhJvs`2js}FJ=;lMt=p<*9FCA{l<&1Qk(MO!ooZBz7@5pl3fpm&> rq*Do+l{k^dh60Be!H*vG?^00000NkvXXu0mjfSZ+WO