From 3bf56717c917fe247801c272ca60305ccb180109 Mon Sep 17 00:00:00 2001 From: Suchintan Date: Mon, 4 Mar 2024 12:41:38 -0500 Subject: [PATCH] Streamlit + Readme update: copy to cURL (#22) --- README.md | 69 +++++++++++++++--------- images/skyvern_visualizer_run_task.png | Bin 0 -> 243267 bytes pyproject.toml | 3 ++ streamlit_app/visualizer/api.py | 16 +++++- streamlit_app/visualizer/sample_data.py | 11 ++-- streamlit_app/visualizer/streamlit.py | 14 ++++- 6 files changed, 79 insertions(+), 34 deletions(-) create mode 100644 images/skyvern_visualizer_run_task.png diff --git a/README.md b/README.md index 3bdbe007..3d27a985 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,35 @@

-Want to see more examples of Skyvern in action? Click [here](#real-world-examples-of-skyvern)! +Traditional approaches to browser automations required writing custom scripts for websites, often relying on DOM parsing and XPath-based interactions which would break whenever the website layouts changed. +Instead of only relying on code-defined XPath interactions, Skyvern adds computer vision and LLMs to the mix to parse items in the viewport in real-time, create a plan for interaction and interact with them. + +This approach gives us a few advantages: + +1. Skyvern can operate on websites it’s never seen before, as it’s able to map visual elements to actions necessary to complete a workflow, without any customized code +1. Skyvern is resistant to website layout changes, as there are no pre-determined XPaths or other selectors our system is looking for while trying to navigate +1. Skyvern leverages LLMs to reason through interactions to ensure we can cover complex situations. Examples include: + 1. If you wanted to get an auto insurance quote from Geico, the answer to a common question “Were you eligible to drive at 18?” could be inferred from the driver receiving their license at age 16 + 1. If you were doing competitor analysis, it’s understanding that an Arnold Palmer 22 oz can at 7/11 is almost definitely the same product as a 23 oz can at Gopuff (even though the sizes are slightly different, which could be a rounding error!) + + +Want to see examples of Skyvern in action? Jump to [#real-world-examples-of-skyvern](#real-world-examples-of-skyvern) + + +# How it works +Skyvern was inspired by the Task-Driven autonomous agent design popularized by [BabyAGI](https://github.com/yoheinakajima/babyagi) and [AutoGPT](https://github.com/Significant-Gravitas/AutoGPT) -- with one major bonus: we give Skyvern the ability to interact with websites using browser automation libraries like [Playwright](https://playwright.dev/). + + + + + + + # Quickstart This quickstart guide will walk you through getting Skyvern up and running on your local machine. @@ -72,20 +99,26 @@ pre-commit install ## Running your first automation +### Executing tasks (UI) +Once you have the UI running, you can start an automation by filling out the fields shown in the UI and clicking "Execute" -# How it works -Skyvern was inspired by the Task-Driven autonomous agent design popularized by [BabyAGI](https://github.com/yoheinakajima/babyagi) and [AutoGPT](https://github.com/Significant-Gravitas/AutoGPT) -- with one major difference: we give Skyvern the ability to interact with websites using browser automation libraries like [Playwright](https://playwright.dev/). +

+ +

- - - - +### Executing tasks (cURL) + +``` +curl -X POST -H 'Content-Type: application/json' -H 'x-api-key: {Your local API key}' -d '{ + "url": "https://www.geico.com", + "webhook_callback_url": "", + "navigation_goal": "Navigate through the website until you generate an auto insurance quote. Do not generate a home insurance quote. If this page contains an auto insurance quote, consider the goal achieved", + "data_extraction_goal": "Extract all quote information in JSON format including the premium amount, the timeframe for the quote.", + "navigation_payload": "{Your data here}", + "proxy_location": "NONE" +}' http://0.0.0.0:8000/api/v1/tasks +``` - # Real-world examples of Skyvern <3fL;u*Ag5@{)~HZ7owXwwl$g64Gx3n0agGU`1{lbEii;Q2;tx7(*(><%2G zpRBciS!uHi9uir3wO)avZSo2fvc`*cLJ?=72r31v)ipN0PSV3WdmD*H(#4OqZegf8_zEM$NnmG z4NnlKKO(WMvzd3J*YS!GWR2J{+2-q0)C}Yz=X0TKyPtP*VbLg(2YoBLfT6n_!X0BS z*PQb)SW83=Th$UYejn++fsg>Bs<>k`V$w=1VEws%B0A84ORDZm#4kEFD3X4f130dw z7CV$?5Ocl)pIQ{j8PNKGqkT^!I6AI6l)$LxGdpX4^pFlj;duHt0fkrzeV7H$6Db$)*!Jlej&ucif#;u%@b+ zIlz_<3-2<*D`KUaYUXzTBtUBw;a;j$_w!Me#zY!t1V!1$!b=LMu^2PSt$5plxC=GyQnA zHby4Pv-`qx9VxxXxD))XZ#G=)7nRZC2Ggm0?n@1UK*21@7w9>5O^#CbUi!Z=!&~sw z8z0rGNSG8_3P>GXgCs9r6=8?d9tFjS#$4;E$`ew0Wm#`)x^ z6}E3%xO^T$>y5L$#Y%xquykb_vP1c%m*Jxu^rFG9?jyI$L&L=G*%xcd2ER@oJkLKK%Zc@L=EM8U-lb~w9FYnvtA84Z z-2_v+?~qS*xln~xjAfF)dG=i$t@h~U`n8*tlhRUc^l5 zbtxLbMyF>z)QJAgULJK5z*1#|;8vwTE7hR;ryP8sA|8^GJay(7X$rHxpP)J@@&idP zb7$tb>0$$EI5AJ!q-RVp&<;LC0I^)GSd{R`dX5P9 z>^9DQe7g~Jda*-ifMvS(cCI>{NSFc75l_eHBI25=6y`5|`dDdHR%t(9p+9EKhRx&66whn*a zFmMQT7<@R&V8&GMZds9k_+dSOrHBuP>4 zNd%H%wtV?4=>(?gmnA^-rO;egI&67IhzTE#Kb^fnCZ=?ga&NkO)cEv1a8ELtmMLj< z#cq8)bGi5V8Qy_)VHGehCU@tc@&^EKMrq((si(%K>wV5e#MRJ8^enP{7FRAxYRRMyLd3tJlW82 zFbr=>X)BMR(Pn=(8*OJWDF$c6r`WZ67RH|SKMLfZneUG&D`y=^oveahj+b2CsS~o8 zhxsecX^GF=CU8X-I{>%rTi}-6R4)Q=@T_W`4o$CJTqaXU8*6a-)J0Lq9nJIJBN{24 zw!wgn0l%aWPz`!Bf9eL<2(uo2}&s+uvD!amnvJ$GJeub=`^Ij~Wq!i&7+`DP07>rt+8#nY&?X9uTx=r(< zHW@vdZnt4l_j=d}qFL_MZi4H#i#wn$HgFK<4QX^K1IfkCmpYqufl)#VP zT$K&6&sMSQca^iuF{Q+QdU?8(hs=xePoHkeCxltBF-^aR*%{S_DLMAF06ygQ=cAsl z2B;(vrSQ?Wg$BPSjNVA^ju?T*yn^vu1$-bWKp(o1<@cZm-Db}SfH;!_Vfl%nl5`>+ z#h1d+XR^?oZ$}E4-h|QcN}d7pGn%2u_B#asmP|r)4m%#7jZX~PPdC}fsx-h{%H$Rr z8JA(l(JR0Jo?xNYY$duaojJHm+0{-s(C0Sbg1Eh3;gf?oHBZWW`nk-OQmtAX@oa6N zB3cSCa&DkG$;Sp2T>!Q_m(@QND#{i(kxO zV)=GGRC?OWUj#e*XjO^(M<$ttU~;{Ij5kU=?S&zE9aq%Oa`Vggw075%tHxORUimxU zwYr4~AJMDcw{2@)u6d%5fw!9DT4TSTGi|WqX^(!ICM|!W@Tl#m6PC zs^jnet_5YZ{A#;SrF_>R$n%sQ+$O$C5*xwSszxux^Z=+?$84&+xn5>y*^4!FHqn>8Z|aDM|{9P72WCZFo=W{q4d8K1I*e z;(XMdbi+vW-lK?WEZVS5wLab^IfZLnyADs5$x0V#3cS%>ND%ONkZJMowp%jke^?+| znbEC%Q6{RMpMg7fjoSDZV6LYg=1lRwLA zj_cv!=R|n^hE+KTCAAVmCGYUw6%C92m#z$DoC6rI;L}T6Njnk*BStbNZ}Pj4$UVj> z(-D-fir$L*)h@Hl;QH;@RKBOz)!#@1-dkbgJ+jyhr^D%-bAuAp9X5ompuWiTGg{sf z*aoLVj-VkQaO*E_D>3(nALZ}*-WzHyMEdsmiH5pa@;Kg6cV7N%fx;BNxhuZGqunym zgMs70I;a{+{%p~MY5d$HmR~j603XM~G`SFE{*t};lFi%9QD3ZN+h;-HY)e-1pSS8q zEcEXNlC*S2=K%Yg9VsC9iHXLm$??e-3N9oGagvDX~4#I8wkgXG*(g7&qvua5k8Q^a#_Y7{w6ki)t;rS2x$;Rg`loT3?-E2IH1eK7@Kv|~VB z87@eYa)-gDymuF@^aGk;&Ie)V3Mjm$al80d(%ow>2~N{)_D;o~ksw1P8CnP!25Q5i zly|6{4wP%GpWhDnMJlQ@!c=Y(U{OdZ2eJCRJiF)!eVi&hi#GFe>aJd{e-VUt24(1F z!H^`TQCF&L!w*IS?J83Ns!D`|u~NQg8(nxCw9k=I^CQ8ukUMaoDzlR$O{XEGTT>I3b&!>R40ufU* zCSPVRy%xU$D**aK)m*WQkA-7__R>bV1`BXE&@#<9rmfrbRfB`8QeZK83l+V3yug6* zl1K~YV~4KKGq&lI?J03DTJUkm8MjXE@cN%M+^wL^o{%#hRoV&)glmG&6b;h|a`tLI zGY}=G;mr{*L9RoF!dcxw0WIF{5NzoWys$F7L%cu+C~sZSKqM-eR@R+yaEuABc_b8{ zomRIm1Un}3B0cpfNbK2YrB{>rmAo{PAhFeDMTxL~haLf4?}n;x>dVsov67}dDPx+5 zHcaX4-A1cH-cG0DY7#VonNF*x5qZzuX%9he;m?ljP5BnIB?CSy9& zc^^Eg*1y{A)A&5ZfHy@f#Ot}ddDEY8PkOk4Rqh*36+$TfFRgg(T6>B%j+d?w==+Tv zS^--(Ulphm1l3<3583>fV-cn4JgE!Mgo$+(fM4XDI={oN*2j2Pu@Y++Xo@P>g8s;q zH~!c4Nf}?0IK1MyeyX8x!u~|IcrgrjaV`xJxR3*AJa?dE_QEgsai^V5q*_KgNoA)` zozD;7_&8EG#OTIYF;3kfEhDYChHJ1uB_E0o577F`r1I37G`=?Jbub_;uF70+bzGvy z_oMpEG!?b9E4vluUBdeCq}f8%>aR#SuUw7+N-mF2zimBog92eC zXm)b#y2%|uG}Lz&+YS^ms`=~rMcxt zEREn}K4pwQOOrbR89(&#*5#dcO+5i>eu1WsMauRI(4eKK!khtj~4z63abq(_}n4X zlj*)T-G5E{^#?<&8jhc%@SWTRwlS?!fQ=!@x3gzOBffYLjoxz;dC0&eU+Y%e zPZ{Izy|Qc46#O+IiC4zA0e-`^V`J}%c*u4A+OSaF9_CYhf$^{EfE>N&(N+c zAW7oBss*1b)TL|%V3d?s;=YMp_#3qDPEIZ%rx*BD-T9PBcdi5T>3Hx5^ds=w&U%6i z!NV*CUC8|A9Azw4JGYM}v(I@mC!xbq`3*_(N#zi&UKw0;imb?>luQ4wr%9G#9yW>buOMnLpouv1ytyVG><@xZ3Ih(6vgi8v@=)pSuQIu`* zh2*58Z&uFxKi7vRC{)l!$_SuiAK|7KwSuNONoeWBxe`Y)I_SSOq1bfv+=Wb~3aE3s zo>9?2CU%fy1oi!Cf6vbin4Yo@sE8+(q7=Ei-(AMqLZtG{p+r15vPl<6dd7$ z)>`!zOTvZtvlsXrB_fx*T#RlC23XL+yjEz#ZMf9GzRa5&_b@gfb&A0v;|^m%9%$j! z-v2HaTW=LvZ>kV3Rqatg+&GpsD71qf>Wv5%cu3%tC_#Ur>oevMM-I zIz0z9%9>Gm8y-j5)wq;EzoThyw3LpQW+xA!JWKf;-T_<+q<7=ISY0gFR4pgn6A$T- zRe=+r&h=e+MNtG6izy?FvXN@7oW!1-H+uQx?q8dA14-}ihS#EzI$nt0;?>3jupFoX z!2uJ7Z6;s%x`I%#%vgE4+YfPRfeUjrJO8ekj$keKY-w4(;iKP+hGaTV<@Z=SAwGjD zltGFHMwTfmNdXRB+H?=U_SB~#;gxU_<-^EltmsFIEtkOU(5=lthZH&VjB>w7J(C=b zyy3$#NYQitL853po}xH#!A`?tj-1VD*WWCST>oOyS$3seXq8d|swhT-_;~dK>1itG zmAaIWfNNDl+-3ikgtLDQrq*25MIs(3oA<^6sxNoYBSJG|zJF}bfBouOKMuJ$S{XZ) zwp=#N<1i4B4%7ATdLx+of*1~2^L%OJ_c4i^7YTZpnq{yETl2eTE3lYD?euN_jh$HT z>)4An6p#tBoGZ(%HYF<&zm*GkL_F{}XLfXe_RRR&`$MTM3mC+MPL{di7DkfT;&w+; z^HNsTg@MbL=IuJbW?~cdA+J&+N|%uEdv+uJz@P}_G9;lM)*!xv>Z_1QtLrOKk1<=G z-*^o!`t3NE%s0~I7>CpLvRQez?F~C$weN?)eoh=oDo&yJ1g;9gK z?=Azd29iH}9u_5@4Q-GI9ezBzh!9Fv28rzZs{7DUV1=9jCiwFo7C-&7aJ?;sfK&Fy z)*qp+hOu7MwE_|Zf*Ng355FJpF7_;RUmn${;gW&n0ibST2OCynd77s2It?NyapAE! z^HOy^cfAm439K8=Hg&HmJ!RHdQqzCjc>71H0^BJUs<;qvdl69z1xecw*TA?C!zMu4 z2(lB;k$6v3X2hK&=54z5let=WCLwXaK9y)>mea7;d#rf@Fg5PVK9eb=uk!u9377uy zu6S@va3h&T^kO@O#2x{cu-V1ht^k@6PA-L46qvAVj3lB555&C|w)%SUgxAovgms5d zQHd^OoG@}E#Snb0H6vmsMN?m@Gx7)Fzegcv)vApB4$Mi}%q~6`DKPxqE*`E3BqRg<-WmRef(h!^+bZ}ZAZE}Lv(+bG zRqia`+o?KR#A-3Jcd{twt-MG$w5AlYXV9^n)SL5((!GKP?}1D$ApEFets}%J^saTC zegznQc9Y9^nJ8ppP#Q65OuyO5YT>wb1Ma4o!Q%e*`a7Ot7|OPcZvQp=Wr6~;m>+M5TM*gfm#;4ids730zvhuU4 z>TB&}sX$b{b1DAo_iC7@7)`biYEY!@+0bzAkO!t=aVbwu9}D*G)IfA;thHDdY-y^Oi^%`#+9MCHMQjf zN>9fR@8ZtcR7vzdnJ>*=!-^1tW@xe1PmD)@XFG=Oa;ObtOupP@y|~Pl(Ox4*eAXA= zI^0+hQooL>_{itmD<2=va~ z=sa?dF|yuH*ZZDJ6TSX)JiN|w;e;Xi5~PP;ex^;4;RwWG3CVoaN3^_*gerNIq2L`Jy>V7PWkHk0YZmKNEt@m9M4@zcX|Ny4a>0Ezm|I(6V5KgO^LC#UT=6 zt;Bo}f$NIBQ@43VPw$Ai{l2(7>34!V(Z&W+c?6V#6?eikS%(_lQ_Df8&3v)&>Tv=p zM&{WAxx!<6ka2yomfeu;Vv!)x@bsJII?cV9VxvzJMg5W6x$fN#vpIG!8Z=mSe+5`b z6{Y&$m24Qj&__n+W0R>Q#oen!IA3Hh?&h`^OI!wGJPyj6EJVK}nCXbF*BIdzV=uY& z|M^;tvyT~cZ^%FLB|>$nf_apb{%qa-+u$_bTM`@jae2;S|88w!3Lgs%6R)&bQHS*W z3rMulJWMtM)Z-Wt+PYxF5q>RIIhI4U3yUd4V7XH$A`<@ z-kV!U%(ZHky8>!5J_8ad?{wi4;5{nNrCDtGs}WE*^ctPTiQm-!HPKvAsC`k`f8n!o zaJfbrZLnq8BCpzSA`0!xqZUe{xu@1Q5dWd0V>MqPJZw##b%nR8@unQe-@8=2yc%LZ zafeq3=F1apMy?6@i#3#>YT3ooC`Gr)?zO-;B~64PG=zVjDP@YA4?;cp<`V^wD7RT+ zt48Or)$)PZB-^=PgD-wy5adcxIB#@94K1$BbZe}J?PJn}g2j?3t#Dixgee$5FLtej zYg9TU)XAq?D;FAY(duS$Yd2wKDBC5h5(dq{0fAl&95kMu1Ngb>gI(SSEwXhQ=v$Jv zchi@jNhaa1pZ8^x(zbm?(Xo(5IpnSa&`R|AaY?%7ySrBeF=wrGgTr+)=3AeQ{U+48 zDvBg2`9Eb$BO&@JqK0S_?!bG22Cpxr#pY9bN8z(+Ar-Ka3>-h8QgL~@MLG;9!3KS} zA+jcRyN+$Vx9rA6PM4R`z0ECMoqgDagJ>MTnmq5TG$=mBaC;h7xqqNUJh+Fnmp{A%uNq=}&1E{9@hZL&$eeh2 zJb;j=yUb!}u71CF6&v0LLc%iOpWTKO9Pwi}$5W|5Mcc6V1G99ceizQcY-?l`3W=ZX zeH0KrB6J2M_U4Nv;U8kxvVq0Q)Vh$@0xMQLHc+0D4^W~LN|haGrU0(v2dT+SDXZXwNh~mcH{{~zePKs!df)j5368h(rS34Nw@*i;FLV- zcr=fwzwtgzqt;Rkn>Lm`{sxd($C=NXQ#&U?f);>sgkXI35;~4}sXx+HE~g7){s(}g z-tGyANSgxq*k{u-35`bkaQela_eh-sF}?Qi?~tiInQsn`|z=*slr2 zcq`Bkblc?^k1XMR03Tw#2@5Vq4*abH!+9)eJTr^diwkynqk!U_74yZm7jDFHma|YCc`kIaFPN z2(@T&l&BxeZb6yG6-eO|6tTiJ7DUpUVYek#5sD2~G4S_IYke|%f%tD49aFEZ*2RS^ zYufokw^p1P;**Iv#y9Ry?IDDwC#Ad_`;rC&4mSAM?s5ucK2;Y}afi%XZMjoi&JKM_ z2Hkd70n1qNw*!NpM_4z9l?HX_=PyOQ?9nzzMMCnx!bWC@z}u%2+b$`bC*f$%@FepU zl?oN$#R#+T{zPfV@M~a#w)(CswReg-cJkDn6y8qoQ-Pj-nIULQ* z#;Kx;vC5$_l|YddD#cRe7L{^nt?ZtRnMpED7&*wx=f0|`ty_S6tq=pIjK~ovHvLGd|D3m{CGB)mqA;hKoYj( z*&)7~EcI-(SmF9rv&fU`uIMCf^R$>B=7Eui>vD!qil6pb-t_9F%DavG$1QgD_`1J3 z;hkBRm{-Mmz$ChNBpNYq=ZtTADF7kAnuX0ay9+JZK~0W!b?ah&(T@`2o`fz z-$M8A3}zXASA6ZV#4EAd>IoHRGak+);&HyL%4fGosKUUz$0YwbW@J1NtzfBF6Z)LojjmbBHsu&XI$4=!^=+FBaJKDY5!#>20I zp{GjBM7V9&nLGFpJu~XfR+gz}iBQWH5mK9o+!l!eL}+~=^;%fWWH^Oxk&4hTbkFo;EoH9aTtx)IXJY1Z$51>PbeSae4jANu4qK6Ytj z33fzZ&FT77&s;_vA1<^rW4UB_J)&MrtO!`L{!EWU!l5;ypCjNh_*LNECY;K z<{HY+F)62lw;mVF2~_jIg9vaO^nH7XqO9K087&q|loSl;Av_J*pv-8B(DTV};FFsZ zw(r%RFVEx&>Y-RP7SkxfZ8$@+O8F0yM($tV^Z{)RRoLuUouH63J{Mo}>4LF)LWKBVM-u#DbZsRa`(tOkxiT=`Xx%@;a=GI!XbViUg;A3MAQpl+-xv z5qC1>>}T2ff7%DwmaF}I$sGz3?G5x;j*A*Ty%E&V?Zw)nkOwcRitV=muobvWQ<*Do zUW1$#BLI0CI)ifmd#11ph3qqq7L!+fn986zdp7u8zpHQDYy-6qudrqY2-xjcp2g7Z zPh{)fPp2*q)m$JHU!JznjWCJ;jhbHto|tFA*ilk4MSqBf3!-eWXD0&L-LXisfBzS3 z=l?=Dcj7>Abg4S=7Nf+1&a_d!KsoHv1IX!N#TaSB`!|5cBxQFrN$T~e+t+1|1N#L% zgWBM-5TVmx0j~p!H+J6GPuF}Lp5!YVd{Doe%*M?d*g$5ja7!!#Y#iFybm!AW@$lrD zP1)@3R6HjdMh+H276W=ZqRjcVMnf1)69PnD&U-=2BDfHI_7E$^I|dypt+LOipdjGs zD+EA@nLrYF+tWs`e&>A9kB5~Lx!MS;6A|btp<|-ubX^iltAYRcea+bo&5o91ECDco9b*+fCF$i!E#?K&(es6)bVHAdu#pmynN^515`8K#zcNEj^<8Z z9>S+}c#!DHh>_k~K3#|bZ*YuY1EOE~siZ*I4!P^igwJxDSKl2GzoYWq@S3G@=Ggzl z_L#zUzJVTPZ_v*$SXCxXJL^EED6hG(TFT?H8NbqQH2186k>*b=Aweo%I7CMh+BxMZXNona==jT6 z3;SEyPt!Zy2~UKojECf10&Hw7|AZjEQY8u_q168TKk+={2muVRt7a4& zv7lG@9$47t0lJ~71C`K)LHuNTzY}C5qRH+4w76&GF8l?V>cD8+&+gNDs}krTn+(Zn z)kEm}Q!apj4EB~3Sdr_cPuZ4Mc=a)k?hUkidDLTgQi_M-t8gu41y)o0KzOIcsJEta zAAgjVZZP3PehPuww%~mxDh>Ns?+nP=SDHCkIBb*OsL^I5ck=ZCOvhb|+_8Bqg*0WI z_0F3wFRFm-O=_UZNE*YF#*j=lb^(yqj|LLyR^m|}*xuX!VH^Thh=@l0zaqXYe|=b| zw48K#m?m}pvT3CbkRlm??MD%CSF{@GZ&!D9XcOScXr;JL66->TEC5l?n{;(|j+yVWZl$>}z^8Tp9fLyV&(2s9Utm0A($JU#An6G3 z>@`l{wk`MDBZ!}8Gm*)PH&CPoj^}0ozq5??UA*gu)8FC!u4zE8p=JJ>_5FX}_P_#l zRh{DIB>jz2(*k;-J&n6yD3gCdvVKMxnD8Au?FU19Rk{&VuPYS=!6RtoP=W-L} zQ=u`NjNE^;Bby()jiG8s_L+x@FFm_{9Aav(ipCF_8{>bB1qzI9Dp~=;5)A7P zK&O}-%#%lT?I959drbtuQWzvnQY?s9HNK;>p0y|@z}@y@z>54>Sg?&e)eeLkIx%qo zD(6d}yK@L4T0a)0*wNo>i`!$=VqKTlmuhnra4I`L9^~OSnwGN5%*!J-D4tHb4&rAAGmt4@RyDwJ&9LaC#qYU+*W02W~H-bGf5(y)({LhWF z|KEMZ2)$v@E4i&hU{bgS;DjhSu{Gp&9`_2J-$&qAC@<{DV>Q$QuB(>u81>>DCqQwqXM9al+AZy|Xc-*9X zF|XM@zkCdnLWo)tiYm&?EMfN*-PjA{>PAy52(#LFQcu0@d!LLgypQ(sSJjVc2c)=V zdAV(?FA@tf*^Z8LlN(MCxDU`{@C;wYSz=%y8gC0cxcaw3TCC7yvT|e}+3V{YSG3}` zWH~9JfDXbDO!_mG(~#xbxMJR2Tb{dbIV{{wNV%}|T z{hpD&TQHyR_s;4g&2Doo2hxD!wU$dOuAsGa=O?F@f0oGq?KWCfgN0xMSy$_p>B9D` zg-+W0-Ed9i%IMZ~y=n}ehC|d)b8u!;mS!iMB;eN25^cxaPz** ze&%IMK7uL5jmKieL*0M-H~q&SKgy7yv&hVy@D(kiZiF^T&#mg8M98IZisG^E+N+oQ zyr7)19kF)spr79jU}`iwlg(W%T$&t_J=CwIRcMAI7((UHM9NwfT4J%K#z!?&;*|FIp6=t zZ=iGk>o0U@ClviZKK!ji$I!+vjh; zULIYOPe=H|iP(fK)1IA4qSsqkc&Scl0hdie+ta2){>OyDWh!kI`(k2QC@PBv4y2Zr1c7td}2gTp(*Pb`x$F=wrLNGt`z*-LMzahdOah zx3}N9fJr)=4oAg5>iUSmX7aQa#B8(u;?-cIyCPy5mhPo;ThW^jv=@JNx(KLHE!8WH zR5gI7Yx&*y&&B5%DhSX&)FKa#ZAK3y+wouIt!Y(DBz~Pd9qk*|c+ACrJU=6^PS<7S z_IMD-=LXYRIPCU|Rh!6U0z4(?GTy4d=+L>wTIBm7vph3OX-%X3PKL6s7oJ8>kW}L< zuT-MW3h%K1`nF}jP0?VosTlqyBwRU@lR zP8#Kk??bK@0qN-$Po+TG>KOP*>8_>0_Ur&X8wCL2J6-J}!0q%9R$hdE8n9Zt|! zN2qIHteFUpsC;+|CB2k$GI*s7u|oDh!RzDA(egd9K}Ua04p9Z*CrpZn@R!ku`epc8o|Bcc#=Ml zYus9kwS_$+$lQmfLxFVO`_xyM=$D>-q4EHR+=hCCDa{5DC*z8l`g|(AUf-WUr~NYp`4Q5sggc@RU@u zen2E!rXCw?@Fh`5Dyq&lkWS9)Cf={IP$1I9GSAB5N`v zK@I{Sn72mv+^OXU<(=?m%m`|vGmkY}*FcMo;*xXfQM6r4`5-KticZmfto0wtDBY@W zjyr?w$;zvu;(!w5t#PY!!YrW)0P(&+OxoT>0kd+{2&B6vUTp8V^0kavD<0~# z2qO7r*B!rQ@)A%ReXHmFpuXbULB*058Y+6~t`LkRC3+x-Zv26F$7J+yzme)WKflF4 zdKL4X@>EeCvQ%rS+wtJ*TvlhcN?Y4w5_dihkII>l+x@DcII9KKMWu{=+1-k9Tsws; zb&y9Kn{9?wWh&`#|3E7jQg-1^P^OVL=v9=XP@2!=7ATg~Ml4Xgo*CUc2fnKsuAmJq zO1x)Hb*9>s{>;ww&#^V&4Yb*$=ZN$u$!fFY9fKyT!1$!eow*Ls1HaPj5I&_B?C$$? z&s#?HGz;v*X`K!yqavwKcWXoCynH!;RB@RO_t1_$&C`U4M{1MI+38xc^;$#s{vR~& zZ~^(G&P?kwM31|5YaPYN&-G<5Ut8TBoh1B`!OU5Nu|fX^itHueMF$V!r1$>=2TFN6 zMBGZMhr+vUb5)@4JO3F_+uj^4N}V-_yJzdT*yv`TXwP7ctNz#ajp{s%RCvgsXP{{jmyC}+7EWWh-kDxp$w;?_Dpf_nBu=tz5MFpsV}oleYLY$i_?gQ;<_7aueE7g+`th7Op$tv zo#jjxO>?fG+s7Q=W#P99Hh1XdD%DL<#8gxH5W&mcVOxYQxRV)zTkMAREpaqv>%aaV z=|&}X?nQO$>=!;+6HJpl#nb=Cw0nU2)1>QtR(Vo~QY0KxT&QmznVE;Q@n61^P zOT6q1jyNoaOsNo+Y)tUq{lV{kZS&3qI>30sMLsUN0{D*OL-+e$7}f3uppgc;SrJO? zr-;X<`X8<|OuBHAFTb6w9UMpe`898hI6HT~$9>1E5ML_StWLSlZWn!_M|4#yRgAjd zYW&K(4eQ2B+Mv$z_$JWDyutk!Ebm|}<3IxKbN(={qWCoSGfJ9h|L5hk;Y5yszcw2l znuM)E09M+qZXHoFzCcn7z6PV<|LbL+q0qLHx@LkAo?5 z?qwQ2+e$ra8b7WVV_2i+Pp6vU z+v&b>6M9`kQ~+L}cdQ^`Fi~{p9*!yQ9A>gm5gg|;O=5`O51aNS>~?%twbSE#GH^-^ zKa7vhi?NhfWJ`mtQUu0HJMW)YpWk=E%B(=MkwvFib`PC{nS6nrfz(iAx%8ty?@9X2 zro3fQ@Y%CH;X)_4G7&oT;7I7wKmgRC&NT@%B_E6zB4g7l`rRB0NWeVY+JPSQV)!ge z>OFhRr7mSDX;t!|MIS%n)3FWjuv<+2{LNu4k=+-u=Qv|NoeQosh;|}l&I1@hW=#}L4>@UOuZZe3NR>3x z)BRqvhmPDR9}LYQxghE;pE*d z!Oeb*x^2QJ1oh~5Gr0pX`78qclqZ;+gaUTa0vPL~aAQIxiIoLPL2r7JLY}%XDusK@ zwf2G{i6=J5#KRw4P8O#M+6M=YxGuq{+z3fkiVm46cR;02*Kg0$6D#4>Y6Spx0yEZ~ z&P!&CqwaV_xnYLXNhC5?(D(g(?{DDwL4;C?dvjrlj?(Ux$vRQ22zUmVEKcgD4vFjg zKm$g@-mB>bGwBnyrt7~VjrO}aqL*v55MX0t$V)~h7H-$PLA%Z9)5iPRR8IgH-;>q5 zboGwx|BdVmd%RS6F=MXbQvbLNyRo3t=IAT3qCj<(JBmQE2h#FB-`P_x6IOY(_h~oW zVLp?7^Adb%^R2o%o{G^y##?SRVG=00GW1*rZ6IBNR?0X^nSd4HMRk(f{Os?j|oJzcL(%d7PNj&Bv$$1-kKjJcP}LdNTlLYSyI5 ze}Q65*S93Y`xEVhBoEqbMnk`okZ}6N*)6`T+x0S>6B-D=tD=#__K9<8+ujF4+PDBT zxgIUC`dF-1ZVIF+dYzghY^d;g-S+0M1=>9KfSR8u+!R>tFQX(x?kn+fAu1QQV~Eh{6#7Y0~>{aru$oHrUjw%DfuW1 zm~WplQWmNad-~)Kmf16OZb^7EqH~8FxWWDFWQfWVS3X~?5khCblyUw-4LQ(W`ckQQ zn4s&ugZ9xgcDh7+4fNIVa3Yx>!ii|pz@C)H#&mZWzzQqnE(zl39L&&J(J1*S`!peb z)Li2>R9EwD-(C*TvOv{AV%&JSfbqbOGZ?4+qeUYj0NyD8aIl?6N~`2LqQbA0S<0;% z*xZhHKdD4n%UJzqMgrgUodct&ST1Qscgl#5>psU9T>6zMsb0tS8Jz-_Z9y&$6Pre1 z)4xc-Zw#`_0d*7JhO?3L@oFeTDgj4<^iqV{2(r-q@Tow+g%YY1tw;l3lHjyON zpXPs)5a@0K&84$iouXaR5u-8X%tJkQmDvTB_k*bF84bxFu|!0EaB0L2d~JQWt5*Dg zNwbzCD}9F!qm6~s1<3Ty8;hPq>`?st_JN;{oraH`-sLHyMU8UmOR zg0{L)EXIBS=P&D-rK#p*eCi zI2<&RbMf?vPc==jvflXEeUx9CT0uWhyIsf1pXi%TZx@qEr1goHgvdm2Fv7hjept7p z?Nz!lWOS5Cw^52gqc*$J0PasXfUS>bl705vHeK{t|5d#m06AZWq+%%%I&2ThgASzd zd90x|4>~_xq$T!4cT6G;icxQnceHyyH#u!nkQ`2zNrL>sJf{Tw;nUn2OrqK{9Z_gBtyb~@?H8J2^*2d(|sTV^}qPk`1Rv%F`bSleci85$~`szptSefsB-u7 z58?R(F$aabVJ@OoE^up zx*J3~q&uWRy1To(zQL}u-*fi)&i=PAmTS(r=7?w9&m999J_0EcV7)5mR&V3oLfW0z zTckK3W^w#Y-lbiXdqCiHhjMwnoeZtPH1Y78?C-;!3X@1O2$+#v>8L}GWF(P^5q2yU zMo_(8_k1^;mG=rbo67}W@XiCMETA-rCU1N}>2@xPJ9*bx2dS`tzBEJ5RjA3VTd-ufgvT>2e#rN_zt5x0#4pls_43Auxq?nc^Yr;Vd0 z`NfTkD0q1#0beaE-nH#a*eGtXM7ujC^3^&SS|s-i3t4VZjVDwB%CB;++$TW?p-$~O zIV0W5Bsq6n*yviPgV$?4(P*lYdLwB<Se-2Ro$c7=i~ z6^a8#ZPj-)pCl26`(+p&DFW0k!vYVtE6+kN$Rf(w5okHqgDq?F%lGx>(lOYV2a>pU z-k`ZFH}~L32O89<)hgSm?qf43|010OHnf{aOF3=$-1L-${T1ree*H1dB^8h@+q8d* zzK$azUoihBHY2SzZ~m&O{zcH`!^t}Rv2^_O>xa`VrAIWll5BruFcpCI{Za@!l+GaE zb0tEGI=Sz(lh`XHxW1sEoq>cu=ZOC^qGdcXcBrRk_iFZFgckxuzKW3J!8~7jko@jR z*^4${+>X}+m460vGIntO>qHltt&-VrpS^NbCRWhIlK3p$yrqoD<1L{E@gp? z4%#Z(>GqhkYD~9%@x6z!`fYwsQ{PUgQLHte*~2`cpU#e2p>8i7bE*BsKA+KXuFRIA zr2-??WSKUw44uk`rZXX>YRqzXISI1seFjVb=iivD)Vzx9ISD;|)2f`W8UM>mHkB(; zpaK|V%U!xie@i{PimLa?e2A(C4hj-NTr+aKv??7r;kMq7G$0z?V;)^AvJ>%$d&oOy zXJWBW&;85RyDX?JjCpOnc@V3&^Cn0HYan+dd07?n{3?K}^|}i4q@W_rxAYe+t3gpN zThGZt)W`JqO&`T{xwOK~Rq_vzoYh&zy@VVw0IruP!l$H6b5~6VqDfnpYO$9WI(WKf zQ8Z&}^}Iw?PlPZgl=|Fx(8g2g|FNjbMwgyb&Ar%pn8O2p5&k zu^+}iL0O-iz(qc^RM^&9&}I7+FVG3OCr}tubv@kyEXhH0V?awW~LmE^@2TQ`X7(@6R116z|%?<%7ZdginnTxF>hp!joI;9@)veM5}rF5~Vu zQgcracD$gmAa|N}j4E2_r5?^!etj_$m{fmqM@^+_Mz7#d+=r!*laL;ciTguU{*Tr?o5Y=$~@*e>2o zE4eOM{s&=+dzu2Y97hSkZo8mrA5iO?G~U*={jz_S=P z-{kgw`J_>&aP|BAy8WAW-~D>7gq3-N^7 zq|wnAg5B1SC+3{6?mbU;)@0BSzK`(MKyqrg-ensdnRXN=P27U5+Tt^TRqy)VmYV2J zJ;Sg#QS}F{tr2;FH3V#n>bW1coXu!nUoWrw1AVEE8BcDOCv%GhXt@oT_4F$6C_iU~ zLLGL-Ek$N+L19r8epr=aq{b!>#!_n}ITbi8wUVG2WOPomwoUaTjxnvWoR4}wT1O_2MlGC3i}W-yE;QI(QIbZ{Y3fd=|#?IyCN#tiWcmd z;eF2t*h|{)4CE2b)LAWlzV%tFA#53I#$d*F#(BM#Ogw$DBvtu3?h4t=7TR6q~BoM?_2p;CH+B(dksLD~v^EF%IrFM<1A2^ghhk*xXfKUK~gQ8g^E> zY51=t5uOecoU^!%MWMTQZ2?%X>|cBRX19K@P!+8s7l%|xJNtTfuDqjbA$L%V7CUR^ zhXuLpwL!rb3SqxP`_nG#Qfa&99OROiWUdeB$()U;14;ZcJWiI2&z`=0a`@zli%{&u^#^l`)+OWN3yQ_0gxGH zjpQO9-4*Ipg<&DQ_RB^v>U?T6>-_*6?Gb=ShiOmqo)1dD59|rE2?%w2ak(!>Sm)@m zBad1BO&WVJJ(3F9mJ5HJ5vO;4VPHE3y?5nHuAp~)g~f*WPjs_<<-BI&r3JpB7NZjS zJYb#o%5D7Zc|UdA>QI7efZO{D3mkn8TYcgLZe!k+fSbsRFSKfo3_a1iyYoMS1-O?x zBRVgh@e0zMHM+10n!TWBnEQd|%x*ROvG?_tR+Ly7=bUhY`Hqc3O*V=O{C8c8o=MmY z3WAfCX1(iU?p~iCYChz=zj>dv+(Z-I%TuxCca-Tz+#FPS2IbZ@4SKYGHtm$Rw@X)F zk703`6FCYEHOxjR^@rQ%%7f0IbC0I}^b+{$B9ub9vk3QojFQ0YWN?fx2V2!vJ&)vu zYP8Ay3c|8Qu?K1OzWIL7ozZqMlT52C;(V&s_*oT7itH@@HREU6`SE)!mfeGe(34xW zhpX+mHQL){MB+)4@2Wo#^@y-&wFTi&2(cU8Mo_O+^w8MNUMa=1Q1~yb28zF-99poM ztez5r1f@z}P%IS?dYWFqRsZxuh-oyE<7TMEH8V4 zF9VCCgUW!bpKg|oxYj%TY^nCAlwlD1Ti_U_fl4{MWW@XpCiS%BHR0+)?A>OoO;!A( zDzR6RdFyQsyRcb^B=zMQY|EJJqc-)B>cBjsxv$sN6Hreb-SpY?o8KnJE2rpDA30jj zyrT>D*FN7Ii(Ta4w1|;0aU@Evt1DjI6xgFt6SBu=^f6pG0u|+R){dEwyq5 zrU8aV!N*ecS+r&f)Tp}#S4X2NS=+g{6f#T(8O2qvmFk@pfCqSj$X9x;s?sEGw-f^O z1cp8bHrSh6%pMnBr;pU=WtC}!`dF+$U=77i9FnxJ6hHJyfzwYDIEy(4+ReK+ zg$ZMX>iWb_>U;YzY>^S%otM7f1Jbc%w03k}Yg^*|2$o)fW_xiZtk#<1hQ@<~mI%AzcCuvjo!>J0NJ$Q311TM< z$D^UUYle0GdkVsbO2ZDs@(6=n8WiHT-&n8W{rG4?0TWOVdS%D;?p4I|)+`=DR7^asJZBYa9} z>cC)YxC5bA(!j-Gv6)ov;?1bl$hwtZzeh<_(vjN=E0&Zn^_pV#_1E#jg%<@u*vC0< zLvi}o&!M5IjXs+K?PLv)q6eQxGX4ZoN`yXW{@ZjJVGm$(-&dCg0{IjypP)vV^u@I?7!8L) zo;-$3h~=$rYzGAg=r+`reKi|Mf~^2Fe4ick&pHjCpA1%~E|~gN@{{o=<;uhxbg9KM z>|Gg|Tpf>9C{!1fx?wBmcB6}Rl*fNrL**16mj=x7jP`Z&ff+yYx!Vs;5pjaAQ+VSK zMSe)`p7W`7*>i52#Lo)N=x1ztzhMWFxr&yQj=`m+k@VDcL;Qz{oL(*H`wxc&;9MGS zL7V!L*5<9~tNPmrHeKA~lF4z#iS4u7q9+1hA(?)N6D-lNLSZ@I}hbmQb_=b`%FZkG0B_+|=DK#H9vIw;}YN=Pqw#(nhF(-~Ev zX-$Lh&%XF!F+o9VK9<9`bYF7AnSz0eSt77-E#PJfY0}Z}zvMe2{1TIP7~9Dyumj}# zfd2@wov@u=VmiIlolQ2(-izo>J)px|2gszGlg1{(Ad8a;i{!fO&&H%AZDy0zpTDFp zXHx{6u(dV~;H`nv*=^9Yc!r$k;^m>aI>$Z9ZU6$twBcO$61HJfd9|y6C`>X{Ws5+e zi%w^GmA#s>PdA{h3il3gEWMuOVJ6bfuQPo1t5Sj=YK{^! zg(tu441~hjtKPK`toyOQ692(2U_P!IkX^%NWVj}UjK{OCT z`$uyF3O7<8WF*OQ=6O{i{;1njM18(_bck}D>NB?P1zvKR+X0cyfE_3pZNL&MW;w4r z5pjC6=xmQ|aN7R0TwLRZFZWCjofj)0c}+rIJUC_ZOe#PN;S*gCa{x~f46MD^#EcJpz_ z$nVRp{ZY)m3FI9Y$#dMuK=?DJQPBcA7dX1wtv%PVsRa|u`#UI)kp zu5^>-?|;NX&L=pBuyNO-tLf@y zYyD6gHV|XfDN9oS-~c4!D;LtZ!1fbvuGVwN`M@?t+;-|9-pDeu*KQfjk-{~A@ zm-r|!7su5iB_gNOs8vK5OMEx9oc)vkE)&QLe!{RmCZYix^cabo;aL3BcA2_*^=rKI z?5CvII4-Zp4JqJWxNw6We!?)(6wmLGVcmz98zT%u?Gtl2Wgeq_yQw{MK(`)QhD6CoBS5V zP|2)1df39y(;L~ zZ_Md|&ZIBipNMCom{6E?0^6nZ>pV_aisg<{O>E;dBWpBsAFi=3D2IL0)f{ zdENIqcWHrQKt;f`aOBbLOeIfM3&BRI#u^o85L%s;h}V9SjQc!Y7wWmT)dP1ba&ql3 zBn4Co--oanx&ld~hbX}VM+*eBGQHH43a16nmFFx}pF8tWtu&hwOt9=hrIa=riywb=UTIyQLj`A&$j(7aVmETt+aiP%A>fQ)^24xTi_Bk=oWX)$U5_~ z*=g;XUZs)@>3u9?(voX?7ovKqTE0dnHFA5@98V?g&SiSB^sK32$6fn))xe%wt=E1k z@U~JW^MEm*FDn$o)7J6!awgz$-xO?&O}AQ^54Wh3xuU`Dj>Bt3C%!LVLWH?5?8lf~ z#)rF5w2#t{3Tt3;>3Ow1UE}MjHg9sGtMJ_()=^`n{2jvt@jRb?i(ZDZOQK{#uPLq1 z6a@-6Pqs=s4D7>H^Lsn6;BG>IBo{@T8J!xhX>$RNqLhud{d=9)_b38+waHsIO$?!# z*$r;7XUrujo$s>Q3$+f3C)?h8o)l}nY*OP7-J~`hr;Fd(FQlb&HzKq`OuEH5O!7;E zfqY6h(FKUWSC4vmIpj0T9p1}pma%NwTOE(}y7xqt+lmukY8d7~6rqjVpyEX;*ZF}! zQ4;xb^-W)kXtT4L@J+KzGdc$_2S`fJ?>p4i*=9{urN3a_hjnJ8)yN^s^?lgYc{raA zwM&a64(~ZY_M)0n-*t@2Z8#~le%PNEphwjIF$^5MuEqLYe8ZtV_8xuSHd>e^3TM)o zn;tUf$cgL;c%k**<@i#iHgU_EUOe5o$t}Dv&06c>3C*7_UriYeKa)yt!)@xb$rCMFWqduJPP*6y0*xA zl|ovDB?O2LnXrpMyq{3us5EK7QrmL6WsNxj9Pym3ajBB5_*j`S98rwGTU)((IQ}+? zFpA4uMH7DKO}b4`8g?(HpNH1 z+EcEuw)2A<+29Zxjf$V*)n?wI;qJN}AnPX}z|EJ%IKPB5Akolb?LCx;+97&`?P9Zm z`DitTn38I(ZRc@*+5FzGp{goWGIDJd!KYReMMy201cq)Pt~*SZca*B#v)&JfUNyX9 zp{S><(kPdx!sSGDAXBR<{LyLO=QSMd%|{sc^*B@$-?BK*@B9_^alFO>wO0@Q*oC$9 zHHwVyI4UQF+Sya#w7DnEdAf-Al}HQ|sT@bw-aBo53tz;Bv(^AwH8IWRBz7w(&_Wrj zb_51YnWDSc+IpJp0Z2qLPrrcp-%L(iJm&Z9Bt+4_>IMak>I#Vy$hVOl-VtiQj4ia# zt||tJ<%)@wjjEm8j1m(Wh1abP;a{F*_bRV1*Jx33>$z@fZ@HBKgaE)juY5% zv(&FOUI%47H+Ejk3bz1!^UEiLoSr?vs4rVj)rY@d9~j)4l!mq<&J6wKZN%98p0>1X z--oU7{&gkJMD!jIL>M8tYj1@6&`uOvM_j&hib=_=pPky+232S|>UL_TTU7p4>o5Vi z43p^mu5jzviUTh%xwUqKAn5SebJ~0iKd?klAiUTG9+5ELvBgW+Fqt?P(ORv{g8c|vVI_yQj`=*b&%>jpC$9fr}#(_5WcIK z$?3Sw9bA~MpB`9mo;qOi-rb&!^0h@fVM}Zn&u?^J1TN0r_iyZOIsppaWePIV2_v%~ z^0u%DgmWR?E8&-DlksgXYQ0asu%@ahn9o#ZKNo*0RFe80;Z0NmyM+;J@N4sTd{BOy zwo4v?VEh~nlkGQc`$$|e7>XM4Xa`LqmDqP6dBqOwy_5(qr~tW**kuzm7Md`pw+RBn zM>AMMW6{T3C#4-DL;P+V%RP>KqsVQWB(1ITEV|a~{aWp<{O$sEBa%mZod%2YW1rOs zNwP98x^|a^4@P>Oq_mIi(rY);%dWEJmPY7p*ae2*ha6Wc_g%XfICw^Sa1x6YQ#={dYT}x zr-tSmH_My@8}b9bhx?miG4y-M88Yu;_YPVwGz!;wxRZw zYV_vG-U-*YWBVU>JI9m9N(C1+W$kX0yYchiBlqf+yb<^}2@xi{P{`;Cy!f#6A(o|V z*RIdry4h#T1g&h}v62{;J7^p#Yz3qA2CsNXy3n+Phs-(5ti#kP5`4cA! zc^!TUY5949qk1mKTffX*XX154TMFmvtDQWz0NMk(q9o#F=i@t4&MGf8m+EWlb#qrC zLdGsJ%cR9}uavyt*Pdw;QooQfxWlvzbNK{qDZH1Ce4jj{lKB|RYRb+QHeb2)nqP50 zhYg(=Lvo64j%;E`M=y{HK8lYn>-Dpd)o{j_ez+b9f1JT^GXT;iOJ+SC4HXnTmamyu zZ(`;*x895GR>fNDTRCOx&UVk}&Iq{)nMwfwPlqus<5%OkX@828JUZReSR;y)8tG*S3;@}g7P9#wI0Nt zydMxINrN$0EtUdi-X^`nD)|$xGMFguY8nGpyyhxm76(WwTtTAR{>Z!5;-%SDf?Iir z`vqn+@`9bk3rw;wn7@UAyFY`m%&!-+HIaXC6)wr}7r?*l_PiLF*d75t-9M z2;XkucVbS)_EcnZzJa`@&}YhqWfoR{l3$xz|C?IMEEg9ad^`NksNdI;R_$VKC&4tI z;>E2I%J)PBE!|!NJr|2DsW5uJk76rtXt#3Q*|UZlGC_#*_u1jZrZQ?IG@k133oFrBLb zaU?9s=u(AkfLa>Q*7H%II%_kRveyr5E2##lFte^6Sq&psjws6yVWrMJtRVHB`AkBJ}jqmQvs(Td+%AA?Pi<+tXa&wivGFuTyUMkw&F9 zy4Au4C!9PzR{hDKReA5m)BJlIQM^YAza-!i*R#cwc-Lb%e5~32}#$MZK;s5%O43%U4O;pOb^*P=7-fp zFcH7&soqbLjeU8j5*VN2x#vH&6@b_KZF~rUNoezY!;RVUTN|lpcJhTP%Z@Kr4}4Hf z#C$oF-nx=5qxJBIB8*ErR38x*64-6-&QiZ6rK6%kVZ%J~SNo&njSz$vn?y;vJPftk z{3CX4#^{y}qF`;meNN{!jJ8S+EI|4ruHM!kLUh;ZV8L!<`y`f;cUu_vXqW165eJk1 zQ_}jP1qrIH04!t{1o6}$6qAA~M0sqR|3`4;{}vn${z8I_acQ|P>cfojGU5OKNkMoR z3@9=~xX6&thW`qx|1V#y2R?aYOs3`czb+q#ii*Y)r|gF*0{=h0^cEczZH5tJitL}B zUGQ)Jy2bBf&}2&%Sr+bpxw*fdb1@ct(lfpb`)?EeAMXO55=Iy<^8IV(zdg^Q4b)Pr ze>OZC*)QPkeU~h5%V)cEJB3NFshsKDaPu@xBrpPZ$NO%jGmd%d-WSe0`BN6-f82YC zv>;vSUd9)~zwWg;R#^XTI@^Qp$_&8XfjBc$`NLR6eo4dSgike7Qr{@sM5P>S@bRlkbnNsTUh@z?kI}EDnU^4 z<^vV?+sW6N@IZLY<_WjjSv^F)8BxCR&2cUOIZ~t25Ub-8ek>3QZZW0oV*bZqf}w;& zD}|0M%A)_{;Yd&s{GQ@{op16wcm=1nvgIf2k0^F9-!PJoE$uW?#yR;jBzJhG!Ubt* zP~%Y9bKN~Dd&^Q__&r59m%RM#{UN}H-vW8R9EhE_#T`s8tHYQu$SG6$+Z%rTt-K#F zA?>J+Q@>ktY5e|Fm(SsWg?ys5PSb0z`MMUbn~VLl_F#0)q-m!G4+$;y;!L-y;`d3R z8*&O;iWGFq`q?0M&Hi|jR4SPpi*U9nbbp~n9A#fOx70{ny zj(6)DOsgoW@vO#gt8f#hzOV6PQp(^89O+Cg@)<+*C$jni!KV->aZ+0*T-CQXEw?|H zmfHL?$7o}4ZyA&LB(EBd@ovr{0-kLTM~9lm;Z%F4(pvMM9_`Z&aoOFh8?VF81Dud~ zl3s&%@HL`UcOO=#dZ66*dxfT0#>*H&1__h?IP+1D!F?S%WV`G;bpjIFzXsZ0QxgNc zKv|~M+&|`p_o7^yMx^*?g`LQAR%^0sso!E%q!+x1gV}AgjTBCOZ=4icVUF??B4eUh zojkeUpE@OQc_3!XCQg&-Mp1v!csE~dO`%h3AOD=)S_p)gP}m&ciPr;+S~2s<*}L{G z<|sZ>{scZJexY_C^vOem!$8@eyTiXb@OsDuO{O>gJ!3Bo+u`j65q3)&$4I53s9$;R zQeW>Bo35&q-~#+75r`5HujsB{WNcRt#L%i1<(SZGo-Eu$!%>T$Zh9gk;Iq?tob+>4 zn6II0mYeVy_ou|xUhIl+eK5(r_i(!kKIjREV>bM(1{nX&Zv-@(JTXqpC#$(w$2&z9 zWs|un*xrqX9b-{TdEMH@kYFbA;DdV*7lA`b!=jzA)dAU;-i=r1_?k_Q{&GJvrPU|Y zzNvo#u`g0y{O(p|C~Z9?&CEIfiM=03Kdf~ zNC15lp~TSQyr7r0YKuNMN^bmX?f=)R-3Qa2926gLi~YycL+wMrq}vn&GCGpWkK)x2 zi;!518sVTRD}(x#n9sFud<+#!DYst+c%N-Jvzd<>Q5w0200*^JpUjA`03P+yXsN=N{*TCk5L`>B7sl!hj8H5 z`cghsS}ml*tP&+X*)9{!J3hTx@;Dulw?i;2%WX?q;3nNhS21Ad zwAjB1QUMCf9WZqzTsHdkx|&k???SP!=nRP3#KYFv;d>8onKSA}JuOX0@c(mXBt{4d zqL&r=W1(rr5!E02{$qC=nt@(C{JAu+txd=0uvWYkeHm6x4Q#)W(lndLdA2#;Nf`iY zS2|?VbX#=vk3xu840y0HPz9B9^SYgf(KnyDUfXYN9!Jw++m##u4Q2Z7RGDVbB#4(A z4?H^V`jTl`NXVeA?s~TUqk~_*P$p@YwsPn6p3^ObB}=|oZBDmUt%4pB9|0r*hQZzm z!y>6?xjo!NO9AM(^cnUN*nmXSlwT^n>5F3y^RP4Qbd+unAQ72y)==B%^U?QXgXd5CM-{Dv9*EAfA>2>39f?Uj&X?0;?;@I^4#bjRta zQUtrhHGC@6dNKNJbrusu<`a#qbwPqPEA7Gk*wf=15V2&Htus{zyK<=UG%8a3?J;Z& z+CJ}=xD>MvsKt)odKNg6TJw8ckCJKabW`g!dA8k%1UxlH8;qnqSkRI)yc9<$Bo)3C z2*hF3o94URNcGG(Xbjy9ghj4)If=0&aDU(C@H*ghYcpHw0OVSq?lyGcxPkQOe7d`gy2OCGqamSmXl}}|vxvmf{;~7S zkuTYQl_4a5Y@E&5-tw&UQ`59Ff0Y^D`eOR`v+>H6Va1#vj=CYYKdXT2_`4(~x#G{K zjr+{VMBFk6%bhC-&-(p4+kKR%Zmx&fZJgeIsW;xSNkVpi&4V}*mAY@PLc)}+hkG^$mhnJ>HWyN-mu)|!!BqV|9lg`ZhnSRkfp>?tK6;ycb)H6) zli}CgPV1b{2zdo1jA++oqY25I+I^f6#e^e0IL0Exz#4MjrTu)pF4-J7~dY< zbaj42o$pP_+056c|4J7bp{0m(+#dG5zuF+?XH}m9=2$+e#oAI645@6lIuWT%@u~$C zNy=ypBr>|BmS110)I!nga>lx2_Z!Eep@tp^I12)WA;+>v0icjWYPl}ddVX1H@VJRF z=}(bxyV&PgUJC3PGQ7JByr{R{qn#o9`Y9Up%N2mbKmGY^;}-2|D#(v~zd?W5-Qh1r zr}D&Mcz-=N^3d4C1=*E2=3DIS72?qIj)%)3XmS2S$@zSFFLLv_>rc_|8iM7Bc-q&5 zYLRdl(`lk<6xU_&%tqGf2`;ABPOvfFBNI(V90o3e%{ZCgBfzWfL=V{bZ++bM<8)ic zO;1^5R@SO_2;ubq{QLpDo8MJ*4MY$Y?P5=FS<_X=$ znNS?u84N0^Z?h?)IpBGRKue7fR|D6qcG@!xdNuIhU%v1nx%VKM;bR)qV*sK+wC&1I z*|w0r!GVWg0Yl`0=mkHpZ|FX36?iESce++rUws5y2Nxz@pWT^_d*499mMj2KGXYe3 zQGquKw4V((p_;8Bd&6tJz;AAlU%G~rX|3;zZ=lD4f@;vT@bFkG0e4AgnaSXexqUDd zjGrJA)uI_VGo=<`%KzK)2Kn2f)(P*9?L-DR1%~;lpnt2G^m<~y!EEX{8heJIQ1sI^ zw8P%4cik6<2;T9zObC>y7$@AAs_b!fV zHbpCKDU)A-eDz^`7Q)~YaE%x%P}nOEorFE!$ZYjTbd_m$#6i3@AhSQ14yIA1mcV1F zWA~16;4fMKiFydE9EJg`Rp11d=%BX4SFC1G>$xKSITk-MR5pb(2GnViC+m!>w?K~d z`eb7uORwry+;rd;ZPobe)Bh|H{u;B*u~H;&ZRwnE91C4CNH4#Prc16ovA=4?3qd7? zl6SPf7+0AF{_kbH$Rd}Ynm|3jxmhpDE$y*Bk_PFq)ziUxy4gZMeKbQ!j$B||dUu~} zaa;9%%FqY4fGdoEKaNRgEcL?rSN2J6w7O37Ic>o79p5Y$gK z?l^v)@$;vz(4t%)Yjtc5W@?S;i|q=4ZM( zKTvK3r!^meh_few{wJpR##`grnP0*)xxL*`P0!{*j%c{AGf(B66liX;437&eI$>gD zq|djkOvqZ)=xp6dAn&K=$Ua9OAl|UuSjRFS&-yaIXCLes8a!S}-J%H>G@(?VtJH_f zd`kHpm_byTRUp~6euLV1Qzb`l?L`e2XF3?uK_&&xF=6My$Ll?3dC<@fu$3@uI0!Qm6!5ZEisb<=pbq4AEd2m-ibP=pCVob5DR8Vpv(Z zTn;)MIu=ujDk68ti1Js2-LletJ?u-MH%^L>%Tnre1nNbV@2cetof@mzren8#WCI)p7<>?O$9{%1fwIen)ZrGe$8Dvwgw@VlPE)IWY(#kzSIU^ zl`Zpj%+QW*4w`aLw}urn{1B*(6T+fsWGO>#J>EWNHRp_l#_&m>1yOlfAnFZw;|q-y zWoA+|tx6iv9C!Jc8(4qe^-Tsp9;J{J*et7U>4w7z`27N&;t6#t=42+-oP2nW8cquA zN@Efp!?;Rx2NTE{9k#|p6WGqMf|AD&0N$MxzU|TC(?K)GdwVfa-t;tmo)hiN=whJo zyGH|Ql3q?hO?4mYl|v9Z1>)J(ShDN+zQmB%ZG6BdT(P^GGnVZ~`c-?ox>}L2=zs0ZIO*k8(|GADk`l`5um2o>8H)LV5VAQOfE zu2;;STkg81n9{cs3nQsAmzDm&=OxDu5}RScBlsj^@^tb|26| zS72iB%mTSXD#jSHM68^$!g}xhG!S_Ar<_P?1G8$j2KTcNlop%Y2DgiWB$$T)@H>AP zO!44tSxDw_a&fEpreJnFYWB)3grium*4_WkZlfoD?scYJ+clm3zDneAgV%#@jUe7@ zz@Pbi>~gcR~VGBq%z}qZQyWSgR$J)B4Q5? zAGIzg*jDrP{;dILXLWm0$(J!Bo(-9@f>E8Rh361eL<(dQIb=dV09pn)dlgD%B+6 zbKFVoa9A4BI)12^Qn45Y&H^?`nT= zB2V)dG})!R(*g_oa(xl-*|);@;Y#!PQcxgt&6`%*S^Y$Y#S@wI7%c%I}joY#8P%43ZbRX-2Z8 zML?WuCQt-_sk)E}6?sq@Ur#{>y@np)IyqpTRQJ|#!e?*1NZDSSF7xG){k)IZx@-lo zsd&y^-PFMzlm|M>m6JJY{O*TX7o^7``eMJNZymGcP#H-`CBiNJ*wc9gKVyq}jPg)! zisGTlC3Ck)-z}VMFkbp`i!8V7bx$fG6$-@+Crh(YwQ8oG}oOOAj<|}gh(@h8@H+7d8#DpKZWO6$|ux*tX z6Gdx^%&=3{gB8*v?DHSx)4!lvcy<{6#GpH%jvl&$Lm}|_Xd85RzNdu*Ild&suz#x{ zi|BIN#b4{b#S&WTbTDT`+;K$aa_#h|7r;tq`Rk=I2@9LhPYgw(A(+7_v=>i7T>Hs~ z_Jhvw6L$Dcn|aSN=W`6^&+KvjGHPY;cq}jtm+Hja{Mkx9gfp3<%sDQN zJ+s{*7l+chbAtS==Lf%yj5DlERK8{eMlz{ zBRL@dYV*<+!MjRoEyOiCw!|_Z5&3fVT=d;o8Jwg_Of}c?@E%{56lL;vWcs3naxxqs1N+D|~ zN2z|B!exOBX!Sj)S9U}yQJdx|?ZX;E0If6nxgZugP~n zBF#(YOPfbigVO%-h|i?jb=oluIxSZD!1GL;O&HP z8}swUW62s(_y+7)E6n{-ba!Mp3rkj~9TLHwPCDjX-?EP#INxJS|J`Nv%Myyf8qPT@R zr&Oxq_N?#v&q2EYdurw9r?&eh13rd7!O4HxwcM?tNXf*4xAKE()W25r5P|@OT%9n& zS3~+j&#B}Huw(aX_Da;yWyW#D5WG=)_F$_MFRyY_34XSemi!DbzMxn$#m68>5b=XY zb6&33sxVS=uN-|u&GzS*s@Fq^l;>1 zd{$0Ql(tr5|7os!FG?@wqn7$I>b{Ks^Y4$1MQQ1O7{-vKivmzZTvum$)9<7H{Pce< z?7Sh+K;KdDa#jDoe&qMVG%CEzW7CsTNAlmX#6SN2uUml<1=u3QQl#(yXLHuUK|1qo-i$w&(=1M$zW^daN$i{iNQfe^?Z=kE9XVve*qLyNDilFgGGaHq5TmF6NCfcw=Db% zVW3M}&qbr9p8sC_FX}-#Bl{~3l7}I;o*)dqr)W8QO8#qD{`u{{y#${W z!CzX2v;vtd!A8H-Dpsj~FM#i(DT zEy7Foa8>*N-1k5H4~gyLEUI>=aQNrJ^S3$^;&B#1$RlI@K5YK$=e?ULz${ukjvoD= zvk2mG7D4cGDgVz|^vE&r?p0I7`Ck`@K!qp#Xteg`@3-eINQTO<%}JyD4Wc80I0Bh~ zQ?!YgNA6&u2_flsH&B{G~?KoXprvLqsi;HGV&tEM?A{vDH zh&s_Imq7R<5f3Z@E?7e*xrA4)FB}Snr}X79{38n$IGx5L(vrG0r={EPUIs%X!%WKq zk{7kjzBVSMrFx)QgX>jD<$dKR2Ho0SJ4i;)Tjy7Hx9@rqD9Xj~-mmw`O_iIZd)%Cd z23ZOH{DC!Uvn+~`_uU-CEvBZ+CVFPaf@BKELmX6EnK-5>dM#|4&jQ394{JEC*SmOx z{O*3h-bosSlAoyae8Odh0`|PIiaD=^P>A_5PH-4p>Gl{Q$}tuG_O4oD9!VmV=2`lG zj#oMa!7QmSWLyqA)4{F&ALxXayGmCmhk@G|AC2JyE-NKqK?L4kG(8MO=c@s`RE`+` zTg35Zc7s;G(>;!bU;T+yn}dNUO+Mvhh zd@je2Cg}3uuy-!;(r1D65uF8MiXD=+VQCcW~71mxtQG z@i4Qz4jsN{BYMWq>;5jbDl>99y<0I$JWIQ;Jk9P5Sl~GT-INV6hK1cfWp3s;tIVrcM#4*{!K3SmB#)Z&{;hwL&zj zEX4&LFk`tLw&bcgr2fx>cXlvvdYa;%CWEoRbj#Zcgx`D)Yp~oGt9Y2W+CNta zIOsZ{ZO~ZTC2)WF4H_nYQ^ZyvO2i}Q($xnvJYQecus7bkUssh~grAg>s|dqoe*kEg zN1dPjeZG!rt=IAg#5xQ*jR?E9@ffQVQtFrr`kmbr#G7XyjC$^GB%3FjJ&(DvgR{l_ zR^M?64?KRa3gO3hU&(BD$+R8xY&w30y~UuE`I7Y;bbBxNkmg41Q%SWKeQP3D5eEk* z@t8#ea}WPQqk5CT1Gq=B)U)s)M#KDQT*n&e=6qUJmd={rOk*Q|JN6T{b&NkD+&L}8 ztLDQxtu@Xm96GP_`366goNhJ^#$`9TkaYVpnMLCYghMQs(Vr!g7kjHc-*--SzCFiP zY&3NrL^a?71B%1-mnYP7+TUmgxO$lsxT_jWrX5tBhi7%Nk@Wv_rF?vW;{W=1q&oiT zUlj!gLbD?lUnu0SOynS8BqA&(Z3-Y7GHi>~1^4d&pj{f(qRH9DH<2_z`GVAibTF0& z#1?4wP5j`+%;a^QHD0+#h__sfP?ibtwXGJk&sya$PvS<(1d^cg0J*^Dcu5q^53}f7 z2CZH(UMJ={_E99l#I9$HvA)k@xbqNVlUG=!7WcoWhLf*|+Lw$GrV3TU-Bde#@DNGP zWL^k^?12igC9aK34Jq*^cY@h&~a_xE|#6EGB&>OYo`4U_)OOK;X6fg0_O62f3lMSZ@BMhNslrd~6j9(1`+QL6bjB=^2)l zlSc81rNB%lk3kfE&uDpnc8g~$21a?YjfHhh@4=5^gX75OLm>#PushIx-`Rq-oi|ZBc=rayvBy4xt{}CF}^DH8`V)sfO8l~%la9OH+?Mr z2f)R1D6GM?6^_;MC{hFo`-%8SdOU1Xw!dvI2x1&vELLM4wa^#y^=}u&{;+41u!-nt z>TsM8^`3d4F6^iX^ZP57xF-Izccec&q;^+L%`)Eh=`HeM*!d5Dyk_S>I zi3Z}Fq96EPVh4TisMzQT2E#n9#07^yTrnNnPj;133ORkr(!W?%7J)+hJ49Kg50_4!{zz31?FI z;bL0I>_+K!T02OXFAAGcVkn;4)g@xaH=ZiCAeLxlF(w=>tUt=EGKpn#!lLdFJe0He-aDsto<;r?JsIz)a_*H@Q2}qS0XL zBncRgb$0hxnu8PiBJ-YkyH37E=XDcAlB5s7A5k2X4U2crUdUO_xFLkTzoP=F+6o8s zC-e%6Yyz2Ye<6H97e55FK4UMD+8n?84lgEy#<@kpK!U@dD;I^$eA`qCr`hSHnEDCo z3C!9jq6Z5v1A=u8_}%QWrCXv}Env^*`-n`$9+C0N*(p#+R^OtDvu_AH2|OUx@K z@;nLQAh{$yMTmo39A0b9+amDwU5^#Qe zj|4&BxCKSH0Jj{53M%P*Vj@?xihK-E6AY2F2~T8`P>D!~g1aGencQ5x)D4`B;41ay zCV6?mRV<4b5+#dp*TAf4uw4rRgjD+3){$T>7tJm0kbs!$7LPw{2EoAiTIH7K$K%ae z_vwNps`jdS@xKkYjW( z`l&hL!YRjI*dW8^vA~qVW*!`owg+|ZZS;4lL+AkEdl+Z)nmL|%SCOaQb~?wr5S#iq zu3$H{JP+kN$5;9ALU zxS8@=AILn8HH{x&#{M=^QXa+v?RK10Kd`aP zDQgKN1SXJ)Up$I5m<6{qoW1+&2S6d3R&?d5YluC&d(>3(2e3U3f11)bOK_h@84kuW z_isFoA04~`geh`V%v1PCn3-iux&5iYOQ^w75Xgm`;k?dmmd{P-??cd0FX^dU7878gs;-(iaxDlZp_3igWOE$C#guPxON0>Mzg zv=AYz6k3xHkkW3LTLz|$`RhP6w#lU@=Am-6zeF>{naB=xWh%P0;q zzCR}Ps$~PcH|QkB3g!57JWLD&QAsr74@g*rpH1nMIv{0cX>}q=fo)4>)XQdCKPfz) z9-nK@PiYKHi9UvspWa-4@?@O zPid@|k+ohlji@6?vH=1>7v={h-L{ZsQsIlC3`XwLwbpEK_x79(B|>1U={1$Edc^&h zc3tj=p_$J>A~LP`KH zO8{lh0{i_o;gqD|P!^L3SN>}^mriUO^a2rI4ilMBp+e?Ye&$KDE)MIvwhZnN*}7tV z!Ilzmb(v(=qer_$>Xau0H;6L<%lEGW#)sW(ShP^>AeJ}BM!zI;Z&)RO&*f-fFZ6J! z@{M#{*qezN8-c8ZLJxk?K^da-i_J=vQ9NI=k7}I<9-USTr0Ga%@^anjZ}nkLwN{0A zs`~GGA{CWDTSYnbDlx_xVq>3ih0j$B9T?MCDOIAzwFMOE6zWs#r;2B4h7}H?E2K zr$Tz_*F>5TF~>3ze^pBy&a?c8IB;lI$ru3Mkd=ykRq(vR+CJtrNy^9ok7_wLL;Z|7 z8jS!)QIgcLu8PkTdm~>h7M9hc17j=k2h|l|i$h;;y^*?N0_6EL*;sfx{Q6AViPPHF zT@(aZQyg09b?e^m4eNX}Y>rVzaJ638Jr2c8eEZj~=Wl}q2IJoNN|QEe3J*zCOC@VIFpqC3XN7XV{b=q(c*-va?WUYw(DG5rlW`VXQH7%{(| z*~65RC>7@%Hj9+=l{$Qy6JZuPZhsiC7e(zj`N^kqeTj0qh5%68>VD{oQvexYEdAy7 z3D_Pg2;aN(AYf7&hF$PJ=+<+-9DJ&q8ibw0P&b8tdwx+=GR32LkV_Q+^j#Uo-|v7! zdhp`+f6eQ6bJuu%7)*{S1xIZTOB% zdj*`+Te-JpjyOHjfl%QVhm+rLWFD;S=IhY0RFd*RdVDmc(wg->L6wS~q9^X0Rpako ztyp;pLd0rGjOE1OSn;;_=ZrFRwKk34j7`yB2T2Z)WwmUA4OUUoxoU428OVBRmGL2r zO&?t>X~Qu%95dqxIg>W=MZ>*^g--yn^Ab7Hgm_aT3;Xots+Jf{Fg)ytW7AJu0goml z)<~CcZ{Lh4mhdt2yy<2RXoAQh=4U?GFM!9; zo(VrI@E8!@R$$!KehTA*$D}eOK2}Nw^*PfEU1SSd{C2>u;Y6A}|0%tGk_1eE66q4$ z7rWt(SF~O6CzHxo7$k8;`a(P`P*>c~3Q89$9K9t34MV!1_UOG+O|6sXA`XG<{@vtu*Q^O7j~_}X z5TYURHzA8$(@}l=A0G~~Rl}!5_&lFM<+=?iQbIZGzttlMsF@O(^nRRE0I=%37dTXW zFyZXXNi&i~c^WhZ5t--pKGzw=ejUqWzQJ3!kDxLCnXtoL(095f1$MLFhME%MN@0l{ z3|CujMb=<_0EgwdvmS~X4D>TFR=v8m@dse{pV0UyHw$3EJ)LR~z#@PAV>fh>MI5g0 zJ8Mr}G;~#SuGgND@sI@C&liVi5px##X2Kh|f!noTco&qHIV_QJcr&X0IX(|$juz?a zU=i9G3VY^(KHu>74JYpO24@*C+$!();yU41fI*rsB6FV)NW zrvV7>SbETyy$=uB>T44+7mRZ)DKK%raPHggA4$lmADwV>=Wg=ugfDxFY26#xb;&}0 zwS3ANHJC=kh0qjRCP)l0$Lm8re&=Y?e5I2?Y6NNZt1M^>bql-^S4&B8x|77$SE+b_lwT13QZEb(Z& zf=aAl|Drn>5{YYu=KjtxAsrt6n|9X@^x88skly*#pizp*xA3w z^gjfL#{!V0501uZyTn1WP37%&$*KL7~;YT2_bUTt^Yx-lS&SBdmLOqan zDr}3ruqVjbOwnf+EhFIv(cA&x*n3Nw0VTg`r=6{7q+YUKAb?Acx(Ig*SBM3wBOu0A zX2!)sz>x$wH5QGtACDt8iHf%NgnWwtk8y7?E^}`8A`+aA5;_R|#>@;n?7QDzvG?HS zn`vvis-fvHNvXF*!4i>WSk)owKFILJ$?ld%}(5E8v+5UwE!8{Kn)G3ijFWp1oG9NyQr%)8VZL&K& z)*&R2iu$a(Yz6H}XkLu9d4ns5hrJkWpKRgemCkrC$hC7sg!r61lD)b&WHb4|Ij+{e z)G@`{7QDA;jX^r=35N? zz#^pn`1MO0v-A&%69W7smf!@KMHw}0jb8a%<2bZwizy%9{IqK#o*eF0%VN#qf-5PH zsb5zBhC9w`p<;Y6SD@-g8mD)Mat06(UrPWQy@9l7<6a-R3x3C1KL zgWrr)Dsr%F(1pqda5y!TLJfc-sv} zLZiZD#yjR6R8t_+w}2ET*l4@Z54zBkCNOnyVQRPvn}jh!gt(36(r%N05!2OVG95YV zf4U%9h2K-7Ky+a2K`iqPx3eja@trGC%abgT-xSApZLHP6Vn1rKYNJe@%U1|k-0jL2 zb8(ADjGk8Td4j{;pVZ=!Xaw-4KMq7D!oJs(W7X`+?R4A3^OFuIFG-dlJhejB6~(v_ z|MJlT63*;lP2qdJ_QAf-nHUWcHg(kSsSxNYjLT&u{KxM`^rJz+Wa3}n4?V20<$A#a z0eE2VV)Y_vNoBGhxw!pF$@l;@76L8UBj zN8VjZ)}!^Il~YCBe(AclzW>cCz)J4(u~(7TXJ8PRr}!%MQcg~8<=?kRy;kv{Rj#8L z_S-N@@FT+*Xb zSo5zhx!hZ7l(9ey?{qIV(az-oSDxCohs=fo^xigA^bzt`bP9ZTSl@BCgW*4)2>&tS z;i1@EYLqo^_H=mbJTifRP}kN@uq*7VzdrC;L*Arl)NfC-afO<~=`n6`v4j_jssF@d z@+fh)5}R3~QDPp#4TDFLhKEhD zZL5+wP^4@jQWXaQ>d;}w%kN06(&2!kyhhkovx|t&C7}dBy+R(+a|&Q4P1`KxPKUm2 zm<%dhfK=gk%C)&TB^m$$ZxLFQ$1r%?>=ptnH^yR+*y4J+nG}KIm$C>OL>x5k4uBk8 z9FIE;H_a}MUy z?cV12EQUp6ZAN47x$SH!g2y^v2TViW<&NMf`?8Sc=(Cbhhkebb$dMSz`W*SO$k|g-?@j*Vu>qlQxh`D+l5^R@h zy;>(#?)z^+Z-1!dk4m>1!VeeEsheK%uVDr&fw9DlcyrSI=r1>5H{CaTW2jwmR%uKc;t2eJcqz=P@2{UniL}JkwWE-`C z7RZb#HvM)Yz||(yb0JEeO)*^>%)r1)zpXD*Ahx0uV8i~kZ``*z#FgY8v81)^qYKR4 z@v=TJ|3>Iagktzw&iFx(7M?F`KruxwJ<(dP{pK)4PfO&&pS*k%1~B-Rv(s87=eTY~i5i*8mRX zf`>#)58AG(M*~bXEi~M&4LD>VQnYp0=QzwnOnOh%_Ga3 z4!;!vQuC*{M$W17a+5FV|9s+0K%%Z^1fBoc{8cBD`1P5s9L6RAyQA8*%VB*~>k1#c zp~^|f&nCOZYixp?D}+T(09v_F_uZxgV&kk(!ygj;QusP=0 zrwmg>B^LPc@kB-DOO5$ZR2wVVhwX*pm5_MNDhGtq4KP8y-CXoXo6NIlJmHt7z> z*}iX}ZO7MpL+gc(s7IyidWq@F9>A+J`|Nk#R-GH^#WUALVD^}FPziCJ0FWYTk+Ka&p&QM)OoM$ z8_Zm`>%-&?j9{dSReNA%(kmtl1n$O+2LnD#+NeorKK?@4ReQs+^9c8=UFliZgb3_n zg`9G$T{y@PAE^Z_2D~Y%zbIHRVeJa(Tb*wqH92|*Jmg`U&2$q4(jtw+nQpVkrxzfy z?4{}K;s&8uCuSx?W+tTQLBzEbh9Sk_B z3l*fbQIh*u^+?QOLF1maGJ?6V-Tnk_j&8Cu@U7DgBM8c&DQ$Ox*>lsFz?9p{gT9=i zwPfz1W_g{&Lpe6|hHNN(SRNVlY8{tiCL`{_5C%p@0>jpKs}BOzhXiU=&;qr5?pA|- zi{&$j!>)UTp|4;^31g2r2q+U|9S911)*6Tduvq__E+m&EVo%;D6Y7^nLZF3BI%-sH*KR+^zlus0a#i)QX?(-$K_5@ZFaa_}K9fs4W?*IX{LlPl zRV)v#Z=ga-0Q9PqOrk2L7rpRSQ(TwS1L7W=jQcCaDMKpz=j3rBs2?$e|DL452O5fQ zM!m0QJrNcUbHOGDIDDWGKHB3|xm0%0Gu;jpFnZD??lU0J#G%`y0SwFFIZBQ8g5AF-HnN`yTC(lQ#-X;oL_w7D=R z#{b&1RAahDmh;GSY8ci zP-1-w6=6X;zkF|s6oXu$DGz(kfAOYVbJ;h735?+wg2;#~wc7h4!rBa9z6N-Oh2G`{ z^INPmWOCTt=y&zFp9HsU{m8F(dI~@oB7LR!DU&KDRjVnc z6y7P_6c&JW{(kQjTK&EvBkrRZQw2{6L1qYcRdp7>qQd&gPOa{_S$0%=B0=)apBdbh zi(dU@XESC8ZEij?=XJ02d`doP(Dp!#$!se&Ee54RS3Fa<7}osdA*q--1jFSRCh?z} zDK{6X#Px#Y@iXqK^+5}iCZPa+OrpuxRfMw(uEOJ!mNYik0;k?-4cDqNN=<(RQpN$T0EL?&+2Tq6tK+Uk8t*PQ>qS zt}GdsBB~FvtNAi?Lan2jxUNCYDt4l2MQ&ocXW=`R?~L?kP)Yoh^?~>dpbs2o3HS~# z`0buk)b<|$iGX@CXyDQ(s{{mz3!Y&TW?l3}C;#n(51j!hh9@$UU>hBPD&;TgK6gl` zSt8aap_jH2AVgK*q!{M@uBjvt%~28BeMNYj!uPSxYF1YA>}Qc)C0Q#rYcfncS`W$7 z0V+ToQpuk`b0p|L%#RpeUb6w^jldmS-$zOgzLR_nh|GVS9`tmIdQwk~4gvOO!ovCnxVItKAtN})0pEXg7P(uTw3a;U?s(nU ziyXX@?9E+u_!Sf>zzR`N3K5-IFL?ZNXc4YxAB~s^s1c|m>c=rD@Yg$T-#nYO{r=kf z{-x{;?4sIS){rzz?ist`cRd>-my0FTIwg)oK;kY&KtiI+wNAd0U2Br2CqAk?k$*_R zJ^F>!J%z+;_U(X&$uHXR3(jj)kv8BuD9pQeFQ6q zxuh)b%yN8S3=UF-fgjPg*c~`3w9a&t|)Hz_q<+=L^piN|-xEml!nj#)WM0 z8!C}N9)lVKjEnQSPfq+>PbiqkEEWwdlPRe+F`~omR8pu#3XSr8qlHw}RTx2Bxy)qn z{lUgNgB6h8EeRjlCW+T;+n)puOXD;lw{*kXbUvOv8|-CP0OIB? zNr%K-kK3!&vpBr3M=b`m%0Yritf?Mn)DmtV@UZ>iXM&U<(L29DkB%(ZoQBEOyu9LY z+U3FS*(C5Dyo+(GWEScg@CR;m^aO8wX!8YtzQV}$kla{%jF_|r5dYMLs?e@J1OS;k z#+|p=sUySwVek43?zilx%2;)v8jmMKfBce@l1(n(bnGk?($xQuY)cd>- zN4}HlA{{K64%jZ{T@?SFY_20xRBGy4ZRve&MntChnOuqC*^b4ta?0reUDiI3%V*nqwwAuh)HiN z&8SJ5>;CQ$&I5olx+K`{dd&9TaB~67isbvB1UkMp!hX+vduX8;R=+=Ni{}K97+g<^ zQW&8J+PeY~9t;R{||uTg{BL3>Rng0aOii4!a{xZDbODPM76oBl|= zK4XR_Ek0YJR1J#+2EpQU6`7n|_r*2Xra7-AGHS$7Cx#fAJS~wRFu^wer=nN$5EvAC(oOOP{6i)M{-}1}P8XXh{G5Hb2fq^Eh<{ z)9-w-Ivq_M|FEw6%hyu%a#MFA9ys@)+9#B<_HT+kA(xCl`ju>)MFcX?$_hY}`n{n~ zF4+#D+zi_wayoPcIE@PWCLF8fG89F&$YTVdHp*vi1jD*dmBf0UdCmPovKDhk^#VU2 ze~#Y)Ax@lcbP?}7h4oIdNImUG5E783#*04FyKnUrCK^LE$`wH z-dUK97P!Of9V`pC$ufSCut0l1X3a)Hu6HuJ|5f0*p6PIC+vfvk2}m zgVKPfR?OUfJe=%6xt@I@ofI?dJuG2nZTdVBJC1Z)BdfKr-r}0Bl8FDmp zsJ4mJISa|Ic&Fvrg5I&Qgn|R7bt;1m2{cBK6m-Kd)lI&w^CwZS0cq6YtpV)hFk5K4 z6c;aO)eSle3V%%-erQu4MfkgR<8P1VAMgE~25_-l|6G}JZeM)JHZR4N_k<1;LLGs= z+^J@^oF&;W>W1$RfUa8t{Or{qxh1`C4(FE?vn-JG_}z2H2o{vMOig3GKZ`(S{bBhj z0+*VMZ~FDdRYb2qF*#|u-m?GcdomZpl;f9w=x_s>BLjRxX;QL7u^lfiE$DTdeG<9N z$I`S=Hhd(2R4WdE`3fgti!9vtB{-!H1c~zu5GWG>&1LTy@zH#Fu6_W;6?8Zee?voJ zW;F`)kBhMkS{1Lmg{MjkTE!x=XCN`{9d z67@=;C#@3SPWf}bJY9?MYa9CN<%sq7u0bsK;i$-)i`+oGm2~>7ds3ac-wXY4K9|N# zrzct}mfd0`4alLLHkxC0>Sw$sFg_Nh>aWjUcZX%qa`u4u)DK8`Tzecl>Ggbh+&g&! zcL#^7HY%VTt>;(P#C|RA3y$RQ??5y9(e(^-b$RK2_E?|L6Z`ViP>dP}PGHv{i#<5< z$Hk6qBmI_R>w3OEw5@dfn8NLjUyEP*Y}%=T?O#QHRZr|y`OLd4oDIxYr$+JORS8B! z%C+6UL^(%ApOgV>GoA1<{n{)RybnGm2JKF2F@*QwUf`o)>=aPgShw=>_;`Ot>;re% zzRE9|ZYF2L$a+QjG%M82fLN+~pDaOZL;$7}w+4$vmtm0D3T3oCV>L%d+j)YybcDl#TcRO0m*w$s+wd{I4_u|GHCmFEk1Q@SpYpFXhs{9Ha zt&F8kJGPJNt%tL(Sz18wiL1Dl|qGIXXWurb8uym z;`FQtLST~*Ii8;Gye5OP zOl~XPYc_&xw#Z2E&K=DN0Xxk>HZaywpb+3In4p@meon?as0GB#clNr4Zt|33gJ!JA z6C7=5hJA3WIEF-n=S!{G`{M>h46Es&z8c7f>nZiywjl37&7)=|AZ#XR;!8xh*@%^k z#6${jcqp%C$9OusxL&PJlQ?0Iu8^te$n6pkmK=Vg=o)|ELCOQtSZp6k4 z%lD0-k3!GLbAM;Pw{e~vv9Eq|W7UpXAA6-S2QFM8l!@$kWl9xrn$9L6Ds~*&4;8%H z*Vc}a>{OQf?Pa9YAMS-&z76X3|-b~kGpz!Pu@k>@6C84YajySBP|Z|^EJq-7I6cSAO(T(6<$ z+*DBA9@5frVbfZ+u4XotY9BGx)DebE(0#H+?yz>WSLb!gcPAe61iR|6*#WPibIfIP z_35eG*9rj1`MlA7+lcBv0_f~)I`E?&!Xkyp<4C5HxBDcq7R;aE{HmP4OcYRMYfy;J z{_X(4cur2mYUYR)?k~1by(G~N-%0X_2%o4uQ|T&_n6d_b03 zHRP0fxT#D;g;p(HYgoV}EWOf8Zt0F8d6%gyPSMgV{WZy5Z<<%lRaA7qkdcR_Ofq-T z8>tKVC@>ZArQIRCAaC`3VxqfH&gu8_2>|L3M!I*dJcZ?60&V+`->1L32 zO*jlH2qGg9YYyHW3x|Z;h#B^gj1$;#f=>3@eIBfCjrC)PlbOf-Px)Q0F>&Tc(GzkE z+C0#YHYT|JHD^V-fN`nNQ>Wds>R$0Hi1eF6>d8nNx6d;giRgtXN>nekeK2?+PxO{vhb+qv4RYGDz2jpTlFPJ+mkZJ(9&nN#CEqG2jU^LJB>0aVY3^ z_RgVCExi=@K2_+VYX0hBL|zsO6SiKU`vgT~iba=TaZ{cBzn3D!p# z^lu!NA6r^mRq%f%oSi9H{_%2gcL(Q-itzo6QLF~_*}opJjja1}->tiQLL9Vh__p#p zn(Yf$*P4%K1n%pX6{dx{T}T@6<__ez44-t}SnfQKD&N4lzaWa))b;+2Si&RPg$gQ0 zC2HN8k8G>=E$q4ik%0mXA*pBt&_k?bz^U$xM!5}!fzK}Bb-^QH2l(^XNyn){xAP@& zlMbRmu^n}pV=V1g0xr9KNA2+5+a&FGgq&uCF~kojNCBixb0J(Ue!T@sNY!MzBy3-J z`c=)^0U3KS_6*(ehkHbJ2$n4fviEfvI|EU@4G~)iw!Z-;9=eSh8Ufq4F>(DzpJCz} zjD>JT1!Iv2cyxs`8vC%BL{$N!>t9T3UeiGMqV5^Akst9RA?m^GABuJuq~wc=M0Lh= zXFO#E`4pWpz0SblBFFbgbc>?FFgT;Uq0kVbA|Md-f4xN5z_(#gsQYAh$W8x}?ZroW z#pV!g3wf1v{R)S&4p5dpp9y@7whdN*$P)UX@EnP;{QT#Vg~-B4Y!liUwF16p6o^8h z8><~@Go4VwEhT`?1-WJOI4$cbh*at4v^3!I8TB40I`+7MA9QgvHZ0Z%}V1I;*?=g%`H5+^@>oqAubG+s9y|L z@!_W4PWLis9(TD8%iF-Sl|HJJV+%GHF=Qqg2z}8cVHty9G}myAIz5n1+^0olokJ3- zm=5Os1~Bky-Yp;5ySG6oRLLVa(*q%bMvRV&+1!{%1SF03RW4Fz7xP=PK2qhWd{!@@u-bD9M!OTXUa{>1`#kNSBeXFv^J z)d6$~fGRB0r@aP@BU4FvXw~wXrdeLY-N_fRqPu@eA|z&C?F|>XORBmC9D%Jw9r%e* zg~ZN_`>B0-C`0Bembr$5dn0q(V}j>%x|lt>33<8K!;D+ZR>KhjB{A_SEsa{YxL#q?e281_Kd#pu8;vc0_F3kaWMVy@tL5 zARex5dBf+zG^EOvD%OxH>>vk=CL9$X4C=>}17=Mg5%2mA_OVmA)}<;#Qz87!tlwx1vhj+tos{*@-Mc0xUHXYPYdW0ne{) z#ntFYzM47Qm;*7NWoRM8C0eYx7pFewX)3QbS9y(TC-Vaj-wO3xq;*yV24>x+K7Jn3 z1n#)+fK_4BS*^+&w(X+AZDBw+^y7LU3MzKFS}h-mRqUnrL4}~zcN^{<1MO5&2~Wd3 zI7HsF$3Q%|W}N>n0smDANb|@*mZ6I&O(c9x!S#i?jO|{xj}c*~vWX*}J+ZGd=&>b_J!=A4Sz4&l{5S9+ zjUfITN)WIZCMAW3hx|WYM0UkVS)NpY-r?kP04+qyq{qdIN`B4OH#F(bAb4wNL#Qi2 zR;XI!KwAlUQZ>F3m6jFF&1^L$)BMj8_P;9Ge;)=LDag{+7)p1s0kG^leCc`!o!FUY zTxpIDpKVacJ&1bOu-C%pGpScHQEQh)ZSTH^!0c`?NU->6P~Dj9-(~TipZQ<4GH?<& zKVy+06^j@;|EirAL=ddh+x%u2;{W>1|Ndw2jF8{wGd@`$F6G`p~>q({2CR698P_PbQ%rs z+aHfgRe?33OzM?NJ{y1}6S>^(=gjJT8c-u{-y71wYwvg86Sg~nx7z4Pq-S=EBH%_H z%f^uaoCKUbi`{I#EgT6{@^lmmnyX(%l0vW3=+uU*J~7G7cpQ&$7rXqyxEUa@58+!Q zBOzoapxW(u=^EF^D+B=i}+sAuN2}cV&bFSV`HmtK~@0wPy0U zytRcbdrtxaKd2RlgRbL*9=|P7%crGq*=w6VtC#Cam~;{;;IS9@6A!^fQy(q2yqm1I z_Qn?|iqm$mz&mo0Ebd@&`6R64V>MT1wP`-!G(S3|zoT>9YYi<7Ww>P(L8ll9>G`q? zV$EyDj|ZlH5+;)V;+8W7sA^QcMD}8dDH7QK@!s3yB?s;CUinp&$tKf{KLdfe@||z5 zaP4<#;>2$Y+5Xi}mnPJICUbl1>|UrSNH7QD^4!-W6<`pPI97YE_Pc}OGBU>V8|&H= zr*xi09$I^xx}WjtY*!SlRw|;tj{*SKL%=;b;Ow#57mF2zK_w?5{Cb1A1`r~IJcP+8 zrGG?R9ZZM=%H`Y~Jm($?9sL=b)h04gj|{#TldX5?*vwkF*m@XKU$Lw&aOu2&Fjv6_ zEpF*}N+V^Wy0|BNVQa_fgg3U~uC`FGiZ(Y@G7MhsXV_ zt<#2R@t$WrgpM_m;s0H-{#PCAa+V;SMyxjQJ>?98fwTeabwarS>UVO@8+;FBxW5%V zqNH85zv2jbarhE2X;>4toA&(IU48HdU>BROo&KC5jx1zt+s97koBLmzG_6JKUZ%l5n8O{THZgU=l4Jtq2aa=b6yILpXD;tG<;PJr86mpHYJ6V_0 zsx{+!1_WPn8^}Z=@znmZ)UoFWBt5;z?||##`7M@cO;)W`oo)Ne?{Bf{4A~QY5w#vu zHeLpn(7~ggA@8gU*oX{ctyz@0*N5RxuYsZR)R|s7596-s(zNHz-HJVdjUkTv$>LUq z)V;lCXGWfcqkiiVIqeP`;=&k#SX`ms@R;=Ka`=K)G(-YbnV#<^M4_H= zU)}5~Htqw@Hr~D;6K@%r<3EJ0ZTWgPvKgdEK`af~gYAg^Mm9^nKpJe8(E?Oin^-7Q zQ9q+`iSzdkiFZ9P?8O#SL4-sPJ!tzMT{LSMk6R4pcexM+;t1EpQSg0=<0%zS&j2rN zZg%1lkvtUaO`hM2*P+ykhW}B%!N%FD**EjqodttA_UY@8MD*YNWA(r);P%mVP|akn zNf|0%ArNgjiK>nuCE0Sl3>^%29~^L-7g~FGU+udJJ5{Oj^HV`S-tA^2H>7t7fre!( zK|BcCcT_IRL!WVNDL>&v^~GN zl(uOZt`x{q2f;EOVo|F49G5rJ0QUChHrEx@AXv6KWp0~Q;}pD99wQDC_=oo87Gd*o z$glXfC}{$g$VhhR=#c9elwXzjOtal?({6{`dNv4&gP1J%?AF`l5oiqZvBwCU`R?J! zPN=hebzs+>f4Ngwwb|-kS)p1Whk%;*&|td~ zl=m@8l3t_S)aS1$P+J@ePN(PnCx;8=eF!6l?VSt$))20%b?<6V2na{gI*FA4hiAaj zK5R4S#I*Rc{NBrad3l&65 z8*0lI8lA$NaS#HRPsf#=(LR!K#F;yJ`i`X3&jkvZ(!y_7NC3rrRMX{h_U!SFKn@Dl zuh+*x>4S}o293c0sG>GJ#=m184ppaIDVISH5D>zm5=sJrFuA)!M3Bbznx4bs0I;vv zIa&Xv^X+B0o1-DlfzZ(-Fwoie7!|9m_3Eumv1gwF0z!l~f>3Pif5 z0MeXI?BTg{_q-l&@Oo{aX^4MjLZ*kIyIdl-l-g40?Iyh@g#&-ZmEiZA1mU@kf4_4=ep1`7;-~0evkO?CfFF+Tr3c28Jxm2SzTdU#kreAH0 zg4E!Odwtu0K`e%gAbKrL$+4iB*1Jh8#zP1nd0{Yb+qdq#&!nndqf=xWMKxdyC1Ci} zc!g8XGYSL>YqhpXT;?%+(9ef%OXsrX9Bz_k#1}c#|7h8f&u~Vg(=a+pZM&?Rz;}DV zuuH&eT&8j{l3a=3bpOL(QG21lDgcJ#G7!!NPn?}N3V+Ue)+CS-BLvn9fpYY;5PB$W z)UvnSqq-+S$XC13gB+46b zm*tkdV|-NIV=`GDaRkDtD_jFC39`w0*H!%MhZjy*|8aRjN=^=<4PD$Bh|K{+-SJu? zJ7`THr$C|S3n=YoW3mnLNobiQ0R)4~^ElzxFA!X3;B)>6q%{w#fp_2y+CZ+5Md^4d zGe#u~7qJ&U5OJIgTb&2(g0Y~Vfv0wSE>WeR9SvD)0RR-a zwyoKfuE+c(llU2-gMi+4X#yE#Znjv6`&n=8=ktlmfqQw~2 z;jO8oV_Q~(Xo-Lp!(*>va$vU6g@%0|9QjELlF3h zw(o4Rnm>k+H3h(>VADOXM_!^1hSS2O>`p@Sw*pv(nK*@o!ME4rn`pRFfZpY6kH*x zKXk{jctZqP#)*7(`NfF#sD@B6c5|^Mj$M}yEV^IHd$ELfO|Hoylh=dgBXT)lNbR#7y(~DUEX^7Eh^SKXm zlSLFnIb2IFKDpYgqJ#CuY_;Cw`0i)neaHRjXYHK(z2Q{7rBY&XlsO2W(`EPiu^t7y zblRs*P+j+KU;_+l^NEV76QB3Ekr=tb`s&STBc@&f$~DoXRk-i2a{izru3`^AbO4dX zWV#IhB9X0TXKFR$=cb(RT=zZe7mC6!HacDNEo#8TsYA@Q#r?dabyw{4%-+w)Suji+ z86q|ZSl_Z_v0QJCogo~Vs}n9@LRXcoBJO@!6o!038yO3G0fB0;xlJ<$3XL_9x$e909J4s&c0JL*zos5$J1(D**q zb~+zJFEr0Ogg=04f6RO_$@N1Ml zpMZKlK!pf^m^L)vFvadu$Um|nrU?a}n)D+7UaanYVFIj<#f#COuFYcZtNMaMuh=Wo z8|}h35is9VD-x0t(j0zmOT3)!|9==e>#(ZAb=ynHLRz{(q*J<6N>V|(k#1>eScFm{ z-6h=}i$=P8(cLV%^G^3Ud*5@PyZ3$W{|M`m$v40E9b^2)ASsJZ9W$81#wo`u8R(Y% zt&sK5k;nQ|y8pElN(i*&>Fz)P1mFe&Yn2XWO67!`+_KpiH8P3B%aE1@Ue{zBrSLm# zqlIe$iN=})$DkHFiyAs$t^y4AqifqENj=1aVX^%P5N8<{O|i^GP8ps$$7b&Zf&79t zCO8Iqt*W<5N39|^zg8Y@zgAm@!y}zd03tSDVWSh-)nuUAkdaVep7L8#jzlU+0h(r5 zH}P%y8Lrn2y(d5jimvR0%Td>EF+-SLO6Ha?FqWDQp3X`r&>+>_m4_g#09WjZW#N=k zId|`?S`i=^st`snyxrWXa`*A#B-{yBY&y)Nv>EKgE}bLgYGbG!YT zTUc0Si4J$%?17;wUbbGY*%(ZKZb(8RO8S0IX0ACT2_FD~Q!u~%(zvg%V(3ZnWP9Nt)9oJ(Be(4j!{b68fZ>Wc*X%uRR4k1@(1 zEHoqT$Aiw)J{+2#2pzaR_5=DH;Ef0p-c^c4s)A(pWvatJ)p>s>E;tx6MQeFlY8fyc zd3FK+v>ihfdI&TlU`U1G53f%Cwj`NB?4=635!d{CK_q^fjVnY=T(X!g%N1a*eht}h zkOxU|TcTa!9fieFHUXJKF2_y_R(t;d8cD;Tz!wB;$&%ck$xjjDQ3+UcPX|~zWX~rx zT)pm&4T5MuA;uCa3vIs2K0R=*^N6oV9q7$g=$24Ao4@1a2eHFCqnV$by{Saa&f*Qo z@UMf%EwcxIV=^zcdJ_P+YgrW41*i0%Y+!#a^q-KL1ZJ%cR1lWZ#%!Hl0+vzM zFsWivAMjKWQn0@A;d91?f6%Evg4(%3Bm4rH$IA>nVbfS4g8M=NZE;?uQIZ`p1>%na zT$bw=W=PBzMw!bMo$E*#{qGlogB!^L_OL9d12e~$TP1ln{Dy&1{L*9?6}dvaSU-Wl z4%h|^jbKtdbwOwi?dO462pEmRk;^7t+H08n;x3_E-eJ>KgUIW1-XXh}>DKaqi3l4! zN$jztW&a*8AIpuAh%%I!*W8X2%JW1SP(?E8d+m?bFNS38-2qh?};{MO~Npi)e_D%U8n{s>Z z^z({9p#;Bu8P~DnjouxaB}(#+Kc(Ak(EVSx?)kRuRHMA|KU%;LTANPbVoT#WIqc0P{xO)-h`Mg)KAB1C3&q~#~XYB9w13I%pQ znUo^*AEpI1O!#Q^&{CuyW6Z&{m31hOZ$2*#s`T`!88nF)S~n=BC`B_IM6;G_CTiAN zVRr+$s;}FOvH(E*y_xuVFnVi>917cV`UGBE=yyL*CAC?LY}vovD(l-Iz9|JzxtpE1 zeRZ~idmZ)|kUlo;&n;-CUgP@;12}|;`LPAh$?0_dUwiq#CtZUK%N^f3^ZJ$A?hJPxtAZRh)J{izZk zcXKe8?nE&$Njbt0WT;;ar;)t}8aX(8=BmsblWIGIP$$0UATu-yeBos-ki6%aDl)CE zko_D{rx=s%Ezb- z83Fe=UdmWzm z+^yY70Sr5}P={7NF~cu1d@W|v90E@J1#Bf5*3iF-F5nY7XOp~hzSzrW(9Hu{;DxlC zzYr;ZGm;pfxZ{%gdUtw+9@Vx#-D)_46_3ZNHkR?_Z6rFP@t;s}1GO>>>fguWXIsOP z0CDM3*!YD>vkfd?`S=L2<8j`Fq`;?(cB;jkLcsAX)*#f_OW}4dpLN5m?`OK7?U($W zxhKi62)YN!K|$;IAzUCr)HY|BwRzFs6)UWx-sZ6zYOTSRV=RR_3E-LvfjUGkcJ7>o9q@4dRS1(#)_}5O`Fmy0*`c7BuvawwrYEqt0Km;^Guj9D>w|qhA z48rZph!S}gqVbLgI^U%e8(8$&L;en-1D{JIp6PLjI0N&lq&2r~8ux&87$V#I_iPw3 zbdkBV!`kBj*Iy`@^xapqT;+rrlf;S(Qm!wF(Yg`))8U>PytWH&W*v02Re>QGZg_uk z7Or>LR5~$Z2#w4XG8DeQ_LjIs#phfk7ykBTad7xtl2WgUi_2)yLO;>nrx3JLA(06b zD1Pv3NpHH`CEI^16Lk~ZD(DoyPv5Z~_5r)`QRd47;1p4!0LuD+MC%(h#f{oo{hU!% zA8GV9yAJ>u%uF8`ThQ@FE5Z-u@4s6dd#&Qmo!0Bj4kvTx0g0sXokGs}h}T)2QkxGl zGyL|N8Yj(G=pVE+WtWHthW$e)LZZAIro!1)ySlCkoa1|k8_Y*&Ik%y3? z=>kdLhg0Osqd7(7^MgAILeH#A5}s%+heOr|Jww zy1U-&$GN*+@r^K7hPM$kt-$GVmCks1(KDGM3WcIlr@w!t;51 zC##tNY{#X$S$nk7@lp9v_}hccGR!XBmhRcL*H^IlFkW;F)~nRyKh&0X0Z%3khWbmZ z-TdplWaK9%UAsk=$EN!cxQOqy`v+2qbZV4qDK~!IX3s`cOnHyGJ)Dhj?|L@V3{-QD zmyxBQxNdTNE>VfJ({KADs_?BRip*4q*ZOP--)#_I5#0?8qej20dp%RCk->1;BGpx3smEe!RQls(3*=hI^ert9S#@SQ0_B+zP)=ILSfXT^bLJmxpcLDjq&g?7`yAG(~^}cI`miM zm0|5Ws60!a%|i3?cY}$yat%)^Q5GZ?2`D(U4zB`{4gFmM*>7MA)l2=6x6pUg{KHb` z=1#gxK8}w!8&Rn@b88&2-62$c@V^I$Q6al9O$G}#}Dww_Y#lp;L&=mqCnI1x$=sb3L z-9u8Y3bYYKnEyUN%_28am#as(;2ic`d(fiN%<|QRctxHEpCa4Nd~ltQ;*Nxv+k0cw z#Tub5T7{AEJdINnd42q@b#PZX`Gk$U^WwK$3=qMw+sKjjG5LbCm#x1V@(n&1;qH>> z;WDD0=K%F-xnj&xV&k~8Q8kqXOq! z%)sQ(PY#E3@5;ZT?5_OkddBCl_1y91;+K>YiZ{s8IJHo3&?6d};MUs6Tz1q&4Airq zY?_fjpXvuSA~4PEIT2Qmk65V{cb?-d`MmQ<>BnGma<{)`mk+td-hb`#qY}rZ1m%e^ z%8;W^Ax*GuqtV|de_>eE-QDV00KJ*XK|jF9-bnXvmg9=2%%!cww)tS}DSdQ|akMwRz+Z`bZm6V28`8b)8Ya$@U4zGE)7N$Dm=iV%xKXPx z6p1o|ha~|h-egg>P{2McP zX`J#FzdlBid=a8<1Yc*?b4 zH$~#YcVy#5%5U@9~p zka$gl&o7tU%x_HaV!Rcxyw+YcACG3_OGwFo)%1GtSIt=dcEEyxPcvY>sBWMEFU#2- zffKUc6K2AE8cUt?&bSHytrdBY>#7M>a;<;NwO)$%O1Q#>XANV3_N+ z64Bv0#9a*+80Cx+`9?`U{v+a>>`H4O3B3nG*N8}V5*1%srN-5H7{(2~3T*P5F}*xT7FkScbK{fzQ)XEe=nB)-&>`A6nThJbhS0;U39N8Ur$ z<0zMg(S-Qy3II%Du;{VbXjJqxUu&v=UrC+)X=|VK833_5pQu!H6r1cEDUFW@BVQay z0oLlxQ}gj(x!@-={2{1qwNkjSko$oXutmmEOyr8w=CU`g5d|5Xh@-+PrNYQI(wDBH zN>;sJWK9Ur>^3{BWfLPOpSrWl<>pup_SDAi#wZt9T?*J#89v;|A!bqI6Af>c4&Mc| z@iPBp1=ovD(oO)J3im?_4rfF_Q0h#jS-9q%YA9YY0P1AFLg)dVlv&@o`|1`xNS>Wm z^YD*xMILatJ3;oRy2ta1W(sU;ssXWX*RYv>xAgI#-NIUU8eVDd7mdY5V&$T8o84k+ z%e(UKPR<^SW>t!(M_z85%$^JBVRzl$H^>;6h;w^wt_x91ZX)hYlJC1)cGBSqN657^CLH&&WD1Y{R$Z{baEu@?i>d^VVzGL8ZuL%U{;iW4 zA?hzJ4)b-Syv!u0-MVkS0f*ZZM#8neH#v{xnsq;qmLW2Y=lIzQT27S_+ut{ORo4G} zR|6rh3H>sXM1IX>Fs^a(G>`{g8H^vA6{jC_TCT8rrtd4l3;Wzyb<&7Uza!^DtI$}L z%ivFZz&+>j{KkfIAxcTGq}<6&F@L&v_7p;DZVAALhApXPj&AJTp3L&STzi$9bvR51 z#0Zby?Z75V3ARS!!tjT@uSP0k$UC7#&#<#s#||Gm1reU|qB^W5{)|6VhD6O0zFW>R zT0zV7zQ>%HHMr;XKjme^7G5rhmUL%w8qvKH=`kNo?qqTYXc9ZwS{tLEp0K|BmOsV{ z&tVn0+m*bmx?x?+tk@pck!}Wj8eSStK$SE#s5bH|&j1D&W-2W~5ATQ%`)DZK$GLPDP?e)0M? zNRjZ`X3@wCE%bPo5nXl)0Vv^EZIpH3pnDJWfzgE=&DRQlE>MY|$WxR;Ko+TvIS7iA zKep2oJP9-1$SVbxDyA2x4;Ni*C2&h3c6=!tNiYa;;1$dy#iCtm^o-gb_NC?G3W>f? zKn0KlUn_rJ0%E(PmV<@QVylZFm;yuh9V#OB3khLRnb^%qL*cs7v?vgu9iZKnD2}E9U^YKWpHa9R?K#2}~RCV>EzR3yt zE%%f6C^(;rk2U6Zgk-ztNJM2wk*K!}d%1Ie@zFoR*7& zr9eyu$#n76Ak6a?NPW`WTvG_l$}3dzXE_Q*&e%*W$`RHteD$z4V1=QI{5xXJ zu;BbxF4I_KDanl_L4Zhj@lDIA+N5;7!LWt_?DuyhDpK6p8V_qp*#;n!Fw;8a<<$tB zrZpy&V?Sy2@SD7QPdf~%U4?tv6pOdj>V2rG`^9Q0R{5;2bhpEv`0P6*%0{VH!VS?4 zEL_Dw-=)g3x}<@3A_-#Wm6>A3R)1e=0*M7Ig`4+csy7xNEm11){h4-U^7e46 z$1a1UXg>#dvssB-^5m-VI3%#?wVQlnsP)V5x4WNRJ5?gg@A;x({=%@5t7rl-kP`nG zVXVDlr9cQ*C5#Bq;taR9K46K*8rc`3Y4{-SJG+6ojA}lTp3{w*f%3zJs72360I`!7 z3;#!x%ib=}D{!~w&;&S09n`~R8J$Aa(Iq~}{DDxID z&%SrZwC-oB3vW~AxGvvrb3h=Nm=8-^-TTYB5ix+&l{W(5O9}Q7Lq0avv(&%`Z#2V?UDG^~CT2N=KB4E1&SyYg4W8Q;N^?Bjz-NfoYHL<6a^=B5fQ& z;2==dhceIPx|`;feU7gMx~{1hBK8F+*UW#W9*BAEWUqEDpJ{fVzp}{0dt#(AeK?jP$Oal%xPzYWUX_9wlEnCzjMAH zlp$srVm_KKRrhGkRZ)kdul*0#8bRF;z_M?E-HyC3`s{8enCPXm*B|rKu0GaqK>=7SY(;$m zFUTtKf64NxFuf$jlMfd8O9z#%1gDzw1;fStw?@_XR4D>ZToL?;c z?j^d=0aa$vU`nirJxZdAxE?~47W%m<>@}DduX#|ovB*t(B#2za#X@aqKuw(il+X&+ zlf_S{UVYWHf-sqoOV`?ko%VdM?jmMNV9iN6ItSoQhc<%ixfXA8yiJTc@r)vWanwqN z@j9-*x2fA1=3Uv$EbvrptVS%Ty6!+qgW0;Mq}rXoEyc1dULq*X^|6*bp5sRg_AdC}OS6BF@z zVuDPp)8ze_s3{?Secj$jwu|wGeIMPhekIF&DWoO+R3XV*EOMBr?~{;_`8d3d9^%mL zuO!!rIU-;9IUi?{&J6*}9~%&feD4pIc{}R(WL`9a=e!0U-%z8v3-<@UU~R8V2AG{m zV7JCx)c>l#F?+5ce;&3(z7zR}jk4(%A{@`|if@KPNH@=GDsx13?B|^fnUP5S^i2P} ze&RNn(Wm*a^5ep&gcDk8a@c0CDiQ2YeXt`9`x)*wTduc8o49H|B~-vR_x79s#|PWL z%%DvPu)c6sz4o%8+ZswrBZwYDrY258(iX5EGb{fL$?`#)zHFVS>5yq*o60uzti^H| zPoRITjs^06p`hrlE##lUInNzp`=m`qAe564;;g`8|iM-*eM5mF{*k^IJkBT6p2 zt>x~A$v83G=||8cRRtzS#FXf?#8sQJ*FntD>-Qp5vF^*8#-;w0&hAp)4*r=za9?wY zKtm+~I2bk?6wBgAyBkp=>qwt9EUgqh{zT+0Yt5FeIP~_=xg8eV>!L`NTCOkMg;^?b zm@mWkumbw8f)9`^gTpN_&4m-O}*c_;857GcdIvZbkRB!Cfw zUgdbqHNr=^SjSgmkqD-a?JR#Aq?!V@B_SP}h#kSjdR`VLX4TvRN}Bq5!+Ye<_lf5v z=SKODyA{i2uJ@!jVq#OJp7sGO&ddS;c(sqjGwKQJ+qZ9Q?MILGIU&WBw2Y{O6pS4z zLvAJ$5ftf{-Ujm}y+icM5Y6^YR990lw^rrEie`E1oxMZQnLSfV zc5=z7|8T%9Csfel4v|s2hH~ZLp|cqT+SUsQbaV9Z`#e*UG)MN_zLAoJU~#r-&)?RL zuyz`tRqx7>fIz5LdS~PLMKd1THImm(v%^EuJG0d5O6wK%v*s`$=JCzqu&-43@bA^- zB6y%8khr#&0PbN@)1654W(hQifdeuIWlcW9ef@dMQ!liLy^mzxeQRJ8qioCzzrQVGxA7~TjwKF-P5GugD?+Opau&%?& zkef@MZ?>GSu4yB)J3R6;^HLdmpHo(EuOm~@i`j`U0vh4UDj!kXHdyw#w}pK<_>uOu zREK-RHMnZ6-eylI%IoeDHUfj^Gts@hD>e^9O&>5}l6+0yN$m%F`j}zW)i`hn_*WFP zVo?y8OaUpqa(5?USv`;Ts0l0EBW!2*`7VNlic8LglzIIz)0OcC;O<13chJ=_`o_{D zE$lw(+E!vBN~t~)YPVe+IksO}^X7ob|3V{lF&xO``Ih+CP za?gGU3=!Da$NMJA`oWgOelA^^JoQPY5sg0cf6Y3;hPN5QQ)Q@r*-oL|R5}eGP>z^| z4D|5)3^R4FfBuqOpX`ycgJgDn(ojF?bGSWdmw_P4Y0lCq_X(Vw{4qmZyYT* zHw3ko+&g97l|!6Mk5sN4xZ^GTv**0Bx$P`6xb@fk+lreH^z4s|f#qPIUB>wz$$O+< z1Y92CNMW%Kx9N39KV$(|{QU6epS=vsN-3DiU!+BzCNK9Gi7_0&bCs@SO@E~yhbMLd zuqBb=*cYS@H8ahRz@;=X9UKrsS0(s_SoP>WpltD2f=ZvYwZqU_f18ru@N{Ez6vXe4 z{hNV7@s1gAJ-+6lsaos}ERA;6jCy{GowZ9ffBgpX?u~52N=DgsQjnDGyz?jN1+uF) zN`?LL98O>6(PVCAOU6U$MEn=xnZc5%StvX{ow&8=m%&vDYW~3Aa_9>7>9>E4*Z9bvTzdKB(tKk zbp$cxi~Ilf4)3k{HGDOd{}^;;ibh4|sri)T$lWW$eiF=&GB#r?=y6YQ1bDnVMOQfh z8wvi6ukTSa$4-SGcQ>svaaVv67%A$n!MmxZ&=N3sKln!?!Gr9w#vvZnU3RKr+Y#8Q z49tVjEEDS<`?`U9pvgyTccI0TE)DOW#%*q~Jf)O=CL>~dvOXO`g(8(+Z5?-@0zs%B zER9?-WhOnAPPsVFWqPLBb2XIYv>1Q#=@4-oPgmd$g%uzS+x6B5vWS? zuL>s5T)R8rK{%XgcKJ%S{7bp=8WZ148M}3SCr^t$7Z1Vb0PS9rqDA)bD+0B}oW2&s zWxAC=F}>!iOa*P#ZUD=J43{KIf;g4~f;=;>_{mH16g857Z9b4rfIovm)^5c&7xFNi z$^3{NmT{*Y7UNQO!^zs>jU3XD)W4yGcorQgYH6=QrU%E^C0?vU|9abd8#pv?a`?@^ z7OJ)-UtnXK{q54~^vV&ME#u>8@%FBTNy5Ni?5Q&-%x3m}B9|%lq3~sK{aM30on160 z95g6mf6ZY62v8PDr9Dv5R#l+8%i4PLs7~=_CsQz3{(4)|62M8Ti%nbmG_mY`@3B_w zT1u?M{I!sbY`1Hn?%3h$_0>*a;O& zVfeYZ7wGWpA2^WbVMWd+oQo1ea3jkdb1U|tVZ#Ik9yc+aeNu+P$I$0D(}$d@Z__`C z^_Bdmx&U$wC|R76xzAAEv@Z3wVR*l55UTpi5#%{_;r`BQs0@j1^jT@!!a0{LEUcYn207{W23oVYjeMa}@>@p^!4F$F@ z>C1xRThAth^z@7{uvZGm7V2HLV4J~}F0}%>SZ4Kxy<|1gWIqpo2yLy9F00=6`o~mk zVZi0kf_-~`e@Ab`+(w%Tz`4oW% z&uDMCZbCxw1Mm`7XR`SEzrN_g_Kea{fim3;8jH&{cRwOwqAun zv|rKfrcL%HR1(9e>jtnqJiwKT;&xSqONGU6+;vk$(Blk=dZnMKjtC$Qj4>j&0$%@2 zAWNXy|0yoDu6F??$8l^Hh$0kY0`vTu@F;&DD7d<2#q%c8guP7hWKqyh+)vkm0*el55;0r_haU;_ z$}Qh84Hug)dDDgf_I)8>BSa+qx=FvgoAcoWgHbi_Ed?PwoIT`9uMnVj*8t28{f2jJ z4Z7+ue3yy*QObFUTU*t1Q}o8DYNzFDCT8K6-u&lGICK&#_81QL69>EMF?z;R=UF6h zzx$kWnm}NH+0dFJA}RtU>6l>{@!R``V`*C+g zF=WQe!{7-{L=x;h3L?IyEek zjPqk>_6K6<2y7RcBTWo@zthGV>>%0Mx9;`PE$U)-nq&>)y)5e#RpvGPdU%8KDw!t< zQ&m!1GhC)VwYRP;x_?6Uh7S_L>jEm= zkHd-I#S(CzhMz(_>qiGv@|~81)ElzEA3Qe+tynyy#cG} z&NRiCi`B=v?el-K0A_y!#{Bau8+*&dM}#?_6IL+R%dJ_LIRId> zKUT&)8_2IGczx&B4xk_$9cnUIQf3OT+vbCKpjloY@heZ2C<@bu*GC*UL)x zl__)(Z;XZSoaO_v)7H~lx5jg41}CK5aejR|_w_OLfBj3E%Pqx{(Fg(QrzSGk_~Fan z&gb6v{r7Q7m^q@}o^4&8zSQv8fjB$@OF6_HG$nkD9NU^0bq8+n%?QK46%DkOTnK^N zUgW{(^z73?>EFfX1{Q}`hTUAVI)fd}s*Q%~$_e2p@KjcPM)SS*df!D6q*vw4pP-lF z;{UG2v)=r}Cy+_~C>8TA5Ew173A&An^V%|vu=ghCzSEI-1PbbZtlYX&WIr!8d|P(6 zryhA#I~MHbWa+ZXjM!Tdg+6JK$fVh?`c!JPB-|y0j?uvibgUx#D;|<9@SH`eKVk&+ z{*hCiR(kwk^8;-(@tjqQPosAH*->Q8EN^V&?}5CLibZcYq~atE+7++0QbT>WQ^omo zGvRaLUbq9msD_tr8o$oHsSVXzL33+ZCb{*!)1MsOeppCqn_~f|o#N2C8}@po-}!Vk zQ-FiCNsGek_E2vHp6)vZg*pXntidt^S+Y)xQ0&-uCg1S2A;t*jKxYYbu3DY_!Jz=& zrXUISo%|E=1fLL_e7u4ehk$;=ZMv0e{AYMBv_DR9E@nHqmPE6Q*bM1!@&)Uab@~wW z!u~9la&od-$6`n#hmkf#M}x_Lu-92#S@=_vN7VQXw;uuM{5Ge$u2EVqH}3 z6@nHt3SNxr08DddB$J6?w1O9`40yqaB_MS1n$qLU}4k433*G@@?%6KUMy z_DcogG;FItt zy(5CQVXh%Fsx%<_a#^J}sF!JqvnYtTYX9cAzyE4KQqE0&b}&G3R1sEM7=DM9D(aT^ z`ecNQJ@BPYAqOyEXOs<57&cKcXK(czfKQ?w0q-MqR7L+{j)nm>KKMa0PFmKJ=8w&I zGYZ67CtsSd-V?$YIw!)a4pX&N|*2KW>)6$nO} zWt%plfYTj)Jtyh6`zIN>MDBsDAFFm()eAnlr&UdWxu!xc3@OkNhnC12-u5F!=1a87 zir@V@_cDAkNzUOvH9+qx7T{3PZ?Yl{jgdpL#9sjVQ_A$3@R~g`>Pg29LIjuLM0V1~ zQnk~p-7?F`W}Ep&zS86*URWW78Q$UXNdhoIiN#nU-Nly+uvm*u>~Lx>xqLC07j7C%g~5l4p?IUe~D`40zPFX)tE zhS1P)wE`75?PiC_@yH7Kt%3BImD-wB|y}&LVNr^bs}%juHk?L zG;bJ4lw1(kR*;)^TlAQz_aGHFA53vLC?VhAa-dXWdf;mMAyarETl(Q|m2Ag(e(XC{ zJC|2Cf!;eZ{-+=DFPE%x)2Vx~`m$@D>~?1`gE)hd?RuskVL^GbZ{uJYtc zt?0{vG7j1hXnI&2C+PJnT;_gw``BL9WLbLqWnHU)x!B>nRhpN>pJFFj#aBUpi}9@J zCtpS|+*CN-a#29dgFRkZcm{3{rGMC)%;z4^DOTs+FH!ign(J`7Zb}wW4&Z;kP-Vo) zEH*fT>VmVV78~W+Fi@QcD-LuaBO1(qf=x7Iv9G?*mg|i0bZ0HK8E+96ok<~;O)4Zg zsSXo=jzjs5uRFWqBN%=D!?$A1TVpPZQ9m1gXF-S10t+C@NLqfjrAzFD>nP(yY%g$A z+`jr+<~B9A0V-2G@Z|PT29j(5C(>TX-{sx`tJm%3pm7Mh-aCs@_ft^lS-P@=jz4sN=_f zF?3NmA);Gp40o>I_?5+%wDaf|pbJ4#8(&q@`r}a_%33Zp@yC5O`%*Cf&L*u`x=!LCe)*d`qIxwXX!ju7DJ z7qYH<$^-jB%eKE~dYm^3grguiMBBf^#v-nuW9ejxPaAA zK)hgA{E&yk8ejWn_9MyLwWBo8X1{%gW;WXylE3qI{7w)mL8p!Gg_@7=Lub?D{e&;V zxQ`!7kCNBQOJnA9WD{k_PGaBiXCR7u85+dqjbR$tkDvO^?;0nTbZC=_%}Lko`a2HY zx*H=d6}))*nSFw&>$#yqM;Y@$c3m7YVnV&$(%Ibz%2X<^(7fn2Gs+YO=z`xO@3~~Z z$Sb!P^p~_B zDlz=IZ+34qgKXxC0&(mkcef3!UE0ak6UtT66tOe|0hCE%t+&zB3++U#21WHe9Ln&z z6k4#uO-J4CTT|aAqd>N~ivVsGw^8bQZAPrv@> zTcR?`+aM{T^X=hbcq3*mF8iZC(Zf*d35v5@HNI*}t@{ltx^VvHRvD6U?UngqucZnf zP7_p;&jPlq7;rqa*xPk>k>)MeGvuXfkKQx3v#P#MpY@s5j5=gdUr}aucVgk^879oL zcGRHIH@!A&$N^H9CnJ%L8*~u8i;hSTDAZ`e>>!>S>}V7pC1K;X*VUqRE?qJ=mTS!> znL|8JXQepEvSwK7Q{h$)zNw(eVA62S^*$|n{nL{zN+)j}yAX@8j7vGWaI&Z}4u{8T zDVi59Bhp-hFzB5qSJ<3@aJUAvh!7Oe`04>(9B?oiX4&plJz4T2zrj3me^Fh5|H4ot zcg6DP49QK#TZ1>p5gP8dZN&O0Av}64u~n}sxK|=l>Z)FNb_5VHPX(3ku%u`(b!ejT z$isDL{S?5(Kwi8&m<_CtZ-4&+TtNvf2zrS%L|~{h5?ja#C3{vcpKHGonJv+hz+;Lx zCFirjod0tKqU)B(Ob4Q#JOJI*gj4(lQj_B&ax%LkBWjLG3I^S2tXVSG{tHr5>EA&0 zmkn>eVb;UYL0%Q!{*TPHCbuX_$V{B*;^NvqV>7<%-<+qdQBI8bO{f$&a}NiKF0oo^ z5(4>QH^{;~=)M-P5x5P=oyKdlToy(fI+IV2A?|Npa^e@bK|dL^SXIVEXbKu}iJs%} zq-Avk=)q}*SNyU|ko)yEn^kY#sr4Tb)rYWH?=O(eQsJjE#NU};`qOPQY6cgGG0Zf8 zjme)5qfqvUkC|fn$pCn`I!VwC+aL=)s`WNk+tB}|$IDuz7P**UuXaXchjYw47cqmG z!Vw7v3n3j8*Rsk|dW*aFfR+^MfeC15n4^D=z-fX!ST)&M{;|ButgK_LOA*+g$#0{O0!D`0N%1(EAUHHfm##5Au^ZYleT^;@XK_ zOS9t8n#$@@T5rwNMEF>PCx)1{Yp_g{5~Gncp#i!OB}uw?;DP)|i#T5)cD>qR*o8SC zH6DBG|BEK<}i04CdZmtSLn|Qd0Bg=T|LKy=#bB=)2Fm)~GX0<3g zNB5a0>m%~EfbYP_UiRdq2JCwvG3&*ZCr z0wUbu6nOYx|8ud58qNKDlPv_6X3d83{?m|bq}cD8@90DSBktG)Y~K3f0H)2nB%@VPKhja9G77#vuLy6UTx z%&jLq_KSeNv zx&xw^0_5;)d?%63JL?QDs?G`6V?C}CGpM`PT*fdiR&Obw}|MN$MX8z-wgMOG7RJm;Sz3Wt##R6{2ei8fpP6VwAQt?%< z{v)Y~5_IF&UMvER%lzMgyMKeY^!qQ8fLP)i0GG%fr1SdUevto@J9vTwU>NTM;=%u! zcJnVLBS;nTeJEL;gS_$o$H!=;q?E8R82eT6GE4kWoZ9JLJ@XK@91*nQ*0H{bn zmxh#|E`RmpP$q*29Uiqb+PBMT0#B)())hWU&NVjCsM z*R3H@%{(;Ycd&+tDdXs&^XAfu`j{CYZaw?(z zF}f3pUcb2^i&Y1x+AL7(H?9+PJ$*OP>_JV;J9CP?X8oXI&PPgkquujc4o4Mu_Z52I ztEcMNpKkO-NS^N?{Z00DWjVhGqDxs^mY;$IU}C55%>R(MZdYKHWU=HJ{Ef$ZJc=bz zB(H7P(|gq#n^UihjawWlx1-e9vufqX@B414fML?{5sheSlm(Mn+Wqw>0!B^033@LC zaiFH+Z_XDvU|PPnOZC40CzY`HPh4_9GUu9aG8Oi|=|G+Wtf56K6)1}7980F^z$cLq zbhG&i{L)UJfT+s;l;u;)ozV6Yv?nZx`i)?I4vA>qvza zY(#ONcZcC;*=SX3rr8Rce7p}Ez_SfPSIaz+KRus!Wxni*pn1fi{k+n`@)Ccw4CuyB%K$jF1zsowv!tLGk@<385n~CI zVz{n%dD|7Yy_|=iKe%?mQpzRn*%0lD4VHaYD=l`|h2K(>`r5C;b}IaKha&Tgs7C%$ zE{%KqB;($tmMzk4y8}zvN&JtadCnG(`VV>R@uK}yh9{DR*A!#3C71O=3a7ZBLgutB z-X%N;x;OuIiH>s+Tw>oY(t3rnNd!a?(99$eBh;#N#AK3NH(*bo!G8>atkO9k3Mn2b zR>&s$Z+|8ls*xIJ1<#tjB=ZDIgF(xCp6>1cve zz(;Lnz^iz=hqD6LRwQ&1d_3#^0qIO&f0UU;fxm$i2ca+S;&Snq92~FrnRoQ?Q(U$1 z&NiE}f&f&ip2r2ENt)X+U5uqyd45A#wDB~OkUcc{U07my2Mh-^fgaQfJemdL$;CC! zV0u@phFjkXiuu9m*#pTl)zZDZ0~yTh6*w?AivX zayJuB$m^Y4)L~NdU)_Exuq=-1rI0PaHZpd4-SQW!!6xa3`857;xf^6~ojik6xtT); z>=QnLv#UQYnH`Q=9a>j+j1YM766^0Cd!XME2zWK1X2zCC9LKh8_B~zOMYMOD& zcxu~JS_MB6Bnu_v!tjZ zE)%85lEB$&ti0i??~e6yhlWdKg|3nTTsnUwe(GT|c*?V^em7fK+fVxM)=wKW@j+QVI3<^GM3?g7`d>+h@XE*K`DMl(x!uOTRVg>9 zH)zkLE^~F=>3;@sNeaInlg_ZlXI=tIpY@K+&zB#2z8r_)uw)oFNT%F>^=osnvQNM~ zhe(O6k0XA8x_zrFA}%ps5|H%G7rd-;=j^KG@LL&=ZhhbBNZ?Wat!wSL(>~-{I3zyy z4105YngBh>I2Yf{lT559AF~m>c-B7%z+SU- zgBGL4!FT3Vd=GF}uR%A{#W(z@4{d3y-p5@jNdA&ZW2q0sk?cDmokv!kmQ2m%<|%w% z+os!DX`HCOHV39Mys2^Xofc0oqO_bjs0F=E^kmdpAAW@8Yuk-RClA;Jx1te}t}H~` zf>;AS90R61uDmL}#uRFKyz#pbg{&{a#quNtjn+wcAu2t7b{DysD&=OXD=mgF|FVR& z8m&eykNq^`-Og9~?ch*tiuF1&P{S?<31z3YahcM@|K$odpu^q8h*ZsFad^}B_`q3Q z4f#DBhH^Iq1_n^i)aHBhte>tfC;@PmS@h=fHCOgr#e6U9G#=x) z85LKiwI60}o)`v^??ARFdV@-Fw4DkqkWiBM|Y#X5K@}#U)IaWjbbBwLXGOdV47u-Nb)B;?G16 z`tfDd3cu#Pab^Q$BnMvuGGRUqKuld-(5RkUir2i3R57-tvv?Ah+Nj~4%nSxSaAec)y z>c~x}{R}NiTtxRV|K0=X%a0L(#Sa2a|62I>XPf5A@GV2t#^#$RXU6=a zxi-?)0ht}_h0+(h+V&md|2kNT`Z+jEtN5m0J3623zCq}9Jn1_N8i*c%-k%fCV_CM$ zso=NXUUn7eH3}$IEA@uhCKW}Or!boA7R$BMd0qZW03pWgOP+n8g9;vYC5jU+eg#jB4MUBUsJxGwLE57gchmHq&rjo2|&od-X z0gP$7W{2`P9&P5k)kwKaAXDGz^Y2uw;drHg#(vSlzxp;+C4CM^LG!Gsb$bQ>P&$L=csajB>0c-W8X!2WRd#t*JIn+|j#V{&FSmWR9#jcO zAaLInvhVp6kkP32-E=G^t2ToVM2@SR2*Q>H@~=is5m?p`(h$zipIee_gQPR(uV^gx zQ1|8qbA`jPcrec(R=UooX8LT%D`;HX;WDlNRgHPcDNg zv?NpCXOtb*dd7GOww7G__ed~tM#)~Q!{zthFs|dsCUOw}^?o6W=v}}Ri&%EP__f(w zrx*<&^!RcrY7x~oVX#e*cRQfrSIk`Dd=&ufF0j&RlnBkJ4&z*oJ6Hik!EuUlR@pLCOsPfr z`Bv}S525jMH6j8aDZ?uq*pD1$Pksz|ggA^_;{URt_#Y9!mvf!cX|kglvx`&bgmty8 zu2GP=Dl}|ten_2Xbv!%s zBv)!kv7+^WS-+{iEg4eG!8}_{1jJU}lWv5YQu^Nq%{6Zt5U@I=^zbBvEFG~a<&j!k z#_iv1^@ugm6R`C*Lp)1-jws7kA6Hp)^6?8I?b<(FblJyz^E6^z?%HjAhoy(F8 zto?nZ#*m|J79R6}@UPMLrlIirj-xf2TtG`cGm+_ibWpiU^gh)?46ROOEuOla-103p zfd98B34At>ao$mZj|?D}**^s01;}=oIk4IgF#7WWI0pGI5w!LPsb0R`LD0pY4!sL^ zb=nJ0sO~s%o)IAbRuch6T%acDt+aCV2$_P?EDM@d2o;6`YY9jPD+V$vrq(>e!Kxyk zhCh+!YDjppZRyoGl;UCOk||8`&ox?0cAg*kiVm;lOPb#u3%H+&t~8&M^-!U}6Z_4b zv*m}(0Q+U|d$X#`;}y2r+EDblx$jO1^Crgm@m5b?#)j|Z>j&Ude0)cDc$|4t5@>-| zhHkru=I4`Hjmz~mb#;INq7Fgvh|gz+r|n|5+7u5r$E5v07csU(t}MB<>+5zl6OPRR zxQcSQYhh-}%}Lz<85{8m&}0;wqHt5kaVMA4#^)Csj3_gxfiMoNKazs@;BL z(vGtk(pZ)%mWgo%sJA2t>jDhV$P^FlKc5v+2Nzv*n%zP@qLaE1c0({%swaaCIM;P( z3v-}5&zw`45-SoXFL#FacT(V7>wHj21q*1Em}vMFvUtaDk^CB=q)WVAkLL<5jf6k! zqb9@~56b6k^0}EF3)LrLQKL-NZqz#CGQ_llKb=Hcl(%VWej(xYQE9*@e4x2cX1#`! zLAE)YYx0#OpyBQ9E=oSy>p>AcR%41N=?nf?P}~cHj-?$EO|-91GAa7ffyJQJ|C8pm zrW1p??MHn3+cC=~*ZR++J(Iq{@nA?aLiODC;dq+E;+kQ!PNf!i2nZ-miH7SYcxH)i zBx-p5E>GJF*RwTG(DY=uR9GE$8EX{~D*ex&uE>sx3cA!m=%)NSfVi(=X?Z777Vr+# zZDip3$vTw8M*VUBGMc#GllUU5A%=}tSL?rrZ;k9!S)BhsN$^t)Fi<>4+{f62%K~)4 zgvBr~(h2k|D@Q2_8ozC%YTEscFwQ@CPT<6o0l2svun=X8QbKfHXUSZ4oGJZO#j^A8 z>QKn~?;Lw=8Cqg0!^jRO~?b1EXe1YuM*4H+ydcl>u-Oqv(gIGn~sZCuDWgY+`qlTwVoMa z(B?n~@g{6EP&3epx(ZF~23k|{a~OKh*gzE^Ly*Dle1bTvF{hiNcB7yJh<5s^aj z0f3alVYC_(rE{P?q-8u{)0Cu~(k`0*QJnaq-jt5kv(Z&$pLDX9NqfPj6+a}rcSz{3 z&|UN+r@6fRO6CI)`5^CVu{juEt5KOxEc!;K{?Po577e$|Rc$moCswGY1iaQ;fKI(I zEqI7|)yL?4;gxGb$m@dza<|}~T8JR#_OJU{TSGa=@w@UGm&GYYGbwddLG_Vk*40I2 z7_(i_`z`_&<;Xf#rJ0#{`HMNg#>CmaCHQQX32P!9sdcOI@%ChT{%1b@`}(pUernqv zXfJ<8O=m|wWKZNrC?rjmYM+e2vKJLoxUea}%;K00XG?8z5+I&b?#4C|P8&g6rcymn zM+}Pu1&3<993>bJu7|E=a%@4$xh^i8(%|< zbYnhmHMfn8o}vL=x^q5phZN77a@60J%4!+5Gr7uvz|DO10mhijn+sXQPJf7uQI92t2~KT%4)b}=ggWIWQhtf4KAY;&c%#?KC0 z4ow?!>0FWG{4QhRI1DnA*}x-S$=wa!xh^lUikL+$sb9HxqzS`V z$FO!aX?sPC!5@M-%Qd$xGu>Tk|LCVL&{^avn%QBF*vIe)R%I5Vm|}Zm2>NoN>X?sb zMGvJ+K@2H;KNo~TfZDAT&9#tQt~WQ8!5X`fuJh}(ZIg#&U}qKKw<&`g;N;3nP$_j{ z%8lt7G3D_x;by4nxWe6qXuVe@-N-@R*J`l9Z?u|^NQQ5=TKB&@xl~Q*4TI+}c@X(i zEX|_dS?~fQebE*a;0;(kjRsf36E7V~mC8)mIv4XpHb0E~inwD9FetmXgzB*tTtrD4 zn*{h18E~B`ibu=kLPMGzUIGkF`%pD0135)nw_bavzL9~3r8=^-;OEd#e980c=1l@e z^Qy1IVT=hTX$SeyTa`MGe-Fq&hj)M3u}B~65OJBw7=KP81htaNAAG&=tAU`~Su9-z z+xOTG0p{BvS5pokUOgV&_vwa5v_;_}l0uC%M+w}>Q?W9>L>?e;;)v?%^Xj$f!e+1u z1ZW26ev-WHTlQu%SIPUTq?VAfdEMgJiK$kTFa$>OINexpj(=LbC2aqduURhvn4?Mm zuD6vtpettVaqN#I?cD$Jyyj{$L;cA(oW_)`$lGqnHKdTzTaI4yxIbrEk7rNoCZF*| ze0NA;`%4W@IE4w0Pg`HWhEi5jLVy{6=iD_=*`3a_046Dl2K{VICfz2{hwcqoTkYnY zG9zV4#-T2cKkV2HN(-f3+CI)rjFTYi>9mh0tHYT>54J)hDY4BHtfr^>eTkR6D1y>8RO_7)0amwur#Cb9FsJKpu1+4JoQa?upN8^ph zV<@tF71W%ZYqA<1LgMg{;c*wd@}NjTL4sdnSjibM9Hab=Ik$^oFv~d1#tkDB6-;%- ziQH$yaala3Y~*n@40=_*7e(L)B{npRcMJ+NTm#JwZpJDTpG4yn``(|waxiB7h;Evv z)PU|s_a}^tKqLxv+Ac*iVG@z7RD?h~)aZf(vi)lyPgA>J!0qJAC>1gun=a`Y_WnT28Cu_L3`Jawo4#btAKXbgv8lEl?h9&)%lg48sp_Dqw0d? z@#Be73stYYH(!3&hPpcL(F z4F;l}-9@E8>u^-4NPPhDw)v!%yf6zo`&7G^tm<3H*JqeF)uXXxXPhfIU*_KwJf$VT zqW&tNq6hjG9NKBj^*FZOCs|VG0T)N+4uEp{lSxRVJZ}{#4GW+}eVv2WQj@GY6=i`K zGl`=Vt(sn($z1(Vgd8nb0u9PQ>?mO5zpUgzK6V@diRa`qem!;gyQr3I%#X+G?mrAw zBUsftH!s!BUjkTrpQ+-{`I7#WlT@OJ86-f3n^)8c>(6JpE+jrdHAkmhu+I`-`hi&S zwOc-c#{Pf@uMO0V-tYfX4TRx`Gtj`wo>96GOiw35GpM(yf6H1E)8JU&HPCSQ2E$cB zO+IEYZS1DtpkiYOzfS`@A{q7YWapf~#b_xq0Nx=~8_Y?m^$8+k#5xB0KNNfT@|=h zmgR}P3pH(h%^)(8D%K1|f#HH5VR?A)qsK~mfENi7+NL9={XDli*GZgK2i*8sm z6=XmH=!+vnm4d#1$7j7%-T zWcUfmmx1>>rm}8Yw3Qr}je`;4Qr{=-w{z0raD4H;vHmG~ok>q#A^7gtnS!?WAEmp? z$MgCkZuQp4Qm`U&-(Wgv2Lp<+G=?o1UoF&PR05fl(d>~g#hxy+ubFuT%KDg|AGvTb znojwP?BT?ETf%qQjbEacvu|V5hNmWSzm@5$jKbKTb*?jYJ`eSA6RAK``EHBCfcf&) zjIOLHw7ZNs@fcag!?fKGqY*4Qa&TTPiaN)Kb5%|^>Z8TGX63mc5SutdZ_Zx%!riebBwXAsjdhzZPx2-GMshx| zq5TYbOa8*9kfU`SM5)`DGg!upT(&NCPzyN|6pKJBn^NP`Pue2TTZVq4G~Mj;e8%*Q z$o+{nt7HL0nLJca_FPQDW&_{G-%~K4XgF_cOIH%t$o{_2D@+;n1O+4bd;Ot$vnKX= zCX?@Nf`KfJ)0VO`H#)d3hyxpx@R*DWeO01m-uQA!2w4&Ih) zgho12o4A>52T+m~(7!{)HFcP8!2%ZZq`5Y8b*pCqyue4Qa(AhT%%N$nyNBJrTGwn4{O^sfCSV=@Vg?E1s$_$n|b$>JtmAYz!9OBgHH{ zljM7TB-z2q=_5X9Ob>@|#<~!&?s}6NN9V% ztQ@w2Sws_F;Fzq5f=cyOa2AGt^PhhJLVRQzt<`ZkZ1IDfwhM&p_D(8nJYL1oAT+X| zMM6yT;vAxuInWqAY&#|!t$h<|yGPMs3Zhbv>+&1+J1lzR2yVW@+j1C6(I?;07e*_RLQl+;l(IS8owtmL+$ZgWe=3I0X6mxyREtj z!dgOwUPp?fe!UqKOMGD0mAxRR7G6bPCKC0M!7Ztv&lf!^wzGKECabJEe*N8P1`v8} z#C1}PerH%`O#g?Zkt4F6=K9o{-ky^(B*9`}W&2yE-;|%xGXx3xLABpK>?8SKYQ~%~ zVzK^^pm+gOh*M*7`m7fbK1|+S zNtl|w;(8EvDVjv6s8?J@bJOXOz^}9q?$Va%UTq-m<;68O%Vb`h8!Ysw1bH)NZ^ibY8?^7YbMOqVHn` zWotYrwW^-2m;u>`3XCg2fmDh_T&^yd`4#D<|jw^eaKg^yEL@{-Lz zI#Dr^LEVJg>U6acqnuox(A4pU(PwECfxBOMfOJ#%Tcf_et%6Q$c2rHDfTe4OVntn? z1W{9#zc!7{uSh|BpEwz@_GOM@hs~u0j=Nr9S@M_NeBb#-#>MDDZeh#Z^CceKHdxFRAeip|n|o2++4hOE{@H3y6aS zKWN~b(dVK!n^G0UePkRl-2W&|RdH+^dlQ0qj}})E#5#hsKMf95X8McpA|O+D`){HS zg?6X7OX$DyRF6LRg$$}EyO!;8^-AZq-OUk&xh8B@oB&h-4zDp#u)7E54tZC4CTs>$ zC}qlR!N}}US3ux1ppaA(*09^n>bb3KHH@Tl?NPoH){n`wRX{+%ZD9( zWbuMg&As!;gb{c>;YZ+FBNmuGDD=n&DpE%1NDAH~7#!f(W`u0tVeFriN z;BkT6h7X2?5ISBa@0_IC!$v&C4A3Xr&Px^DcNgERVxdRste>g-BH?_p-HxZzUrEd- zlLkIjG2ot+2rc$Y_gbln%7@xjw}BqNiq-*4rMuxB&yY-EGcm*#W;!H zsOS!6bTU~pipHIPiWZ!|D)htTDv9T`UOdFcpD$N$Ol}`{aK9qOdg$w-qt2=6A;5A5 z>P-!_AwXE&JHD};>{uF|V;<>Pa>0M*;lT0Ct3x1h;H0U?#v?c*hb#_kk489qi*5%q zrnX9_yrP$Rdp4Ugm=P?CB#HfKA64yi#;8y*UGJ{1=f7I5px|~rRj)3TE@d2V$dSmb zE81doL+D+;MXGX|oLZg3ub!Aq&u>5!nW*hrIcUE*__(m+$kS;{j?7g6Nr-+@dFD2E z=)}o{BtfK8azhFW-|Xw49^wUyZ*l5OJZyaJ#9hPZ(zG1Vb?gppijDqCKU>(L@9hm^!{dyDNM^{9x8{o z-J7T1MbaLMmLToq$&}@qaQBzc>-J(7#T0HNbiH#MacCvGX>WJ~-LhAR%x8Q=o~<+1)mm+;=hbghA7I>jLd|U( z1xg|pTn2J}Tr(A3wvp>b_X}|p$^l2l)#45&GIUlYZ?$2BIohO{-zkTSeBt`rg9;AS zxo+eERZKz3dw$I(`+^WiuTX16p5bB7*JQ_9r#7H3_`@G30)aI(OeBTVa58+FBIL?! zr6uHku0z{A3f7&n3XRdsAeZu07OFmTmCFgE8x368|F0twWV9k2x%z%Zq0l+>$(zf0& zzc83bBe5N8TJEpLhNAmU7tb=aAGA3Yrb-Gbwce+zd&}^)D6l;hg$)XSL{D-iRz!R` z+af)O#KL;WuSSp&so3Za&f~U!s+9klRrXRoM_LdPy6E?bWsV6gfgJBTRq9{CVmBm> zZ$Db4re}r#Q^kR%(PUZ&30E-1L$dAXxqjy;(7nEr$h}Ix+?`mofL_$KZNU(0344*` zSBDR#C-e5)A*uMm#xqyo2vyq^b55NA-(0jWgM*ijZQKjz+futrgFmfuf%@$khIBoh zyNZpKiyhe?Q}wZQWCh5L0&C9^1aI!V=w;=-PYv%lKJW*>^aa<5ums^qxV1NH3WI!QQVQ0UT!(6#p6FOA2VA=PxMsIzEC<6PiT%BqAt?M(b(!gfs zDeel?(YBdlR2nh^wUydxi(-Ywgk--b4ip{%l6T-F*NA<7pkM$<`o#(zsdOWwk5>NszMR#yZN9R~OYo)e&P#WbX&{ka~7UV+^Ey2h4> z-4RFOt_>AHt|R@Hzlq3meeLaTZ#+=OBb&9mn$W4sCe>!P|2+#Yj-er^g^^(ob%U_P zz1r?1O;aDO7{>UUf)?;%Q|(o#?|k5Q1!2nL5)Y( zY~(6XtoyUH?VIrBPjm*C3Drxes3nA~NbzKbDQQDB7^&CCs1A0-4B3Rk^inlgR0MUA zyM{e!Q@I^1<=Ly)_$HP*rT)M?0R3@;0_!d&lB)kXsV+9v@k%lXL|JP)>a{_dZxck1 zLkF3^;rm4BSGFG7H3pw_oAS+Ots$r@(oFSHy;A7GPYL%jGKbj+X01moWI2XXH@G5> zii^=f4X8FC@ID6KdB&zpB{5{=6!bQK7|37iuQUnW`Rsb-k<|0RwO#J<6rsr|>9jv= zzdeG;f)hWpG=+aoeEL?ge7zKja#lJ5>URwy+NYcCfyP#Qc-g2eXLU-Y34Hu{etH!& zyH+Lh{;LIoo4<0Uq4{U|r*~c3u7k-;De-WuPud<@CRGj)i^98u5e>`Sy=9f^y#g7H zGF60&ZwASpGeN-qNW~x|ze19)eR2|sV zJ;l8WLSCYM5PKbRk8*d|>L&lEhA{-^U%eVZKJC>8CIFOjoZT$uOh0oV48$*rvF&#H zdBl^g)KB@Q8f4V|1D|?X013-95Ds4-n*)DyTB%d4zg8W0`#b8hj7IdVPh=d4@}u-T zW1Ryfi1AbKPB@ynQHYVvXKMn8$RGcCx;PL*o_#lx2{wR0wpOZtH}stJ0S7SGUS#@7 zwQM^ytia;Hppx=8XcSq?53L^_z4R1cnC4c*Ni%7C8nk-8KwpAgH>g4`FHT&~Wh%Pk zMes!Kh-~{Ie{UGF;5r-pO(988# zxd_4VIX-ZehnuRAA8G@uhK_hUsrVrW=X`1LxUB2rg+&r+Ket}2=DR8VL(6jPeO4wE z0~gy5YknYwf7~v*Ll8J!AexI(=wg6y4j=Yy?#~w4W2fQv`^j>>uzBhC_gI94EucqU zIGX&%TG0j>*V^{@zIHkE-LqY?o&iz2rEE@<3B(xdT>Nr*@ofaBAnFCDZyz5kX5vX` z3j-6?VK(S)Sxvh^zwHG1vL>&E)Cv@flsFSGh=-NC>{ zWBnTxb!Khc#=;wxq7l?AAil2~xK<`7+-4pp0lJe_cSt@TxM?HUFyTKViMP*s)5fH2j=i6rM#Z~RUmkU&NzR-N zRjy0_Gkg8_{kkKBfygItwzWbSbp?l^KqLxHBjjqt)S+`!;Xq9lKo;dsWLE!kZK&g1 z_P^)Rz;_Q|yyzI4uC2G-m)HyGyQ|8R%r(MhwAbBV^Yf&S?~v$j(~W$wllyX(f}H;yjCu*-Hq6Hg{cJP6 z|IY3I{jmR;>P6A~S;g$F7pQHZIMaRGQ2muan67#r``|so8|L?tX(BY+^8!-4Nrx!h~|3CkO|LeUY ze~1BxuafgW75(o*=l|>f{&yCb5>hLaIPU1U{l6FUe=gbo`$^s8z~QH8B)-c3dnL2E zA*b^ti~lIo%mg{p9R0ed;&ng3^SxhhwqsEV*@W>L)98yjYbZ#GFNb z&TwdXJ;+%W?bIGe6*ikBXC1i-)U9m=H#@9pC_e6R+s;gxwdWv4kg|{jA>_B&S8XAU zeddwK0rYAAS^!ZLK|5`&e&Zql!v#t0qpGPy4Li1MDyN;wf2fwStwB0m#uBK-K$3e9 z5fsGOqjiiYz*PeYzh*H=6Qfb_g)4iIZIKH)Fdn{uA{ zhSH!@NaTERGy;W+BQ=^LTBJvx%g0NQ6`)V$=fwCy@q+$$^q|Qhfhf9yPXKQ7;WEBd z4Inr=&3yq7eUcC(=z*TzP?10hO1TH}5h}sXfHaJNlm2w6GZf?X0?PGtBm6J7jRepJ zbfH^@LnWDNbv}H=rIN;?*D8n^KkV@JiSQVXr^(Mjs)z#?Q00J z9>FGQzzk3fw0c@1gQAR_U{dyfXN}uh`h_B31Ij;fMC=!v@FcF&NfqG)@-I@VX3#VW zJ&CxT04xj%?n~QRE2wZzs1Whuy64tlx;Kb62eBWI%}5cD)2$Dd<=-u43?DLH>-3zw zEMqp9->W%K3#B_}xuo+X+O7W*?`pJ=W729Yyd~tuf5{dC^&FX-0JP8Vg-_EhxCt~> zTj%nE3)Q+(xRaU4E^*`opd5Tue`v^=gJ=@Y2pZjhUbI0R=rZ=ng?iqTQ3^9s;5@-1M7ZGd^0P+iLq1nbWIJrye z;4fVOtFd$t5_ZmKOOPWH%cxpK-q%o!X&}IIEiOy`D+L+w%)w{x6nr9QHQQtTXBV2s z!7SIOH~k$GMJ5PMK{N>pT9#B8;W=lcVACBd_+i%VQJw<4w zp)z(Bjg;wBFg>)OGS%IXB21o{#D8x*K{)8nN1_y$P|23Whl}mNb@T6(3WN7<=gZdI zQRUo%ek#_1nU}#nsyihY$%49CYI^0gHS3ARi27$y*Ke=hR^P%;7)obS>Uwd~*? zwn1Z2m=T2$Q4s_ok@|N&9*inW`%H7n6SsG zkn;Z2jc@n7PP#kYRN%Dc&S~!L?ZXaG_}d`#&Ul45L_EC8-5xoFgu^VK%>3T7xMeyW zuzX`Zk%2`n>f!bBfN=YVJLX_q-=g3BUJ5{BSv=0bfP3hl=t1wkAyx~P-7?@<+?RxW zKQ61CV@V>@uoXA*CWobVIKv;@Q{zHJJ@k>x2+`XcaA)D@>JFPpzy z)8#Yx#Wx2-#Y`DgE|cvHpwd3u33K*K|9IT#=!WB4TixQr7c#^^A>tqV<~P_Ng{5Sm zUGL^gflRYlrC0FlHhl_ECND|011-G-s%sXV%^2#xa6bE+xXdnBdko*+U#?k%NU5x_ zR@%JNw-2_TZo5i+3awnO517JlR6F(CozI0>zE7-WF>2bs8uHLO_Km#!H~UGph)D2$h6rl%iwx-+~^Ew$&(* zw%1k<2>_Ptl)l=;!%#g)_gSo=eY1w>ZSx%?K4JM8l_-aP-ipvNuZmIcOL7;_Z~Hl= z3dogK>t^(!b($^n+c2sZ;0NzbbG2g35e`I(UUEYVb^dgJxKJw7>fq||dQICMeKzcU zxMMTHcf{Nbd=%)Rn%@a>rnQ`*eDQty2{=GJlHJeN_8U}I^|4b!>bBbynAFU3iTn4s z)JhHN2%YepOcw1n+2Od~%2IOW##1Taj01&alB;u?PI(CyAE*`Oe>agT7j3z-+i!@L zX%|!9OVxPgeWeq^Wtq6(#&DZOFmVRMqvL}p>5gGn47E?I>ut8_?HV-ZFJA9A9pC>{ zIE1RzI-z*oouppU>Imgjj>ZTQH|v)aJ0FY{19{AZjw+YjBo2L2ml* z8Ui*Z8|d3$FgOw5m(!}6W{oZCN}8W0j}2+QD-SAr9s&Vug}^?v7|8Ledy&jWDv#e= z+Mjt;ZZKJP`nzuaLw4bdQFcD3^+G+8IK>46F9N35=u>Q-c(gb^km}5?ny%b~!Aa|T z(4IgmB^`!-tc}P*@S(E%V~4$hbJ2fR`=U^g7Bo|OIqSmD{%+8x2rJkPEEeYd{2&Vh z)zpyOKsYqscL%yy1_eI?W~>m~51Gi$XQRK=Qf zJVidfiiAS$=ldiBdRNY!-|-%fyK%|pdIVo`P%HJjq!OB$+s0x&L`rEc2?U)Q#9!kr zw@Sj6SLR1GQiG*ne4G`r66kc}cETat6ctZ2YBge!O|2(4Ug^9id>U*9q^%a45`*l| zTOdPP9J}s^AgP;yQ6JncVW2g)+qOE~E1lIjB4m>em;HG<0h>Il%-iRG7)@nlG(tHFHkfM)27B4DEEVn8DL;BB9INx9NU1 z)y~7w^1{x7{aAYSI&z~DmGWRcmqVhUxIeZpRo@?HV*_6O-ZBvjhIsv(D6=&1VM7%l zfqV2KN!tQTQg(uYDB|?ND3YE{_zg^~uBGA+n;MGKzc@#Ojtj;rZs=)Dj&;e^oepYl z*s6PlDlQn{O|d#{Y4LLv6E;1ECOT~s8KI~fX9}NF2|im%SjaHzw0x7n8Q({s#~;d+ zl$|=m#QYNbNz#Z466-+mi|?~7QMknlR{&FQ%#q?A_LBVKx9jPzH3(ip4f@=w=f)j8d;q$$7e z#*)?N@`u2@p3ir-NyTxkTZ8)8^?p#WgmuK28IE1e37}XCaU&S=zepyx$LiJaVR^wu zb$E93TbumXEU7Iiif6oi`a9cI#zE5a_@FtchmIuIe5b}VX7kw1(fDWI!-;Hj&nVt- zl&aht&e=OALRx?rz{s#wWWCc*2M+yiGeIwf4Z`0fmTW1EKfM7;doLX_d*~u9p<*D5 z#F$9MrCg@|PMTJy{esR8Z#Da1MFw^IF&@tK`6T~N|s$F zToX^(>{<2hdZIV?wW-HpiPkOpI(05Eh6RMF+$G7DL_&_=e^+~5&3rK$gA+6xyRmkU zNY@{hYMD}>h{j@bQjyN4!!7*wDsyD4;0)}R{<9^{7JyXBlPLcD$NA#?Z(+R4-5iA1 zD@JER7s9-$m^lfK`0fB%fjwvw;)+!LjZ)(zl1MPcKnixB77O~}l?LlOaC=7);#61R zTmVw);A#unT9$XmftDuu<3v1Gv*EPSns0#vn2gcw{RbgVrAI#v12z34BO`>j-fI;v zCeYJ~L=4F)MJs2UTwf1WHT1ldhvNp8zNcNl};m8BGEqGs;9d{ZuZSHCZM>x?0v6iI=_Mc;`38 zsa|$@tzD5n%)_yK!Hd1U^wv#lI1kS+p8iZzg+aRIIO9v~je&~v0nCV94US+VHE z13mD~YAZlp@pJrjYewQ}=A4R}8iV?qaHV!5nd~QjGN`jnkik|ot47b}FUQ1eQeGR% zfRz7(uD6VeYiql-69U151PSgE+}$O3aCZ#^cXxM!6Wj^z4u!iDEV#Q{VMXtp_jyi# z-Q(*q>L*ab+O_t&=QZcd$q8i9M5pA*`2>d`@)COPTVA5sY6bJH#`jei=z_};cPV`y zJ%5}VRqv@f5=~#{rn_YdPx&nKRrC;%&LCJoV@QqKZ$(bQ$*BL`RU#hI`D#-(L)iGc z@kF{bSna7%mv@lLgvjbW5Ib|8u+291=Il-`T^-uyEc~;nanA>752@5HAzsBQ8+tW` zl15M|i|y^WW2x5$ao^WIJ#E zxM{SCz$XfMS>kbkZGLk3tWZBb?6bAUe}VCJY(3)|6eB%It8RzfPm`tJ>a!EwJWTn> zfc|s=AvwlQcl8Q992Q~;MY7v2SY^%zL&U2>2JG_w&w55IMHw}38)+b=z;P>(RR8Od zkWY?vtwcgFrlW5S6im=~!*o?3CJ$wT5TF&->z7)0mfgb6uUgEQ?u8qf@q|H|XZBSs zu1Qc#eG$C9J_&0il#U$$C6QIAqMk@1uS7O)_9wC?Xep|tA_rDd|0n<}zk!+^nO8jVAjTbN1Uz$1u3iBbCHKM!WW*iw&f;zUw z3L{gG)o>$?Ov1&u+M;v+gl~+~uN>S>_Dwhiy`@nqTk<~Gnv`k)PN-X&*Q5l=VkpoF3sP!UJZ26rD3&N zRY!IVNh|(Fs1_m#Qy`1|P>h;9DlD#{XQSK6+fxe;B|>k`peQdBK40rFg^88jSbcI0 z>8I-1pzN1bi0h(|nam=cKI5S*aet7_l~B?fMg`RU7|UcqeAI~7sBEsKfHp*I z##zQRuTfL`-tOS+O&Mt!oo?Huy_qvriZT>Oo*Q~6@rlicjHilNqd%Zjt+G$z zn&^UPQ8<&E-#v?b`1JtN@dWI*A{I!G+~e|2l3+GxDnpAc055!@2C9nHdM^LiE}sWXVu9xC`4Yn2C`}oDpH;NEI(P+Ld=*HVGuqJ zsB?cK5M)}2%Px(;R)u6Ng4Af6JcIn`}m?b0Of(K+}En1kXDp>=Vo{4S&yi zx)p+{%}5^*tg;tY_R6lxNLiTBnE0t;2TB$UQ1 z4n!ZVho4Z+UohML<*LI}6&7dTm)Y(fsrjOKQM}C+3a1Z>2WJ;6z}%@nCT&zk{#U-q z1rTFXi3s$}JL`|5MWVT+PXpuW10h257u_j)^vssFlopy4Nke;{B=#SUVH6-D{m<4| zgPc%ciR9V&ZIqxqF8jPFh|Tba+XhSDhc@g*zkMTj6A?oxL%G*FrLdkEEExp;z9Kyt zAkUrl_8(H$9$Zp09}D~Vm{n~8Eu8jpu_@^PRi6DVlF~*ev|zKk`K7k9i++IVs_Do> z_LPDgCl`%ROU;iu()sbLiU1s?BE2<}%-5+0pTC=5K=oQ{n&W!#&ITES+vwVnz-ADjX zLzNyZ(WCCTnOB&xcU%cK^ig0h6Afcg;mU27@jG=#E_u+ogF1X=)CTU@3C#d7?2BeJ z_4hjKmC%ngt)qj3f2I%=wr7jva^x0;^3@c$(Zs*iHsSM>koEJgCZS%jOogAXe0@G{ z(_}1>tK*XlBK0)!Fi_MYI0E`o#GngU?j&Baio zP{zD`KkSn%*NI7J(N+tFdgQtP{^u@O9~o-#4f@Bj&Q?OfV0rU5Z`$1Qm4P4@XG9l= zm!E+z9cL>I%cOkN3{2Dr)P@%L5A#NjvKQzW znTIkd40XW`?Ae$jDY?hKt4sl#TVyiH`a$eh5`^b+tRpkn{LV*!Ims;Q<~FBiBORo+f9CvRGlOy5m5u8n#he)G13uS~ zw3St=MUgoGYdE^uW%YIp-K*j8_GEt(stKo|>=}bjfv*Ph+HIi1!tOjFQ!|? z?B;2?pU3_Dg2)=cZekBwF1+S_SJg@HLzI28oLHWAm)u}{un$R#+K(|7x^R`~Jd=F) zF|~TYYNaGg+@Zwsu#XU92E{Ws;Nd~wj+nU(Hz3i^vM55gm{k zW_U6SJ|Zc)rhdkN4S0(YOGkHmhF-(X4~3!a$$VWu(IX7ou~$Sh6v;wsLB}!K94cZ1 zcpO%H<9(GnEj?Za8}R)T2~_g*06k?ub1ftWUSQY1?)?BsT#ZI03Htw3vgbg_?=LR-GXFm2sx+!&GwLcX{l8AS05%8B-UEHsBYCCsl8v3Xl z$o0k3+8c`%YQO3jg~&}BbhCR7sPq^hLWA~zlW@IHP?chp8iTgUbrvrag}x+WdQE>U zcB}zBLXX&6I`MbX7rN^Wj<7!X4D9n2x)YV;YUMZA-S`;mRc%bYO)X|~EQCng+8JCv zYzq`Ep??3fQcd2Quy|=rpx+h?`7jDvEtKa3KDpvlAykG`OLvd55``KjtN{&G)m{n& zeKHSZA8!H10gox~3^sAYc=~^QzwAy?D+_DP3;S)s<@$ zaEW}nT$fpKXD66+5$p}1g@5%&XQ$*{|ChZ2r8ny+7&ocynziPY!MxbiADH38u4H6^ z|ReIyQF7c;pF)L{W`Xt&mZ+Qv%(7-~C3p_OzUi8y#fMQHSGi70b_(KfInOYu89R zS8{5c%l4kRj!y3?@Pgwb&8IdD@m+uvfwNJk^FQHLxzs^AW6v^_@wY*?UXR;IzBsNK zi#e^ufj)sz`v>O9*=|)`qVtA2yky$v%Q&wzz@?CW{{6*Xjd0~22oM}oJG~|qOyVHA z%=l3{mda z29y)xZgr~v0ucVzo}+wzPDL4trNS1vRn@Y69(E3yH5&oB2Ve`p|@6*R#c}>|opJ zqH%57C%py+#H)s+rl^#KGE{3V(9elXZnHk^X1CAU(4$=Zo=%3G*jKm`8lisG;hI@q zFb`g#2PQ`FIppA_q|53bO0ikqOR5NKv*kDm4}?s9bDZV5ABcc^CS>1^>X<)`tCL5# zBbmN}^f1ZpI&B_HJ<($qx$ocw_V2kzrM|W{#l#!Cq<66D5J_VBV(q0=z)q>7slg+ZQ<$^UaolGXr(gMpj zVDy2Z555m(^iYR;FjSapR`gbz5w6^5qf^f<70;^l0X2>oj;HW4i3%t%4SY;KTPDB(TRZUpDV+jXI^5o4?=y*$>} z&cFtD?HZEi{DinZsnnSNqTAt-DLZmFt@=D$BxfvZ!XvjL1>KH#d_MOa=A14Fz~DV7 zNJ-&>Ie!4s_Ulo)@%>>;p;#NOOmRVAp)cCVttb$2C=s+8?b^xevM%F_t>$B+! z{!-oJGMvVmGJoliyr=U#q0huW+v6WE^&^zEhWvYaX2+B+KraUyl0sFoM5NGtqt$dEzutLw7WZ0NuirJU*OAD#d2o`sP_dr6JjY5E zYv&>P@nxMRi3VLQPV=cKulqjk}N`0){XMroQIH z8p!?F^UqyKYPGKs9@>o}n27V$ia-~v{lUVD9@eI?yT5Ci67`gUTmg%M%K+jU+D@b< z$+u%16qI`}(AfZzGnG$(8&s@}%WgvHv(x^4B%d#Og5KKN8kWq{_~MA|&PcYp`$vvz ze)UOh4%-p6E{B>;Rfbksv;kG^&z`YJWqK;pkB>2pBL$?a7x<6aK)!F& zDi4rDNqN2U`7d!w9_!EDgN}DQw&eEx{LH!?6q4UTx}xg~rCgcg!vQdLod{N!DJd4k z7-}{@|Am=Qf1-h}XQX&s3}|Z}|D4B;(zR)apR&Ar1kg>PH}g6Q(y#M*$lLzi3zzv% zha0(MDh(di(La!(8?CfPv63RO7`NLlVxyB#t(Tn(9uTqdSFE zKf$mKEGbJIW@r>D=c{%2QKB7X&)!m*=ua;M2$lnR2jil@X3Y>ZyF`W0`XjK4xa*1( z0VQRnRoIo9`e%2*_jFsnjiQ7py1E*gGXN88-;%2Aa#F5&moc_L>bqg~eeY&iMa=5N zZENRqn_KYSqjAdNn>9EWipJ{1VsmCA<--vI92NHqOlMb9cU3N>mSa>xax;Gmy6Ui>t zBfr%H>63dbIsd$_5&c>-`G5aa|32kk(L{tE$}k|5RiD;s2b0ss2#|FNr<@u7^CKIS z&`g&Rcah;#CW7N5t)IO!qyFEx-yIqpB?ZS1{Ify13n_SmY$|Vwf1fhwQ6KN7!+l5MC# z)BRyoZrhuebu#)t-pRjL-(TPmEJ~aKLT!T8h`BND3p>5TcM8CLs|p=*V=kshDp8Nq zF?rE)bFp5`aUR^*l{kz(4Fn(^PIUMNBsM5|rzuP$rQq{4%y-fj!IH&y|@A-eP%X(5&I%zA%&EDWxgU;Xkxc&wb z8@-_@7)l71)IowiPO)3+>}g#)hh+tKyV%W!q|z|FNqnkX(4MhohBr1<5!{m`3dCJ@+pIiyP(BOK-cG5`NO&ZX0Y)5-C}yqGQ{EFLGj}fi1FpS; z$yd>SM6>)XQ8PS4E{pYY^cUxA26}x^Y){ZbNXWg-$OIyAAz}i~9M)`QYORLrB z!bl+K*iTw^Md6?fB;nv7Qs12OyUEUCTVV`JU|o)3Rp z3-KcA#e$E8Wv}brSW~Wq`lid zJYY$aq}^`!D;b^E@1frf&dwe$d-Ty6?NI}hI-);FzvP@*m*O#Sp|%)CZza+z)BGXE zs8;YhUvZ7U+J^*3xS6ugMBq}8ibtal12_nCo<#1!blwF;dEVfp27TgA+2PXl>(G7` zuUE{msio_v1bDGSS57+d!t-Z~IV&qQ(0@?Uca*^9QY_z-w7{_+58lT_$jtCjQ zE^b5rd2by>^ViEulfuPQyn1ES&V%KbKdnz(&UkE*l#`l+0wc?uWz_j#Ub9yUcJ>mz zsIQrzQp`oj)bv}DSU;P65eR|#hyVWtx*;P$9G0}G&*RnVl}!d!4R!XrwzU5|<>qsA zp3rAxQ~Mt9y5g`1H?_r@{kL#IoVM#Y5mq|soCRa_ zS1|;vxX8F|sS|oPx!SIT4(?fep2A7eyQKbgA5x4(GD`aVw)U7BB zu+{lUt}~X!9elMr{*l}QRw6H(_th-Qs6XN}WvsRByj4u`q$rj@_;RbIuM3FzH~^HM z)|;q~q5sgxOKqo(7q2gj%oLKS>t-G@*pvB4I6CLoOR^`lNcHNzBCRhD#n14SccYne z#l7d&zkrkYnJkOO?BmJdE@SbsyC+=mnVoARC>n3BIBT^n=nTs8 zECAWxK*h+?vcbT!jE5`~j?ecp{%qxG5C~l`Vio?}VfchbbCMRU1s`dp!BVxlwGVk` z|C&Ng_;P&!FKj{Qs}Rx)BXw2K8Ca$A89g$U$l`p{ac{?Bd@r#6`?gOcldG-?MkQyC zPH2zDRq%E~F(b9!3fI}l0BPoRN>vRlMl+v34A+Wpm-mQgZePsha6CRr2Gef>mg z#S-%$A{@E=zK{SkM&$vdM4Gu+j_nrOY5)Sixc~y)KmfS*FiHt%Huc6&l+r+H{eLPn zaO5&MX7%}!{1QLM^QtIe51or2&OplJRZ60+Tdr;2-~JbBp8DpP#d}|s_(%nkTAK{9 z$HqCO#?alLBrFCFJD&y9=q<6P^~1~X*A@Hnf)Qa33$#I<{D)_!mVdQS9@ocDfIU`D zE}gC3;InPkN+PMdLnM=TZirw0WjXJ%{-;==HiWB-E?DjPolZ{Gb9c^t_)F5e@<^gbR4&JEZ4FT(myyL}-NB&a zNF)sU@8mzZMkm+ny_g&d;1ZeEnp8^dKH%IOf`912QLw-c%f1#r+ANJPv(DP=QyK3C{A zM0r1@Q0w|v>34YSGQuK#A)$5Hr59q8i@ z38{8eG;rCCsBh1gBae6Itvz5g4GdjW{<#8Ep6$OqVQRFGPa5BL6~G&tFI^?=8F&+p zpu$z$N?;aM6;84PZo0qO!4(=UT9`i#!iz6auu`2VZN3Q6)~q6xd_5Z#&Qa*pUzES) ztwA$R_(NdJCWWFmR>VIu2CHgK95z;$X@+2`u+yGF-i`B9ipv_Krd~jehF9EnhVwP{Y6n~bk%-^!dJ%vwDQ2P8XbyYOJlF{ zpd>e%d6`jY>b?H>M~6e=e(W+MvrWm@L@TD#9%pcRdaUhXWtuhS>{nxOsr#=1$G(L2 z{fT;&(a+Z|H(9{1hZm2e{C&M94=OPR{ykVSc^5c|&a^B_^!0Se=}0qEcg+NB;=EeD}20=sfxKxSpudeA8tX z*)5JUTa+^>pRG+@4MNj8mqhE;uAV9}gO7&{ZhCs%ce5JRjXq!~YQ*&3H>bG}aE;>$ zWeJ?iCCPY3M6-WPwLNx>7OEyg)%sKA_$@|pjt0{r#V-4D;|#g={@xkjWQe<|$_jAj zN~e~TAykVSlO6`I0xW;N`HHz$dx3(hvtqF5akIB^1=V%g@dcVgv&-}vSlU?P4!bY| z*n$3@v_>1fZyUakeTLHUeM%F(q1#88G6#UQx7Bx_@op}2eRP)RbD?EH!}kXx7j3`# zILhY}5f>n|#L?}%1RG4iT_3tZJNt8`Tkts?s;cg@|-(*Cjthtp#En@}Iljy010g!QLLsFPZ5`_+L1B z0Sd;*PYTwyejzRJrgsnupxtAB)`?@t6zsphj8PD*!Pi26UqH=!gw?sQ)gST6^zZCE zs>myY-57x$fS=djt(^N+b+k31J%?${0yDi5z<>_jelbDJiMlR30S>i<9U{^WYGraW z5bO-z9lm<%Ml)@cxUhWQ-*p^ATvL2GWc9JUq+Y+iME|?ncB9!qphrApD zHaCW{e+CcloSs^99`^z5PyCvIKr`rH4)ulG5$xImMQ4v9^Go$oBCqtS*r5=?X>SKj znu-$Y^222`6lgj>gxR+8x35oEH&L^W@G=FwCw2jlfXKM*^UCl04P2!2OOT~vgQs+e zNaJ9eHwZ;t^V@6Zp{OpeYqh~_(w$5pWII!4Dd2@f!S;gT^0ZCFZYkI)nc?SPY#PYa zQBbr99t2cGwE>={-Jk7Lu{6)4%@Z+_h%7j@Z$N;qVV}t?2-_0Lp>^d9;B7Rzr9s>g z_JkUcS%iC|xL+IZp5NRHzk9@Wx7GM&G0bo&uH$8UK((>jA`Nhdm=7o|K^z~wa#s@_ zgs)%(T&-3mOGd*2ZQruI+b<#0%X%61guwlPI;#m43B5Vuz#nm0F7`hR9ln({{cu0CVnKy#Yd;_54+V zs^-s(EMP7|LM%82W>MaS>_(VHRE+Kyi+>)30+!|rL zCJ2643q!;vZ|V<;jE7*1*nlT0RfiXdtlbPdkb|ol0z?KvXL!YDpfOf=Y_-<3n{H9N zJ=$fCkH(04e%yCeA_rI*4}yXxFEp6*rsY3-CvmMK=7bPQRS7L~IUF zrTAALP$|^1zN>>ZO(yRPC*VzPXN$RD#p67?AGqE3nE?=O0E(xvUa3!mJe>;)46^$G z+LaCs(5Vpp(4yOR&(z40`JMgfQ3e)a%Wn=ft@^6%3OT^>TMq?k1%$Z?Pls4~LOjZnDZLkcwwgvzuj6Y>x2H zgOw&!|F!PdZ6sww3*iTP4RW4q#XsrzkU=mRHDg#zhot~B&8FN?Too;bFf|RCM2u{i z8bdC?*DK#;JS?7jRO)d5vOOpKqLiBBH*>S{aIKPKXRpVBB>p%p>KV;d{kuY;26v(E zsfUPvg=ENMzQ)m&Eb9oqa~BZ)5AIHv6RGrt8=<}?j|IBeEblPF%aY%mtffg~F@7-~ zh}m}yc_fz#eg(WUXh%4S=Vl|R%=`<%E!Wr%7vt$oQLb!&d$wD_lglGmx_H&*m}(!aVALENrEIB9zh*qWX^tDz+FAje@W3(#Uw6#Q;b@llXa-+js79 z@<-;ga9SiB(JnDHlF>kv1z0BpkxCW=YI!M z`0EN>thF`4A%8{nBS8c_4jnE+&Xc8bvWthP>Ez>$COtqPXm4d`-dT*~SA= zoAPOH;0+sT1{1@4N_uMbtY@baF#O)AN1&?f1rfIrc@~!#UTnJ_V#+s#N_MLm9WQxM zjXY!wWU__+HZlTpB!Z)zs!%$?9{_6Qm-@aeMPiNBC>uR>m)^pD=1O=~cqHO(R&Q^T z1g6A)O$vF7GKaquv}}o~n}jceGbDlF-by^OFEJ#OUhd-hhs>iU^}_F9Z#LaZeRU2U z$Fq48<|~$m)|KwFys5uUoIogh0FwxUFO74fX_-sV{r5F1yM_ZQG3@u41bt1ge;U1u zrw2qkqp@z)eB>jOH7YOE9((|kN`~fai9_KPo7)iF$WJm9xm2b!t>^hZqj-(KT-3@c zq*A*sqtcGcsi$U)?6rNePyo!mAYz29xitAB)@4sj|pj1Ebb$)5_~&u=y_&(2ms z@-4yIJ!4A_mjXb!dJM&1%AeaCNgNKkjrT_iW0s;DbID8r8XP<{P|I!iF(8{AIkP&^ zX02169yc-9w$H%)Mn#YWE`_AJD5R%V8DvpT{$<7Dnp5F)B-lbMyD0BkuD!r_{fFaD zS>oNe;Y}ju??x$@Bbvk!1(k$PD*7ERk!JL3M%8c1c6N{Nl=_w24^y0~e?ARGXj7M6 z2C>uYb)>g8{bInFz2%l?i?a5R-7*LA>2idPu@y%{c1z?#{|wCFP;aZhH)53nw>C=(J&>c2 z!OG_piIIL?d;9iH1o>2E+kKG!>%xcGo-ZkYS&g~&aHRn@8jp3Rxl+3ri$WGiXe)M@ z((hDaZzRX%Dz-?-1Zx_g7RdS#IIMqAq7Qq2sa{QhO^DWLW0KZ6r^^|Rr)?h5KYmkqob8q_ZJ z8{?MzQb)f9{JBp15NG6VA$(q}**S^!E)wk$8)fC^V0&qwMfxe%j| zquQhzZqpo{S-oN0c&DKU#>>7+o*}*Y9ghsna9IbA&|gF^SqAs zPHJa5*Bg)7erF-ne~uq4^dMZN2jT$M#Fy1pC$=l*?3<4XZ%~LJq7>3e`x}6>q1H3T zRAvuvI>(@Y&%tiC#{81y!#Tx{ZVxnkUx64RF4g;eV(RE>ZhA^O$jgGOlGl0Xi<7Vw z1V@Fd)-2hL3U8sJ=-BtAKjDL!D+5sNU{HuOf|wy( zEgceIH-F;pRS^Ly1A?8IPlTC(yse4Bd7^K(>+`JhhM^x215tC!->XvVhdfp3JzSxx z=s)yLKh5^#e}CBw3V4W(cz!FR5v@@hRqgOfUiJ@(kI1c~TOKdM5Bm#Xw{NpQKHm%i zaJ_s%TCWbb1b;7MPjQlflG&2&Y(vC2!_eyzkf;o{=0PW)OLBEzQpE*l7-s=`}I>O zyTyF`@y+E&s{TF&D4@{f<31}ut!JI^*k557#@m;qMkSn5K1Yi#t?3M*s7n<>QfHmW zUqi!u;78&pJZ-WhAALQ)K^3#x-(PAX5L)YtYYGQ#Rpte#^V3FP+~kKT#c07`UUnhI zdO$^x!l_u-G-_RTrDKc7!2I6wCx#oPaTso)t6n)EMd(CupdaA{4S&s&0{o`&->&gD z&L=~?th&sjijXlLA#)6_R+jj9-fCJ1?MG%-E-by!Re zm3@3`52!VB710|_N3q&sVApF4M^A3W+%MXE0~3j43ByCo+EY5Ojuf0fjadeIUrvO* zhtoiX2y2RIzUJlPC-APj46YjeHkXM^6L?W(ACWd~Ka#($OAn8wl1J+xtj0yUpzFGZ zCG(lO2pE{kd7g|%mI4|K$rxIjJG|lA>+)fF*96}WyJ~6Kpba&Lz4W4__X~&a>|?>~ z?O}_)fpTK;ym}y=q}JO+lvWQXj73u9&zr{cOgM2rZPaxz8uUdX{N>?8Wbf8_v>BZ> zW0THdoJ*bTla2R#GKJnheXbz%jLYNYwR64HOVW5tvKe`acsu>BBBQHjJtwy`)GbpK zMQxC+skoNU6T;&EsuvRRFuX5;DC-i=m#f}@RX7fYdxsc?dwV>GcCjA4c2rcMqf7#M z+%RC3M37F(TkzXin5g-vE=gAA467cUbws)ahIjtZo5ev@uc7(2F9bl98B+ZP& z-}&w~`}p!^$q_k((CLsVtbX0=y5eN_DeqvxH|MeIi$E!B_}0cgU5(1VtGz`U z*Qv^JJL-G?=O1rlkH(L%p%4VLNL(z@mVs)$q$(O3{9hQ@Dbzo3qoHlkJfrBE^q@G< z;ePtwB!4-#@S+x_3z_n;xpp*(o%N6Lg4Xn>4Zl3^I1h{Xfm(E^xBfIr7=TJs@BR96 zA9EF`=MR*?HNsf+i9)8T6TSw9T_6fP@XBM#!D#S2bFg5UvQB*bs?W@nzku|DE zWk*q@7XSUqUTF$xB_2}89+kX{o@aw0<4d64zE;#5Y+c(WV{W*;~r`>`dd=5!YrDmNP28Y1f z+V&PlMUr13j8#YOGV1TDwh$ zJbX0ODm`6K?Le{^g~>O(#KTZWl+WtO{8t^&m5M$T>-x02ZC0zjCEAqTDM{lv*fpHq zZNhAPSBvEtbSTnLhose}$BhM2`TNWswof=>ez!9(k_v(8$bx}>dY8A9AnG4B%bmt4 z8XafH1r}Q{j5v`6;Y?8QCaG_Zs&trNY6`9c^@gf}*a#E~f{FDT)VSF1p%&9>zJ2VE ztLG;28|xl-LUO-lW`E>Z79KZn!rdgcp3bL>S7qJP_~SEzKdF_C_H@taZ;Ysx>3AZv zNtCyc%s!ki=4PJ!f)pJ6K>lG|{LED1ZD(C$^TNZb{ez*&oFaJpTQ-)wz$MDA&pz#v zC{BmPnwO=C^q_t0m!83Bh*@Y(q$S8Mx31<5Y|ri2{$N?@wDLa|kr-1Oo&DCRJ{@$j z5E33^s5w}VTLu0cn^T_zx^dqG$MDVO z!y%ivuAoz(C8t?bSdVk)J(99l2p(ShcK5Ac=eJdNg1Z6j(&7w(V!Sq8DuFbfapqsv z|EzR3Dw#y8ObO6c)i(K)_$2rzyJhM71Ssy%t~uSd@c6CRB&O+VVbROYpzz`N#j++* zaNx$Lfq-ORRylt3ZX}t7+BSx6`wc2WGA+aZENwiXjiLVh+_~yX9kJW%=(mymWJkxz z6A`k*LDC_|4WWxR#)E6|VN*;C>l%^Z*Ou-8#Cq%HMj2OCwfxF;A4Myfn`enXcE#0J zn(ixxOh+iBhK-(6-H`q_E`1c+PSc>x?z$q4eY6h9|`>;S_PCW3irT2Ka5B?gkC*U(02!WJXQG>MD zr>s^V^G{?oe(n9aTn=5Xl^_lz<H8gMiM?C%=oa{wS*z2b?_d)B`-KkZ}In><`zMVP* z?-(yWh2R9kjDsEw!}56TeL7~ksvW?A z!QF-8lTT-8sa=Qx6)wV?4f-^OsLF;gFcPJ?6K1%f!+Lz_9N%0p2CE8rldAZ|GQ{qs z7N2`729wlvD#cFHZQAu73gjsRe#+jk2&h~q+&GAAzY|c1wQz`E8^6XjZLD-6iIWOM zOr|oiRXByb8-&~|PlhGeQsL|1rjl}mh>C82H#(Y<&YhY$?eH3nH8@6SJPPtp_kKaKpBwdF4H!w;*dl z##wveQgv!nuCnRQdkfCJpF^8HoKt8Mc|+4!i^2o)(@S+PPePA_sOjdO(|^()iR*HT zbgk8zmT{dwb2J{re9;51$;~~F#HJPLw^!5}UcoJS&RIv}vOB=#J@PrVXWu`UV~soh zUS@f~+ht`uVGjk_IFWbv1=`WaTdByfF!;p_RSBdL$|!G)Eo zwC)gnpG$80cKmTaca1Sc#?&32azm)W{lpqAt>_dDm0;v;73c_nk!&bPwkh5P?Xz*Jf8g~v@K zLZ0X)(q0i6x%3GT&M;-wIWKU2GW0S>e(A8FibcUcC3-3?tE}$L*Yfj2%--N!-@%}q z&c7pHN?05%ri11OpH)^GUVWX75jdir^E{ZH6yOY;bI6O`u6_vhm4lN^H95WTxD|W# zkL@R*m3*`EroQDsL_+0WEQ&}jqkzjj$=Y#Hvu>}1@Z4jub1lR&j-f5jk!o7>G1wW; zBXk~|bo~)Afu$$(Nca9m;mnjNug4nombm~2Sq0_(utJAI!^bw0IpGq;^YsV~W+K1f z8!|sHuWPI9-DCaAEKnq+`xt&!;FVuIgBqWuv-h=BcodXoELbxWm15=IlwtBwEz^@a z>G^5ba&bx>T1@}bm!K}>NzMIwl}SE+cT%qyB2^94d$0b!5ySp1>g(8jMla|46dQsu zMY2KsS&dBj)>m>5$ab?#a-w^uV3+I5_lJzH#k+ra)l)5FhP5{3aU6ZR8sI4L?;Mx> z?^{fg4rmEt*_+@CI5cz)Uw8h;r#)F(w!PvI*9Xl((8I&mh zpngbTa2m+O`1EA_E?A&(;m*X+tg~7t{|lYI%?|_%lJ&=xgu+a#ruMfcM?Q+5u6zu?VKFS)q;9EbB5e_I{FyWT9mxyOsfBccyM@f^qMC%Ngq zX9!ZZM&VmjXR}%qlDmNa0*)n|y68B(V=cdzy1_GrY__27ab*{A>1P~kv2K_u?!RBJzzjt@ZmrDHfcxlxK+H|@Fex+*e-Iye~4(k;$dD+Q5 z9(cPGAzU_RoJ?BpI-s}JrDqma#(HX}I)l+WAv~4=lh4mQTc`G9No{Gv$^!5SQ9s!b zi8_R@Vx`KM*nEXvLzAXjZB`$fjSnsJs%rE&VQM6Zh{&nfd8KcTpW<4-+O@GbN6c37 z3Mhb5IrSen7l?Mvqn^%rjr)pcix&sIk1Q-1kZ)ApdEPXKn(zAT9TG61S?YhrP#^q) z8I88!beh-amHBm{tSWv>n3mb6o&8t(hXv3<|Az(IgPP)(=p$=zzljcbN?`kDwyz7s zZ(~!Nl5iP&1!+Jzsxe6RjUCStRxXr5lkMWRpD}6h{(Vq$EwP%E6CLu zgKhd!c)f9pxAU;wkp1Brz2y0*DrZ-}m}vK$&;7icP?m|=GR{~$^R?9(<)i$IWn8Je zy%*p56W@*B2*UGtFO$^a*QGeN%|KVxC6P~Ov)7ZBrYXEZFg3uH@CBF6u6q}CgueWV zp0hOE!I>YET>gy9XLpc*bDGENX}jYa7_X|VokZ|8Ipfmnj6%Y%aMs~8llFjpkXQEn z$rISjv~_gyJPamZjIz4=`fR!}pD#LH@~v{%)+>7LfXhUIh*6_jvi@!vhPj($w=ijTPXCCCU-{G|6u)FUAT)atTpD%j&x3LtV+ zlMqGppYL5Es5z<)OI^G1+C0*5 z^&&Ty_w1%RQSR01Y>nUBfUSbLf=r*Y={#S*Ypd#+h31DsQxeTy5`Sn#9<;tMmRafc zUzl!FEcQM648rCL(F?UTZQ5+VZE0%?)(xFBxsk?IXA`jkJ0xv|W^ojyA*s5}?M`hb zB_-vFmm%)%d=(65H1nnOysT0T;P6rtT(R{_Q_0zNAz)Ot!5&FrK-aI({+ygVp-z;c zuIF9RA=tO2Z3~iVbw4P-if+%pKXP8RQR~1z4Ra9QpZy?1@+$0}PxaYjR2W}eQ>U(0 zw%%$<~Ylv#07TD zUa`D)JMQ^WN%UF8xbGQkEaeEzic(Gp;nRKL%2DN+T7E7w8RmCVUTDJ49+#;nE=`lv z8;f!m*KcJ>_Oa_}C@`hSygJ~{LBK#QQ}fAQU4!wTT@?dp%j`PEFV zBgWbWr8Vlu+bR?S%JWI>-`=5D$e@}(=t*ybdKnuVs~;Ag++XzOe?|W6YAA54?Q$fz z#m9BJY?laRM9SA;Fke-}r#wzk-7Ta!f5pE^?JDprlHVw~I(L@qxQeMhYg+qEmCGy4 zkJ9}S>e-R8y(Fv9{NQVUd=gPX8r_GW$q98mvY*+rvb)GSyt;ST?85X}s?{YUNz!BB z?fZ$sr6c{0bY4coEO#Dc(7K5!7U?UH0|`xu=T+c)l6Bx_@l6%7hQrIk@bKh$k2Xl) zTJ9C9ojXE*#LMWIosL6g{$Q~TQJOOl^!_tg`Yiu!*Pco*L2H<2+w^cLv0_4pN@evD z>HU0?C-X;!Xkodp9H;+C0HhwVSjg~}@Vqf~(h#yTsrtfe_S^3Au5CNXGKF=Li=V+= z5c2xGFe}0-w9%QtS|`RHw3+@Zyxq(uu-ZGOU40`YD477t9hN|8a(|9OK>30;Of7B0 ztP}sRikxJ^YE28@(aY;CVitpO{2TZ<;34z~Psf-^W|lOx=HF;;O)vTKKOiN?AX&g&w%nO54>Fe0v?B2C_jCPQ%fGjHPo16%{CWn3Z1-A>rbBNAmcf>pvYwx75++}IMSHIY;IXC zvlXTX&ik?n7RorSPOp~U-6&puzR90#++WM%DjnN#-#a}6gBE|O#%IbQ5#y2cUWo|U zr<>U})nn`g#a!3_HC3tHJ5Am*S_sJ_Qe%0-c`T%Qd&eBCyVa? zz~@{|ye%>|^Di8jw90j6{hs6pkqy;%*3WZ3Y*S;qn{`9TImJ_d%%@f!FJ5G26KvV8 z@cY5tbo-Oy%Cn3zcm6mh`qY%&+va}1{l3maQBhH93j3BPIiBvfiV|I2FQiR~$W znm1|a_{9BxRN=_8__RS4|NDoXJhmGJ^*Q{{GG|sEz5f1&#MOn;M}=g?3lHzxtm@VM z@F8c4%MrKsjWdGs*1pkipR{%Vp4}^+etIhYPhI6@gXm$W-PT{rj9-HZAib2kC2 zpzv_c8y0us6q1&=a|Nq13Y}nOTGla_`{&K*PX&duuO+?6*6+Oh|H7SchSSG>@>Kql zwCq~C*5cEO$3bEin98M}@!dT-L1rv!nRt#<%W<>BpArC}0DnBT!OW zC*WY)`s>u~rtgQo-J8D<)P{FpnyJQMuJ+bCZeB2x*`M=zaTe||zn=3wx+k|+BO!fP zz=sNmG9X#a+Bi${r0TxU$*~(l-*4SxTbXq9($7VH{~nfTPny_$pc!IMiz0)$(u(B| z#FW?BPWx3VF{Q_wNo4{X6YvsrALmuS>n2Hrt^K>_*{Pf7X4;1Dbda>%q#<q0J?SJK@db z`!QXdHzjuYDnnE?<_J32J`vdPwkM)Abj`O-<^_$2_yO7uMG9wGjGp-&dDW{cn|yoU z#-$ z5yrvIZD6_N2<+2un_64*|F)G`QwoDx<(*(rF2;waw?2LJ&l zvFqby%R3GoQ}2pDeNsLXnpy-{8*}aR1XrID@BF0t`N%ch`<9bRxNb}_<^R%8ue+Q1>_TKT zT;I;x`c1g9a@v80zZp`P3CU)ii4f*4CF^ZUx3JehYMxBlu7Md&BJnC;4PQMYrzGSlCZ}n$!E{YSJ4jyE>Uon43Qp|(EoXDIa#<>9*VZ^e$OSbSB~;V{i5N1$QG1F=nlIhTyKHpEd^=KJNM?Yf8Ww``PTP%#xJC51$)mm*^G%cy#Y00@2P{)FEJe(aUd}32a z@8yYFjmszW=7#FIZO}L?vSqEnYyG3Sli8+wg5$>FfMVEekEE#5&=tlC%VMn$pH%ba2 z8_6T?0g7cC_CDBY&J3{$Ej1gtE4aJl%qf_f@IW(7`nGHi&(m2|&CNW}RByugpUWwC z>*5>SRq6krl_e~UAOV*$(}Az^#w?eq4GA4LZzP?#YPIOk(i;f}9w(F&>Yg}a&-(8P>(bs*90h~V?YiBg9^{$?~IC*jM zQEjusXwHXliy9m<1gp=>X=*%w%K0bl9M3{W-75Lp9aDF%`RD-&zG}|KH&=ybt~dWa z$@@?a7N0mUFfDX_b1HV~qlUlV#erukaZIS$wJ62E!{fT7VJy@w(-~g*UYQRo!%%bX b2bO>GF7Eo?x@N1H8Gyjk)z4*}Q$iB}W!ct; literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 114896eb..2665ed1e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,6 +43,8 @@ asyncache = "^0.3.1" orjson = "^3.9.10" structlog = "^23.2.0" plotly = "^5.18.0" +clipboard = "^0.0.4" +curlify = "^2.2.1" [tool.poetry.group.dev.dependencies] @@ -66,6 +68,7 @@ notebook = "^7.0.6" freezegun = "^1.2.2" snoop = "^0.4.3" rich = {extras = ["jupyter"], version = "^13.7.0"} +clipboard = "^0.0.4" [build-system] diff --git a/streamlit_app/visualizer/api.py b/streamlit_app/visualizer/api.py index 76c331e2..c080fb83 100644 --- a/streamlit_app/visualizer/api.py +++ b/streamlit_app/visualizer/api.py @@ -1,7 +1,9 @@ import json from typing import Any +import curlify import requests +from requests import PreparedRequest from skyvern.forge.sdk.schemas.tasks import TaskRequest @@ -11,7 +13,7 @@ class SkyvernClient: self.base_url = base_url self.credentials = credentials - def create_task(self, task_request_body: TaskRequest) -> str | None: + def generate_curl_params(self, task_request_body: TaskRequest) -> PreparedRequest: url = f"{self.base_url}/tasks" payload = task_request_body.model_dump() headers = { @@ -19,11 +21,23 @@ class SkyvernClient: "x-api-key": self.credentials, } + return url, payload, headers + + def create_task(self, task_request_body: TaskRequest) -> str | None: + url, payload, headers = self.generate_curl_params(task_request_body) + response = requests.post(url, headers=headers, data=json.dumps(payload)) if "task_id" not in response.json(): return None return response.json()["task_id"] + def copy_curl(self, task_request_body: TaskRequest) -> str: + url, payload, headers = self.generate_curl_params(task_request_body) + + req = requests.Request("POST", url, headers=headers, data=json.dumps(payload, indent=4)) + + return curlify.to_curl(req.prepare()) + def get_task(self, task_id: str) -> dict[str, Any] | None: """Get a task by id.""" url = f"{self.base_url}/internal/tasks/{task_id}" diff --git a/streamlit_app/visualizer/sample_data.py b/streamlit_app/visualizer/sample_data.py index 7804dd04..d8113c1d 100644 --- a/streamlit_app/visualizer/sample_data.py +++ b/streamlit_app/visualizer/sample_data.py @@ -1,16 +1,11 @@ -from pydantic import BaseModel +from skyvern.forge.sdk.schemas.tasks import TaskRequest -class SampleData(BaseModel): +class SampleTaskRequest(TaskRequest): name: str - url: str - navigation_goal: str - data_extraction_goal: str - navigation_payload: dict - extracted_information_schema: dict -geico_sample_data = SampleData( +geico_sample_data = SampleTaskRequest( name="Geico", url="https://www.geico.com", navigation_goal="Navigate through the website until you generate an auto insurance quote. Do not generate a home insurance quote. If this page contains an auto insurance quote, consider the goal achieved", diff --git a/streamlit_app/visualizer/streamlit.py b/streamlit_app/visualizer/streamlit.py index 42733901..2db32567 100644 --- a/streamlit_app/visualizer/streamlit.py +++ b/streamlit_app/visualizer/streamlit.py @@ -1,3 +1,4 @@ +import clipboard import pandas as pd import streamlit as st @@ -104,6 +105,11 @@ st.markdown("# **:dragon: Skyvern :dragon:**") st.markdown(f"### **{select_env} - {select_org}**") execute_tab, visualizer_tab = st.tabs(["Execute", "Visualizer"]) + +def copy_curl_to_clipboard(task_request_body: TaskRequest) -> None: + clipboard.copy(client.copy_curl(task_request_body=task_request_body)) + + with execute_tab: example_tabs = st.tabs([supported_example.name for supported_example in supported_examples]) @@ -111,8 +117,14 @@ with execute_tab: with example_tab: create_column, explanation_column = st.columns([1, 2]) with create_column: + run_task, copy_curl = st.columns([3, 1]) + task_request_body = supported_examples[i] + copy_curl.button( + "Copy cURL", on_click=lambda: copy_curl_to_clipboard(task_request_body=task_request_body) + ) with st.form("task_form"): - st.markdown("## Run a task") + run_task.markdown("## Run a task") + example = supported_examples[i] # Create all the fields to create a TaskRequest object st_url = st.text_input("URL*", value=example.url, key="url")