From 17db9b03115d265bb33225eaef8078e27f868c3f Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Thu, 25 May 2023 20:10:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duangavin123 --- zh-cn/third-party-cases/Readme-CN.md | 1 + .../third-party-cases/figures/waterwaves.gif | Bin 0 -> 78125 bytes .../third-party-cases/water-wave-animation.md | 302 ++++++++++++++++++ 3 files changed, 303 insertions(+) create mode 100644 zh-cn/third-party-cases/figures/waterwaves.gif create mode 100644 zh-cn/third-party-cases/water-wave-animation.md diff --git a/zh-cn/third-party-cases/Readme-CN.md b/zh-cn/third-party-cases/Readme-CN.md index 928a7d1d27..a340c39d63 100644 --- a/zh-cn/third-party-cases/Readme-CN.md +++ b/zh-cn/third-party-cases/Readme-CN.md @@ -20,6 +20,7 @@ - [如何实现列表的二级联动](interact-lists.md) - [时钟开发示例](time-styles-shift.md) - [弹簧动画开发](how-to-develop-spring-animation.md) +- [水波纹动画开发](water-wave-animation.md) ### 网络管理 - [如何请求并加载网络图片](how-to-load-images-from-internet.md) diff --git a/zh-cn/third-party-cases/figures/waterwaves.gif b/zh-cn/third-party-cases/figures/waterwaves.gif new file mode 100644 index 0000000000000000000000000000000000000000..b285e8e5590fb883eb7036196a8604af9aa67827 GIT binary patch literal 78125 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

