From d24931c6438ca296c2341af1ce3e38eed53f9ec6 Mon Sep 17 00:00:00 2001 From: Sergio Chouhy Date: Wed, 6 May 2026 12:17:30 -0300 Subject: [PATCH] refactor proxy program --- .../auth_transfer_proxy.bin | Bin 398936 -> 399864 bytes integration_tests/tests/private_pda.rs | 30 ++++++---- .../guest/src/bin/auth_transfer_proxy.rs | 53 ++++++++++++------ 3 files changed, 54 insertions(+), 29 deletions(-) diff --git a/artifacts/test_program_methods/auth_transfer_proxy.bin b/artifacts/test_program_methods/auth_transfer_proxy.bin index 2d47f45479d7b1188ae69698afdfd2d646758ffd..3dcdb1bf5d9e2240f85e6390e7f6ae2abd55bcb9 100644 GIT binary patch delta 90659 zcma%k3tUu1`~R8QJ-f?_h%6wY;<5)25fN{I_eBLs&D6}y(lET1d5etl!r}rdlBvfW zGfTW?Mn*5{TCe4zf@Wk`R#v2VE9sW$oZ623Aj^0)Iqcgg`+cC~Brrq2^hK z@?2db2>dbn&=20A!og4p&)SPgl-w*2CqvEDCCZtWZ$b;F+r&IU7W0VBluB5lApGDG zR?DOPCR10vT;_L@x;{hUmK&{usIy9Twva;R%VMBlv*IZ*3e3x^xZ24%Ee2C>rF^JG z2Xh?(%FE=s77^6dcAfty>I#-e`}d&UpX7Z1Xmf!>u!)tcU##?s{Vwtx{th~NuS92NH(EFNvqGfmW-MML9zyS4C*dPxL(9o`R^5THr8vAPb zpw8nek{beUC734JOz%<|rk^VaEp6gZ!GosdLenJ09-L+j6qsFUt&upCNXs*3nM9K;Rv2aDZx)-$s}5L+qM+3#ZiNzF)n*FLz1rA!MuI4yh0fp%(;qC?QfH@U8a=QqVC$vYly(2JM1m*upk4le_>umO1nI>wzL=PRO(L?k$>Nf}`1}V0+L5hR$cr=uN zhU}+}lH-Cg%lb$-=oVGu3X5zCRJB%m>>X-=)=fPQ-%q&(vZ!d`o|PrMY)OVSU~3A` z%jGj;4mX=kG-3uTZYjEBV3uei+P*9lY!4R-^1~)#v!KVk7xavl;8ffNlic2>B++H$lDy z@+}Bc7-vE0FdL-!tZ+iI_Yx(?P*I8+CrU9>Mai-rW9Z~2QY<9HMRhA_J^Dnl^b+O# zZSjH4Oo@C}{lbGrygWK2fqJ84S4a|dM#=|622-Jf+yKbcR_+zrmwH3wd7*=;tF^o@ z)Iq)B@>vwFFu5W0Ksb*Q^Z!0dRJTduF~At61cul!B_fOqOW?@-u$WLD82)C$d&Bln z=VEzw+lWx-3pSBptchXHjsGIm*u$+poY(CyQ13K(UgSXP zog$Y-VuUBlR{=RE%CU|l>K!jWVT%rv|vw@&e?<=ukN*I+%M` zY&7^H{g5TE(%np7QNyX=wSQ;YMLy^ckRK8 zOto0A7AMrAK`jy!6qc!Ku~99mm112th15$eW~#+zwWv`GV`7h7(_}=#wpb4doWx%n zYYmqPoU_HP*W^fNwF{s)kycMyuL?Fz{=@1e@v$$Bt2HETRzdFFLm~ljXk@nEx6v4 zQ+j@&&M0A(Tr;V?oVY0>C{VzvQfD&}qNY?;tL2PdaNeKgoL=1r{jb?p1z~ocZMptT zMmAzoO+*@XZDV<7QN?zf^yNxL-NMnh)o{(VDAOg zStiFPp^K&R)T9rst_etY?!eUr**mtaS&e1m<&nt)+NkXm*+eYq$m*D4JJ*YHN%9C- zrfnRsPUJFrd~yz5m(sz!5)H2OTO~)OU@~8kr>4YEXD7KhGP2Jb0W+T+^@?eC)?)A0^SXa+HB|LkWK0+7cRA#MiX0sh`J`B%~8%j zM02zB`8JdD9-3QJ&21{SnF8;j9W~erMZp8x%LSFI+mtJ^qHTmUN-?bkIlgZXdNfMT z>>J}4;+WwQ1WnQ=Xn?-orNJ$^Bx_cA>wbL*b&irp_Fqk%x8>UY{aVjgqGmx;u>MVs z9q>gb)x4{i(sgf)AsVZ7bSlwIqv4&=vh$B8Ov6(Uj*_4NU0ynhxKW=-4fKC#nOG@Xj?68^aL^Y=2ZPg$J+nRAl-%@cq zw{ruleC|CeE^W8Xl&Il`ys6@*ZMEe#3*4}XDJpe<Luvh0SBQk2p_k`()Hk`z~wB*mY`Lm-bgnAaBxP6wV#vUy78 zocp*ThIHo1qAVhHHXcCZNc-aRI%HY=vGOA`FdhQV>re%t2h9o}qmy_AsqZhOgI5rLcy40#b;L-ejMdWoLp zb%3xAP%r{HUWC@O6bMg2&r;AcJpWVAgt1(?rVQD*pLaq;;~n&lC}~cvOX$fNZO?|F zr`+^jqaiA_vmp*9?Sh`bocd7w&y6`p_%?PaeE-t_YRDx_(A&8bEG~6-$?NRyT+un# z&>7~l!&w~N`=Ox@G8_cntNTQ)dw8BhHrjsL(5WKX-HD_aVpCJxv3aoI)>sTxtQ2378!IK8 zjzxt&lKn!QBCA zGrU!X&P6TUu_s%&J6rwTj^Y09s3O?rBXc1<(5Y5 zVp|w(#^I(Gwvc{;t=%G_-1wIKXnLnyVK&bPvRo~x?d1W2{PL2!np2zc&bk!fmn4UD z7Wibc6|~TspE*|;jo>&2JN4E$4yXuJCsfl2?lthq6N1T;9+?c+36z504V1u#kq*Y> z?2IKtpMBo9z?=f+K48WKNj1qgLb-bcOF{1jONNTzOGPH9?e}olDGz(x`9w-s%LAj) z02^K!Y8o#W`3p8<1EX#JqHxJ7jSTQ0a`jtlV2ID`%?6<973PRD_c{G;zMoGUCRV8E>0 z8jqP8k7*H)&=GHl&I?9E!I;`17>*DK&;y+k=j8tPIdUrk-O;4AAqG3An7r1K{e5ES zL~v^G6OK8aBvQ;CO!A7>QtbPJ6n9dP;=jS!%^sxbBzh~4V@}5>3=dBI^`h>@G=!qftN&-+YfJ->obvE z%g`f4&$t$b=u{k{?6FGrzAX(%#U#fb1ino?O5<>356V=t6w6Cumf}E*e;+~fg_h_d zf*vtS#ytU8W(XfX<(O!le-!pKF{&SELzKxUX|8k8-;PJrR-8$_8;(<$aGb&*cHPt8 zc+e9-w^y{sir)Ueh9hcg80v?iei-V9fgXa+gJ;7E!S!Fh~(TG?JSB6RvV(XzYE z?qhPCMIxXWMaobA-FiS#P5zMV=ZAS-VL{ZpYuJ<+f~*W)=u*NY4|!Pu;?kxdq6!$} z;~Pf4%hQ$@f|Kk8l6@^!X91HL%VR8-$vBdP&hS%Q!&XsY#tbXEfZ3IJyraUru{~QQv%C39^jHf+fx3@iZQUXr(kYOvGaNf)k#3#5V zaE#`UVWCXzKpLi`k~|w?@;XZ~NQPsP3&&Nohm2e<#3!Z;*R!nR1R3!ei-;d`5*!on zClFwfwv`Ifj@j5TR-*x|Qal$?8yF;&JSIxpijC5aVo};vD!RME!FC_QK{%q$p4p-s z2jWucVo|c^S#0@M!Hq+5Y42mAAv!nJB9)XPJIFJm0h6IK;`NSrGa952glr)-(496W z(2zbQ(49U%(9kK>B(1n++PmCJ9 zq*A3cOM6R^?!b9VHuH3k%Lu?}X0SW0bugCdV0U`=U_&QF#QbXk+w)5Uq=G{M+Y73} zlM0?O!MW&JuvAzZu)Pq(ELV377cVz43Y zmr6Q|ZU+&hZI7UGXHi?e(p{c7%yUVN2gj1v3XW^Yz3E(1$|5cWFe#GWvW4n z=Or;n31bpu>IA)ePbn_12XI^?8|!d~GXes2|5=5F{HUzR3@AMW;{X5e^{o*xk{Xz%ir)H0)qA z^N)1}2$yL{{!qs3M;OGxZl}BeLu^HWJC?MPVk?nme1Qh9@NkHQ1hD-I(u(~^D}F~> zA>uG zblWQi7^3n9xN%Nl=u8HZYs3cu$e*1$+sZmHPdUo`0Uf~k1fm?mE;d?7#VUCC zZ92DrwQ&@no&+Q-M~s#4sE1fpd)3pSV>TOxoGdHLo-FHpC`IbN`|^Iu>AN184^H244bUow&6)OxfD` z?>nJeL2uj}n4GJAEy+l>qsO9g&SqGz%OJ-!u#SWzU$70V49@t=dUx+Kc6v$DATT1%IfnRCq&k zC87M-gFg}a(MRQF4+RjKPG#@-$u#L?x&7e^vDLG7_<6xzZKP}E`p05u!AUu6QXv(o zTrz25kobuz&{VAoJbtF!fAUh1R((-koVAFO`Q?`B>4a8&BafaDilThxjHOC5S7+X_ zrgzmU{Vdnd8gH$tQ)N~CB#(Y_GTr%`T=t|RD6L*)8um-_3LKmN_*{5j1GqU$t2TglkzWnR~4a!Y>-X>NE ztWG(*Kb5Qm7cm~YWy+)4y)d#af#a2kCsq4Smp_S+4`rOY37mh^KA+o7NpH_2K4bny>=fg>iL+|Hwe&){)(QRga zl+SzZI;ZlzJW4j^^`Pkw$|-r%X~DSik~{+xDBrOxf`(T;%AAUc5CjPJu=*K))uVE4 z{$3x`mKD6;43)1boCtNB>>jwnhbY&t7=->MuG}V8PQoOWyUl1L|FSZe^Baqlaf&TU z<`yVgCl*Wr2OAVkBIJ-&A)Fa{TJm9F6L@C-H)Y&X=oK4@1r1m-?aR=$B5?j{?fuuX&4-r^-*P+lKfNAkSVu zD&6!HoQ7)OEP|6?hD=dhu0}C$rUtLj;K!2{2W-+|rPf%{KVE)<#8l2!)}C0RL}jEb z$Q<59#$SQVfe0RmmJ15j$}2WR4^dQKz8>>~%7!u_`E@iKFpzmr%Bxq)wpNKc|I2E3 z$8Sj92p-Fdbsm)R3Ja6#H{9Pwktx2S@@&|o@>n*?6i6)3v$z60g)Te}mp!ryzZJayasYP0G4<%8QEKo!e&rAq(pK2;9x=s=p-YInY@ zRu|uqb9SAgl|RZEZ**5tX$NH28}B2SmiOPi40Fv|?tOC-(K>xl>$FGJa(P90ueUmK z2N?HuUonZ;+nmNwk<_OQkwnlEF8;+z`7FmHuqRsLL*_!VwvfY8{QiaVv46x^3yvf! zrmH$xe*GV>Q(9Rquix*W1)s|Y_wSB69D?f(A0gI) zpENCgmP;$bt=NaFZuO&FQxP6sc-1Ci+2vnV)doILxeKq##v>#6oH&xi7oinL65=WY zkl2W7oT&`ppAu~*Kg=d04s)GG+ru-oXbJYZBh!Nl&UutMSoodR;t%qKqkJfLA072~ zM9VQwoN(-Ki3gAEwf=rx)9nv=Uga)2-YADvMbI05a!OT1GqIJNSrtwX_{)o{Vrcqb za&=Xhe5fiweT|_jZpzoIraKC-hpvO(0#zq#wkX!|9FN^2Xx> zX+e;D_P8T-8jgnRM9l{-dN9`RodwUyfhYR4T*wy%wdzA1mj@HwK_z@;e{5k(YjK5tI7cO!XYH9zCoM zMtVQF^yBDOp_p`qrVVOUbFy5As#Qj;{YuqQ)fRC&zE7!w7E}kfUT%kJtg46@G*P4Q z?X3>B4wF3aCwcj>-g0$yoM`G}GnFXBpihFW%iC+jUUK3m%dE>UsNizkk@;jSUD!_! zJmnD6yX#d(owA5k-y(}pRbHpIx2q4>!sQL8Mq1O)X^B*=eC^akYudS{)nN3eaojMA zKTV=v43zhMdWYUXQ8SPh4llo6lTNK)3|F1UG)f-&c@h;LC|~?}4`NL_uH8(il@FeI zk`_#mqrOO@Bah3EebIv!J|eIA;xn2)MV|WQGCFLKeD%wTRGcUe{mKzu`5ku{^&7Y= zD~pOoRet)Tvg@mX6iccXMZxTKXFp6R7_HI@A4W=o6DMWCmQ-)4OjUbX*xdruHn^^=(2k_@sRB+jN?ixvq9uM3v$?JjJ#Z;zNQmkDX&Qu?yvr z+C_*3?Y~P$7@5oJ_>NJyaZebTD=$9RlN>HDJ2xG1>bdf;3s3RLlz(vpp@mD!+h3+6 zChZpA&m`~UD@COXTMZnvRZzoDKg@#r1g*K;@}XBAA)Ua4#d;YF82Atf4 z_iokjvMiPuYy~iZ%3q@5(_bu)`l%o9PUgS<)Z5uyp7}EqfxG$dG($f{Zu+aT=(O-} zS*%{!R{uk}POQ>4alDLBsorn)KC894T+X@i9Ku%pjo&+}+P$gWfS%N3Vht}FZ$`IC zip0dLTA!SZ9-4>U^1PwUojv8wn-9{q&)JkSdz^$8P3xSsL5xxxDcmQQ-s){u#Nhqv zt&V8W@>iaU*|lF@^H-my_nN;rwf?U^+Ahp8T8+tV5v0=Y%jMfw$-3{BWPNk#y4zjI zQaS$iAW|>Sz8w))B_u-)n|b+vWO3+UvdP%MGi2><e*yuejzIY%WMpSd$h^rj!t)NFp)NqF3EAg z#Y4UnvumkR#vV{gcT9SYA;y%$QcUC>zZ}UfVxuqSuzC|2)HX-jb|43nj7U2^5-w5k z-z3+I(i+>1Vd`N=Q;x~My@vc@ygkDRBZn#KE*ZscS3 z7%x6z#s1_!K)PCzcgR_m7(gTx;{wPa(AEd|B4@S&@?*BUl@HRhIFPXatdvJWR-+tfT{JgW_NZGJ-TPV+1*zyBM2iA?s=tPHas$u}$Z>lE_Ej zqb&YaOWnInxjkom37;|3WaxGVjPssfuUV_^y5N#d#@HMonOp^*gpVahBLtZHU6 zCGrEYdPYZ)Z~e#;7N0^mtU-#s+yGrHHb2~0L?|=txo?qViC!e_ z@q2-7P9U8kTPR*6aF22NNiL(n(=x+Ou&v;1_bpPh|yT76H_j)ZyqdtoY(wk)wXdb)&N?@gw)Gs6nzVFzV%{;lK`yjxDJ_aH*b zD^5hR>?HU~H|9+uA?-w1tsw27&2;QfkFrph_NtM2SbJ8VM9N7FpE>QBH<^sGVk?Yc zw3({nJYgwh1|_|D)Ra){K+#r-_}g2-ghe}-A|46c$!%g z@Y5Q3`SDto*^fL!lGvGkqzm>W{n7dWR@|S2vs3*^bcgv_;W&nK?7M^CqTFfPn=1;X zJ6YfWQq`nj`e0T!06}Lc3mgdj(pX>{VrR~DBCqIH9Bwn)HQMqKY@Cyf>8MmJe2X8VXy&_L z29vrdWsG9Soa8BVCNY)twTiR!6q02F4sC|{^*OEjXm%_WJ~W2;4<;9_&8o4RgAp4? zv6LYsfmU8(Gl!7z))BWndtkyM>sWST2-%KWvxkyFt#O2kb$x?L@TBt;pwQ?!G?etD zehbuoq(8%Mrju96SkL-ln3H6Z=W+&FMWZJwTN1^trblcA6b^y_sisvcRR=IlVCzSa z;q=5+Pu&Qz#XuhSxE_G>wY;k?8$AZYK7q{~LmnlW?ARD`oJ{u=k0r+`nc*4t5Gf$7 z9^(Ed?rE~f)$t^{-95-=vn-#UoMpLTVTn^osCD5`m0@8qi=Rq5sA8uVv(W%lvEz%g z=nZ7Hqs>`C$7ArDgI^60uhvR0_N-FbeoDdFJqf$kjPwx$?WD?F!mtY(&(L`G36^8dYq-(3a$JXWDP2Q zSRwzgBNyPN7V60S(vP~NPSxtU_$7CZcX<;p`1s~t#UC#Q56#t>R`85odoQqIw(y3* zOjMltB^9SODnl8q!AY917m-171@CAwR^G*LLaMDQI8mb)!M1 z5PX&ur`g%3FsDCfVYBtoHtq2ApH1E-eC%ze^nbAWr%9yh2shqkP7i{8_c^4LyC33f zx##j6au|1q*^YT+P@fOfp)EY5>bbl^7Hja6#eH{}vJrE&(D3i`&MR|W8QtaoWbNmZ zwq_N0&(nWC$uf{*tR$QCBbBT+8?(2P?Rb_9AxGKOXGu>|>1n?ZlM&dA=SWY#%WA*V z|Hbm3!}9c%$C*QZHIi>w;u3W4ESt9k(co*gVhNei`d%Hs-LMorILEw8Nm6*_1@&u| zl2ICEaSc%|TTtr>#03%pzAzW*`@iwcc99mGFDLJR=c~>m|1t1(3rJsDd4V+)kca74 zGP@l`+Oc_sSZu#y#|p_dv?b%(2dour*kvSH7E^$#Q^+~yT296~DseNzsol&FPG_|j z{rL}|ly6P%VUYYDImfOq$AVVN@O3;3E&8t{o0_Et{g+hl%6p~04XM`ulG>|?$dG!X z2wRVH8&)ApILAs>A;(dQ5cXOzIfD1h7sa00NuQe<2?$3||# zf(gwwks+-s@$=ZzS%S%^QXe|c>Nk-;j9jMNYJ4;c+)P5bVzHYsk80V}&7`-sY^-M` zn~}hsV}~|lg4D5w%_KSG9O9i_^9HTKm(R0|*T|eEZ*g`}=z^}${`0KnHB7|wtl>41 zP76$I=<8%zs4|Vh?`BP_W3{gMbOWrWx4HEy%=b+3XU9 zx3q*Li?#Sw^i8>LQxq%fP4E-nt;F4-4$6vI)GvY`TWD4iR6FdiV`W>(SejPLjN6c9 zRI-w7WGOdC zGVt&G=doSbDb_OoH(*=DFC>$%u#7k0CY8+f2Kh2vL=@pe=^W0LyhKgcRVAapV)J$* z&AP-6?uHiUS?zAM|CTpN71y=qP1yAkYj{&JmVJ++W9A+tyXd+QkrnJm?>2DACAN7F zS;*@Kzoj@D!b5wO`Igek?zfays^5YuTw<0|K<8L|DHJ`&rj{aSsbs~aBmrI2qD@oe zW7VaKwHkPxI%aipV2}(+Z54+i_qlf938Ov!)vQsu!$<)#N+{0~b!NFMC^r&`B!Q>|mh z(wZsSOxbtTWz@A+IRaA_KGPqbvV&v@CDe2MeZ(*9;_41zf>L(#5Wx|cXWj<{pG6ET z|3gfA18aX+DfX$wNH5&Zz^-}`Oaj@23P6GEdIdIDHg@d@%xGhQM-hu{Ec>VeZRAie zYv52YvmXN#!t##+3SqlB6vq530fn)|N;0YEmxy$x^p!YY)qX|qJe=%2U*dnD z<2~L=Vr$tpf!|?Ke!do{9F6`?&s{-2W$xnDrOm{z3IaMFmgUv<;jjC0`* zqzT!%a(r>=E<8UuROMgPresHTg)WSg@dHCumP-p;1rCiCg=|5g<>H4!S^z4DR*C7I znk(X~h3W%6H5z^@kZI5qY*cA!-Bemt4;lYzg4W<|jTWob!w*kts7mwxrFXz4x(_y>~R`cu)T`q@RHVdUC!ZV=TEo_SU|Uw9`fK+KO$Ijk*wi7hc5JD0o-cU3flb zDu0{1ZI+&*bbX#;=RPW}z>%w|)kiU!Li8qUMBQe6n=1-QDy>qtS*l_)rJl2wO4DtY z?o@21HrOLsafbabHY;03aOpi4M-bjbO^E?EWZH^XsXb_+R=UT7RDoT!I)m=6<27se z{&(Y@CcR+{j5;og9IHzgG?0zHfSK8k&AfmpG1wD!krdH@H2li+n6?{O{tzp>OeWur z8_#il+4w6Y>Mp|ZM^wU*E2KA>$ZlRiNX2Gz-uGk|;V)rVNyh*()su3AFiNsn%}p$% z*`8}Rp+hrhzl9^8CXj9Z3o#^{t!Ti?pUn<6ASTUc*BcOvpJ9o&5ni)d=55UHY?gl; zVJn;UzoT%@yMtgmpOxKFIIrD7gnNdCHRAkjKAYF5AWIuDZ?jo-BeLV{mjmfie4KfC z4edyt++Ri;4df|SW~A7#dd?W>x0Dz>WoC-+0|w7E3&k2hx5a&+skI4=xi{ zJFnS;DT;r&;u*F$kUjv8>Oks-nyR(f?AG)pARAgkg={u1h(5}D83e_iVb_AF45Z5j zXuju=jV2q&v!3gr^g#pp#*-0F&x@ori?!2^xhIpWcqFX)SaI}3K0`1GDtYv(tk!6! zlnJ8HFbP!Jrz)-RbaOpS0)-}C)M!_f38K_<^-yUA->Ebc)<^`E#9XDpM2+~FR`ClZ zs;CWi(`a96w6B|K&aN8nTOKNugAS#RGf~6WDj$S+h*j|31Ql=k2;7D?YH zrZe6_}X!w8Mt*i4;a+QgXjOimbHJ1KBe)o**Our=^{-e|v@$Jq8{ndl%Y01aI zYF>Vw4edgc;h2lNz+X|8#8VG<*a_We7c9gqzdId-;#hb36pF+i^nuiyYWr2U6kY9n zJeo9B;TqGH?w2O zis;22U7?qbOD~szO<(iDarbQbYMiPpLmE2#Rv8b|aSr?lD)oplp5Bb;@V7w*89=j#Q?YO1&CY+U| zA~4ulLn{5Fdz7uff@wnW4+1FPGk#M0Qw2OlA_sR;@jqy_B^EV=X0;x#_HWmt9(WnD z^QYOyAvC#lw2DseqN0bTcr0;R>2@-W?jQP@Ouc4_?pJ`{*o#ntxqcrEwt7Ltdn;tlsI(INuz@ zJIhvZqtTb9@;hhx;*_9qkDR7eRlz%_A*sFNskxs%Ld;r*<4JsgVret5jM22S8QFkb zFzqEz&S;7YI|jCR41FRr?PGXCgX#%|Cp=#%mVSv{AA|7zsb}O^ir+H;iNn4%EayRb zL|Jh28=1HREYQ zQ=*`%_lKu?0^R5ryrVDTh4x2Kt^mx+vgmkr>IoVYQU9z%mIltQ=nx__ngu29_X>fZv7{`TkW>a*oJQjXujfS*4TJ1LzSAyb;CT#BFFYIZl;WA^ zWSg?+3pDmQ7CM#2#ch7hA+$ohw@~7|N0>Ed;gs34rrKvun=>POrd>GEL}yP`Kdv`_>Y<-edxHDf1>B8S z@Mrqlg>1mJpy_`EFBAH)P1BH#jCh`fPp7yC{5-?8&~WPP%WgeQSF(;XXj%k&!66I* z^M|O>0cE0(;6sC0LN;CQw_w_osR;|7>9mLi&7^~a-df}k%wYWo%9bb(FJjYY(wL5y z0do<3sUS>5IepfGXR__{7EF8mnd~Xq)7X}oG(-$u3?s1jX3{}zop|j7z9>BSf-LB8 zAJ%#nwZ+s;Z|`VUeQYU|5#( zI%)j68P{95k(7*cY!{{ixqg*8_eWcwetH2M5w^)^=jPEE zIxnB$U%N`8Yx3E^`80yg^RUVDsUxU;z8#7+kMXg5wr)O6FxYeKtlwPPnO&PtN9N8e za0vH-3;z&}&>H1+)N1koSj`vKEm@5^PIQJ_G7u%VWClw9r;pfZ)b)k+5wsMlb@>RQ zu2~tvi~{!I0y>8dEo2GL(C|<%nEaIL&Fb&YXOo|yUiVQ<^o0;Xiv81JwULW?e{M@Y{=j zCg%~*Gg#_IYNN-tvTX}#LWGWf2qc^)Dt}x&f6)0~79xzfi`bm!=o3^}#XftEIs&ra zvMY4XGvSgt?^fnu-j%On8*=D6I=Yy}JrAew7PH~c(;<#tAWXYtW^&OdV=~aDKB2CD0X*RRT03f}f4uFfXVeh>;CdFChu_VhoSa9)tqngQ z09*q9WwtDjE}-_8*^N9J5xxFpRcEX9!R#qnPuZWqf3l&`w7ynh8)&T|^FbDvPy4o- zm%X6d({uUK1>6TOvt`R@QPA)W4q+%@e;9|aR>L>22sfP=QwF?mFxUt^b=}*aLv#Y1 zU&~&1)8RCVv7g*`>llzv$49JZ4q*&rp2qUX=Wt)UnpxmgxXIYEeEKBqvXT9g4>xvg zWMd2HaEEK7Ll_G>pT)6wd|{s1fbYWs`hz*RK7dsOF0VO)4~FEZLk3TFUE z;TikTgX10_oH}I0xUs225ObXc+b1!ros+C;DY<(HxJp=Cq+JXfWNe zg$*x8n7F=$tu999aCQsZQ%vK+Q%cl{n~E|3+C6}h_jXJP`=yu;octVM9{y)wfovChtX&gDNMyPt}QEi zk&Yeczttg(0-vvJS3KJ3qW0Ste+IJnpB{+L#Io?!G%jd2WN_!MK*{w#x|NMzP1A#F z0dswI{MD^&?`kX`y|%IMLATD{=1`Wpt=m}AOLVY!2yh?O!`8e+hgv&qcL>R-FKlP$ zUZT6K=KzNQ{Lgl_dJPS2f`fOky=$;E^xDBrt)bz=&&1xX=e}gv2haM{NZ}Bkd9V== zf_$whOM*A{f~WQd4S3&4zGDaLu@+udvx7}uO9!{Wle@KTv3Im*z+emoU;s`0dUIl$elQO0ogrA%MQo%x2kcntuJhjkt9 zdk>s+4?G<(pEElDT)gwSrNi^^&f|y<^F@^RO^11S4i|8s-4`wC$fZE~R@w(R#;4ML zy!#3%0?gyLUVjzdc}C+4ck_W?!+UQ$@ttD__K%5k&V0kE_I?>h`Y`6>JsMAf4{o`J zL!m671m%uL+3J^RLX#DFFZswul|%}Qw?+zU@RVw0%{CS0xc})%0gXRpsLvlRXDI5m zFO3wgy#?Ca@CZD-6!xkm-g6ZMNB&Pw^&U)U2q=Xh&g1`1Gp|4JoX$&5)8F;-tcLfc z`L!|-I2(*)kwlna|!FvXtr||Hf(JBHsFh_{s&Mfd7lMrMvnIVJ8aoz>aYfusrH-g^6cGA@w4da zciE=ban^(Kng4cb4=O&Oy2&fp#_@1ne1Hwyjuo-` z0DE#f9cZl$a0n%>9mpy?|JY6^i!Cz`sfQs;z#PKnZ=vl>_JQ`q%tLJ8oA4NvbKXRK zl$+i}o`&)pls)un@1PpDunt>calQr6VLrs%g-~z!9-8i_Wc||7#P>zIls| zr85t+gi>@E<>XS@BVy)ZHM#x(b$AC85)%X+H*tN^3DWhi1na)!` zoi>qj-e}hCZR*E`_kEith+lf)hU~X}*bx-GjU7R~mu+~P4h$b!q2`tS5ny<*Xjr0d z{>E0YUqE+cgU&O9T$H>sXF%t<-A=$Jl;9h+mqvu^d}n~??mQMHbQGd0Sm9op6cl{K zp#(;(`U1};f{%Dk?WJFegGGG5;1PB{y3A*qFU*6y4o^jEJh9W^bxkn)ejluueS(GV z$EnKA6Q08Tbe%Dx7(KG1LjEV}1jK7oMwZ!vCB07*QvJ2bcoaN5#C?O352@9TGu`Rg zJkb+$p4l32gT|xqdbXC}OrGujCmrXA{Zuv4D3o1L@p+Wo1P4*!eLROgVG)ODTu52L z?M7}w{>NhvPd#?CNr&*M*Pj&}qCIhU{ykpIWIrFGLr5{}{sEmqPOw)#0LwL2@c};B zm9RfQz!%6A*84+1VeDxXCVQVdjlmdwFO6U)KBRUC`td{5DPyed#US z(@t#7VQOTv4^um<_fn%+Y!HN6_Q7F%@5^AfIeRSY?xj7cWe~e_n8vX+UTUFN2eH?W z(*!@RcM1Gu96Rkr1DWhkFCAoXrQTs3zlZB(R#1z$FZE92V%Gf#4Q6>2_?#iIS1M>1 z(LVT2V?FEs6K&6~RM3vJW(b?}F^%x!W@vyD)Ud8cXg7Lu2%CHaE2n)Zn^Q|2;$n<< zEPMM16iZBNZyiC}KpV7ALrK7Yh+0EWOiZ&aD z-Dy0=Dh^|}RezL*iNzUr8lza`w>ZRk=NxURbcY`gEM^0ap*x4zv}3TUk-c^dHa^R~ zK89hK$2wHf5s)~m5?|prvJWbOgbr1-leqYSJB_g{@*~<#5oJdxT+GIRLe{Y7tDy2e z_BJn$u?r}~sL^+^`(uJdu>r?vCqwM$JM8g#n5N@V9G%YwVJds=I87F7#@uN<$d;S{ z>G$Kf3^0T16SM=}Jx(z#EBgckd=2@)Zr0%= zu^v(;uVZ>+I!^ z=@42!NgZ+?wQ5@7Op%dl?rD=*#7FQ1zO#tO=F7+?Rikb^TT%^4`RvVVh&aJcgIBaa zey1^vT{s18+kXOQ3jPU9~DGYTmTX{-p@y%1H9M8T}q1&g>u#-i93X4x=(>?{Xp1r6R`#*)| zH)pV)KBX~yqSb(SkoBpd-Ne9I+{>n1qA^Uap^@Y&+g}4_=WKT86uLPQn$%$jIF7YG zjr$sbY|3e90#7-O-d<&2pN1qmBcDN&4AvV3&3~57`5ZO*?8`)yUC-8j2Bu@|z0WY5 zDeSk;AZH^>{Tu?y*wdfWPA2b)JB>RCi})92{MQ!|{eS+RnpxfF)JTJIyvn8VQK&`q zi()O$psijkl@}-2vu6->0@-(GFq-{Y%P-K9Ah7RfeI7YZ(pF@ zY}VmRAP=$ozof%N@5VcgnS7#!vUk3u-N_kt;Y)P#D(m_c%|fyED?nlFyRYz}|0=ux zEN0e0w)HHAVkZ0UETmdk>#qTovirY=@q^imU(+F`hBweD%JzPbPTl?*A#F5^{DzL8 zH_O;bio&TE(bI8k)I+j<<~wZ|nI$2)fk z<9L}>T!ODGW}Pq75n_8oqc+)CVhsY%Y%Jq;_S$85#c1})W!No{iB}*rkllBMjxc4I z8gcWKox6gi=>01+LfmI=Y|LO4Khj8c2QXUc@I5MDWA|gg(aUGQhkjw~&F|?0;?!w;f$M8q&if03^g8eZz z3x%P$bt4;e4&5xf3d5JN{Z}z~*HB9xtPMY6tgZvhWMh6q$gu;)#OeGax?dXH*tk!% z(YhaDqcHZtkLc_*Mt*|)OxE=$`12t)>nC{5&9Fu`_b~0iygxyJz&`p3BNorv{);|r zYKU)ayiD2qzrqacU$g_+%=TjzBNlwei_uKH2C)LW?;4;mHvby!X&T+5u@RSxl!<^7CFnb^OvF@=#&wP@(=E(lKc+s_#L9M<|5@J(P3{Q@O3 z+1g)VtQCVA^-x>$3)FP6uYUorKl}3+SoAvU{wr>bJjP!96?#l%`+rqB`zMEtEV5pi z%9D6e!d|I|F4gQpJ*vkt@*C_ik9GYG&|-E!FLtn}c~Q?^Rl4}0N$U!-5xvW~ZMx%cY z+4`SR_^t5{U`r3Xh9Uw1UycuK1YF+(pTgBYBA9_l#5E1HuUMl8V7m`I3Glw&_9p&J zz_U}D;Vi)X>IPq`DI}C?uv&o#?*NVkJxrtjp}@J#0&W4}1Ovx#0fW&~4y%7eNCTYd z17`qs`M@Ip^D8tu|0uv$aUX^6q4@CR0B*i=Lxe?ugLA=vj6`AB353^2z-|u10?3^d z`saX~FQ5?NOThfXN)+f^;qDkp4y%7e=mnTxV$oszJ9En26CQv$KmIjAA(vl9(HUL> zVuBC64sgly4rOo5d+-5ZehWtD_X4gTXcwx1-~!uW$G~sO=yd!7!B6x z<4l;cfe@f09tHy!sKXOE3*{D#8l=DUeREk|0>|?J`VqH!2G(APX7aN zAa3KJKy4~G%-sKg&>OfPTbf=@yUGuiv4BT`&iBc@!V^sG&iLghT|f}vP@e_{0OpsaboyYxnV@s8=JlTj zTJg&e5JP5PMz>kWJXxE2C*3-R5017N=2<_&fMe9ebG z9`K4q&HQM9sVa^e*a8|KLmWx z2d)6j@1g1RV}Q^4z{dgeIH1!{0@m-Tkz8nWT|?*$e*or@Pls;-=8;i{Zv*BR+H{y7 z7nS(H2Eb)LFn)Kd#1Wm}4=}eF|AYTifp3Se`BZ2H*obMT{!t+aaIg;?0(gWEjQ{t8 zu*L^&2bjkVy?zAXoq+EHf)Bxc8Vr!nKPrp_g3ojHj|vX}=F?J##{%Z_R)-$~%x8rT zPXNrPp$8RD|GmEznjXv-ffcYgsoqiTD zzbvT3-vU1D1D^w2?E_x`%r6t>c0diTfIlJxN9Y1t0p{~ohl2ns7Yl*l`~x&tr#k`j zd9A}k0PD96IsY6D*6H&BW7^{^LiwXYHW0;&*^x$k-{XnHJm7hvQTsJ~1Mo4b!t1|L z^MHdIJoj5Q57^Y}4TgI5C9Z@en8Ua`@lN^&(;MBCiWCHgyfduG+F&K2z$Yx|M3QE0K0q|{2cJehwT~*QZv9; zec-PFmp#%exGOW z^~`=||L(o{{(k#)uj#$kv)5XCt+oH0ea_h@?b_tV3&I8r=bf?4A)znCvxbJg7!Mi| zdKBJed>NKc7Y9qs8;5I*C(8P~v%wXle>iz?AND%=__3}qmjL-lvicD`&veKUaXGHyJ7O`vpk)*#TXGEluQFSn#8S>FlOLkQTw`$d^j0jHZjxXO4UUSl?-%;gi#68Emb`bl;d}`9{D>0>m2d3YHcJOWb=6OM}&KVA(?T8Z14aeiuuF z)$ij`PJ9;2`ykb#LE3&v*~V;=rPGh&wV`yXgo)q9(kBV$^%S9t48rfY+BEr3Jmk8t zliN1t>_0ByR*89s<8{VIG-eRw`w77k^YRGD93Q$f?rpZ=7_rGe9#5vidK4g|JQ|NR z4M<78iJya4kl)0`zuuTZkS|UI3sa7O*(TsuEMKb7{2Kf?`O;%jVOvU)FIi}Q2fTy) z{apUpSiYR0`GfEcru-X|B*?clG++i^OMp(ZrC7enq4~@4X7V|u`3?9M+aCH3XH5v> zx8fdC!Xe3_Wg|_GCJ!Q^%p@F)A2x1@GkJ45SmItTP8hevTZ|9KSv2qr*T4bJy8hW% z=7@9BJC_6*GYvQ&%b2Q%VCgdTa4bWlz7Wfhs4vDc#_Ca6dQ^QGmL3e2lDIdH1Q|08 zn27bOFEYjz&YJ%)*00D&{yWZ^{~qo!B{e0BUCQN#biM3E;zzLbta=5P zAF?-XaOZ^*E-!M)Pj~TG{T1vzGW4={u4V$rNNE0E^S3;ePiVLr_>DIUvL zl2(!+1zgxPu;yQk;iae5Xpz zf>K~tXU*@9vDCKB}GdN*EYCe`5wdfvaW9)Jg8 z8Pi~idnH)D3g_?Dbn#SY&A$Q55U6j$x%5~NpNxBpU4jNI#WE!7=dpa{O)L1?S@Snz z86x%fSia__@dq3fSo51<88Uy7TWZZoSg#5A5WLN}70#pww1C!lh;chS*0?>MZrl;i zH132~Iy3*{UI7Vn%#}_zEMue<9))E{)W={MGIbG_AyS`!<+z|e3CnRseF~Q23Jd?D z0e$%+2bN&rmKtt*eX9R{9MRoFL6x$% zs87SPcl2=U%Y!Us@>e;>8pr&-rLXg;jk)J3yURS6u!H~^D)u`6l(GxUP^ph@67%<- zu`d2*EPGFGJZSLA`^EgB^XEo9?%j-KDCBq}r>M8F>|LAODe2(sWXvB+4H(R)m}M@U zX#|M&dgc+Iz zxU=y>JiuIzJcI3PmuIn55G--;Ib6ul?$6LlMR{b%P%h&wSgFT9x6l(jWZbWZj_`Yi zhy42W=*jn5Y+tXe#Ij-fYBRHCjC$N&NO`NMR~PAsO$W*A5nX|8KZ`ZR!4mV%!SaPp ze{PX~yR+usiF;E)I}+s3z8uRpVKx6HEME+jk&{!!kItIEy*c}yd{Z>t1svKUum-fj zeNBOfVfosu=6Ar0jgQ2mZV2=9ajzRgcfo_Ehc1-csq($sV2OE0WBJ~#x+g9*J`T%w zay7pfmapQfPsZ{UU3DM4fgb8Wg7nZtEZ^4`cbFum(IT1sKoA@6h9p>c4U6SFz3L@+dFZpfWhBTKc>Udx7JlWdD|~}x3)KI{@}*sk&ptS? z<~PMTH>CRKFuA4c^^U`Q{vi$3$-Zy1n7^U^++gyL$FiXb3X+{+1D2sLaNg%Yt~{~k z_rTH-y8ffsmY;PH$1Uke4H$b+-3mU&GMBW1y_(mppgXn|Jd9-R;N8m~t;GeHa`PA8O4^DnY!c11+ zn$lmP!J(cvA7?lh;K`CZ)f~)$JA%WL9bcKVq4b>g`x2rTQ1V5RV{1 z=0t-1Rjm1kVwr^MHdy9}`Ys(Yk7@g~ z;h?JrEY1qIVmZKUlu~iCwp`tEJXsbC+!xDGwkKaMCU3{Z^qiLWK9-?U@86EIgvXALH250^h1>jNpIL7!rM zz=XK^2)1|wJtL=~SUlZJbmTPBG}R=L_GEIKIk0S{$4VYZ5G4zj+<5gv2?0yY`x#HT z*}aEHk00Dxu3X%P;Ztz>+=L%3@qKa8qoGfi`1zsxw`S_dGbn#hB7qM)pdN-D#E}}x2gXMf@Q#vNgHDCpnj?j27 zKjx3zIWGS=EIm8Kd1^jaCel-9xP&Rvb8e9r29;PIB@!$#?=f6%{5W3zWSGAI+f%?o zTxNRy89d$i+5Jg)#w0w4b7rL8Ka`=7f{Wt8mcB~Mr6F>7kS#y7Gh2^~+)&(zrDAD{ zzc=A3;|2x1bfg|V9Q47`Fzu;Za1M_^QFrbVOQT__DY@JptXY^^#NXtOr^796(8lvd zQ(3Uo^Rlq_Y{HqsB0dObn*6qSITbRs{3H8$xE*fid_8V%;-|Oq&h)CZgn929MO$)usqL4^AE!Ej2`vD zSf1gdZi(f2K!fhXIpl`DWwEc$@K5Tx_~(0iI!Qur0*;lp)#D zPn?4$(luD0J|y||yYL2=Bxt~1U8I84u&!x6^S8VhHmn=zl`BFYg@>5+j=@#8rrz($ zCo?22GZu8&jzW$ll(UQqqzjMhF0b#xW5a4J<>Eer|+?P`QyQTGPB@ajn z7A|K<-(;M^%Wq9B>L$lJQ+~apxO5>dj}@i?EJpK!6s z-+^bX3fKR&3zL5y&t~dOh0?>Vy2`DFaB`o9XB(H{>BbM^8Lx%~K8iQK7J5FO`FiLo zEDa2nxc5|7cE0r{VG#kFjhA3~Sd^}?43`Oui}4NJw7@vcu8xQKvinHEK_{B>FGjW0OU3if3-FSxaJvfsMZs<3U?@n}Q@*F?{?=@3g z-20J$cKBfD1CR2&lkf%3C*sL(C6FvJuQ%Rcd@8OazP+Ez#|-i6H3DO18Bq8(dgygbtk%Y$@KaM9DFTh)v6vO@KxVPTfU!4v36w8pQKf^L)>M!t#^sqX) zi3I6#P52f|7pcF)(nIR4xUV?^Z^P1Kn*TGF9#ikc(j)5Mu=Id)Td#(M3FcFIyK$Lu z{Agad-?8-gW7B%3C3D_M1p5zN^~f>IE*vb}w8n)vn*_Nn^|7<&Z@@J?AT@^s8S8pI zITZ4owY{7>;l8H40=$^`V2OJ@doo+)A#%YI^G+b39R=v_Fb2y*;xvCe{+xWBZ4Y31 zn4IQ6j9(#tUlOE2?_hcGoaX-%FD9SMR6qZ(p3GKxYMln89m`}f4d{sFsdbv)8Osyx z)P?v_)1cv4o`$FSBXRoL(4+DD#Oqz9*+~-Q(RsSU{dj1qDkcqaMU#k;UP zf=~1R#J$Y=?TY9jlYa!3NAv{?x1sV$n9d5Bq)3;YkL4MC!4mU^74e{9^5qIf@^8iR ze7|6cd3R!YzMndU<+*?AIrv_){_EJxfu#2)360)Qc)=3$-p1{W*Wv=>f8wna7-t1( z&|lbpXdsr9*m3+>mk_Y47^*vCnf2tK^pX~v*y1q z1$>zBAFd_&^-m0}`Fr67RG3GC3}pe{h#NT%#?`E!z_R{xCo*7?5G=e5BVaSuLv*K; z0&9K&-bR6Xh#rh<%=*J{=0{<9Bk(fgk$Cz)!rlL_Bnh)g(Bs7lyn~_A3O3^k^5e8X zwrIbTnHwg)Cti-}Q9u7;+?)n>bG{2_nI3o%&o)keOM+AwEZmxOE2y_(DNwx)pNSa> zzrq812iE)+SSnB_u*?DVp;(5b}4#U#L>JB)QEmR+g6UO2h8FXsk~X<$xXcE_4YRa50u4QIEnh1nSH12J@NSaabQeDnoR?v&L6o88Y?5Scc4B zQumyi);1~I=Z`qI$=aO6RW? zHmgry&EFR@;35N!QBINY@{IJf8u<{?P)D!qPDRsf<;l=a!_rV4`d6_uR9(LpCphT|P3YY#=6B^X*PvNg z8m{>tV(CeLXQhIsC&v7qQI}wS`mHqJUTin82OF-7%&l|#py&lU3s6WM{oa8g;pQX+(PTQ}) zbjnQXkm-6QM-u7uMs83Z$I|IKeb3^^BAr~C7R0}Xr4MvAEj}eiAEj0m^I_5%-z8jS zF|U1J_FtO9>mq+s2I8W7!of-6gzv zrhu~us5HI~k2M88f!kv)NBjnU;0#%Kjq2jnpJIK;vW!hezrdQG*^j}M7Hh)Z1V|64 z8)DgFbz>}Btj@;LL+YkjpYkjf9`CIACt}$^b?^O2kRH&4Q}OD1Qgi!rm(cq?;nHK? zMADZTm*HObhU;B}XWpA?awhw$#I0dXnJO3eVUA!uuq?qdSx=|JPAuhc=nsxul%tCr zC@OH#ec@%zTX@4Ae1IPgR~1m_X2 z`6F=VpP?_o@-S=7zs$Lc1i2DyP|T3pfQH3&-5B>W1ss3}86Sk_7$@*Ligy;_t$v)JZyJHVKn80pE|O8_&fuiL}DUBCd+~DO_XX z7vo-;;rh?v0nW_-n74w2K_=i8yixaiI(;inZx9x+9qY5^WlWo&88~PlA8^L9TdP~) zrCF-qMCbfDSmc2mzGnS|6``<#A z9@t63dK2&)-fUchcNy=-xpTq-;{%vv#u>PDPO8Z{9OCVFhp#(}vp82DdlF8FV~9iV5wK#=seyRX0EMs>lb6$4qgAw^SF4`-wlug z))62Za=0t-04^5&-wkkXOv81NbIK9e&b|DIyWm_iH;=-T<%4Yg67!B7K!W_BfF|_9 z3mHm(3%m?(psZkqwgk%$7X(Y(I}cAczQA8Ub?3Q}o_%=$@842R9xKM;8D9N?+%}_O zMe(4g3$T=+ z@!#X#`-bIh!_$p_Nk$TWkN8h4zaybr6dzdE8CZUQLi6{EcpogkS)ut&B2Mm4LV*c5 z5cf4c1dlY%#g)c~;nl_+Bkmk=SG+NdPkKj_(4%qK!Xmuh_{50&M0^_FVdDGa;wE8v zXX7o#gX)-*=g>L{94m0Sbq9LyL5cSWf5P46DEE#E>X+L^Li5Gw?VYP znTb%kIwWN8bnc<$%ZDB?m)q8S&Y!f%#Z=7Ii6>$*#WpbonS5bEDE#(7Ko}gyI6{#aQOf5Le&{XYdgnDr`o+ zoa=7D`g=6uH?VE+;Qn>JGvZs5XVwj9JD{#RGE}bMN$s`{QCWH_yh?j0a)) zDVSj4KIza%!i5oEj2D{~#$c~$SipEJzbB&wmPI@%;>ox}7@zd6C!sh@@NUNP<1|{} z?Re}1;YsazyhY~#JIB{}ht2`q=xiEnd^9d#eSeOSe<2RbXZ$a%lMwU9;2EX?ptZYdOH(O2TZNRJ3rJbFf0(djZQ9saIhAu_HM={M%Xc zw_xcZ^^aJ3NWC4W(<2>8VEeiCToNQ`KmtpbsSm~aD@qdI&sp=&!2F_8?ZtSxv*stU z454}o9u*+ftu(D!e|!B}!sVij&$d`_P`UbizLvlQEM)~b$ecEqkC)(mJ-X>y0^ww~vU^V@w6d0)8xN*a$v? zXyg1J!E+Tz`OVMaMu8djmJ#P-`BAB0;V=?$2fTrLa|n=5KO4&rQ}x1fXQT2Qt_~$Z z3z+W$)K$3D`?U@fjN{s3<={v_hhBmNR+wFn#Z zEuMC8=;Rg>)|!N$BHkJCZ+N4L{|na`r=7>K@Q|>AOe|dtV?@jOu{}GJl&3q>i9`7s9Xm-e`Lc80f@P=3b50w^6@+=obOV;{^KXX9`F0pr z5HbRj-3nh0=S!t*Z~{w(txIVD6?SkQiEaE75qDq%b&_j-EgCj1D_#)iF#E-%|j4#K9EyMDzNJbK_iTGOF*Q_uVR~S#n@`H8368CPw zvy5-UmBx4AYU5PZC26^JCc&HM%NNO7dLt=P2KCVkVtyCoG7H49!F;QQE?VvKe_#xx zMx7K#j^HxVcr2C{>P_jVv9w5T*2oy&f1Z~*{nE5fbsDjXX6hmX`5CsG{Z+)@;Kim} zzQ>!5x8X#qu-|{d;hs>>+eIUGUz*mqP9y#zNEd0ufrI!!HPhMOQtnK&$F|VCh&$r~ zQ)wYyZF~&QJ2Y(6@q;)g*o2cK0ex_hS>bd%#CQOnV0;c}%1G9EdI-61PC zY|&@}tj9$>5f_>Gt8w#+@FVAs-~l*6H_BOXE$-DOEdK-Cj{KlU<6O|3&wV))kb&1T zS(>{7j&u%&g^xAi9ptOK;4BJM7vf%%Lm!Q$ftueFO9Rx&<4DjSb(9v5a@K&$@Nul5 z_w(;{*8KbN>Ey>rkoBvbHUBMq2Kh0Uzth>}H}!raLAp#=sKG0nrsj@`yxKedLJp0@ z>25a_%iP((in5!olzfI}8Z8l@auKf%Cx;Kuxdltl?N7YyhHJ1)ZogsN9?KrdZj6I- zL57!kfqySJXqM~^xfj$Os>34gfR~%0?1U%KVBW^`du9;s-8P&HLvfk$g?N_nr57+c zt8|O$+Peu@X9DhvxFX_*@ir4b50|$K8?Zp)jTd2QaIo;`-_|7P4|>YjZgkdwuW(gG zYTVe!Q2j`{F4A**53XBLqlovz@Fr5{+ zMyA;@?~oyZwSwG;+v3@#f)2RCxD#Gz+!e1eK6*%!D69pmOsULnO}Y~=KU54_$%VraQ1&wKs`LmcyGMH zxRG;FEZBfMBKdb)%M0^+NXY6Kw(tSG#rRQj96CX$NKa2PaEWbjW>*AYT7+A|YxYklX1-2w%q^Yn?#E0SO zCch(I&LLMCBuChD@Vb0%=(!$v0&g<;AL7O22Mf<1aPjU`#S;`X!H?iK03zOucbEdU z;Nn2C#w|AD6)-y89R z5zoc)4!COrJ^EkbG82?hlt0R6LH=i30 z;dZ0S*!z;e z+JlWQVg5;gChSLm?AO5(_YT0aAFG>T{TXxVpF5`<`{MD4Ji(Gx* zjWc_MbMwB49~i~n)58QjOhEQA;R^F`Z{r0KFN$~x-eNX%8Qy060_J~ispqX2mHMGP ztx26*5k=gIlSUUY!K4$GkKv{YZP1Ng9Tva`5`Nmf5sxLmFQv*JT0A;%P)W=i7;y=n zY_{qA(R9LWlQ4{c<;E8|>!rYhk^IVtAHy5X`c)A>h1>NEJ9+VF4k0#SDFKBhU^y-^ zei>I8zZUUZ5x;|TjtwjPXT%>SNhmM@pW;yuhmW7CH-?WCVR=y{duS&--NbjrmBvR$ zTomyMc=K`Y%}h#6&LLsBDd3@qEAd*BKObingve;7`GBwYVi+#EB+{st_=b50B!{36adsil|B<0kwrYcxJcAl_eP|A-HaxCJhv zfMAJvt#E=0GyS#W-f4Kp$zgtf+`M<_vuo{N!t&6%+5{<*$I9bEvqC8zV0;>w6SoQ+-8MqS1NstXFch>wQmPxFhf@Kn`ug7aE zli{txg?>U9@C=q&t}8r?WiL@bhh;ZXFUPVMs9(ae7pPa^9@mC`6}RX_K#U04f^Cvu zR`?mqtkwc{VlO8(cUt7y<(BQi>@Fl*PTOyt#i^S^_6+BrxwetX=GVhb*M+>nCdUu? zwQq?(?0j-^!ke(!7x0pnvuJO({wJ64O*2kMNX_Kz1h zXKdZ4ww{Y+Z)rgRau@hMEPG2g=lDea;TE~BXpLoW(--6yIR_zpU~=Msy1V0L1dKAf z=LB4ON=sKHPd32QjjxS(s_#^*8zMb>JL$Se!CjQGL33+|P0>8yY##Tw~n)YL3We{g%#!tS@`b4Uzm?)Uy53gxg5S;z-uS7f%$&a^MLT9>k3cv7Dr& z!QVJ*{=c#8HR>%`_A2#{Sav)0b}SF?3hJl8Ur1O;Kn4*~!6DZK))iXeCFEzh{Jzeb ze>#4de7&`Cm9yrT<25G#vB0i=Dtw%T=99w~F2HhR(*hP^*$vgtVA*Tb&*FM`7zwfg zUpQ<2CMKPU@Er;Ensh6cNu&AOuuK~D&sgS!dMB1Sqy7!c98uR`8DjNr zoM>zk;^lHSOTB+<M-fEqKqe~tKe+g> z?@YYS_*(J#;rdf2F)cQlfF}u2RJ>G(2u7L+!>v?Y( zAD1NIO_MMRzhRuh)yAvv>&9F0YsT`EEUy}$fL9xj!P74ZH!wM#ghmAD5Ii8BA3n_L z4eVjf-+_A=A2ONAW!CS5^Nc6rBI62N8anB{MS>S5csua~N#kC3C7Ql;*ufipxTGC2cxGjKX(gsW1yH4_rr{O|#e7OQU8dOX4SQ!GQI`JZ9wa`hKjdYnaO7mpesLApFx z;@-D-wefdYX0_&T#WL&F+pz2v>YuUfHR_#M_A2#nSoS)1pCInlkRbb|2JFT%>D2M5 z!6Z^=VA-$LnOG*BdT%Uyjk+P0y-M8}%UkL!s-04sSLuLs&Eg_oW|(lc9baRx6XKm z$-e+Eygd9k$h$aaK`Sre;(y15SdSR3ujek+WnqPfJL@IO#Os*^HsI>W3X^crRuxUj-?xPS(wxd#1()5q85 zC%v>Axe7F6+!3#5g=5?b=iqA7L(_1MiGK>uGx?w3WyTrPd2wc(hnG*#2JqUbOPz$6 zcT~j3;9a#V#JuBiZyKPt$4BEcaLhG$Hl9(Y74WTZ+~4F^<3im4ISBtu!l7?3IUIIuK`03Vkl_Z9Ld{8LLT; zKBW16{Uki92~r=Pj|Z6op2W+HpTXX>VTH?_wa2zc@_&u^cif!ygZim(Hwjgyz;tdk zRvR~P?i~-d;J8TsNfDod*PHeG;pNG&!Dr%m3%FUV$LecIm~O^wKAvs74mY|kEZ}43 zGCD%K^pIQY=I2J-7Pm9&cfh@`GcD>w!ZK6gAUxfyFx1(-&E-8D$)6YT6L^kUe<9xV z0N-HZ*enhH5r2`S!k9neaqqy}I5STPx9|`=z&IC|86SqrjXUCM%4_DzI|t7;`4`}I z#=~(^5{A$MY0)E*fX5?VfVY?e7U4#Z^QKSzVEyfQ*3@tVe#HxoYw$Yb*zL@}^(LX- z?VN0k_r?X&!U7vPYlHho^3RU=T-?{JKN#;YF1?-k-{|_Vf{Ud9<1x6E zPjdF3xkQhyiR8Z*@wy}lYfS+k;|bHl27QKi8Gq$m9t*m>)6Ba0T_f&}o8J_c*Astf z=3Me(5-Lo<7(C7d+=D0F92W3^bCEj^d>YB$81YxQ!mPg;*Mv@bTS@3}OIX2n{51`r zd^(VCDc-^DYLnjz52|geMr^hQF#UpBG`zk+9GNtiX$n zUvbWLTkPFgH$NldOuW&ozYp$lYuLahc$8Z1jW#8r??1SxbQPS7t8NQd7>w5&mpX58 zN501*`Bf1=g=@_Ei}Cc^gYudGJU5es)h4;0Yf4lj+dJPM&cfKgcXd&Wya&2=f#3KvLurKe69WSA5YaIp~4if z3U9tMtl)K=xGVG;=MHYj_MKHXKRe>4cz{{IIqt?4QC#YmS>Bt39Ogi<@O4)#b3)xe z;YISQ|Kah%yrs9602!hSaAhiN z&~UuXcx1$*BOZ&hXNT)g#Q&D_zwYN1Bz$XH{1)D9yc74jKP=!6Jj&R++w;CBUbnD4 z{sD7t@;C4-ywj9-9sXqj_eR-3KcI?)m7Jf0CFVVi<$SGvHsTi|UV*b74C7zHeT}Pe zvGLouG-(pvCt;@XN8*RV0yp5k=9T<6IJY9q{~pI>Qqf`=(gRW)*i8OG_&3u7C*fqF zso+!+{xAVo;2K=d75ES?H}Q|+D&r?`ueo7^7UFao6m#o;iZhJs&1V0vXA(Ni=4@yR z=!${Z&}u1ONIDWDN4GG;@u>~ar3IMz#55P)Y99P9u(O7UeD`94^qD0gX3|Pi7&%L%mz%t z-jiA$$G<5gtgKClc{k#$r!;`KA#evO&|4}?alRSzFL4*Fb7G(Sf-TlAZ-Q-)?Qiqt z{C}WLz%6hAU8V)J!qvuY@fPC_xVvdU37$s}>H6p69^~sBy9rAV%Hp5@Z!-zfiFZYO zH_m=0EbuIy8k_0$hzxeKO#6nDcz_5A;yOVEIISngV>Kf-dCOZ^F!yIksjVYy4D z-iX&5e}(0)ndX0k<*u95&%)D0NRYcy!NRXUV!6wu{t?SvF7Df17Xf-sl}9PWz?y#$mKV3`gDaB!M5rn76avH=&=;2(pN{1wmFD-yvyBJhdB!DpnelnJId5wR zOWeC4NkX*=7>d6zF2(YCJy_!2MOa?FsxQIvYFRxR%T=^`EZ%H99&_1Uo1eUb1i5Su zmbiBnmdj>!IsV018Z4L5nm+~03kmi0c$e{XEEk=@!gD6DT+%rwz1v8Ti%yr|-GSwz zQ#}jIRjoRO<)Tu3FP4i+_5E0`Db*ENUf8G~#&U@lEWG}IlmxlP3zoPyAFrMix(drB zn&v-+DdV7XxN7kT}&f&{ss2$s0_GL{Pp^=d3H7S*p~ zIp3?_#BzRDzm4VgyLv5_+wbas;!#eikx!-N)OqmHhOvCK^zxQob)0^W^W3w``FX=s zYVK2MJ>ymHroQBFoi`0TJmiYvkGx5E3byCwei5I6n?DtPPU#w1e_8mRUbS;jDnED- z@!E$tXf$F44fue7gz+c1m+|M$m8`&N#ye(i-TdPtJ`tCi_50vC#;4Eapt0E`3?M)} zAr@4y*jXF+T*S+9)^jauH{fMl_2RdkU-+2M-pCHeG0Jvzfyv3JA`@hH=T{cyQ)P9=j-VG>#pATD$jjCBqg!IR4) zF2e@oo#6VQVKa;Q-b{b`SIula?rQ#0{Q^3QVl zo$+K-;RV=R7&hQ0T(~@3|2Ai;@q2JfG7|7p#5-__Dd0Ce)A%pE!8q;Fz&eYDJ5wJE zpP-C5c_|6ri(w1L;tnf9PsGK>S7Yh&V2OK^u=JREG9G{rB0+laac9k6fMtlBPxcm) zAYG^d&tU0d^|SaJtV8mJv*vHY-on(B#gWf~ZIg7j$mHGUvAP@5B;x&XE<=~eI@0iC z@hr39y&^stFEsgmA7e6SzZCY|83YV4J}ct$BEA5RGV#N4!OF0_k+{rwbj0HxV=~)- zi3H3tD_o7UUk(dQ;vUA+BEBi&8MxHM-+>#^V|p$8LKl}1^g5>`EM2O88ILj-+pBSh zg{fiBMuzV7D|reZJ&_v=jzg_DF3EkRbZKuy_|o>9dxhbYXn`c;;R7ElOSKd zRRu zKN_z$9)~v@Um0Z9qk8ih%66}Y4c~h{7YxRYa2_jU zN&{#{e_V*OoM%Zq&UXF~mzWBgJN-X{MFT!OWL3OvE& zzlnQ1)5`1W*8fHFv7YS{RlF}td^eY$Je7nFCg2J@jesLuKm}fGE5NIbcZfd8=>dxN_nL-J@t)qdVFUKVyPTQ-d<5Jih+9OQz$Htb6c2Z~_f!?Re91L~z%jsxoFu^b1~FJd_ks8?b+4ya$j zYw(dAfBY`m>Jl_y8 zWH$?zxR;4#H&gG8*BLj&a-h-t#(0NuHkRF5^P6HhE~pR06L3&J4QN4v>~WUT1tHmc2^z^YM;n%w5SYB*=cN0fkuhYxU9CpVfW>KiVs1 z&NRVtZn)T4<457H}IZIMgRz}XUu(d3GteL z1FkaLar@JZa=8hZML?zTJvjaQuz&|}w(-NbgYi6EV7vhLGG2r?Zwbp=`ZTjFeQTJo zoB-Rxm$1!W9r5e9hgpA3#P8x!CVw67`(s$&$4L^(O~Pjpe--gJc$ta+9&g_69+S_I z1SvohPKx-{i2LEppTqbwaj|g;o@IP~#KY=3>5U*^ zjalImT>MK|!DV>5@dUik_$r*cGmO7B;;9kefQQt^CwcHN3Cn8}_)#=mWBd71L;2tLa z96Z+e0z4osEN{5lub&^0=xRD@b^f-pLmv8 zA-=e-Gw@=QzZWiQ5LU1+9%7swaWmhw@BPKR<|LGv6l9%qpyxN-@5a|J7Czu!4;de;x5=Twvn2 z;_?H+^^@C4s5A+`MqCr|ZoJIIr!Qr088^T=O~VQrM!a8LC%pqmkVzCQOjc~a7T+8< zUmE5gg6*$8x55P`zcub=+zxj)ZjX+9 zB;z7{vhfMHx4Id-%}FGjq6zpE+-GU3)w_}1voROR(vZ09ZX6v4U}-1^L*FSZ4O4%D zrC}Q1VlpRJ?7s)Z`h&4-xaQBr(okLh>&aXe%a&+DI}XRvwYtJ3SQ@VRNe;(-jQ74i z<`0ekDIF?24NKRnZ^tq;THbqDdPd93zJV=}$&|+y%K2g-J)?^ppvK{u%fpMEIk-3R z!NOO&BCf>KO#Xa4@5ONab-3ivaQ%;yBvep=-b_tf#)-~Ucm!U9^=9nZc#Fxu4%e9V zpTIe$!Vhp_MR+sTdyWQRy?RTwCt*D+bYqj`5PKGGWCE_k?Z`jEmx-(&OfN|V11kHjrq{%*Y1 zS#SNP?{2$651F!?M??i?K{{^_f^EIg7k3VA7Ew zvpiUMqBoXVt{#MCma7Nj943)^7?w$@9)V?&sz+j(r0PqtOw!tqgpMI$o(Z@d%dFKE zCSaMh>MQYjGRxJou}nJkeOTt43?WP0dw>L)6u}br9>Ovw)Rnm8rPR0&BIk^Sr0XI_ z%(t-}(!$AqM~?ka{CZVPwn9JCnvjSZmjF$DMuF>%E5lQVLhc0UxZhic8prV z&?Hv6(<^i8ZUV}>gazD(ryEz`YU4-nEzCJRa=weJu%4`b!^`m@v{H^chrYz+zR5rB zC5EOE4bT;?B%oK4$|jqi$hb~2K1A6{-&sKASl4hwt) zPc{u+i)Z52ZVUgw%S?WomGtN_;ri_(PUb}tI^${zXy^r9b^%^!3K$;og?KaZ`qJ?Z zJd!RBmN*|&35H0W!ZJk8N$*|~WQ<&bcR!XfQdi(D#t&l|GR=P!%N$bA$1RPkaIW!F zxS-Zao|H;LX>9_}(Z>^vm*I)VFW@VTSKzCRU&iIetFa7Ou*ALBu?(5NoWiVplLQ&F zV2OKgV;KVVTKpkyLW0cVKb$rHFT8nWs@12F-FcPVi(oEobN4!SW0~Ck16tUf`%ULj zf0P@Sa=94314~a!&EkJz*>LuL-v`_j^EX^Cme0Y`QJO#JCa%t(hJmcgQB&;+E*F-!y;;DGOiJuQPGYVIl z71l-kal{+&ViW%bUTORdUTge4-k_F`MrM>X*wfb_Ljay6ovc+>; zf(AT@Wm2l=Vwtt-NAMuyd3dq$6L{JyVf>T$l2=1Nji1LdWGsC8goF*RrTTvnIVbes z5>DoZ9%5V1;Q2c2UJ1rZF7d`=DY%$Y{|+zgt3APUQ*dr| zc)V%$Dq~V$5_-ML>^8m(4=}zLmm0q+J}s=^&4}NP_cdT|%&xac?)4 z7OLZ~1r1bZU}>N_6H5ctd*jmTRR6CcL)(;eU8E-qaHVN@_lSGo#U}qa$uHJ=V%|x3 z1@*R|P}z{naj!GN{3~ALaAOm$i3D7WN17F;;`07s0n_m^<6H3rv!OHbEaSUyrSaXb zWd|(`wmRwC3Cuy6R7Scr)U+@jMg13m2B?hQ+);Blg~4=Xp2$*zu{j!uTF}e(EL) zbXRWPY63FfY2_v82I=Y_@w9Wo3U);NTf{YZo{5jWS=Z@!vB__cBw>q5Xo%a<0BZLe z&>gQmFKj?hoINP?2@&^>_*7iZ7V8FHfoGV@mgH3=Orr<%b=AYp!93ure^`b{Js-;u zsH^ZY94A3~>?3E*{{%m8@-yBF?DF|BO%j$9P~R2M*;xzdinFc_E9{P6A-<`LFLl=V zi|{ApH*ooPI&1zvunc*yaIHL>gc`HLE6%#YYgp!l`VH(4k)OcxS+V`4_;)3rE^kA= z^vLhdy8fTIANlPi{~Q9^tqBq|pgq2d0H%Onz*)|ke-4&0RS&{4%hiK%#k;Ba_h}vF z>xlW^2VYAZ=l(8of4B3u&Nt+ae%lqnAKCpc#M8`NyENi4c$Uc@k2ek0cJQqhynaaN zNqAIk74^KyZ+oeywxl&~QdQgdH19V~Gt&m8-ro{5y2;kyZ-4jqPWShH_qWLpF5msV z)BSzl{cZB2%Xfe8bbsIHZ@#VfaJg7>i){QrY#V>B@6_?z(mK{@?-BdQh)Ye`7SyxK z{f++=_;~)->Ey2OX)Qq~55>)ghMja_#24dSlRpOM8IQ-s#$~wNc+z|P`ub04E$cM8 z^>0#XDt~*>$Z_uPBKLQ@`%Xfblxxd@p-~1ge-~CuP&dzbq4FN59)T}VIS7r=#IWqU;Y|7!7bVy#O1QOoT-l@P8S*U z5xBy1-X#%_#*0ny73p_nX?mKh08zV zV}^fe!kggy@8ky0YwUg_sIiyf?e#D2A`sA*L$6dg2g?^YR>uRc#hI5T{162Pbd6G^h^G8p9fc<EfTpjm(gK^E+qvg$Zw$%YWrB_L^5+gXB)t$s7|lFAod29?L~- zZ@0qpc*b`LFX4vZvlus&Y2a*^|1!rB`Q&DSbAvSQ_cmSZdiC8|%ltYgt zrArr)ARkVua4T%XRa0cKK-!}2{$-QxGLd~H&lpUF4t zJGQFb3ua;Yo~P#jjP3dZ8|eDUU<;R$ARmgK>9+9gy<+~Gi$$(Mm+wsj8In=Xqq69+ z8xr1n=Y?3_o+)wu4$BAR+Bv88;S)CO#yQUGv3#*hevZMP^#?WNkh~9X3OJ9%rC)_d zu75S*sqd4+IWRPv2J;E-Uarf#aS^cYPYzUWj$DQ}z83cAHeB+2!v8sQ8S*|YnIk{) zXyH+Ag{dUW;!s@Z8n6==;Q`L2t?0r74)ynn#vK11#ijFUpzE=|hw`q)rf>`I!1B%1 zU^k0-KjE4W!`*sZuHS<^TGmytiv;=1`82mh$F`=zj}qSU^q_}k;Y_S^WEl6ps$L5B znt6B@dyzKy;Pza`@wz70mA`KXj;8DdyPOX`f;(W#lL@cJB`iOZ7MtC0O#xlT5U>;Y zLo}faEqgYB*uUw*Ys5?}^{sdUvzqq$lX@-A33kkKdNND52G5I-3NFX94-9^+SNs^34^(THev0jJAp2M*S+n5x zUnG74F5u9fa2xRPvD}rE54etXEjp@*-R7SOugZB7_Bi(I7|uM7N1d3H)5w!Jvc-5P ztD7VBPl*M$8Cb2c$885}&lSaIvsaXaN5UJ<=J-FeO}HD~F(~G(He<9J%dh+DnC`^# z>%QuXE?~E9+0vWr8oY6E-2+Y05IxWYL--|L*S4j+s`7_)d2%QTrohvOQDO6z-X<52 zH9Y3uxsiKj(uL<^c^hT5bLmLt$vG|gE<=$2GM1PBqug#e>EgN#`W)LMXY#m97{g92 zy-}`!iCBLByt(reSbnK@n%lx=mofgDnezHE#t>2o0QPXW(x`4{u39QkR1g^Xbnd9>}aqcmmIe_(8e*=~uEgRzUH)Hu}zuC@R8B6)8zKvoz|6fdk{7RYbmm9JC^q%g= zjVH$ZpVFJ|3fP3@hv;UwE-tx(1{a47o`>ak;N%Tw*`SZH+{<6%Z!tfVdnH4TrF{SV zUrfSS4kX2{f|*#}kL~5U{JE>@UT~ayb*#?m^*1bE=3nh9n8S@-x#eBq8jw>?kG;{7 zi;|#0l~}&`-EJSw|I)%ECdK@(6_0Wan2P0F!s?H(d<$6Jos)!oJY27eAHwqS@5OHY z!8b6=mvUDxBRCE`g5~3%<@*E;*pB71i|y+74H72Z$Zo{>UB|r1bS5Dmk(ueb`1_kV zc5{9&bQRou3nwdjOn!t#Hekwayq_~@X@0%*!LejPUO|3AxBRZdhUItd)U9xMm*K-o zM-0C(e^}=WI~Q~v+Non_FSpF=*mvld%f@uvV{qR8CAbsO$+G{;8r}bPL%RLVVw3(h zcKw^tesCu*w^aW3cl#vY#s9}udjIE6@AALa`H!ol&T5c;+NndkkLX@FEU&Ormx995 zPK9};!@K1TE9la#OJ4Ub1>L$9bnMhg+r6jI)DI2PYm$44>R4#HZjZrsdh9W{6P*w% zOWiRry-#ZK-sx8-_OwQ-Usn3OJx3j|Px|O&_rZB|L|)?W_D0A2u75wY%N~nP))|z} z|JSw@?y-V8<>$+OQ)gR~|9h5n?i^j=f5+!{`@h9^?kLl+PK*9$1*wkvrk}9qx!74c z-ak<7X{vPWEG_<

