From fae471e2c133c1a2f10e40a8134e425e8553a131 Mon Sep 17 00:00:00 2001 From: Leonardo Zizzamia Date: Mon, 19 Feb 2024 23:32:03 -0800 Subject: [PATCH] docs: polished Framegear (#153) --- README.md | 3 +- site/docs/pages/framekit/framegear.mdx | 72 ++++++++++++++++-------- site/docs/pages/getting-started.mdx | 3 +- site/docs/pages/index.mdx | 3 +- site/docs/public/assets/fetch-frame.png | Bin 0 -> 87781 bytes site/sidebar.ts | 8 +-- 6 files changed, 55 insertions(+), 34 deletions(-) create mode 100644 site/docs/public/assets/fetch-frame.png diff --git a/README.md b/README.md index fe8eba272a..f4acb441db 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ OnchainKit offers three themes packed with React components and TypeScript utili - [`getFrameHtmlResponse`](https://onchainkit.xyz/framekit/get-frame-html-response) - [`getFrameMessage`](https://onchainkit.xyz/framekit/get-frame-message) - [`getFrameMetadata`](https://onchainkit.xyz/framekit/get-frame-metadata) + - [Framegear](https://onchainkit.xyz/framekit/framegear) - [Identity Kit](https://onchainkit.xyz/identitykit/introduction) - Components: @@ -136,10 +137,10 @@ Check out the following places for more OnchainKit-related content: ## Authors - [@zizzamia](https://github.com/zizzamia.png) ([X](https://twitter.com/Zizzamia)) +- [@cnasc](https://github.com/cnasc.png) ([warpcast](https://warpcast.com/cnasc)) - [@alvaroraminelli](https://github.com/alvaroraminelli.png) ([X](https://twitter.com/alvaroraminelli)) - [@robpolak](https://github.com/robpolak.png) ([X](https://twitter.com/0xr0b_eth)) - [@taycaldwell](https://github.com/taycaldwell.png) ([X](https://twitter.com/taycaldwell_)) -- [@cnasc](https://github.com/cnasc.png) ([warpcast](https://warpcast.com/cnasc)) - [@wespickett](https://github.com/wespickett.png) ([X](https://twitter.com/wespickett)) ## License diff --git a/site/docs/pages/framekit/framegear.mdx b/site/docs/pages/framekit/framegear.mdx index f2fa4c4c16..e30b977cde 100644 --- a/site/docs/pages/framekit/framegear.mdx +++ b/site/docs/pages/framekit/framegear.mdx @@ -1,6 +1,6 @@ -# framegear +# Framegear -`framegear` is a simple tool that allows you to run and test your frames locally: +**Framegear** is a simple tool that allows you to run and test your frames locally: - without publishing - without casting @@ -8,59 +8,81 @@ ## Installation and Usage -`framegear` is currently distributed as part of the [coinbase/onchainkit](https://github.com/coinbase/onchainkit.git) Git repository. +**Framegear** is currently distributed as part of the [@coinbase/onchainkit](https://github.com/coinbase/onchainkit) Git repository. -```sh -# clone the repo +:::code-group + +```bash [npm] +git clone https://github.com/coinbase/onchainkit.git + +cd onchainkit/framegear +npm install +npm run dev +``` + +```bash [yarn] git clone https://github.com/coinbase/onchainkit.git -# Use Yarn cd onchainkit/framegear yarn yarn dev +``` -# Use NPM -cd onchainkit/framegear -npm install -npm run dev +```bash [pnpm] +git clone https://github.com/coinbase/onchainkit.git -# Use PNPM cd onchainkit/framegear pnpm install pnpm run dev ``` -Visit http://localhost:1337 to start the `framegear` interface. Enter the URL of your locally running -frame (e.g., `http://localhost:3000`) and click `Fetch` to validate your frame response and start testing. +::: + +Visit http://localhost:1337 to start the **Framegear** interface. Enter the URL of your locally +running frame (e.g., `http://localhost:3000`) and click `Fetch` to validate your frame response and start testing. + +![Fetch Frame](https://onchainkit.xyz/assets/fetch-frame.png)] ### Frame-specific setup -`framegear` can validate the initial response of any frame. However, more sophisticated debugging is available -if the frame is built using `@coinbase/onchainkit` (versions `^0.8.0`). When calling the `getFrameMessage` function -pass the `allowFramegear` option to allow `framegear` to send mock frame actions. +**Framegear** can validate the initial response of any frame. For more advanced debugging capabilities, +consider building the frame using `@coinbase/onchainkit` (versions `^0.8.0`). When using the `getFrameMessage` function, +include the `allowFramegear` option to enable **Framegear** to send mock frame actions. ```ts -const result = await getFrameMessage(body, { allowFramegear: true }); +import { getFrameMessage } from '@coinbase/onchainkit'; + +// ... + +const { isValid, message } = await getFrameMessage(body, { + allowFramegear: true, // [!code focus] +}); ``` -#### An Important Security Note +### Security Tip -Frames in production should not pass the `allowFramegear` option. Exact setup will depend on the particular application, -but one example is: +When setting up frames in production, remember not to include the `allowFramegear` option. +The exact setup might vary based on the application, but here's one example: ```ts -const allowFramegear = process.env.NODE_ENV !== 'production'; +import { getFrameMessage } from '@coinbase/onchainkit'; + +const allowFramegear = process.env.NODE_ENV !== 'production'; // [!code focus] + // ... -const result = await getFrameMessage(body, { allowFramegear }); + +const { isValid, message } = await getFrameMessage(body, { + allowFramegear, // [!code focus] +}); ``` ## Current Abilities -At present, `framegear` is able to validate the initial frame response against the +At present, **Framegear** is able to validate the initial frame response against the [current Frame Specification](https://docs.farcaster.xyz/reference/frames/spec) and interact with frames through buttons using the `post` action. -`framegear` is under active development and much more functionality is on the roadmap including (but not limited to): +**Framegear** is under active development and much more functionality is on the roadmap including (but not limited to): - more button actions - text input @@ -69,4 +91,4 @@ buttons using the `post` action. - viewer liked - viewer recasted -A partial roadmap can be viewed at https://github.com/coinbase/onchainkit/issues/146 \ No newline at end of file +A partial roadmap can be viewed at https://github.com/coinbase/onchainkit/issues/146 diff --git a/site/docs/pages/getting-started.mdx b/site/docs/pages/getting-started.mdx index 3375064b96..55e83c459b 100644 --- a/site/docs/pages/getting-started.mdx +++ b/site/docs/pages/getting-started.mdx @@ -30,8 +30,7 @@ OnchainKit is divided into various theme utilities and components that are avail - [`getFrameHtmlResponse`](/framekit/get-frame-html-response) - [`getFrameMessage`](/framekit/get-frame-message) - [`getFrameMetadata`](/framekit/get-frame-metadata) - - Emulator - - [`framegear`](/framekit/framegear) + - [Framegear](/framekit/framegear) - [Identity Kit](/identitykit/introduction) - Components: diff --git a/site/docs/pages/index.mdx b/site/docs/pages/index.mdx index 1696695f93..2d4cbb71ab 100644 --- a/site/docs/pages/index.mdx +++ b/site/docs/pages/index.mdx @@ -88,8 +88,7 @@ OnchainKit offers three themes packed with React components and TypeScript utili - [`getFrameHtmlResponse`](/framekit/get-frame-html-response) - [`getFrameMessage`](/framekit/get-frame-message) - [`getFrameMetadata`](/framekit/get-frame-metadata) - - Emulator - - [`framegear`](/framekit/framegear) + - [Framegear](/framekit/framegear) - [Identity Kit](/identitykit/introduction) - Components: diff --git a/site/docs/public/assets/fetch-frame.png b/site/docs/public/assets/fetch-frame.png new file mode 100644 index 0000000000000000000000000000000000000000..77ba09fea8460256f72d60b525824dba0139fc3a GIT binary patch literal 87781 zcmeEubzGF&7B--QD3XdI5-I`$lF~4MAl=dkC@DE2%@866NK3bLcMQ!zk?xcn=^UCF zV2E#{=bU>y$9uo;{=R=NKVjaPdH1_(?X{luthMx2R+PGQ;razEEUZg1(h{mzSQj8z zSZArvp?i^;DnuU`DxqfT;;nU?&r3Jc5oS~l{_VGc!4G$&JE z=40B>^O*TA&lCRbM6QLdT01 zHE8q?B*ZHuDDz}nx51Ja)prQCI4U`*C%;53l6Vn|^pdRrTVgEU=1r^(*?j58SXe4; zu}b%dWjJz0@!|yH@2s z49!e#NxKw=XM9XN((0(CUyw#!I2zV=D}O-q=w91PifO~^Rqh_K zi$|dbs}#9N+(pM|He-5%rH$?8H$Lh_-Dfpf=LcP3*u?8`tx4ZFh8kZc=vUkfQ)nMf+Xi` zNIs9T3;`W3vAB-vpwz$b-JYFoqii2OYE?#;nk6-wxt-=R@R9B_tk|c(g!>%Abnp8u}G_Yf(C0 z5DcRFd>xC*vgvw}<7&laqJn&e;z91&dm7|Qgacqkh@Q}JQ%*!yQ`Yd3UroVF5ru;Q z+}zgWB||Y&4eWS)r?Zgwd$R(8se*$1)mXF>2D6C;yd1^uXL`*~x;jtJV6D$LG&H0j zDtk<^P}QG@Pg>F;)OPcd% zlV~qAdK>H7lpW1Sg{Q}g%?-P;fbE%!&USu`F5*DeO-bafMcLYY?)QRG;zr1TC5OsI{B?mh>`J1#S6j9e=1HujGw619QaW^cu zU0L~bP#DBVk}+jJj-CIFSO|Mz`q9S79;w@zx{C$Px|=zB;x#lUk{?M4@KI-#aAMg5 zgJq&*8E=M>IT90+b^Yd)6}u5AO}9*(=exF{Cr@umW=0%I%uBlB!{8g=*xZOs>YJ)m z%-|B5EPX>2JL`36Lg~8!`KkxY^zO>48k{OGG%l#hs*o~WVGd_TY6v9RKU|9LGb^<(6m}v#y4C6=hDnlw3cg+~ljL@*~@Xj#dFr%<@ zZFb?qch?_5G7gpZQ{Jb)kG~*yNBv=Pv6@Lnn@so^6EssT`^sQY%!7L$S<^HgDLtZ5 z7Rl^Wqf#Hq78>NwzLLG0t*K^^9Wux=7-c~=_mkT6?Mb>$I5j&4@T0RM8yAoD;_ zCPIy-=cBp*kWXJrzgBXQ?o5qj5WP&lESGX9)MWfz|(*06oDOah@ zz2t~8a$RQK9C^zEjdvRL<>}>qj>)L|$P37sQ9XgEz;Hrc22Hc*F6?+pfkgWN`{*jS zi7!=URhssQm4Ke@{+X5V<-sMrVN9yhFwsDFuR#*xqbCB3w~)(+Bg&$%^_#yK;(Q*7 z{_Tp}vQjs$*)|h%mvZ@Y$33m+ESz}$Tgz9*uhPb)lZ&M)iA8}$iMHjN7Bgf`we!=~>Q z!aKQjlka`zX?9FOng|Yb4YIc9e_Hz>Y_V?2R)~0p;QzqhXO#Nfc(5gwkcm+K-Gg`6 z-@OYI2%HN15_l<)O-kEemZHp1Z7dV2n6Fr=I2OMaICO(bpvu|4e{s0WvFq`|g#}Ba zOruv#9Tfe1^WlEA7ZE0*?e{ceEMKoY7$zSsuvxP)gzLcdoi3v9qh-;t1otHG8{yBy z;Wd0l7zH+S1O+A7B%DjY6FS*?vC+0UiX7w`a%J&cMHL0rcGmDu>eg1fEkev8x^7i& z3hw-M>UBYf9Y@X{f`C8@OI6y(NC|>4C=UabwD&%2f+T&rH~2ZqE>Vcwt51rKdrkke|Lx zDUdvqc-ENh0}F`=`PA~3k@!oX&J_odQ2|%ko!)DP^7ir%JNm!&7I7JkO+T{@opx-l z^+N|4kbCkr(2ITO`H&eA6{8iu2f0gYZlXF|p)z9{P#t9z%pz?ge>06PeN~#`8V#RE z=iZvy@W6)wO0rxA`PkzxLzo)J^=MVu)N{epJtrqBqehKokx%R66box`a<)beB871g@B;u^+N z$E$?WYD#NvKTvoYSm;o^Icpv&_z;y$sxo}J`>tjBj^F1-!L5)({QZD)IvY}TdWN_6 zA8r-)WE3WEd>&}b!pkt1CsVXcwBdE%+%bD7_OQP5H?!wvr5*R<`JwZlwL7$R&2E?U zo54Fc5=)*aqQ}2gR?n-<&vjsGzh*g`Y>w^AY{!ycyBAgcZIi8`ejqF}!bi@Abw{Vd zg``fpFwdVSiPv*IBeMUPbW;RUm>+0E01u33-=#_7M{%KV0;}O<6ijP?zdlNedeq?d5+&2gvme;YX8&7lF)@jpe9nE)`TDd-~n`=;a-2OKA(lGNO z^D@&V=Bt`@h?X&DlTbwZXs2XsJCEn+t* ztWN^YJjK%?&itz#d^6kbe29?gN?^kdjpsla+mOukz@saHN|bLBO{wz^8a`q9tRhpn$~$uFqqg#lDVp4qRb_ zUkEnkpVyMuj96#Be~yEN_0AmY?C--VtkGn5G zKA!pG`Ybj04omEjxQq;VePr~)#Kgw#8PuNW%N`l{0ROqPwjCB0`JK~WY#CL$4ep+n>({O@&TB6;L*JHnGx{ zFt-M42Ks<-uyfxR`rhClU;V4gzckhQS5rZ>nx*@fCE z@p^h)OUAFGsgH#viX|fH6&qq=HQL8h?_V|4ORD+ckTiN{ zZu(psIO{60+YtmOdIYnPBN; znqh_->-O&N*VEJ6U2>W*vp{4qG2BYp5aBsXEQ*EwU;Lrnz?u7Wk8YD=Bghx`)=Mm$ z^R)lZe_mb)-jlxZ|9=1Xhl>uK58jL74toFgzw8amH>mNy8XmaWH~_TL-p+i+_}|P6 zGz1eP_}|2SNW%Yi>>nrMf1>!W!|}f}_IH)}KjrZ+J^erB@jvD9A8hacpYk9U|LCwX zv^89Rtga}qM3<#mkgz&ZA_c*$a#b!S`^|o9@aD*$z5MU{U%J}T-X1FEjobR^%|(-g zou#Gvr*GGuPrbP++Zn?>mz9xV=mrt*emV9tRuLm@ah^6p)Va?^=-SAP8l%@HUVOr5 zkbe5~Y2WY*Y#iV7J1fIV2_6ULcMa;?BsS0B5lVk~f8}=ICVd$WjmKWnK)&8s*3MQt zTVxRAfN_e_{|3KmmBY$>7>$TW&A2;yf@GM-W}I*BTOwp8fReY37vXl>sL4Nst^SZR znQ%R}H$_TrIA1URvr%(kIA*;bq5B&BcP;c?Lra{$>}2J3a(vX6uUG9;hSO3=}MxvRT768F;e)H#US`+uGI)2m=ToTTS=T&VS=chncIIOROb zP}CWtQgpr;?HPT4dNPeBamp(-^C`d6+IVRbRk!YgsRrF)&&8f385hsZFIU&fs@8Xf z)+%Pkw|&=Mhti5S(|EdtRLM_VBxiY^bFeoPloG);=W_2T(Y%9$0oMoH@Z~kyzrT2W z{30sT)Z{&Mbu@G`u|VW_GiYtk$XV6LXS4Y^P999r>B5Bzx4IZGR`x3B4NfZR$l7)gkCXj5dxdopAA)d;CZ~ADDI6%MChWs)U-p%`rljNP(U zHogTucA9XQLisI{QfWT6eN&Ry;z_R%Lnm^)XLReKpE`Zq9^*S2j|w|$zNJoWRE5?R zTa_XFMb75km0_pRTH{ty^NA{lq1~IYl({Et?Crh?$1&>{%~Vcw~zD z`oxp?3=r9|a_e~UDLUr$|KZRd^<06l4W;!kl9Avw%{UY z8gWl|{KZ_`Qey5Qocx|nOD%em*~P_05o3QN;?m!oEH8f#=B{In94Ftm8!4^N#-hN6 z9!I+!qe|*m@~b(ozl*kS8K{-BYidpjf(R^c56-DWP7dwRv5i&Rhuhs(?{@nKnV?Uu zL?2L0)ivJumz4dv`9So7k2r{Di)^QvwKlIDnl;95bSUgXs?81`j?M(s)?ZAzWSGMh6a-_N~ zYwnQV)=`|{3K1|0mq9HsY3R*ARwkuUfDPsAt0L!@TL@uxODcBFMGO;r@ zQ)vNykIhC6>lG6r6Ub`V=80oR$?!0lB40yZ_nKc*9HGWD;p=9m{i%Eyh^c2w@Xe%4 zlsvD2I+Ryw=BimOCKE3rrLRQ~dVP?halc<`HNwfeR+`Wn${^MF*cZ0b*rFD0H@LT5`t=@mKvrhp-h90@Ca%?(# zYVsZJ^owsVbO&9-8$PzE--U`7HBIg&OjZolubeIj$;|PAQ^rV%**gF`$a)p4J5hB_ zHOKNxh`^3?)Pcv|#?;OD8x5@8koxXlER{4PE-6!3Inm>+8{@rnY$Z#_jlN`^x(H3G zmm3~Y176`0JoVoMb_X8a{_r(M`6 zLV_sFUhOi0FDl*FW%32;<2${f>XSw?rOTB=112I2M<1bqnA#?0O9Wghh??Yxdx2EJ ztu%DFqs*f~z}aln0YC-@x6h|I##N?(nLK#P=~C3eCgimz&fI=;qba=>qzVZXX~w@B>X1Re)n~k z06dr+-Aye#S!5>$X)EYB{iPHxT+_X}PJ6idZ;ikF7g46>CS*~LM6(P6wl0h*&cvih z1~73pnRcxD-RGAlt4y{A=*eN(m$xa`D5}VGpg-IZfUavup0&+_`eT8lRxEjgRn4R1 z+L4|1c@%%WJ5@XP7_fm_sctfPKsrV}HGOyzvJDpD^{=6$mi5bfsCcKzCF(xcql27g z*}e>J%b^OiPx(wOT$rBPnn1(M$)8)pW-ZOu6#z_0WbECH0s#^UAzpV#Z(ON@0EJkM z0t319msFhI(FR+OVUnNF22fg}fk2znSTW%_trFFtM7=#e4iKd~a)$2*XVJ_e@p8Oz z<|*H#`@3*AbDMY8NusL(qKvg)a8k-!Pm9!NQhhgMM5O#x#?LjtB@t}?P)5nan9h#( zi`LaH1qfO0SdR@fA?uR=t4W3SC0<)31))N8q=Cl>JP2j?o=5cQ=;eak%E&s`yiQu( zWZ$5e9gBn_y@IvanFEXNy=U-lAsUR1uqgv%C`YrPh1NGh<+Jrz`4x(517eW+J8Y|% zW%v`M!q}p}|i6EXuGRto*`NL3zM?^2~@?n0z z(UP=V%}k)+`0;Wedh&<*K)Y-tEQtL(kTgPkChGck`hKq;&0B zNy>pj#7B+-Poj3TI=)d9Z%wzoKxXJ4-4)!H|VoH>8sRYZp_64{F(N}_Sw z5X%G(kxgyP$3?1ZMcrd)IG#m5z@%`(YX7yBKFXL1Q)rBY)3h&x!0l^tq#(p?YIFqyooUeKRL(J@cOxA?WlsPWx%Dwc|a z<(%8{_R;3+?>yosddBE6{4VRER@(jg+u7c_RgWvX^s^kY!ed-k0??3NGbs8?sTiJS zm&l15ntud8wW{NN?GjuGDIp&3H6ZvX%j5IVn0`IRq9gi_fIUCCAa>9ABlp#jYYygQ zdI_VGJI9llrQf22&!?Q>sydXMX$puh9(|_^t>re{kjHDWUvh%#`PRVkYF-8JWuDM* z#CCmLLV62-Bxg&n9o~YJ)O&9!-jGw5we|Bbx%{Nd_?nH41{ zGzU&+*1wiTpyk};)f0E>^v#Tx(H23zn1F_5zT(;?31Yn}d)vg?rj{c#f`+3jZ>Fc* zyRtwpXwC9g!Er#d|LzLkF(tHyM5QA(Gt0px)KFx9mJGcv>8d}LD))IzSBCyFJ8~f$ zVfjxK^!5}5jZu&HHuziSSJEeW(ie4lD5LNUjy`6#%A#CK3TUR0bosG1Rju&H$*oW# zp^cYEl>;(ZT# z(pa*ufA3nB_bmhW-Ec}+(LvpdIa#=6jM_q8KMa9SMt}KkO7|qjT1`Q5XDDqQiP^u@ z^VQc~;Mw&~?U_%#>GTYl|(DL?Xa#R;c5X$vX#nFcVm%~df0yw3#v0; zC@6>7sxW0^RPqGtjg$<79L`)enMN+XO$YX**syI~?Pf>;epnStA>5sJ{JFPYhfLr= zksOqN{iw!ZdVL`4k%X|vjJ-~V2Z_i2)|`ztRrdhfOW69=^;+RaiL9MB@@i0HR+F1O zYTA)>n<~v#NQLIiql07vLwKm(?)Cb{X0=_JvEb}RDff9)RPh?`v!37JiRf{=pw1~e zc30t5oa-W{h8Ljxn2Xy7yyw>ULvBk|sqe@0&PB3lPlxpzE5twfbOUVrqkn9>C_!U@ zSH-!$gPZNtQD% zZ`t_@mohS%GJU%mx&johqJwCA0jr)sqtzrdZTVwxd`EhhheMQ+lF;VstTq?xpT@kap;k9dFgL(cqP{E)7% z74%Q{cYCSVW$okC$f&Cwk;}S?mG1)Y#vqgZSeaCZ;`%l9Dq9|#)h|28)&@`ukHX{h zjSvM;L>|^P;>Zq&`VfxBh)UlAwCDI3t?@I zQtK??jx--8lx9aP;~fnSO*iCGbvpV+v)kPwyl!2jvy-l?n1ef#Fu z)J%vT2lg&y=;?Af14{+);-@2chodzWa!bdK7E^-Av&7Bf?~lE`MEM@*v@fs#GiwIa z{+;C!PtA>EWFs}k6HsY0<-PgL8q-EHnAG76rp;c(HGghGo6%eYH#n~zNjnf9SoLNT z5zojwPahtp(n2*_A||9P`HVmUFlELJH>WbG0MOha`0BWteJqw-bJ0dw~-6_ljbe@i@z9`G zZ1|!V05~^?*EL<&DjADt@em-Rai}Dw5-r7xTlH{8bH(pvw!cXKJAITPK$*EgrF*t7LD4bQuYBQbU6uo&$KfnVVVMt%%Z8@|>R)IxYzACT%JaY%_Kl=76WIU{c8&BZ7a?XS2K(PF_6oChzXG}u2C$|nffFr(kbpLJ#YiNhvd(EL*8E1w`tk)B7oiR(YZUfj% z>;8d`H1-DdzE%j4ejrKP=yL85v@i_i?|i(ux?2;!$LF@Uk(zH%`YdFO1=^Q4WU)qFdfk zm)cSn*uB&dgoh7uwr|aJRtkH*LjcW@chdC;@9vk;q?oM{^5+<4SMQCMW^uRZvuaCs%|L1+T1i_^=l>g19}o&;U!o`?rTd{QF_>Pg}CAu~l8az$P%C z!8|}f$-^>`CKu@webK?H&njBpZD7INGwHF}uAFIH@k2lIhfVlo0U!{yNGBoMBvq&;!nCN$9SO<=zWG+7%O%j1UN|!H!UVV>p zx?aD+-?V=J7c2jXri0TrxUC`Ho*n|MJbQL1p;eUi&SI}hJB1m{RK%{MCY@`uNH&~_ z1o2>yXbSb=lRE~rYYhX|O934>e0+q#L~yzHKu1Soow8gE~o8(m2%sCY_`V5TGS#=YWyXJQ`te*rJCtx#|}kAI}_Z zdDLt!nI*V1arZ{k)S?}f-Z~i`37OMO-+^R1mD-w+F{ApnJv@on=bY!9eic)BX!x-O z8$qs?C!$?XFVz~iqijAF|TB1N%2`A_zO&UcW>bL;+i@m^E^J*o)jp%dIInDrR|mLZ0OYUFU8a=e&HcYj?6L z4nA`DL8a`HX@BBHs^H==tM&TBt#(C~_$-x3;iB$4Rfw!d40eJG>PD=S-+FqI#Bb;K ze%+>Ql%wA)0)!5U!!lNe0gbeq{~-mMYxV=#r7T)ZQm2d(CM728)YfP9~H*Geqn6%pt zVW4^3P@XPa8uRWFCHdx8dtZ`%xUs=iHvJnakxjmY?5>fMOTg<`++RoxV$6ZARj)%3 zFow{*OzR;pHrO`I<~s!{U0n3gCE@D7JB(*<;;QoV*aR7TksHvdbF0*K13{XHrqz!q zVYw5RyMQ(bOdAWm@~qmvrU%0k%WX;C*T@U=i-=pSH!B2k2>9OdeLQ;>~zF@nNlKz#M7X!mAQjoe_!uE z0E^<)2CAd8nR09l2i<}thBZWWj_hb|S{mUqH8XjB8^U12VN>x_uwi%9*9Gs2_wPLnPSJ3ui?u*Bvq z7XAjn@gg41BYnN5GTJDQ7OXX+h|0Dg=kW_KZtu3MrWnNuQpU@dSheKSp_$wN1{ zA;}ond%1%>_n9F~Nyy^K=e4Sp{LG>&_vZN$MiAP2GfMviSwB(_vfg9EtR6Sx%c&L! zOOiw7*LtOB%KQXpCIvk5X1-R<<~tGef8XK*`<0>2`_1lywkGje%4V4Z9P(VB6YdhP z%boaEdG7Q|rOTonW?Moy5_Pk4Ad!P;iz`gs)4{#5K9=LOTU3<4S zRziS#XHzAy-icfiTHOg#kX}X9*F*iAOW@tSAimlHFXMW!Ugv3#_8hwm*R)%CKtiAZB~t*=3lFiJ}mO~GL( zG0<=(-WS>t#i3|uRO4uVE53_7)7ur5E@RgX!Q}SS!`Q{^-Iw$Fk5M)N_pg_Mqvw75 zs-C?{2qwld)R*6`v#6Pxvd{QYy~5Fs$I-#Aoe~gKdRGG&JM$1h-1TnL{<_%mgW6@5 zH>33R3W@K!%CA9x>n@noYTik3R4qi*0*;iludz>Scaa}@$Uw?l)lnN?n2q2oUw<^- z*!-;BcFds!Y@y13*utgLqgVr|{4W#?@$63@G)6@V&!-y|#jsbHw3DL?1GQc6k=8=R z#JqHsK-|c0z-YOwS;65Uz1=t_+bCDyOp3cF8h46HA%>Fg`ICW_+TA+`lho})BOGM4 z`Kd#WeQ5@{bO%o7jxcWm$uQO+tVYOf^|ePEcPtKs3hukJnkUK&AB?8Tg!aU6TXtAa zXdY3%x*NF|Rgq7Z+WuHd_ntK7G8@lo#d}^4D+Y+9AM!M2vK&=a{>Uf`#JX(^6cSzL z&_us5BSl6Z$4_2}cg=qFtICdnv+{#aXP8M7(v&~7 z^T;_X)AllrznE$`)66WClKMLG_FWAs8x!qfGHSlC1YuYk(8?@RX!1?@96oOt<)_k@!HEvtgh-_dCqb8HUE)P=Dh7~aTMs%%f!M75I~NI`l(&;zm(qj{`#LS}CKm$fXJICK!)-PY7h zJrH>gKX;K_V!-j+Z`hSPeR6Xk0{)(_i}JrHjR6^EuUNr0^du_dk7)wXShi z*d5~-EetCU-2mr2f^?{3?!TM#?|afkMe^Ux?_(60A30fI`+r&E^Kl1k8;iT$n$LgQ zioXfY>Dw=tX*Y|ao>lHLvsGjgBL(9M&QuI!$QkQHxQUrRW2-`Q=eZg1NbL0 zkV;S%uvMu*q4ZVQ8u4$n+)e}PK$ZK@rA#$V)=i^xBtxm0Sd@0`+zxsIIOQgqdrlL8 zMKk{V_ENFyu7x%L-7H##qVt`x4Ey{0Ba;fFLBCo<(daAZ)uvPEg@&NY1{OoP>ZUa3 zseVpvl+}IG9Eki-&r#pOAZl^Ts5?P84bVFvpn4T3LKAb53v2IAAFcczr#<3csCJ2I zD@ckm9xXLjOg6qdnV@^~SK9BTDE?WT&^@hcM=Eps0hKi?3V|7rzMOR9{0TG5I2&-+ zSj2cMFaMn6D0;3fl8x;Ov&IK;CJlmmjmt+kF*X8RL-3WMH)dZ(muuMMPI`@-{aCA{ zJx(x)cfwn3s>4gnryAzBld~YbY&Kj|Kjf6Ak_rCp7vcu)6D>T46S4<9G@w%AC#W| z>3+uBID^@P&p*&OjI5-|MM#S^)Wt3Dn?&l-0}%`b^xCXi{UX8X(u=yD)5z1AJ3PK7 z;^F2Bl|cSlSp^r0N|Mn8nU8A$Ih^Nan!3vG6{!&a)UkB!%dSJM>MoM5;$cBY zt4Qt~&5UDuip(Owk!}5UhDdsSvX<+)la24GPzE#O09Gsnm}3tvUlS= z(I!$Fhw^5FavS7t)`;?l7cO2bArE=`v+1t9rCg+XCrf=L} zxSYPee!kGH1F!Ghig~?yg+l=XhyGN8Jl=WVhJM*AZE#UzGf0e;^S&Jv_6eL~3@T3u z|8HCT^87%yo)nWtE*&MWRj@+r)|tNS*;o$OooA;B@mp74oI71)EF9ajP5ul&= z?J5B%ck9zdHt9%Ky$`GWUw+sQ>Bmn1NB;s44RRhHC=VIh%}G_#pZ4o_6XW#+-Z(rRJhB+687-oRpW38kQ+ZcsA&)m zC`D8CYIBzFQssC7#3bZF$mBLiX>IEw?6LTH62A|kSdG@mH>h3!#dlXTKhA2TScVW} zlt*m!TK#l8E&41t#k3B~L!ruybO!GHB9;PQlf?0&IZfW*xBAL%IVvyyea6KGPXOBQ zt9F9!gPi>0daj*cC4yslv5>TAP0tiHJ3RN{nS-{FGR1rs$Ul`w7?qdnZjikIX6|rR zdb%f?IzuT@vCn7(U&Zybmf@_dXebTfgSt9`yj+>?7uL;Spgh8K(< zO&fthnxIxkSfF|xW}PPA5P83~yIV=&&A_WuQT=m3e_pA8$NI~D{#gz` zuAV-1rX!jQQ0}ZI=%>AQr|akS+xd8I{P(7`Dp}zK`truCva(0gK>enJK%d3|j{4uJ(t{JW7S+J7f3^F2r{S?dV@`ba) zo2PoE_(=m!YkRxg(}JuE-zVWUaQ^b;%hJF`8-p^ItgK+2pIZJoQQ8M!?&k?7|6JT3 z3!W+3Lq@}(l)wUl#q&>p7)W9*ue*=ZTSm+hslK9m*?+l|#oFL;RvxaURDbqxIv?p! z(O@zfw(3<*m$k};z5%=Jhu^13>wp8;`|!<~=8XIY7QdW27Pi#OMkyTZpPnZQ>KMQS zHS-_eJx#ptGbQ{ne&YLHfRdN#Pgn3BVj2AAhm1b=s2t*Fw@qv&erQ#gDD>D!vQA+=$!S&h?+Z_PI;k*w_pr z6|D!mD`_C+z%kY(^JCRs(G@zZXqbO3Oak1Ah;(Q2yIv;_RcnXF@+oSunL1 zEj>gZRHJP5h!dq{d>;5wTqJt^Tz>trtIOWhyMAZ9Y{_3q(nl-&;61JK1m4;oJMhOn zq@?E!r)L0WN&|o$zbx^=j{%*Pc>*9*AF$uF+`i?16Otcqg9icTHr<^`+5Bk^qONB_ z`oh-|Go@$&2MbpLxx61=hrJRl(62p3Uun-7Y)*|4Zr>%_KmIR(fAk=_cDh}d?kMV? z-9MR&pgzbJL`Gk<-if4}AY%QY#c3IF$QTsE4ie+hurR=lxc@bIAnpNFE@4qgGvKpih@03GyW>R=zU5En&@fOH#!7DVmkN?vN_`|ZUlD0%QHa}8ap`Yjy%FsG+x>PHM zLXPR?T9Q?^9H)34HNTd~zoZ(?jQ5x=AojjpOsU(_1B#OlGJM|k)GocbjuMacFhDYj zu2t+--5MsWUQpqm4SxSHP)bl)xllcD1qjw4w^sERb0k z23+S(1!2EBpQxU5GM8^{a^SPPzZHz*1V!_Jou$+EIN8RFpg*K*F*QB+@@#3h7H1$L}JKx@xJk99BOzB=LEq#w$lT) zzIr=VtvkH?yNwDC69uJHpp@b+kVu7WUiR;b6Y|qNeWgYRp%!vh z-kCh*OkfCSPyv-eWDAwWK8r*D2ZQpP&O^Img^z|`-oJR}9G=t`P842KBh-t&!gS*n zAe6ex^LzdVJ%NBrr@RbAfY2TGDF6g8y0@mP7Un3p-tRo7nibR7Y{;&e9maq`U!`+1 zVIrjgvCGTHw;v?E2LIM6^PUV^45mGsE3ANpkWJ+t( zJpI+i{Jue~mjwTEV(IP?hc!0e6o1>YG4(mrM&v3jv4odB9i$Ev0G;Cd_S33UX3c#2 zstHhP)k|>)L?P)w73xmf;!s{J$ir8t0|h-k+ph5=`PFLzr<70Un9nd^z9l6CZ`_UH zs|0CY3vrX^)KJ9_r>RJlU2NF>Y@4=IpWbYNaBLf(M(@P(LLHX{X8gHkK?YpJMYfvY zw6)u_E}<83Kml%v|22+VSF0Y-$ZCHCb#bbBu9vbj%Bs{LJ3Xp(g7Ckd%I|8z>oMt9 zxKqLE_-^g$;c@kI!`UG15pGf%cWT{XE?_aZRYZKGxjJD<-%@{utC(L4GNIcNx zpK5#*4_oGSC_7Ae-ei6J7W$Cv4BYx?DF}P*;gDi|{bOb+9-+3%`6UKwdz_t`i^q#B zSMp?nsydxlE=6;}-a4qSPJFxr;jyy!C#Y~O99!fFLNFlm^^kQ8rtnE@=y?c~QG2yP5w zyClsu(EAjdK$`~fS}1_9OsC=AfjnK_=`h|+TaePz2OQ{3>r-FJ z4TP)u(iLKTT%El|c`o`>@+tz<5!tEt5t+vFv4kHmCsL>MNt@HW<6ng8ht^OgKkK;q zl~u4D+F7MdE917~+hynB>3ajQ#M>3!EfUX+`P}c8Fi@GJ)S5_W-G-n|p{|s&w@@xw z;_QfFp@3HJLQgbPedt;AcRhJuM>6=dW_+Vn%Y%2DT`;LicURj_TH1TN-CXLydy9RAe}QhIeK=w=ZgKo}>Gn%~ zca~6g*f?UBr9qbA*=sqUnr+d!(Mg8zLk^<@m8q^_EW4sC-7 zWgDBv=0!NQBXNtV7vPP2>G4W#2K$I21snjLOFTYFkalVNh2s5kw zfZ7C0le;-#zl@X+({u9krQB|dSGDHX8xBj@cIy&d0Up6q?S}%gL`9wY_;KG1v5FUw zX&ajYZG!CD(pnFfB!$PB{5F*pQcYF&MD?y5`M}jxnHWpBN#HCBG~E(%>m|wx^FKd7 z7wg*(1@RsBL5{uqn+&un(p@H;6XE80@5q^Wco`v8pDIxxKwrimA`|+fiI1~F*vbH*Z#ReEA&kIBjd&l6w_6Uk-l@>%9QveHVArRu(*c`}HY_p7ODUAT z=k(c#b2(aFrJN@{8cOz(F^E^n137wqt9wLx3b^G#7-RY~w zJ~u#$a6^)2ipdV6dZ^QV`{JL*vB-DI!q=eE)CqbrSQr=>e|dJ>@n?x@fr2N?vMV*s zpUe5q92!YHQ~acxn)5(O6fR-;l+%8G)i9^l$#`D&8wUTCpLmhb7jIA)wArflC{%Yc z#2nX!qN=?3Z){%2Zb%#G?Nhq*FhLjI z%mpe-?oJA}d+9LL_>C{efIGb_OTJ{j&}VN$^0`-CH_?EumJ0+ z>ZjbYclQq{f(ylY$#?cdUIu5Cx(M7R^4Qc^>+SKy`!8njICt;TS9e;OF0(M*at);V z8OClsafo&9M=|rpeTndTD=;B_q^c|66nX4qXbo{mvR>2-G<3lkt?ST;;w#HuRz=5A z$gn(uHD27xf zT0C{)9AL>lK5J}67`Oso?lYk`C)BC@bI3pQ9v9-XT+;dp? zju*V_=2x;C+dI@BD#7Aw%gWsa-f{P4c}AAg`TjCmVCfzXDa-Hp7(93_W%zK>r93EE zi{x}nhSnP2!tBRWJl|TmizjU8Ess-|Zy9Vd3TU|BJmmRiHcxKpHBTsezU|hPx~bmL ztop8geS^Pg3R{n+WmxCRZAN*7r>M75+}k72xk0ez^ss1O;F*UL?e6d7G%h+#$qU?J zWjavb@aE#&Dq(-#Z?g~ZFz=**S7zPvd9Qw9P=}=nJjE~{`tF<6-Yn4+z~i-E**Z4` ziv7(8$_(W0DsSy63VMIY;7q`l_2z=S4?lC5LQ&2A{Ac^!o&EVtAYED{^$On4b}uws zR5{pAx)njc!-sv-2?>pnJ;_IS$e;Dja)mMeXP1Bf>+pK!#zwiN+zsobJFCYoE=(UY zJrw#tF0!w&@raU5L7VxPr1m%)d1&}192qm(P~cW6FDGLi89rg{K2n_=dNDL%33to* ztZs@!X5LPXEvn_$Jh`1jLmFZYyaM*%hu5hM;9RV?14;!N!DC!|yY4r0d0O}PyF=xAta7X1-Dt7obhr>- z{!@21+`>TmXkfix&_Ha8mAz)zGK4AzgqXjaj-_-fpM2YYW=^_dssC-O_(WL-GlJP&Fq0;<1LvwLnNT^%ycika7F* zOIGJoZ29!FBzvNFyDi>qTAlLfc*K?vm1hUngc-GGLJrZ3xT_slvwv$(G`zgt3^jO7 z<&aOx(0w8}&a8@y(7 z@@ukbj>DEGN$<_q^c2X@a$mffIhS&?dOy?@T3}q2 zbgUIz`#h~jru*k}StuL{b8LRFUwg0F6cPNBap-3l=%^Af`Wh~n%E@u?s7ThIN z>!gQwURPKrEq10{^JVjd#pYU>tet|@E0#FjZ(W^Rs3XicGLYC+45U#{pYU29QNCla zG}*?p(y79|bF99jKlS9Tt)^w=8^BPSBpQ?|?iIS`OMS-PpBNR%^{t0tu-rw_UM21R zMA%4m^_rfduewt%u_%oU5EyK?_@U4OgfMr1x|M#`vVD8&_2By8R8ReTr6pM&s|298 z%-(DE{vhB`5iGn!W;DtoGPYoc{1b(Hhr>tiP}Ky*gmOg*cXU6PBa3iV%ctAv;mYyu zlXSyF0rH8MOnmm$jNAz!-^|R+o0Sy~N0xG@uB{uqx6d*BP^?d-ZJ(BjQIO-PvwDKH z_lR^^AjFgd?M`U{w!MWe=eeA-bj!xxD#t3kGpdQO*~#xMFcGJj_hfX@=H3UvBWGVK z!s~#x*QZOzPWq&NJ^gXpwa>!)@4l1c$(y{@{CyfZ3qYEC?imE#mKkeN&arV7U}g#- zLu@=T{4G7V!BeKQU&(9rwjt54@$jk);+eCymoM*jyio@F{_4+ahpr(X|DAR*0q|6| zKqA5vyqv?a`ieC%_TBHq86m_8HVS$g@stSdezV$wKvZMW^!~xZG+C z@Ez) zU9H%}k$$2Lk7{g+$%^RKe?-5;+%?uA3tPpKos>%vh; zg*jF@)yXX8>a09d(7s}GLxi|v=SHQ&5BS(ym(Rbv$G~aSy6S9G>Yz-LahwqMScB)> zQy*Ksdwbs*G(!J~@rFG>Tq~dVE|o*K`~$+y**BD2>m6Eek^0f1hI@sQ{b*i@f97mE znL@!HFhH4YsixL>et|?u{!5K6+l+H=D?wltV_aM)@Wz(6NA$u)@hL&?I$k1^Lex)z z0`@v92_E2cf*Gwu_Oo&~6^sqVQu|wqp@twho%C$1CjOj1T=tOrgY==QAaLv1FWD(p z+OISNcUV>G?TFQb+uW+bfr3>wm1`2Jto{P$MQ2z!KDT5#M0lNhxV-KhKiNH4cOALgr27uiA27xp49kB}Xjl!_4xtM@}_d zG3Ch>GbvXPY7;-W@mQ{f$H=C^0FQTasby!U|)ycm6I*I`#S*$g?-GLVG`KKA&t%OvDWS>(9Zzzc;Z zafU^^h--MkZ4q0f?{}n)bb1kQ>QmfprF!16eh2=t_Izbpqutxv+XxA)>-(NnLUjt1 z%@rx0{j#9nnO*Zd=d~}0+#IL>G52PIKvA)_0ofn1l9YGy^DrtUagA5W8aUT8NRWcWw2O$N8dxCRIOLXt;9DJ3q5j5o9IlJ zKT+pA5|tdR0P&hztHS+b&qw3(eePG=3~q`sY8o_gvaSzZt+16ZO+9T7-%iO75pJud z=#t!rM2@t?8H~;6nA3SNRE}l~k9m*a<)k`1B|2h|*z(ceWqj$$tuKl8ezTYCtX;Qd z*qi9V@crhN0)F#c)370Ut|&2B!tg=OU&ucq@4Wx%I7RiP-0lpKr;lX_n>pKPY={)-E;g(%*2IbHJ?uof1|%XOKH^@y$rZ_1KdljkF7DZJmRUhn;N z@5V^+%8jqij-^=MO)Tq{oO7dq{){P+4+;4EIN6E6b$qTxwRghPG?hk2;??H77t-tl z%VGs>Zu^gLmEKMNCuo)A=Cz_l8iMzLqvNY0cjR97)vQyAHO`^8bFMTTOcn1bl43Dv zs(AI{bbiC&`wj2UOaatfgSZHR7FRw{rqm?1Jyn2}K1{*!XcW9o$ z4msaPyJtI%)+IaT`3UP&@Bch<+Fxg{;MnNz{KpN=P}AMc^eo*OU% zzN6Tvx?@7zxeAq);wFMg2WG>iJaxgJYpIdoM#Fn7pO!gIR*wzK%T39|{Ju0CWU#)Z z%2*99fUM*bo}vc|akZrlJGLjd`@HtOCg%NB%1XDb`*}&g=?4j>6-)c#-BxKI>t6z$ zk-mCeoa@3C=zj3x52BN1q`*fnZvpO&i#&J8p8fiK6H$NU(^$=-WLx>VuHvS_fX|cJ zgHvv~NxsD0)UzB7Nt@1__guZ@2l^-DRgyU4*8Pd#1;w~bj90dkQV*!rJ`3f9;!ihT z&7cbyb@hn>N+~wAW!f3vtAtSRk@Vp7+h6*P%#Ys5@!l6XaX}MqOlOrmRR6WgJ9fYA zW)C&(TORi;IJ~xr@&5S3#G~PUqv0tMOLosiNoB+^f5Bj0?!?P%Lx=s2`TR2C(~I#g zY+#Q2*S21~w)e#^J+O})0`;Mr;dubVfy3**G2Tz0KE5lgBmFIT|HKq~@%ud77%gAb zFU#{i73T(5%XfqQrx!WBVPiU8AG&dqR?^Yq@y06@M2=sc^fSo||6GWjyjy!zeW_vD zb4B%5At&Sxmcq46E#C5wtb=U5p6pPf#FWb|CK9v4)Z2AN)|)E7%O7^vLR#Jz+>`CH z^OU@KXD#K<`&|4alJ+zjU&4Lh5U2TI%jYdq)C|-@$}?W@qpF1+=2Zu8i-`T?kDU=C z_9m;dl_puefHIzg16?&b%fVf6f`X6!f9ja0fkwDor-fA}PXQ%vHSbF{$q8jjzd&fko zWr50wP%#TA6949|3ls18|X2-hr72h~MZD`NVE?kEF9QELr?o#JaYczBx;M`%m;X==)9 z5;D7angs zsL#snV%2VT_@$;qS&W3v;?+CVo;O$0l+Kcp$k5^FaVN`9Ubgu;syYRp+9J9JL?s23 zf36u4)h)dIgP>fZP{@8yD7x~2tG>10k`GKAUI(aMCxxM5{pQK7E8@qXd3(Q@&ae++l&r7`WoO?CpYGsdUv?tTHx|q3+R(l ztb(PT{8~iWSL<&enqC}!_d^9`GBL_#$i3gt|M(bkH@$CP2F5rHE;%#%$;qjl0d#C+ zSS%U-oNM)XO1#lGp`k8ufji0D=^jJNIAOv;C$978A|A|}+#qqI2y{?Rgd1vJ85tSX zQ~Vrs4q91F?kBbw;xtmLwL1Zg@|D1ep=duTCT-_lW<=}U~h+{yJ8$osH} z^HlMZcEukYQucBET{SZHauUDp7|EiHzspkjf0SsddRkO52D1^wZL**(WLUmo2^xB^3t}&A*?@seccp^TIbAc+9_h zs}ji$At)|VuUfKlGAGEqaB3wk$D)VJ)QNI36=|`R?$gf^xMTGs42!e2ng~Mc#5=R= z9%XgZHOeVoI7M8pkIOg=u6|*oRWoa}BCo~0Xdv#f_?)})FG7?Sy)oLn?MUU56Y{e4 zDfzr6^K$m}FWDzMs%IhZb9?XRgqy}fH_8I8%kPViI>WWHNN_jnx*ezKH{D(P$>;Mx z|Jr`pJp09x>*o&lCyoZye0Q+BCn)6<)HFEeEFC%M#r)A>E1DtDHbd?anFAudh2%L<*vD$l=Nv@N)OJ28iUe=Ycc^WdS75xnV@ z+iz6yYSygxS#u7q+D|O@@2U(;aY6?zd(4Itq|*jkUl=%hWiKd{;fCVON_#q?b(1^) z{$q+SqmX9e#&9*WH~AAs%6XQ^1dN(GI9k0VGQw{Sr2FojhbxEl;Y}{PH zGs@AHP@*{n+*2Dw#{5@5mG{i^jr1$)3JV?+o4OB6Cwh9!9YI+|bb5<2-~Co-Tf@O!=$_9Ru9zn z>-ID=%xk^ZqLSJvP%!V?tDAG@@rjbwoT&44nfGoFwpXtTaEs&QB*dPGzVNYYm6+N5s#%FU=$<%H)87}BZ{UHi8MxRrD z8!`V@bjCH-^_f*RHLHk+!QHPSoi;TnMl8SRTCcZogCAu&^DuL$l6%a8YCk{D%lx3o z`L?m~zFp+-?P-5>pUv<74vvA&GESv{?bVIjih`xI<^&4;qYYiE>ZH2tJZl(MIGvmW zyp~~0Uz}dn0~v}1aE;xiP*!AW!&O*Z{B{Aq^kUQRUjLD1QYgqN^w&M5V(tl%UuviB z7|p!Qeg*2bF26T$nVoZiae=+#XZdL}M6PG_n_35qFB-}6kIB|V#Rpc@WQWRO_g>ykS@ANBVZa;m`?GAQ2mYt z_^g>KV^buviT$AC&UAO1Kl1+@6^bRuP;pM~qiLx9w}!4Dhi(omiyH)?tEcb`w)-oS-yh&o<`SbsOmeYgfJQSPhXqNl4 z%B?Fvla&(p?o6i%bF**=wX`NH`7g+kH~|{thwva}+PeJ5$vx4{)J@8Nmj90o(_ z_@#aB#%s-+1|&HRxMxV;Xv?&v{v%KKeAr9%JaxhJy-2s70q76ktnjA+{m;ys8$+nu zpZgWE{`ukeuA=k#r9b#xzxRhiG$@j112~I9cFdPZs)ry=H>KCk{>xSrd%(NR%yK@>vY#RV--L0KUlwgD#=mfj0M?3^?N~dF7$kDY zKLF(%vsH@I@%@+BCzk>=8y3Y*V@M$BF-A7-7rAyGG}Qe=$8~(5GSqZG@X{QrJsjr1 zsh+ho!2kKHY-ON+y280V)1f)Q2Gkd|lB8wSUs#fF13&KlU~*3pG78Z0)oW#Zr=145T6N#P}S}gT%@5ec@F@=a`^-s&2oPb`Sb{&@k%P- z`-AFlN|ghBjpfUwXqNi}bBG=#qT=P^1?)oYw)4Ls_&;9&W|gnKbo~6!*=KFd-;{09 zeqP5VM|)WREn2wMVLHL1B6)aK80RPE=pds=&q1sHGdy^QP;ee}P&@ zkr%33suKP>t=`SrR z*F6J!lW8p5A3_~i>gVUjq^g-1fdvIf(oqN5nm`lp(>-QA4|(g}7q6GRY=uSa%zSv% zdS1WVS9^!o5Bet_+O;uxFPR|o>glY63bpp8^P{EF-Hl$7I%DQ-F3L&N*JdB%qgvW0 zB7##kYsT5jt0kV?t!DRTIOE*vfHuy41n-)CF*?tzF^|Go3I*+=Ti z!m{3Wjx7lu>x*u*i6sxxdl`Mb^0Q6cTITA!eJYiG{mRJ^4+NW!Kvg_iBrp~#U)fX%L z(>@Q~n=g1gj$iZD&sXS=diWyaH3o8M>d5c2clzrI!gcugDw%ajk+a#Xpxq8BW z`)FUP*3H_2J&b&Oe3{EsP2?@@^=RdjcYeF0qr-M6rek{{r{$Q^TA$#Spy{MnYCoVn zL96#C&w(6HUlE)pv$H$9sxI0fjl1pYkLw3@JCbf>LhQs7kiUQgRWq(9s=31>)f#5O5 zPihvh-tduSJk3GFJipFqA?(OIoAO6u;j(4H)9Di{`bL z^(kyOryjJl*n7+|VEmg#`b3iQu%c&?lj1@et1~$}gCFQL)Z;Hh_3y47aN+ze8oWtO z*ZgC7l=Ik!3yk4PG|cjjFUqv0TEwcGY^?V&pH;D^=lP8q=_B@<39T{w4;JpF`SV}G zb7+#c92+Qwmscs*$mHrtYec#B>bvEE4|8X^ZtUtLmvj=l-ymriSQ z4`%9eF77G}&MTzlx5;_gyJ{t6hTXcWCWdw`PgZ-lib%RcuP(96r}KOhEFNeegg0RH z;FeqtVW;wT=TWu()q(7jqE3y_87~&GtNYO$y$~;UhbG0ma;!>bzOu~Vr)SXjr;gs} zn-&{H&N{Cz{G_o^6fp(}qS+U>yS#LNaW*luk0_yW+MF_WzvkuX6>d|h^Y2NJWGP)^ z{V(dO=Z^3AP?XP>nDOr29zV@kAqAzE*BlQwu+T8+hWSKJaJ? zs+T=e20fz8-|yZ3V1>^gOZo2}#6Lor6ehlAMLM>9jq3VTaA-XN3!X2a8nIYF zSo6CMMe1q&lsw8W8G=wS{qt~k(c8N0y4`h9m2k|XdGwyr4bLveF}b%6k*SFm470I_ zg`A<7O4}N|o_HWE?&RLLfZ1<+)2%#JO=ftbyxK=dYvq%PG{d5LA}v54pFr!AiG*iB zO1EG+r%u4oIgj;90Zb5!F38fhl}@bbEH$bD2)G?;nliopYd#wZMbc7f5_pmTCD36t z(}ZK!)0py{%@}4%Vr~wfGrCpxsv(lYbILKFHJbsMs6qY)ZAUYB`e{-$?wp}FZj-sg*2Hx2D8zl0^!Y=!|vsnz2HK{YG7H<;2I zC1TxA$^@0paSy4e?TCI@V_c05zQ`){SxQ{_I$?! z=?LZJe5k$NcLbu9kCh6z*opiQ;(=>(42;pu3}Lg-Ynde6W_L*tUF^!Wo|ev>M9uIp zMA!SZ3~9^=K-uen0_?iwqxdygCLYkst^-wGX2w2lrT+!{ky^@ zSTg=<$3|o~iXeoAu{TQ&|NEy?{_zgd4IDiP zPRXJa@dJwJDP-ATZ9Nmx3XO7~AQo*FS{&$OJOl(0UY^M==Mn$;&B!g2QbOhz%|; z4XgzTH_;aALR`X)d=>~9#;dQ5ZdMAL>B+y_iQDYdCLp9$iVvzY4gUc`GM-ZXkDsQP z3|$ovHI>X@%#zQ6Sye3h*s#2{kr+JL$BYhAB;W)j=F4EW3$cU2AMRD?@!U#)Bds1P z$K`G)*?>6Df_K|dD02V~KK6SQRHA^&z(Jzl`}1kNVP+EZU$XI&OmY%7yK$}j;k3;x zUzBsu(e2FIzvrK$lfW;6jl~$+)R0pmDAEu4llI5;+c1NF$;JO-WDX5D4dY$Y?jwH5 z8k-P^GL=1Jcp6l{$rwlIhnEQzf7tcEzv+dmntb6SoH!w3js}XqtK&e;5@{Zs(z=tI z*P*97i#`!#;m4gvQs`z$1l9+tQ~%rkzrSJI0Pvq`_d&zHXNQ12WfkObAd+=&f$1cz z>B8u#|C#E3b_^C(QF22UW#b1xbemOBKp^cX33zw5SJCGF;a0~DXti3R`~sqIK&$Kl zhGCtT>xbg~mn`ulS+fCe(X68#XngnS32f$H-ihi&0MQmetWT$>`;WAL1nmRpbS~CU ze=(_G%*@y}1*1xxbp9pKIFU~qbtMQxrw7`|y=VvO8igx7vITCRfF~j|&9_Zg|urE9oe57fB~QB)EY1bdvE$oQS`q}cJo0HjNOi^ zIPxD10ub%)Rbb9q8^~`j6)1}_{B#uJBFM=u1>+~_!htrB*K(t95Uk|{^M0!DxQ3i| zhyrZ4*&+e!L#+bEYt7Jg9HodcP$c%+=e0PBJOW$nx9fmD>cUn3MYXGrq z@7XozWa6HD#;jpeI9|wlIj4_C{^g zJtT>wfRJ{pNMnc$P(}lkS$vj=jJlHR;7BjK%nHXkvB@ylVV{igEo1uPC_)jx1NY<#Yx#C#LPF>V42TQuhqhX@YlaBGW-lA7u~$$`uxQ(zk76_eA5Y`~u;0lT&rRDVR7 z#E$U8Zij9{X$79|9^lB^Ave(@WhO3Uc@BfeBnmO=&K9g&kvMJD(Jy;ElQ8)mKmAM8 znS{x|q?r82Ou_^a;F*L8t#zPa6DE_QHIpQnE>DC(pGlJZvOfQ^(M*yAVUn3739U0Z zlO&;y8)lLuw6=LBNrLdmOp=6#Br{18TB#w=BuQvVGLs~sr3iT@N%F71`uiU%U?-Q}`Op*j)l9?pQOp@f6FE&$2LgTN` zRFWXtVy2RWR$I(elF(9QrjmsALVTu@1fd9Nrji8lPG>4fXxU_@l4QCCo~b0EanVTR znMx8Qr8-kdf~eM+=QcDXnR#wQD>k#}XP(>8YS;gtp4((hL>qNwvt*L#7`t5B+)MW{ zvh6!5y{hb${`+THbx6g2{xW9if}fTvX>PWEc_2!Rmpq^D9LH1;*B&NQZTB}~XF*Fx zSTojgDKbh{o>iw;n3{}zio-pRiCgBvAm%B~X8O#m%`Yrja0T3(nV7h@80XwX+4wd9 ze>*`>3^ywm_R5R+a+yXO0Kj4kn7G9+I$&Soq{51+gIxpYUR^NK^|yDz6##z4(bbrT zI3jG!(u>s{G4zFs_H8h28}1!WGY`qJJ=RDZ_cVj#>e?-uvGgXb2MLc3kCUl>_D)xD z&C^K!FstH2KKj;xS&>ZTILGq?_na>z&b2$b-(CxSWUG78wcBiV4E~XDEi<$9>ZQ(@ zw->g2BuB>|KQvJK!Y{V#VDR0K=}jbmp*aqelDVvd9wz(}rA?;3t}f+72hYMu8+Cod zKEh!FNEXI3H%xas34VSAy!}K2|3o-jkmQ)3A{C21huZ@<%a-Eb;26Sj8pobxM~_nt zP}cn0tKgdqmpplv1!Jo8Ukj5QQ%t|_$1y%r%5rAuH0%o;3y{q|7rJja2GNa#1C2~b zKzIAXN}WYVH!&fZ_TK8x=gr&8+uQ{u%w3DLW`A8H!E=NGnvpkt;vhv>7Ns&CT^oD- z-ns^}IUJR;Qg`04{_GnWsTm(gm>6oB$eS4PbeZV-Zm{DPtqPtz>14+7zVz{PgG>b& zAa5P7?V1SC1}49ZXL2uK^5Xb>^sN)~Az*Sd0e$o}B|QEL2PSVntA##s(Y*~cVTsd2 zISYR2cA?LdOP`H7fB!CouC&fyu>}3Zonezvu=5C_xeHQO4^B z#v3S&)xby_d{`OKKE;A*Lb^|YV-+=qQBBt??h4gATzjS77k1Wg5C0xpo4E zoSCpHMvWij?P>=KfMk^5aGOP;uV_c1yP6svXL2(4Kq~$x$#>+ZS;TnbiOaP1klNgi-_z zMge@6b)%@$K-N_Nl>cVPIhKOc6Fr1_hjbJjAfxbQ861ox5gk~wrWEto`4ybYtHCyF zoJ=zS+H*9nnxRX6231=ek)MH^bqYwVUmaA2l6WoP%wzm!A#PS23$t{*`l}l#@f84N zr3*h%ks!#(1%P-SO~JevuLYCb(Db*rw3BY-rPU~}e$pgUOGoF{V!L~UgTMdsr!}f4 z$WmbcQv;K*PiZMYVv4WcR)h~IY#=dgM)>9)$3Xub6Kh$G5-S--k{bgttm8_S2RQOx zC2vKxN?d;6bK_j-l*lC`i$+*Awi=dcYfd#L~+h8Bk z4#1fWmPw+mB|@%%yYOLk75Xp~6v#SQaovs0XpalB8sJ=7f`3PQ9cEqEuv(8o=nW&@ zH_4&QJuVQY7nOJSb?HDGp1T#yMiT`(-4%cK1}h6F?6We(?jn6Cm66 z1|3v{lU7{baUUIFV0s76$%j&0UyoimmA=k`M%=7*5H#^=;vUiNf>YTY@m2&k>nJdR zN=?)V>cQrNuoo;JpzXE(>pCw57z)a|!HTqJVydU@@=T#Cq0_S@OWb=?XuBnG09HyZEW^5mDUN{%tugyzQT5-a9 zoITiX*<=}jBRw!#6u~Pa7WOibl0u*86LfqEgGW}IqKc9EHK44$bO>cr;+G&$-qHpw z`%xIB07j|7&adbQ1Cuc*Taybmf(VS{6#)IcV@cRXEGvK>E8=kt$Fc$V>ke$YF$R#$IcgVJP{Vl`JgXy-_|RypXZitzHiDDn9KiuG^oQIR0X=mAU0VS9OW zCjvbz1cEVf1DJ|)z^mtWEkSwJPzVwluR;t4FvZrJK zi8JyySep103JWwb1yh_8-9b zqTgyj9j~gRdvBJ-nX- z6TC1j#k3XEhY^DX4wx1&0HQW5DaH*!Nv#~0V0UOEb%vzs0$r(6QIxEsD-QpH5ZL5HSX^NC6VvWg8eo)8wmyQJMh~(%Tks7gQ5OcX8TQS<7B?#f zXdinnKLwS|A`qk^v6HKDvkrg+%13_tj`}*w0Sb1KBrckpMGu~Q7Wcdfj91G6>c}H; zXgPA2gp^$YNOl{ip`9AZwW^@v9$-$C5 z%W%!rsgTH^CVDGlC`=;P#sja4J-~D~-3pWvo0#<)t5J;rHKSBa@4NCM zrvW8YM?YIbatx1_OF+Fs_^{wLpjFO8TpuwNxQVddHV3P%9s(ToDpjbzt_z-;+2iY3`?>vbiptx2ZUyeLx%A5kcBlv&C@W^Z>^_mcabo@h1dd^ zwIF&G>R%rOnNTy25JE>l%8mkszkKw&fxu6?0sNNt1mALf9?ZJ7EeVY*Gh{(FWgX>k z{^=*s5v8V0CaB-t4IXrly0S8kgIzPiVDK)sx z7B)7}04h36n4n$j&O?shw&oMQ=WTa1P*D%t(DXc9-0l3^C)a*}4R3mFzY$??GPuHe z!CJ{1kP%>|SwO{EKDd6SUqB?jv~8jNyv*bgmcgttFn*so3Kz}MQ2_h~&r2>CMRpU^QC6iRDiVaf-3^ee5!1m~k#4y59ev!5+ABh| zet?tI#3_kNZU`9S=mF;{>{XjCY^J+FbTNW9c?S?b$s6CyG#_T=S8S0)XEDI6OPi1n zpAzPVA_lX>URa}FOQh_Fk^NDtQIQ~~@ckx$7|$W+t5nF1Gdm zG#j0FA1LKNL8pn+sFYU#%ByP3mmr_PWovlC5pm49kV#P>gWcvg(dg#ZF1U?9sdxnw zAd*9_!@=b8RiT|sb$!8d`leXm5Ho}uVdF$=U(~kSf|pMvJ;C=@uRQ?d;BCa^e3}4d z3+^tA4FNCi5KuofU^R-_C)lm@e9KEz*Fx?|8fHm5VCo&dfK~ch8mfVdU~WOZgWst` zA5dB`0pl-BUU?CxtqwxHgPPfkPSh`q0;}};aD_T5w(uQi@Im7z=Fy>k&}-txeO_}L zZWc2YR5aDy2luTKTUas8-}W+M<_MWC20c-1D22wwA>eaG=RDNH#^4-qFdPmdXtQLp zHi%hu)jiy&1Sywb)+PBZXkLoU53`t-jgORe#Ak-QV!pRN? zz2J%rhEW%STA%yL5l;`ot34!9gR#cla2wz3JE^Q`Pk?e6W?e4zKqZhL&P*^-#TOj` zul6~}W~+Wa>YLo!3;cHa$Pbj?AO^n#=kji)78+UVhJtMJq=jNoW^M)@(Vk!-j*(69 zpsC?cpW--}TzeE`Gq(Yk1M>xx<^R%BJ;MS9n*^m$&pYHPK;Kkdh2}`%$P{6gVmGF7 zG(TKK2*w^@$JG*&pkh$;txrChTwsR!APzf8eau;sLjnMf$^%+x&R7?m1vAmt4XAd8 zk5ECmLwl-A0(t}bt8%UxQ)2+ULRAA2i+V4?=&|i^i?#Z1pL?+Y*|gA<@40PuU{GSg|r2=@K}DC?P|p&~(u^coOpW`AJ}r&8h8bo?+CwO53S z>jNjL&mHqAo`YbB)g01IFu{f^Sp?9Iy3B#1O$r2ttIA!7GcRO)nDwIr`K~eu`vsVl zxjY}IKgf`~*7HA>%#RR1V;!KpPR$b^fkPQ#&%XCY7&1zO%6B$FzO?@92wwvirzkeh zLg#%1N_}*pdx_Ji8OH&XtgjG>M)zIE6~; zeg@P(q_hOZ%n)`ner>6W>RPC`ggmraaH*g z07Z-`1y-z4Ou+?@bd)ooC(gvJMuq7U_*|u@ie6&#V+%oGZc5>rsKZ69Xji8KuGKqv z7tG3hjQgz1U6}P{$3pbW36LeQf>}QoC8Hni%Pk&jxIyityAVb;!QXw&Qd5MJ&3@1k0~Lv!7}*35+VN{~FxepytkL2Yzn{BLUy6S!Y2szyrDNIwbY`^1kI7ck@3MSKHDr5>$`9f;iLZe25z%k z|A4P{LLT=;7bxn#nX)PtNBe_HKt+?sLMVh$pfO)_RGML_2;~j~)#()|6)QpESBv+f zH3ozxa0Ea`{c`7GWRnYSv6iU+<*UvTAe#~|gV3_~Pv8od8hkTBM?hZaKweyVInZ#Q z^a`Zx=P>?jb7C+n-u)h0YDc;cv&v=hpL00_vs!*8q2EBtpog=hKP87dF>)<{Pvxo8 z!6-64Kv`701{DcHq;G-lzWUJ@!>OY{Mwbnvs7w%U%Mh$N^g#)g+-G2j!&7w=7kgsv-$>bpPBn}{<3Pok`5ybmX)V$VUgo61Q=)dro{evj6O2JvE@-^l&8YlO-B8T7!fs-kNdl;r zfJaS`hkjjHor5m94Xo0(f#&7t2m{kP(0_dDcSTXmG6CneFF)wwW*r4MR4SiKq7a6| z$jdL**jvsH@IgCVa37X4fxS%Whj&amH?&8S1|T|zevicfQVlD1{pGuI84%qxY(2gN z6(&RA0pl3MZ@3to1hu-NA66@%@_q|0V*PAv_;5Y}3GT&2>ptH^eH~^8H;eQFjT)r31|axJ*f)C+aW7)G59QZ{R=4sJ8o4Df2rjus4JWN8#A zJj{z#sJeie*_wEae|-SXO#WrbW6XNYSHZa7Oj==q^2aIIO26!`1j=vl&eT`2GLj9V-RSa#jovj`pN(B38QHjpkbDD58L} zpT8+85+HZFU~jkM-?2Ia8PnOuQJH{WG8|z|M?Fkw&KEeBuho$ixZRlHAr6P}nh&U! z*axhmkg$0+PVL-+l$)QOgFdSMt^%9hjAGn^(;uH8cU`JqB80k=BKra5d0#Oi0fapd z&&75g?mMql;ZTc$Jn8GN6&OA76D;RX z>sDC|dowWriRWnJz9e@TWco;W&Mn-mqoDs(${snO#A*j;q4SQ75Du|Tfb^zsouAPa zmw*=Le%H^BlW8VRP>qq7QZPB6TBxG2?QGD(PTNU5u)JIR7Ul4jup6gPl{c!#Kt}`f zR2p<)N)T3pRa)s_xd6A>9iWw$AnwbyCjjRYs(R=n93ap}fJ4BfBoKvA1x8fQO5$!g zDFXnc zCz>P`f%NHijnY2cIg`4Nwo3h1F`thbptuw zy<8Y4aAaK%kW-HrPtn1Ckkf&(SN`Y-$SJ(^;?SKZi^}Of2>lgOrQhPt;TCkx@H?l6 z`?M{*PPrM+(ueXMlo7qcR z@zAU`xjsFx{%qka!|59lLmNQ8H+(&{4>#*M=)xDqpQTVXum;D$CPxy(I&>5tfWybg z<_xkTWiDX6^gPXMvVs(YrTX|6ZcL^lv%5k?7 zI1rx!6NIOo7(^4MexOeSHnk7o&Y9U3bX=M)6&J-r(<3vwkAI;Dc(`2NeNxCt&!Tq$ z3OmokZl(s9&9nmf@API`flR&fpJ@d`W9nvFflN33aiFVaT7gXQhGtrUOp6{UGp#_T z3(QO_km>aJAFV(r=js}CT*i(q{er!ZA)V*z_H-F-Xg`N5KOvn5M=yo0S8R%G{^tM% zL0&;RtOZliybAo=RSBI1|NZTMzJW1#;3lCqn8!~n;Q8L(n=}WvnFKgr5(B3WAbuI; zHF(9ZlSNnHW-$UBjJ~Z0P&njaL_Tp9T1XDX4B#*84eGd#pnhs4c(>Kd`f+9JP;mjY z8l}&Z!??a&;7cz#n1U955Tyd@fPi{T5c=HU6I|z&o-XdhRzooXkXN^HpcTO+sAU!H z>Ai^y6Ua~rua_2h53T$r`M|8N(hAsWC^MMV!eLrB1pK7Vz`!k;w=WD6y3kRC){v;B zyjO}asYuHZ*V+b^ZX+Wjy^r@_MVpKbKMM=H=H6v`Q_;T=dm-4oof0HvzbCT8elPrI zT=P`9zwMj2y|MJS6=H9)3PcW^MepdcV_j?YctT@OyuG3pZGJ5L_^YJb%au@3f!2@f zDdS@TdKn&Lp*CIBb{k*(v+088qJ04vLVgkiT5Z-eO&wDTSBs9ZeH>%%)~utx!f9ln zYLvY(HB>cH`@NC%e@f)Pz|+u$;?5~X*QB2z^XNHeh9T6kHL#HLoG&dr6s$-;?4NZn?RO%6T<}o<6#Vy#q1lJ9y*> zYe|Xe-r>+6agSwmS8ujGC}iNm=9piW6^eN|t+bv*r8ce6NOyJ;)JhT*EBPv0(~;o$ z{CQQVPI_9P33(Y>8$b?`ToA4vE4Ex%d#Ta4h#PQ9?@W>xU6XbiZoIyyTU7P!1GH@f zMTwt8eQo#Yvx4UhcHxh^JkP8MV0k;(d}((Wdi4SfJfFUgUGU~I0TunaEP%#*TVH6c z-if=Tn53rRJzy>UguSMM1wIMO?TyRi8if!|Jd56rjsFsNam=^3S5&?~+4Cl=a^dA& z=$Y*ZBPT48PWw3^S*GLs^m{~>J7@8Jw?kzZ$z!_9>L+QV9p7#>9NMI1y;|+%{^Vd* zM`IiFB`9Y$pQNwaLG|-_t^L~2Oze?f)=dxRv0>}zx}Q5ROD82{+}~!@;B6PF&*ZT1 zMeh4M-!6DojrjLt`ZZSweTul~nfIdR`mq-(1}-g9Tjk`dj7Oqcap`8tg$zzpL65jz z`H69FQQJ>Kmy1^o2vAE;^y3O%_cA1%>yD0(7t?ld`bX@hL)SK;jT<*6W#6)2gds4) z0midu&z>9zNGuCG#N#ICxmxOgaKcDhtzNR11L==a`qwugv$HnGzsV|jQFG&T-iuHW zDh{c$r`S1FB5^v99G3ASGIe!J4TIal)py7Ibz5EyRI@u8o0=7(xtHd%^i^V1HMJi} zX9ufJ9$f5`&~ldBXAr$PCe%P{Yr@H%JC769I*)gYD(hT1j$w*Wa>62MA$vWuFJFwW zM(fGSfxJjIl!jp+l=ICeq(l4O;Mt=``#nzVesSMcwPGtU2B&H&%D$G|6cbKI$FZM` z(P8mo0~I!1%_T2X2UnPxqLYsz$Sv+V2+C>k_rdeXfl!1< zpUz$M?9+CV;!K;pq%?iO!cbL=dL!!^(YyE!o&0(#zxlR?QTdZ^jNBD>Rhv+@tRj=U z4|PX#I{wf`-`2X4FV%)d(!|n)CM17jW_DzAY+tDpgL_IJwG0r5pi9K*880R#>G{&u zca)FaL!n`aS0s0vRg6|*DrZT;^cOrYc-jpuFF`A!$RUc141Yn9p&S+k9IK?omY|g= zq))eD-Bn>-ICXGbd2;5@G(IVsJ0#+0vZKK=dCZl=+}1PP2eZjfExlQ|7uP-{P?g*r z-RBXQi*eoVf}x%-?c=;;05fQ*PS|+KIBiTr1pj%Hl#NxcZo{yoDopI$(OZo+b`E** zYvL=@@{#|{+`nAKFF>NI`Mk$fSq3UilBd`yZa#Y5OZv1Fw)A$wn)0IsgJU^V7CTCc`1hu2{E&HhL1?EgZQCd~{NN2KH zjnm-!vB4T{2w}MOiXQG&pT#5RadYVtorcx<-jdY!sqy~OjVPm z_=#f0Sw*k)$^{n;9Xb=6R4U?CF3OCxC|e~BXUzRPQCT_Ak=PWJcfs8>rRT$PNq>tByYVkxs@ zevvLe=KW%Z*rW)XylrYw`2~E46yxFMu18)<*PjO2KUeom?JJOMxWuYt_*H7tImaAc z-*=~dwS20aOOC0&{}OgYqx@J;T7^mSrnK(M!fc)i@ki9vS1j4tP3E$1esJ19ey{s! z?l1G#%Z%17$=Xu5)9Yt{f3b4bqy1jTAAI}TwyQh(r{K@ukxiT@h~UU}2TYp>O8jzy zipFiG3KPF+F2E$H5ij_`V-@EM)kvWMv9n*EQHQ^!2VJhSuCn@OoY)q}&`-ps`_?3W z?#Njmd~^3=iAViM{o50)pNV{|rnV@%B&oI4zPZ@oCNp}1%ktAdq9&EE+eb%-`WkA+ zJ8J5C^Mr-tTGFT>c=_X|PIM+j;1F_?L@Iq_;Z{#0Kx3Z|76tJTX#}b;50x z%0f4#|I^-ehBdWqTSYl4D4wGTiZt~IMhS?7E=5#OLs3ELqDH_VQlxi-qEds6UPYSp z-ie?Pr5k!jLMJq7q2{g4iRXGA``+(+@Au^wUtnkNz1EszjxopFYX_e>zCIeco_MaY zB{idLo6gMBKFq1RV?PB%y0-lEH{)L`%k+#N_24fQ_Z4dY>rrN$pnyMv_sT?`!OWh} z!l%}2?fV+{HL)8wTV_P2Of)q$U6|@AA#dZkM0=fq)qU`c34~GiK?#f7Gi7RLXD+ar z3Pha9ntj5v$}5=P=T51j&X6%fHNksyauj{XThs7fUS3A+s1x^QJv%x&?1#hc-Wk_N z2;ctr__wtj#cAQ@j(D}mM|ks=f<1@D?oBj`UuzSv(f6OGOI&LF2-&7Zm>RRQ0Xun&R#TC>h#2kT~O~J z6uEWr+U)4O>_2VppsTONAL0xxjBV)0?cmljjTn1i`m9% zargE(eBED=v2V;gt#sMs{o}!|0;_R@4_09c76waInq%9A8m~9$GOZnux^%8&*M2@$ zmb~SndtYBAeE4uOH&n*SmXgzYtAad4F-7}g<7!aoftFm>(`zdP+Dc~a72{gvsh95l z00vSUbANYU1(D5RuuKXZ(>rB%Rq!5l`qN$_QEq+aQLXpzbuAHOsB6dRlxrycN9-?^CEX_h3yH)wJ)d+}#Q<;xRj02I&dff;~YeJE#Ib`p-t(39;$ zzG<+e+$^Wdb{Mb4Yp(UWIz_#%=00E;kemy&rtqqi2c-f~Jgm)ELqr|&$UWPprN z%Mx%MQ;)1NLYbOAD{sm#5Rr{@A|?BJ6v{4t!&ick4+=-OhGgYrSL&LVh^hjNm%?+1 zo9X#*N}eGJ_|Nx>*VZ`H2osyIkt|o9;OF%l^W)lCnahYM=6gr(YZGYYyF;)AqrIy` z;x-YljmFPT=99<5&^r=)9^qOl71FUw6LTzh+2#A;r3>xGkt3~X29|7Jt%aM_bwGmV zIS{MR zkcN6A)VNSHuNb_n)U&-j+(3l;3`aN#>b6i5<0DR@JeOvNja$9>*Na~>IANcC&epeS zz9DQg)+A?uZC4v3mop0q^n@uq!FrCUxh*$-%QNroUmBvIaw?azF2rrQ6VjYv-BQK6 zTju-I{r!1_wTCwqblA=!zv;W3+9MnH06_^dvQ>_5(YI|sZlzkS*=oM{eXpBDgu_s9 zauKq20R+Ff(N?0uB~)_=g+-c@Zi*ON>~RtzQNta_5-W};si$DSPE6!>rm7ZT6K6&0 zBx39*p`6LH+P9;^unvqL4+wiqm{px*g_s9d8PWYI{ox_rG(b@uxDMI;%pbpGj{6ZC zv}U&SApLCzINJl%mb}sffd;M)3pK2=(o@B=I`d15T~=z&Ln4ugg{6k`d*AAxbg1w; zU^x=~yb_>^e~!#Ll}w&2niA~MY{Qx)q&K)eARz3Q#NB4aXL@OCy?a99I3O}aO(HBO z9TYKAelqSGe&58G1_COywm694$=kPY+l%lZ>z&KPR@RV?=QE3l2Z#ymL9uX2p_q>Z zj3>=SWcN1pVM1`T&kmb?F;k1KIwWFrpN0SQ2T}Jf*gYF@Rk!Wc;z!&z@76{i zKWxi4fcy%t`==P$_52x+dh?4-?UW5LX`}aU`~U@rAmX)an>YX5f&&}E03IzyOR}VI z7}H?JfF146ernl4qTu->ogc;2n_U@6Mm-Lcl3HlPkV{u4tCv@M7E9R?H7#uc3RXKf zE#z$_8MkVt=rl)R)z5qEG3zS#WUVY33VDz#;dD>unPjapHCD(45qi#&x!dqgs8@ZrNkAvb+TM#Yw1Exc`R~W>^POWzA{Culb+Js zeJbvFI=^aI+kFCpB4JqdhT<5K@&o)uAlIeelfNIJkq~!%un7M`msNeg<*2HPii&aw z>g)B^*b{V>fa?OcJLLL;b@L7d@==#Jl#|NxRTMo4r4;)TV*I?6cwA6URDHYd1CeVK z&=Gr0=zhenvD7lYgmPj)bmQVAr?4_9r3R z<;UwtA8;7KKBcR!S<^t@n2i+o)VzA0{IhQ_ssw0?PIQOWFTwFs#AK&z1WBjs9Y^}g z$-Uh7MqSmj)0`kP9)rr(N^KnajYr+yVs7MHMQUn(zt;#z?KAmZbs&ozt_~Ec7nE6> zYi##%i=EJs*3jy(yCdf@4zVkN-VUoK?RtH;Zu^Zj#C#?XQAV6|c|Y|&UEg8wtw(nz z;jozL3$##4wmq`;p!QDB09SK}OR*YN3W%lV%~l(%pV9Ryw$Pc*;QdbTjQWxUa?UL! zMSYl@69OuNK#Ud(DbjZYjnZd~Qw`_nrL8Y!8N1Gg_WH1@nwp}cb3j0%^3U2$cJ&vK zrUwA|-jC2~C8czcI+1%0Rp zuajv%glPL3%Epsh*wrjI@oo*KguGvI&HM5ng1QiAgHXnqb*@q?~J;nWY8ek7U5wF_>D)- z)ww22GV5HcN{S`9(su^1C&~4tNLs-;9*_Nq(-M~bpD(3)q?A0t_b%1hjn(vNCB!5W zu!-Z@12!Ejk^}zsV~O#ZYe1Fp`+<-!C1lVN2sL?q7|iuLdcE4=42F%%#?=t|gGt7ChE2J~E zP()>TgGD0jxIoc9+tZ=?A;!G7)Fwn!R6}bx?&jHqsriLYbK@z4Crz&mYBjm#m*o9C#j6H&Rh3qb$&K9JSF}r6-f`NBjSIo` z&V1{$ax^RNZaufPd0_z5cMq2lk9u(ZHDA2(0B0q+4jRIx>9`F95|KMp`&VrOx4;%8 z_E5)prL$L1b^%O;-{seQ2k?hGFQesnfDRT0L74m%=rlI0!#D}a$i>`hPFP!@b`8sF zIu?|0FDT zHL=)Al=_fu=R?insbJ#>&%G`q=PSsh@WJXpB2W%q@f|0r)FgwolMsPqi&SsZ&b)V7 z38UO!~W`6IlqvI#RNFfC!W6=-e4+%CZN6rTx z5y}>-AxYdRe<}eebiX^Z;0Zl1;DR*mk}|`#5dSWOOsPn_<8353>9Rl)L`co|s1uvF zH+n43yiq>Woo>&k*JtjVHY2g%lzT2gtZBCZ~Stl zc%cKdz(~i#!03@7fvjoZV$TPF00t6yfK*{D7g<$dHfx(K7o?W+%$EQo@ zzJgqpWgljHedjz#$H`WLTsvjOcrEE}^%r0#Vd{RnAPJKkbpVG1$+29GNVj6;otV2U zKJA$S#3ZK-qvXr+mT`M)s{Uc2;%Nm|1s{)RqmE45SvV!qEk4vu0Sx(e+jD%QRtPZ4 zbb+9qWmExjyZ&&*hI9&eBdDhbfP|7y_Vf5evFrcr`O*Z9s|mO3DX7ay;d;O27E}LQ zvnMy_#>!baaYq62c>?BiA2Cv>?EyK5LCrx`?U zCsfBn5R6&IafVT8;DQxbF0+%AeGpnf?g3aR3IQwTbX%QiR}Rr0K2CcX5G%MRIF6%E zYCJiArt&aa=WVZwh*R8cV;#1lt^lJ2W!%^DA7g_Z@B8j?gl>RgwLAVIlQf-Hs6x6` z>U0&HZdKmUtwyeALg;y&3+d1B7#mQ@`XyA_&aC~B>|#NE1yH3NN}QG#+Q$b~WdWsrr_XOtAZN2)VvfS)FtN~&= zs62F(HYRjgzaurhw~0gDV(t}M5OJ6x3?z^D$8%oS&W$!^rB>HIYbUtT?plb{CTO_@ zR4Awnx{3p=4%D~RULD|Odn_urIzVIAfmu32`b z%|pziH+%Q;B7wG+oK{{?Zl0;y`!&L8@(>SIe%TGNPUE9${asZXxB=38+OZfoW40Ff z+@SW_!yZF_m#+UQ93+O>kUDRWOT}vookSouxr-)pb;0$=SJ*&QS+`1ZzB9|X-n5;J za=NQClwY9Bv{V}@C#U>&p4xfLv+w+fOiWhF&xPfit zn-b5dJdO^y!1O$hgLJ(CL-g|n+L2E#UX&wF`0{+*U@3r#R;2BQPVZIxAdOrKH&I;_ zwL_olbeJ8wXk%kTN&m!R`ElzGQ&CiVm+^fyy7P5k2++}mR|}iH_N@#Lfja`wBiA6P z2gY+4xB!NTe_Ql!m?D4Y2JYnhM*4Tc9BIu0l`Mr-KfskNMK_jTip#N7m^O%!eSn4N z-#u8edGFvYIA~Vp4B+1T*{uL9Dc#*!ftyb_^4o@f?Cuj;^nwACAQ@9GxzxkiT#g$@rYwq%!li0I z2u99IT-oes^ET}M3r3s;LpB?BzmF7y?+v%3Xu$MUMFD0F258PH{pT9}sdNE(h^ht- zqHTNh{N2ry(yhF4V5rNFTbrM#i7J8)Y<;=dv-v>%zdY0=m&P7AKM%4cGX+%PZo_(G zc)}-RZfx$r1CQ`PR^NqMnayY1{(~R#y3+`yyr6}p(sgB$tHg1>s`pC*jAgh5cXNMR zz9pu{5oQE%$v4pz#4+L$I$^SQmi4-@8YPQ&jZuT}sfmZ)pYwJTOtS zl|f(YHt2AgsVdftdH2q4_hFspX!DcQw&+#v&6Cr>2z6LkI?U^4m^6wT3^9w8aT<22)kGgojtK4Ugqb#tBmN^v}n31GH|IIZ3RHS&vcA4X9{;Y zrCEjs<|mFYkw>|Hjgp^MPy#>Hlaw`FQ(Nc9A$ituZsc0p#T9NQ+1#|e_|59aS_bNe zP(H7%HR%XCq$(StZ|Iv_m%zTt5oBs_a!OwB*NQW(SP1|vZ(wdNS0ze!2amXE+waWm z$hz%Bze8MW%k$l0Dt0h{$P03h=!2HZQ?s{fO*$}IH|8e0i$0C-ccx4qx%zkO%HO}p z^Rtim_hEFd7!6jvEr>$9jh5W4s2V9+TL5NXkY3aKotwrFC|Dh(+ml@m8MfVp2T$K7 zUOGjvp3B8H#?|KR9vL}v7G~QW`FOUG^gc4M4lzJ8R5A9vt3`K%R+KO6GghCcWgcC7 zeH3ow+r)57%xp$(b9&dlNk7|@(ve%IGdejoHg-_dMB~(a++moD>sF6C?~eCe29^z8 z81qB;(_Nh(jx+tSpgH9xHN$Cr@gvNWy4J!tg^`Tmp=RR`A8e~D_O*K2*M&(60~I3} zH(>*FY1wJ=&l!2#AV>0=5?6Dnd67qaiUC0u*ckyHP?Oe;8%0o$O`gSbG|ZIl98iH` zER^=e;c{-V4U^1dZm0hUC?lCwIa9wsCj;NBUPXoprr)RG5Tld;m0B|8A_Q5bdcm>5 zJb}oxx_}Z@kBQ9Lk5Kp}BqV&f5$*+Zw0u;mJRpu5nuG&TH=ykiq`Az!>8P%nIjw{R zP^W&8s2Pk&|IEKc-c(Typo1ZNE{1)~;F2T=27vQx4uo zTTY{e#CW}d+0QR(c9*r*v?VAGctZstJ2y-HgXO3dve(2FY&9$2Ak;g?U1VTV zBfymjK?}eauTdrEpP^UapPFSIsOX@)~t`KSxGm*++;>m-Li_g8qM>pC`XsROp6(B1y% z4=`%e8F&`~SL!Do07bfrjU_Or-Z`Mii?nnB=5!^{wXZ@$Sm74`shtCS)S%O9z~9WL zWLCe+%*;I1=C}i9khd2megv`EPeKd%0!uU}l*#@fgW20C(v~euv6nBL)7X3s5BdF* z`Y?{Q8>_Ei;8mMh(L~2&$~;VC8|bSS+n11%;tNo}0+zPxM&B^^%~34%T3+x8e%G|O!Rp;Gn-*rmm%DM}Nx=I5Jn;23xebFq@K_*< z3b*K@&TqfoH&eEQ$H!o`pIsPJ>BEv(c7F2+?6lUzsqS|c*xdjej&LN-1tcCKIE=Hz zX;Dz`$4`6z7p@J>`hIBEA&+5&0ANhOs5Ye8sGhX>9kc)me3`8a`!J(P&eKnLd_XBi z4sy;R`va6&Dqb2f zxfhpR?!!IxA>X;ndaMuAnK1&_-@197ZhZ2e8aZH*6Lg0DdnNFXVf*Eb4p5oDevDMSOvy7z|azYKMmMZ|2J6v8!Z0~7TD1Ei9-Lvz5fQw|2bIt bXj|q4!wx(1 literal 0 HcmV?d00001 diff --git a/site/sidebar.ts b/site/sidebar.ts index 3198acdf28..7c536be1cf 100644 --- a/site/sidebar.ts +++ b/site/sidebar.ts @@ -58,12 +58,12 @@ export const sidebar = [ ], }, { - text: 'Types', - link: '/framekit/types', + text: 'Framegear', + link: '/framekit/framegear', }, { - text: 'Emulator', - link: '/framekit/framegear', + text: 'Types', + link: '/framekit/types', }, ], },