From 2a1ac0873f8c37ac12a690b6d50a5bcf0c3205df Mon Sep 17 00:00:00 2001 From: rustfuture <121799572+rustfuture@users.noreply.github.com> Date: Fri, 2 Oct 2026 19:02:34 +0300 Subject: [PATCH] Add a styled demo of one task going through the real runtime --- README.md | 3 + docs/demo/demo.gif | Bin 0 -> 169042 bytes docs/demo/demo.tape | 24 +++ src/demo.rs | 398 ++++++++++++++++++++++++++++++++++++++++++++ src/main.rs | 5 +- 5 files changed, 429 insertions(+), 1 deletion(-) create mode 100644 docs/demo/demo.gif create mode 100644 docs/demo/demo.tape create mode 100644 src/demo.rs diff --git a/README.md b/README.md index 68e07f4..dde7cd1 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ Rust Agent Runtime executes automated coding tasks using language models while e > [!NOTE] > **Status:** Research prototype (pre-1.0; bounded execution; not a general security sandbox). +![A coding task going through the runtime: a blocked command, a rejected early finish, then done](docs/demo/demo.gif) + - Reconstructs task state from an append-only event log with restart recovery. - Runs allowlisted commands with timeouts, output caps, and process-group termination. - Routes model actions through the runtime rather than letting models execute directly. @@ -28,6 +30,7 @@ cd rust-agent-runtime cargo build --locked cargo test --locked +rust-agent-runtime demo ``` ### Exercise task lifecycle (offline) diff --git a/docs/demo/demo.gif b/docs/demo/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca166c79c4dd1bc661cc8347bb5f92930d783200 GIT binary patch literal 169042 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 trXFs2=b=I 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%0A=r5tFE=`B#sc=?A35)1B^!nR!$icVTr? z*Z8Uk$%X54-2*TvNU8hrE7%wRs0Xr?Z(LZeWKn9s%G*Zlyv&`i`5 zND=wS)79|1H%CgdNI`to1B|VFT)~zjFAa1#F^N>da%%)Q?GIQ&5?P=KMO_6SCamAa za*!KY1ExX|IIL(VM~I>WPLEdv)OA{hQBU?zjvbGIu)u3&{X-gz5I# z40x2B`qIi=xEnfyU8>1nP{O|_(nAq)&PG~8;U!L_@!<> z+hzpZZ7j}n?W&D=7(2dkNZDAoGK+orY}(c=K83QmGIZ}-`r@tRH8|^^iR4U0*aQXg zvX1kIiJG=Gbf2z7rH3#5S@J+|!K#85nyGCIQZYGYmU8k!KIJ!nM1a01Lh2bhh|CZ{ z?j}+iN>Lh+wF*kE0_IwvML06UKwfS^vPCz73{#%&hD+t-H>tzC^}rbgyYS$_HW+Ro zhV3Fo1ChKjMmIz3l_GFO&h#WB{g9Q}hq8_<8S#2^l8MRuQ&ikaAqomtwlkU(baxR+ zAYxdE0}`D6!bq=-pgkjEH+tqH1zYm>NIOx{8zZaPNGl{m6Zwp~w&#s}#x)B0nu&eF zM7ID$(It7giM`!=ThV?Z{FrLzL<}4D5Rr#w@GX$eL|yiR&Mr48IauRNhE$w6b~tGQx)&MVk*O zh}+T*6@~iJQ0|$-o-zPR6?7<`eM`hRV_p;&%e=23UwaOYl5hQ-NB7szH%+BJ60sXl z;>?e28CX;w^R7MCcH0;~OiI@v9L7bV^q=(0>LLEPln@!C7##d8~OQ0YySO58%fhN|2Vl%Z{#Jr^Z(q&=f z-`XfZPm&y;c*? z_>8M4>#T@&$v~O14ZfuO7U|BKtr(7(X@`_>caJn;@Q-^Y<{3Hpb~dm}!MvqsHVj!9 z(EXm8vq_Kw9?Mc=dk6!xp&@+>uVv!h2YFMBkkBUVsa(FMxZX*JhnQv&?)21AKUDic2*)3#$ZuW z5pJJARfL8Ld6lMCAsPDpi9>_wW4!v9mBk6tCxd4?Nk3`);H|>wL=e+b+LA=3Vw^P@I{2mn1I9bZz|l@xdYH5M~5G$;juY z5iCEX-5)Qj`G^EWO(u?zHp%7 zR)epN%%?^xgrYxnda6dHLbg92`N%j|r?L(Ts?(SJ`G?x&xJeje<_rC5rf(4j-u|f@ zyZLdn*;sRY!YG*IF(|SBaPObtzLC!oj{gbNU7IHhE@a*wO8(#a!$XIRw`^lu&3hfj z_va^$iz07J954B8@$GTRq1$e!$IZ%c&v)uHbf(PNmtoqr%VmkzfqSWTe$)5%4@|Pj z&p45CK>L^Oe%NX+baHl_^mLDBZ@}`&v#ECXt_LmUzi=Gc_vUsccHrVY+4PHRPEYz@ z{o!TzZ;h@QOMGXUTmJX{@Y>&d0pEiE=?^CUPTbyK@w{PwNA%L`;b$JsOPMk#VT6_G zz$+Z3sa40MkUdIy`)?_VM{LP_GM-n8=Jdgv0N-Y!C_W z5#^NF%=`KT*&n;B1qp5i`mWuZuh4(rA8TpZ=)T?E&BR${_SkT1#rNL9{vF{}<3C1? zRx>Z!=e88TdSGh(wSPj~uVZ7A!zV_ydi+#fyQkC(iqGujazntNkdGT;6r(A)smK%mGZ}j<{j2pwQL+hJQ8+Qno!wnb z9-RoqVS7Bd6|LQKCrEbGw>j4q>~PeATq)Lv7)?dI=;KqIwX*_dos~f2`SfivDVwU* z#2{*lV|m8As|HiRkE{Rn+E`Ibt|a6ONSoCy+=RbV+{AsXJwrb^+)c78k=fU>7AlF= zTX~?R9p`2?ZKJH>Qvy2iWT8UE^~fq>Rvq+?H)&AMOg`_6fV=3Y%2_Y(S{VDHY$adg z#v*8x3oTsC4CDtZwWIR{q|0}>9Jj^Svyau3A0bAWh$N*n>_yo&L=$Km(mh7eyOTwF z;k?QiT^!NEib0X zY8%dF9DaOE%dOl(-Q#E9mf9ua>#t8avnv2qY@0gm_xU%<8t+}nGwfQ_fMsaNskIFo z8htOcg+)j+j!`;O=l`2bOET46+P*B)^pi6*{j1ZI=BqCoTwlLUvYR%k^J(FUcE7h3 zH|pdgc3t9X(L=1k_w=;Fmorw&)gG-mE#@Lw!H?S1KqE|=>+D_wJ{c#Jc=_`lkt<=iW1*Cnf-)GmHBPnX{ZXwLbE~YkNnAn3-JNEq~ zM$|S>dv(3(BQQBCSS3hMGZfc73dSDljs5G4P2h+T>C*X%Kh%~j%bI;>N#A`M)RKrAp%HfllnrP?2QJY$6!-qjG%SnJpw?gUbG?e72)b!bu*0JbozPSquB2P?Ne6?1i^U zUqJDS_-(e_BH@-uPGi(>ygQ=X>!YKXdIzoZa(O)`Rlq5(tZzuRs+2Fobo&OtIubnqEq9PDVGq<^wJf>pW8mb*Cb=j|$x*{`K-1BjAO;I11(5JmTK4+`DMX{Qel1A zR{z~gI3;YLqxf5}aeeZ@6+{s&OLp2X{b;Bs7$J z*O#^NZknk+-x@YvYK zb!ey^^JnBpqNTSJsPXXgPEiLHK#V9&cTlqcA%J0Rup*Ri^pKy2=J(k;C`n<2-Sqgz zlhAN63Qe3?9YunZQLSL9c2q;y6kByPA0|ZZ;=%Llb>N5wm=L+f>a>9he3tVmJT*LmsISv1<_VOLXFnIw+ZU(9Tmkdw$4gTR6Bg zBFX4;a6lEygTpOqF`%uCY91|CGxfodJ|}v5u^X#3l1kDR9yp3G2o`DL5smX8Elj74 z#WfNmT@2C^)m`E?6DU(~cr+xJ!qN>5!PO&Ck*J8dQjglx!j)neDNt`fZla zrrjkp6KSlNv}GgcuY`RJc-|5?SqC})sd)>k#1A$8t2D`C5?59u(zSp03%|4YKfQXC zIG%4tY!g~)vP0;V>e!x!pdM(5*kNW2f)h1+Via&N!g5qVVQ9iAbAlsI6Z&YP3$!V9 zr5uAQ&>$UU^cacbgrqe_pD;3C8&gTA`;h!gprB?=;FxI70$3`7*rgg>Fo_V;KO19A z5Nlm~K<-t|+G`<+IEmW%N4!E4Wb_EnbmbL5!#_zA74VC0Twn|e!!^=M?TtgR#at-S zBGtar*j0uL8u_mm3c zV}_!P$KvIx%dM)erILxZ2R3ADBCRd$rRv^^5$>H((x4!U;eA7?YW{2~2L?MVtqS^=3PuSr(wSGjEQ;Zz5K8st+lO zNQ88@`PiyuMnZx;_5d&{%B=O-1Ukw<@dS9|)b7W91)PYf4 zl2ix%bs^4E4hL1L?2w7vK`LEIN>5K5%1UJ6Do>+!l-?}b=fVfH@g@-6H_^cWc(ki$ zUR8|(U?GmXi6M!Y#IcS)jDrDktsl@W+Q#CcAm4b@T@Lc}Web0HC|yWPst!NgRYI4M zlC5f<0pNFP!h2Lqiz?*@NJ}IoqZ(_lI>rdQ1L;ADcY%ykgy)58Q2F`5o~Vkbr+B;` z=P!mse{8zFSTjaMqV2nF*?BuM#_YFblr7=)AAqDf5F6{yLsY_oP@mlm$(f-XdCkar zyz1R;JA>+(t$OzAu%KpmXt?NZ!M>yMof>x{1b}N2#3Y-7(UYD`b{P=5cdCGPm7h`T z;X_&!uxVWeXnPUzc?X**F4Z3(~hxzZ9*#w|NBlq^=CS7l6D2F*W} zVcWAyXn;qE?(zWDZBQEnkZ3WaWIi;fO*jT1jd?QMq5$m&!Ndm5p=~U)7IHyUK{_~8 z4Foi3{VaE?Myc(q={@~i9(o%kA`1$5;ly-X{ej1?$Jqd*olYYr)utnxJ4FVBKM-pHcEElAQqUNO}hD-@r z+a7^xJqB=_29o0hRf9ZTXjKO*A>pID4TCBP3i~Jy_j#np|CSig4w{?P&6xrC#+p$$ z*f_Nhu_lUnP%uvu)d0_%pFCPY+yYcIgFBH9h{8xN4M1<~63YJ%#hy$1DB_kO|!W55fEQ=(AKoT7;W85~fFPkY}V1k9Z9 zFHjYu_R)~0l&KKH*6(uy5hvBIE#X>mSE9e(oSkeWT|8SKEzd=!vVR@-85+c0n_-Da z6Xc_*C&QdM&lZlx5l^X#SrkgZY$`C zYJ$<4QRdt90a4K4QERJ8CclbJIydP@yR?Di&bJ-vd9}SHue(}8EmBCV&tR)s=A*9i zQOnSqT~%Px$tQjv@vtf|>-`h)!J9%KKxjQf<;{@#JbfPer2k?Bp9hc1JM3sxO9s#O z<(WsG$V+OF46g)tI;(A*=!D$GzO01!r`2_pc&0p)0ilvd(1^-sJY}~}h$W`dvyB4t zaokg^C1h1U*S><^Blh@c$y-efpmme0g0u}$522Pf_m;4Fqnf*QZ)|PDZri2Zu3@M= zRcfhH?YNHq!$UI^UjWN*XT5Hp>HTnQWadLIuP^nMwt74Nr zJIQj^@6EpHZzk-#p%LlMZqk9H6k3U0=vjHrvh!}?9kYL{&Y9_Th;CG;$_R*>53TMyTI%Vs5a5 ztYTu?tSyM&7^RvfqYI4i#;aXXBJk4L->GX$=wi~p@4zSEi7_I`HeBUsh@W-j{p?E` zJEPkFnkvddoFbBvdFsB~YS^S2A=lO~I36QYkB=QA{1`E%RC*NC1)*sXs3dKYb)%Fzj&>Y?v7wD3g--5)K*Op%?x zKpP*(D=z2ureo*L^LP9`u@SlI}Vv3_# zE%70JQPt#Uu!?I`0BR1t&QIbVDWhWGgtbd1j*- zANLRFBwOKvgN{^K>~jKq23~)O+<32XX;|Sx1l)k@FRG^Jt_Z6}7jDLKd;S839^ij< z4L+5xZm-$MaHz~3j@~&?2@LPl`WaP@c}GVsC@5-G3DFvf`G#hrR+vf0v=F}%aMNj+ z-#tf6yL-Ir{of7WZ~1mOBGqd>H4lSSPA1T^Ao2OKus69MHYs!b3jhvwGODL{*TCIP zqYlpcMoN#>IP-1eVxjzTE1XQv1Uzll2yfEl{tb(H{>ohCQ5xlFKe4^jljt$wgf^%W zbOA_r?#i>)Y((s7&5*wJTc3$hq^PYz2LSExdMzhv-ju#J@L> z&Vt-W-i<~+3GTC_tm^cPCEnuzq8k-H@DJ{x^}8} z^Zk6n(mB(X-YNPKzJq}m{k!S_c(^%CGN4{YMPpYGv>WF-AzYa6#Sy6`X0@XZ4=#ZB zj$5H#HTKikD5wwJ*{a^KWfdCt6oQ-aNw%vt3wS`Yc2c9uw>0k`-Ud7kF~E0Fo=+OcW&)_H#db->8aQ@u@x~ z>*_vP8Jo2WK2Tg##n+;J9y#r898~+*H(t|9Wnt`{Dv`8kyCiYaJhLdVo2#XU$}1Hf z3ERfVeAYzwd$krjWq)I)top3c$7JO-{T$YE)qBX39G#}Ke1A51WUxZAwXu^6Y${?J`t-GQ+Ysd*z(cw-RmvA**$0{IElz9NSJquNq#a&y z&4RD83i)ATmv{V%1J9W;YquQ7YdbgSc5{t+kz4pGH0gf%qiaBxRA)Ck;9s*I+~6@X z809U7UnNt-+Ku%a91a@yM;q%!x1i zi5FN)FE-z+!c-&-DzK=y@*DW>g-E(VQW*Vpyo~1P8QS7p-j9MLc|u>(+M#q&f>(C^ z7#l>Kz9gA6G^XSHq-g@JDbYJ=P3C*ANmUn)@=NPYzy z$?HyOi-n@-rbXkX%)c0V|F>yx+c?p7V6tZhw%=}I+Sr{cjuaDgIwv!awZYStea*5kH(**+64qw(!}6?X>zBZSWJ43qr!n`Pgynb|ksN`*F}KEv(16WDH-&Fh_kn-wn`y`~5o8{80 z*)_EL@g5br3eCREeTr=u$^+o|<^=aDD|FX23-+v3dAM|w`G|xuu>tIDsv}>@5->3X z#yN?T1%oE~R&!gi!UB)vwNMk$cCSz5Baz0=k!=t53@cMotPhajAhAZcL<~Fh*OSr| zTHz0+ma`J4%q~c9Wbc53#JzmJh{Qi>ttigLsnSZRd+u=9O>}*Xf?k3C*so*J7s5hu zn^%uq>yAknaSEJkynM#hZ}B)0-X?67!@?#@L>x+TKo(PkOprPZRljetLIDXRw$~tD z?~@TbChMxVa1gT(Q58S9dxS48XcM+$Q9aj8aFX2q&~);lA=hi8$)}x2NAg3pGII+e z<+pi$6E$VKZk%y7`yRaDMUjA4!>*`wILjxg9bKfETl2NTM(c=Gg&SGI-dZlZo9fR5 zF<~X>XlO7Aby@U;ru!Fjn{7E?uoVm5nIy<;k=8c=8hNda!u2hB^jEGhTh@vyMBu0d zDFYL?x(0y9>j@TB(*s4QuzH?OU^5$U<-D0gcF40JGi1_77UKqw$EC^=nSl#vZPAMN z`3FCf-tzTu@|Puubt2&|M4{Q|KvXUhrU%4}f(iSO$TanSt>4{)OIYxcjVAP)ywEP; zgg52OfWzxTD2&-|vsv6u{Otfi`cNxt#!gA{W-I8x1i5&D){9rJOBR1Zbh19a$6|_m z&lO|`0?kkodqOE}kFP&mPqF({_PiR-E?I)R2dFE1+{w@wO5=0!LIW`v-ocMoM)RSO z34QxE8#GBA>HXw%X_a{J3Y7I-cgyWG#T{4i0?P@KE8Ava-jhnLe#6)cHG(csDqD_U z+=BCII~DDM_9?ncW&kZ|NcY~4U)seiW^LoWcgvp)e=}?I=X|wQA)`p>f)<+|I6?4U z8HJiGNNGdDT-R>X_CX7K8<5~0SabQTM=!dASX6s%mAGB#ZCNX;gSNkRMA*AMxc)$+imVs#~e z(25pS%DskdK>E6O54N!3@f7>K7MnGPw8L!vQ|>)5FRRqrh7cj|=^pTxPh%^hiN|&1 zJ6b54nmf03rcboThRyiiVfF3T`~SkH3+14lpTI7x(*k)Cy#Jba2Szt(zzd0bp;FWZ{+qBvk=YoMf%oPrD7T#(sY=QS|mhX{xPFyW%7eHez0sF-tVO?`D3F zgpzI1uDd;nTX}iT?!|hlC@x!<{%?d?bHvUGsG)4yw}CbffZfnzoUZL_{?(vnSF)ESVi20uice~|6o{y&dO?%OhEAe+s z_fx8mFMb*?QE}gyCT;`%{^-^Kf-LxHKdprs?MPnxn{e@i+xC*@m!C*F-B9zMzY=He z@4;je)$_AlhGjFGBw>4asDO>*{h;Iv z_cxA~O7UoM5hwb99c-J`WhWV^bxI5vj(3gwl)ZQA?qT#QuF9B_FWh}Ljb4vU>1;;5K)hQurL4SPG(O{(bc7% zs~&%P-uWX(w$}@`4|NUMuyEISDLcI_Py=wkK2O%HYs=7Bs}w1 zj-0;xtqy;ycoF}zf0lHpW4y$+*CeKXvS?kcS`f0+FKCSAdKz;9kS(2y;9Jm*qH!fiyJ)>cG zR^Eg@IQR50>)eL)a-R(^6T;o_k|P5pY!mr$wz{LC^oGwSdJaq5;#{e+?Z?;MYak5g zddfjP+qc}|V7Z&`7Vn|C=Cf-53ewiF*IVE3+>++Its{@71K3vlrR#6omLJ@)&bPAY zU}c%_&h2vp%dpt`gS(FSItSn>yL_v5&7E>CZF9%L>ZiVYULM@@-gocQgGiIF;blB8 z6Wi<1SmWkb>)luz=vNmuZ^u2TK51S(-LEFHao-HT{j(eQFZ4UG+;7`xzlI5Z%UAgw z+}?O_k6+{d#zqgnhSBq4b0zzZG&bGvJAAM4@Ke7dOU52bdt-Rnc=VT_k#fk$p1=3K zUww(+G4Dgi1N~2g9Xiohd+c7@p^i5vCLKC8!~gVb|07BM`{o@wv(CS{=uoqR-x>Cs zhBE(i`wyKv;(z{z&zaVF=Q|EvxUtm#;=My-EBsGAJap;3{~zDxpXhsg_QxR;JD|m( z>ENaLmz+hz>aE^!DVEfX-Pe#w*pMK>Dv2%o8R7@qQL(@>Sg_Zrnj5{2k;4L zB=A4tvHu86iOS!`Z+fTke?nT*3yigwH}XdPzlXF4@t7!QU6t&_{_DGgm;OH?E!WW} z8~(H%()*2_ckq!51NXy^*LXuQUgtW%&Nj-b~#rDYMm*WtWKX&ZH;dvI>^+OsR}a_w9&%UF>{$s)yxGuc_~EgZt^b+jt0 zc~M=*2F4u#{Ck;d=Xs~0=^que&=~`_4~^`&bn(ZR_s>oYPb$5*=Et{ZZ=Y?xl<5y{ zwhxsu<1A*C)0^KWKk>$ z5oc*jDp~;8VU!Zy4mn=1-%4T24LS0bx%atDX}$`Q@ZaH=IdNO;dgTGu${b1W@1ZkR zzWR7&}%mH$owdkxZklP z@HPx&Y4se+Wwre@6Fz}CDeqX{IMii)m*~Y{Upx6xuU;4MH1Bf}B_OqY?18Q?O1{KS z+`G{?reN3uB!qYZPqo=RwW0;hLdqqn?pAZ6&5>XA5}PdEU^g-<+Gdk2d!8vNWKpNw zUp6tnCQrViC@aC3lJVMJ(mx`IwaWBmLg1=)I9_WrTGq1AY5u1PGo9Ynf@98J9QZ^% z|K6{ha&C{I<*3aRg8V;=>^`JyHCbGK72`}(OC&INymH;$KqNyZ2KF|6o$=DctgLnO9& zIHg0qW4#gi>%X@3eae2{!uqaG6_M6+JDoZcF1D#o@BDhZf=qVLyKJU3^(OQ4 zn!1&uu|B=c?)sw}2HzTmM?~#M0r9kC;lNA9!Xq#D@6Lx`{8CZ=8223{`vxG-{U0{eMj1@o5GRI8+YZk7he=m0}#C`;L><904qoV@-oU(MOhlLyy(f7P?#cofij2M zewNGXP!!tnj!GZCWlIW9#wj zc22bB?UWwzPG&`1XYq7ueWm7m{r_T!j3OebG6D5syhlKW>6Kj z3DppiW@>zWEarA6qE)>T* z-ntjVv#ViX##YB07INY&1Cpz3Id?N|@-iyA!Um zy`eV?^ri?morI9RQNwi-#EGXOmU@d9Ey!Wc7Pm!Cs|DSa0z*>gy^z--f-n9)$JyO8jZ%tIg3_~)AoHV$Q;I@C>K%qybcjkYT47a!#@Vw{ zC~GWam79c-qEitKvqBHq97>8=TCCq!7?cOnlbv*w*@nVV#ujEAAbD>v6;5f$v7av1 z*lyop!$Pu{yG6x86W$h5hK}(QLP9mCI=^vHi;0maCSf<__Xz(@{hS81ZKIjL^u2;< z`xlAzWxqc+jv$>#hDfCb~@2I`O7bYjX1> zue;tcdh1os6;iOqiL72hA*fWO=ENK$i4kp4X?~3nH{iyq=nNbK61N{pUs#2DFX&6?HBj6x*OJ2Ile#p)0|v z+VC)$%Ys^$Ihy>4bykjGu+MdKT2iFVc!>6@#aW+rC9p^Ve(yE7JR9ujZXVAjZw4p} z%^guaAIq{9%!l1f(qQ)5fwVguN(DV{?sa<3OK!SS&K&My zLb^J?9Y3X_PM&4b@LhBeP{T?%+Dh$I;r7RCHjVou$7O@zOI(3*L;eM!>pM#VXKLS# zb;YY(P7k(#PxWP^UHFi+r!Z^_reXqu$1ki!cPYV|gbI!8ui0cYQi*3&KrYEc|0G4q z$G_Powy@smzjimX7CA=$=Lv1#TS1M5ny4 z6rIlbjXlBykft^loxCkz2u?;qapFg$f7fnuZn7X(fn^b;6~fU2gcTIwV_-WD0E48gNP~j0jV4N|vsDh&cTxNOm>#iGM5K ztz6;r(~dGWMmmf>o>D59kBrJ_Pui@X%p;a7llwr-fGFkAw@~{a6Z4ITv06zzWTs&R zc!<-9vd=OlibjWbpd5h??_6o;4?V_)V2!BV+E^PjvV5%Pgo(Q6*_KUHv-fZ7+q_2A#QAiR@P%Bl{mJ& zmX4ma1+&FP-Q%5eWJRb+QL1Nm$dN*nWwlTgS(B@+%m)~Kg@`h}5Xv?oXRWLgN+N7C z30k~xZiX(Vp8kwae82f~hYaKgMBE6Y5v8L0dg53W+GS#&#b{-E1_2>1oXjOgH*>^A zw>}CE@W8ej5Xab8l5V00WTe(B*jEASY6~UU0*0E9Lq_TxjP}sP zPUfTb3i3?_yBnhy8t4n;;0!%0^Ay$4z?6wVv4Z{%XOxL(1Wqx>Kyu?3{@qMlAxDz< z<@-A~oeP2qG^}1hZB($I65$Pql!@v4Oh~B7*%pU8Oze9Yy$qw{d}!v-4wBlWi7hC{ z3?y5OatNbM$YUnF0?$G)@ft#u%}R~5{Wv7HFkTzz6Mfiy3ThArF0`_`mD)z-)MyhR zGgF0gnFC@<50c$05qo+^H64HnFXKVm$iU@m#w!>{fr#_>8GoYmnMQH~2LFzFn^3}J zMfpus`MZVI@ny}?6S=o{aJ>y6(WF>_L#PPej8Q~#5L41t5P~H=BsU?8&1s25218Hc zDoWh&X~oJ-5OH2sAvZvl%ujhdmwB$109c{31VV@c_R2j3^XO|ro++ufo`ZiL z1oO5nBym$9Ir)}JSEeHei79{{x@ll#hzKl={Y;)Em8U<_ht&H(@p!FAB$?Q2iNp5K zYTVgv_&>;d@3toLH*R}oGUq=^uU7>W{l5itrV0=hvEP*6irS?h#AC;|qt zpnw|?5fC*XDk@^=sHnlhVvpER(T!zy(N*)z?>L@6p5yuBegpR#AV)&-otf+Ue9n_0 zlmh^7-&r(di=0uY+7l?JUQOrPYK}Dmq1{Q1Z^gu508ZBa5iSG`0ia5!Vr)TxyUEaR ze8fqEbBJ$RAi#wxnjF31Ka2sPg0XBrz~r>pVhvfWc(;%Gl805Up?_y+f2r^U;Yp?t zs1Sw|fY!+pn8t(O%IW6wV5~Dd&cQKFfQu?dfbb|*F#C6)#ikXE61bl`0%=5LDS?oI z5ZJ1b&UHWxFx1;c;;WTMtGp5B5#SEMcu%Rd;Xq6Q?qN7tqoIZfvmy>l?l{!7v@#wb z^#nOxBP6<_040n}ypF%lVXV;}0mX!Ak$!s8Xx9a5h1bIX#;c%t#&PbV$gSsdf0iys9nljET zhqzNs{9Qr%o#$#TgbUKqhwjU20JnR0mGbrAzPOdnU#UkizN1(Xk5YEP3w{6n3lad{E`v54j;1iciLQ2dd1TKYIgejCm9la~{hf&pUch0B*Op2VI<;6nM; zKI*#VLhufUAwU#`*txv|*c?wH{;!05LRD?%rKAkynPSb<$D%gKf&NT@buvL)A+R4Q zU0ucG0mSd7-LJKb7k2cEm;3%wQjX68S1VD1pg!CY-mdC)4P(@)Ise+zA8Q*7qIVty z^eTivPz{}Lf*ECUwoDCZlyrA_Iaw@Y4q~375Hftg`@$!R5bBG!tv_D zLQU#q#Oaqj0$F^{XzBTJ0mFlH`APqZF7X98gBGed)5>Ag34v8V^lWuJ_&XouB2ZgA z(Ln*;7BK4nqctWF$QVQgAWn-Y1krCzZw|H+5ABf>R*DI=a!LzAdm^9>qucqWUJ(dM z_B-w9bE-t)T|uUGJ*Hn*ktGiZ1KMi2!{G~enM?qG5Wr({vfp{f>VGFDatPz2_~pR4 zUR%fa72FoOtjvG2LB#u?}EV3UD~|YOJ`^Ls+quchQImxhm+-yVWN0+=C)xsJyi&X0hd~N)U~H5jhtA+ zv6w>5UB8{wI;>hLy6d-qdV$v&N5r-Y{{xlgTvyF`3m721+Z_>eVXsl!h@YY`b?zOj zx$y06z(FlzrwGt#@6GCkVmZ{!3#dIP94w;LmFM%<^}ps&Nvfgf!;Dc4wH3MA$Qg)J z&@Xb}uhi8|3dU>i)3>$Q{}xQCrCV$h99`a~yBHFhycnpN!Z6{3be8APf9kJlJ z@x^^*xKEEJtWQxQo?QDQ5t!q4{YVVo)b!9UH3m0zKHGVNdzp}?#%E~AU5!+_J6$Qn zC#ng?8~G<2S1(p24^8hF`N7$ z5VXpNB-(Q;Ktb9lBJNclTz?WgsHOMFaV^atN0_Zu6Y&5b)C|OnI~OSO#oBHtsjfW) z=ev*k*IV@kKra;m^?<6!8p5m%O!ldxV%3<^);g@B=U7K;aP)py^CXy0}J zfV@?prFJt83j`?Y#|{G|IbbUU4=ltcvY?@o{+4%@hHW3)9-n)3&sd5(#JNvcdjGLt z+vGH`@+U6(%Kc|53SI&Jwt%qe_}+8t0lenDjS%W$g8MA$UR`^8`1D(n0)#Ue@^avx z^?UFF;tLUlNX3sMbc0$SzNj}|WP0cpMmvD6etdsnHDoIWX73;pgo}+OZ;x2ikrX?B zwoWq@^F6y!9J=581#TKq_ME0@L=<;n=@(CGdDkhtf)um@pz-in?X|}nzG4czT8+I6 zx0P*-z#D(bS5NPcY89#&9b%yCG<{-mm?4MsjCcE~>*-O>$QxZZ(?LX^6u*J|6a$sC7ZQ13-)VPW1>;WzNE@QP&;8E70 zbxK-owDX993Q6xgkW=Jeh`e!lt($EukI>QRyjwt1YRHxu$;r3R600UHo`Z7~_(Jjd zC=qw-Bq@*cze2VR#i;ly@SEALqM9P74#Z z8r4A)^WbGGFETjPX(iE5fa7a%0-bm;{X5Pbqssz&+{LELq@VHoR&LF#+xz%e)B4sA zE|>RCgY-p2FHOj#g7W6_y*oa=z^5e|qS>LI4=o(w^Q*L>QEsmUH{>^KUR>EV+mpp* zY?^XM)n-9pMeL)|7**v5(|u+hV&GeE!$80hU1T+>GWyNU8tMr5_MWr%uIVom zm3gjR9`ktVa2usyx9fUL)m5HOH?XKa{Ni)+&<#u1kZOUdxUQ+)E#zL~gD-ZskldY5 zS?u~!{%_71Wm;u_qKBD#w%8zT{ZKJwdFM^2!Jk8hw?A$F&b4OvtPNw6o*z6FcEe1t zLy1%ahrC^wNo5@W$+T69Fx{v_4fhzyYvUS$u&vTczbo8tefP}#=Op*!Fe_EzFP9*X z>|m<~XAL#8nAJEz4-D|fjc2amjQ)7T9iG1_bPM30Xjiy?i+ESp4{+cVnV5F3ef|4W zyQ4T*1C!jgu8?@JT6SnPX2Pjnz0KdY+NCE9cX+i~qq@qa0ew}SoVzlR?01P=NSfUc z*S=?7uJO{~*{Rc3v?cNqUa0xjm&dDDz;Q{1Q?gos9BSWwM!GvhoTbL}s2BaBU6 zV3rDlsAp%HJSWW=;@If9DA`uh*=v;zavS~lV!S;o>1A<=tnqA=&tHl5l7yaXO$MQj z57rig|7b!?B9>p1>1xwDiv>~(?{7mDuAxjbcD0ppPD=Yr<1HWA zz&UO>D%roOYbpMKxnKk+Nx9eFRJFLRWT+Hu64{!Bu$K;*#Ucm^Hi-j^YGNZ>z$NQ0 zds~}kdAk?-6!rlf^ajihO z&Au+LWBF{2=3aHc^5?H-nfc1cqx2ocfu>@6|JgOi3Phsfgb7!|p$(&z?<8!+RAW_| z>TqyXuzy3D!xu~9P+o{x@^a(;QQ4<91u6N??}P(^zFL5|R(0{XJPom4 z+fGrA5Ojw|SPh!u`$u~RO~u|dsBEFib@)&~%(v77Y`9fZnOVL1IO$r$4S=+AASrcU z)zwcQEV<7018lLZcR7aKQ~e#HLoz1+vWlrvl-y$Me7!pHS`JNW}Fd$FzEL@y~PVdN645(2N? z)=4c{BuaKbX@u>x>JLKtIiKEka-tG1N&TWj`fnk0$BovedsUJYb`H@q8)tYea&~Sc)@I-Znm*Eng`|jth1MIbSBy^- z+*2sZVt;UOQIRTUc6)gSJ1{Hzi-5)+3)z$sXp$+E2;?E9VY>qL+-6h;c3RxpF0Jv! zybwcp62COndf!8Kkx?AdnW$+Xm0yk~rOK)6(xs-WihJKAcF|*FzLHqYD!s6J+T2KB zfsI!6BIsLSRxOuc8-^N{ed@E>GD*DN2HZ;QqFTZpd8%V2`Rtd9e@eo3=x;+@g9^%$ zgVJ01`hPg*GHIU{Hyce-Wy??0*Z*_CFyJrTKKV-`=D+K(Jv!ju?SZIMZl1HXPR}5C zDE_1=+!ky(PNr3ei{0Ah9w{1(COc{et*5l}Es9Yctw11!W3Ul|f<P!dl8o!)sS;Fqc9t;I)T zfO2~CB4PgNL?gH^7Nq&g(Vdn3YzI+wsx<)HzZ9LXdXR~_&IG-|p66LdYY3$Y4}j!< zEG@fE?>#;*e`5KTjX_Plh(MPhA@gWWHFfQR7)AbI)CuozHvSvvzVH*u@4ILutrVXf zgQIV18M;v!(-OLX0ZQ2!3kj~Apaq|<7#lw!5ssdG_j=xo-*=|YofH4!-`c*!&itt zWDN9Of?}1jod(%eQGX8J&Azzj#5&x2`kxOcjx6uY+_ykbSK#ew`nrTX>nCVD)f*ig zSMEqrZH#*p^z?Pq`MQU7Rk|SS%YWi*=AC^zkHv9VA@Gh!Uo#P6VF+zZ z#O**+oaKjGp8K9T_}IT&BVVy(WA^?NKVHstxp*ykVa|~y&7r3dlzgvry{>Rh5DPw@1 zM%dvvs;N3N{Bz$jAwHs72Qj?D{7D?AtJ_%E#QOH|EGId~K&1M1yJ*+f<9<8et$6nR z&l5e$oV_RVHvRGS-E#lND}K8^r#*z9yIg&{*8SDy6IZ{sGyO?1;%_k~e&)lsLl<6B z{%AZ6{HG(T0G43t?!teidp^3WS}tGyAGUtL;8TvEB|$}M^bVD(WL(LMyMmuD{JI1Z z5bi~2D!Krqc=Q?s^|E4mu{!;%A4K}VRbCu0McQZ5*=st`Yj&^K{AI7jsJ{{1$6@tx zZThS{0*;`)lQ;Zc`SjW5_SqHm+3)Xj_@S_g>EkI;{l>nzFZ-Oo_PN0QAI|n|8!2*{ zQt^WNJ!1OjrSw1dOe}UCB|7Eydo}iZclP@P`SS+?<_`2P{Mzpa4+us*_#T1&9s_|v z13^JS3w#5Ea|c2T2ErNxLS6=jcMdEX7>H~X1Y`y+{yMM(9uy|}gs=vec??De4LWxA z@kje&atBuw1joD_h-(~-?;H%X8BDl0xawuFPvgL9cu2$waUS){8@ZZ1>gPE%kd!i% znj2!60BH1nXKX6>X02@hj+sx-el7MMR^BPz!BVoTmS!wHT=(~_RFV9`P@xL z|3CTES`)AR&!=Wv0$LZ-uvi2C{}*fMTi3k}Ot>B+IJG*q*p}H8 z-6HDGH=KF*jB+gfZtJQW=TAMlfW;bq<~3lk2K|A z=H&~U_SgCBW?YHST%+2ZVE1S1%*@oE%aU)OzL{09S^B3->Y=IUmL<;?`0daEOM1G$ zeVKYoc#|o{r;n{EF|XO1x$yJx;e34H(B@q$M8805%bjq5-ND?>2V1aRH@kO`#n1is zHi<`bEhHH36i5vMQV=GYXI39fp516SMl>$_bBwq!GoQ$CJYxT%%wxRz(Y8Fpmlj#K z$rA&67k54nU%$u@x5#wSk0~-Q;%9w|>p&+n#kCh$x7O6nm|d4iP7Ug1?lfCQHV@3> zC()Cz;wFi;mQ!GnqEY(?axPVpN<2+q(D-~L=pSm#mz2A#eZ6j~zS!2ARdMv~%<8OB zu0fgpN^yPgtlt`$qp`}y_Fz^*rvJbk;rIFieTi^gtL5FPJFro`Ot(JRpf~;Et6a)5 z4~QBUw+2shSMt;(*T|$IJ&v%kS8roFGq8+w0O&U@trq1s5HcGoOc~;o0K70gIkKqq zV8+LbQwImqkL_LXFwte-8cHa)UcWuXwcaTy*rv9&zQFR**L{@Z8LGZLmMa@wZ@Qhi zlytqnsZ&4l;CZXCx?oEIB4zI+Nd%=(x!j*%+bHNe2d$G&ju?yhNU2FPfV<8;IqD|6 zb1AEsXjnG=Io?>HQK^x#;Q#_7g_AiHtdo9KGe~v0fldMdwf(CWt3I;|et3*!GQMuU zXT8JpW0y%Tuk+5^^B?|sB&K$LB!9SQ8rL0B&@nnEU7>5Gx=HNYhvwX!VGbG{Wt|Q( zO8UX1+3C)g5{x8~ZGWKW-PUHEX0GL7a#_-{FmrM7Cn>>FgUC!bmW>5Y*hD@bLeeJu zhnYO(VF@#{`;*MTwcw{eEmT<@vpU+V+0Pq(_Ti1t-&W@k1T~pYYB6@m3;ItbO=8jJl5ygT48N(lN{tfwz7wgb z7}<`thUD1LU^T7P;Y@0i^g~6G&1-l#-r=M&%PEO5Nm9U8qr@}+5x;0OI5QPjKd|`3 zQV(%a*613N7rT#{ssV{4EAy>kD!7bSmd@!VG--w`T2+i>mcQx4W&s{i-97r*181)B zX9#;M0$vKRn8h$L4=vzoP=XM((PsydvlNp=?qJ>BzIjxinE>;>VUojn;o}`g{+?@^ z8$&EIc1b22GrgYD7o%Aq;pvfmPv%>pM&}!J zI{?Zv^^o~4AqwqK!HfwUc4#jmHVUvZ)1{@098Kh|6KcebL@?oJ~q^jFMPWuduux0DSoUp`-s5`cDT8ziO;zFzJQjm zdc&H#N4guUSQM!HXnn7n#wwP!2r%W?cMZWwqlxFKSJESad>f>X(z|F8DK4pElReHT zN$wwBm_fv~b?y%1f1D@hz&XuU_#usqc#FfxE`BkZ_Ie{tAVNR%_3A+TgjussCo#mC zQqu=r(ju{lwk0#rxI+xl&YRG4s-@;tBfp_WH>X0*4jfug_J4{7_JY%~1ENRfT4>OE(`Eo)uVV3Uh;`R3TgH)>Z#zcY%TwI~C;ln0o9x)?X|X z%J|ibH-skqm}FlaK_8tP5BG^Pc8Up@{f|LcFTP)l*98u#eyGcPvL)2{qt6+O`L6xz z9mb8At|c4lz-tVMH1|uz+69l^vv0?>Ajn*dks{F}vE;_`UgV#ZV9C4Dcuw(_v^fh| zB$^0t00Nvl2oN!sW#|Q$28lVv_p`nSa3yH>{if$rgl1?awJVSB}|_3v&CT^e7o=b&BzXs`+c=kEvgoYMg) zQ6Az+87o|+JoaJJpD|g)Rpa^)feqP+-RzTrDmmk#ih#WWOAe$8qr=2-qb6;u0Cd$5 z4v6ppLOiye4;K8MW({-Yk_%YCk+aQtCclEP4j#{HwsXL&O-qIAB^vU%JJeo;vJ#ap zl@pZ8^-T@DUM*3`E1;f*7qRin5PYZ_z9ftq##wipC42(9`I-n zM2sFC2KCi~4oZqvOFu|rj01RgC3YahXysG~g#K0tKC4HLx^KZ~oktKHlLuc^Fdk}Y z)#;2v9_WTr{u0ysmGqY!syk{Gi=mo@FhPsM6i&^mU|v_*Xx#F~v{`u1bu9>`RYf_Y zq>TtIRVeKek9tByZov$Y3f38fqLi0k5>Q&?{7Y&|i;B|1D}T?X4U2M=vbcxb&B5Yi z76eDhVWVPL7bgpp!(;A{j~EsJI7=ZeL<55ka)F8ypn+FooG%`nVY?(m495-QLbW)a zurw$MvJk>zHMv!VWl~@Vxf4?eV^+BRJVLUV@Q;pw(YJAYUbF*`AjXmbC5Vk23=uwT?n~yP8}lCd7(}!5WZDiVV7^9A3#jjCX-N1HHV)+Ubg`S~HD;JUX7~l<49gDu6c0^L_9AFd7uO*ldm6{jr@Ja_J}i}jI=_Gni*&Oouuz8@=o zf_wxb%WEtFh^Yc5lK?{xkG+Qx8>EJe0!+D6_qsg}K}~bz zq`BkEn7_VNk57UYN~qt#2p11xyMCP)Qq+ZUA%l;z>vd{{WNm2D`1um0H>^}SJOa(tQh@tFAIOTH7+QP5nh2zhvX_4nhcf0vDC|4*;9 z))7eG)|7s!DYLaH^Lvxn-jKl|rWIi5=c8`{P?=%ZzkrOL!@AE=d7?Z&5s~S9rHJ#Bmbes}5g^uyC1 zzn|8cocZj1=4(ZexS^Xr zdjL5kvPx}Ph}d631rIb`w82___})Q~ zjDV)PNBY+9>r8yw%|EqsYYfbR7+Qw4i5mM|;q>>p8mNDBNj~fOAJar#=V!{aG62mp zmM`7Yt`Ei=sLg+-!!$sDjsheJK+I7>6rUs3gA3)v6s?n4yVFh{{$e1LCx?qQxQkgH zL@gKqz(yLND`+0tc+Q0DA)8}u;^RS*dqkc@oKV15L99{ZbN9PpJMg8R76WehW;MB% zLzpeox4_hiJXm_r%}+tR>xnpt>sZ<@{rdmK%;MxJ3nTy$*ykn&V&5=a*oxW^+i8nHy? zbu7~FJ*nUS9w^y^u=c?viVL$U3wv^KldiZNls-DnJSPD|R7pyJ+Jb^EoEAD0T#nG& z#NK8gn5v-HC~<>(%smw1)foH-03);%lk-WtR5()(6BA3;3Nz5pgc=R*({>C00|d@= zMT8Qt=P_xB-wQdT1IUG#V3dM(LEub3OnRpdJFA}SD8c5fq^AI}iwY)*=}n^EHOX*| zfUrB8Ig3YNWe)m&g07;B8z^H+O^ZOG`Q1!cfOJ6H#S#!|d9V>p-#`x6DDVl>OePP1 zM_X(Gfnf@IhY%q2Lh-zar#dZ-uQ<-foaHtyW|)d`_e2|FiJkW-3hT! z;tl|$`b>Q%HSuJ#J`3#&5Drf)#f==tA24GYiQyrE{i+w>as}fu4+z-CoP&TNX!#R0 zotg~K_GL2F_=miK+Ds;klYdB2rk@nQS3_SeEIuTGs7k^UC1d0<9SeQoI7}Lc`bq;E zX_<(I`icjCsI@af@TbtxyK-8D2+XLB@<6dQGhy+$N*xajmD4&@K`CExp;)FzL)BC2 zN7j;Gsfp7o)Nv@iMs!oB0aApFCQ(EpjrdqNs2tU|M!~<8dfzm9-^6-T3bjdA#)M8m zKe_^8C@HUac*6pHhJyH3OR{>xbm9Sfg)vO=Tm-};3@2*?%(A!5vVh+U9U`yfLxKvMyAKi!W!c{uXcz+M1Q zstA!3j*jtPnV(@1zf(3R0<@6yr z1c(4jA=ICMU4C$03dp7fBn#nbIW@`W@PPSE;@Fdi<-j?^XU`UpUxJb@8R54^*0TQs%SoPra;_&I603aqj65a7_huCtxQzDWKW&G6W?Lfh2rf$;<9?}p` zYt5<$S~^(-T$;Ot3;=CfMwsZy_O=Itj}KgLywE&JSk*tdVi#bbvW>+7n*qH-0E-*| z@lT&=7M#QRgMmC67R5}``HXgLrtYwK=@JbZDDq+#ASpf%->rK1=YxcuQHr<)n0<5q z(+_Xz-afsu_Sx}r4?F@0-j_J^2Q;@gKuYrZ_`y9FgLd~$#B8<*ti z6{`W7*4$EDn`DFwT>19SJYR+j_e zBFa@2rAbUb3&7?mH=aYiDyCKlajAEnWGN{Z#MEXHEDZrSqLhVSDmE5Btegb7K5g6b5tnk~vMR?n*6fuI)8&`7|PC}m+H1SroiC}{} z2+MEPd4xP4SgzzW*iia5+|k=S8%aV){uD^$5pqT$ctv(EF_Kf-tl* zSCy1T;T=(%feQ-Cv@lzMU#HUhDW@z{43WmY58&LIK-#<4dlVF=v58ih4Y~FG$yKhZ_bbd#5<(~7` z$Lmcj7Y%q{;ZTF>~_e>d4I6U!erkOt#X5D1v8ur zT+GcdI_a=X*Dgk1RGwOO!QzveldRXZ*upA(<=R%+ph*sKP0}aOIXgu9%fv#-v!cb+`Wx@duGbfBgYjY#NiM(ccj>*i|b^e}K zWgLQvM>qs7Q>i1AvI4KdtH;&6?Wb2w~4XTn%wzi5J$NN5zwq(DZ<)B}{SzenpQ8IMZFBI)9K_CBG^JX;l>#y0ykrYcDpNx4}Y zwL@E)NSi0npvTHiGw`g$2>@pVJrC9Wv2@#nqV1h6e===DXLwr8A_Pb(%5=tu9^qES z^@53~pEo5h{tJD6%=>&2F)iEanuri8W)+!bbS)h|#J24UHk*IWHME9nCIG57ba2yZ z(mMRt66kTw0j8P9jqMIM=xjhq*wY8r`MO^cp!C4GYeS>4Av(LZ_ReutQS2ylj`_MK zfvBFFVq8?4Mp=V{uBhJHfX)r!p)~gCz~JFc@%I9xv|YT}b-pW?hq$fM`?h)9y|5Sn z7q2<iLRTBj|{Q04_I-OYjkGY8)7}TVIcQ=)2Z*+LyRy0Tr_rl`BO#zS2rGVK4240uhC<^r6 zVo>}z*&MMFWF?J&Pkit!xqQ#o<^U2=neTZzOJ)_5H0woPKR!-gkhMcf4HNXSM}?Jo zz;n|68JWY;6boy%)O0&Ghv?E2(46cDA8FMfit5KjS>oubDb&7m1GS0p8sS zZhU-zivjG(+ch%RRshfG8piqB_gP?CdoD2Q3t7i46RApb;{xg`IK(+oGA@b#+~lDm z*|0d2NYVhNuTY$RtG0Y^;V4#tv6(OQ_c)rgS^r&iF!SEG{KxcUv+WoT(tBye;sFkH zK}Za!RMEEBcQnMANthl<9k;|RhyEXc!NH~T9J(}k<2wK{BrLQ7p3@$8$#jS>9&exd z!gPHBmWp^iny7rixcdVnn`!Ww>(5epCK^d>SH?1Nuh|2%uPucKCZg7+xi*6pI{=W& z>Sax{?N~BSK1~Z4zTyocr7HZ~{gt^S9^UtznA;e$)>MP#V-A0!dzRhWlHz|I=g6%{ z;2mVW6BX*&WAVN2ezuSwU^pTwq)fdstzidxTu+iw+LS9!HuoX#9b|2ijLe>G zn^X}AD=1HaBBxUMZyVFOI0te5d)3mytsiMZ<0%esTZb-j!8&+7_MzN65hb~~0R&62 zt;c)bO|$)+`GH-7KKt5VI>z`D{@2y(R9xe=Md6N4!>l#m%U1zOz}~PTC(TL97QxtD zb0FWfV`<^#eHnp}X418|p1O)<&ED0e3Udg|huBhcVVD50?PaW-@M361AzY2JXeG-T zbe|~TmsO&a7!K&hUV*2GWg8~u%@0uFz3jn)$URgCYlVOk*<0?)&V>Htg)$vQ=q-nS z)pjfLfizzZ-gn>FhO0+Zu&Eq!YObeRg}qxcTcHAiN?@Fg zY7V{__ATSS3wUYuh^PRqN15X~1Xci5--ltx4UE;H3iTq%5<4uIx56FE4`~beZ6u-O z9~E#A33c8D0M4VGBnI!aR~WZ|0t29xcFRU@(%uA-!|UkZ(MzIU=Wy$T;DJ~?eY)HS z$9ZmikqzPZ?*nURO+GGT?1qLNTFBEb1+0Kr8GG1--ZjWB zrmrTupz1X6TowrJTV{BmE(x#@f0)bpvFenu%IGgm08ByQwduzwL|(oorvPY1N!38| z7&Ue~K|JDTU~ir}a^9yI7m`QV%)tR87qGL$QCOs1dWpuBkhQ2|Gmbw}sDPjkWOPAZ zQGn8i?1kVEC|f84?Nv+;h$sw~X?-G4X7)BhED0=`i=i2d}MaXF$wGDmXx zEI~|?kkBiE{v8ja3n67d(SP7(&1Ii1X%s-*qyqJtf!~vhtW{TZ#}C)9%qxmgEtum= z@ec==X^-76K{JJ3WREMkC zT@BDR`I~sewSq$58A;FQlOK$OVwGN-9?54353S|ohxxGd)u`iyY$ZChq!yUNztos; zsc8{~Gi7}vKUmBr1~-=NdMsVOV{ikzC@BoJ3L_?~hY=zE9QE+KhI3sxRDBT;6oki# z1&wHaZXR=^Mt0zu%($Af0f1HCtM5owB$ z-91X+D^PtBhJn1oB1yIdQ49pYN>PzxF{=Iw=*jtZeT%Z$J>eReqY4!BWXK3!p4+np zx(SaI<~Bn*685w%>J8_ih-$Wt=1?sg<|t=lUqxK;>9_HI_8NkRf4`-uXrVv-O}B-l7lW||#*L%+y14E@-S!(l8Yr7VpP z)ilsH`4(=lFEZj5t(-aZ+^OKh9N=YSDTe0G77@y8S^6`Qd}PF^p8aZ{EH+HCr*Zb{ z_V!IYnWdoLYRcW7CSg?vs2js**8;@$1utHXAOa{yY=xLp5uOBA;kU?X6}9rj8QIrI zBNaguz5YPwICHZu=hklLEcTL>6SraU(G4iVo<=RT_>BmTUL17n@Bjnb|F0$$5>&t% z0b!LKpm8LI3R`wlqp8 zvxQ(HsmeHRXsiv`i|LTeptTx;ee+Q61aA49{KPz&Louo+2c7NVWQ3R%hyU%fXPFn| zqk`zoOP%%s)@b26b>VCTAZrH#FAgt?uG`I)P-a47Nilr+a{CcfFHGV%b)hr~&+?Zz zmW7dU`-@Kw{)#BwTXupbXsPUkbNDzC3jA6`uo3gkG*AR-NlzYHZ3<$DOCJ;xzp_WP z*w5I(N{rIA2OGW;R?Z9_FGd~m2uC^`noQZc$ly{-<=l1mC)`zFO&d*bN-8N?&KFA^ zwWyWw+@3G!*+ieza`fC+@B$AcqBkItflb(myE=}~#_;EoGa#fFhK3`fq4Wte^-8n6 zTM5}mmQE0Niz7#V7!al);^c)J?KrY4c>4#zuz28(>*9Nz(HJPYBpP3LV0`u>$>dqc zj8l|IlDx_2d1ESNb0mNYubDmwBL!Ql3m|25;}nWPi9<#f$Kxm7*_%fQ>PUjF)~;Ju z+kg+#Rc@bAPw>oc;P#?q^jaN0Tc~gp-rhaePftyKQD2}uDcMaLe34a9SBQ(9#@3)x zxVaSEsq||>UHuCe@Nv3WfVle;1()s;DnP?Jg|x+h;Y`uSClb$#(z*pW6F#&~P^dq< z$n8Iwb**DE8Zwq#6zk41{wXu&M>CccX0oNEnUe@VzxK(4OL%b1aoIKdtH#&y8EOo~ ze;12l__Cz;>p@A`>hjGP-4&Q*;)o)2pF5#sKbUY1P4gB)lThY(jC zjgS(Ls~4nuLxDePqD%oFv?vNdK{QE91xte+A#xA5l_EM3k|AKj%&Wh4rwMwz3c-HSB(OR_sP}djRyJAFJ<@duh6Yn zbhA2;zV%+ArwXvpfHd|Yzl+0L?IG;8V9*|jK#LaSCE2|8{5K2*dBE^8wR!r}%>_-C z0+g(sD4i~tjbBk_N}LlVLP;9GWciVGSV+-^bT1qm#Rg(}qSdr; zU_MHWCZ()9Dl`)k*YSZBmrKrlNrLUA8#s6~&gAaum0d9UK3US8Ok68ZO=qD0E&?); zA~P|HUB5Q7Bd_Ymm;3(KWDK(G3wLxCEeG&49z-i1eK%94%fuK|Ba(@B+;0!#jeZAk zkrd@lqK!R3)g*_YMFA738~Y{U69gymqr@;UkzI6gFw9sCn6L*w-Fw`#83wA+JtO-f ztNh(P-R@+e3%Z7kr{=uxkh$8U4Nhj+3lO8FAW?w3fFZ6^3I=b$TeuR`vfpP)g}K&0?dF;{96FAXoIcdo`aV zi{UmS+5HXSj{$3K!RAF$Pd*_f9Y;~2^ur#osNt7Al$dVK6`+oaL(Tg6jwmi-88}B{ z?h52{`8cO$5*vXy_V7j_{&^or0U*yQh@+DDkbcv%-(!LS*Ez)t*!f)S0B^c)1)SZg zfX(dDg}hjojg6Sfg`kq~cv9|Gs(;UCZCJ;$-cr(ZQ;b>0g<65daq-v;i7MTG-_ z`PN+^Jq&f9A++)H{~eNAD^Qauj4zO7qmk`geYJaSf#uZ>@wu>w<)z$Ap`9992c(@KXm^)uC5gMZX<@uosBq%S74&A*Ncc_Ps8Qlg-s@6iF=Y zlQVdPxk!F>FhwhuZJ0U6WlLCEd`>m&jO1IRQa5%Ptpu2(XlRD=9rL6P&4AgIzI)!L zjl80B$&z2T@J97nt_q~bNr(t8JB)z;&xk$)uH_UhXojltaV{dslh~qw;>IIOyK6Fr zYLY>RiK1PaqUEH*HoF&3@pB;wo8O7THP+`Owaxv&P>y@Pd@(j!W z{%}te|G|7O93ldudBhlXlNDd;J|ls;q`BHc>olb{Jn?ulngJBK&VcsKg56$udc$~p zPF`a(%B?nY<>!yMgN9xB90eTd2hC^WjQLQ8YI?fP@#COt>5?NKlB z$?HzIin%snE`oOF z8&+M|D6v8FX3pdvO8cub$+|xP#|U{j;d=Si2h*cCzg@>oZEu)(t>lK7-Q$Ir`eaOW zwrSo9`x(n#e~#oxc(DFPr{T59Me9Q)i?z4-#lWkT9yVAiY0jJXN z=_h9_jm@@IC%rN4PKRzJl_EGsS2hOb-+m!9M8<6?ONt(zYwYf65*dS7?RmmaZCVl&ZpXU7o!5ucFHR2I?MSl!dz~Dr zQG}G7*?()^=ntL*xu|@(hyOSx383njo#|1Y9YN8zOqnA>l220s2HBY`bH|efBcB;w zJ?tumdpHL(5BM9qS9sm#Fjof}3In1%o!2E-xCE9h?`1mo*}ov_g2qd{-`c-eq-R^8 zF!p_{`Fz-Ap;>#mql2Q4VHDep?c!rI18;fu?`XpA(0&>8nTJyH3KBeC_uXV8oR^Xu z^}Oq&J}vjOAlX>VrTf?%=|&w)}+f9NXzrk=@ZwZXv*#xsFirdH$s?9lSf?<_mW4K)SeX z-yYZ2NVfu_u1ub9t!rdgQ5}RTMK4m<7EtQYsIa0Mnfy=|Il9z9M21Bff-`D+T>A6& zCRfBQs#+Fmmr^i+cMMIDOOQhQ?Adza=74z)TW3_~A6;?p?4#)0C;j_mcfp+?Y}Ud1 z6kthf4>$Kn`M&pdMRR_sLzAK*!qSobw?Ct1s=K7rKrnXAX=pT{)X0r}Ur6w%&C0uW zkcA1_b%t?!w{V*T%s}GN3m$dX0%%W<9c6m^Q5H z?!T?)KSe+sr%+hXXKdq9&#gu!|2ho7uFa5Rb`~{4m1H0kux{|S7C`2WQ0mBGry)%b zNuywVjSl7(D4@ByYe;S*t4N#mh? z5ke*c1QJ3f1`#m=Vnom+%!tS&(ux}9!J(rfMn%jD0VB{55pA?-4LE>^8dMZ*w3CQ7 zP6&#KwnIP^RJ0KRX&XByr%u)RulB{R^Y3$Z)#;mclUl1%@BDr5`#w*h>A{~VHqzmC z$2?;&P8nm9TEm?35|u2gMnGJa2(9k2_^u6alcWMkoNmpW>N;pH_c~D4UKY?tu26A6 z%derhWxRfQ=q-@pvr*~DPDAzW)qI`CBG)X_S?!w1+I+2d_da%G(yCTwXB3Q!pJt)R z04Qtb24kU%8;C*4L5`A&qz%j0IG9Jy;#pWW zUk*}?Fh#9HT7(G+E}3#%bW|Mwo`^uv#Zj_=6CrbTfV+7@JHd$cp~)kE_G(2i9s%g+ zy&^2o^HVWUW8YA7kLF)=3xo!h_h+{ zP78|~F}Ck}Uw}j;rF!kEw@>Zf%nCxHRqxJC<@EgSHCr3hrbC0uDoB76V#5mlk<+X1#h_s3KIign3u2qQru=A`X zf3%|2qaEdY8n7}f?!_hcUP_qN7e|vkhjIsbiY?j6zczxT_6yC+PuI;?d_{gfLuT7_ zoxw(w_A#ROpZ=a5#jff{W2OtyCcE-%Tu)wwC&Ij(rw$^|DbOy<=5^OG* zi_pyi5(A~LhBhPwdsGV%QX%qa4saIFZj{cW$GzAY^vl)fr!j}=>^R0jjGNr}qbFAXy%!%F|WGcfBR(6-wTC0^?YRY zywgAbK)T9#*wf^Dq0#F72jV$EhFJsR@PuL49YQ4d>x8Ih)%y7J^HGg?ve1B7aE&$) zvZ3W%5p_N9hBYq+ZwU!zp!xuZj%&})T)bwrexv%*)7RF8vQvvcj8^r=zu;)+4aMGh zu71UM4*lhGFLd7cE^4?hCQESbh*j=b>(^Ix+b^A(_;#S_H-^#a@kKZSKn*(?hHc=ETG-@2BX#^3&7 z`{(;3{!>JgX@anEiq<(J2xxRdd_8OtDMSx1K`fMrM_*1Kx3lb!|E0!S_5hcJtp4-} zGaxozCm(Y(E@}q|4NiEY9M>!S+=~ zHNrMVVf~iF6bA{VO^?oTvIIb88_1ODEj?a#_vqfxSa^n+o6HCuk~qZ@iAp_{Rq}Zo z+nymJ`?Z@1P)WlevlX^!s$H2cBxZ>ykxM6cn(u~0G?#v>EBCNQxowt+QO=%uv2NzV zpbfcV=O6>OOHYCZu-P2?xc>H@Pz+7aUZ=N`4a~f<1e2?GhQv%MNYpZ3!#cdyyxM>j z=L7V3gca3DLg?u_m^-c~xI5iz7g5|em)nJQJOjyN4TdLTgyFXROz{0@@|G^X-aL>LgyI2bl|`W zG!-G3V>FyLt4taGz?YGY8V*LJ$@nxu!=MY%drtzur;-Ab%}|+nwh-1a`8%+_Qz5^;p)<8 zmv-!3AqP-kr0J=L*67;x^g&=w-mwiI-%NIwx#Wrv4FH8NW@=ZUUuf{a3Z5CqY>X|A z*WlX$yaxl%AF?Xu;zNdVi=*+Y>tnP+yppvE;UM$P#5esMn44+E8``{Lh{#0AR3uXf$;iNXu59d#f{>FNR3=dQ?fdf~e1VtszGtJ9mz9bbiJ=po#V6cyPq^`J%5gH2-dRw$nUZ0jCAUgsZM))HxG+<;LV|B+?O>wz zoEd<$!%h^1?Oolt(oOU80IwAm`vz^vsV}(V>e<+E&?RWw>iYC$^<|#P7CD&}U$YLZ z&fM`)&XOOs8a`R>>+0$0>VyCp?cjzn7c;Q*cz2|WRF4WvcjOtUX(hZ#nCp+=FkqX? z#gt)~o9}LmPsMa4a~KA?3@>h%TUWp1^29VK1rsT9;u*L>A}0mMUSi<-D{L>U8EVyY z1mIa0G3CNOavRJMAY52!8@$?~ae!Xa$Q_2~>`$b480uXRMC}@4o1Qc3PH)q@w!*>b z{nY$-T%(>CZ#pGT(={;-Y^q{JEAq}Ox4WySR=>LtE3}9L&-x*pp2=@d%b6qZxJsCr zCZ;vi2Id3Ao_B0F1q(88MsNsGZ@9qMF0ZqDdAi4*j4}^*Xx-Hab$z zO&eje6kIiItl`jkV$Qhe(%*$74+XO)$IipxTdpE_) zywlt)5U(p|8A02yQ%pQ;_b0d255b{{_UA>>%uBHT20H2#GxEWr4!I4()WnnwL6P7+ z7lXZ-p+r67b{>48U{(_ob*S-VQksrD44z#$m{ynKgn!Rjm*axd_YvMRS}B*ObukMS zoHm%XKQS;0rhB}%DifZW1n))Z-wcL0C7sb;5fO9cE-6hnIS9@aAnszfMd;C9$C&X7 zP7mzZrYE#E9lLpUnsS(%Ev7{SPzONu7u!ugAqfnuR=qu7a2^+irpayH5bQG8whyKQ zFea7VL`NI?dsQe>lp9oG@=<-+rFV5_uUZS@j9XOQ0?GuO@S$f(yY^^fYkh9j=Rl}@kglt+q&!F#^9O4Q=R0m+2 zBz8J>iaV$$eo>OL^!6iqW*JQ5!3l>`?1B*NLD*iWr}qJPo`^RN+SQ2Id<8yVP8t^h zNCUT3@92;4_idk13DZalmK3zhh2!!8dj^6l7-gmzczf3K7{?rw6n53AfmD#q5CcDf zESkQ>py#%O^g-BJS^oTtmz@lB)DWkP7?FRN4e7g+9;<7Asn@! zW1riCKTVMr46v)W5+eZZ`ao_gY*z;QeEGzM4ERtnqYPt7({o7*z*5XJ>hOn0dB5q+ zNhPMzETA069eVqz4}|SPikp{RtB4(Gc$)zb)FS6Wy}edSW8HpV(438cZQJzhYLKAn z{4oM{9)#_(Kt_!y;Jgc=4d&K>wrY_RLtik63BLx@-is)zaw$T~s)5bMNUCWk<$^J5 z_57RNB4R}ZxqAN}#|%w4j- zLaGxwxfw{%L6RHS{u5xiqvpm$$(o>>W@LY~(+{=`g^f>MQ8unrWqP}OsgRPWphb5R zpNX7kdb4<#425mH5Z5(IYSLkOqGZq5)WxP&OU%vs)k93Cd6`^c!k|vq51#N1PW`n(op#(UJ_Oo z2Y4mG_zOMuJcBvaS)h{Ao`Ebp?E2!|USFl>@|+D{!uVhG{6Lt)*z7eE(ajUu_$zEW zgr^;;&WR#K;5)E&~I%+(^u1g1R)^j64eL+*2?qe_8n)FO>PyONODVWu?Po3^NO#_2}ywrFQ zSe(&pH)SJpYLB;8Z1{rP`g$oDQkYARRCfcD0Y2yc5++U4*dYrrf5AM}DnmLZaeim{YY6JFb)L07-qkp{gb9=oOY0 z26mqSn$kHAgM_f@(+MCK50e-OTb`MUULp9!jFUN+5zQT%5<0e?W$x5jjf~}l_Cj4c zuBl2ldKA1Zw*%%ct(KGV2nubR(_OiZKZ3;5Jq*1%`=yANs4vJrN#r?X6_}K^NrwBo zx|6SqydMbd^II`@0j}GHjvWiwX#sm)>Fi1ONJ$8)5eT-9;TiSiS~Cxu25ch7A<>7q2Np*Q4c7fDfFRPKMjCa;ZRIi_0I@tQKDA*=gtYjD}bsfh7az_UD%m^v8C~?Z~ z*>*k<8A$YLC;7#~{SagCsQlYdt@2ERzXO?h2e%vQ8^ zNsP|1P6xMs6da81Hqx%)xz))*aTPx=*j6qaW+(0a9H1y4o&Is_AHhU{xWY3aaOsgw z4~^R44J?-5L2)tj4TXMV)yX9h$}nANXwCW5 z6ARR=4^EUYezLyQrE8#)<0T0zY;RWqD0-U-NP~zO5|m3vhT>@PHP-e&@PaHFhvFvf zdS!LSedG0Z67C=p(jk9wD7+-d>k{n zhE|p!p;j07kE#WukwKOWzYd`)z&P4}uQ*;PCVSr99){#XpXxA0xb3J?D2(s3kAH%$ z$B0I_qMHk;wHD|8D1gkn<7FKzBx|fM@+x@>AO3jNwhxaUuYs)+`gVu7zva>IM&Cu! z7`M1ZREa7ND&`{c@X& zv~K5=78NB*M36VM4W$ZhF@5N_602FVtAUI;Uy$r`?fTsd+T2F8?Y7J9*(*3J*D+Ujo zI;KhwNJtLegEttGM()beAd-JETx7-wPAkL3cj&Fgds1g(zDV6(5vqoMI!b(y*i}bz zm2~KSRib!ZLX=HzgC5IGx~~eX9F@3O&5vZ^j~^`W%{DHKzF%j%rfg%aJ&}w=#B6@H zu{d;q#D1TBWJ5<7d$$CIa~P8ro?1L6|4UUE+oh>kh`X!7g=it`(#0NkuguUq$@M-e z7-}nhX|L{hMHWy^wh5PNo@!bu0yF@PLDs>h1;b3;hA|*vL|M7 zfDPZ~Tm~C4i?e5LAsZtKV-wTVN-n+@dELthlB<8QybpS^YgD^=cCzMq`y^Z5Qv)YA7ZnfOnBW4b6N=O{86<+%~XzILplY7Nnm0iv6vvmBrkDa+j2Npg+qhB^q3?_gm> z2M*rzXiRhc{Ni@jXeDB&5MM$n#7P3Zf9j9Sq&%@Y$uWY5QR}mUy$#(}M~jv)^koj? zCf$7(N{ij!TtsS@l7x60b|$?Jhi?!PXrOAG-;UZQRpNYDmsM?{>({O9fHFogB0PJ4 zp0vH-tF=X&Rk9FmxDA^r>WG8yoE%i3F?K%NVE>Vzdat(gjZuc=2$2=M6yh5-G%pF@ zTI&?fWdKanp*J6TRZ|X3L1rwaLk{uX?%^uGN6npE1kxa65|vFQ#aN+rY^tu4&! zJIa$u&{PdT_Ourjdp9JDn0_dzM`-z(^Fu?}GPq+ELF3aP#F&ELEm@+(B7$3$riAl_ z5j+mTDc!iN`Ovb{8@4RJ*{pPI&k^l57ebclv}%l0 zigN8rCdRoTW~FM-zIV6aimKatCNoj9NeZhlzL@9&p!@^|%RnQ-xlbC;8d&R*{z-2A z%!p!5&#;bY!;_e7l_%5>t&<|4FbO*JSuM2dTszTcv`|ldQ<|JKgK*(<@eI5kC#_bv zx4cIBwXw15P(RR@6<2!l5rjagg5@H*;NO{1G5@E|ppfW70b>9kCO|-)9G^P-S@VnQ z3OSu>C0nJp3Q@fXoA zW*=5A4RUPq+lv>}`X>qz#D?&r_xhoq`C7wwGk-z}WT1gKf0b42r7OKlgqUQ_nJt$6 zkUcfivZNu9{6M_t#XTJ1-M+JSFC;IQce1W$N)=@HO4wYO;wnU9a%5j2zsgMi*k#~- zl)fy^(zGO!6tFj}d`mq>*(voYuIRF_UdU@+?G}_@+EoZqMWiwTa^sPq#fdldC@dv(=*5H9o z-5$hY#8`NAXi(bM2rgr~~9uJ{}aEm5iZ*2ylGR_rwz6+$a=waOw2|Ir>^fhlvCJ?g471;DCE*bM+?QxU3I-C`cOPLZrpg<-Pf zEd@eMq6C$w!IY?>9db<9T4=WslFBi~LrxNj<>juV5CD^5#Fm(u361lvRbcSMKWn7y z6fVLA^%4c=RAi@@^tVro7)30c(LL-@5i zVkiq;GKz_pQ>@5V8-*5sL|X;}lyH{a));6z88>m4f&xeRb)ph2qZxyJRzmspQ_z7? z=+LM=7eURIqgTYBZ>qyGj2TKH_2^nm!+q>L#1@{7oy`?sDw0B z=Wv;1=By``iWi##Odq`pRfA)rMV?n5d_ZhIsv7j@dob(tUe2>lRIFxrQ~J?C3W{Lu z>5B_?>zLWS*fYTB@i+M*)8N&z(N(1Jnr+QUwwyD2z{5LB07!%TNN*Lg8@UW65}sDJC9{PYYf?&W_k8@*N0vE#ao+hU`2ZvI`w*9~PSJ6HIRK`A&yD zA^bp9h0ZmErI&bYp@t(bAP8wQ{T1Omb0bb(h}c$y_L2Yu;o{4=i;21jy-(zg+{lT~ z7K^JQyL}Q%USTh=P!GqK^!r53H=sBG{y?q$sL#?hwe|(c$ONEr&?g$bC3;72gvCU( zBgb+TImW&vX8$Z?l!6nf1E*L{W64gQk78%FFnJQR^kIx>ZhY{Tc={GW_(Xin#PWqY zs8SN+s6df)B%c=M7@RPxh2i%oI&RDIZ7s`pPArG#CSJxND4PgG0=M$^? zC$NqHX9XQ$yCvSc#+Yzy_OJ`Y^&7ZhJ#Y9HA&wllI)B@;=GLPiy7-D zGj2UV`oauavh5}qgAoF29)W3(Qtr=PfwaxspO<~`V)oCIT(J;3CUT_t#w6v;TiKg5 z+c$OIWcJm`wR+!m>+=vsjrBS6-7{=cqg%FA34WbOf6vZ%v~1nmiyJ;nZa6uCq_6-} zSik)ywqqp-)e#czJj$wFwqlXZ_cmM2;%P{!&7!9nZh)?7x(~jE8cUQ{vfJv1a>(_uBr8%(8g}pg@kE%CIL{ z^d&4J%fFkq1-{dd0Jg~40)?|+^{Mb(J32vw#@w!QY)dW-pwSf)q*$T|Z&ijbkxAAV z5eyAFp%1ab2(Hi}9E|9wR`YCI@o5|MY5*;3-MvM&+ljWjNT%8&h&NRghq6?qvONb| z_q?K_YXl|7WhKq-Ea3km_`v^=F7e;^gD0>ZBmoWp04)Se7SmhnG?*6Nq>pGI;k~2F?3g&g9zbB{nXM(OW-$zb3qr_dXm5N5Jf=iLo2J?>4-K zC>9~Nn|?c=Ip5AbOf3awq~AYkyP+~s^SNOu!95Z`7xjJp!%cpxt90M>yzNGtlzy`8 ziQ)SVNk6Q(%bm|n@t2gAU$%T_bEeHw zVVzsFw)J>tRrQ@!iR4~U_4XHC+bowjtW;aE|GwI4)C8}!oW;DL?J@?7sk5VpU;MCO z-jEWx=qd9Py>%m1heZ5iJ^w}4^N&}f023PZ-^9ND6>b0VYO_*I|5l^_H%8z8r=R+l zk^JMl|2XeIDftly0-(7-{qJN8|M>v%k5~WaW%hsLjeqIopOpMhO8yUG&A*J~|1>2p F_#Zx{548XQ literal 0 HcmV?d00001 diff --git a/docs/demo/demo.tape b/docs/demo/demo.tape new file mode 100644 index 0000000..ffbc0ba --- /dev/null +++ b/docs/demo/demo.tape @@ -0,0 +1,24 @@ +Output docs/demo/demo.gif +Set Shell "bash" +Set FontSize 16 +Set Width 1200 +Set Height 470 +Set Padding 28 +Set Theme "Catppuccin Mocha" +Hide +Type `export PS1='$ ' PATH="$PWD/target/release:$PATH"` +Enter +Type `clear; printf '$ rust-agent-runtime demo\n'; RAR_DEMO_FAST=1 rust-agent-runtime demo` +Enter +Sleep 1s +Show +Sleep 4s +Hide +Type "clear" +Enter +Type "rust-agent-runtime demo" +Show +Sleep 600ms +Enter +Sleep 4s +Sleep 5s diff --git a/src/demo.rs b/src/demo.rs new file mode 100644 index 0000000..eca1e52 --- /dev/null +++ b/src/demo.rs @@ -0,0 +1,398 @@ +//! A scripted model, with outcomes taken from real worker runs and observations. +use rust_agent_runtime::{ + agent::AgentLoop, + executor::{CancellationToken, Executor}, + provider::{mock::MockProvider, ModelAction}, + worker, Runtime, State, +}; +use std::{ + env, fs, + io::{self, IsTerminal, Write}, + path::PathBuf, + thread, + time::{Duration, SystemTime, UNIX_EPOCH}, +}; + +const TEST: &str = "cargo test --offline --quiet --target-dir target"; +const SOURCE: &str = "pub fn sum_up_to(n: u32) -> u32 { (1..n).sum() }\n\ + #[cfg(test)] mod tests {\n\ + #[test] fn includes_last_number() { assert_eq!(super::sum_up_to(5), 15); }\n\ + }\n"; + +struct TemporaryWorkspace(PathBuf); + +impl TemporaryWorkspace { + fn new() -> io::Result { + let nonce = SystemTime::now() + .duration_since(UNIX_EPOCH) + .map_err(io::Error::other)? + .as_nanos(); + let path = env::temp_dir().join(format!("rar-demo-{}-{nonce}", std::process::id())); + // Never reuse an existing directory, even on a name collision. + fs::create_dir(&path)?; + Ok(Self(path)) + } +} + +impl Drop for TemporaryWorkspace { + fn drop(&mut self) { + let _ = fs::remove_dir_all(&self.0); + } +} + +#[derive(Debug)] +struct Step { + label: &'static str, + verb: &'static str, + target: &'static str, + reason: Option, +} + +struct Walkthrough { + steps: Vec, + attempts: u32, + changed_files: usize, + tool_runs: usize, +} + +fn require(condition: bool, message: &str) -> io::Result<()> { + if condition { + Ok(()) + } else { + Err(io::Error::other(message)) + } +} + +fn walkthrough() -> io::Result { + let temporary = TemporaryWorkspace::new()?; + let workspace = temporary.0.join("workspace"); + fs::create_dir(&workspace)?; + fs::create_dir(workspace.join("src"))?; + fs::write( + workspace.join("Cargo.toml"), + "[package]\nname = \"demo-sum\"\nversion = \"0.1.0\"\nedition = \"2021\"\n[workspace]\n", + )?; + fs::write(workspace.join("src/lib.rs"), SOURCE)?; + let executor = Executor::new( + &workspace, + ["cargo".to_owned()], + Duration::from_secs(30), + 16 * 1024, + )?; + let agent = AgentLoop::new( + 6, + vec!["cargo".to_owned()], + vec![TEST.to_owned()], + 16 * 1024, + )? + .with_required_edit(true); + let mut runtime = Runtime::open(&temporary.0.join("runtime"))?; + let token = CancellationToken::default(); + let mut provider = MockProvider::from_actions([ + ModelAction::RunTool { + program: "cargo".to_owned(), + args: vec![ + "test".to_owned(), + "--offline".to_owned(), + "--quiet".to_owned(), + "--target-dir".to_owned(), + "target".to_owned(), + ], + }, + ModelAction::RunTool { + program: "curl".to_owned(), + args: vec!["--version".to_owned()], + }, + ]); + let blocked = worker::run_agent_task( + &mut runtime, + "sum-task", + &agent, + &mut provider, + &executor, + &workspace, + "Fix sum_up_to so it includes the last number.", + &token, + ); + let blocked = match blocked { + Err(error) => error, + Ok(_) => { + return Err(io::Error::other( + "demo blocked command unexpectedly succeeded", + )) + } + }; + require( + blocked.kind() == io::ErrorKind::PermissionDenied + && provider.requests().len() == 2 + && runtime.task("sum-task").map(|task| task.state) == Some(State::Failed), + "demo expected the allowlist to fail the first attempt", + )?; + let first_trace = &runtime.tool_traces("sum-task")[0]; + require( + first_trace.status.is_some_and(|status| status != 0) + && !first_trace.timed_out + && !first_trace.cancelled, + "demo expected the initial tests to fail", + )?; + let failure = provider.requests()[1] + .observations + .last() + .ok_or_else(|| io::Error::other("missing initial test observation"))?; + let mut steps = vec![ + Step { + label: "FAIL", + verb: "test", + target: TEST, + reason: Some(first_sentence( + failure + .lines() + .find(|line| line.starts_with("assertion ")) + .unwrap_or(failure), + )), + }, + Step { + label: "BLOCK", + verb: "stop/retry", + target: "curl --version", + reason: Some(first_sentence(&blocked.to_string())), + }, + ]; + // A denied command terminates the real worker. Retry the same durable task, + // rather than hiding that boundary or changing the runtime for the demo. + require(runtime.retry("sum-task", 2)?, "demo retry was refused")?; + let mut provider = MockProvider::from_actions([ + ModelAction::ReplaceText { + path: "src/lib.rs".to_owned(), + expected: "(1..n)".to_owned(), + replacement: "(1..=n)".to_owned(), + }, + ModelAction::Finish { + summary: "Fixed the range.".to_owned(), + }, + ModelAction::Verify, + ModelAction::Finish { + summary: "Fixed the range and verified the tests.".to_owned(), + }, + ]); + let report = worker::run_agent_task( + &mut runtime, + "sum-task", + &agent, + &mut provider, + &executor, + &workspace, + "Fix sum_up_to so it includes the last number.", + &token, + )?; + let requests = provider.requests(); + require(requests.len() == 4, "demo expected four decisions on retry")?; + require( + requests[1].observations.last().map(String::as_str) + == Some("replaced exact text in file=src/lib.rs"), + "demo source edit was not applied", + )?; + let rejection = requests[2] + .observations + .last() + .filter(|observation| observation.starts_with("finish rejected:")) + .ok_or_else(|| io::Error::other("demo early finish was not rejected"))?; + let traces = runtime.tool_traces("sum-task"); + require( + traces.len() == 2 + && traces[1].status == Some(0) + && !traces[1].timed_out + && !traces[1].cancelled + && report.verified_after_change, + "demo verification did not pass", + )?; + let task = runtime + .task("sum-task") + .ok_or_else(|| io::Error::other("missing demo task"))?; + require( + task.state == State::Succeeded, + "demo finish was not accepted", + )?; + steps.extend([ + Step { + label: "EDIT", + verb: "replace", + target: "src/lib.rs · 1..n → 1..=n", + reason: None, + }, + Step { + label: "REJECT", + verb: "finish", + target: "verification still required", + reason: Some(first_sentence(rejection)), + }, + Step { + label: "PASS", + verb: "verify", + target: TEST, + reason: None, + }, + Step { + label: "DONE", + verb: "finish", + target: "sum-task", + reason: None, + }, + ]); + Ok(Walkthrough { + steps, + attempts: task.attempts, + changed_files: report.changed_files, + tool_runs: traces.len(), + }) +} + +fn first_sentence(reason: &str) -> String { + let line = reason + .lines() + .find(|line| !line.trim().is_empty()) + .unwrap_or(reason); + let mut chars = line.char_indices().peekable(); + while let Some((index, ch)) = chars.next() { + if matches!(ch, '.' | '!' | '?') + && chars.peek().is_none_or(|(_, next)| next.is_whitespace()) + { + return line[..index + ch.len_utf8()].trim().to_owned(); + } + } + line.trim().to_owned() +} + +fn styled(text: &str, code: &str, color: bool) -> String { + if color { + format!("\x1b[{code}m{text}\x1b[0m") + } else { + text.to_owned() + } +} + +fn render( + output: &mut impl Write, + story: &Walkthrough, + color: bool, + animate: bool, +) -> io::Result<()> { + writeln!( + output, + "\n {}", + styled( + "╭──────────────────────────────────────────────────╮", + "2", + color + ) + )?; + writeln!( + output, + " {} {}{} {}", + styled("│", "2", color), + styled("Rust Agent Runtime", "1", color), + styled(" · one task, start to finish", "2", color), + styled("│", "2", color) + )?; + writeln!( + output, + " {}\n", + styled( + "╰──────────────────────────────────────────────────╯", + "2", + color + ) + )?; + for step in &story.steps { + if animate { + thread::sleep(Duration::from_millis(450)); + } + let code = match step.label { + "BLOCK" => "1;30;41", + "REJECT" => "1;30;43", + "FAIL" => "1;30;101", + _ => "1;30;42", + }; + writeln!( + output, + " {} {} {}", + styled(&format!(" {:<6}", step.label), code, color), + styled(&format!("{:<10}", step.verb), "2", color), + step.target + )?; + if let Some(reason) = &step.reason { + writeln!( + output, + " {}", + styled(&format!("↳ {reason}"), "2", color) + )?; + } + output.flush()?; + } + writeln!(output, "\n {} decisions · {} test runs · {} file edited · {} attempts (blocked attempt retried)", styled(&story.steps.len().to_string(), "1;32", color), styled(&story.tool_runs.to_string(), "1;32", color), styled(&story.changed_files.to_string(), "1;32", color), styled(&story.attempts.to_string(), "1;33", color))?; + writeln!( + output, + " {}", + styled( + "Decisions come from the real runtime; the model is scripted.", + "2", + color + ) + ) +} + +pub fn run() -> io::Result<()> { + let story = walkthrough()?; + let terminal = io::stdout().is_terminal(); + let color = terminal && env::var_os("NO_COLOR").is_none(); + let animate = terminal && env::var_os("RAR_DEMO_FAST").is_none(); + render(&mut io::stdout().lock(), &story, color, animate) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn reasons_keep_whole_words_and_only_the_first_sentence() { + assert_eq!( + first_sentence("Failed in src/lib.rs. More detail."), + "Failed in src/lib.rs." + ); + assert_eq!( + first_sentence("First line without punctuation\nsecond line"), + "First line without punctuation" + ); + } + + #[test] + fn six_real_runtime_outcomes() { + let story = walkthrough().unwrap(); + assert_eq!( + story + .steps + .iter() + .map(|step| step.label) + .collect::>(), + ["FAIL", "BLOCK", "EDIT", "REJECT", "PASS", "DONE"] + ); + assert_eq!(story.attempts, 2); + assert_eq!(story.changed_files, 1); + assert_eq!(story.tool_runs, 2); + assert_eq!( + story.steps[1].reason.as_deref(), + Some("program is not allowlisted") + ); + assert_eq!( + story.steps[3].reason.as_deref(), + Some("finish rejected: run a successful verification command after the latest edit") + ); + let mut screen = Vec::new(); + render(&mut screen, &story, false, false).unwrap(); + let screen = String::from_utf8(screen).unwrap(); + assert!(!screen.contains('\x1b')); + for step in &story.steps { + assert!(screen.contains(step.label)); + } + } +} diff --git a/src/main.rs b/src/main.rs index bc9067f..f9ca46a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +mod demo; + use rust_agent_runtime::{ agent::AgentLoop, executor::{CancellationToken, Executor, Isolation}, @@ -29,6 +31,7 @@ fn main() -> ExitCode { fn run() -> io::Result<()> { let args: Vec = env::args().skip(1).collect(); match args.as_slice() { + [command] if command == "demo" => demo::run()?, [command, data_dir, id] if command == "enqueue" => { let mut runtime = Runtime::open(Path::new(data_dir))?; println!("enqueued={}", runtime.enqueue(id)?); @@ -63,7 +66,7 @@ fn run() -> io::Result<()> { _ => { return Err(io::Error::new( io::ErrorKind::InvalidInput, - "usage: rust-agent-runtime ", + "usage: rust-agent-runtime ", )); } }