From ca36cf50b1f9a929daf26e3f001f57c9dd8dbca8 Mon Sep 17 00:00:00 2001 From: Marvin Jones Date: Fri, 26 Jun 2026 12:33:58 -0400 Subject: [PATCH] refactor(privacy_preserving_circuit): address PR review comments Bundle shared handle_* arguments into PrivateOutputHandler struct in output.rs and fix misplaced docstring on resolve_external_seed in execution_state.rs. --- .../privacy_preserving_circuit.bin | Bin 594020 -> 595336 bytes .../src/execution_state.rs | 14 +- lee/privacy_preserving_circuit/src/output.rs | 583 ++++++++---------- 3 files changed, 250 insertions(+), 347 deletions(-) diff --git a/artifacts/lee/privacy_preserving_circuit/privacy_preserving_circuit.bin b/artifacts/lee/privacy_preserving_circuit/privacy_preserving_circuit.bin index 8db9385bb1318861ef7a65f30fb4c2ea422863c4..f8f80c5151ab9407c108c1244bc6611f1890bc59 100644 GIT binary patch delta 164581 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

HKTW{X6CtiMU#(+FyfK=>JlpLh5LxN~Y)!mi z6k62mzx)Cs0_mefig?e#(npq8!O}&R*TB+6mS2WvDt;A~F0=aAVHrb~tKn6`iT#f+ zp+vAo8N35;RQw*CObx7q&2XyXkKw}=e+su${5jl4@iw>}Z1!J{%m}28gQd%Yd5pt{Vd=8qkP3eVOP5*wP2KpKZ}f7ilmK$1!nXdhGM$c~ zLXG0H93B8qRr>Sb@;0_f*}CDmibptnvBP8F_#&0zas*oy{}tY?cp|*EZCKzGc(dXg z9G>CuE$~)le|wbuf2R`6#UQm^Sin7Smf{B-{+q*(!o8IJ6Au3!{+KSY54V39W&N*3 zkS2Y?QkxQE9sk;sGl!S>m%3*ZH?J=fm^@9Yo;e2c@kJ3I&W(n9;Y;|LZh!F+hT zD&RGEv*KNFv-HrxPY!!24fT!SG-aOxXDN;!f}p1oG>3aDZUvVsZU@g)oDR=d+zH;O zxT|nR7;tt&j(Y_S1zs^+NtYy2#OnbsReT)025xJ*>>|U~el#q7YqgVgeHxB_lz>}MIa`rBX`+#eVY^?iHf;4T!7?ZOX?@neh`iOf_{|VZC=;!(pHjVZVHj||YB!Du!$lAOM zmH;yFD_ndG&ubCD(T1;rrH19kemN{PtTwzCmKuIx>`SxxjVJ<0H~KGaz*2u%`;!l5 zfA45($WJgj+yu^7`orLMM}_t+;We*@3sWh)QSl}4R>gDRTDboCzf}m5Uke>bBV(};d!>k1b87V0Vh(#yIAa11@16x^>a;r%Xh~S=q|Vy4pU9t{jlzW zBo-za6BXv_cY(5(7F-3VX4`<0yq6q)1fG{BjC~K?RQ938n*h|;j&SbmstNI-W&vfAww%Hq>on_wi(vI)6pMf^xqk_ z`hUSP1}y&@UZm{P4ok4rcZ6k(nDv+a89~rzfd%_BTwT9AvOSCbO>=4`z;g^+hv&k3 z(c9+%t~YG;)8M1&LYeGR!KV^z%17`I1k%Sg!#`me^_G{zGU_cq537a5djSqpP2G#I zUPsm{y{seO2l;LJ9IkgM19|A=N5{b)r56WBHE$R|7dT8cb=_bcK(^9L{_`Y%efb1% zfijQ)hByv}E4?_FB@XIKjC!{zz2v{c$v;==CI4zTo>gRlQgSClU_|?4O)ChJU6qNQ8&BXz1`TI7~Hlsjzm~O6ev4 z2~Pf#lwMk>cMH~k?VztR5C`KO2UjY+IG70Q{Bfn1{Es^MA6I(GzeF-<2Tv&jaqyAj z;1i`62V0%|Un;%iZ=Tw)1rLYA#P9#MMxX;|s|>`!$&Q0lm0kkq=j1;_=_UVFPX23@ zp8WB;$&Q2Tlz}){>^OK*=_P=rPW~#Tm;9eP`9D{B*58`CZH|L)lz}*Cd3eJnYy*d> zrmh{VTd;%DOa4Ai{?nA6^|z+3%yDp*G7txo90yaBURq$PlmAAgm;8T+^)#(g%=*Lq zegt~nu22r7fR(VW;gly54tvoIaw~SVvX=sPIR0vsUi{UD{$%}YOh5;Q3 zhpDEnGpqyZs`Qe7fRq2vN-qHntj`~;zm2>>%0L`UcO2ZT^x~kh-hqVG$h%$XCI55q z8nrU6cK9WDo#+$mKfl?GV3W#F4ewU`Hk{d0Ew!-jvJc@fvDCu4g?j!m5zt_aq{}`t z_Cfg)@u966Iy?*x6H6_u9kx<>$$x^A|0JcC7VGWg@0-vk>Mst)I}WaN987c^#Fbw1 zKkDRvT(7biS7CamdQ%zlKShrwX(VOyv z08Vxsoa#8}=Qub+=_P=xocz})y|ln&C;xS@Ek6igvE$%L$H7v^L6y==0G~SfKUaDQ zV4IWwo7T?tf6F!vo3ITWCYD-QH(>{*mjL>}dX}8w@R_ilHD|YB{|{45T{#B2fX5dn z9NLxcJoGk6fj2k~Z&G@x@l40xETxzH&%_-EE0lpaSm`)et@Pqxhm*fX=_P-ylm7>$ zm;CXJBN{fzk#Lw;YGK_XU6o!O3~=)QS?MK!flmHGN>BcH-E_yn&B{O=R5}iBS9%HH zIVb-rrI-9`ocu2o_=H8At$w9S6gdUIMrU9;Nn%+Z~<*>rsEF%Fq0-shfvDN4S)qL=lIw-N)J1 z*UDZ3JiJ{)f34v#)zr0x6aIqruaVatL9=+eSBh100_q5-UYQZRP$1kDo^VUZJ>aP~ zXL!8c8`z%=ubGh%d`>9#XTY0hhI|e@7w%>3hrrvhPnGf|!zBn7RE7o<;mKr>J07CH z9!{n}`5;pG7C1}sJ#aJZ#~J-1*n{QPtk|!BH&TIZhBv^=XJvSCE7*phKMu2v!N1_@ zpF>XnJvXNbaFo&agUfEsVBbg-a3$OyUSRlP$9@xBaaD#_Vf24aqXjB5`2H6>NQCF| z*~*{VCw^A@Fg~HZ8s0{RepE#ChjifLhghI=x?$HUFOPY*tF5#9+ePs;E%ngZHp zC2r+TG<-TNU%6ykaMH2lxg#Dnal0N#UTc20Tbf(~*aXY_drM3J?R#=H{ANcl%Q$RW z%FXAe)4hc$iGX&%qxPnI8%==a$CLl3bZ@lbAK~On9NvjQ z9yYUGuosp)owmUAllWosf29Yn;fjOIlevraX@=L+&jy@yd{PoJ%bwd$ng4`7U(jN7MjvA_>@c>jDu_c zlHu((_J4)tD;sSEUO1l`zDE~v*GlYn4&sp8IKx|NxZ7a%|CvoQyzP9nDF%NT%>DUX z29;@|<#4kd>2ksj^i77auw)Q0AK;7q!|>#S3~!;S@egqCZ_PVw^3oI!p4@O2JP*rjxwZv%fn!EGJ@OdQeXuvx8s=%K_7iLoqsTDt%Dn8FqQtEUf+kG z!)0pWI_VZ#=&5v%h70nysH6h7b_~8pT>Sq9mTyjJEdj~%Z^zzB6IG{sz0E@6-A+J^ zflL!|`s~Cf8odpl4tFlj@bXOoJK$-HGrTl2h^rYK@}*PTjeX9YY)*HETz)qhc}X=N zeOw}HJC9Mz$~M?!@ZnV6Y~m~4f*Ra&4}+2>op1CXzzd&bR5wZJv+kwESc)snw5*s< z3-K~rFJoVRKR2IwF}b(#*W`ivF%u68xD zOjur4>umJb!}2^}x#1oQSr=@RQ{jp5;J?Z4$o?xWP_u}I;-s(%ui)G-Up{BMpbD0k z(|egFpTQlF>Q(H9rpZ^sn{EoHS+6CGiECKtOaOO2ON+hO(Hm{-H^4L5|BLPZf6{V3 zp+L~zWOxdeuj2^@2?6eg<%`MY8GZQ*WOs#w_B~j)$e`z#MZC;D)dc)7y!7r2Z+UW} z!as=~j@z|<)eCgNwc*MXTTO(lR5qY%*3cq+#$#J#%!`b2#>{RL(3LN-U1Pt;@YAnz z9-xUCB0&qE{{{h1$bk4Xh6)Xbc~~hpe+7c^2$nL92ryW={s|9eJ5FS1>^%oBQ~JHI zJZf!c#p3nMbC%*PGDw#mQcVF{I?4l40S|!X>AFnAm2g%&KH;!UJpL_KCR)JmUW;IP z0;1G7Onry7oB{?KJ|C7xt4AAN3F|IOd$-{-~;HtO@9tT?{h1(01uixVPfj zyXgOZO3-*WE7{i>-egmQZ{Q^#!Div;`&0eG5%lR}uwFNQB*-m08Du7aw~``Ww(>uc zhY;p%&G5DweaA*T|0N%nR~SJ>qe$?09fLh6;GigPLUTguWdiyzCF1q!ND~|Vu?L}N zR@gJ%E?5uB^A3(Q*d15EI^YiR-|U_gJfvj zG~)G(FzQVg91kx{?pPndMR0X8WxZwd0V|DS?j8yW1peh!{?czBBa4qgUNGX=iDuh|c89Ud?WTM=-ZFyI^D;`SYb z2bHBlRj@qTwJuR(uLhPUB7=2C_W$nev+@{inJM5>Sf1nUWtzNuTlC?P$y*QW6Vt!i zF^2Bq%E%OO2an}6DFNLB%a_}A<~yE({l8NO9x8c`-N^(n z5teU4vs?|!H=S9&suRV%AyGDw#1-c|;UHs$6M!WcJF2geTSF6CJBw_#JWzhlt=cD;!_-M(Qmk_TS8_h~8 z^gp>M+CNg9=dZdH564{^9S|un`Cg{rq-_7z@p%3IvS{Z>LB2quut*L-=>9#I6MspN z|7^eT;^^6t{KB9BLK|{125lw&%f%`$5wm~W7y>U$Xy+2C-|I5|`0NrQTt+?pn=c{9 ziQ~xo3<3MIFXfLhV)wlK>n@B_ic7rA3H+Cc;i11oKlX2|h#s9(;NN;(Gz54S59O!tiC$>hm^b=Q`1o1V`B6Vjq?ko z`c`=U@A9$}c0r@eh<5bnJr_$U&Mv$BqVYp2Mx1d)#keafdJnmD_~;Rr=VXr?K4j1p z{82F?r)X5ph#@1ghYcT^mp>%0sHAY%N#cUxc+?+r_np0D#F&dJ28~O29yB&^ji0=N z!r?`ELx$#$99mdBEI02Y|IO>@$PL#qW?#LA-n?>3w7dVpM8+U3pFSyibZTCa1l_$~ zpZ=%j77ohhU)gD*=_0MtKi1CgFfzBmjR9o|Nc0C^dVa$KSx68;!nWJ-zARv#iRZGU2($uaWccMdP?*df6jH$Y=7Fd z(NX@cYonbR1=8#O&(}sX{Ijl$p5!%2j~$~?cmFAmUup@00eXvh6mvgAN}C9iu){sDGi zUiZAbglXBO-S^uRC4~p6aC8B zOtPb9M@y;}&W_f6z5iy)Dd|3X^!PE|i;DB|i;Hth3i69ea&nn>#rfWW^+^7Iaqvf( zr2B2CykGR-H@i0WYE|Zx*tc!`8DB=*`G?JmWe)n^W6k-+lDt9Zo}QDNGbpoPe?Pu3 z*4@8q7RQf6I>in>Vc6Kwqel#@=-&OL2^AwQ9gan2X1}t`zL_Ux4#+&SEHm>I1pHq( zBG9w?7v+t}&n_G>WMtm(!lL4#EGc)#vRf3CD9Yup;-adV^J0f3RXuc1 z?5ZSx>9etp{`~u6hx?7^$4;pF@V?mmB>(CAV}0e1!e%2!j4UY{o?lQ{Tu@LvVn}w? zPxr?jNp7A~l9Qj4pPQ4HpP!$Tlbc^u;8#5y>%K4f&IPelzscWXb6ezR7mzEjq^Kl2 zzql~BC@&|!s_JjCZV#%8AOBk&T*_XmH*^4O`(3$nAb^NQ%<;=-c*;*z4GVt+_>N@{Sps5)Xr?2M!q z|7pU;wKCSGYR~hrSdu?>RjikP!Zp!ORS!NF>y_l!E{LW3nX6*G{ijyNy8X8T(yNYo zAy(IT|C2F4_m{`#0ZzukU-sZ%{%WjK)$40x-6H<*Xi5wJ$@gMM`c<#Rruy%^7h4|R z|7M!-ol}&Zol}sPo6Arx%+Aj%DdAiegtuQ01^>lE{J>n8<>og8VVcPGaPqIHhgmdT z7vjPHcvGyv|NTd?Gn)TrJNY+#8SU$Tv?bQM#eXVu{K^kvV;IQ)*}VR$cVZXra~Ab@ zH#Xk?xh^))&)5)a?mx9I)~TIc({uJQ&Hd8ODVLnRk0K7R2eW^<2j}dK75V?JX8pSU z$ds0T)7N4PBRPZoTVIc*`RA{TP2FewQ;tk&>o}Bc+xEV&6{=culLZ!IqsJH@+Mk;36|y`RUK=!{{^r3 zm$&`{?Aqf0(zX8Ocg0%zzkf6KxL>>>)@Pq1?3f2IIU|yCjQ@w9QVyy5aziXF=@$*F zvNy)=i1)`}&>=CW=$Gbj)ufMN6-hnzd(6!J#j)>q-x3?^|F|IbJOB5e z#JcZ)+~)scFb8^SF8D7ElGq9NTc3hoo`?rHx(fF_y5hg$^k4Lgje4LhQSu)_#DDE2 zNWpJjoD1|q6#t*DgZ`r$zqS_jm5BeZmtz0p4ihdGiK9{cH(U+==83_29{+6@q`!GY z#&dr2%*xT@>DLaYp}~nG=QsCe&M)tc!C9^A7YDLO=l_< znzgR*HxKT@|LBolz19`~=5?l6kM93%ttcj2IyC;j9xC#>7w@}Af5qli zT-3ewFP)A2Gw+U-`^z4Vb!uZ;d>?mOF1tF`?jK*r`aJCSt4v8fdRZ}_IvB;>whas65%V`)B_h`L{fhRJPaOTba_SaoJv; ziuI4L3nORsz0`^gUP=I)Nyw`}Q|o3itsJkp;K;@rGt`0QbG0#3qTGM3nuvk*Sl(5r^W6OQwgH#BO>tCBMTlCTEeBhuRD_D5cI_>EKl- zv6CrxJG7s%si_}k#}qk2fPpHmAhj^)eWN4OR!|FCU&UhSzp}n-i&=F>Ue2~H0(lA= zsBscg7f6q@*E6oOz+!hin%N_Nhs4`jCi&tdx^xKI zogKz1I}EUUF_=A>c&-g(pCq2^*Dy~<8=jO#7j*owi#D)xU2e^804uv%e5YN^EG`Uf z4qMQ57Rrxyoq=~xu8Q}OxoQG-GKfpSlAGA-+-JBz;$0w+t}P|H#`<>~akUaMgl)Qd zi9UdRa`h5Y#)fvkDmJ}{ZM}L4@v*PE2Y3&9h#rXd1>${^c;6@9-xKfW#C!Li98weS zbHw{P@xE8Q9~bXu#e0`tYS`x8WC{WQvH?P4wYB!MN<917{l;jNR7ThS3MJ9lg)@c}a2YcQ81TC4{6a@bK2+^{9bmbd?RQvk?w9z@#7A%jh!pDou0OV zbuSs_h&{q?E9v1D-cG;7^pYEr-?I5~h<#8}p55{bJvHHfVetjb+vmX|@;StJPLZo^ z$57h})I%UT8=UlHZ};g}EU46$8-AKxE)!jmSCG)7yE;mKI9xfB#^6+Jr+YmsC>?9} z>Q1(*w1?ZW|LN?>(i`Y+*jJ@{9I>P9vA%hJ{V*8+`>WGXX15=^z)tpE>4?3~W|sN= z+N%)DU#?z5OLXuw+gbLUd#Ug`|HY>E%k#(fEFqe7^=gw79X%C&vY$cwwBkc$0^?n{GaFIY-RX1XPj=u2DFCjX; z^100wtA3C@Ipju%zKxw8Vq1i^lXV(8$*(;k71N|V38%+IL3SgVA4h#Df9f`S^c75lG=v&9*na;nCoA#p1E18O1@`%z($9&jAB~BPg{n0E6U$;B_{dYuVml54TV@eIYv@ z{5bhYbDv%we!C;KnROWf^L+&3`g==n4!1yYZ)5f55UU(9@W$9Wbo}hqL7ThxpNZ}P z?U}2?!Yc^0+UxA|5l=bvC|ftOXO6!ADjK|xy*@I}p}W}0k$vfUmQ^v$a$@=&P$tEe z)w_v)CCt;Nx{htG_##K!3N6NfL7c6$n6b^HMs#hiD25+yo0f<+v9Ct0^lN`Gyb*UZ z$2aeUqZFnm340NojeW(|jUMOF-e>QPo;cnkEcHGmTa4i)@@PnAp25%T`vA@i?mwaVhg&Mj5R_h|YTuOJipzUE|P`S-}l?Ihq^D+)M_mT*P7b-NhuIWl1g08}_Bi#GiJdEjz zT*fjhJF|CZ^hj=L{_Kq6i7me{$iOnB7ADoUDl6jy7rlC!M$F^Fg)e7|XLhxGh<+{G zG_#u!j>{q@;s zbL|#zMyPx<%Pshs;EaG5oDt9T8Enig2eZF!!)`%oY)sU1>o7+S@uL>h(H4}2$s1k% zBUnL8wFR?+ZmX!0?VB|!N55dR7&XCSQKX$`X_Z4-RhnEm*ss5GnSr$6jO6 zvZr4=0H^mv3x5x{0)@g0Q2k4Gw$f5~89YVn5y?h!l9g5Ew`#qzYOYOkIeWXRhx;U# zk2Z>(uDZ^8uJvR6XHR!%|HV$u?cC?Y73yYn>UbMH7SG79p~nZaKe>{rS}eLd1RW+% z0Vj;($*UtJ=;bNl%vvNB`$^P04?3*9$5t&cl3S2F7Z&?kepwotA^I*mVR&#OL}<%A zHg(~EZsI!$fs5RUpbbdJDz9QY7Y>=&3KQ4oHoD%b49=phuD2?KEMh{}XR?w-Jso-v zHer!a^LPr#azP|c8(;!kz34$lY$v<0D8c_I^V~7qp*_Xs+%aXmAWYMs=9ULZsJTV( zFfdPekY+Wv;ID&31iWCLct(aky7*xB|FjW^pi%1+{b2DxXn86sfizpotp<{#-X-r) zw}o{AJGbRV#Vq5&Tx>6U{homi$uLhRNj+GH<)!qmOk1volgej!kt-Pu zE2<>S6(MFN&xdG@h9^!GO6h!^kcMfPe%JUg9C>KxnC@`xF|d z*>DG!ThD4T6<3-4%(%yTRu9)4Zbo>w^{^rxk){nOEwi3AB1(@DtKox7ECIiirMQkG z-6VrBmt7{^1%e~0zr%y7H}asGx8*_A(>tt|_FJQt1lOoVQ`V>jRcloLvNb4QgYq?M z*i*MgE#3bBDqdizZldz3L8?s3y*?uOoKGn$vPnapkFbXvPpSU>X{zT$TBwsumXu}n zl6F5tr203Aw97$_UBjv3?m`;CO|^t(tEF|FR8Krd%{!5!IQ3LzP-noc?PBaY(uJ*E z+a(~&)F=q1hXd=@In4^Bk+Ae0Y6`5=@JQshVulOvs& ziw;z3r}Al&m~E6JGC6BJyO9{rjVIBXwGO3bJqgslLexC&!cJdO{ZqgNImPhTTvA*) zgngTXUZ8h1HD{ZuT^EglnzKex;Vtn4y&It?_uMVfNm7hs1M0u3LKrcV6($LAG^5auAH1(8M* z-}!Sz%0fg6LD#IOf!YSv_ujnZlA5zp9}whVe^}MsGk^wMzjH)u8aYAff)H0a2uUMs z6NpG>zgy{HgYV0_W;<h2yDq)md;*Y)g!qW-EXJ046EC` zwN%13qT8aiYhOZl-)Ys|4_msMiI&m2Xc?bMW^>Du)xF*>iTBUT{%4h^ZQnAjzG0s4 zN+SyIo0H|<=Ly%6KzVJe)@qyk$%Aucg+fBzVOhvfh~GRl%%3@Ahq9t431!G6RJ(@; z4(y>Avq<2;W7M|9F3O5tHe8Mk_b|#I1}+Y_(Si$?Wpz=#RkVSdcD-fVYTlVF)zhJa zS~?{|Evd>-i0w1KCeZyYsCm76;5WKkmm~Rj*ZC*S0wpSUl!7u3l>oi1v@vaX;U&nZ~Rp9eDl-$jwZ8c(E~ z@QmTSNUky{8!ob{hp`)OaGjH?rCYkQhu|8YJp%c3=!RDhym}dMug24FfK6v|@#=|J zceMaz1s!_f)eXeu;?*6mo@lUV`3kt+Qre5T<-JltBwh8;-gxzr3M%$WK6$TE5Kj-Q zd8nM%p*I>QXb^I!%TxVS1wvIVI+LfCoXS&6Pvohd{a!d8FM2cH@CC<9{>XU4A0Ll~ zJQy!LP>MV???fKTxf>pb@^L7KTu|;uc|qKx7M<`QeS!|uc~vjEf6 z-ubG(Dqk&#_!AAHCz!z?Ua`X8lU8H;?F@rSxqRtjLyfMNyC_vs1t)w`KJ^>E>(-FCa5LLCO||JRL`kNV7VU+EQl&iEus(^ z@RtI=hfaX}&rE`H-2jV#CkhundoxG%HY;S30WrfV?A$Tgt0(C|eHC4aoo@Y5p2P5Y~!XCbZzSPZPj z|2{ldum~_kfGGkDkfXc^iqyChtRI2hiB&$(#eBt2Amebi1xi?o0L-FBZ0XG5`GkvBVb4X?-N1lU1+>a^2LXRoV(D-@rfX47#c29 za{Le-hly1QtMX(`P>Z&tv?wzvZBgdfeoL9dS^*!z;mB7(hO1z&tH7dFkfX*aWrBc6 z(DJwX$A*`}KgW|p)nI2CfldInpe_YsT_ySHeNufIHJ+V-C~6axo_(7~Qt<6ia$6x$ z4j(iDQPd`ceQy&UjKTr{U|R%l6pkpxo=LsOrz3banAN1&y(3et-fbQZt_@X|cj7+8 z5$Xin_Z;tQ!3T$e@ctGz$dphLe2gcnH00zkoBJ5P;Pr4`*F%I_SjrD-396;to2aq7 zHPtYs(hlPjRHK}roX3AQ(J1$K7!QsGnH#}nnV5H+k}B|9-VDOH9!wsp=0(y#Y%r82 zPlot3h`||<4>(kBJe(0th8zjWP~>b3T@jeteqj;Z`2=d}9RYb4w;GJe2T+cIDX$R< zc>oG|0PLLx|4>iW5+9U!E>%4>lHmgf^A0%BOK_EcM&N7sXB_^9e}d>DQ4T*5769m_ z02q%(oZJ@xffE&10RcYa&<*}c?*jsS2JZs`UVfiiBFgVWeO`V)>bp>WKTAGz9ynak zkBpFGzzF7q+pm8Ukz3vUQvLc%s)v7$y`+Xq>sCqi$(NvT_=~cyFG6wfIrgFo zr9}Bf)r-#;#$HgeuOlpb4d%zXJ23DaM|4BI7IM0{>=#;NNX@0t@@W*m7ocuts5Ygi z@j~*2gcU&9vBITe3_)HWZha<_qY*S_g*%?jb3=~wTzIui2{C|@Cc6<&byQN}8Pk8b zq|`j@27wvOnTD)C1{XOQV@tx5YQK`|(;d=t?;t}%C$OPLLD+aR-L3AaN7o;g)V=)k z9ZCJU_@vUFhh_NhaVVq4-ib0efbSEjv@=~sBlw;!%m;P&aLVEM(9K~W9#Jk75sks2 z5T_UwEwA}Y2_vprus3`Gy~t9F_Tn>+h=zYg5Yg3-b>}CGz3ICjprsh(Fv!q_Z_G7 z+(fwD2m;G~2rPqWYfENRbvX5l7QQ2x#*nDgfL$WTBDipKZ83F2M{akp{eI7bGB-V@HHT&Yeb#`Eic;O&N6 z_g+cnz2_@=JZ+`Tv>M*r--=w)T176_FwDTImWK6h5Zx-ncC&^*c%PIXxzEUt-zOE& z`;CGiOs@`hzaKUaJ4cudrxnJmbpmFs@LIdzwF*wzzL;8G?ODrLH+wyp7~(kibJ%;) z2{abWhyGxAJ+(?LJ+n&n&<7AlJ`l<}0GAxhx3e6B?0Dh(1Ux)kzT*1!QdADVM4CQt z+{a|t=josA6K=MC0;bt;v%B8L0AURV3AZYh2KyPMk$y%VyP1jVW+Q5j>yL*GF38^eTcUrEpi zrydE0Mor!M8p163dt@V4!D+b7lOif!D%Bsub4*fpJx`>^6=J zaZ5+XyQRaox{clAUB=TJUD7khTt;Izx9W*ZG7cW2(z_p0BmC}{RQmOK3az~v3N;f- zG?P763%RZ(O3z0Kdn$t}y?#ss^B*M9*&oxuXGlu)kv91%qQ>3tq)-)Ygaqta_6F#mJH%(bYL#3@6C_kp~l_(W`m3gc1X zRw5m}19cuC(YXx*Ug-k($JPnBz-LJ`Iu8vLarjgs9qEQT#i%m`jqabWX2oZ!v~H%- z8SQY6bqS*)Dg@@9!|S))ci%2GZlp#dSbO++Y8-iuN?@II^j2`=4#7IAIe32-OcbQ3WeH=;K1dvAk#Z$Cgd2RP@#oYh=$5)}h? zHjwCF95g!nAQ}S;4|gMhCLlNpHoiTCC^<+N&3{Q$R=RJZfdy$?K}qzkkEznhN!iwF z8u+9d;z3XUvM1&>1ZI(bQcMP?t$4=Es_pyB*wuf zgtBrG!1Q2p=s;7*;t0eLSdf9&0+=1W13o~o9TqYNu6qtfzBzF9bBxA2z*&eP4Aw{I z!34L-6s)Duxi7(Vpon?<7bVzl94>|yLxT%W%~p%1%vMV}guu?(ToehN5%svm!0a$N zS;S{Z*qFEoUNqO98Lg1|&7O?p%i)45>KqV#SwzJ1HILD?U+-BgKI$jOv4wMiJ)Mn;iq$?{NNlTKQc!uh|gh3 z@zv^%-9&vFqt{Mk7=1Kk_<|t}%^{;89#TCg=Bat7=E23zQ~h*4TiuQOkU59}=3sc8 z0}jnq!c*tU#UXas)~%VQni>J`Ls5Q9d2z2%J#vM|nYfIfjVk*z3#_AiXjBo*;Q69;stV z+@qvdUqC>VjEr~3sOu2>@qZPv({-ug^nlwD%cv`t6@cXuAtBMg=0QG=y0zYx(Zivr#wu!y{e7k(JP<uJoltwgQA9BblhB5PcZ1l*R7dEMAy~1s@$gBaRcFMN zb;$LBYj^Nu{y-)N??!oVGb~p9wFmjC0Gqyz23GEcc|_6!HM<;qJBu)S+u#vYA_EOO zPm-}^daS#ZT`$LS7i^c@dAa=yB3z<_3QVS>S_-@Ooav!>H=v$9KW^??Mpjj$kJ9Y#2VeRo<;W z73*{3;Yv5cl^(;ixNY7I1ae=@BU-2JeO_0->0!;yvNo$w(*;<2<9@rl;-rfe7p7qz zu`l9g$ww<;H*XB?x9Wk9&H}(J0L%iwEa-WgX_6QSTxeX5^ki}Zv7XQU zIYj0Sb>E55I^u1>hJCEttuuAru>Q8;g(JxBk8H+rgy!{_T)c>cf))8HVLnk5;V{_; zBWiY`>W-0a_3521b?1vNb=M)6R1u$HRGgS0jXE{M7k{zca_>v=hy zX;gHWDUIqqQ*m}8>W24R&ul>XMwD+nY69p}gvHuAnD8&X>{i`)!dtBjgNu2fnSrOsA0>e^TJP=~$|A z?_wYQa&UMC#YqOzI=F z)I4wg^A|a!bwWa_m`sg4WLcilmDS? z>w$KDM8kn^>Ir+;$=3`=Dam6=AiWO_teMDn=%3}>;yq#9ZSkb3vmf+5p+#D?al;`H zfVFFHU6NGs9x?EO`%f}PeS+_w@VF+)m~a-~&+=&AC5@`a_i99n`&~xGRw9kw3ZpDK z<&s8^BnDmx6I{mVsYDtx710}YOJn8`125Iv!EKCLPK@Ep(ZCd!G2BU{5l%Ev<&s8p zA_iV+=`yFG(m7ITaE?(LnIrYZfK{?=CEU=x81?T{^G@AojPMd^k{1NTWoc4>VoVD6 z=W`F42h@p~7@yNL&ruL&ss&S=d}gNlr#J(jeFkDq;WG&{z*A0X^iB}IlN0VRM!yKc zUqm^T`0POG?6zhH+15-U`YDpEp8Xb%(o>GW+;6BFE~#@!6;5hscvW-~Q-Q#rJ_1p3 zhcp4dfrw8jR6mCU=F$DBaRWYY=nq*V1ns<*f?G5&7w#*M!;GZH*r{SlVvHDx=ZJ+o z{P`TzT~3YR_#Cmkxo+4Pxz(y%S_fHHQ)A3lJ|#d;FfI6WCs@Uw@1)ZB7b$uQBrjT( zyTNZ(yob8agIK_fKSYgD?+Jp9afeWME>AV$`6mb|&jJ>oqs~<Po_qSQpQwY9mPN7jz=*XPIKc9i4rN zN@_5PixNIEDG+)FYhyHtixs-y=9BVhC`_cjLH?b?xC2YVzaU0m$O}jePsG7C>ooe; z(^T@tT}mf#!AISJIgoK-#KotCMp4iuriFY;SQMA}3=S}^=ofnsC`V-8JE1RO%C?(K~;IPfDX-?WNJLpTfN62xe!P3xAG@H=o`A@voTwfLozksp^f~ zgWT2K5X0RF+wO+e-;J>CZYbdjHE+ubwS=y~ww^NxzfSS+>t5Bn4B=K4!mTL?w>qo< zl`X+D5AVEnE8!DXA{<)@s}Y_Pd!4XtIMP#uFxL3@5?`kbWgw63itx~*JKrqBw@g^$ zqkhsr{48NwfzE}KxEpQiB=13EX@R*r30$p5<5=dSvxJ-F1GSh8X;1R)8mzk7%|msze*HNmd3|crlgSsBWDzW^ z1ebu|^w1ohIMZ(9GdBcmezAU);=El+?QnxsaSW!1JjbXnVV>t$U1w?ZuAh*=U%Am>>U0BQvyrzFW8@t``vB|p zq`%_`glsn;aWUs7cwCIfLy(UgIKF8AQnlpNQuy$ts;BO5^tLw=Z_89KU8efaEJb2; zDW;vxF?wi+xOf%*zU}m#Jtw=uW1Bk4V?g*a5Vj12EdycjuvZYi z6y-}%z7*xq+XUg^xL6NCpg#s4ln464OInoc-1GjgS$Y{q|2bh{U$7m@EW+Ah>Ggag z8=nR>5g9uKC|?&DEBPa14S#$r#u+RIVYR4v(-j?q@-ZkMgYq$ItJS11nLm@#6UXAUjE?A9{9fG+wzNn{D_9kzh(w<^X{LOOQk@olHb-0%q-mY^}-L^AB@&Ao01s)|ME30XosoA~e{K zZJUOUU@#Soh|NRW1!yCU)nK6rJO3E=TZKg;;P}UnN_?+N+D;t$t48JzyMcs$V4n-0 zg9shbp9F$&AYfc#n@dx!%qKtN%;T3XVcW_Pqacnv76!>&*$Hvy+GpIKD4z!h?{fW& z$vY%d6Pd@oe4Q1rx1}^a_S`u|_VCCV>z`1{7KCp!BP4PT0`NO!{|tegi<_q#9D zeUuamJCjow&vM9-9&A%mVi$cswhr5A6M3R3QS8CofobPHjc<(( z)a)iv`E|mQ(~wC#dJaoyB6$bgsyPNz>+t&Kfa4z)T!V-4`weR@cy` z?rGsrz->HUwgSak@=e@W_@@?aA_T%{0aTP1` zV*5B>oqyJeDc7lS#Hkw7VKh#@Kkd`w)MQZRZ`ZOXm!>pwn`EFHi6cIK-B7 zK`CF5l@Y27YPDlc89W-FkVZleZR*H2RlC`Geo_XxfST5Tv7=2rWt?M*bQ6oNF_8y5 zBytBL`4P;DuGwX2(FT@MUqxeVasAkEwbRis6+*2ZdERQ=2?4{lMdSJ_(4Zs)yyuXk zb~j}uUxcRS01o?TaK0iYf|9X{94s(5i}C(9_?~Zn{~LsmZ+X24b`I#SwoXq^Qz&(Y z4Nv?**zSXdH~64bNFOu`<7=d%$Qn%Z)=0&4jZuu$d`V=rQ4(A&^+DRbPn;id2+v2p zt$Z3ZR<2lJX=CjoCYL$PGOk_vG-%q~hHrYKGx70{L;#tjzg$FylQ6NT0#m9e?^Qa2R#1niE zorp0Y?p3zQoVRZD7`=(Xp)psO8-4Uu@nRY7yxU zD6V(_1j0KeaOjU*+4I_!SLwOc@$eNrci+q8e(3p`mY$c1tu54McW+J{CyWnZmlJ0h zdSh=8G0wCM{ft#lh7MqOw>t&ymhrj>LeVR+OOPWB4zqf;Hov)7$Au!Vv61v?i-Zog z2xyHX-p|I-r!5X-zd6gXsgElo62{}8z~a;hHeC0HBFWb@G;)P$JY_4?K;hmXJGEfT z&1zBIOtmC36BFQ>K!lwKZDnlryrvwAwaV(b_D8@iXm**_Xt!2~g5wm57~aok$Sbcv zW@VMvwjk4g4`i1qUhUHY*}qb}`LGhV`x%D%P-y6at#h2SVLdkYO2mg*GnM}Yxt02^ z*xEv*_Ft`W@y6_XY<{A+#ZWFR1f7MoS(Xxp>|rXWY*WD}Hx)tg=*Kz5ZK&1Bt!ONV zRXgk}3UJxYLry*-q)7#l9LX2QL3r93*_+O49?nI$`AGB$KAlgg1xJu1d!H=w1aN{VzHv-gPoDe~_EZ9Y7+*?Gq^Sj1zAlYpm97!UdhNEg{pNpd zYBe{5<+iEmua&RlA=TjzxjztN$Z>I)atdHt6j5xGuYEv>81|2R(|#VUF27s}g($?C zI`?WWiYt^y*M_%2EHu1U7l^$`c=`A9+|%7x#cL^LBz$$mv7ya9!C)kI42hm-70u82 zD9HyZtA``(pz>iWsI2`llRb&C;2RKm*;r6}w;&S77`X3mJs?4iE<#R+CvYc(nK5@5 zVugw;B}Oic2`%vzcgM{Gj1bw8i5!l5Kyf96@S=KOn>(BN5o`?4>1J3otfOIJpFqk7 zlSEInf7m_I{&i0(f-N1w()nKeRgyP2PAZIy;}a4deXeRdTOpfN z&lV68!MMr*UY|#Ef z`}-~CzG+fPf0m4y0xmGKJ=IAb?n$`j1Ky7BGNe*L5DOq^l}9z6|Hdc2AKm{@4yi>o zC;DO;$Z0-+l2=*fFa0^%Lny+zRDuI{upJS=kqCS8m(NhjwCJ7gePU|AguNK;?Y30o zf7nOS+dIl*%fH1K>2jU0J^CIt;l%)bp6M^gVjSm-=@71;kFF z*s|s1xC;;=!lUfuOVg|lka9M(;d}dgJ{$V-f7_P_-NU-SQfPl)$|k(h+xi~6lP!Ox zP+2PCS>(cSty{+d>3sG5(O0r<@CEGc=Bjhqh32ZWnfFy2Wo#Ck`s!NT4EE8hxY+Il zOM9*GdW5M6M;ndjkc$`bI?u_&Yl!FMkg{U1IOi9r-J>-ioW)XdM-FF~zrmKjhAU4R z%;PI*ce890O)9Vz{Z&g2u2-zV@<<$dDJiag4qJasw&T_AkG|dw)O3Fx)clG~cs)7ho6FskBJ6|8@(4H}~R!hC}5q2OBY6thS1a5=vEAX(9zp`;?rEKx923Ty;i`ed8 zZE=gNl`ml`pJyE^{0%=4cK`fH@do$bKI45<-oj#tG&9+DalwNs|) zY%}mL6&muO)cDDjaH1@>T53GoP8oSXYIM>o+7|V+`yP!Y(BBL8w*wYi0rt03MwWy9 z?UZSEv!%`WmxBH6z{TzY``alacY^)xlxcUclg;=Sg8l8l#pZ+k?Ua#uV1GMh+8j1H zo_)Q={@GxEJ8-c|u)m!$GRxetm3EKD;tuMFeZUUAF~A+;@{AQfdeHCCf5Qq6#@&`Q z2D8%#$J*ZqFzrx6Gy$oi5NC#98TDABgToh=VM)H9RB>%PWu#217~4)6EOK8n{t~HT zVLNcKBB|oOcFIU0_Mo*>rsXqFV}gF4RPkIpa4}V?c%_{(k|$NX*-n|}VVj%r_mnFB z+zwo-KQ6WHHQnbwglZN{Gk_O}BU z%K-b^DI@7%e>-JbDm&SXKN;+A2QKCY``ala*hKVZJ7t=aO+J!6+OiDnTljN3a4~F4 z_`aPoa!E-}b~g3Awvok-4mCYDNw^s5NQJHc-!ScHk%RmPTYMCQ2sapVnr%J$f^`p@ zzLbr5(`S9>L-U)swv-ReWD(ow{WiK^vmI|G!coxyDAm zePf>S?0gKI)*yfQ4aGGX;R6;S_zfYFxVB`cdD7u{I9l;e4_sGx$lT;~1X=yNk0LZ0 z^y{CxD@7J8mwoi>ZivIq{o26&Cv5eJc@BLOTl&>?rtdweJUa6?*juq#xT}v?+1Eb< z$nmdxMMu21+KsQV5BIw_bGBR&KDCn?qqzIYI5tG__(%ekWcobCOB;feO; zomNBoU)hUaBKBq$fRX)x{kBTP%}aNxBdK`5R_0v>WYhQ5pYk6i_Ce`;o2vouZ4+ zB~uGGQNZ6D9r|zC@$YYOXzvP+ij=5!f3*4^pigLf>?f_{9ldZtqIBCn`jSK2+OUAq zAkAOOY0`(cD{#R!{W=Id+qTEW=2s31v72KgI@et(w5kW>{(@QMq_?G1az5*~H$CoT z;qUth1rTkJ-ewn>PP66MwT0eTqxrT>Ct3wsrs;9fo*lPs5z}t2aux-$IoU-o=G7)y zS2f4BOFqi8|J0s<+RwFZ=2AC(I_<;&9fOqZsaJ4E{Ad$g0zvlE!@rW^inJl!a!X;Mir%_xba zNqypJMj_3Rih>zNQ6xhuj%Q#xoN43-Gm!+$G;ryOgpJ*X8tfpckq$;)yo2PWSw`Pr zmeemQ3lamR5C^im7501r@0%qF@CBmoJ>^qUN2!Eg-ZjIMY>0 z(vdQcC#yxvlGKu_B(-!(lH%s+^GFill2z}iWDt_fc*e4*H*N-5mI?w=K|m_@ht;Jv zocsD~wSaa}i-52MpQU(tXg4*F=Asc?D{?9q<+w%!uM%7{Qi@Lx?GEJKQQlqkRHdqU zQ?P~`OjZ5;QUgf`G-c)>+#Gc7>p)T$2{?O%oXI%xM@FG;cW^WX9L1@UNI1nPh^H8N zG*wcAsfHR!l}h8OK;9cWR(h-6DIV2d?`0mfDBc^5deE2$xbi?`UMMZu$&w?z6lV~Jvx8|$dazJQ3C9Ppv`9ae z8u65;5xw;d9SvCE6&GfBafKScFaujO#f2HzhN;wu`zjo8VMz89>>9_Z{j69A>^19T zfMduW$bp(Yj%f8xMBKz_ITq@(Z(-deA=L|=P^GXxqOuLSMBU+)u}RyBP1;Uu(sqKK zSXiY!C10>-XzNZOCn-{4od52{YOq}H+21qN3D-nqktCxi*~R4bZqAL+)(v2D41`l$ zLq_l%-b}bhQX~1sy7+all5af@Uh~g4T}YAhFUhFPKgYV&f}K#DDGD+wxF!S(g_F6n z)xT6+2oP#T(x|WErdWaoVk;vVL%wZ5sMC5htRcS_xs~@AbB%u1_8J`rdU!%`9FhDR zps00u*hGRGWa4>%2@7CUnqlukx*wEJ7L9{?8^L|JVhjjI0zox4fgD1H%1PC{I-DQb zKV9|X5N^Q<9Mr`jT-4>g7FUu?7K1O}+f!)a(-QcQkdCWZB$|$k)igMH4yfHDl|=Fs zxjSFP1BH>kAc|iN0T!l%3mk?lgGmm64fE3hUdbQy8vck^%8z?h&mJtZ;fu=p*)u#KD04DMSDkyMsei4~{bAVO7D4!;=NQ zhs-CI7X!;cl;)o9IYIq}ELr+4{WZKnQHmUi*BwTDnhrV=W+xp{Z@^WGwNp8e6 zkn4tp19zFkuyH@$)hG()vg%IQ54@!dw}ht6d)@<^x|*lC+vFEb_xdl~Q8Cau#1Z4y z24MkTD4B#Dtj!_pe&h*cEcmPNitrh@DhjU>yh>??)i8ne;9?Gs2qMF8VxQG?$rlM2 zzIXtxvcKUE_7BX(E_ocfkqgAfE&;TuBSX%EyZP@*wx0l zWbF&ptR0s~I$H^_iZd4H^r@V9CWirdT!dqNJ$dC7x3TT;8fEC6fC}0T`uoMdDIWbf6#o=yGK`GBbDd`Ngpu>!&6nU|-p5HGS zgg((^%bEywLJ=r)Fv&>u( z7#)}IV>FX`(!y}k;+(`rMyW8;yqVF+i#xEP5t|yj(58+_x3}HUh&!1#@$1f<5;Xo+ zu^f^mwEYhTF3*vk9f^x`s&R47A>>4ZFfnf5REEhpVRBB42TsUVHct|MF^(Rwfw<}5 zK3O5;`lcLtF;^b!Hn?9|@5EIR{5Cfy?3CL&>=0MYaRkuVk(OLw$Ku8}JU`8!$M_1R z#<+d+jmCmNJr%#Xmvf+OIONLLTeW_YA4=kflH@~4@`D3V$hY1)RZkpl6;xw?Kej8DQ7P9io3}Ss;QncFo`L+U<@uZi}waM4yWQC17BnSH?`1K z85_oWJ$X61u>!@l86J(oZ=ZnAKIMXPxu9Hb`yk39UT*mWa62s69eV^ObIaB3lfY*G zH}*+3V87K+SVH^enJeQYBOM4455{`SKe5jod63Y7T={nB0F;f6gjgoqcG}C9(8alz>pVdUqRivkk_#FH!Manl6hSpG_g1w*N2Uc=goMLQ3;R$?KQTr4=d{C{ggR~5_9D=jD% zGZNPG7>*O4{_*F~Eu5A`nkCR!PwZPdOT~b&zB+|%9LYl>OC)eCma~cdkm!Ztf@xZg z#>BG;46v;nO(T9M9L*$a0MWj@($9niOAtcEamN_!wFLHBdd4LX#l#?UzkxwU;)6^P z982;4n?VLADk_zlk+PbPvpjI8twtIROV##BbNN7%(lXGPCwtJGj`XU7NBlmf!o3saoB9Y`T#osuyXsb z1swLb7eVkv5PT5?U$h7gUxi}7pcugQ06qZV8XNd3uwFqhVCMpM1z;=Mht1=#GGMa- z>jUh7i&A)RH7<|`4QFXyaHg<_am3>JktvBw2>975 zaR~u#)37fgm~8mu3zEO$g5j^ZAmuk+F!JReaPQ*}xD)mV$=CP;b41eB-MFA+kAtdv zJ5u%MPm{2^Z~e9%N(Cjbz$k=!^e;Di^YM&BT{;#wVc6vssb z5l^!h(B-EQfDKTvUTx2JmMuB`>mC31iWqK3YyW>KVz^loucBQ49~3d1&_rWTb+WYg zP_p!#GsW2Z|6bAB(X((XMTiQoW{&%XPAQo<*!yER zelb_lrwN_n83JSm5=jBW7q)`5rmgb-EIHZhg0({4c!nX4;%jM`<4jgPb(4W~vg(ab zMsUVQnSS=9?r#X*(wGYt!{^Y395BQVS9rhnL=_mek#X5eV^e{5E*2+gjoHlZ6BGon{=`FU!MX z8$-o=5IWr38B7IEVJbi|MWAVx(AU0?K^U_DY`KT{soTD&;cYzF2|ui z1sq{6b3w_!K=S9S6QVtC5mJGH^25p5xJE4V7HE?X7eYOEtf~Vt!ty(ar45WtKM&Ww5gp7)^Q6{0so&$T5aUUDc&}f5r z_Ks~^NN{{Xe7 zk5HV`u(v)K0YwB zavWu0__q{=(u@}WR)c91pMujAVLwH6$l32l&K}7l4^3$h)-Pjx3ntsv{~kY(+`Kat zDOs_*ZnE%;i-7xrTH3*(`VlY{oFL`f^T3MQcbF?q%GdTz=bN)fH()<3TYIE~dAy7c zbi{rzlloC#Hy0S;8a3L6Yz?SbfZDgF-j6<=LK^rW(jOR2Ai{H<&mVmX2UgfhW#I?O#BBbhF$@r?=Zaqnx7t1 z((u1+i$GV(TV2eV0Xo>BU1M$yP%MY0n@0om4g7!-EHNBi1J5|{haCsIC`fW!QfTbjnek`R z4#dsGl5quimPI<>MEUbI=Ai+!cfR;x+|NbaFpqB}b@|#XsS6|{?&VABk2+$1XxK53 z=3rUfzZbS!>orjxPn`^0j2A#XEG||&qze&gG0C{^QP}_c34RzqP{cL#V$f=2zs6DORMUO)z{LQ<`e!uO;8HlxWQ~ z>_No7K9Nh;yyoN~bdqC4uZA5%s0$mUGR)mWflo^_j}N8TDUf1*g-=&3iEH5YE>ej( z=sJ40L%(S5y^i{Ok_!eduoUMOaaB{LZmQ z%_o0Ed(SH4!BMO@;2eoRTZnbUIa91L9V3C7vGATw=n7O^!06bVyb;;`@ld>MNcA-m z%E5*3))^x?TJ5C)r#HxT%Ti2{fYr_Jx6|UVtbEg7T$|8*S?wHOddp4;4Lc?5y$BYK zCvjvxMchr>h6K`!Z_MUSUF=QJcoX`)Vk0oPik-4>EFf3l(Eo_;Pz(MV^n-6^uqrI) z71TUjwQnKP^C^lR|<09|hpVTjljD**K8aVo7u z%?sjsjXFLa!x?pu8y3Q@*RNk_o~)uh@7_a_La!KvdH`GEXQ zgLgK4n7XZls_&RDhiFANtLhP@`H%P#jMERBn-^n8f~E^fW6E z&_U+uIkYGjTNZFHcrp#jLfB;gD#mvgNw2#H(*w0N|zv^=n zJ}Q#u%vejwZu9J1T9_$ZN6kX(jII8TSu&5#%@<)L*@!U^Hy6p!ys0G(S0J4FVe$n!D#ia)N2v zAI(qZgKCQj|6yh=fPk%meYH7g0o`V46T!Xna~vhx7t-Xb^G|=DM_^Y7U$js9!gTOA zJZ*%Z+(!6rp_rm zp2vdt<6k&4Jco%2ow4AxHi{vhk?SqR(1iM80U^gxVrJdhZuhpEWp~os9ox2;oA0FA zHdFp$?!A-d<|Mybem~S9W!$g$xQi^(>dDI^M%s@7GB0$9oGBffbwaxaybo{nM>$A ziy-}X+gBv)pS)-8TtcsHk(O?0Oqm$d7MWT1(*9<_Qd`?`8M4rJy_L3;xVd;K&?Wk_ zbtx@W1!b}GN_r1iaUBg+J3E51biwR0?pfZg%0%_o=9>nsuK$IX+=XvJu& zbDu(n2%4{uVH5xRJ^s8!e)=D|t@1T?#BXq=yczvtbMf6!6(K*p-rRI|dwq=!F+aMy zMRet&hW02{Ts^86Dv3SdaCbO^9nZ4tBSmX~IN64`j)}bscW_JJxX@g84=wB^XxHCX zcRV30HRGL_(4h~S{a5$on0fpj>KiY_tnr;MS)p~C_|0fMxaXN}rzK|nFghYC3L~}{ z(g-*pj3l+dkwd1o9NK1Cz(?k7%M%V=dr(N)@_P@M1uNR?J?V(UE?!fA1QWj9E1<00 zI~Reunk8w=2`n-{SV4QZ6Ylr|&{+bET`-5Pq`fl)iLqfAw{hLRX5O%XmYC*BdX4Qw zs`z1t!WLb#y_3*2{T$b|*}|z_re>mXa)Y_)UhY)iu$=1nBj(HZ!l_zZS#N%IFWi&x z{jnmm%c=xr`a|Z-Rjr)rKJF#-x#s3o*ve+9NR6c;q7{9p+5J9x-FR!@gad7D4*G8z ztO#?d;_`qm_NL8yc$jLu&NmNqRtXPHpKbYWylmdq)zP(cQ~+2NTyfNWcKu)r#-twLaPS(%h?mJJ`hzV(%BxuBdBtww~4BqXe2OkI1neR^ZM^M7sh|%C??0-p3t* zjZiVSK0u2`9e$zwURb1i^e7t$`s~D))DD?;3iY6;o+{HR=ytYI+1K1@%t&H_T|Q8hs-(h{}CKD+{X{);eTO8C~?p{{UGfc62Og1EX$(B#bHZja>?>H(VB2M(p z{@3M!W>%pz$kc9k*qtNEX2EcJ%Rv7BT6T&C@x9H3br`S;c;B!>g$43DERa*=@Z6>j(61dbKN?Pby)44MLxxx~ih>fB;ZXw^EubZ)XGEgMVDf|!^gg>^Uz%@^ zz^H9;{0lQ{B)Ttt#Fm+-1JY1T102~yte$=-u=fG>)4fjee?f!%jRu@)#s#7eS*Gf) zMJgUjw%<<2>l4kgDo3`>s^6Je6*MOk?BPim-eC_k(Y(2WYW7CrFU%bkbcC7T)A4@8 zx1*3M%CF?Qs^kCaBBWssnyMbTl&cx0DpXvTYq_!orgjs}R>co}9HC~aIw*wf% zrUCi9#*XSOqE&YU?j_g)lew78S2<=zVji(Yy0m`WYN zR`L5DJG-@e6QLV=(;%xNtwpMg=eHV&dbEM8n=ijr zZ>g?btjnOi#gu2H>sd#NNReOeS zcY0>yq1RYbElQD>$SnLG#VnMUFe!r0E`&GCvN$(YPOVo^-IA`F^3hu&ouT|x*{fOl z675~XFvP??Q{C4bm7Qbl2X?{I(3+&}bTi30Rj$)Or^v|5f&a0JLNjQJ?%Gn6u6Tw* zw~fc!Qdo1JsYRoZ&e>9Atj@6}R@b8KxTWrb!i_$Mx>R(d<;`XXO2F);YK$%>*+9KwDh9R0ycgR zfsr69{x}ekWhOkp)m5dYP-42=q(dEDfEIlWn^X7J_S1ytd(*zq9LMkk;^i9S|X^iPcZTU@~h;qBD~P%ERT#I_7kwN`zs*3%i}?W%apuj{Ir@Q11!_RXUI z!m?|EWwxcM@T#S5u&i-?;D$G3StZ@emcB-`Hpc=f(YRzs_#D=3Lxj^(6b{l0d zZM_a3nm@`o!p$@YMj8Yk83ZE@e1?G^Vc-i5JYHC!u`A8M4>Rx^4E!(yztF%BG4LC8 zxYwZ}20@BJFvuYI*eGC-;XR*c;0GA^O$L5|flsEe;6@}SiI#S{i)6A1X#RG!=ur39CHu()eRi{>hZn^Es- z6Wa7H>@U4{zI5|lc@8UjnI>k*QO&})DL9vl^=wze)vgBDUzrgld@yp3mtQ>D+Rh`}F#r>{p=8dS^~j^olBqNJ?HI4`6%uP}vIEy-kr;rPwRF z)|f5DdNo#19n-6`s@2tH%X)Q11IZ&tzSKnkV)QDU;1LrqC=3ET+p<5)+6|SE;!_m@k=(?)q5bq(%Lvh;iphFib z$dfl1WpAdK_vJMMEI*-aXW?qd!Fh!yB1NL^@Uf!5V&|o=WI|GkLc|`!*!flG6Lew+ zsO2jfMPVPv8NQZndbvdyOBr}?+~fwGJ?Qi z=>1+VJx8eD+i;MMyEBdFmNbC{AKc%>QxjE%*kpt?63zb(ycxH*Y)@v$-#9_C> zBNC}>i|p1&SN+#rYkXUogEv}U_Nq~V2EyH_WrFo!uQVdRPvo~WAA1Vi4JkH!41Y*l zKaqRDr+V)b`4c=uSg=)Ircq)iCyr&szDqMIiY`#ZHaVf2@x~|c&v+x~EM4f3j!jUG zpuec?a^E)6@%kcz*IIhY3>y79l#j=!aCqq^%yDs6XIM)`$Hal1TNB-o`60EjahBZJ z<}6vy^}Ti)r=2bF&*Uigo~OkrmC`s(cQ|N7Dc{iO&!Cd@9A8o4XV8v1<^Yv_CT})? z9h9=YifkJdZ?9_37P?u5N!dt2J4}pJNW*r>V~hemq#|ItXhln_Q#Twn&JyvtFXLsd zIv2y=Pu-AZoQ@x@J{{MaMC82_GOYuvD14_JPW~sA4s^dj_BNz@4>edP_uz7H`V{d= ziRQFoojk2kwis;5Uw_GsV+CBX3|<(SwDc5T@?J0d$udQ(hXzU6MtSSy5!UeUu=RbE z<9#A@eomT2!lz25ko1%k?A3AA%c9xQel4J2@$E%p2D~ILpWtyVZC1F7S3PdxcuQ#n zUY;Y%Ay$0OTD%1{-OV}2{=r{4S?&Xal|5|Nqb9hUY5yqXbx3W^K60=nRJ@B5uja)? zmZ-*fuD=~s9+TbmZ(~fA#J4emEpGCz`{U%`#~Z}kdhxKG4-VjJ%YMF>;7=a|$;6ki z&_D4u-(X8P-qpDU@hU}pFC*Bp4P~M~gT;3;+R4E)?jtS;cXf}{KgIY`NjR7XH#RP< zronjEcodHJ&{{3r)$+J9cupj~$Bl)qNmqQy5Dc*6l4~ZOS;Kxo@ssfgk^^4jDL$w% zRn}hNSqHE9wCf@5T5?0$_2{v9Dfpe>cPGn!-tlN~J{~)j#2r3{hxx@PdaSONEJ&y^ zKxNtv;axxP7B$8DKapW8&V%zAo}7ofV!iC(gkcL3daDSZH2L+R7%mF>NUp6r*QGxw z`XhNLXbL`(*UIN9yimU5P^9U!(Xioirr`m66vHWbgIrfGpp_fokx>4nG@YM=Ct_V| z;E7l<_8j9XZVN22XseVq>ou(hD^N5$!{VC*i!g^tQb8b3R^@(}9Ee9)}a%y*1e43%Jf=_bz zNlN!%?IUfwE`NhB#^HO4_#9zy>`w@9NxQn^+j+r{x zs|){(MFU;&R{2;dHlOhv=B!;l5}eVly=U&jQ(6=8L6u+c z5Er&SY398;6E@JU+WLK;EKyfylb4tw6J=zS-c}>hvbTtMSxXRc5MJYSw z&JLvqj2+H(I5h5+A;Im>& zX_bsB|DXfk$Zb6B0$lCCmQ@d5JpX*8Qx4wU6Y`e7|YN8B7TaEl&MK{0N(SZh&vvD~yvUEJ!j>k$Q$f`!aNVfOZSVZXrEL1s%N!yPU; ztGgc=S0ON@+hYs$8E~1rv{bEdu6t$5nVql zdpV?g>x|9tQ=N~<|FUAr-^Ai0-i%Rp+l^ZOBp(z>KgkYE4A8?X z=iT0&Tpbt4A+yoj8Z}y~TQAG4SzXO*Thc{mcxh*yk#^na-c{7KYPlMJO^%X1qhQo% z21$s53wxTe)M;_L#?aelqGVwz9oT_72TCvQ{;7dDT`{Rp1dwkW)3CIjX`Rr zM*k^)ZPbjHxN6d6ZEaxNs@}Kd8!y7PBkw!%f>)6Rug!#4t}6^kY~d}YAr<~aH$Wpp z_2PPj2pU&wnJ_f*sDozDr5iLI4Vn&Aen+m~w64*Dj+!m6lP<`yaz!UE2{Z7oP}{rm z+~>QjqRZ`S=umhk`WbUv~v(SGS*)tVmS%X>n!b0@r?Df)3T=zRSz)Mjv0jw zF$x>J*TSaA^51H_mEE!Lq6tX)NIieXYX;G1{Wxfc#W>JVLjF758)|+nw$1v2QpV_| z+;PxLkygE+l(CfQ&U&$k(|szRX7_Ih{ybeOZE-Qw{uBDN9dPulTVO%7Bt|H3Jo7l%|C& zg3#G5%G8_O+Qrb8^Nc3HV=!orLAMYmaH20$rbO+bR@+i9;R#{yXTezm+E^I|T~7qI9{@(yM03>iX0*&nT} z#aP#ji4^{xUYNB+JEX2kFIsA(mr}nD$ZI{UPVB&LGZuM_hJ~>?%}V}uRp7HwMoVhC z7`>8vdaH-r56ML9?2p`45$9y?yH6Ei>=;XTqk=xnmqpgcB|^5>gaab$YlmRvLNleb z3_)2?LO+7>n%~fbsk}4uYF2VWEW5a9FY9%tpBAwGJMx$6-3A z&I8#z0cVB-F1e^~3TKC8mcN|hyRq>s67G#|>;o40mzvm}{U)=LKWR`TJ1=fjK+kqj zL!;Q2vK>xUA*Ml8(Sw~}rGHUbG;?=IzY~%MDxOwO<qJ*Ju!f;Gi`*iMr*fYtoIY=mr+Kn?n_FKpq8e!2v- z?T=fu7MZ-iW*&60KdMQ0%N?Ne+kXJ-EczZdfUUQbaF{FfSq!U7z5`huQC8?coo?hn z_MJndvmu?eC}c)LIf9m1AXrAIX|(gW!15ZwQD$ihJgsz?5j zL)rJTMGYLrwlHSNQcsRxAIW&Me%46VH!2Ele>~$|rY&rbg;FGIA@ttE7w{!UZL^i_(U#QKWdd6R5%ADv{IJ9-LhC|6~Ok7uj& zqSAYk{Z#g?F?qVs*{Q6xjw!)Y?g?x^#`b6eOO@p(YQIGGx@<6Jpuv~{#vqMUi{BKp z2NH1QE!NTE@O5O}+Dvkl7c{59+03hR`g*@sdvb*X9`E_i)1Pj@Em!R}SIS0L>?xr3 z;FQrek!N&Ku)H3kaXM<8nl_ug&zft45;*}THJ%KSA>iTIhT?`n_)Mz$L-=7qI01*Wj}4(b2WE6A9pPE0YhK>PymxshJ)4C8tF z%qpAAOh2%Y4c6I-^~NKWwG#kLgSXW|sn7vpG@LV-xYDR5WA z!`dK#c6MnrI+J;NT2saQUo^jzq|KIQI=MBKR%T*hMtK)ASqLVU$71$!QwzMG7US`D zi#W{^x3b25Mc z7QK$rma_4_mX)s7i|Cg5WRs->_L*@0N^;05Fwk;!B{?obVS6`H;4)}ZOD;`Z#(dqc zQjX=K#W-90O@-XyU?>lMdDfwp_uf3Q9O(tj*g)5pVI^?iNB!QzGF0**mAwZzce8*4 zXjC>E<~2@R<@M5vzRFpIZKWL?QJOSd`wZT97U1soQI2IaGiux)5&)-BfHjYtm$R;} z-W&783jR#3am%6D?eZvdIg3<4KxNCJQqdg86|8-fWpCYJaR}DE4mPw;a1DqFSCp%J zfTTi>@ZRhlw!1kcN^Ghi{ipqe)iY2Z;lukVa|Ii~+80w<4)b*Q=9->&=Aqmi=4;9L z8n?&j*A-Z7I>STYP`X9W*5gYWmcs_h?z9zTY-5qg-PF}ilh^5By@OuN_;1K@C2Qqi z=cq!Ku@Bu(5i7B}M14hxD_PT8dWHl8`2}rS$rd{F_)dopAEdUc*Z|93G@?jrgoARx z=$b0>qq(2!d+MktDqDs2Ui-=iq3<7q@eoA#-&DzKgB|FSL9>wId z$;|RA?aK$j(H&Ht4=ciYk^Dat*2eGj@I$tc9WJ5dHEaY+zes1-u!fDs2?@1`*UG^4 zC8l-wG5FTFUR&uUsurGqy!$-`Am|+u3@S;Yo=*n7e0&hbwlZ+O9N3@U_U^=y5$N0G^e)s{3}Zj#?Y; z?PO0;g0FgSH_Nq%GPAy5y_EK)J~@_fd(DZcsoa!P;wzYXIi=nrUH@Q&=yb{nqx_oW zco5qFsN=MQ?0zF%Y|Pg&eeo=3GG3;&XypDqxeU&6C4H>dCJ#Ej=UigzF#& zZq3*w^JOw{e>IyVz~nkX$oB!xp+!9#y8Jj~s7L$I_o*YZWKRH%>V_K}y-hw0HKjl<$D{4ALm$29CqBS`g zLpqBCC83~I4Yqco110RdhO{gGJ0uS!+GoP^m(ek`u(YGPy_B_6^j>9jp_|{bM}C@O zw?rD(xp(WbQW68#lcBRqqAB|*Ye4?rvsDIlgiam)@qeX0_dOf$p0Q3C4jfln zw;(pxYVYT0EudjXVe)8I>cut`CE&I5ZLzLCH6G!7wW`$ewH5kri&3ML8?r%@>z(BM zJ*$H^A@Zk&RZ+!0a{PgH^jw^$lq|-jnIN=*SHwE6@)F~d+PEa2M*qM(2UymnZirkL zJbn)jO07&=KpI=ur#6mSkFSnNIqlt~UFoN!T>`(vikBH~T<_<*cfFwV3*1{k>n?(*)FP5>NnP47vUIVG< zC)QL4()&|+6=3N{-Y40uDzZAK*k+yK>7(f88C=lR3wVRBpAvddE3F>|o_-No#c7ia z^@N>y0h#K2mM#C^yHNBqd%|8qrKye6r{aYoQ|ZV#)^0u$psU8|rX~bmGc^k<`~r4Y z_yrbM_%-7ds@Bqyaqym3=nr}o_0T79=@{`|VqIUR{92W!InlJqbHPZPBu*W5I_W$X zdhNcipZ@|$O+L>S%liC|ddt-k@g&FUZJcq2H_@%T62pdE^cJ=FmHGM9(U*foxI7*X zZ`{2n##Pj9!unB)pav3uWdY3w=K+sHH_aVB)X%$ZrJt{VrJsM>O1(qrGmUa)P|>ff ze{W64JeVnFgShvkpAe?F=VYXrR%Ug@pb?cDX7k!-3+(YWjl9U3*K^g20$I7HTl?$G z$Vj4si>&F(I_GD(DyUECC#fqS4-31^Hf(`9h5|`ap-6HvH_fJp7g<+be?Sj~Ut-N1 zO5ayE0+|t2NM~J@ru5+@_9iR&jGTXieOLOan*E#5zLtEvDYG(X#{F92ZhP!+?dpag z7cBH0RB=VD%R4CSs;+oPUS*|D*8JEsoK-EhNPbfL4=Lyxyk8n`P;K@#lo+{_&e|zn z4%KRt9Dj#ZfE6eEcN}hbM(w8p(c>aNrExJn(g{VO*SJ6T25kI{gA{WECSb-_lzD?i z*19JAiltrjzLXZL=Wa0EmMhJtiGMOLPwTqWjZy1@C!B`1uwx-jgt=+AJ~g1ndMfyn zxdnS4hI%-&ULf$Prvfc*cBVkZaRStg?7Ao|-_IW}YYaGp7Fnd!lC*rf{wHhWke;vC zm~n*sZ^HD4dP=&<+H}mwPi>rmN=l_&*Gg~{WwokMJzB+0dZ01Zb-_`GrClX^@#-Gn zb1hsKQ}{40-h`Q-kx%xwFaYV_Qsynz*Tvyv$Wipr@#uQ>6O7ioFa4liza{)WQQy(l zzl0t0BRQ6{Yb@i0daoS599FWH9RGp8JAJjQ-R^(<{4o^+Fckx@RG>BZDj(eNSlg5> z->&v^Y`og<(;6R8@;@xVHv^X?FhwP8>ecW|;gU8ZHh?Zm(DhtR#VD6qPm^N>`_w)C zLv3x$+K?Yx$7-)ay<<5zPh}NsuY3C19ILzJxAoMT*a#~V1&fF*%Fu-06s; z(%*cGfG*~^-i6ySIzbOtYFkqo;#vBKxUglg)h!435DWu`!<`CiDw9RWoSl@84(Wwe zJB~qs-K$~koLMuT>^!K@Nr__V_2{OPa=zAcEu^!x6l_J@$-`M`YPezAQ?#?vzt&5r z@}=HA)GcWHlJDx#CTC^6C?=-1(%GeSop`$~j2KC^ialRxcQwDZ(vsEE7+Tsv?;MOr zXuuCxPfsc56@-;J{m({ku z$`bhCZ&Y#bh@aBTy&A6OUXLKM_g9()L^j5vfmOJ;!cd|2pgwU(Zeg)_5s*GbOIp(~ ze`Ro8%^b6|H8>Eg596W`D)v`=?9gFso9njE0aFgkTOQhgYx3|B-hxZ7iBSPNy94x|rJ@3l}Y%tYnB ztSmJ#wDM);lHR77gD5#j@$u6dIDSy9!vjYp$^(~A?6K?5kb=jbmh>JC8AL@Od`TmW z8Wd~)z@D62EA9?6BXolHIG1XTW@-chgD41qUab3|Sg0vH5N8+bayVdG`5S*JDBfVy zAT_bIQo?#@{e~&LU0a+R*Url~W>Ai{$X;;9tz_>ef1$D6A3Dbp8U-bOl}`bVCes&^lz%rx@# zz*aypXz|pAK?^$J{?gMI4FV0DZxHo^uruR#A6MJ~5fy`2*3%9T(bM#Ta;o0!nljBO zY%umTqJdA1GWtJ5Z^hePwY_mlyn!D8-r@xS_AuMA<$$@23hhmWGEm*#4l2tteYwu# zqVpkpgxaz!3)zd?K^7mE6PEc z^;kk_os`ZUBhyv11Ljj&hzbI`9*c7Rme0O=-g(WT_S1lx8xsETzB*1*XSV zodecg6c>S&vd3E0J5ssL8H^g|Ug%|y0_xWbYNp3Jn%GMj@A4l_{fI91QVz0H8>pbS z(%Nvq1Y-bXW8cE@w3Mv#JF-wM@2%jyz^67~l;|%<+|GCIqnK`+7w3xUqc}X1E3xnY zA=lQv%3XzBMau>#?S!TW>x1ds0A+}BbxjVfyTj^Jzk$jCc6ALE4pcrg8=r$?KQOtD zvXRTU)b6A=9z7gANEztkD)wdi2ZmEN#x}4xy5h|{+S_+NM-4UVZKRWfuoOoYQs!V~ zEW5vfZVpyfJy*8Nf0SJ??oDEs12Wer1}DZ`X&M(jp& zheP)xF?@vbhlpFeraY-@^j}Di?TAqLNM(7Gcr@M7F<3nSG0ci74AHvs^9B`h&f*TA zgnR+KgQr%an_BaAMP>m#KZf_lPN%51Q3XZLk`Y@%_Ji`JS3Xt|=e+yMCea2rwdWhk zU|Exq(MsbNw&dJsxJp;^h=ss7)tL9e}M3#>2$H zNXLu^4Qfsq50|ngtx`_En%;DDJm$iTjdW$a@-klh14$5)t_`LWJP2Ab8^G`hN?+C( z4W6KMbGe#@TTI7eB`eqQZXZ+G1m%G-3BLNb+?dKIDz&THX+H@w7;TA|1gV9>fVn%8 zQYOKGMdR})VNzcGn9fa7+PgC~K%6}x{?6H>Sw69Y0B(p`zN_oySFAP zL*Z!WZwlkSkovuemRmNf1%PECK{uzvOsQhTb8{u^E#*^@>*ibNJXTJ);Kxv45@Zh= zcXX0+rkpi_I&@laGz$QJlh4N;gK^Ub2Gc;aZp8=!IZ1nb-7!=T) zn+Y1rrrfu6o`=7UeM4h#O2X$HYOrU=2IR?aD{oenaqn$igrTe&Q1~pp(#%;X5Tm|z zmRKFO&~*VroE&GP?U)M@vy}j`TEx#*nwq^g)L@nFrmeG4aynW!TW{SQwC?H_3ZH|8 z#O;$Di&(JVxFx>&NO^OhrZA7pMmW%bca*x-0w&ojO>4*)cB{^x!JkmtJFxS?+wymW z?fwacCM$cYJC&@oGA7KgbCqzKFjsM}LZ;2tMn!EqPdU$YV>ErbZZ&1RY1k8q6u1Db zkK8XdV-4*vQQ<&4M9B-3AoDHcHyUqjNqTD76RR~xwq{F29Z{V#u;jAzpD6#T;-k*URKAs&^(2Kaf$l&&Y>A>> zLn~W?rI6h`LucQ`I&t%i8kU8X*J0cheMyeGrnX(KbhNP2GnAMM)rHue^tix?L-Q~r zkbW``niKKX_aQ%}r|InbSdszfeW1g|AE29&zf*(NpzrZJ?OUxpV5K)`dp<_81h+l% z(SoQyDD*?Xk$=$04*^^Mq#^-Z{-i4cj=D+FYXtr##jgQedYj4wTymT4tx;YNE`{c| zmcD`G6TH%2+xdSLVw0vlkfx;r9Vvq+P)R4--^fi zw<-gm#NhK6}y@cLnnrN}5N zC0fTtJ~D9sz!=kT^WjK}GLRKI()zSIqZFy*(j5#OK4mdlF&fxi$62g8E~7?{cyFoJ z_>`^&uF}ZIP$AQCMP1AexLQ)&fBYYfZ8&b6jMg`c z5VIyhb_LX&c(51zkL-bfixYDvkaNwxz%h|4+oCAU#{g zSIWzF+IAwNH68d0D}&)pAb1m|s_TlBwz8R|p8Hy<=VYf@d5d3BD}Gd#Ge1o?p6aD- z!0_ZuYU4=lfzi~BC6cP)N_wf=Pbhfo;{QT<*^cXVXA?%(2p*wk{JqwTt?*MCtSDR$bnZc#V7egQqv zfv&3KugWhB>Ri2kNx=y#e)wNjytE$?SCsx5&v0}SDb|~9dW%aUsoyoFm4oH3?rJHG zRx__Ds~OID{ck9%<+^Io4aLV87fUbLU`}{Qh@}SL`%Ac{uY6o8shSMU>_z-f*kC5R zhW%-BXmBq|`%`IG|2d|hC_AH5z3AkhFxWK$Q2XCh=KfzqhKg@0i*>?wXj#fjv7UIu zbVE<@885Z3l0r*wO1uU0-fY={TmQ8&iryH=fa7iD2fZ;6m5aA^iONaGczOJ#yl-H7 z(Z0X*VaKHGP0r=Y;Hnzp%WXtuQ#qVUTGz()rm#CECOul6bw_Ef*lE6k%--tud&&TX zS$3%Wp>n}8|M2fQmbAyN*0e`C)(AK(;Gqf9R8OX+CfHtIO*rs{k}p+=ee4BUa7`C>)VGD;yj(z07eW~iEW)hldg;5Hi>w`wbr zUSY6-+h*XlSL2FW8)-YmGNZXSwLC>_jr3i3p%ILrjJ4{+rwVS6?!qKgQhV``25--4<<@X0c}c1A69;Cq>{=0?`!%^1r(OPRHJXO?%Cj@06l89utz)|vP1 z*6v5W`B5+>(L`@e2I?4HJ7M5X;yaX;YE(Y$D(d{#8u`|b2kAIz~kuKcJ>Dqa0 z53C{IqggL~f1Wa3cq^8BmiD=DU*>*+&bjae7IlGQTzPIlq)|xeSs3kRWDtCSuIwPLM~OaE1Gh4nXjSQiypE>oZfZ{uKXs=~m* zg{!NC!?~vFQV(8(vsr&oUIX62&sa)btr3`AX^+(3;lo>Gch}XPKUR+*Tjr5J>0Sf= zdZQ{r5M2|FKI`2aJN`HXL~!ukr^JT*u_!g(i$CgO6&2zY$ack#L$2c##@>ESjy?ZJ z^+ozZHrG`_A(v4|s&d!Wi9g0+^<%$gg^!I+-l4)q9ParCx!(MNXVgEg>Gqfz3~%EV zf|O!R+o*rY*@xrs=P?EP@Yn0YxPfMBsdqM@jS6Xl2Qq^4eRzA9$O=8ZRMyiEJE>QE z_+pD;`wi25ym%y9J8=&0q_eVgxM07YmSU5J6IML1Wu$jBXh&#i&O-7eqlu;X>KEv= zw4y?TZlpem^mO%R6Fy0qg0{O_#*H;7upfY~((JFI@zrUzmS_IciaJK2^3eY+ki(OYSa~MT%*~o7!nSygE)zZpCrk9H}WU^Rez0d~6}DLLc?0 zzYNBXr-v_d?2tC9{en2YNUTln9up|JHUF~O(n_lcIit<`?ZVP(NA141uS&kuIy<_|(FM}43xJw)%KbuOs@&Gn0hHiJ|&D_&K<8RQ2NK_p+oLY5*UMz~C5#4wj zRvtsky77({|33awTk`47U#5y~+?$Q=LtfpXM|St2gzmhTh4=Nx>s&Pa&F;K`r61sE z9S(~CeL-J!RD{r0*Mn*AP`;SniQ;o>Ht26tKOG;y1L)Nr+^t?7(%Ydmvk_V&m~b*J z?ZKP7l>_Z(le`eWYf{q~-ovfM0JOsfm8GH5V|Z`3OrRodP^&f6)fnF0?K)7MY*2+7 zs#71{yk+=6ok?+s@vLZ7Q+D8YZ5wzWemA1@K0KtR+1iyzYDVXK@Zj3#kh_%)btd^l z^OxQH2l-1)Y?6=QcMY1_n@?$22$UGOt%w`iko<|?HR)rpgvIE^duT%7C!XZuC~;2ZRpEiaZ3TJy-lueKsBWM0#yc7 zs10hchKhWZ4{Yo`%wOtbgBk;rm>p)_(*ZZ8PCa=OmpqUPK{HXaWcoCk*KaW<$vbJ{ zq_?~ir%g&oszxtFPInvfG{8;iOO)j1FzK;~q&_~Jwob2sGYbWqNEM_D*4B#_s{xVXZtmjdJ3mqTK zn^?T@&Hx`VpI;sxgP$!>w2(p=(~=1bv2SJr2jX{ggs!o%(`FkWile!3Kcj`Kb2fHP| zp(_UywM{GN(jZ=kJ{$xsQ4D++o6;_t_%5ByEagZNB5T4P7z@F16Al0@mKzgp3fO^O zAIyW>=Z*H4f^1Mh25Dl5kMt1X074nUCIrV&AITfxN(l8G!o8YFWBjFB$Xg3B4%wth z2{XsUPm1%7AD1v8X`;8(q6$yBLwNfhF@OcjCLw72G2piWi@DnX@@UHFm3ELdz|YI* z=(avot3RJB|3gdr^SU@_Cu4efuW*vflcube_{fPP&~{>fK~9l=U{WCEStf* z(qFT<2ire^CXe8r%zhSSjNq-_*gwHv8jcbMBj9jG`!h?=Mrnhl&yJctZEDYiq{!*h zr%jg{Ebx)eB7`pVktQP8Bjh2xAf395;`Q8%;GOa?3Kt8Kr~sBk!YJ-OzZ^IPaI&#j z{cXSxjQ9~^(XjuGu3xObu=Q9xOs6~0vh=p1;@h1InqzfGphgg*R z8p?4Kbcn_Dh>agJX)0o~{@wB9H5MDQqwzFnEbr!WbS>D7@X&~FuBBsRc~r!#sk+5? zP}bKu6W#<^=$P<>5c02(4{;sDaflBf4lVMLk`U)3rgcMj{pN|&r%jkXW~x5Rr38Pe zv1lHG6T-c1m@kOM2=Bg1YhqzYO9@mO%Y7Y^K`Xk}pg-M>Vr}gGZviFhnKNZ{zq7 z=WM`rf&Un>u!?BTc zO`pKMs?skay$1P=np)kaV1XlP+3DX1>ZZuKtued9PPvXvO*ku|p38QpCJw;vnIT4uHywFLU{8rk;Pcs z!eZ8#@Q1()%kug=^xd22TS_u@p3d9P&kXgg;{UxQU&$6;30R~xnCma4b?}u&<98fl zf5cgc#h*FbPa@40-VIo!4Kwn#z;BVa0b-H25cT>?IOr0p!oP1-f(GB~10>Q`B69_P z7ex3+Xu$Qlt+yfOM zaXZ4w-o8>>q@P64d<+g#r%u;YUf4Xk{TAj+;XHCrg448k9`#M)UaZaxN=V|qE@9oD z9s4WYX?+rJrG$t0Qt#=!DODu#7*;r+dd=XTlV8L&DaBtJjfM-Z1&K~0o`|>(f;n66 zAN}{Thu1 zJO~5Q4nc_DATV3(BLt(j5A~&K!+A!Hsng;FD=HVz7jJXVfODX!M846WS%DztmI}TXu(dJqF4K^fI zGw+m%Z}`%p5xk|>kkl93cj)Kz*?eBj=4pES?uc0;`a6_uN)sz)BhgEbNxoVOL@T8A zdM~NwJNzZ~S~_{Y!&k6}>GbJ480Co>bnG2Ixp8uaZY)P4gV-@dOqww6t)#%F{G#WCO`}*!*r2DV@kzFV+6P|+K-Wp6F%;nwK z{zY_QF8{z~Wv0G!ecPDWD>Kz4^Y}G+R7IArbFVz74UBsv#TbiVC z6UI&V9*y7m&*91p6Ud~Eoj7LtnAjwZ`Uq%+O<>~QN}4_?VS=}GrY?a!hS3wcz){w#kf0?0kkcfy7ef2NQXZp36-k3v48 z(uGiinM2}$`+&R1>sj0jsYrKp~Q~8pHJAo3#I)W(;5u0!w z0Y5j^O+4Q7mxL|ais{?ua5UQNNO8WeG!ig6LO+h>Vbmxc)nvU#t&EUOSUI%^vsuuG&5WyA}CZq{>#_s@a zF1YMl?l1KRcpS1Th80E4T*QBAx^=~~y%0VGG2G(MK1UyVEvB#Eh1Ikyle^UPN4gL2 z#}Qmbx+@iB^0qEXNEgi!@(rd)`8i}=%zOC_L%Ntknv)1|+5T#kurdL z(qN_TQ4=1?HV6$?(w465F-Vs{A9Re?Ea6@*(W~@E3p-PECT?Z}M4Gjz7V95zhU~S2~9@Q=Ytkrh{29Z}=^pj)O)ESJgkV_)a!IevrSEf?2qh z{H5&(Um+Yrz*Feb9fT(c+kv;{LHH5sBLpI}LFj_e8(}0u0zxvv3WPNXNho(S;++Uz zA{;?Dg>VVs7D7Jom3jWLQqA|VdqD_9cm*K}p+CYXgh>c*ASVe+`+E0rNQ|BY}T>nh^w2w`};q4_6< z*B?V0amrT;1S5B)VKjcwUU;ixK3aVrNnE3cAT^6qQm&Srd1fic6uBX0v zJc^BOM7ep;XMj)S@%FwgK-U_f6GAkCH#{@q&umec6E%CE&zXPaBi(QiTL!U~ny^sT zwy<#O*}~%i3*BSVPs4Aq^)TT?{1)q+2~Wpw(KizoUOrD@!FNPWX5u^~+Gg4fSZqT~ z{2u(aEo2E`u}+%!ckx>ojJEL0Ht>h|Ed;Pd)4vYN#BqL78bW~)7mwFrk@lj{0yq&0kzWK+PAKv@ zC;CYjrvdjSL;^v?_ly|7=W7Wf@kOC1!A}~70t!%&ppo9Hrj?K`@FEsC^S2ovHPUTy zw)GSx*z1`Cn`(wnzkKfOb#SA;`fmg`Am>$oVrpau)4Y5>hYkFg9_RDvzPmow4Pvn{ z3+-#dV(fI7mVF2#CcYhQ`H*+3qVEm7P!J~l2>cGzU~*am`duGWvo*LZVB%Y&a^b>9 z`t&t?j&I;*f2jjt4@?d*F~$J)MVyLQ_}4(^w3c`7X6FA2`GtI$uouH^bQ{eyh=*;t6F6C z;rGb7eo_Qt(-l=VuNuEK#ZT(DK*!UVEEs36F61@X#I1B;9oSuGK0RIsv-t5=N?6Z* zYx-}~**NG`=pU+$@1@iB^}G)2w~b2I^9P94gCB8R;tTzZE)>E=g4k&T3?IZDH}KAF zLO;{bGTuQug$$YSA^aBl-Gu+aZ?Whi-&`b3vq5ZI z;7b@-TiEeAxaM=PIQSI9WR@qkQ9@WvI1R9i4Llw&8i=`U^e6@iLQ+gv9PsK5P=DFT zyUCu}J9U@wdc=Y-92S;Xp4RWA_M3RK`B#uGMENmd(e*)J_({qCOK?2kC!O10O~(QM zZ+TvTZ~elI4gO1^H&H3o-psqutDCux%fnr|ZT&tRvO>K-+(ipFi(%hQpKgYSEcy~e z?uwsu{ZIA5WFgbJ@F-_bEMz?qJ#x!jgCNwh6*~ME~ zIv<1(QtSQPgGzSsT5Q-sI=zc`_S}kep?71ThlJjAHiYwwgVbs_T$<;A7skTxh(#w> z!j!j1T=Ogam>qP>c5^RJlP(PDLYTh*J=!Q`9i-CT(A&vKZwwfQf_AEy{FUmoho81| zn~Hl)LJ_}-u8MhP3k#)Y!f{pzj19b^3Z{Vl;NH0s8nPdrt3+U~w@MPK3K?$V zik~Q0{D~flu=Sj7YMb!M^OR8phqbrS`&Yi#j}8VP7DMacjYHb;Ny2!POqwEtHp!qd zY3a^J{&w!i&{MO%<|lm%jvA*Hh?^t(9mIk$LCDqyq3!pSaELc^JNj!yrC_Z1^G6Ui z%vsuY2=@cRZat~=pxW0kc6Sc(y0SOb_=X3|dDQ6}-d#RG3%=nK*u(qu$2UAcZa}q* zd5By_J&XA(@|jVa;53@>~+Si*g+ zVTvSGXuktwPG6Ql?}i`d+>(WKN2*!MyU4SsPbr!(j20kLLZzqlYAJl07fZQ4p1!+L ziaOKC=P(+dEkCUsO?S#r<&?v`A--q%v@(ts9Kmt@y2HG#xkAIpKsBf zcGlyQ7h&*jg_pydT7JhH$zjyzJLs5MHRz90-ii{h za&8U7a9pWD2fyR(=G`#!=p#mDi$HKj6k#pv%+B2%U|qf8edbHK9#`SIhB@_4#&96j7bEl*&8 z(7Y2E?|n4)1aFQqH=h8j4$yItD3SaVAV+HY6MvaK^r8_z;qq=ErT+xM$@I|$CmglK zKy7Ez4?m&UG^%|P%}MipS{XxQ&fv^(#7XWV=hIY?oQLFSYJCEOxAi1=R787DqFN8S zB(Nj>o>pd2?NSW9-zg0IZt8RjP25VapTaOowCWUi?9o`%>uX7b)r)z13i%o|ep*?m zml|{$r4~?!)4Vr0n0^|3+C*QUMkz&f=`;_v6g7WZ=}oP_Lkn7*f%p_P*G9EQ7`kx| zJI#~y`WfDZJ#0>E&cF-}Y#{`|OB?8TsL4RObq0f)MLuVF6D6YMQ~Ig|eGIydXh&}43*`Gh0~t+Me@5SvsrD~m@^0$z3rNq= zR1ta5I*}Mi-->7$-T4I!I7&_b#b1?M(CmL<%0%Gm<2ke}M(`hQ$3gUiz;2?3=XewA zzP=D^iH<$u_(1Cs?reDok|Q+x910&v+s^R`XolN)G_{N(&!Y}bQ$QQ?h=4r}zJRR#DE$KO0ipTf0`JWxj-q21csCmPE9P+W z8$uh6xy74M_OCn?z5Mo9^m!|}UF6dMrC;O&Ein_GR^FuAWza>BF7o=83cx4nRw*R4 z^(CmV{E1I1FY5S7mw0`A&L;g5Bz_Z>T;km=+3{l3yZ)O8QoG-{AG?x3BYxw(Fg6>0 z18w|lYT~Il`@}JKIGKuU%2ww?+PCT{k!1`gauU~ zQubvT<6Hi%P}9EfaZ=5zU||_`y^5(Dwv_sQ$6M)Y04v`t+5s%fT&53=n21?O&ZC;w zKwb1+wGy;cAiV|6MY?6;a-o8>NwNJd$1{xApd_=9SR~QBbGTb{=Ng#dvBFj>*4FBT zK_l5yr{B?{JbLqYG`xV8iwL^%cL;+&$=5Nc5!CcL`W#Q|09m|YZk!cAn*;HKh_;KU z33=b(9Lrqe8%WBc{x>kf(X>EBoOawm0m<~_h9+Wt{y>yMAO3-=X3>`-N~H55nn+Ln z040>ypMYA>BoWP`#Ud)E&3~e$!|42Vl6_nV$Z;_`f8F9fSi@@HMi1KlB$hsHsq23m8ZC|{-NyXzr**ecqCZ`|jV6qw z)_A{?suoGP988S>tZQY`hPbFDd=u2QoCjMIf%4|$^cy&{t{n0e zet|sinyR3cnCiDc$F5u;-#eHSMbzgGdY48E?w~D6^tp&e(w#f#>u9QX7g0QQy$jw# z7b3D8{mpjR?OFM6^u=A?228tk7u;$~HUCDGL@ocujMt53}JE3EtmCEVk!AOjx)wA}miX=M`iKPpzpdoV`8wfm?&lseqUuwga5&xfM;OZQRG zNoxE6xD@ImqD-10qD}PS1K@_yB>^Q;jenzKo2b*jkv)%={u={zkxu;^Bp0dPLqM4{ z<{`!o(yQM=ZMgo!8?uK!)aD=X#-C>Y zgCbMt{eQsTBaJIDwA!pX_YXAENx;#%-B1Bosc2kDz5nF($h!h_J364UGK|*!f!P)g znEWfCghp1N6Dc&Vg8NxEHL1ipdX4=L{7ooc*uJ9pWk_xtTurtdaJUVA zKVTkGjXwyu0j}Gd`ELMDd8HbE6Yww_d|d_AcB#gDD)3w;+f)zQ8h=8Wk4=gV!4nWfkEtdQJC2Ag7NwvlST@98~6>t=0g&KtGy zVdjY;`P6_-{0_iE$W3@R;CKU~hul(U{^~}ulnvw+a0EKw0v3@|F@Y!3FHw3V7(B(Y18=8^A)}6ks|Dd>l3k=bCy;!?5ELuoYLg zg%ld)&zE|`rz|v2nUUcZV4-P}xt`&@HnOH!t{eD&f@MvUBpUb++sc~a;0E5aJt~Bv z7;RMeIbfj}lA)?Z1BPL*AQVBi2D{4AzmXs&evpwNml|3vsq^pIuq_a@K}lee_9sg% z0jKrTT`_{~LjflN);a}v0pN)?^cjE;0WTaPf_^*TWE=b*!1*@#U+tkCvuy~jfZ$UQ zU<;xZ;Dojo+TdLQKLlR*`b7nu0PnNGcLTh{rh<6DM{V$L0zL`6IQtX%SJ!~dT(lu5 z0KrWVU^lA~d8nE*WZv&R`!9{q?KyPwt z8Q{!;)$r$lvp)C6``|EID6t;4)<^bwOT|Lm0M7uNIjow#;3aTs_i+9B3ekY?K~N6Z ztl$CQL4&JdAM_y3295!oh9`pj&_t2{ZNQrVoB7uRJ_i^Bpy7W2e8mR;&=Kp%0kp^@ z@B=G~ZCcnDa3FeU;%5U6vgvUl;E6-4@jn7i1Z+0oG2l7_s_~7ncW(gL#P^$zghU&H zcL2|_A=n7G%m#lP@L3zYa0X1YX;2f)FC&d2QGPk@5} zn=Pya9EKq=@y&pUuorvc|x58-@Ct_^9oVPOlvMK&xP z3fTVtadkg%R!sjN$LHR*KN2=V2&-12um~YpBq5YS2umS^e&j1(%MDSKL?MJI2_b|K zLI_33R|p}#A+&_}#{ORKne*vIdf*_%$d1&@15(m;3{11w%`%G2-}5l zF<$NB4LEPxx%PL#RcqVlI&uO9J;GbG8brf!A52HnLGu`%@B9f~;@pt)wu#%~D%{Mq zcM@*l@~_3yI7I27)pg`?3MRN?wgk_2Zp_57)SY&_;|fM`@6f@M@wB*0laY9c8|6>p zS;UVI`JdzR5HD$q*V~lS?#T+mS_(-stn)To3du%ziW?LA;hD~7VV(Due-2*e;KAw`R=KZj4Fw9-BeY;up z&knZuAgrsa`2wt~tGRR`1q&(YM2Q->E7%eyVO@UBld&$p=Be1eD6RVM1zUU()(wdH zBdi;c;8OAl1-dD;gwOB@MW;Ymto!Fng5G*i>HP0UrfHIz`hHv1~%gamb0ap zY=P}N;))*r$NFp79!YqB^cuhO*h(dblE~7EM2EIpnoppCRul}i0=z9A>)aYoa^4<)WV_P9g8+b-OU!}~^e z-Vq?z4(Ep)J{_KU;Vp~bc<(}or)%)2BMWI?n0V8}TYFR?UH9I>FJSe}+WQA<-R1+1 z<{bwPZ*|sQDLJucAw9fHXh7rZZ>+;RuR-R0k13>wcV>uxjCC|t2M_ICNDp^q=-|D5 z=rD)74+Bu`RUcbO4|jQppM6{*J=}d$b9kE^Ur3L4hmi0A5glH3Qrf^iC$L4%_hTK- zfg%6W6AS6#oDlL?VtX`$PJq)-Dx^oFD{;A_8V*a@VVn_XQ83+&hjVa?k19e+Avq5( z`6hZWo>Lcn5guND+vzPioZlSI8#v@H?F3?s*(mm9#rEObu_CAK^H{C826_O{k?)A4zmQupyx0L)I3bKqs@+Tfy6OKPA zmE1iIXtrH4H>;2g47U7p@lcn4D{i+zT;c6F*)Vz{UW^x|?QuAlh5~EwYdqoP*nthV zVQ+5~8)%M)l*bMo8*KIa;(@M1SL062WBqG!tBr$sIh|Zb!73}jqp^Qi=SJMDMQq?^ z+|iw#6BXYg#_z==-3Gjk^_ULp;6kj&cWB{qQb<0eU~q@+k}2VBpY6Bhg1L39uoKoZ zKeDBe?238j$69y9txk<^8JvnMaXA^9&#qUTJ+e>mQ@C%ohqV30WGMw5sgTYIc>N0A zICTx|h5MZnS8y7hf^7w(@c`#%a98$#y@&B79_sc8<1d+>cDR)Fa4!mGx)q*=XS)VQ z1D$X)HzxYya`Kz7{&WwFp`fK};8{G}c^O`&3L$@^ zHoP=&@qO_$#>DO+&gZa`a@XN8*pHc;unxJ_pH>-9!93UFm+(T@s6br87pY~W8H8?ZaDm;TVCd|+APmKxl3;ffbJ)`=|gDw68 z)-gB##6Me>TtOWL_JkTW&}#e4R$*JLv%uUMYt)D+oN%`g13S#z5wgIHZR0Ft<4``dvuQK|Fb>gPX(4xXq%n4<}$4F*4!9tCNnq1 zn#s%?V9ovJa;%G!c@wOQn|ZSm1rsQ!qC`D9FxV2hVx5-eL$OXv^Wk_<5YLiKj>K`P ztAF#LLVEF8Mxid(+i+Ez=H^l5YJA>BMpv4eD-Z1okU<8~YCQ zbX%w!jH_{rU73H=rI1{UhdW<~*Eo;HmAhGfsgT@A!RXWC#pGFB>-;rdzK2yPB;Vrr z1foLn9oAEdtOF~so;hUx8S{jqwf+V7JU!g)>*eIu{E1eNHL?m7SdTg~w^3YIsB|eL zZE@A!(L3U$ZcOZf^{6Jx?}P`k!bTKmjP=KTu?`8_&&Lrc(6gMZ!Zv>QX{}ta%oVTsh6>igx4RY}|cnNXdHqWmAM^T^$OIZWG@%e5AS71G8 z%Hmh!S;QGb=?WgjdI*)ppTrA^^Vg#^{yFx0=u6x&%}=jCg=858)%(T<{)_b_t8C!~ zH`Wua%s=8*&MUE=Y-RCZacAe>u|4TZd%R-D%;EaW)sF%VI%}XU)}S=+h$lLCz%!k9 z#dDo^$NzKQ6IZiGti4WHgD_lwi^+ZzXi!)}7py^JJ`n4Wn7d+)0rR0)$J~54))+D$ ziFL@#Ju!zUUjKVjpg~~?$Kgu%4*UstB_Bt(ct2duW4z3#;tJ=}u^#hf@iXvr=Ye>T zZNH|@b18^RU483qdF8{zF_=P4ou^<;EJK4&+`f=bB?_m)BFRmJ!nq#ufjSFE&eLjSxxac3Tp8J+99Dkggm3<{x6H#faoj5IA0#ESc z0~@izcGwwvg+U<7W-F6Xbrtge_mfrq*HQ&^AZO9v$xO&LtGbzlQL1E+(I_<6xuoZ~;3g4u3j z_&3(`0Ih)%?#M2)%jZM55~qWb4t-zv*24=eeh1#yRzUl&VLi;y;&0*M#5GZ|{l(-r z3iPByOZW>`iOT#8*2HG{^A9K_ z{YqUZ2rFo!Ka6mU?P@pwNE+bcvn2F*-=lbG=B{4d&gX_Ad;w4wufZ3vg|7aSScA;k zJLW>(mu70W4!ns=n)`L0tH;eR(ueh;-@uytt3tfT#k_cQ9zB#dt~sW*g07dc%bg$i zcOf11CsSV?{2psicMl%7i;X`Dbh&+*6jg}sgc@am&Zdo3eOy7E)|k76pUqs*-}hy!+QK}wy^bh znv36$^~hX{KZNzzT=QdCkJB~J#Co)@`B|(-?52yZe=kztJMc2Lr^o7YGZ&X%&3iV~ z(B-ySRc32&Bdn*%rl&FS%PG*+Z6TiE{6DP6 z(b@_Q-Yv5lP>pU_kEg9c>fo4QMHRmZ>uI!Ik>Vc*LtTIP0~7_*+zK1>HntvTs}8Bc z(ZP_VkQ{>t6VH}Hax5O}+!yOPycRzR&v8BluS}g@|G0ypV9_0M7hjCqxeiUjD~MZ% zX5#W|;tHO@om~D`xXQ)9!QEZFd=GAT6i?UB7HvX7UzgAY4|WY4hzGj(AUxK^FTgXL zFT^8V{#|&Xi%-I>M!NU^CsWYry0}GC@wDrsAH*w0MNh}`M@K(~r;Ley0=K+5`YGIb zT=Xn_;Ca0MZ_Yu|p!=GFs`KJ~{)QdtFPp-BGp2aoJv$39FZSj}zNEd$v&vJeZ>xtEtKM$9hu#2tW zZ3@br-@)yi-@_W^mcIyhcm4=#5L^5cJka?wJk)tY6@n?g5+R4+qoN_ zk9*OA&h!5Zwg!h_%>(93u;vl-zcCZdT3?Pek7NrUCmTkAzlFLQ$EB`*hwZrGV9@A3 zUU#wQV9gWh#Dk~f#n|F!^SKb+aC8iJK>O{?Z8|p`ox*MYp;d)+CS6K<#Zr-b^!@or z1y`dg72wZgR%k2ed;o7eF|`f}4NgC#kk0iLA^$6^Yk|2Xw{U}e35W77TX0D$ zJmYX0pabdk9Y2P3d9(&6_2LsZ%;lAZtb?2Li5XoRx(0u7Ebj|)?HC;V!10Cj;?gSk zkiPtliEG8;;Blw(QZDNN?|-nu?+4Ihx5Alcb5Fn?;FB2XF8>4TG_)#Dv!)5f|D$X64h0ns!5V~i247MM3Py>Hr`w$1?}I2d~83Zpavhu_7e*7Dr`Tc zAYbbyGQARd7Td2(u+Nj(xHS6C?O2@_K3PdY&E3(j;M#klU&8~|PMy5_jrAK0*}^G> z^?MBFkFkE6!Tfoy{+D}l{tcQG6PA&nA8W`K&I&x+`FlLy`A6)h?v*$$b@ks?aTc*b zHWBT%2V;y5tt3fj&8>TI8mR-r!g*WKg^ypcM-~M)?appug?5OJ!0Lc`Bx6RqbZlsF z?@_#IMf_l_L-4EXkPboHy?8&seXnK55(O*ni+i90Zg+q5uDH(w(YxcShobkyeh+lQ zajC1{pKFQomxK*^teW?bXum^n>5zjtEm(mie0LZV3mxhl683WqY736V%^ryzI5Fpw zamy|EoJG1cOlt5J&i%3La49*Hg1FSxpN%UQ*cfP#403UG;0D}+4lJdTUK@TCoV8I% zKEWf;4~K}1hW!0aztmyzCV0rBW{&^*6ijdx_QES3vjk2-JbqSmXWZ(==mYQ)j(N5e zlf!Veiywuj(Y`Wt19K_XFOH;(UjJV~!RiYtlZue=plk`mAI1HMr!ylBe2n$8CE3D9 zGVuf#*TaeQGbR?_5U(5@KO43W*3X}4(e*FsLO}%$q@$V@oQ?H+DA`g-&d0-Oz~Z-K z{Z@*_@5W1A{7tOiP_g(sc1$zZsd>?E-N~8FIV2huH?Z;{qzd6|Ax8ToN;pP-5J|}ZnKLxK+ zptHa#ypHYHZd9Qz*y5{jHwGOWnl`xYewi)a8f(y+x5xHtIcl$GYWMoTHwE@HI!d@A z*c!MJYm}RZW1Uv!5!ilnNA;fww)j(+-{MKOr9knea)|;<_?iNpCgyLkn<|sKVY4hx;R~lOFFGA;Z+KB8kuL@ zTu4t#&E~4G!gWAX@dllFzu@I~o|og*?mXWYH@Pr=xa|zw3EMm}wlm{z+AFbvaU@i~ z9(^nJm&@Dn{CP1x5!(+MX_vkpOn+I5$(vXm%9dg>AFD&=cRMrw)FUf+p9H_lKg4mV ztKWJw*MB--_Xh*9_P~Tfw##Q=ZP0}9QmvXpqzxJ!uBMA!d)kA4mMHLBxCT#pJ8oe; zUj9LJasPEY*bv91uD*%0Rx^V9P?b3%9z*BNNFbJ^ACmOzo8)O6)#4ye$dMNBkt?G5>H`;=_?^r0u zv1+2qeC z#(?=8tTAFf4=;2cjF&rKgv&W3+W#!YFA6H1XDEuuqxdCfXrK6mwcp+ZI2AKD}g{hl~sv^{X@D@J*rDJCA`K)BF*D-5J zg68r)ZsTn=My>f`yoNX@P8y$ubxdsq|HC?j=Ha*Vt`}2ptFXc!u%>cz-#eK9H8&3| zWLxz99jt)4c|xdg^PRlQMUSh4yG`UXpsdi|6?+{sir2pFw%%R5{%6pZk*^Ktfi+0e zYX#ou9zLSU2H71|uM!0sBv#PD?Q&hcj>P(fz--|iEXS$z*E&dB0K!@z&)anr4u)ygd zpo87;bn09FVR(4b+FVL{P%w`Qd}=N|%`U;STm$#vvVX+}7vNPcz8ZIGy0*dOf4GIq zZ`+Mg@7xQkgW1CS|9vRX7Gw*bP{i8B<`c2~*rMivYl1C4605`JQCJ&f9)s0k^G#SA zlrH-G-*^htV@tRVtH&Y(EpJgIb66)0x@AixxaMb9Vjz zgM$CC#p(O=?2+vb4+Fa;fHuozajWp|t=s7fK(8V_);z=NIJ;2ACB7PiGJTeVKAsjUu-2v%!q?|Qt3 z^)=77pD&wHu)=N8=eTNXe!h)#HE=k$w{o`dRz2R}l6cw;#XVg7GTdos{0!+-+z;DX z_MY-_$#&@)3Pw_3-r;aYH7l@*<`_H;Tl{j|&gDdst?DVDx;6Y9WQmKC9cGF)=b7jUH;S(1v7Sx4Lpe3?HoNFm;F07@DU#A z8Y~{kpXaM$enY(YvY1~byF;`GE~9?7@cMTz3R<{=eXx3L37xUF$b0}k1lw70PO!z# z!|I@UFxJocnlHk0qD#rYC|DQ^l1uR_=US{iU=5V;EVj^m71kD;ufc1z*S@;?a)(WzPJ07eRm`7r*z&r|T1?Dl>AA*~3T)3Zz zE^(_|SN{wJO*+Ocd=7WsGx`O*!g&r}#tQAU`W_F%{aK4PsKwElvy~Q;&9U;$TjH#P z>Gh{kvNZ*9sjIJ^%HMkFP{%L^DqLJ0K6q^ds?{jz=Hj|zI?P%5gD^je99B_CF2J3+ z_LST8{|*XzP_P~;+Je{cvDhvqD{%)^2=T3Y@j-H0_)eV z?SA4YK29Tt>u(|HMS*^%dQNEI!(eM*G1gC7mxuU<$7Hs6bG(XO+>QcmKxeF9v9|mR zgDwAJ%+G9>(${|K@%>pr7RS@DemlF2l5~rLt$`(2KW%OP0(ZDPUS6B_=6=D&H^2j3 zyc3?WPboIA9|cof!kJjVn{6vN8!vV7@pzt#--gTfjrn)rp3ZmS)y|Xfl+u2&!ek0s zbdH{iJ9UYE5Vxw1o{sek+@tBC_Ryw%GFyjR;x$)<4;+wjFmB11X-I+&(fPR4#0{$3 zDcBk}3kh?vj%l_OlQ*z_9$m*&4g3;p@!zlxfq6C7Poi6X8}3|Wi?=A1v`?U zpFy_@eS$51Jk}vHpNRF-=azp>u*FAW9WwJM+>AY99&;??ztR=lL_%lh@p!!RZFq|F z9eB3$U3jkZB)rObGWK6$om!$m$H;p0Al4x z(|L=Avutq4AB%OCRTkADu75{9!h1keNCy!OjKw-;O{k#D@dsF^;j(ZosC<+yaPj+R z@$wrV7xI^5jS=fW`)BzGKi)aS-*9`hti;9PdkW@p9%oA-`4Q`b$#gJ1%{HgyWiGxY zKFuAnt?^mT6?mX~=d=y>?~JxpJmfR}i^+}@3~~*0kVAKLb=wukrLO*Iwn!bSqEN^5 zAFK|g7c2JI0nZiE4za`1Jva=jLuJ7)Q^@X0n|rsCEfexCUzssDYYbYoI?K zNL*W_`1oLp--ZXd_U^!wobSSmAWLO=s-F~I0$`$t^V;?8(=;WcXs*Lq;?IC zq(EC_6-Hry7L37hsjI)Adqf?gmSJA_`3WW>w$RRsW1nOmVGpEZh_mEbtUXdeBRXqZ z&*ZR|7z7)R9iGBMeT=FaUjsgv; z#i2u6J;O}LG4B+%@C2+u)icCz#2Q3PgWtd!q~<@d##Fmde{W_+4N|Lr-Yj1KYgAf= z(hI!*PmgDX1~+<k!?XCEC`crt0&F&Tn~^oseH;AL)w_u{cv#j|8S zp5$EmgMt~Zp!G?t!1+i#w3B&vbqX&vkwUFLHhj*E`R{HSAIAz}tAR^E-H0Fyo&`08=p5B`m^|oIk=d zoIk;HoIk@lgto$^c&YQ(c%}2VSYv`k^M5h)G+WywESXH~fVHcSeqtUGa(;keY*ujHOj$IR{tcYBPP58K3aCKHq9 z5v@{l`!`tU`O@IQbC^jvt(gGR_++d@*k0SOJD_hU7|brR26uS5kRBuR*;r%1{4lO@ z`9EUK1D&}CQwJ`5g$^-jD?rlg_vD;&sT6fCr(VbmfQ*l*hZ9k_E1-)|>j>}az z!CCpWx%`rgYXw(1EB}5xo_Qo&cz;3he(v@E!xRiWH6}cYTMduj{r(s?!|4_?Xvo>(s&WhduALj;TIi68+1)ESX$9Xfn(0L2I#<>+%hq8q)9AI_W+#0uc z-X4!~Zih?$)o6PPCb)!M@HFS$@EYfixY;#vg?nRv`P~=CrLO+h2e=>L5ZHIeuXvT~ zzjj$Alf6dmpRaOU*rlDzGQY_n(;nE7R&+0C*CaN--5NrEPpZ9G3K(L zc6iIT3+W-K2|gKXkMd?(8sERAcujs3-Gkn-Ijxd2x= zUx-g~E?rE)99J+D`(t<+j!RvAB@>G}P+iRS$RxH%9k!d)f3P}S9S-T~^Vgk-CgVj% zubr4U{uHQ(+57Q4Y-RxsVB4i~TGnt{vjOe20lNMl zM8O%>&r(b-s^N`98sNq!(LLkc!H|U;nwqSBN<0Ot1LgHHtu!TDocyUN9OLd5|?dK~O6jZnhgYbCg z3-CZH*xv_k56;$E0R&brOR`6IZ{|OgY{!`A% z|5W*F*UujK+$E^Om(Hrtxc|Ca+!V)!kK;Qle~(=LUM{Zo_rYt|uL`H;Dx99HaE7z; zN9FRzxVTnule6-l$>l%SKdwJL<}c(be4VTCt&3{~-#Kdq8*x$aV`5`nB-So<^_w~? zf4>22zpv26C1?c)I;+B2*yo?);>thIS^48~`M0{b@^3G>0#$e^SK$>GSB2M{mH&M% z|3?>B{z_-%H$P+D4JfssATD+Fn>(vQr(A{oTwE*Y;;j5rbNQ#cxbn|%CcjjFZLY#~ zE%{KYQL_~$%y1*-5*u0r9=xPP>QGH2!Qfc==*$;Fkw zv$OJh`uq~-eQ%eb3dcFC!lk|f`L!;t{F1Zs@5|-i@8Zgz=3G*Rw{sQVaS5vMp0n~- z5wa)A_GaGSnrg!e!2?aQE5@>Q%Se`Ga!#7le4a{i<+buEIUJ3ir9V^6z)n z3f|A>hG(Z69M;b+Z9+j@>gv~bR)tPkg^j_|TwE(S-dXvzx%|?(HvZC;@TO6&!UMSq54pHj@QAZk z@P01;Ll;;6VrS+5UCLE(n@^YO>Knw}k8mF z!WFp+SGu?=40l%kgSq_aF0TB?oRz<5-TYGWkxNj8Pn=bue%%U5F}@a0x45CR@^`|q ziAKrJF0S^goXd3mKQ>pPuS-yclbp4JVY&RPU0nIsIxBxlF8=`+XZ&+V;|f$^UarF1 zF0K{4DY5a{~i@$}n0`mgwkNH9z z7cR%n+Mrc<>}A@Z^!(?^HWYNPja&E^ZZaaS;BVZ=Ik{ln6*jeBO@&t?)2f(L0@uT!ZTI4!Gy#v4cD1IZMc7qNpKRw3k@CW>bga)ff(k)tz%U1`k#Isxn zhU3MTyTAXBpkN3Mu1^CR6OZFnuEI>*X;|C?&)}XTE0aA!{#ST7wn4YS;3TPb?u4tH z`^#6CVuNQ=FnoCQ*|_61(Sxu$m@UQR0zAz5LOj;_V*I@GP+UO=to~)Vs^ki;puj(+ z`bw-VunNPmw%9xZYm3d-WB*?84cH&Tu{bWgA+eCZ|7#a_EoR586QfkesDdmV!(|*( zZBcuyLAm`R{wRgZgU`g;BJ%^7W4iWZJZ(PYlT#eB)uH{XvHzpgYajCdr*@HEfoTQf zTn{y99>;zQX1cgW`7_SSe?OQ1p^Gbjv9t2m3}*cM71X-~RVe-+JqwE}w8cJuM;BLq z2WRE?%;ooXapfOZas{gJ?_7n;U0fB0IV*okF8=`+SN=oJ%6~hTUwX$SsKR^Bs;~kt zb7#TNxYM=qtoQ}{J@T8Yul80utGyN%u9II%Hm4vib@f|1tHNIER!H`7ajl@Uv+_^O z<)7^0%CB)wum7VcIR5&|%N5zCQ@oprv4Gr9c$GiA=yvF%9oQ#h3?@&I6Om7cr178bLkDhzN|g)6fPp%0Cc;V!QH z5zfk=lFNU<#g+e1>ac!Qcq3Qgtz3l#&dUEjm;a-SYXvKvmA}Ei*4?A!*!DmF;=Wu3 zVNr#uT!lScT={!BE5COx|2P*{{t3>?{}*28_5Yd_ zmI~tfJm4+C*-H4^Kb}jxMTox{Z1MTHW>owZ?eBOfZc2hCrtL~YnY-Q0Rf$`YkS)bz z7re&B_rRlxmxl&U!8JF;nXf-ScyxG-Co33(hr9SVyaVx#LjBT<6ijmoui};@GzbYl z;rTB9D_-O}u+62+jALR4+TcFU?Qm1qq273CjF*zW6pW1p$;o&xDr^usFcQyn@f+|g z*MV7hm5aY16SrNw9JjnNcJN0$ZEbx%|JU;0>>`)2HJ;+!8n2*2lhC0fakH_p!DH}N zbhufFUyiF>{3_hXc?2G6*7a{R1^=)DYv38|$G~%VqE#UO1w7Mv4xZ!uD(*#xigpO` z(wkz3>+tBCGc*4A(>Vn*LV^4T?(G_AeHmlG#ka@D5^oq*&=YHvXG<~ZjWx>6$Kk8+ zdK75XUl|N_{uPtq6pSLlUhh8^Yz;htHR{bz;fb!nrNI{e8tWLFzr`9e=I`)4yuQ}2 z9<`{=3M^rBtWj>>5--ENW0B?`5^VAASYyO|1lAxlABA;@&AqVBiZK82>2(Tp+F8Q! zScA%ZBG!3pJ{jvQG1p+7_vZdsW59eS)*&^Yjdcja{8vl{QQ+tH3vgWc`+&2i(($?c z+gx08`yI~8pPkEpDT{~olkiHe!dJNp-?+F|u-sWIXmI(u8_)>HrLKNGXXWpJm*33m zf1THw+xw*j@iaLVuVmD>3i0W|S))898#fylx#>A=h3ljPt|o*9xS8S9Xl=VBeQ;8OAi1%Bdr3&*9de#jSmGMXNzV}kdHp2phZ^qAsv zzvNNs_&6%*J)}pl2Bij>-o#qq+S7Ue18#L^>#z!5|NcZlhqVPftp*RdF%H63S0_m| zahnIu4$fNOD>k?vaXYW)2V4AIJa=L|t#=-tIgRW3UqwN`yR1irWDmUP?&!Vn=zF5~ z!Q01Om~_U2oDaaY&IjR<&WGS9f*JqCq&o$xUBVH#340)0ipf#9rE@Plz_}0B9<%)8 zu|K3I;<(h+U-BuRo@0-32(#z^zf6G+K|1kp%znYzf^?$bn08#kT@ri1zG`(N)*c(m zFxD}C3u_D0Hyp@s_8H$H#WqHc!rCD7O;~%ZT=S0x%?A`{m(QY`YOvyS-raT;`eW_# zuEdppKh`cZ{}*cy+1vL!F-XG}rtO{V_J9WAWq8UY4k_zblgSlIxGx^#D{(XD;n?re z5z1e?@J8ZNMm-Jo3wz{x7uO1>;a0A_hjE9=?*0EqDOko9*wniiSCfz}h2&G*b8Og! zjG2blumw|Nya^sc-0JUv2e|xG@MvszP}j*fy669mreF~r$QFLj2dhKooADalivmqF zvx6=E5>^Mzuizo>Td=R;8sf!Je`RX-{l8x+P>-#F-_?NgpIBR9@io{Vl6oAMy81~v zB@%GqvsGW=Jj;Xz~@(;tMjt|CT*n@%|H&rJ4Y6a}5f8l93?Es#HM>@ZSCpfRd zot?KC!7HEXvHk6Ehnp*tVWIsVBN+d!D6kb=LP9g=`|x6Rxy9$>arofS!0*A3h2Mw> z`Q|lvIr+y>pbcs}GPA{Z9Lf2o9$P^N60`@*yJBszd3UTWHt&hGhs>SuENp|cf3U^R z#M(gf*(D0J2drQa)-Ez%fc-JO5XXg2GCAv*j>FSt#a(_Yu6Z{4c0Ap+Uz$k4YFBU% z_A9&($EB|R8U~>noKK-f^`BTPw3+h|z9z5sY|vhdwL+U2?|1Fd;Zps}6igcz?*Uif z4$s9N*X6tlHzVIBnr*IQmy@4f8#v0B24|gSX3hCZym)Qr17V8-)tg`@C7=dr=l zwZ*Jpr|Z{^@0#=Oc!jIKH!hnU+wY9Knsxm@kb+t(z}@ip*W(sln~RUic?_QJ>W{<2 zc`rD-$7`5;h-a|J?Ct$zRFb@c*S`PXo`OCv#U57SWzKu%yl>9?FRKdxS%F zMKEM3Bv-F>di`Y#P_W1~Fe>LUc$tfj!`)wt9h!jqI^TtBobSVPoF6dT^?$k*gdRSI z7r6>EaSO&ow(wK))=z&s-^i#?r4}=84BsO;f`Oqf#IxK5&Q{O2kqL>Y88L~*9x1E zpgWpVR&j^pJPGTxSri&rinYboKQLxe#$Z8;4 z8YWj^e+aI@apBi(u|EX8e&Ur7^{YrK6dNYDVQo-#F*_u4vDRmMu+->hju8c0r4@KB zh}D7gJf(rV@oZcc8XV<1pk4R?_IqG@&X3`iZ^b<}6A!*+?d86dd``jWw`0QBIGG>4 zJm(*CUWv^A`5HXKXuAddoqF|V7;DwxD z$@w)r-Q~Z92Q7*ndKWKsUW5})yKE^YAK{ibTR)e}PbjEz37_Ha*e<7y$7Z$$n&JV( zn^B<4ZO34X?~QeyoA<>-o%hE#-Qr&VS5vUuB^-=bI(NfXAUf%Jt27pMKc<>KPv*JABL zi_gP4jjjGB|D|CUKNjmWo*vq7x||M_NU*ElkrZf)%Sq7Ha4gno*&=lC6|B?Byb9~A zFt`1VmtqXkDPaXqVGYWT!Ck+nKCTJveSk|kCR>CRZuSGe)s5|~)Dy7p@y|J5yJFq= z)<3T6XL3H8Lu8At9p{c^{P|Hjm;~>O@M<@ThvE(&#!-Gb?&^G1&LeWZ9`|$kH;!fe zPjdz1Ntok&d(L;~d@o+)@~7g}&JW{e|A`%*ffwJp_Ue~>TB4wjD`<2RJ;dcYB%D^e z;a1N5@I>bk*sox8&Nt$Yt^?z7zmH;vO1D$6#ueP1^W>bT;>yLbfroQ`6en~r9aC(; z$HCcg=T|bZHYm81d_h463U;7GTio>K%vNCotUY8d$J#^YP4FPR3k9m*CD`HzV(l?= zS3DhO6B~d3zaSJ?!i9Jq2{yCc6>RZISjW&j8T*N8Dvk@^kidRoTFySukzKjK<+urjvT^Hry=Yy3*c}wCa21;4HO`yiijU)<+bZXZ zoZH}jF27yQ?eWkwo?ic$=P8)>XH4W~ECn4^kS@ifFYe@g67KGN3hwKC8Xo980AJvI79Qe!4jzuP_0xg# zC>ZY&2ID)NFT#WR#18%o59=R&DZYpN=IH_Dp%cNjK@Z>=#5W4@_cMp}(}52uc*!Ls zw`8^k8sK+`ZyXxfCD`J-;iawv{emriDy}1Lr}g!z-Ru7wDEOO%^}-5f1zQ8p<3m9em<8#-9o-;VBaC#_NX$mIhn=Yy2Q_J472!$ZYZE_z73PbFjq^z%RJ?ITILv zDzJp}NSKH17)=Pa_?`Ge;<~1$BeTWV$K70f zuV9PsgL@ITJvboP;%DJgVttN(D6oWE@Yy8TX*4I;;;-V1h&QA_Tkun`#q01;*MU}d zX14gY_!{Eb!u7v31)94pVSB8(+uRNh3evk^?QvY{>UY8Z`u@)^JY0r(B)x^>HvUI0 z*Seb4P)V2f0e|sqINVh(QSdeey1I1^34i~O$7Iq#5$kop0c&_$tyg$}5WW)Y+F&bq z6?b*9`O1;rd%h9;aZ~=W!Q3ji)$2A3TK?wSq0~S~tE;&fDR+u6|p*#<@N2{)PMgUsYC+ zb(j_GnR6#R@Qc{N{qfSJ(FfrUUq&CAbB~;l#+|?9^}p?+J{0tI4V-|dJD-BJ%d@4J zoQ5?f%meTo_tx!MxW%0@ehyxBbo6<+vg8s5Q!wG*G2tTI!NvcD`#N8W{lrv@^!QdTUbTi78K{9oC+6=vpqmD@s{*LP!oh$iPe z70+{r@L}Bjt9Zy~+{O4G>{wuiW*RjDj@ObC>Ilq_lA|0b?uENK7 zjq~StpgZPY;+f9N@LcEr;^ofYV?RcI#BpJatfasXk`s9`sx25umX7&etNHjHTU@D$ z1>c0V%jbsp9~>fe$i_^khQ+i4=1Z|Q;4t!a%%8*RaQKr=Df!j)NXK-eyVuKs9jaR4nCH0GMB~#Gyzp=p+a0lm8@L=cu zc)0UGJj3}sJlFZcoG&q#(*42>2nDNMg%X~?pt4sw58;KlBJD1(mhqbJVuwG$Q;4Uh z9lO8bB*wt^G2RsSA>Jy<264yW5@snTdrx8uNywIBvM(O#yg%;CJ)gy^u{vlz7^?&3 zZg?iP4fwxcix0ssOyvE4d!=(vR*=Q%(0%xA8Yoht({4dAd{WN$=R6HhbNP?pjw@mZ zp17C&KiU;MLxOsoEnF<{uef8_f^UK?z8tHA<{z-1sD8q6sjIKU{*bP^H;jKJX&0B@ z#}>K{ZJKjSyu`(~&bb1Y{n$FJlg|w2+zwZ}_|BzVK^0!j7|32|G)xY}wN&U!le+Eh zFgbI!27bCd=Z<)^TfshfymJ>k#kq7a1#?_Mcf82?$l$J_19#-&_vCyZUgqjQfLA$B z$1Q(qZF{JcJRS^zuP(mh2${2 zhzcD-hwco{y3B8Otp=$O{7pTE3BZ=)R>_7`Z;fiJBJ1o-vp0zZiyE< zZyj7+$Tr~a7}xn%NG8XE)KhWtOWY$5{#0;f*noW=SU27!=L2y^>d(~t zuU$Gj6i}a~ki4ApT-?{K@J&3)`5nC6`GeqgVT=1tTQ`2PIh%j@!!iXeR>dtk121zv z2bcdA;}-;JK7K}@(M=Lxvk>KMNZcXYlF*E&Ct^Yok_!_!Ny!b}x7 zKZEBu&&EsHqU_pGO#X{kW4q_u_+dUf_Gj$i=6H#7tDLvPC7)19!3tMlM?B@P*x)WX z?~(Ifc&5wW4|n`utY4k;ArEu@`GoEy^l%l9#7*vwTR0RCbMedZH0P^w9+C6)c!|ru z@nOclFSwb6RW9K++>#D73xnttymU?6qBrnr=lMCmm-8Y#f%fbW)|V(4a!(wkJ55iL zYL{>gzZi26EBHE)z!K9UvKX|#3D6= zTl@>GF`*^B{(VJ3CkpnVK)Y~*$1^OByM+ROUw$i}jnHj!XQFy3brPM>ZMAuF13pN?ZFoA0iJ#0%G2P>t z?^~~!-p2O~^{!-r(tRQT3A$bY6D#l$tH|IBS2N$1@dpN&`CprHo=TB3Y;tD>epjm_HuXFwu zw{!6y@N&)y`*Zqck0;5WSTEId79EIdU4Az_!TAWe|?-B0ddIx96h`$x& zd=l>K+N;6CSYdhCBct#_7a#is;YTh55eguXO9eea^3j<UCU$?FOO_S7O`6t)AkR%f%1HJze}lJj}&QcTq5b0=xRn z!(-QrJzjvDHEolWasAXTt9UxI?UC(s-YMsuaYyP~{_c1p>uZv2P$@Z?g5~SSgwt_( zv*@#O9+dM1xP!|dg1b9kifi4)s}|qB)?EKf6f9g@P)x4Ei=D5*E#2Hb68lFijKZ1+ zvV})3Va)^Po3Kth^LVVYEL}>>{kKtYA_<#PqGS9@uvK^sUqF1r5MLQ=@n5k{GxP6w zEZ!jGZ}&`Qi&tWuby^tz#bgHxW>8>*>X=}wa4gnoY3_@4TA5G6It$FFV4Vf#({Kg0 zTd>i=#5Mo(U2h6Bimk%USfki{3+{m%P@p|DC)nbzVvTb1>sV)r`Aw{|$UGnGEC|=% zV)8BpItwh}eKpWO`a^s>aXU-&bywN)8(@uUb0b_~$CyLB9`={_W;k84>mPshqQGC@ zA0Ng0LX6^0WTkgN+!1N+A02!(*MAMlv_pJNr<$);X`&g;E>ixpzjLY*Pfs)AQ~0wU zm)q>wF~lEQznESf)91gb!nfQ&=q$)8Feb{2=~<9YEWCTY9Eaa*PT$SmsX5-jcnYK3E;gUy zjvK`dSc>~Nf0Og~Isf=9=l=j#;TIAr%VUFo;Ev8~axOf#ZoCZlxi3y+yW#<^e#e~m zeva{1>k>MXu*ms9yu!I#aAmj}4$sA}%Xu`eY#ul0COmrM=vzw^w4%qhOXuKb&fnuT zZkM-so~z>~v4Jge-X`bm@Wd7|zirN?9VuAs5_ZXXH{4>=*uY+Rkn7-SxJSzvKNBx= zJ~!vV>$;R&L_w=9Vgo~QEi14)p2@1;3=Td;#u=r??9H;Caqn@Ji={bMBt= z5xB`Vaf5o|GUkbvntyaTy^MlZZsM4VE4Gal9>&$g)484e|KKWYgSPMjmsjTwxW?7r zEw~da)IH>_F|PT)klYyyQs0e7(%{CaipiT;6Hm4jllgci?jGX52V4A4th2_v2J5Uc z*JGV^VgBb)DlhVmM*o=55O*Mvt?}FRDoFs=j_rl$r zYw;n@58$rO@4w9WJJ=QcO~OIW?OsWe1D$*0YUe9(?JjW(ug0U@9(YtHzkQPJ(T|mn z?GTl{TH@ulE7)*j9lUjKhXfsUayupH}{nSa1KMCPBccDcC@YnPi>VeNABAGq52FRVeG zE_(m}ZwfT(twQoT&vJEcfOXnfyb;!EWnK^Kv@ulkP$XJ8UycO1IW8Mbqv@&mpbrzW`RX<4Y_wRt?!cR2eFjcdD=DXWAE~ZoE^aj~n zy|b&Jskt}SsO_pa!|c=GtWmx_ne*4UpBv@N@%-K6sQ(eSd{FZM>({7l`37TPTKwzv z!MI79kj2l(Q}(0-tWh2K0*@zNfmOfhJZ?x_{+@X39&v^H2HPFbH5S+QtBLEaAovD6 zdup6|pTYBJa7rQTz+b^>I`!*wF22d-x?}7>W88!du>59t(gR%oZ7ST0foqCwa09QujM=s&)n0!|G$8OIj+L{c)9aOIWNii3tYBWT;Vc2 zgAO$a9oq0M{z&EGo8T$aO7UXQg@Qhef&D{;vvF5!duTi!@B9+3bp9T9bl&uBUO72e z;~AY|2M>`;uHf)o!jX7|iywpM(%^cbgO}q4m?4qw@@aTj=eUAL@H;NP7|(PaYA~Pk zzh?hfp$P?Y`VdK)JUW>6(^d4z`FK3U)$fPjbt@c!Cv=JJkH!mK2cDVF`8V4o%qBtZ z$Le&N{TiIEAFs~&e|WyDpDf@kd8jh|@VW+JH(d2_^o_X50kK2l7jXWybOpDQAagdQ z9atP}9r!HgrMR7|{|#Q{=7I8e*kTvo6fbq&vJ?tzm-o#joSbtFUga7%1Fxx$TXYWY zd|>ni!Lz~!J)Vn~p3W6Ki+j2TUc}R#U&X7O=LOpyE55sKym8J=arr@OJ6K9KqF_=i zNLt|8&RYa`FJ_0NS1x{B&L`mcuKp=_#=&b>nDob$jFIfL=K4Q|g0i&*#pGGs!g-nE zhr|ZH3mzJF>8=acjd#p>Z`{h&?~FT}_4@xn3Oc$K4#KsTK>YuL?ay#e=Hjz*ejbl? z_2=Nlr?*LJnVWT1)#H;{pXQD9_5V)qahi0CTevIk?%WX%a^43IcJ6|^(%=>}sMGFj zJle(2$Mc*o3a;V)Gwsn+xrFC(egQ9a4ZMQO&gYL(jk7H(zR!!vL*oWC##5Y|;d#!@ z@%+^3^|z30M!|BIuoZ6CJvLYoOpntJpPq}KmGe2c+SR`RFLxe-%MPP`yZ&FQ22_wP zJhc*caK0LMcOHpHI^PgHph4EbCAs*QIWNO=sh_Q%qxKyI1AD{{{DfCH{~BBy_P~K3 ztQ+r^^I^FB$k^Ud_>?f{G)6AP_(~V{NJB*&NJsT&rWJ}Ub~a`=ks|!&*!;6 z-{*VI`Thc@^p1xaL^eClKqACHK}4L+@V4HeJ_GJMyp6NHj$g(1!u9)v`uT8I#Sg&4 z6)%DZDF5%k#c^fuK7!?n{}He`Y;L%vrv4<0o5Pz``cvVwE5ZO%;X=h{!101Vu&E5H z^m+t~e;+0o4R26f6!30pNG6gsmVT|pufls&`gQP>D?|V9Y@z=>uLSR7AWXr%3>tml zvo|Qnu&Ko-!xbw1Y4FItVFqpBIf~l{ygl$g;sg4>HW*_i7!Q{!2b18mtHKO!fk!I7 zE#T$BD0$P;|IOm};t1v|2bP>ijsE<2)5ZtZ|T2!za zj%?$U2UR!-~z=Ja5u%D!2JTI|0g(~BbcrXz7if9I@}GfSD){Hf}0Ns^#|cwDUq2u+kM2$ zru1jRH<}V-bv4|{_b=-Y_xB-~s0?Pnli;YQ<+otrF)EMo=f`b&;Mf) z$guOT1ZRT9H(Puw+)LTt4kzCbrk@4N7R~s(+v0gX`{kD!Sb(6dO7I}uX>91=uW)lt zMEon_JPwyB`<1XWI<#K}C*9b_Sr^PB`{8~{{|mffv|j%|VUwv0VsOJTp~L#{h6!z) z{fYkK)DK=k6`Bpp?eJn{KMU@w3UD{PSMfY}b$ncyfs4QyAM(TSaxySSDsRIpRh$0{ zei}A?;?z(568klj;H1L3#!k2N9pSiCkx9@QL3_m+@LI*W@OH&r;b&C;1` z_<8gV5y;&C04z0V^ou^F|7*dcmcdduX=0e*NqDv5Qh2Z8XW@~PLi-ot62-5=I~A|{ zl>XPAL!vW-2*1amIcy?s{uu!%z7Sq_bC|&;upHC*SH$TFzXD$x_$vz7=qJMB&+z0p z0?E(_Zh<8r!&Bia;T{O23ZDqr=vTmU>}I$WmUBJBt6(_=GyEL93Lc0+{Ka!I~yGIjUdr43K*36KjJJwAcx8R#jDd`IZQUZ3|)~dupV0;CEE|E&+=^E)LQWY)}UM12zr@z#EnR&VY^n zZg>-VGf_Psu+hH+e~8`$_+`L;{)oRuuvKM{{JGD@K{I%p(q9;`(O(RIru1V1Hu~}K z=jcs5I;nr{$_y_Sv z{d)=i5D1Jxe^?F@4G)0jkjn5NSPrQS4~5$*9uCWylF^TV(*}n;3YH@q$)79Yj71=a zLjDzTieUM?Zg?UrpI!}5hUL?;;agzYMH`+9%P!jR?XYaS4bOntH3#_%ZA19`*2(~6h`oO1hSzpycw1ci-tdhWxY525iIMw;ZI;W zemA@wmg9HBU%(>+lJ5n-{KE7?s+;+ntr6gScN5RQc+5~wdIO8pzWbw^# zdu2Zr?xy$-cp>?<4Dx#_9tiv#BF;0g1Z4PGcr83INbp&}M*lf10UQ1&tgCnz9A5nT z9jt3O{=G7gDm?z5H65G)hgW4)BUn2~R(eUF4(k%k>8eU!hUY7O9e!T%+W{8`{!jl>>pB1KSVNHDbcQRGgABOgEny$X zh5IY+8gLPlzZBqMOTWb8VtA@aFX#V{BPh8w%wQ#4u6PwJRpwv(0wS#2_yst;_^DM` zH_`bg)3GT~8b&f|URCySX|rtzBtz2#-+xszfPY*36TDpoco5#BSl+RotUg)Q4LDB% zpuqh?y}$ll6ACa%a0=lbl(?=(5$8^LI&8M(tKnWMgBL7b3y)O#*Wf;3r*poAdrXxY z_tqa?yN;k3gR6rKTYOEYQWRQi7K;@d+1*TCywKYvOv2!T|&e?^?3uvD4h z;qY*{1p=8V=LKx^3t(v?!wX@lLBkKhQp1K9!3RoM|AUFZdB+!28*G53%1wfeuh9DSy;ER z+niS@QDbdo>Sbp87c4cjjzq#^nE9m5y9N9PEcto!2oJ5)J%!JI5>W~U@)XPSDnscs zTVP${k1YNK)&Xx<>E)S{FJK+;mr5`G>%@0+E~lzA$>QVTycuB|HiV1r3i%|s`^s=b zaXvf*HZ$d);0?-tl*RG!mS6&$JSWWHW{Yoy`zZbGaId+c{VaHv;=3)LSCiw;0t5?H zf(PM-_k|As3a2P8w)k<2OW-tR|1`W@@pJI=)y(?;QVjvG+PC-(cztz(1ZO>5FfR=7 zJ-CnJO%{J>@kel>v6uD#GXxbz0Plo%DgN5x?=7x`_bdCK;G#c=0Um^>D|WsMnfad= z@F{_C5tw z4@-vYNhI?|1uUbcDACu)Tkv!odOo*!`jnOtuK;G^c?6aMw(!c2gG*HaGBFH;b&ZU$ zcoaNI)!2Brh!VD!49WHx*ttJ!vNdo^#cSb*v5%Y8?mq~M5!4SH6nxKG04E208@x_s z@Fu()?iJ{he&B=317U^@;FJeLZftQgpS}9`T%3ZSze>;wE?*itXbbl#4QICAaDn2< z@O4jxGhs129X2!J`|y1D)F9yf@am`3{eP)@D4}xD3*N3AOn{e@VNT#+iRe`T8{k4X zH_-2c7b<;fCA(z&bq@5s;FP#Bn1CQn@nZPlLbo(&_u z-r~^~kAt@<`-v7$hW9Fc+~V8*P5-O^T$tfZ3^d;f_fYzK;kg9N81shNi}3vC!}PDh z<%-u?{Eo#NB%*cCgiWvy?)pOL@Q}q-@MdM-aW9=x*`H-`2As4i^nVR3^MrqK{$Ged zCITZE49h%Vco;16fZ;#EG7lIY3ClcScr=_xFFy-`OhgX^Z1fMqGE4)GJAXwWWa>@DsMg$Fw0Nw=4sPHe&_hA`EhAZF# z#UH~mtc?CsxKQy9c#Ptm@YI0m|GY>H!CYnVjWC_8F&?E2Px{eklR8-sm&n<|@E* z;J!*<08bJ2*S`ekVg%b>3LW%>cPs7;yWk}3O_O{Vq&NI8kJab@eU`xic)M~?1-D-pI!xS0r&C0tD0F2@`aO z4=KLP;yxB%3FrMSOy3WFo=#Rkoy#!34K8^%)X&^U|J$Vmb1=|+pT+axij>78k<{mHzR4^uHeOg$`F@FjDa-+Di#NtC!6taO zO7J1Pe`Dxy8=O@h@(zo?wD@ayxw8M>;&>&33T5yUob>lFgM)CtO(8q`YjRzSli*p( zz5%>eabtM#=4yX&r&&#b)6(KraN?Hg1WsFv&w$gEzLUjg!39d61^26FKL6(y`awaQm%cfPI8lhg+`6aC61QaEY<^&i}Q5fwI!#r{V1;0s7}GegSqq z3Iliro}>5;xJ2=K#q|FK=RGA5E{E5t1Y6*8#UH`@6@La7e;fv|6JD+OYm2`RS?2!) zrxHQAO7IgrcU$Q2AY7u@`MD<7wKxf0tLz)VyA(Hu4|(jZKM77V1nWKtGi(WOR@~a+ zb{2PlcPjfXaQ#n1f0=NK;ykez_VT9&&PA|S8C+=bB^LLDQ$7nb=xy=uVVQdUi{BT7 z_rvD+J|3{2zs$`Dn$Sy4f;-?oSA;wZmR@Z1cfr!j4c`OnE!cf)umtRVM+Be3ZSvAbyjL!h z{xw*dFeONT{ptMp3^m*-@b7v72IZGM-)gG_YpfEyXqDh)rI+*{!F_3x{*nPrnsUHr zkc&N}#qHtJxJocq1gcFZSbP&)e|y;Gw^}?6?n{lBBb^eskFtN-;?;1xP#L^{V2|3U2ZvW>)qw-_f88m5Q3g__ryQ&qKr4$= z;r?WJCSGNO(F@+C0=~lHzHpBnVGaJ_AnmUO{V|xX3zANX56r5tJ#xZ5Ge8_)d6_vcDH@_|Gt)`EbRTAwOX8B8%fo5FAnomcsSF3LQKN z_g7pBPg4A>#V=a?GQ3#XzYcHPRqa3Syp167>uQ0s!Q#JLycuq(?6<<}6n_eDQ~ZU+ zyJ|4&|F;MdzX=1_1NZtix9gwn*!4E605AQN8>whCHfSX!;GAzB^ zzamacSihR36+BDnQ{f^tb)OC|R{HkvqXE_YgYNKZ#h1d*D((e8r?@w)Cz{{G;Z<366|Co(Ln-`( zAL%*&@)wiyTeEl|V6E^Lm)l?|f#Ek{DSeM z+=RtTnt=OX{0y%`ASE;g&#+oa2@Rij2Jh>G>jd^wVQC`6ufx)WCV<5D9BQcam%!5L z(nv3>Yrmj|B!8CF%BmX??0+HLwf+@uzB?QR#TGAv`zn12-0-C^{fBV-{bBlTaMFw6 z@qF|bn&d^k|8FQIBJMNimB?g1I;}=kqJYfy!VjT(0zqRd`YvoCT*S{v({G_zrmf&tZ++DI8aV zdo6=`aJkaEaF4a&cRa6){h`p|+welg8{je6n;P5)uXWlwJLx2{LAiqe$9GnR4z5P9 zS4BJxPQ-ysJ<>!a{B5rseh8Oi-#XAo68K$ErSA++RooArtN8YW1fKu*+~WafvoO$n zx5abe-O7FeT&5hB!3!g1rc7|&gcmFQ9=KF-iwN`o;yPi16o$t03>*LAZTIkcMnxAd zyomF=fQ`NnEThKom9X@3!&k%f@@oDAES=ow`^)dYN-sBp0kHIP!-HVy<%WmC(n$>u zhozGm9sx@yH9QKIPHK28EW^}rya<8xS|gYUORqIN87@$K3p`2jR9J?cvA-QIQ#=Ef zK4SE~wgdtvEhhUdZ3sSGcGWfT}*2um+F{17ai&hR2wI-TJqu=EN4 z;{3lDfpiLEund+?W%vnLFD@(K@T#mTh4tdHO6g^0Er)d<+oD<4{|W@9suO+!4@oou z@OU0vr1&d~cU$}eT&(Q(TD%Y59q8jS><%e`a21?VHw+-L4lf^%hFlNcuJ{Ctn^@cw zPKkx-TZByhWOy2aG-c2R?xnarJV$Y7i!&_FhSw|mv*Dt8VF2gD8$6c$37{JS-Nu)| z;Z<4H6V`1!h!2+%P=QRP)K)!~YpK$`BoqF!Lrwmj@+W=bde{rV%bx&78-bT=f-?@@ zrXrpQ&w4r74=@!kf#)6MxdzKU1E(qu;eG%S6{@M<_d zTM5=6n4|bb_+iB_!y6Qr!P^wS0e_Y=qzf%b|Vjyj1BHRQ^n;G5$ zr%;84D`05?!ym)v!RCw0Xw+w;uLnyL7_J{>{nz9EL=3{KvZ^tx$Ni6tbLpge>iFY4 zqg})s1>FLk){zHU2-s}H*TK>xsW_EGtLT{#uZAQS;Y;HPq>4!I3Fg33rN&?*ELCRo zjd}22YRu@bf~Cp4VT!|rur!&siG@FgrOAx`=FYt4n?BYi$S;19DzVH=8E{GyQ$-0* zuEl4=X-a=SoR}QicZ0hrzSQE&YjWJV0zp5O;A(iT;{St-6&J!qO~VX_!m|`#Z}Di0 z$H8-}?P>ps2p+B$@FH@!Oz||hLh%fX@3QzFc#pFGv&Hwr%jksO!KHlv{~Cg|2vVd? z;N5WFSF0b9aGJ%K2Viq=*M;y%*i6kgzz?4i*2p-ECt5riE(z>ef0zUi^lK41m=3R2 z89W6SEB**xtL#6sc&Ei*!5ftQZn(l{S^qfyN3cs7`~>e+d=O4-83xF2@i=*k>%zSh z9|uoWe4_BFVfy51_SRp1&AwVdJOtDd?x!Y-R`3+Xsqh@QMbKow3s_RihpRrYw6T9h zoGalH_yh#f#J2_a294_Z0%MR2&+i*LYz8-=4@3j|3j;Rx7sJv?4flY%!c7DF@c|qC z1ei|l)ju*`2!ud-wK13iPl3&Py)0m(e*%_HX?O)Joz`$EyiV~dxMf+We-7SV77qn4 zAlUSJ$ZO%$H$r|D?zS%E*I~VOya|U_Wz~9EuN|Y=6G|U4Q*pm8Ox1D5VG8MF)3_9Y z1keXBvN-I5C4f})!X3}zIUWM&5b#J?O4u*3UkOVI%LCp6?}on&>@(8%L1F@E9q8XB zKvVzT8PF~SrD~XbXYn3*yVCy%uWxN?ghwjiId6s&Q`_U1m=yPhOB7E&PCoxD!DAR~ zP+SgANewgDV(~{7e*)h?`c_gx`c&+ApFu8O(+Nv}{>2ZS9nbtP5gI{53?xFsO<)Po za8p=)RZ|Dw(a1mRU#H44@x z9;@_H!h2vHz@II?A1+h@K4kGCc)94k{3+w3M&L!kS^zumhHYF9CwDd_NN~1TTmd&! z_H|C+la8`aviNv71^epH|2YWes08O&d>&l?z3};f*>H2kAHw}{=zSwXlSNKsUV&36 zkThXuxS~r~fDE7g@{38XWpFlpNF_Mm;tS!VvqFcLzy*qX!HWq1*Iob<;kN0a{S

zvuQmiV3Ynl_$~D2et7qeY|QJf(kV*ODuj0-lg=b;k<0q1pLw& z+$ksIS76;FufgF}S+x!hYb0LB>6Fg%TV&8T(cgx@trAEH|7AJ+QR$_G`)fF?;~Z3a zN#CwX&44<<)mI#YP6)z?>Nsa9199+2%fU5DF98%<=?5#lq`${Xf1lDb|8j4Z<-k=2 z;^1}5!JA4i>DOE7-&J}^|C5#e=TI;6e`VDn%RyCW;C(RZm|U|8JHz2sS(OIs8q8FB z3E)~Q{lIFyxBgUC4Y3?tS8d>bJ3h~Hut4dh01K`34=KF_@RpVS9i#Wxzsjl&mV=GP zfMSY+1D1ndlwJaGPO4c0bzpNz`Yx~@73qQA&mV&<%R#Q?V36ftsM1RS!>#lqlwJb3 zAJ)V4A)kZ%nT;1A&=D?C4kUwOShw-`r+kOqD5iXRUZ(6N!%ddIElMx`Dm;JH>wg{R zV`U%?qD^ZCR1XfX%BuRX4(LRsm-J^_>CaVq37|mI$Ez2UI?hGPKpc#+9E??ZaZn@< zRQicZFXsa&V31pwMzK zSm`DGJy!brlwO)_zLnmMD+6)xy5-LcOZr1r`goNx5C{-%(EOUP$OAt-Jta1Z;a({ywbC3DFQ!^p*T{)VF9Dowr9W5cC4d4e{YBM!<{xn|%5pHa+Cai! zsU_(KMqdL4Y%PFEuIWl_j;Q67C*h2|0}DeBG3_b zX0Z^5;!+li+x-Myp(MkVaGuI=mBr7&y_EhXxGXOWunZn@PWAfF&0+|2gzMq(s;qh! z)&bta=LQL&Q=%W>`^sJd{Mqt%Na>|dREa;m{zqDJW^-+8r+{1=vm=VZW#d!52MUBw zgxk&zxfPr?E7jp?UC+KFJZ46!_dTK5XTq~)hI|g(4el1$Ukt|=k{~${^hVIaAR7(0K@Kg%0E8yo^vi=XhGZbvVz@bEG zfx!pxl>H&sJ(a_00vsOb)8IoeE#PHv4eZQGb&3PN)3RR+r`(w86b1ToQ&|5Oj!yM{ zBvK;0pab6pp6vgub|b!_9R$xOK`;D@elINV2Uy3MjBxvol=!>W-d8TdAHu^Awf26% zKseILKiZuVWS9-h8>&+nB60o3ivr{Q<~ zr&z?nmvBi{Yo{V`m{h$Zhr}1yS>ud z*&Af|KD=;esyEWekNf|6_(!2K^dx}GF6A5#gMI-|?8R|9^Ebo3NU*l1*VVnA$?pr*((UL?g*>6`wdJiw}(|cYZMbv z^V7YlxDkWxZ*bCejO)PRtg-a^n^LPs!Gq(NN!PV;<_7u>MK$}-99Uk#v{25!CBoeZ zs2>f>JE4sI`*7*JRPVK#;&1LmzBN;P)g=7!(CLuC z|3+Az5m_joKO{lDn~0Fx^irTUYn$H{jLG3-ts2UvBe{=NSy1{iM5?h*q?& z4(LO;xth3g@1Z~|TRRlgv#&ds8o8^D_a1S{ZzwEpPKh@UGU#+4RrGFar$;bx{A(To zPy=lPeUthAHyS+xE`T>@q&ita2HWAR$5Wk@pwqs-kWs=rq;?1PZ6088;vGNh+Q!)s zu(ON|FHWtVdb`2$w49mSC&F?+V86h=^K#}Ds@&B0D7b$7k#KqZqJ)X2AgsdcR#IXX z3)2LT!}4%CGq6|UTQ~ukvX<2_sPbpw>C?kuoWr7VXd)9;5Wrn8QDbFooRNY3Iyj!k z`kWUS@ij@MEyNj>km&4J{Ww@e0F|huNnG0WX9L z?@x8sCi(^V?iI#gDGtoszUp`XwT*HI&UCuC}5z?<}P`po_ypb>Ae zTw{MI;AQWTGc`;X@oKF1`vlC6O0I_VnXBJt{+FAHj9@qhQy4}B=qeIR*PV{1EL^s82x~$nGE^|+#8l#t49X>46K`|@rN~s;dodN!}w+d@?sFv2Rc_U z?s*j3ROvw2pDO(lJP5a~2$$yra2XR-N>HK!TWLZ@!I&VRGI;xasnz>~>p!B8Ff|8F z7Njz`t}_EcaP4d$4--^4jz-uwJ~r zCCEA7(#e7V-b{!%`&9t_xCx=hXQ|Fk(aZXOQXPISm9N8#f&{~0xxJ3g?qzVWE_XP5 z5pK&jCh=>zr&7g%zEeH)j0&@-+Xd@R`McwIv87rqpMp)map{$fj^~z&AK8-y4ljnc z9b`ET_-43egmE0y$k*_pePIoqUY{FJ>xA>f2)IPH?Lqn<;cY*sdT+~<{3bUbzyqny zT(kb~Ly$#=ML`C)oDgxA!&w3EgZCfelTXkDnI}e^zExoW{|8TLz>X)de+f>cNoCy2 z24^@smHGrYC(!5fd&BZmtfh&;`o9r@{1SR8DI~(ICNK`YJsLa(u7HOG4%We4Pw;;$ zUhL~9N1XYvnftGXvuL8i!2Wr7E&7E4M^B;vC-PfzX8q4cFrNfwT$jRG4Z~gQ4tNMW zD{!!yU$bx6B-~K6Z$`k$VZf8%oz2^LH!4ejkHd0n*9N-1@E5S$5g9iVO$zI*+(z3c z$e<9G`*^zrRi4rUz1o7k2J0=@&X)9{1$;6JGMLG2IdWsu;$X3<47tsDR~x#wkI5r+1*nf9^w@@%^|2P>Miqu`q3ZaYt^Q<`Im!K`%b7bHsZ- zz|52{!*ZW*iCKQrBHU20CUtQ1hvVG8kBN4SWM;eDOJeEns8P|??&IU4XS#_uMz4-! zXSmaDj&@AQbe|p(?GVYy@cwll9UblDr_0H4cT9|SbO%f%NtXQAClg4Qo9-L_G8S>e zQT$mg2Fu2x%gFL{2^pRTH+=$%)X~v16Y|{c7$pQrtHwqDpZl4l%AUlZtwlkWZs#KK zcO;19`kve?$Dw=rMlwG*2Hk8)betrbDZYOe)2vK4T@03r!Kw+AI4j?eywNDcR}h$6 zdSkRxLXLX{_2F(4tY2$Hzlf;+q)rBhw60+CKnG|i9;10iuG`a4;o1z)+!JDG> z-4QoM+eb1oeM!dT=-KX#lcOCH(%kgf(No>h$y~H}w|rJK<`&)( zO-;ym({GJtlBbtRey02P6YDkeoUa*tYxJT>BrDs!;+nvpdi%{^;+w9E1N2+~r#Khm*MVmYI4EE;oT zkz0COwE2m{1`ivSo0pkAI6E^ZXHb^AI6Ic?p7m+8uG@8bw6)v$c4|A*-EoI>%zSqs z|9XI|kpC9d3|i*e>BtAlf6bcCpE)z4eIuFF)gAOy`t!h9l1$W}i8@=nd~{w z^KI(Sr13HA==Qrk+Ql7oN3^{=aAq_uVUm}%w2|bR=Z>8n&2(R%8NJT!adWhRyLcvz zlb$Z(4EN4i(eCctrGeP(G@HI~^K9u0d46qUol4~5gHD#dG@9Z$aOX~oCa&2rJ36S2 z``A6v4r^|^C%P|@Jm=mWZF6~gUQWiaysXS2`8m1i!v+o=n30p2J2)eE=%D;TIXQXR zUDDI3*d&?p`n;)*@kud-2`T z-tI+DMswWVe~w;vd3tuv;Gt`I45`Tu&k`i?7Z9|>BDl;@-n+*WK~CT zMAIC1$^7Wot&ZT+{mcC5IquE{^oGd&(bM8bFwg9gp6~R&s&B7LFTc3kfbLgaeo@~` zdtW}l>!qfCju@Hr@xzoOUQ3z(H|O4%I_gj|gW+Woq#iN&Y_G!{xt{X#4pYScE@6J| zQJZE49iR{W@JONN%iQ31*&~|fxbZpBrf%WF=uCG^zgTLUBYV$w8$A&1=|1{EG+(-U zS|gdeyeZ0?)Tr1sTONq+|K`Y5m7d#WA3?lvNI``Td+8G;kCz5#LUdY2j~p=Ls;scQ1)mB;GK3!q7EkkHl_Ga4%jFyRKnYetJ%NHZ$6gVa#iJ1J{f#j(wHj zM)$|sxC4u0C%LPBh~>KXE{!Fx`F?4vII&441)yws`T3c7xtX~c>6v-%-@cEXaY|6% zwdr?087pa$k&{c&(=xNEo&3D~?2PP;HIJ6WzDsD5o0W@~oV?tO?DVvZ{LHMpe3__n z-H%ts3Tms^HC>*H{XUXhi$}+8bZ@j>i>#ntYO!!zmBh|ibLi>Vq6UrsJ7agntFbxm z1!b|{*BaH?#j!Ko_se2KYSk8$#k#t;y%y`)gswoZ&C1Ql%TK3vnZMJ#6@5+P*JHgY za4l+Csn_gV7rQLMefEvmNo($YBNj_=Cp;cYb%(qayTrY39eSdXTlsT?j&KYUNd9kg(Oz#r@_%Kb^|!IJKaMp!a)-<_gZ8&i`FV$LT)Lk(rIdfb zoVN6@u_kWzw%7{yjJiqv+&i|!8oPr(jpew>pTwFs`mfIAUJ*}fvZl``v4IJPQMxGW zuKDQG*n)`fywB!XpISS3>jcKYJDX#L?m*@t_mwTNq+0D*I-WZBh%0V--r>8ETe2y} zPF!;7`gttrumdWNvepp3-55L9Eh&$!jURb`>xYq_o|TuCo|c`NnV*xHmYtE2nI8T^1S7H*2kxiQq#K&lrr5eAc741S#Zi_z7=4F#aHLI|G=Kcq zwn^#7I_%W@O{K`*LpLUgxpiuF0Uwy8z-N!jk`;%M{x z--;dQzPCKq%$+(Sdg7Xlow3ssx*l;1W*mMDy7T@S8}0U7%qQ%^f5a|Mt}T1_`?0aE z@uORLvJRis(e8?~YptXB|FpBt{>^Pw-BdX>x7P9Bvcb4vr1RnA(v)OrY0J~h^IO}igrJ(s$p79=%|49Rq7EJ!-7-tf!XI>XON zbk@2n79_Qb%Dt&=Uv@VwNJ@>$-CAY)-2?L9a$8XIpWW2^liEf2wFC~9 zmDt3cb$?RB&RKBT-~{J5zC63&B)KJ7?sssUOZY!uZ&hD=uZcQ;@Y7Y0uI}%yjXJB> Le0P7+L%05aW{N@@ diff --git a/lee/privacy_preserving_circuit/src/execution_state.rs b/lee/privacy_preserving_circuit/src/execution_state.rs index 0641f579..4e81f9ce 100644 --- a/lee/privacy_preserving_circuit/src/execution_state.rs +++ b/lee/privacy_preserving_circuit/src/execution_state.rs @@ -443,13 +443,6 @@ fn intersect_validity_windows( (block_validity_window, timestamp_validity_window) } -/// Record or re-verify the `(program_id, seed) → account_id` family binding for the -/// transaction. Any claim or caller-seed authorization that resolves a `pre_state` under -/// `(program_id, seed)` must agree with every prior resolution of the same pair; otherwise a -/// single `pda_seeds: [seed]` entry could authorize multiple private-PDA family members at -/// once (different npks under the same seed) and let a callee mix balances across them. Free -/// function so callers can pass `&mut self.pda_family_binding` without holding a borrow on -/// the surrounding struct's other fields. fn resolve_external_seed( account_identities: &[InputAccountIdentity], pre_state_position: usize, @@ -510,6 +503,13 @@ fn resolve_external_seed( } } +/// Record or re-verify the `(program_id, seed) → account_id` family binding for the +/// transaction. Any claim or caller-seed authorization that resolves a `pre_state` under +/// `(program_id, seed)` must agree with every prior resolution of the same pair; otherwise a +/// single `pda_seeds: [seed]` entry could authorize multiple private-PDA family members at +/// once (different npks under the same seed) and let a callee mix balances across them. Free +/// function so callers can pass `&mut self.pda_family_binding` without holding a borrow on +/// the surrounding struct's other fields. fn assert_family_binding( bindings: &mut HashMap<(ProgramId, PdaSeed), AccountId>, program_id: ProgramId, diff --git a/lee/privacy_preserving_circuit/src/output.rs b/lee/privacy_preserving_circuit/src/output.rs index dd2cd826..559170e7 100644 --- a/lee/privacy_preserving_circuit/src/output.rs +++ b/lee/privacy_preserving_circuit/src/output.rs @@ -8,6 +8,201 @@ use lee_core::{ use crate::execution_state::ExecutionState; +struct PrivateOutputHandler<'ctx> { + output: &'ctx mut PrivacyPreservingCircuitOutput, + output_index: &'ctx mut u32, + pre_state: &'ctx lee_core::account::AccountWithMetadata, + post_state: Account, + epk: &'ctx EphemeralPublicKey, + view_tag: u8, + ssk: &'ctx SharedSecretKey, + identifier: u128, +} + +impl PrivateOutputHandler<'_> { + fn authorized_init(self, nsk: &NullifierSecretKey) { + let npk = NullifierPublicKey::from(nsk); + let account_id = + derive_and_verify_account_id(&npk, self.identifier, self.pre_state.account_id); + + assert!( + self.pre_state.is_authorized, + "Pre-state not authorized for authenticated private account" + ); + assert_eq!( + self.pre_state.account, + Account::default(), + "Found new private account with non default values" + ); + + let (new_nullifier, new_nonce) = init_nullifier_and_nonce(&account_id); + let kind = PrivateAccountKind::Regular(self.identifier); + + self.emit_private_output(&account_id, &kind, new_nullifier, new_nonce); + } + + fn authorized_update(self, nsk: &NullifierSecretKey, membership_proof: &MembershipProof) { + let npk = NullifierPublicKey::from(nsk); + let account_id = + derive_and_verify_account_id(&npk, self.identifier, self.pre_state.account_id); + + assert!( + self.pre_state.is_authorized, + "Pre-state not authorized for authenticated private account" + ); + + let new_nullifier = compute_update_nullifier_and_set_digest( + membership_proof, + &self.pre_state.account, + &account_id, + nsk, + ); + let new_nonce = self + .pre_state + .account + .nonce + .private_account_nonce_increment(nsk); + let kind = PrivateAccountKind::Regular(self.identifier); + + self.emit_private_output(&account_id, &kind, new_nullifier, new_nonce); + } + + fn unauthorized(self, npk: &NullifierPublicKey) { + let account_id = + derive_and_verify_account_id(npk, self.identifier, self.pre_state.account_id); + + assert_eq!( + self.pre_state.account, + Account::default(), + "Found new private account with non default values", + ); + assert!( + !self.pre_state.is_authorized, + "Found new private account marked as authorized." + ); + + let (new_nullifier, new_nonce) = init_nullifier_and_nonce(&account_id); + let kind = PrivateAccountKind::Regular(self.identifier); + + self.emit_private_output(&account_id, &kind, new_nullifier, new_nonce); + } + + fn pda_init( + self, + pos: usize, + pda_seed_by_position: &std::collections::HashMap< + usize, + (lee_core::program::ProgramId, lee_core::program::PdaSeed), + >, + ) { + // The npk-to-account_id binding is established upstream in + // `validate_and_sync_states` via `Claim::Pda(seed)` or a caller `pda_seeds` + // match. Here we only enforce the init pre-conditions. + assert!( + !self.pre_state.is_authorized, + "PrivatePdaInit requires unauthorized pre_state" + ); + assert_eq!( + self.pre_state.account, + Account::default(), + "New private PDA must be default" + ); + + let (new_nullifier, new_nonce) = init_nullifier_and_nonce(&self.pre_state.account_id); + + let account_id = self.pre_state.account_id; + let (authority_program_id, seed) = pda_seed_by_position + .get(&pos) + .expect("PrivatePdaInit position must be in pda_seed_by_position"); + let kind = PrivateAccountKind::Pda { + program_id: *authority_program_id, + seed: *seed, + identifier: self.identifier, + }; + + self.emit_private_output(&account_id, &kind, new_nullifier, new_nonce); + } + + fn pda_update( + self, + nsk: &NullifierSecretKey, + membership_proof: &MembershipProof, + external_seed: Option<&(lee_core::program::PdaSeed, lee_core::program::ProgramId)>, + pos: usize, + pda_seed_by_position: &std::collections::HashMap< + usize, + (lee_core::program::ProgramId, lee_core::program::PdaSeed), + >, + ) { + // With an external seed the binding comes from the circuit input and the + // pre_state is intentionally unauthorized; without one the binding comes from + // a Claim or caller pda_seeds, so the pre_state must already be authorized. + assert!( + self.pre_state.is_authorized ^ external_seed.is_some(), + "PrivatePdaUpdate requires authorized pre_state or external seed" + ); + + let new_nullifier = compute_update_nullifier_and_set_digest( + membership_proof, + &self.pre_state.account, + &self.pre_state.account_id, + nsk, + ); + let new_nonce = self + .pre_state + .account + .nonce + .private_account_nonce_increment(nsk); + + let account_id = self.pre_state.account_id; + let (authority_program_id, seed) = pda_seed_by_position + .get(&pos) + .expect("PrivatePdaUpdate position must be in pda_seed_by_position"); + let kind = PrivateAccountKind::Pda { + program_id: *authority_program_id, + seed: *seed, + identifier: self.identifier, + }; + + self.emit_private_output(&account_id, &kind, new_nullifier, new_nonce); + } + + fn emit_private_output( + self, + account_id: &AccountId, + kind: &PrivateAccountKind, + new_nullifier: (Nullifier, CommitmentSetDigest), + new_nonce: Nonce, + ) { + self.output.new_nullifiers.push(new_nullifier); + + let mut post_with_updated_nonce = self.post_state; + post_with_updated_nonce.nonce = new_nonce; + + let commitment_post = Commitment::new(account_id, &post_with_updated_nonce); + let encrypted_account = EncryptionScheme::encrypt( + &post_with_updated_nonce, + kind, + self.ssk, + &commitment_post, + *self.output_index, + ); + + self.output.new_commitments.push(commitment_post); + self.output + .encrypted_private_post_states + .push(EncryptedAccountData { + ciphertext: encrypted_account, + epk: self.epk.clone(), + view_tag: self.view_tag, + }); + *self.output_index = self + .output_index + .checked_add(1) + .unwrap_or_else(|| panic!("Too many private accounts, output index overflow")); + } +} + fn init_nullifier_and_nonce(account_id: &AccountId) -> ((Nullifier, CommitmentSetDigest), Nonce) { let nullifier = ( Nullifier::for_account_initialization(account_id), @@ -27,253 +222,16 @@ fn derive_and_verify_account_id( account_id } -#[expect( - clippy::too_many_arguments, - reason = "extracted match arm with many destructured fields" -)] -fn handle_private_authorized_init( - output: &mut PrivacyPreservingCircuitOutput, - output_index: &mut u32, - pre_state: &lee_core::account::AccountWithMetadata, - post_state: Account, - epk: &EphemeralPublicKey, - view_tag: u8, - ssk: &SharedSecretKey, - nsk: &NullifierSecretKey, - identifier: u128, -) { - let npk = NullifierPublicKey::from(nsk); - let account_id = derive_and_verify_account_id(&npk, identifier, pre_state.account_id); - - assert!( - pre_state.is_authorized, - "Pre-state not authorized for authenticated private account" - ); - assert_eq!( - pre_state.account, - Account::default(), - "Found new private account with non default values" - ); - - let (new_nullifier, new_nonce) = init_nullifier_and_nonce(&account_id); - - emit_private_output( - output, - output_index, - post_state, - &account_id, - &PrivateAccountKind::Regular(identifier), - ssk, - epk, - view_tag, - new_nullifier, - new_nonce, - ); -} - -#[expect( - clippy::too_many_arguments, - reason = "extracted match arm with many destructured fields" -)] -fn handle_private_authorized_update( - output: &mut PrivacyPreservingCircuitOutput, - output_index: &mut u32, - pre_state: &lee_core::account::AccountWithMetadata, - post_state: Account, - epk: &EphemeralPublicKey, - view_tag: u8, - ssk: &SharedSecretKey, - nsk: &NullifierSecretKey, +fn compute_update_nullifier_and_set_digest( membership_proof: &MembershipProof, - identifier: u128, -) { - let npk = NullifierPublicKey::from(nsk); - let account_id = derive_and_verify_account_id(&npk, identifier, pre_state.account_id); - - assert!( - pre_state.is_authorized, - "Pre-state not authorized for authenticated private account" - ); - - let new_nullifier = compute_update_nullifier_and_set_digest( - membership_proof, - &pre_state.account, - &account_id, - nsk, - ); - let new_nonce = pre_state.account.nonce.private_account_nonce_increment(nsk); - - emit_private_output( - output, - output_index, - post_state, - &account_id, - &PrivateAccountKind::Regular(identifier), - ssk, - epk, - view_tag, - new_nullifier, - new_nonce, - ); -} - -#[expect( - clippy::too_many_arguments, - reason = "extracted match arm with many destructured fields" -)] -fn handle_private_unauthorized( - output: &mut PrivacyPreservingCircuitOutput, - output_index: &mut u32, - pre_state: &lee_core::account::AccountWithMetadata, - post_state: Account, - epk: &EphemeralPublicKey, - view_tag: u8, - npk: &NullifierPublicKey, - ssk: &SharedSecretKey, - identifier: u128, -) { - let account_id = derive_and_verify_account_id(npk, identifier, pre_state.account_id); - - assert_eq!( - pre_state.account, - Account::default(), - "Found new private account with non default values", - ); - assert!( - !pre_state.is_authorized, - "Found new private account marked as authorized." - ); - - let (new_nullifier, new_nonce) = init_nullifier_and_nonce(&account_id); - - emit_private_output( - output, - output_index, - post_state, - &account_id, - &PrivateAccountKind::Regular(identifier), - ssk, - epk, - view_tag, - new_nullifier, - new_nonce, - ); -} - -#[expect( - clippy::too_many_arguments, - reason = "PDA init has many distinct fields from the variant" -)] -fn handle_private_pda_init( - output: &mut PrivacyPreservingCircuitOutput, - output_index: &mut u32, - pre_state: &lee_core::account::AccountWithMetadata, - post_state: Account, - epk: &EphemeralPublicKey, - view_tag: u8, - ssk: &SharedSecretKey, - identifier: u128, - pos: usize, - pda_seed_by_position: &std::collections::HashMap< - usize, - (lee_core::program::ProgramId, lee_core::program::PdaSeed), - >, -) { - // The npk-to-account_id binding is established upstream in - // `validate_and_sync_states` via `Claim::Pda(seed)` or a caller `pda_seeds` - // match. Here we only enforce the init pre-conditions. - assert!( - !pre_state.is_authorized, - "PrivatePdaInit requires unauthorized pre_state" - ); - assert_eq!( - pre_state.account, - Account::default(), - "New private PDA must be default" - ); - - let (new_nullifier, new_nonce) = init_nullifier_and_nonce(&pre_state.account_id); - - let account_id = pre_state.account_id; - let (authority_program_id, seed) = pda_seed_by_position - .get(&pos) - .expect("PrivatePdaInit position must be in pda_seed_by_position"); - emit_private_output( - output, - output_index, - post_state, - &account_id, - &PrivateAccountKind::Pda { - program_id: *authority_program_id, - seed: *seed, - identifier, - }, - ssk, - epk, - view_tag, - new_nullifier, - new_nonce, - ); -} - -#[expect( - clippy::too_many_arguments, - reason = "PDA update has many distinct fields from the variant" -)] -fn handle_private_pda_update( - output: &mut PrivacyPreservingCircuitOutput, - output_index: &mut u32, - pre_state: &lee_core::account::AccountWithMetadata, - post_state: Account, - epk: &EphemeralPublicKey, - view_tag: u8, - ssk: &SharedSecretKey, + pre_account: &Account, + account_id: &AccountId, nsk: &NullifierSecretKey, - membership_proof: &MembershipProof, - identifier: u128, - external_seed: Option<&(lee_core::program::PdaSeed, lee_core::program::ProgramId)>, - pos: usize, - pda_seed_by_position: &std::collections::HashMap< - usize, - (lee_core::program::ProgramId, lee_core::program::PdaSeed), - >, -) { - // With an external seed the binding comes from the circuit input and the - // pre_state is intentionally unauthorized; without one the binding comes from - // a Claim or caller pda_seeds, so the pre_state must already be authorized. - assert!( - pre_state.is_authorized ^ external_seed.is_some(), - "PrivatePdaUpdate requires authorized pre_state or external seed" - ); - - let new_nullifier = compute_update_nullifier_and_set_digest( - membership_proof, - &pre_state.account, - &pre_state.account_id, - nsk, - ); - let new_nonce = pre_state.account.nonce.private_account_nonce_increment(nsk); - - let account_id = pre_state.account_id; - let (authority_program_id, seed) = pda_seed_by_position - .get(&pos) - .expect("PrivatePdaUpdate position must be in pda_seed_by_position"); - emit_private_output( - output, - output_index, - post_state, - &account_id, - &PrivateAccountKind::Pda { - program_id: *authority_program_id, - seed: *seed, - identifier, - }, - ssk, - epk, - view_tag, - new_nullifier, - new_nonce, - ); +) -> (Nullifier, CommitmentSetDigest) { + let commitment_pre = Commitment::new(account_id, pre_account); + let set_digest = compute_digest_for_path(&commitment_pre, membership_proof); + let nullifier = Nullifier::for_account_update(&commitment_pre, nsk); + (nullifier, set_digest) } pub fn compute_circuit_output( @@ -313,17 +271,17 @@ pub fn compute_circuit_output( ssk, nsk, identifier, - } => handle_private_authorized_init( - &mut output, - &mut output_index, - &pre_state, + } => PrivateOutputHandler { + output: &mut output, + output_index: &mut output_index, + pre_state: &pre_state, post_state, epk, - *view_tag, + view_tag: *view_tag, ssk, - nsk, - *identifier, - ), + identifier: *identifier, + } + .authorized_init(nsk), InputAccountIdentity::PrivateAuthorizedUpdate { epk, view_tag, @@ -331,35 +289,34 @@ pub fn compute_circuit_output( nsk, membership_proof, identifier, - } => handle_private_authorized_update( - &mut output, - &mut output_index, - &pre_state, + } => PrivateOutputHandler { + output: &mut output, + output_index: &mut output_index, + pre_state: &pre_state, post_state, epk, - *view_tag, + view_tag: *view_tag, ssk, - nsk, - membership_proof, - *identifier, - ), + identifier: *identifier, + } + .authorized_update(nsk, membership_proof), InputAccountIdentity::PrivateUnauthorized { epk, view_tag, npk, ssk, identifier, - } => handle_private_unauthorized( - &mut output, - &mut output_index, - &pre_state, + } => PrivateOutputHandler { + output: &mut output, + output_index: &mut output_index, + pre_state: &pre_state, post_state, epk, - *view_tag, - npk, + view_tag: *view_tag, ssk, - *identifier, - ), + identifier: *identifier, + } + .unauthorized(npk), InputAccountIdentity::PrivatePdaInit { epk, view_tag, @@ -367,18 +324,17 @@ pub fn compute_circuit_output( ssk, identifier, seed: _, - } => handle_private_pda_init( - &mut output, - &mut output_index, - &pre_state, + } => PrivateOutputHandler { + output: &mut output, + output_index: &mut output_index, + pre_state: &pre_state, post_state, epk, - *view_tag, + view_tag: *view_tag, ssk, - *identifier, - pos, - &pda_seed_by_position, - ), + identifier: *identifier, + } + .pda_init(pos, &pda_seed_by_position), InputAccountIdentity::PrivatePdaUpdate { epk, view_tag, @@ -387,17 +343,19 @@ pub fn compute_circuit_output( membership_proof, identifier, seed: external_seed, - } => handle_private_pda_update( - &mut output, - &mut output_index, - &pre_state, + } => PrivateOutputHandler { + output: &mut output, + output_index: &mut output_index, + pre_state: &pre_state, post_state, epk, - *view_tag, + view_tag: *view_tag, ssk, + identifier: *identifier, + } + .pda_update( nsk, membership_proof, - *identifier, external_seed.as_ref(), pos, &pda_seed_by_position, @@ -407,58 +365,3 @@ pub fn compute_circuit_output( output } - -#[expect( - clippy::too_many_arguments, - reason = "Inputs are distinct concerns from the variant arms; bundling would be artificial" -)] -fn emit_private_output( - output: &mut PrivacyPreservingCircuitOutput, - output_index: &mut u32, - post_state: Account, - account_id: &AccountId, - kind: &PrivateAccountKind, - shared_secret: &SharedSecretKey, - epk: &EphemeralPublicKey, - view_tag: u8, - new_nullifier: (Nullifier, CommitmentSetDigest), - new_nonce: Nonce, -) { - output.new_nullifiers.push(new_nullifier); - - let mut post_with_updated_nonce = post_state; - post_with_updated_nonce.nonce = new_nonce; - - let commitment_post = Commitment::new(account_id, &post_with_updated_nonce); - let encrypted_account = EncryptionScheme::encrypt( - &post_with_updated_nonce, - kind, - shared_secret, - &commitment_post, - *output_index, - ); - - output.new_commitments.push(commitment_post); - output - .encrypted_private_post_states - .push(EncryptedAccountData { - ciphertext: encrypted_account, - epk: epk.clone(), - view_tag, - }); - *output_index = output_index - .checked_add(1) - .unwrap_or_else(|| panic!("Too many private accounts, output index overflow")); -} - -fn compute_update_nullifier_and_set_digest( - membership_proof: &MembershipProof, - pre_account: &Account, - account_id: &AccountId, - nsk: &NullifierSecretKey, -) -> (Nullifier, CommitmentSetDigest) { - let commitment_pre = Commitment::new(account_id, pre_account); - let set_digest = compute_digest_for_path(&commitment_pre, membership_proof); - let nullifier = Nullifier::for_account_update(&commitment_pre, nsk); - (nullifier, set_digest) -}