YUcKNR83pC2B-*{*MK@d);MmM=dp*5Vz@yqB zNvVd}63<}R&JD&EuY=fl!z&d#1iZetJW{GBc;Lg#+Xvr;ONu+v8<%^c9yPMSyZ%)9 z+os5Jq*RM_>-Wetjy7~*#+t2WT&PtWuna`=T!Q2$)PKxu)g^6g>@OaZBwwd9P89uNx^LIkjN7fHBBFr zLi$!l+mq~0qSI^(5-N#)@oK%zfPcmS~Z%E~q__qtcM6`QTVL%hKbh%15 zR{KoL6G7W}@qomqU++f*-m{&vn)su#{=C(rYvNJUi9?rPPMC@4%*o{0zKv60_8Vqx zjVwc~N=~>QDyqRNt+rCV)6ec-bW6uE`ezoGy0FFfh2I!AyhTV~m&PQQkxus1B<%vL zDL^9x4N0Qw?D9!NbimF&C$T`BWYo+t*+V}T5)BhQ%GM;M1(5o-_Bs@Lm$TSJ)hY{zUf%wQ$0KR?dy@RzEs+>_BBSD_AekzzoMln?- zxH#!%9^7|MUO+3r%#C0u%h{#^b(ka_H{DgNi<*S^3l_M$4B=b^R};NOt)*PoP${se zD<`t1rPu>y<3-tsW$?Zfs$_@4P8aW!kQCYb&Nk5`)tr2lk7ho6)|6?m9m=Xbi5e!9 zySXmOA_}V2n=sFtw28JWNlHz$q07jgs4V>X!>ST0vO;ePD=9sU;GXB=NA}N_xjNNI+46aS$m2#2vo=mLg zu?>9&#s<`Mn<#ax+TTp1VS!(|3zL{H0-k2x&5bo{=Fql4q3h1NTDvFNQsl?2+mQcrc40qAvTq&${Qn2uIj%+@3rKIJL!Q;!{I}#tIv0;FHcP_lV75_GfTfgy ztV!LIe@c!xj?OyQ{8MtIar>@d?L+$ zH#2aY)bbPMfD3r^PW`10HwOI5Ue8k>SIeipJqD$hDW6|l8s-h=iVt|s&1>63E>8MS97l68V@Z+Ph>b;wsg`j&m6IQ0yoslR&gFuE$F zE?i^iR<)WV?&OPSra&}v?rD6N1Lf;0gph=Ppu@S@dUI9#QsMB++4pVjzn%WFbD``r zXE;mZ4c;NtZnoP#O{+I7eEBr(w#d=Hd)w)sWLOdY5{-q|ozam5e5%D=cgd$N9`TW3 z*I+;zEGGVv7MRf$IMa7bAnBFH2a;6!Hs}B|v%uEUvt=$HkF$gOVN%&y1#Q{3< zw?m=bnl}eIykv-yD6F@Mhju|E?jZtVu{4X4D`c$AyRav+k^}_ zQNeG1N`}`Dsc;_mT4+8`rhHqnG>17#rSjZXQt*|%;_qE{rLBN?2r; zI_u`(l8glsin7(G%RzE9^^5n?$va>2Pa033mW$3dS(Jp~CtD>u5|_@&bv%M_+Pmz{ zphHrMxE?BG?>+?pqptb>%7Bl;V!$EIxx+H0$R1cRfCZ>LWSurx)mS3G$4lEjZvXPY ziRE$PlJfdbX0fYg^~nojl|2n}$}ca!Nvf`}mWP9@C69kp(OZNEV@YEt7K!|B&xwRco2E!Qg(UyO8X)LpqvDz|>fyUi#bdZmg# ze)2v_-W7M)h^wh2BMP(Xli(vIAotw$JZY4Xs<&_teKro35}*28v(57@%Rqzis{P)f zSF;)!oGpwDg!ipypP)qPysR2^1^fFyL?XTG*|tMdToSq@<3dm0l{CJnPLveb`qmZC z>-cm4P-Xg~msNw}e%r7Cs2Ao1BZi|N8@TKA%s%FZ-D1Z z_hgKSepjmg!l5z3xv+OIqFBfYC3iL39%Ee#$o}$B>!<@jES_95~nma{pIsf51@w;3#?yI4HyXPp*saCl}e?)s^q%>n7u( z{{MO6du@c7!& zfrQ&GG%(qM{{8{hpo9I^V(GC8MPtL1gVLcio9qJRAA$)B!?k#!E9|Qe<%F&2D5Y&0 z%%SksMWYO}x6h<48O4=my0dr`m<>Q`xYpqvN#&_K){lJfUUCjm{5p;?L>ffAUv9Xc1=8te)eoP%_9M~(k$2S@hznU8w_==7xqo!C?%QIjm4dcJ%8-!U`!HLRn$0N z#^sYQ)^&~)^-P6dz=Nsr%SBe{sn0FfJX?(^Np3;n38`yV#W|@yI#D@kYRv~gl}>^I zByOqOMMn+SH=W2%Q$8|LX;(h*lCvGQ=Dgeuyo)R)?vIUFT5OJ0f1qh$e({TNTI(t*P?vU;r{WR zMdIz$3t12IknH8evht#E-ij*lszPN!&mBxv^e175%EtR<7ay|575cTBAa@6<^Mn=q z3Ec`8(Y04~70Jp2)^8VxsYq8P^Xe|ldV6^S#`CSE52diO$h2{aH}Xcw@5V{WabJ30Wnd; z4%t4D0YpAPpfyShoZ|)=kqi8Z|Dg{4J*3G14nWue$M@e|oXo_Lvhc=1&i}V?I1Ucd z?g{<3aM-{*B&&a@{MchR^Td#DR43zr*v(qNrx!XGo>>fO&pdB!lP%aMY8@h5L@o;{ z`97w0uE#c8SVO_OUct;V9w4_o4=z)DX!|CyCxkO&xb{4+%qLxi?;}Q3ZcecFWJZmZ~s7`|AXcy=RD`VXtHZ-ynW&L^RXCov19s+yig&0;xN#yR|3n3u zG?^+RTjuU>w*#F#;UFwD5zCp_PRUOBQY2|_K7E36Yi{maqRefQx%Zj4>V_djzZSg5 z1>1L=gFx)|udlZsg)ENWF)(?C#SQ-XbFjCt?~v_GAtQ6~J?%c9ow8TIm6{*yGG&+D z>VI3u@)DV2m*Q0Fzdn?VWhs;wA*(pugTp~z@BVVunyf9A%= zAEuN0rVe#%H`JC)y>&joWbWh+EnDZ5M*Jl1)F`6gupu^nn#M~P3|O#nUV75btyT26 zPQsLZ?f;?cJpAEYyLbN>gVCb*HZyt+qxTsGqYpt4M6@6xdY6peW%L@+TOvUaQnfH@ z^k_*$3qqm?kvOyWe&65O=bX>^7oN|v?t9(W`d-&Ub{H-0VPUH0V+7JJc+Y@N98EKU zRC)4#En@W?F)YGX>4$3mt1ilC%IMz9gi9PC%c$%jptH_sKm)_nDo40Vw5Lu-{yNtu~VQf+E}>JB9U9> zx54u#x*Z@UN>4${hU;%5%eoku8Iaa56L)MY519)U+V1h!R2{Q>k9Q}@ipSM@%n~(W z?Wa|bci4q93$F~J!5(8iXN&X_U+fmarzaX=$$2p4q} z)9$V;jxiGRSj#a$OqM8^y+G^7k60$H;hbBsXG(xgYF{fCRf5zlF|?|On$3qG_e3(3wym{Le3m{G>EV@5GG zIU|y!M*JC0s|1DZj5#CO-mwcj3QPeRr+K7qlU$XNVK!-8&u-Q&?p0wDLoH+LQ`$)e zprK%drKHNn9di%RHmYta@nil1jWY<$UR#Qx9CcG#zjMFU$*G><3+PK=g;oWPBz68+ zy!@;?&_&O&RakY0_IQ7+6}$#^bGJr38-(gqAoC9EJSe3OV-O} z&)k_->Y=UwMz7=9uhctlw0f-j$kP+P%A{!>Y&{w*-Og*d__NM8oJde>kVP+~J{x7B zvz7IF+(k1GVlB0EMOOJo_--xVBb|ZJPH)eN0a6{r=M>9+FsVY`0FOBy1DwjE7L}8ddsrTsLtK|!I{c7 zX{Qt^j0Nh#^F1?-lJkefgCRR{rM^F=dyUjsKnu@3`TTl?kVXzd2$1eI85cfZQ0SL) zxUt>bQ}X+m%ModxykNjrFDs%1MPJh}E69AKnBy#=je$h-9slW~yX*b~+T(a1C^{5# zq3_`Um{|%6{ZpNxcuguW?wr&5MKHYpL!G08yRLk#i;=d4L`&u}y5h+erArVz`?F%Y zFe93N_p;3Jm8pv-6}0oS*dWr3&zkXF+EGvtz+h44A|!%-pHnYMtqi~94|!`h^+Ys% zEY|tE#k;8t3eLi@G*(KuW>lvZd1w>FwASL?=Zu?N{5BQD9{m37z|wsm0YU^iTR6_|<&3LNW4(ZF<|X5W&MUwzT!w1I#(NLeAB{U}D5?gQ&g^($0lLXnk7 zlRqouxQ%|=bsW7mdM$g$rccIdz<^;83dG^;VGsa^h2p}w9|=fJn@c{ie41wP3ME49 z7VbLsvTE81Sz->mm|A5L;4Ne%cafC0-~tQ`Q$qe~80p!l1F7_lc*JxEjX(FgtwHQ( zUA3|;lg~!7&QhTU3cdv_xEH-}(c-V^G_zEg-HB2@eYE)c?E88wDQo5`|OuKas!)_(8kt8Cl;G4#XSFlPDcMqyL3RMSJ}EA@kD#TbH>33*{|Q=1dL=VAR- znl8L_b(VV1F8Io9{md}n$-cjxB9+&a_NI9dXKk;mn9e|Tb4Fe^zMar#JD%d)!hFw} z*5I;jS(30yw?cw(8a7atkxZTp{^0dZ1H@1U?qAava-tAYLL3JCw}tvUdxb2_4=kF& zua^WDBK`xJ{HB!uJ9~v!j(9WZMB$;70T!8z`Wb&`uUv6d1E|e}qE|)pI)e71sd(m} z@HAp+Ela#=o>mjHS2TsnnHkLMopp{jxdw9{&4ldaR+Xy+I!!%uAFnndqZLt(G>Qs( zz;%^RxpAsb%y{Ve4?XK>33E=?JKq+25?}YJRwtE}S>5F~6xu*cHQ&2-A^0hk{n?v) zQ(7Dd<&J=M5Z$huGo|6{XTokxr#E=|8ORzyu z&>#amf9E29efChJizh0H`J%P{zE0B#@fmO~_b7D-KbidKsmYY>gO{AO)75_D*S52> zwGPDKWfJ19;!N_>qVRr^%~6$aOEGkrL$&_2ip?e+Mp@5GJnpNX*;S+s?BX}2)dXRaF^i3#VGyT4cOaePKbNf81aqu-!kxS^Qw#&hVQ z=cx*YJC3 zGIw0s&{lMri|Tpmr_2kU?2qcfJFS7$-**I;OdrDo%MiPfA$4R5a?QwMf#hEF<}S{KdWT->ll4;%?tMg1#^V%7fNvAUt$XYjZv|t2Fg8jIzG8W1-d}C z%P&_n_pSeP&?le>XdpJG1g<8%fsLm^$h1)qh(df^y=S<8&5 zz(5(W^k`_g{DQP=h#!ZXrL9lMWs50VEfO5%p>tF^wEtQFCGXfKDI-g9NqN1s`Zf9` zifpBIq$5MA5<*smJUknCC^zCEGa>zFu$c$vxvZY~Td zyXgCO!>S?g_?ahU#q{L%?mv{a48WXGtW<6>#upqVz%vk-z8J%PP zlgC_T#vn`F; zqZqWoH#7zo=!DqR3TQF))YjYMGBrnOYOV%#NeH{m&lN(;Wd!DR?IeB`Dw*{8a*5lD zI9&V2oT~#_L9*h#HL|ga?&n?Nb5Vz15Z-J7T<-f**{ems+L8 z)2!I|nWs9(9na~f7t4X)=B_-Nt8#hSnsSy?K74Oy_=dXS2QM}MTV&?9i|{vIHp9$# z8w`VYmvZi%YD|S@H9Ge@1&S%SXL2v~=Z_4!s@gcdYE_XDW7wFVg>l@8SM|Rl8Sv zf3$p$ii_q+i}r}>=hzBpjCs`I zL(MV9D`@j29_>IP(5c2t<_WdHe{#D7bjzVO)wXDQ-J{MHYeoI|YkSMv-Tux+?L0rFI{gtl$vVlOLNViuU>IuLNDQk zgKjTMgQq;NE$N&}TJPKwmY#Il^S>H=O_XUetI!)l@^t=B8 z_Yt)IytcF}{{bkWv~~KFv{R#5>hQ83l}Rdh-X9ABqrqv=#%eT|iTG@WNA7bGyujz6 zd~NXUd_=%Q*4~vN!n^H^cXE^O_)rhmxb3bscjYv`x2ZbgF&C0C3NV4rMPRiJo%^u9 zlrSE7H+`$y9(RTh8Kf^cSS1~7L{%K7)CF% zy_#lNxc%1Zr;|Bt=0B1qw6h=&CPM}#fFrBCyfeBW&!aS-zhb@=g7a1%EWe)(|95Gal7 zbb`XD8iRklO96A@a|CRqaGH_l?1-s6+8RyZd_9Th}Qwb60{btu+-5YbPDqn>#3h1S9*GcFznu}QXd?z`9IF|JlDN%04#6cJY z(CH$SmZ8l824z}IC|eg1=GHg`e}hQ&r}nR`M6dpxN;s&KT}mQdbEn=Wwv)BsaImex zpemcbtJ(T^+s4k3DQaY^?WvVPiaDo&>$uct2;jqVG?ecv(!+TqIkeF3cikY#Q73K@ z`&rXiKr-d~OOcGWpkjvH+s|nj*2f#?qUEPNZ+x60UD%U&t<-j>TomR}Uc@N_L>Ar^ z52mK%RE~W9Uh4xzP{+{|Jk8O(T41Y&_J^MEi;+0nu$Q-^-aY#4`KW%c`0PcU@teEq zA$DVQd=z6Z@BY^5Bm^)8Tx_g;jzXcDhmA5KSvjLAgtV+&+SMRmqVS90G}w}TB2=Kx z9nE;1cP3#DQKG|aDkdao4v$R=S;ZR<6{D9^wyLr*V%QOPSUQDM+sIwY9C;cnQY$}G z2qDC5s-`HE1eL!;dr*;$QgFGHds)hyT}$52X4#q2BeNvm0N%?`c=_0AG#s=!NnIoe zcf#vQO@zV($EPbz?}hzIpbqX_<#5Mmvoj}`v3oiZ%oDiF6XC^j6N$INRl4o5Y+7)A zSVAm-1JN@hJ9*>mHb29uFICbB;$|+`FwE4cVK@*2fbC>Xk@JIDchI+_no*o(6WFOS zOE{jaH(fYnU~OTAVSi4}5EjDeM*vYg_JIiHnj;d4QD#fu;*xr;b2ZA41dPzblN+Q| zaS^VY&`TI>C+zYc?W~p=ndm{O=gbk*T#u!j&H1z0eR1H-SMDr&smZ}f669>JsJoi& z{LJ}dAsL;Z^IVLHYVErh-2Ch}x0@xXE;my=zrA2xJ8nWpilYlRczPU--;;!Ezb>xr`QbZnH;Rdol#+jZzCqGU!fw>uHY3+SG4O%oTILrp z!2FnkTLDj>D12Yd?;xxPz;R|S%TF9GfgmB&+)kxXk4lEOiRDQ33vT3Hqr@^Wtb%`b zL~9Q?=NgitcBIo-2X~@*a?f4_C*9r3O1{T-lN(ulOi!PnkLlvfO8{BM4Ml+z8`Mxt z#a(((9JsrmH@-Bzw6XZ?14igExbp#$0)qqYb;1PW2$q}OW9IbD>J&=Ska%g{CAp}S zXh*|)Y4kYM9~cdDEsF70#*!bSZ)$W4H7a)ks-;mHzj?!*VX=uZ7FwniYgB4dEP_!R zzM*+B)cfGkH*qYBY`OT&cus4 zO4Oe+x)6umg${)u7 zfi3Ama!ncN_?k;VdlXk~2vpl$Ki^ac^eLFeJ0{EGND# zW6VxE$<%J^>b=@bhK}@vqcU^rT}JoHor4T2+iTwERbS$m4(MEWhv%?k{q}Xgw|(u;ZlTQ9fBb5ST9EP zuxuyIit!s!L!*>f7I@$dewXEr&<}^kykAa})yHFcgM9qCO|S=8Pnlj3QI*_#Eg%L6 z86&^G2mAYt751*v!KA zrh9p;+cbnjeV^`j=W=!n+z<&4y_430%8g>CU=q7viwT~q5slGyouU~)BgpDkRP$MkO32LJyJG( z@Dkw*+!RQEr~RK?S`d*?U=YA0F)C-aPgLq;!il~CWo#J|&G>gN?bmWNkW1qJJfqsI zu*d4j;XunK9L+*jsA?cjoDY#QDSsSf!VT>DKn=v@PjA5$*Uh^&;oW-1Bs9j`?Ir zEz+QHe`}gK zj)2YaLXoN+4?p}mzQLRKQ&L`w!(=1g$MRk?dJk+7N~(L3FISg7=q1Qi5&YG7<)p66L80&#mLuhokR2uKQu2^vMFjZd#kb@pY z#joln_2N787-MS?7nF|Gw*r|R;D_%9U9`XW_A)(wF2EF5ocWNfeCga|0cIq0A=p=UfvM*yfPz160xgt zj6&itzKz(6W6X=yBFamZ=FZk=Dj#E+KsYhZ1y-Igv-{ zn^-6YVV_;_$dBH==%y0NriYOLcBGFVDxWD)4SX8x@H-xP*4RBLadTnY01C);l9WV0 zsef;+rY;4Wx_NKnyWhjc+p^-t;!v`Up1!Q-xrpmO6F;}sdVh3pAaxi5Q&=MvOVmi5 zt9CAEH#05(SvfuroL1s*3hvzHVIU+S?~K$lP$~H z)E1dfbx&kU=y7~5dvW#C%M3?_y>CleYtQ0@wJK0NqhX4#=@|jQh+cc4o2+)KWh{<6 zdra^GbTwtr-UK+z(vgJUKoRpaEOp_ScW=nFO%HGTDNuK+@9ssb;o!{qCm*TeEDDY= zH?fo!CUe6-Q*0t&z%f2Sg}yW%DY8tT3<1N^`2|etHk_V~TSpEGwO-$dqV(DBSN{&f zgCUh9s9oc%l1wIaY&kTMPz2raPb&OqMCSwnegmC!B=krU8f#>oRZYcVXFr2<=v+Ns zo-^GQ&Xh|Jpia8z7}}$BN*t?F`c~LD?Y)GDIvo9US165Q&GN`j$*JxZ^r3`qStd3z zOJAxLgx%1(JSIVquC_65j`M~`z;b6_R1V#fCOr5){7$Z*Qkb@W60`RBKCm=!VH(^G zA~TN8ZLn$;h3!l}7~SaC#CBri2kSA8s+jwXFe5geDGriaZB49nd_+kNCLPPE1w~|_ zy%1WzdTY5LyL8s{ofYd{6Q<~7Jg*s{RBR1R4UFGsjlB`pvMPjm6J$=}~3k7Iti58iIFDhZ?F0gZ#v3ot5 zS5n_cIxi^noV3%r$(1*1qB4MG?UvsgA_jWuVfm3+BB=e8zJ9whDp@|wWji!`xA({* z^Au*eZzV?14N_jLG_sT<$vLrO#nKxO*xx&>d5;j%VJh>mwBon=bTKxqQ@iJEGEYT= z&8aedtFnU^W43jEhh$qg=4%P{==MVm_A=tsWEmZ2`c>+D zzr=ygKlj`fdi%(^I`I=16_xRfs5qrTj3%gFMQ0Duy+`YCoXPf?a4SYNi4iz|`2{~r zCg+*7=Uo=ff~hQjhY&U3$4aa;%&wtzx_mKz#xGsiR`*McFR6YLcS&zlG8EX^b6uX8 z6}qLX4gS_-AXn@le&;0fD1}NVSBvott^|jOaGC0{su7u0VTi!xblBY5y;piwcN3=zZ2YJYa59P?w8n1774yix~WiYDek(a zih(rvmHL2?X4l>vY3&!q1=7{V1#m7+*P{;e+7BZJq+5+Mdv@4)J}{1 z%}J{kEd8ZDyoxveR>+=xbovS+jXMb8`kZt@CDVmqR<0ezEE+aN7=vQM=2ULGY%fr1#zav#r%Rv49HDft}YDe1YWnbGu0f@b`E7MF84P1Nb=p$6xTPT(aJ z2nY0GX(|!dQ^9Mr?2}q38mtkBCEh4g! z&|GVok3RJ{1hI$4WG1>8yZZ5pq)H$N&_oeLQq))VCICoKiiVk|sflnWh$+A;Qd97W zC1OZ!=`Nf&x$8h^s@n5J{`-~IM5k0vG(Qb?7sF ze%%wpk;x}kWal)$vtvgnpAA_GZ zxHvxl)Gf{2h{S2K!yRm{d{O-FQ-x+Ez#a;gFZbq)Qf0$B_mX*=3uu-XQ^VtnIV=-f zj^}SZwC>&?dG$Iqhd+J)Rle)6Ia$D%iM(!rxh`Lt+;xA-(s;*v@@d_Z5gIOez(oYI zb;#^_T;R+#>Ic>n_K~y-UA&>c-_PGP6=bt@d)g23<4P1YREaFe z?^1w#v#RLRwJX+-o{*EAb!s8k5oxcdEI>%6&Pg#~;y%^Wrvl;HHT{QOyHp=PnTUWz z-bQGtDCQ(ml^tpW1k<`e^*Q7;s*~1xSK|$OwTbWx^X)CzvU+bw{+G#-X^GjvmuDQ7 z$bYrC$wc%|6fpX4;VR+H1Pluhk%KOxjQo0F;_3yFjErt$cFo%pwd0wk+F2q*+XI2I zFN;HyWVW)RDlJ2r46&SuSP=pgY+rDb;0%V7Id6GyRWcC$g(`mp&MQ{B-Y3Rukf|4l zP6+D833WC$HD-MeWqhe5C=OOz?NeK6<$< zx%6Ue4-AYy95K~6G-2#46Qg4V7~*6mJ@YqZG;Z=`C;;?q`HdO61=8`1KI1wqI54~= zw?yz&+7zc{V-gre7Q6aWUw}AOV{|{Kt;CUrqbCM*&(zlzgzxJF69ZS|;M1wOvvD87 zJUtLexse91yXvyvjpDN~5w_ zIR_@rx)bfMOb09{x!umB-lAGj#6$2~8^Hm+_<2 zqLNv~#wO~DZB}MmdDgj8I&hk~7baWWsA1~Lt*b6i_w=Z%Hc$4f&wMf{R{rEoNBzym z&7AtT8caVX-!giUxg}N$^ip}nRYech)pmL(do`0v4tX`c)DYiknX5h33zt)zl6In%lPrP$K^R00Enzacaelgh4h)sX-^JxAtEA13&@d+CVJC;x8u9 ze7!|6cH%vFU1Q*+4xdqDQPRlX>dQ<9lFQMpN;Z&o>oZJ*!VKh-vkO4Xtg}rV z{p28azC#5BE6i_2E@|O z3vZU6fCvbfw5=IWbATm*D;^fpP!{>-FQxLWklXDjvp6%?vmK_IyL9P90{X4o& z4q)pyOqMN|z4kzh6DR?}Rcsfz;`VM2y`IEgFY{Hey?5+4AMf>X2XF87LlY$S2?BXu z`vW31kM{>9o^MaWw}K+7$X*SYVEcJ!5y z?xwABBwXs0uDtH00(4Y5>}>&^aP7^%fW;NWsz&%1kTS7A(?2v3142$5{(~uU(Gj7K ze+tw~LK{e7(*kZoVk5Lg03)AY{cZHSq=L^W{-MnO?h)evJwP6a`k&$?n!W)%RM{XK z0;`Joi!$FJFlfcG2zxGKq%(AYLi5(>IO@Cxs|F?1J|VMWD2nz<4spwm(BlN!>wbqW zkJuy}+dQduSmdsXVN_sYa+RXBV>MXcIM5Pdtfvyfl#x1USu1Ibr@29f6utW4nVdhz z$Yy4l&@=ay-0kT>=LPKR)vb3qk684y)8%$}A{ZI2C8k41c(~cT>(Pk_CoeKsZO$~dV;y$^(pVY}#@G&?Jmuk4v+(r`TT%d(h-?X%Gs7ZLWnbNE7-`5f zBBZEjZI$TGXz~(hlzf77B}r`r@+9AEmyrOC<6uJwBeXQvfi+HuO}`QE)Eg^joB@z? z_pK%A#PdLCq&k7DV#!7cSQqJ0V4#Ilbb-}`K0BITE7k5}Hr^<$j>Sp8(?Tl>WVcIT zu>@MWxvpz(c9T%jZGiY}J6u*PJsM}5iD>Qa_~cF7!dz+z{lqZoSS*snK`m zX8YwNBjb&Z*9!o(C8UU-Ijeydt?~t%m{j9#W{MOGK>S$tK?6?Mt3j=JWKt~L(c(2t zmM2L-Y~~G#N<8Scpnac?BRpRao+o9EfnveL6mBGVSr;1XP{9}rxn;+&1_oHwpqI&* z3AgSrw1aJ#yGK>YKo_4k+QUZWC}F0q-X+r`)rx_&VI={Tzt~&Afc}e-d-psp_q7iXV}!AnkX0W zCU!tr1=yHdipi)!)Eq8S(L^!e%mt}MXN851LV!{iEJdUUJs>Ip1|5=6gO{|UWWb%Y z#J4`z@C|=acL~PxcVGzV_2#ODo5hI@y6}BI*tp@O2w(*-H8Mbue(?Ho?)30bV3ThzA}i~ryIsUEIk-29Yq1eHUdERn9>(5ptxoM zK{!E>1605mar8waXOuW@hRE`pl;$7ihKNX$iVlh}K>!MF=_Gs?&mduI~RQV}u9O{yo*wsRvhS+0HgcH>&b>fh87L7EwT_b>)6Vxg7>6DXAmC{FgGRn>f z@Y6#I#VFF^1}*1lQUo#Nt8V!BWv;+uaPZVHq`GDGGkYEkQC&3?@6w=m$a$OAlBVU5lB! zw35OBYU)fY|Nf%STm)zrwMz_l1aQ=EBACjX&v<(%fq9XdI(Zut5RzORqD>>y1K*yP zE<7x<*Kcv`#F6^0Jz9|A{C!;30Vf?ZklpF?YIc9wVJBuWd+rX1mc`c_H$LIvrxzZS zk-elMNyD6S*+_B6P(pWW#?U`NytmZz=4+OZbWr=T(}3KkkOusRt*_GU%-Ivm zDRmoOt8H({X?0$Wgeb)4-PSISd7fFaUKlr56Xwljw*Tqd6LoTPsg~m-<_51Vsma$s%T zS?W76A*NU08_wxpq!S;nS;A!V)|9)_tHa#D|mkr`Zdn>?&D}G zp%nTAEzW&>qERKBZGfPwvY&xZtrQT}A26`p&&(gL6jBT&+&hoSC^@f$Yia97;44u z7j(G0L32)xtO-awsYsRV*&ZE7$YjwhbK+lya_<=w-(&D907#E&{l}9yaoSJP!bEJY z(3;-TPzo&~@BCB(OhQZ!0*maEpBExE89k^$=Qu{{-29UzV@O$AO4m4rG$5Z$|h(ixeO7uDB3ZwH~?CnIkGa zY}EX(^$b4vW##rLD{-QFI(ws>-`Jm&`VZ&(+|oCRG`}aQr|97Z9}j6u)J`6DVCgOp z#~loLL(j9dW7G}O=ivs7iYaJHo0e}~d$t^Y*;nN;+6~L^B1gEkt=uDTb6MnX@olp`Bya$JoT zJboSfUW+vPg%{fRwSAgrpxtWe3XundPAnAnLO_(JmbA{JW>js8CCa}}18m_978^Iz zh6Lc{rYflY_rbhECyY`+vE>9j$tZt0q4qa;NI`bAoku^rIKLucy;sltdgs!KbKL3% z)1oIH8CV&edDJYR70PqKnr!;%Ig7FY3gM8;*DS&){W7XxDOQznDvy5;<0h27Llc5e ztlKzPE4t~ql8;LF@E0!m`P$`@7TpU<_qawE5qg2T^H34o)bLzd#h0?lbk(UPe^bRR z#~5Rkli8k8<=n7Z5g_`cwp8_VM2|7`CH%#1CnW^GKa#rY?nEyzgr(wD-KjjF1?VII z5^{PwdKB2Xl+-KkqH_X+Dtk<^q`Y0JO#v_i^eHM^+#n=~ywdMh+*yG0m`spREo~hu zTACCwwCX>q^eY7DzT^tRWTRel&hsj6i6FWlqXF`x$}mW_NpcEHwm|NVO~oZdH@eBB zZl_q5i1noI`XrP8uGoq^o?jUqq)On&lktnQ-+yscc^Rgvw6e`2|G|-X4t^O{TGCUv z+TN^MG2V=%0BU6`B!f9e0O7#%_iMR4h~%6LpJ4(o%Wnr(M}uY##@r`Dxmk(3VS zPkC`k6v*xbDSWBq4_ig_&zWf}T+~37w@;k9NI9X-JNFAC1Tq4cKj)>Z_T~d5K!=1x z{V4C2b~^f(89zU6GBqn*g;U}iwIWktOnR!+0JjY4H8zA#_2)*978%7ZjHa)boG7 zw~HH8D&}>SwAfU}L$Lu;sIh|e3L$rq4Q`R)0;;P@{EQBQEPqH%>#Q)^U80GcHJq`q zOusI@JvX%`-*M!H7^5~{GzCD$nFs?jQ2pR&Qu*99R>w+~C2V_BtqwPa!uisP+v+J^ z;U>Vj$F(n;#B;aNFQd4-7-iwYyz?CTDb53Vr&KWFyE#DYau_CI5h$IU5`=<)N)2bvR*ko zYOvnjxqzXJ+=f-;gqmIYPm!w7?s^VEm!)$&L^;K%pQF7tKEWohKfKro#mY}*nL z!KI0dClbG7xSIxUVgi;6u8g{KWS6EPQ4?$i-29>+BMij$n@8h#T~d?AV)x+{@Pd{e zwRE2{ov(+b{X~J`QIWfDkCJ(;#Ij7I5(CmwuYiDC=j%rr>s;H)I&_R>>~K%|B~p== z$K8{6i-X@ZDpU7R4lG#APA>N+pzSs{KMUxTU@H_}la+s%30m}vaiiEU`MPvy7? zpZ3^A*l=#p_P9BJ`LB@;<8)zZlfnll5}^)*+q-|d^T+S#7CaX{wrtR3qsmX zfb1>Ay2j6E^GDwUWgablCuSDp@*r;;AE#{v1pyO0@!^Wp*T4PYXFC}2ilifU{;z_e zqZ<@}3(^sE!3O*VeUsZ!L`JZ_p_BrHmSTViHKlH#odkO38>5U=1V$vmB<9h$iBFDV zO!T|%xBoWHzq9%eSopU@;0+*%z(w`{aeqOWE(z$F{IdvHu9gn><{ryH-~zkp=Xdv@ zsIaM<-p+~uoTRsi&@4EVwyLppivr<5z$;t?(#)AStL8|>P_ejA7PsA3BnCAWW)~}@ zfbLy-P%rJE=x6lI^Yv-dN6S)+9@cF)|J9jihI$TDA_@|H749p8zdwvDYS!Mi`NRK# zVRP}V$I9LabDRBL450EwrS8Hj|3Z}Z%is%(%LAteD-F3PcUnEpKgi2{ zLj67>FAbejcgc69D6F}UqxvYw7eM>wW|o$mjCEOPjA-`9_>&t|V=+5X?hmw|<+#KB zws;P|BwtFu$(nl7#5RZgJ)ZbbIVAA7H2q-nStbe@FY?h-=k8Bul#hKs9Y*++bX0XQ zwjv$*bFrfQ4iAgmWZZhgGZQ61f*u5jO8`SE*Zv%r=3Q3#`d;%K5=%nL4vZnm0d601 z;AccaCcap5^^^J^0{`rsR79M zB~s{}LtZ5*`GrGA6nPGCb|;uuo?S}w16n2;3`EF|7N6`1ZATop_>UkZfHAs0RRy~n znkU<0Sf!JbE4LEaY*tI20kc{ANUQydgQzJ?prhJPnn?h-gw&oK0&;cBLIcHmx=2|7 z9}|t`Ozujzt^&nN%E?r#B*6FBopiN>rAfD2{eeR4?VyfM9C8pqrXtIelLbQVGsu+% z{-(JI=pqA=@U|oM8^avbj&xj`15a93-cgYGc9Nh>*hB2g`rX1FXacy3bd?`=kDiV0 zr<&xwAp5vur(yBS`Ob9Xim(f6-{z~tcKfx+2X`HGiv&Uz7V}Skyj+mCnd#;4uha-p!bMxrvtVT;4dbb+O%0q&0o{$0|YQ zA^z;3KQJF%fBC^ZOj^^!gwzAgYKR9CZE*jX3evd&m5w@bE;S!hWDwDBj0#{VMK1++ zr5p;1$SlmB&s3w5dSg(3!gz>ve)eqJX{wRD31uoLG&KEbFOkvA~xrgBg)mRc=Wqd($ldr&w# zT&?hYV8lD@plFGvMyX$a)UWWMc*Ceh<-@>e5HXcwAv;(3hPKIIDx#<)Cbx~b3goK`Y!Me}O`-4$+yLNW`;Y%-H&2nG^9ryC(Eo1l;(j9< z0|3O$YD9NAJ$95U76dSDEGYeRKtHz5)U&M1od*2L6v;@mSubGM49a+@Z{M zlW}4XE%o{&9OKe=D{<+sgVw4>V`KbOoRZ++7^ zKWTmH;O}vyd(Lk0RIiKUCY3h@TN65xb*`{tQ)y4rKTiBs(5%$K*r>JQ_3iEFu8!}^ z1$7;gGJQSEEUyiwo`!9Bre3s{KjFzh?4;&tAGkGStbG5%en)dSX>s!!&`+n!@`;;& zeoeIE>RU*Gx7OA|oY;k4t$BDz(q89E?A=d~!hn^9XTwE4%@K8nJ8$0pXpy;S`t>_6 zL!tXr7-}eXBXBNibl{z%Rld4A>vggWrqWp2H1tEg^&1;w{-nOy4-?qN1!jj~<6sxn(7@5G0&CCKV zm(uh*lpSK#8+#WmtB+{Lw_r6y$Mtn%TvPnFT5OVmSh%!#fJZ}rNy0j|9G+K$mFSz} zwWKr%EO=74M$Xsf#5i<4)=OsHK4j68`C2$~y6Sd#I=rpacuj@HRB_}Z+Yth?8uk)nvvLsVY zAw0_AwMzT{O-k7S#z=igp}!ZUDJl?PXebO!R0BYopXsRpCh+HH#91gZ>6Z!Fzfyf_ zfDxjl;;;1W@W0}jDgMe;C3T@uBlvV`#(_Cl10VpAM`ae5@?tl0?oZ;A^Kn0qdb~CK12$F@ z`3E%dx45hRyB=P~dZGc)-mibw1Lt6@hs6G8J)&EmmT^hEAjedS%F1AZ=!w7U0cg?^ zmaC3i&y2HK63@l?tK=DGv$6IfDXngXX=>g@tBy6EV$s~z=)dgQ%17)kftgQ(q8T7K zpCX=wib-Mrv!0$BJn#n#K6A?*`#%`sQec#UK!q_@+blK6ewA)YcENq=8#6u;u26A6(fSc6qtHRWLIV4G( zbZylAN|`LZkHkf=??MpT-+`%dsPHVE&KE#kIq22R+LGpDxpN z8Ldzr-}7ZyRPa3hiC{}P-7y;1n`!hVPY>8jetM5t*1OqVIOWCdJS8-s<=M8}C#QN{ z@7nQqCb3_u9swtW(l)b%TFx9IM@elymusn31$F`Vy@>Pf(}kU2MFxp-6&s?tJi{|N zb%O)XKH@(mQEk-?@GF@D!F>!X{UOHS_u{R@FKqwOPeLw?+cP5~3!p3_KL;L;+K70Jo8862C?G#;|l%Ayr0r1=1iw$i~LP znYV6v+&kAKD(A}Z?>(t0Nmtr4j$q)Ser_+vNPVrFyJapbV`_Mlfrr8#w7bAzjn8VR zT{g4@?xq*9pZDX{!oM;IAxW4Y-s_*09ip3e_g&xTp0%{Vb8s=6a4s4S<_q-Q{cf#h zO05I?9{O;>`gza?-5WD!qPQ)ln{N!ZRTWk~I34EoZeKpj_I__WYe%_bSm)>JrdTe; z#qV8Vw?2%6I>%H>s>dGRKI*!Dr?_Trv2WzA9bci}a93Ix;W%Mt znP83~589%B%rM~tu~$6%;~l#^{jsh#$=rpIs*zZT6Ki#Jww--7$+w(!M8(Bs{!C;_ zT#TndUpMQBM4DDil0=#YZCD}+5lWF%U6{+&57`*;l`JbN8x-=bwB8Up(i788VE9kZMEuOKJBR6O$kK}DBMK(z{VODlu5oCiM4^J&Mxo2lhB7sGIdtmrJ^pt0K zAf3ef_}OF4LW)R+;1^i$J;wuUI+&!$tkHWTPM{O(lroef8Q;G>(o?HANf!jyf<~6M z`ER~ZdAJeglj!{{g$}X>NHIc!zO=5Op;cyV{Eb`1Dm)lF36c}+DDJ5Lq8)Qn%4HXs z^WB}5?-PL{Som1?`XzZpS{cs90P3MtJ|g|?qvD`4Xs^#o>u`1po8)@IS%#BEv^5q4 z?V8H%iM}F1Rb={H@tDoeJ*FfU%%MJY8FCB)CN`6J_DWfg5Eca1o_4dBVLA9?#<9Z^ z!r!S1-0_GWCf;Cxi2$%T><%bjAm6`=SY<+lKT7s&D|+Qq!%fA+Ny)S%V#eKBJ+%6z z1T&K?pny1w{&Ls>=CgbZp;9jzo!3^$CordF20*#>;c4nkG4s6$1801xXeM4+FD8jf zLgV7PMDmu_#aA6&llrv=4{x4P)ItuwrS%VzuK>(E^a>F#CRpg6ABvNFD0>r1`omQn z(6KD!1am0d3C0H6F@YdB(u?2HDs_Go{e3dGCJreKkV^l!YE&XaRTETL57=?ym}peC zskMPG)Lpb-{!F@~b3f*nKFM~!iX!PhAbHA;l~LrLzo&{9Wh>|6Q~GG0du1$zF`<&- zhVaL3y(t1-L+1)0dCx>AEZDPPPb z+BG`ZWEaAY-Y28V_9}{}p0A;@8N6T|6i~S9i_Jmioi2)(kT+c~S^=|d%=-xP?7*e8 zJS@rpg9_jBxI48>B$v_@t@YJWLw;`2=v7adk5{bCMFa9LOd4O;Ww85bHKKrMAL6Fa znM4}Au^ikgat^e~h-zWm(~3aVVYBUSYj6j+@JZ|+dmH19gvVTMM{!LXAG?HyovZ!Q zD5cFJ&7O%d9Ds1&0ZdFDj#6iKxvE;oCi43rbV=_HD%7XeVPI1rPwSguI-U6<=k?r- z{0eE84S3)pj)$P=rJc=}{I1fA)5?yj;V|9bFl>-NxyYQ>HymI|&Ccpl+dC{t_yRHh zw&~os^!DiIc@`D-sbsr2G;f`sp+b~?+6662XLq-mLu>DNFUs$38OMLPMuUL=_ca3L zf#drpC($u8ESt9fAXg2fO(FiMN<#|2(&9Q4TTbKB^kCc_-q0hN3`ZIIkLn4-BA_j6 zy;asMS_PCH9)7#lI#U`HeqC#-#x|KJDabs$EnotVyAfcqYqf*|9QqtIXIeI9Yntdm zykoP~l6ah4@lM@&r{RvsCiq@wSdd|9)6$xl%XXz(>WkKw(&LV6&W(u*Hs{QL1PtBG zd(MXZ@*<|fFF8iWY^k>+nI>9 ziF>7+b19CR|Kx`2XYtYB^!AtqeMSu0()n~j8j;9q$snP^nx2*hB@Ii9>p!>960z^# ztGtnLYnc@t3_SNDM%@wnGHj4VOeBV~mgTP`Q|xe)LckJcGNPaPC{<#(YL{pXNC9*Z zn-rA}0-N|wCf?F4M*#v*4Kh{*@L-mAxqvhY65)fSO6so75+tRC-1Sia$`dAE->+>} z6jJVKB6%~!kr=WeO^anrqGF(!aQ*-cCNhB{5wanMMsTDd0@f=-(Di=isiCq6!P0RP zxvJd44!`OY#E+rMD#uWmWNx-vo%BurgNny^VqtCx3JxqK@|mlYL4?YOyC~8LxhspR zDiKdbflvTpaBFfgxK|{b7=vz!zv?6mj9jP@6@aeOAwu=6!IlYkN-v@c4 zbPX*HA|ZPw3r2*QbpdQaAAi96j*3l(>)8O^#8)cuJ*mz-k2l%0yqH_+eV}|vL2y}~ zdpUt=f0|ddn1^StIVh15UfmmVMvWjrGPS;LK0m14?0Z=`g&-T>Iz24GfyWxwskMu| zy(e?D;JHLRfJiFKozy3T&LhNvJIXm%O+wOurCO}wkiP*~n1~B&x%p=A)EtvVaD9ZDAM3?0kX!zI+8%ddLsMg628XV zn;ZK4G33CH1-$nMDV6942}N?i0AUc3>AwK4S=%dD^{6AK86A|rO%H@=Gr?L1EH(TO zQ=}s22Z(r;-Sh8=wR3zNFW7d&!P8sl*4RXbxxaY|9U^EdnT}VU8BbBMx>C-b;ta8! zxI<^=_VzIUKz)5L=x3a0*GRR!&Ky3>5}A1nCzTl``}i6NCHqmM2F^hffRh#bM0tKB z>cR6L_aVX$GxwWIsPp`DSNf}d$p?BEYB{t2?z0fxMXfW@s{akPR3!AUAW#mbWO@7g ztg3h(gJeYj@s4Q1ziPcjIasUl6nt zzXd8hDW|8XCKDGGsDYI^0M-dTesOhR=m-LZTBa&G7Z(d2EvbDIQeYEt0T|wzY_v>I z(>R|H$xJXMUf1A@V#*Ah$jNj_aq%AE!ZuJz7 z-#|pf_9yC}xa%|3C?25wp7{m6M+$v_3_xk&Muz(38Id}QmG}$78g2L0zwS{q=+vR} zBCa?J_-AJ4@P#Ur&&V~THV}8-z%^4Jgqv@7KP~LaT83qFtc>GxaPf|1r|IHmo&0lJ zXA=>8F};Ssq#v__oqhWuw);r5ucxU~!0lR)H3`0a;%AuK=W}BSW zmdMF6vrqS?NIMw%BuTjTW(!N^;XOyB6EG*M&C|OWvaRr0|F^}FYX!1SQ8YV;8~1+0 zYVpFH@~&kG4%N$%N&Ib?8)=-|>u7HyIK48xOJJiiMQhqrH%+e)iZ1H^YE_$IgUryY zk#WwItWfTX89ve05#Z-U(Xz>_>$scTAPdX{Y@m~*a4?_|e$T(=4&<_YQ|=LnQri@# zokIK5GYua)o?kfj7Ko2LMq*zMJq7@)g$l&GizWAh?mWHwE2!hkBaw66-;9zEGqQf3 ztv>+RU*9SNn5biP5+-?emuR9#PR)I)9ioaG zc=m7AmkpN628;%dZg4!jg=*lxK5AV-z$$6OEkv+rAl)%BocU=+gMFjwt?D*E?!f-g zvqv99A3g6@!y$fhx?9KYvmr&@aIwB91if70(tXhWnRN)l3{cygIfQINj83YDeEPW4 z5ny|3pHA_RBwu5KM5+u$_1#Gn^GumKnioxNT7e5&_Nc_8$*UxQ1&FhE56P3tEsb$i zrJQsF)&YoeS({p}7>f!3T+Y_|QgZ4%SrCn`xBoUIpSS$RME*FmayS?mU(Zc*m58AP zM`ucn`cd0)a0o|jOQEEia_@ruZ3&ZXiKIPBUhK6UN}f!XB9+eH@ZyMM-s#Y%F7n>V zE6H*VnV$MAF12eW=(&h|8>tW^bJ98L@?0*au8yAo0cIqMWDNQ9TtnkInSCN108)Yi zN?LP-33jE_^K?#tKOZ0?q~=zw>~U}g&ZV=ym8g)>4jurppvr`$oQ}|5TxjMugb}K@ z5@zjA;8A3VMp0q1OpZGtJmhGy3%Iqd}8GtiHD<#vs^nolw{T#(_-daOxEw9MUBaR}BIRdtQI zxjAbkba;DtFieOhHuza-TWF*--JsFRe30oQ`^)Sy7_1k=rTOwSMbF(A_nb zx{sP4n4&9=&E4nH82{wVdV;9j?{#hu+dMp}`Qg!a-yQauV_f&Kk03pcb}^a&8b0%+W#~X{r)x*2`4&~AiE&xN`e1)7sUWAKo}74KihW+ zYYYVuO??_p-g4oT&CGX42+2k$)^&-WATyPr?hPnHJY)B5zhX7F6T#?F#nB6q}ZD(+*jcQxw!C z*Rwp_jjh2a3mF8jCfAJEn}aWo&6dd!B0j-oFqyYJa#dIr4()zx_HxhWXG@oxZF%G3 zFa4~_`%c(l#{`Xw@yWHfd{5U}znj>E1)5J8_QO{-pr46 zbOz~G%SQ&oo3}h~n8Z7+6UmtN>1AWai7xKe%ET)KR@(ZZcF%D-S zfn$gVcn&f_pkciOV-b?|Wu7j&CA>GXSfs(ylsXHnr@>>8SCNh2W+YA4C8W-pR@)9X z0FmF9f*|Tz9>NZtO*5uhK{iNfC)+Pz3PePT5p>6en$$;K{yFp3q$_Y^4IA^(a7mCC z)lBEFv}^4HA8MQwEgY~8*r-bKPWB0KDm_5-snU08W{M=;U@$H2%sR0ukAG&f^vdFy zAt#QsnlUbTK5Eq_E1k7A%Y~fetlF^(9t)ta)9B#y+nX;V(;%ma{>OeM+bG{R3}fAz&(-l8G-;i4!*2mhNhlx`QW0sHFAtLaVfK}FK2XCiYAP4R<;TngucC-gB{2dU!VUv7T!GG=Eb z=>>C-Mn(IF2<1E_t@b2s%k(7%k-1p%5mGt5w!MCy)E=&5m3i^%84Srw*#=#df64Jf zSVbKFYtI_B%Pr<(5mhU9FIHxmmU#Hce9k{c8?KxBo}Hp(Wqm?tVc}~wQnCCf7tMaC z&&Ng~0poj>kp5od-6Euv$eonF%h4QuJ z8_I*1#F;R7zHTT9G>lEPka`X5hYV^Uy#cqt*T|>4hDXX(lfoM-L^Jb^k0Zeu=iAD~ ze$*OjS$H808C2_4jl3K2}^UE#aYHE6&oC6EazmsS`t92_pC*zyhwKU`0}3Se1k z@l{BL4F*hhIXhyKm1k~#^uNTDXPnIbYp|J*iDfi!{;Bb)hUDicULc<&ciZo8VPE}k z8sFc7I})e_lKwAq3L}J0jKjQN#Tpm)$DH!FIl&{Q9aEW!G$x44`9tau6^sZ3+j^g=|`{nR$+`Al1SMWV{5B+D???+8|QA*~-*i-KAd{S>=JrHOp zmX$WBbBJZl;Ng~f_U2Qlv(+o5=kGs9%h$X+>*vWRjwjHwOLXs`^VI#A1#-L2I zBZpAY^ri2Ncu#5cLfr2N^?b=3*GL3hLP}FB zJo0*6ZMZAo#S#8lzhRYF=Zh0u+=4`z^k=onr3qnI-;Tq@wwlK^T1#ptEb%fpPKRx6 zFMZ}vbM-WDhmd^JqU4>66HF4jxHR=q7xlHc#id>;DW=)CX3T)ybRX6=xQj!@y!wqo zSymvGjOE6o^g&XXa{t6Jspmmm{u(HvU>j9!3nstX8XWq<+uYlE%K0rbvj+WJn))yX z46v#r^3}3R=xrtHi;iB8B+JAqHdN*yQ*`K;*-rJ$LeVE`=fBy6v8%mOtfBLuTFDr-4nWQux0gMCpr1Sz?R=T;XSeJ%{da4?m)IqRO%ZUDMpH9fMC>!+^ zGz`R&45U9-dx!L=JYMqO9Oo1sSG6z?`Y}xh0ZSY&kFd_>53611JfjWp&&ag@3HJl| zA3e2L2P@U|1SNTZfg1K7!Mnfz5bqYHd!_Nmu6#?|4?+{w-rCjjV zS5X3zvE!N#;v}e|y>VXKUuHvWbW)N~YN^o$K}rqzyJ7Qbx1llXNuO`D+yK&S+IRe3 z3komOBrOx9Ut%RgUBGk|{2X>Q&`acbgLRzzuGl%0VhmH6C~IZ~M>PonPI}kWk_@_}otm!3a!>)|yGyK8VbxUZ|C(IA@M9{V3wp}TCj+Erok0S&w4?PC@ zc!WI&hpr_dzE|P`9F~(`2jJ4!lw;MKRV36euON)Qhoor>-l+4miQAE31<%Hz`h^v+ zywy;dNkJAx-OmqbT`I*2>hDfW$ z%bHFlJ8zc@PShG59i2*#+O9xx)Dev3rx;TCN?p|r6YD}+R$+D(#%aUMBRMk%>|U+W zM6o!3_eqgaWzE54qLu9QlM8JXH3mwmbD~j4FV}CQS_#O8BrftWU?0TT|-RZ}L zw)C43RWV|Uj+aK~`{g_8FL5;LKj@hoFr7v9)harQnNeN*zSR{;LlwQ<7skMJq2Iv` z><(tmWAIr9yCnA1yXL3UTGM`u_Pv&L4^Vmh zzuc%~QIqMVhmkMF4fkp?svhL2xEWo!G+lNlP5Li4N*0I)9Gxo(j0E5E7mEXIaNb(R z%cLS9yEgpIRD+`vJgt+rhB4Z%a1NBq44l2qGqHbmZsP2GXRzU*dJTV*Ya@p=OB#cz z-FwI36MV4#aE0wdN|pSc@x^AZd#fw$=H_=~$1X&OpOsm(sd_eAYCx;F!^oRXEwjD0 zH#gh%?n##YnDYG3_Hz}rzV9Afy4PtP8Wmyd;5gs;xtuMY>wL}5?&qA#Ilta~xc~Fb zG$WQgAQI>p8n*qMLaln__3JQ&s&uXryl<c@6 zkEP!JZr|f$o8x^MdhfRTUZ#qe4!+3#ks8J!PTE>tyMCF_n{nk;aU}AR?avA>MS(yB z2r33`12J2S|By&K>LVk4V!umrh(#`tPG%7eXYlb&R%rmO#L1#Z&Gi3Hbog+C4ik7Q!lpIt(DkiAj3&QGsU( zn?DCXiilC&d)wL|sxfQ|>|b9!;5zbs^TZyhtcU$u*H=rOS9Yxo%-yl1m)G{&c;I?( zi?XUte1dw%s4}ZFdD&KW>&E4AqNMhe6D<5kjq_%9Y_Buo^ zFF3P&X53@94$fo@3rN{+)N zgXthQ|Sgr`6;^N_lxzcBMYhzP|fL$W%k?#hAqpfZ23WP zs?XNXN@ejg4F?Za&;CqJsN8;XefIt4u3cGy~n~WfmSpwai6DsNCUE>&E z559fgFArzMny>Il5hhe3dDVq(T{|PW?2MyOf7J%ZtUX(@(p~S)4NQy|{UHwHitFP~ z{zO7;N*EvTwjL7p99E1#dK%A!Vb|qCG>5&2WsFo{oQf^{#-CRPg^0pJ7QY+(b`O$N9hW57dGhO=F;t2- zNk^4UXD3hxsYd=u=AmJ|hHG)sk2hJgf3D|mS{ocLZS!`4KjEyZe1pkQtg^v76&%-V z5L=sPF>==)yAUX;cDYAN!CpO68mXXl@Bc%_m;#Z}dN@56Li_5pW@nx@U2uqvg;p#& zJ$!6=p*Mz-RT8B!qWjtZfqoV{=>|+^_ylOwi2O0@#{7>O99(}g^5$1@rhE#!;NoPI z-dR;{v0=PIAvMKPszSI5WBdYUnncp5l$74kv682r57emonOb`);j>NtUE6Aw5kre} z@>KF62*28roc@)~zt;hRVLg#mjpz$0x19{yozF-Vc5=<_Ek0 zLqQ3h`ZukcaX(<@#1E@T0AvmkqS+?(9Sh++&13q(Z{^{@x!zp-Po?;x@ruzuqchi?69|`dL%U%3ePBE6Q35 z>Ia6w2yieH@u5hVJe-jvb_l>h_TzCx?%vp#{UC-KN}^Jqq0Wj7aV5TLkNr>NEfWaM z_?CZi*%_h7|4Ou=9Gp`5&1E<;yO@l(7I6h1&#eU4b+mqMlrAKe5Lf&8mDc5@y|S;q z8KTEh4st{K9Q;!Yu=BG!S-YRa@(^5V-h?F&*3L}k34g6J_xJ?HnW~~fvUKZHW@vvq`8BcRkYqC(76xV&#}T)whT_=kb+%JO!Qf$6Ia2C z8f{AwVtT!o4#fD07zvgEW;O#+Ohv2Vl^}so8Sg1qzo}O`r`YLM8a*EMVl0!gcb6Wz zwD7P5TLhyNg<4M?gmu^^guHHj!NEmjC8g>(NV5bp{*e-ppY9Toied#34By?(p?j)B zD~X=~I5$IPM;`i{quu=VIPgc+wkY&ZckD0RoDHM|VrLkq0B90$QU&-EWe+go7_|I| z2?!PeLH=xOlmRsYc>u$x7@+mj*neJH9kRkoTsZ_A#jGBd28819QF|R<+(tb#ZP%Rr zw{BS6IB?$ym$6N-77{OJuKj9dBo@uQBlk}-IR*sHhyRmIj!5M$MfCjrW!f!>p7P@5Oe`uL3Ngf{Ld-0 z)bIS?k}#HZu~b!lmK1^&J>{4i8alqy=+X~-JB`r#9Q*1nnVGq{kCjgEy?U@8--uB` z{ZH8g0bxK~j39IXTEq~z-Op2U?2hVbg}GpYU7AC8Dh=^kA70|laaEZx5pNX@xxfDj z-QPGqJ^}%-0Js{VjRYy5U*OXPfBwY$&a)HL_xs z_m^f~U#IcTM#K6Dx777ZJXy!tVEhiiHBf_8p6UCETgmEX@o`_}lt&bH2KsV_Ti2dM z3MesgSgQanRn}vNPCc=%P0n=U5xo$`AWq+oH6Ab#usJ$>moH&c?!LB@K{t(UX71e0 zukUQR5|K(y!S{W}TT%{QHNv!)u8jp`xN${r%chX(Uiesv%S(SGALz5W-O!UVl@n`E zwV>>rd=;(K&c_wZa>Vbt^+9m&jo57^Fq;`$j}0n*M+pbhP$;;~o+yfoxq+|FWaK`S z;WY$-CSq$@@{TkZFy-1Xut4We&5LKG?`2&#J8*pKb?t}~ffx4y=v&I- zTq|s&QT6UT53h=)_=Q^QDuaS&^LS;zX2$@MUBBt8dg_|>AYVvr`8%cJz`HMTH^HE)khGs3?C z_av!UK{PY_hMs)N?bp(+lTFsjYG!u>-etVa#|K664k|yBS>nEuSNDOvnvXl;0Y$Ssk#-4zg0M`&t z4>D5FK%UMPHB7sSOw{ddBd1UsOp>=%#h?(FqlDSi!F_jCgjeK;;kn;co-)1js?ih> z2k(LV;0@4Tm=yp)p++Q+Oj(FaE0x??u}CyWl0ocURQ%Gxwj>sj<+swl@?Q1o#aQK| zjQHNmid!TG$!RH_x=Se?JQ*s2x%--+!$`?XU=JM@R#!w|bs*8DgXs3}vUl^O7QJ<( z!4M3UC4e|Tzb=)#&$mYS{Wa}#)i)%Uue^*23Hgy{IawTh{GM(I4ZZ&v-R%n z4Yu7;HjUIfoSx2tCc>;NlP_K-#Cs<^nqbt&E!5>wYl^dBar9w`PEP9@Ll z_v2Q`N54g;u|hG}?fqp&qp*wtZ8rGADMh^i1Up}*gE&hWbwC@D12Q=je_$FZb`KV3 zIgvFb$u9x;K}w_K8Rly{AOU*%tziBNN74gN9YX0+k`>5P7pD)fy5consPyk$X@l~` zm5W1~J%jfR6eM7A>iBS?7&MsaC}~pr(DZcpicL+;s5=2s``qwH z+myT_lYW)*I;5I?bx8`v@}iBk#a$q_Oi3s;q1B|qqXe#T4wN9lxjB3bWvBzF3|SJQ zq`8z)+po^PBpoAR3X$Vht}zgpby>x{d3xLQ z9z%7XyJAsE;3+UP6Hpi@pMPew$2yI$xsg;4e+~nXRegm>Sv_+Y(xXnk0enG<+VnEf zp2JDAQI1#EGWmECfAOxmtW}|~nWgY|k!Sq{0UE_fg;59R4#HB`Wlx&kFh1$#=Gx}J(r~F` z|Ilgiwl7#l4fp85!-MDjAe5t3&eWWP^S*R#>3P!^%={YHcBBLY=9K&-&OhAX&x?!K zW}Y@h%HT|V1#*WE1yGj~bFeQ*wz)J+%ifkGX?$BdWPd^*O!AT1S)I2Nn#FiC{;Z1- z7DqlxlPw%M`ZUPE$iL7}>zg-4Nlhq5$~HR=S($Au!=Id~YprRcJJjEqbAN852s$^~f(ro?A(5WWj+m_VL5Tm-wTEfj1@zwMUe2;o>y1{&aO&kPUjtlCp=% z^a`u197)Yy(SB~NQ`Kg3nqBiw7KOp*7^%{gIEazQk-2yM8xlBcs;k)BpO`f@tRy$c z+!Kx@p8Ue?Tq~DHK_@GurFvo-b;OwIjX>nvxd4i}aJ52Xt=d@E>(<^b;oi$Tds9wGE!r*w$TD9B?jg8&~N@*~C;O@!F`|#`)hcFJ$w%)A87@U#FsZrReM~>gANG(rN*q*(toDWiK&%JPb zK;+HPZHkC_Tj7i@T)F|m6Fhu62KL^Pk@9LgWT0pMQ6Xzae}MO_Inor9H-AM-ae*xfMwU(iN)*x;GW_?>kj3vMerMNGhLUi-WPL=#iP2QADhK zF|{EXgPS8LlFxpEn3N=Cm?a>&A)g8I*}5_DOf0oT?K}BqNsAA_=WZ(myFXx%X{_>GmY+HfOlhu0s@x1|R&4PbG7NBMYW*{pUJA(MYX8VxXsJ%$H8VaJ(1^2$sDJ*AR>xbP8vP# zTrx(pp+)o?4Oj38zK#Cu8Eydny!p_SyC+gsh0bbOG5Yxj)c&}TR2pO}!?i>9 zGQb!ZtSu#3^M(=1olf6_(#FrWCKgPrz6sZ{O}baNbfjx^BDd9+``pUp^_smz-Qoq2 z=iBZeHot-3>AHi5@eBCtDF~$2TRF=oaX5r-mp+eFNQc8l{gvGJ0=i*xkCUg>kH?wI z{@4?mve#_GGqw9M^jIPuRjg{FnxkGaI>pq{uOb4Pa+waVp#&v!m?OX&)4CmpkUjDiTpMk1>I=a@qu4zhT|n z!ZW3h){WJz=?*t9Xz~K_%($o)-JAJ4>Pz7a3*#ggZz{P4#x$Oe@HE4FOq>{>Y4`^! z4K&+;{m5_|UJ}bT4op;(b!LRPx1reAkpU+zfh7VtypQ;RCt`>QAVm4wp)wTRHGW&} z#)0>y1ZrX3a?c)Z(T3vvjRm~@`$aDrRbq6k?c@^g{RK>yiSgSPW?|k~;Fas*-`A+s z5BKlY+QlS6BT21KZo*AYa?5)V0`EM77aZ09HKnwSE0?+X{%tqxZo0S03I(cWn7ezN zTXu%``loz;G{yZ><{1Usuk5R}NPh^q61lX`P6w6~G z?LBPcm+|hvF0&$)>Xb~XS~q;@8z7jBHS;$q z@c)uQ3{TdST;#e~Q&}<-*`lAm&g@qDoS!Nx`DkQ<({ui|;O+iI(@91&Wfhtv5Y%a;v{e4s|3#Et zYPU)U82HYBN+=`FJ5hx3dj8Q;X_CNaT+ds#RcV$ddUCXFw^e35Tiw2c*Y9?XNit6u zZQEqKf>ezVx_ zul}I;nVsZ|PQ_2X9Cvc3stCEtLIL>PPmTt;Sh9S3SBtcP-xdugL!=FkMO$< zt4#?y9*4T~!)uI+o33^U7lyCRRal*EZ)nf-n=96fM!Mc@3w&zV>5x#IG-Y5^;Nly) zT2OjwHdn~_r=Xlp?F{{PKs)3YZG=#%Zygvem{O_^T}eR z(D9h?^@(hZKV$_e1yi+I^r@Y2m~>dm`IaOb4DmeUT&;!r_%;~ZGo1xmb@271jib<*)^jGMnhGT#x! zQfQ(5kx&X)pjJiHt8`eqChU|pZQjQe0QE^-sjs7hRO04bD5aVXMimjdG*m#c9l(TW z^uF+dX6gZV@M$E0Aqar?z!*lQhI=p}uBOVA_&&B6eAdvFJ3S&(004o3wX~DmPU-W5 zg3YD?F@cYs3&J)$Bx`azWhhQdG}6IrB+t^K+{Wncpa{Z^k+cO2VrHdY(D(9!7Jpd0 zW9yp+)9}`_-QPl=`AX@{15Dy2j||_Mfot`7!>)qSF<^aBTxl;wEj6a^_@zP$T7s8O zmdprGX{ncmZ9Qfcom*9n2kw&#MKpVKiZ4W|_DaGAhXugdzz}W9-#>KhWcTH5 z&=zdr4?tS<@Gm2i288Je2vn(iRl{Q6S`6}hY4Bsz#x^qNS%rq(PxFp}eKTA)SJ%le zd2#l?hg07C{`F=cL9?UWz4r1IO{_h?PtFUMI22#=h#t>daQZuW} z1y!&1`XzA>WT2RxpXVo4nxr2xsMnas*qEfLxQ(XH_*G3937h~?FMW|FrR4@JLXxt4 zjm!v#g(rB!*M|tlm0V5RhBGS+)0E%DnLMe(8>y-rI^#PUo$}PwtG1ITX^-+!g>$6+ z_}>rS$el;GHKHkd7ehO>~x~@KwitB zhSZFTWL7S}^$I?-@ii@e=gd{uLT2@B3c~kpzYsmJG@YIA62kfD`A0PwM`+tqn#(Us zOwI&&57P034B<58bAoF%X1Xel2jYT4+yIM^gRb+oh}U_tshM*!h)mYUliwe9Jow48 z`u)neY-VQm_l&W5HW6&%&4oqaBw~GduX_jmZkvK|Y@U5ECL3TxV7Pl|mM-h%{ z8zdaaSF5!U9j53GfH9^=C49L(y<<6ehN*a7ZBZ%-dXj>)Jt+gXn~@dyT^7rEY!T>7 z*Xdt%qp@grFgDzt2U9liewQ`xgsKk}2#`v0kZ}?AA4$iGjud0TrPS&q{sC{pe4!r~ zB?0i>*Pdc-r)rxLoy{$XDL1n`ri?6fcUl5t4lqd`I+shW$l%w>v)}`o2PMTr7X2%4 zcxqGYYJ|OWE9+ZJ7v)`VDf7QO(Y5w-qV(o$z*$=BK7*l71urQyeq#P*rF@?=T(PxC z?iZJ$c=k8NwuF#P^Aj-+&T@5N*A%5w={o;1)Vtb}ufIRBR{!_uSE*@P*)LSm09Dq3 zQNL@OgY@S-f9O91k33^M{o7HE^$_WD9OgFyfc1nug@49IAcA8>!mj?@9AwfA{iH9P z#h7Wx$7FLE?QJ22L-o$guG-rB}m^I&bx*?ez zOQDzRu&sn}K&|bGbW`)&1ZFNsx%=fZY$=u#QSJHcT;95a2d>l56CS4*Sqg-S)4(7I zKy4M5E@`SInxy8d!2>mQw@B&m1Y|N8(4tBN>Ym|+S?QtiIn-+UnjtGZ(oquNXaqbk z6@lAsIV>UG@Z37PP#ok0{RsSUMH?~!1hj$5BU&snc)e%j_75IncHq z6ZuMWPu3FcO}}+a_0r%IKn<#c(a(e4fmcW1r~s3?qJBJR($iXl_P5b`b=mH-kDYV^T^|&BitlB2Sdjv6^t&AXVj9u7m_y z%B-yGeUg8|UBSFhX2uEbJ#h9&jIvcaT;$B1wj8CQRM6Y$ZR(15IM9W{!*N40u>xx`h(aef)v}pD9s^pzlYdr4KJ4x1j+Ua=ebi8afbnKG# zscv^|P$>$`=*|YLAK0WmYmz0jREfA0)(V_<1T-2QQCm#W^U{hJWmq@Kyv!Q<)_LZ-`xzUc)?kp zP>g$zR7H~!8!N{avEo#-VCZ6UdR$DIbw}zjpd@~ie~bzIVLexZ&y>~V+)chZ0Jtkv zAaI4nZ?fp@ev>1&va(HtkRYH-90@oQ3V_(UIJ9{bODNh1bVv3jG36HTW)RT5H9Mwi z=s=>2-tAw=RjSic!%7@9QW&bmh1O*jw&9*4F%bvKrQ;CC^mJfA?)JF^?fp zW8#`Tzz*;Of8=y`v0aPhO@IphM2(TWE4re6p#Ex>9kvG~iU`IsAqBBxSH-_<`c?LD zo@#V#WU0>=Q+5Zi2o7R1>-DF!s3z+&8C9j$r&?XQy0x>PN>T*NRVd~lwLwSJ9b0h zXhvB0PxD+pe}iIu9O%M(BWDGLSlvmL-_`AQ5oCQqHYSc*(pYzD2n%eC=?zljq*?p$ z{2-eyYP<*fdL`?Y9uFf%!Q(ui6WTj~AI=51x14pqW!Rw%JlbYb)c2`)V>0E?J^#+( za0p{#0ujKmp%a(JazfANDV?^Hhy2!w{5NVrs$}+MQ(9_DGL!lKV-C`GSl{yPvXdh1 z#hvYfvWU+jKz%%7%L)Vadz51p*}>_U!S(_%dV*(ONle=O*Htkm!Ja=GQ}D10x?h{~ zs3OP09d7BXofiteDQcrzzi9NZ=oy}( z99M?lFQh>&#<|ol$o(JY-uw~D{{P!QXAH&|W9&O)48~StUt=)#ZEU4djWsH=Mv4Z5 z8CzrDWi4w7Nu?S~cCr>!`DMo`) zQg&7$8%1+z@Ju-x30C@eo@6s2lkwARErvVTlHIsHgE_lN|A4UmUC4XNJUE5{j{oOi zch|u=b`y{iU`q%+uNQg#G;cO;CH@J2aHsDy{K4d+VSg*oQep!E6E)L?KKk|x^WfJeJ z6ycE7mn+IO`U`tv1$$R7dA>tWGhlYCkWxB69`t^(<<`O4Xp>Au_2Q&+%i9xbm*d>{ zK$W+jJk$!Qz4X+A3KeX5`&IMoq*nHaB)VJ*Yrf=hHc3Km+$PU-89rP1iy#FQGEorg zmJ#nk?w;{Mp&7UxkLcGkz9`w561N3afvxEwwde==r;}F;2(&cVA+P?#URf~bb(kPj zf}qJ;D|zUnU7~B|qUvO-<}6Mfp+0M?jyU!;W15rNjjHSy2DZ!L*_$E-V(6iA&0ztYlM0_=fOM@fvn0VL};8t=`E|o-vp&LkDU~mE7^|Fy8Y!aS+YWM8~S(&D0 z-1lAZu&_8Y&8!-zb>A(p@l|H2=1XiPz+vEb(5mI8@XhWQ}vGOG5{D`J7i77M-o6FmchMzA}04w;!)F3rI`Cyo|=_ZCFsX1E3! zj^(WSGU&3Ee@JbR9}XbggYI^-0`9n8?NNx|H1kj&paCfUq(D;^j|?fQ-PIu*v+(c( zc!&_T%=Y+KV`tv!Qzj|yAn>&tyxnmiY40=-rP~{bZ`xz^4cykXpq=LMivS6a z8cv0m2RzW{X5hy9x*wW1wjRHswcx%(hNvPrDLrb)Ptqzvb(Ov2#0uJ{sXh^-d@^Wv zoNF`TtO#rN4LnJjB{ua_jIeRfkGK{t_dPN@37_}}#gC3H8x{E-Sqk@^>AcqJ6)To; zowcBw|7|o@KmFJSw4!{jushr=kyHh~ zF`}F1Vm(n+eh3m-uG8z5oh9-ih$i~DhUi=p#Y0_(0JUyxy7^A70YE$-b#X-d!7Se! zhNp0}bc$<{No66Ng?iGb-eGqINv~q#4G^il+*Uc=WdP?%U(Yd%oyKHN!8yQg%}VKx5f z$BSjNn;OsmL_{S_d9*|Xs{i^KcOdut?7`<4ljlF9-$@y(naQ3ZPlwA)lJj3AE?(6# z%PY0pKQdEFS$=zVDdrn(dNOfGI^sqmYP3%xu~B#G6zxqxyyyAP#cZgQ4&!^{DOIkP zm6zN6g_hFSa^y?X@u%}9=w@Hum4*=HUd?4pXkMPz`9@yh*84MKiqQW)>~|_DJws7H#MynPLm26VqwBqQzwlm?)(Q%mNoC zBW!k59=wX$S(;1$@j&k)3|CNIY#i*ZO~Mo%#9Bqfue}uqJ)juC8~yokkX2`N8V8UM zUug3$4SAif{a#Xnf=n^IJ6f2|DgwzkPq(q#tgkbslR?_=`Rf(6G2S>9!{6&sr}Sgq ztjS(%0h40cHx|7bjW*rJ7_j-M^Ch~oQ0?0nS_)%hS)VWz>+3e@Oda)5o75{ zSreb`VDm|j40kx3eSB2sZr^jGAFEyth99wLI?RRyFff}R4!TE;e6CDu0DkpHkgw&^ z+{KN44{vd6D?oc9$-4;q$XTdal8#mK_oMfW_Lc84yE*ijJXgaBW+nBVnq*)-rSwC9$#d$62WjQw z6I`wz`M779Ywex2ty?KY$%;id`#r78?vd{abxJ!hsNf&cW%?da?h;+<{KFbN-e8Uj zq;q%X9@j_ef64v!zyQZ0dlx%W3kfOP*y;W+}$ypK`;9O%?C(-hsDyuhE51V2YS5aO+7a;es8{)8YfRE zj||ck9Q<>%AF~r1Y*VWySccs8Sry?<$tu5{dfe?3Q!8v`R9vm$xX4H-NOeZIZ}XoLPAu?zlv1ZZSF z4+7w09s%P1vK@ZsCU?d|+53gvkRB!gCx@Pa4#0Ry<&rq6ObuQ(kC%}0h5K)>7-!0H z#c&o(EH_m=2*=*eVnHT;8G1L}kOnBi{)1oc(GhO@pV-P`wAWBM zJY)}P@PUamUhlJc%{9JAUxHr>gWLKX2=XrpW5fSDf79Qu?XTzg53U;g565f_B(O