E`pV><4+*xDo19z(n2|LqoZ@wY1}N8mjd`}a5O|Ih&0%S--t zdpmJFtvx>OvBjNIKQ&8FwAy1__tY6TrMFM5?U!Ev&^-p{cTU~WIQ_6a2X-zpmN{I*f_3wEqc8Q!N_SoPq1@4glccx_;hw`Pno1~9f(_@dPzvn_b@^X@K>i$1U`+K`&r^5eQM6d4N-zy`((|;|a`_j|CN&g_$DF4DP z7j`KeI$~JoF2hF@4lhXE@ooAwOBZZTkEb^(9h%>@pmV3f5hDuoJ9W(~O}(@webIpb z&_92#HC_IDV^XhfO`qFikAw6-#^~<-GCHR|{2~4NJr7Pn*ZHj*Yf}F*mo-E*euv9{=R6oKcn^^mq|V=+UVp#;(74pt?deUI?%0w3Rcz0L`TxJ8 z^x*LyTH+=D-pv00KcPD1|Hpn!2FIVj*NXiAJ}Lk1q$!B(VaYm&!N1pxg8zQt`rFOW z!{>jT9xFdfZ@x7CTYCTd<7>`OoppD{!41|<UIsfy X>Hp6dA|c`{K;oiY+jmW8omU3{$$7F& delta 89864 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 K&WyXS`hNgckWR}0 diff --git a/integration_tests/tests/private_pda.rs b/integration_tests/tests/private_pda.rs index df50784f..fe61d743 100644 --- a/integration_tests/tests/private_pda.rs +++ b/integration_tests/tests/private_pda.rs @@ -12,7 +12,7 @@ use integration_tests::{ }; use log::info; use nssa::{ - AccountId, + AccountId, ProgramId, privacy_preserving_transaction::circuit::ProgramWithDependencies, program::Program, }; @@ -21,10 +21,11 @@ use tokio::test; use wallet::{PrivacyPreservingAccount, WalletCore}; use wallet::cli::{Command, account::AccountSubcommand}; -/// Funds a private PDA via auth_transfer directly (no proxy). +/// Funds a private PDA via the proxy program with a chained call to auth_transfer. /// -/// The PDA is foreign: the wallet knows its account_id/npk/vpk but not the nsk. -/// auth_transfer claims the uninitialized PDA with Claim::Authorized on the first receive. +/// A direct call to auth_transfer cannot establish the PDA-to-npk binding because it uses +/// `Claim::Authorized` rather than `Claim::Pda`. Routing through the proxy provides the binding +/// via `pda_seeds` in the chained call to auth_transfer. async fn fund_private_pda( wallet: &WalletCore, sender: AccountId, @@ -32,8 +33,10 @@ async fn fund_private_pda( npk: NullifierPublicKey, vpk: ViewingPublicKey, identifier: u128, + seed: PdaSeed, amount: u128, - auth_transfer: &ProgramWithDependencies, + proxy_program: &ProgramWithDependencies, + auth_transfer_id: ProgramId, ) -> Result<()> { wallet .send_privacy_preserving_tx( @@ -46,9 +49,9 @@ async fn fund_private_pda( identifier, }, ], - Program::serialize_instruction(amount) - .context("failed to serialize auth_transfer instruction")?, - auth_transfer, + Program::serialize_instruction((seed, amount, auth_transfer_id, true)) + .context("failed to serialize auth_transfer_proxy fund instruction")?, + proxy_program, ) .await .map_err(|e| anyhow::anyhow!("{e}"))?; @@ -78,7 +81,7 @@ async fn spend_private_pda( identifier: 0, }, ], - Program::serialize_instruction((seed, amount, auth_transfer_id)) + Program::serialize_instruction((seed, amount, auth_transfer_id, false)) .context("failed to serialize auth_transfer_proxy instruction")?, spend_program, ) @@ -124,7 +127,6 @@ async fn private_pda_family_members_receive_and_spend() -> Result<()> { let seed = PdaSeed::new([42; 32]); let amount: u128 = 100; - let auth_transfer_program = ProgramWithDependencies::new(auth_transfer.clone(), [].into()); let spend_program = ProgramWithDependencies::new(proxy, [(auth_transfer_id, auth_transfer)].into()); @@ -146,8 +148,10 @@ async fn private_pda_family_members_receive_and_spend() -> Result<()> { alice_npk, alice_vpk.clone(), 0, + seed, amount, - &auth_transfer_program, + &spend_program, + auth_transfer_id, ) .await?; @@ -159,8 +163,10 @@ async fn private_pda_family_members_receive_and_spend() -> Result<()> { alice_npk, alice_vpk.clone(), 1, + seed, amount, - &auth_transfer_program, + &spend_program, + auth_transfer_id, ) .await?; diff --git a/test_program_methods/guest/src/bin/auth_transfer_proxy.rs b/test_program_methods/guest/src/bin/auth_transfer_proxy.rs index bdc96e0e..592e9eb0 100644 --- a/test_program_methods/guest/src/bin/auth_transfer_proxy.rs +++ b/test_program_methods/guest/src/bin/auth_transfer_proxy.rs @@ -1,17 +1,22 @@ -use nssa_core::program::{ - AccountPostState, ChainedCall, PdaSeed, ProgramId, ProgramInput, ProgramOutput, - read_nssa_inputs, +use nssa_core::{ + account::AccountWithMetadata, + program::{AccountPostState, ChainedCall, PdaSeed, ProgramId, ProgramInput, ProgramOutput, read_nssa_inputs}, }; use risc0_zkvm::serde::to_vec; -/// Spends from a private PDA by proxying the debit through auth_transfer. +/// Proxy for interacting with private PDAs via auth_transfer. /// -/// pre_states[0] = the private PDA (must be authorized) -/// pre_states[1] = the recipient +/// The `is_fund` flag selects the operating mode: /// -/// The PDA-to-npk binding is established via `pda_seeds` in the chained call to auth_transfer. -/// Funding a PDA is done by calling auth_transfer directly (no proxy needed). -type Instruction = (PdaSeed, u128, ProgramId); +/// - `false` (Spend): pre_states = [pda (authorized), recipient]. +/// Debits the PDA. The PDA-to-npk binding is established via `pda_seeds` in the chained +/// call to auth_transfer. +/// +/// - `true` (Fund): pre_states = [sender (authorized), pda (foreign/uninitialized)]. +/// Credits the PDA. A direct call to auth_transfer cannot bind the PDA because auth_transfer +/// uses `Claim::Authorized`, not `Claim::Pda`. Routing through this proxy establishes the +/// binding via `pda_seeds` in the chained call. +type Instruction = (PdaSeed, u128, ProgramId, bool); fn main() { let ( @@ -19,24 +24,38 @@ fn main() { self_program_id, caller_program_id, pre_states, - instruction: (seed, amount, auth_transfer_id), + instruction: (seed, amount, auth_transfer_id, is_fund), }, instruction_words, ) = read_nssa_inputs::(); - let Ok([pda, recipient]) = <[_; 2]>::try_from(pre_states) else { + let Ok([first, second]) = <[_; 2]>::try_from(pre_states) else { return; }; - assert!(pda.is_authorized, "PDA must be authorized"); + assert!(first.is_authorized, "first pre_state must be authorized"); - let pda_post = AccountPostState::new(pda.account.clone()); - let recipient_post = AccountPostState::new(recipient.account.clone()); + // In Fund mode the PDA (second) starts unauthorized (PrivatePdaForeign). We pass it to the + // chained call with is_authorized=true so the value matches what the circuit will resolve via + // pda_seeds, satisfying the consistency assertion in validate_and_sync_states. + let chained_pre_states = if is_fund { + let pda_authorized = AccountWithMetadata { + account: second.account.clone(), + account_id: second.account_id, + is_authorized: true, + }; + vec![first.clone(), pda_authorized] + } else { + vec![first.clone(), second.clone()] + }; + + let first_post = AccountPostState::new(first.account.clone()); + let second_post = AccountPostState::new(second.account.clone()); let chained_call = ChainedCall { program_id: auth_transfer_id, instruction_data: to_vec(&amount).unwrap(), - pre_states: vec![pda.clone(), recipient.clone()], + pre_states: chained_pre_states, pda_seeds: vec![seed], }; @@ -44,8 +63,8 @@ fn main() { self_program_id, caller_program_id, instruction_words, - vec![pda, recipient], - vec![pda_post, recipient_post], + vec![first, second], + vec![first_post, second_post], ) .with_chained_calls(vec![chained_call]) .write();