yqbntp718oY>kh;HlE8imht1Y}F0@28 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 IPXhb?3snx4=>Px# literal 0 HcmV?d00001 diff --git a/zh-cn/third-party-cases/water-wave-animation.md b/zh-cn/third-party-cases/water-wave-animation.md new file mode 100644 index 0000000000..305ffd1756 --- /dev/null +++ b/zh-cn/third-party-cases/water-wave-animation.md @@ -0,0 +1,302 @@ +# 趣味动画-水波纹动画 + +## 场景介绍 +在日常应用中,水波纹的效果比较常见,例如听曲识歌,附近搜索等等,本文就以数字按键为例介绍水波纹动效的实现。 + +## 效果呈现 +本例最终效果图如下: + +![waterwaves](figures/waterwaves.gif) + +## 环境要求 +本例基于以下环境开发,开发者也可以基于其他适配的版本进行开发: +- IDE: DevEco Studio 3.1 Beta2 +- SDK: Ohos_sdk_public 3.2.11.9(API Version 9 Release) +## 实现思路 +本实例涉及到的主要特性及其实现方案如下: +* UI框架:使用Grid,GuidItem等容器组件组建UI框架。 +* 按钮渲染:通过自定义pwdBtn组件(含Column、Button、Stack、Text等关键组件以及visibility属性),进行数字按钮的渲染。 +* 按钮状态变化:设置状态变量unPressed,控制按钮的当前状态,向Column组件添加onTouch事件,监听按钮的当前状态。 + * 默认状态为按钮放开状态(unPressed为true)。 + * 当按钮按下时,更新按钮的状态(unPressed:true -> false)。 + * 当按钮放开时,更新按钮的状态(unPressed:false -> true)。 +* 按钮动画展示:使用 属性动画以及组件内转场动画 绘制按钮不同状态下的动画。 + * 当按钮按下时, 使用显式动画(animateTo)加载动画:渲染按下时的Row组件,同时加载水波的聚拢效果。 + * 当按钮放开时, 使用组件内转场加载动画:渲染放开时的Row组件,同时加载水波的扩散效果。 +## 开发步骤 +针对实现思路中所提到的内容,具体关键开发步骤如下: +1. 先通过Grid,GuidItem等容器组件将UI框架搭建起来,在GuidItem中引用步骤2中的自定义数字按钮pwdBtn构建出数字栅格。 + + 具体代码如下: + + ```ts + private pwdGrid: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, -1, 0, -1] + ... + Column() { + Grid() { + ForEach(this.pwdGrid, (item: number, index: number) => { + GridItem() { + ... + } + }, item => item) + } + .columnsTemplate('1fr 1fr 1fr') + .rowsTemplate('1fr 1fr 1fr 1fr') + .columnsGap(10) + .rowsGap(10) + .width(330) + .height(440) + }.width('100%').height('100%') + ``` + +2. 通过Column、Button、Stack、Text等关键组件以及visibility属性构建自定义数字按钮pwdBtn。 + + 具体代码如下: + + ```ts + @Component + struct pwdBtn { + ··· + build() { + Column() { + Button() { + stack(){ + ... + Text(`${this.item}`).fontSize(30) + } + ... + } + .backgroundColor('#ccc') + .type(ButtonType.Circle) + .borderRadius(100) + .width(100) + .height(100) + } + .visibility(this.item == -1 ? Visibility.Hidden : Visibility.Visible) + .borderRadius(100) + } + } + ``` + +3. 设置状态变量unPressed,监听当前数字按钮的状态,同时向Column组件添加onTouch事件,获取并更新按钮的当前状态,从而可以根据监听到的按钮状态加载对应的动画效果。 + + 具体代码块如下: + + ```ts + //状态变量unPressed,用于监听按钮按下和放开的状态 + @State unPressed: boolean = true + ... + // 添加onTouch事件,监听状态 + .onTouch((event: TouchEvent) => { + // 当按钮按下时,更新按钮的状态(unPressed:true -> false) + if (event.type == TouchType.Down) { + animateTo({ duration: 400 }, () => { + this.unPressed = !this.unPressed + this.currIndex = this.index + }) + } + // 当按钮放开时,更新按钮的状态(unPressed:false -> true) + if (event.type == TouchType.Up) { + animateTo({ duration: 400 }, () => { + this.unPressed = !this.unPressed + }) + } + }) + ``` + +4. 根据按钮组件的按下/放开状态,通过if-else语句选择插入的Row组件,并随之呈现不同的水波动画效果(按下时水波聚拢,放开时水波扩散)。 + + 具体代码块如下: + + ```ts + Stack() { + Row() { + // 判断当前按钮组件为放开状态 + if (this.unPressed && this.currIndex == this.index) { + // 插入Row组件,配置过渡效果 + Row() + .customStyle() + .backgroundColor('#fff') + // 水波纹扩散动画:从Row组件的中心点开始放大,scale{0,0}变更scale{1,1}(完整显示) + .transition({ + type: TransitionType.Insert, + opacity: 0, + scale: { x: 0, y: 0, centerY: '50%', centerX: '50%' } + }) + } + // 判断当前按钮组件为按下状态 + else if (!this.unPressed && this.currIndex == this.index) { + // 插入Row组件,配置过渡效果 + Row() + .customStyle() + .backgroundColor(this.btnColor) + .scale(this.btnScale) + .onAppear(() => { + // 水波纹聚拢动画:Row组件backgroundColor属性变更(#ccc -> #fff),插入动画过渡效果,scale{1,1}(完整显示)变化为scale{0,0} + animateTo({ duration: 300, + // 聚拢动画播放完成后,需要衔接扩散动画,Row组件backgroundColor属性变更(#fff -> #ccc),插入动画过渡效果,scale{0,0}变化为scale{1,1}(完整显示) + onFinish: () => { + this.btnColor = '#ccc' + this.btnScale = { x: 1, y: 1 } + } }, + () => { + this.btnColor = '#fff' + this.btnScale = { x: 0, y: 0 } + }) + }) + } + // 其他状态 + else { + Row() + .customStyle() + .backgroundColor('#fff') + } + } + .justifyContent(FlexAlign.Center) + .alignItems(VerticalAlign.Center) + .borderRadius(100) + Text(`${this.item}`).fontSize(30) + } + .customStyle() + ``` + +## 完整代码 +示例代码如下: + +```ts +@Entry +@Component +export default struct dragFire { + private pwdGrid: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, -1, 0, -1] + + build() { + Column() { + Grid() { + ForEach(this.pwdGrid, (item: number, index: number) => { + GridItem() { + pwdBtn({ item: item, index: index }) + } + }, item => item) + } + .columnsTemplate('1fr 1fr 1fr') + .rowsTemplate('1fr 1fr 1fr 1fr') + .columnsGap(10) + .rowsGap(10) + .width(330) + .height(440) + }.width('100%').height('100%') + } +} + + +@Component +struct pwdBtn { + private currIndex: number = -1 + //状态变量unPressed,用于控制按钮的状态 + @State unPressed: boolean = true + @State btnColor: string = '#ccc' + index: number + item: number + @State btnScale: { + x: number, + y: number + } = { x: 1, y: 1 } + + @Styles customStyle(){ + .width('100%') + .height('100%') + .borderRadius(100) + } + + build() { + Column() { + Button() { + Stack() { + Row() { + // 判断当前组件为放开状态 + if (this.unPressed && this.currIndex == this.index) { + // 插入Row组件,配置过渡效果 + Row() + .customStyle() + .backgroundColor('#fff') + // 水波纹扩散动画:Row组件backgroundColor属性变更(#fff -> #ccc),系统插入动画过渡效果,从组建的中心点开始放大,scale{0,0}变更scale{1,1} + .transition({ + type: TransitionType.Insert, + opacity: 0, + scale: { x: 0, y: 0, centerY: '50%', centerX: '50%' } + }) + } + // 判断当前组件为按下状态 + else if (!this.unPressed && this.currIndex == this.index) { + // 插入Row组件,配置过渡效果 + Row() + .customStyle() + .backgroundColor(this.btnColor) + .scale(this.btnScale) + .onAppear(() => { + // 水波纹聚拢动画:Row组件backgroundColor属性变更(#ccc -> #fff),插入动画过渡效果,scale{1,1}变化为scale{0,0} + animateTo({ duration: 300, + // 聚拢动画播放完成后,需要衔接扩散动画,此时Row组件backgroundColor属性变更(#fff -> #ccc),插入动画过渡效果,scale{0,0}变化为scale{1,1} + onFinish: () => { + this.btnColor = '#ccc' + this.btnScale = { x: 1, y: 1 } + } }, + () => { + this.btnColor = '#fff' + this.btnScale = { x: 0, y: 0 } + }) + }) + } + // 其他状态 + else { + Row() + .customStyle() + .backgroundColor('#fff') + } + } + .justifyContent(FlexAlign.Center) + .alignItems(VerticalAlign.Center) + .borderRadius(100) + + Text(`${this.item}`).fontSize(30) + } + .customStyle() + } + .stateEffect(false) + .backgroundColor('#ccc') + .type(ButtonType.Circle) + .borderRadius(100) + .width(100) + .height(100) + } + .visibility(this.item == -1 ? Visibility.Hidden : Visibility.Visible) + .borderRadius(100) + // onTouch事件,监听状态 + .onTouch((event: TouchEvent) => { + // 当按钮按下时,更新按钮的状态(unPressed:true -> false) + if (event.type == TouchType.Down) { + animateTo({ duration: 400 }, () => { + this.unPressed = !this.unPressed + this.currIndex = this.index + }) + } + // 当按钮放开时,更新按钮的状态(unPressed:false -> true) + if (event.type == TouchType.Up) { + animateTo({ duration: 400 }, () => { + this.unPressed = !this.unPressed + }) + } + }) + } +} +``` +## 参考 +[Guid](../application-dev/reference/arkui-ts/ts-container-grid.md) + +[GridItem](../application-dev/reference/arkui-ts/ts-container-griditem.md) + +[显式动画](../application-dev/reference/arkui-ts/ts-explicit-animation.md) + +[组件内转场](../application-dev/reference/arkui-ts/ts-transition-animation-component.md) + +[Stack](../application-dev/reference/arkui-ts/ts-container-stack.md) \ No newline at end of file -- GitLab