From 1e5aeac2122fb15587d7b8b125a075d9a0d25ecc Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 20:03:08 +0800 Subject: [PATCH 01/49] feat: add tauri project --- .gitignore | 2 +- gui/.gitignore | 24 + gui/README.md | 7 + gui/index.html | 14 + gui/logo.png | Bin 0 -> 286740 bytes gui/package.json | 26 + gui/pnpm-lock.yaml | 975 +++++++ gui/public/tauri.svg | 6 + gui/public/vite.svg | 1 + gui/src-tauri/.gitignore | 4 + gui/src-tauri/Cargo.lock | 3249 +++++++++++++++++++++ gui/src-tauri/Cargo.toml | 23 + gui/src-tauri/build.rs | 3 + gui/src-tauri/icons/128x128.png | Bin 0 -> 11748 bytes gui/src-tauri/icons/128x128@2x.png | Bin 0 -> 30053 bytes gui/src-tauri/icons/32x32.png | Bin 0 -> 2093 bytes gui/src-tauri/icons/Square107x107Logo.png | Bin 0 -> 9421 bytes gui/src-tauri/icons/Square142x142Logo.png | Bin 0 -> 13503 bytes gui/src-tauri/icons/Square150x150Logo.png | Bin 0 -> 14556 bytes gui/src-tauri/icons/Square284x284Logo.png | Bin 0 -> 34828 bytes gui/src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1890 bytes gui/src-tauri/icons/Square310x310Logo.png | Bin 0 -> 43233 bytes gui/src-tauri/icons/Square44x44Logo.png | Bin 0 -> 3127 bytes gui/src-tauri/icons/Square71x71Logo.png | Bin 0 -> 5644 bytes gui/src-tauri/icons/Square89x89Logo.png | Bin 0 -> 7648 bytes gui/src-tauri/icons/StoreLogo.png | Bin 0 -> 3533 bytes gui/src-tauri/icons/icon.icns | Bin 0 -> 543765 bytes gui/src-tauri/icons/icon.ico | Bin 0 -> 44372 bytes gui/src-tauri/icons/icon.png | Bin 0 -> 92667 bytes gui/src-tauri/src/main.rs | 15 + gui/src-tauri/tauri.conf.json | 49 + gui/src/App.css | 7 + gui/src/App.tsx | 53 + gui/src/assets/react.svg | 1 + gui/src/main.tsx | 10 + gui/src/styles.css | 109 + gui/src/vite-env.d.ts | 1 + gui/tsconfig.json | 21 + gui/tsconfig.node.json | 9 + gui/vite.config.ts | 27 + 40 files changed, 4635 insertions(+), 1 deletion(-) create mode 100644 gui/.gitignore create mode 100644 gui/README.md create mode 100644 gui/index.html create mode 100644 gui/logo.png create mode 100644 gui/package.json create mode 100644 gui/pnpm-lock.yaml create mode 100644 gui/public/tauri.svg create mode 100644 gui/public/vite.svg create mode 100644 gui/src-tauri/.gitignore create mode 100644 gui/src-tauri/Cargo.lock create mode 100644 gui/src-tauri/Cargo.toml create mode 100644 gui/src-tauri/build.rs create mode 100644 gui/src-tauri/icons/128x128.png create mode 100644 gui/src-tauri/icons/128x128@2x.png create mode 100644 gui/src-tauri/icons/32x32.png create mode 100644 gui/src-tauri/icons/Square107x107Logo.png create mode 100644 gui/src-tauri/icons/Square142x142Logo.png create mode 100644 gui/src-tauri/icons/Square150x150Logo.png create mode 100644 gui/src-tauri/icons/Square284x284Logo.png create mode 100644 gui/src-tauri/icons/Square30x30Logo.png create mode 100644 gui/src-tauri/icons/Square310x310Logo.png create mode 100644 gui/src-tauri/icons/Square44x44Logo.png create mode 100644 gui/src-tauri/icons/Square71x71Logo.png create mode 100644 gui/src-tauri/icons/Square89x89Logo.png create mode 100644 gui/src-tauri/icons/StoreLogo.png create mode 100644 gui/src-tauri/icons/icon.icns create mode 100644 gui/src-tauri/icons/icon.ico create mode 100644 gui/src-tauri/icons/icon.png create mode 100644 gui/src-tauri/src/main.rs create mode 100644 gui/src-tauri/tauri.conf.json create mode 100644 gui/src/App.css create mode 100644 gui/src/App.tsx create mode 100644 gui/src/assets/react.svg create mode 100644 gui/src/main.tsx create mode 100644 gui/src/styles.css create mode 100644 gui/src/vite-env.d.ts create mode 100644 gui/tsconfig.json create mode 100644 gui/tsconfig.node.json create mode 100644 gui/vite.config.ts diff --git a/.gitignore b/.gitignore index 1cf930f..eb1080c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ profile.json export/ cache/ .DS_Store -*.json +/*.json diff --git a/gui/.gitignore b/gui/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/gui/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/gui/README.md b/gui/README.md new file mode 100644 index 0000000..102e366 --- /dev/null +++ b/gui/README.md @@ -0,0 +1,7 @@ +# Tauri + React + Typescript + +This template should help get you started developing with Tauri, React and Typescript in Vite. + +## Recommended IDE Setup + +- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) diff --git a/gui/index.html b/gui/index.html new file mode 100644 index 0000000..194012b --- /dev/null +++ b/gui/index.html @@ -0,0 +1,14 @@ + + + + + + + Tauri + React + TS + + + +
+ + + diff --git a/gui/logo.png b/gui/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7c643c033c3a47a00aee95c62064580548825f8e GIT binary patch literal 286740 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

|*;<*7jX51Jgq?}+y zLWYyD&DS*6YcAx_0xO2yogbi`RGG=-vc@k9qRRt$zH@1f8A^`*g!Z_}X%luP%nw0? zgVmt*M(56VyTY4jGzCl3T##8u%n!}nd#c{`lX8u_Ht&M|%R=_x?#FPJ)8*f1`GipM z&QPSFMj>H~5+If_;lo$ISi1P7jLa`sM3|7E-)>!gWD0>vy?kkj%Ge)7jR4p!GLN!m z3<-g{5OFSTt;pNdOu)&A?XBI2rA3^O!X{?|w(z%^vZ^M0YdSwF`qOohby<`H+mO@I z!#|8mmj`Uq$AUCNrlNa1D}NTu)i9qM={tXUFl#8YZl;AK`^-Mw$9dJKM{;Bf>0 zt^;G*3UEIgA6dFi(g*TnaCW0lRq3&@oHM*EtJn^NfchvOaOzWqNb5c;{3BQhkc5-> z!f!l~q?f6l*rL{tox4{GP(Y@G*e3=x*pEd|PP+xF@7qc`ARH#*5^>SwGPMUcAThP1 z8^(exO1#4OEh#{P=!cu4ew>0+N+l}qU?vux!%qjD3N4xf+uFK(dtfSwnT=FH0Yi|R zzSNhWTFi}${r(JXdSWY(^+($h=rTGLq&8vhByWd<(0Q(}PbsILL9gfc{q7?J4!PFM zVWn{2?;vSr9sDJoSC!)hgo~UBDlfPc|DxbtaH7XJYZhu)&S4m%dVpENX_uLh;Q~PMK1X z5C-aC5J7xo!z9l6%j?2#D>bif9EBJFvylbAh$~|q@zWFpm zER3T#G_J>F4FbMe%@&tjdm-TY7L8J2Aj$-UtP}UsKcNQdE3UgVhE?;-_xaS2TV4eCka~wMH#&;cl6ak{|OCWL`Gpk^5>GZl9AmRMv4J z@lc5FBTRD16EB@Tuh0js7aNYfn4TY8xwI53qH*znMO=Mf z=2CkN#FS0Ydf(Q~n^lijnkBx}uQXHR;e^FXxf&f+!ae99QiyQ&*6o|lBt8}j$4!8V-UMiqf8)0dfD=Ze;K6uwpbNWrlw)zq$*fSKi zt0&x{b=5?;8gGFPjs||Nj!?CZE202Cq$RSRkBfp&%~@cXb^@P_MGl098Px|BSsCM8 zXvOH7j?cwyQ!$~!7Z!rwFWFIamx_V!0E4A>anyAdl%pH z6Swu;O3b)L4qY|w4P7GB5D)4hhEsWAoWoB+O52E$f(5@(UkziGSxXXEWxfhompheK z0pZDKyB?e!2bZBDyqf?U?zd(m90{GZ0u3upY-+?g4ofBDYm*;ev49p!j5mTd*EUlX zL}u4AsPg3~%VvH2K5Kwxf-PVIuC?mkKv$eEN1TwlQ=xyLW`hq%f0K?u2%$#P(dO}Mjy}quMEzq zSzpZs=GXF;_cFJ%_#99`3wHtaRTw0D@e0yw!#iGLHVI_KKVhk+*b+zIM#Ssbwc-=N zB!M>WFYR5UelR}A>EWXrcZviv8txC>?l#i=fC@u`s-+!E>T zK?n1fQC}}yePr7LVoddBD&nmb^UAIy3o<{%CWGC$9W6wiI93}u%mFXs*14wrx|ys} z(n9c!Ct|5oM@yAq1GEbwd@Tpm`}elyO=%oCZ(5m&6J`IjyZZ<0Gt}U*ZP_KI)Bu3v zE|aQzud-5TUau~RDg41ET36l;mPuQK@TOEND`&da`_s}bApfHgh466NJ$T9@oY3R+ zE87#sH6FdAkFbu^X;_R7_cK^^8=$tA^yrG-qF`=8chfOIC0H*saZ2$k)gD?K^-EJ@ z==?P82z`L;Zy8$rP{1T20AWaRIUAq*p>(I;1tu^sDIkv48h(Q8B8_t726X!r8x{Y~ z_M_Vma@vtz#FS;JLt9L;Ox-${H4BAji*T12uuXKG-VP#(byIj`nWo?*>G_n`@{aXm z&4HzKTqk*lnr8}E28Hc)OBnm+y$+mNRq}0i7{T-37pZZa7w!Cew@DW(wg{a+KT0+~ z$$u7P*W@Ah2;m zO7Hn@@qqr333iE(jBVO&*WS%BdU(PskrGRWPgQL+)yM@!p?0bnWLs|}S&Zvt3@a67 zXU*4vRTZtMn-AwG3E~dQ+syq}O^UTzpchStzO*{e_cXR8kp;e&%v2?Vg8^kP3r498 z3D<~U3}g^g7bb8B<^%|5y}m0OttWK4xUplhIbs-;r+G(PeE57@Fz&~@vCWZ?$$;u^ ztsKlFl_aG;-Y0i-4*?m4a03>2hws#NAu4nqn>46V?s|N6fmY%b?1~PnmoeLvy!MAb z2J(dC7)kg;v?;9dE?|v`m{i!#V0MX4#k+dy)fDuh*OW3tkbxmV-CL~MoxR}MVQ)eD zFbyM`I^UQ$>lry!xQQ5xChbt@l0ua>FfbUrS6&IQrUp~lq(f!>+Fi)R^h`%Mn1&|& zO*8Plj}x>~SZubW7q;FxdKYN;I53$lrSLF&QoA1njVe2++oLQf8~i2Z7TSJDJB)m0 z7WbD)vhU`n^&~vF=%3y)*oD7u`o0TS@kd`Hl+t~fNvepAa0{DO;G2Y-C*5-mq=S9_ zw;4WS$bZq0b%+?gZkTeB4x>CjHx-PShLkwGrHd41>YxeIY|~(|FpcwnGr?dY&sa95 zRl?HFag#P2KZ3zvvL<^vCZALnK596}IS(LK*wduzTivuxKZp__-RyD7GMm4LJRC4! z7025%g}s!C9QjoFu?Wrig}asOyH#j$w8YBT^nHAY1X*v{WPX{1)_0K=>|cwmS;1}- z@}QCYt=-~;4Pi~vFnvVj{U=x5a)>woiqpX9ig=c5Z6rq;gd*0W9$tDN?0l37|Kab< zK-D&qxWaZCyw}!wGWkBiQM7!upD#7Nt0qc1EIkt^o*8z1S`sI`gSOj@`Av;1{CJjT0eKMg^x z79fb(1o1IdD{6xh*j+x;o z5x@Xs3#b|}LmMK!OoN~%x~t)19v)-oTLO3&pR;_)%MW&4Ui{Ya<=%seIckzWjsbSR zP?dEfu-EW%{IBi>%GWv?09gZyv?MVUjc0-x;9NUXO`l-*o+ORgA>&W1lY`&5|9$4@ zn8YVx_K64*k59)3DK*XEBN;L84jnuh|CzShf?=Y=m(G zEw~QBptrD-BLLmJk&_st8uwDnvP1)|gu%da9Ju78V-7@;e!YBXMdH>2#-MlXR0hRG z`0E2|-v?E`XEx7QXoHg>;v zGi_fYXAsIhxk~?dp9;Lg8%}=1bBqBjr&JCBmSZLB!Ml4A_O8LhIvq(HCAL)=vyxKQ zh`{$>3iS$S8=CF@B@avOBR4IB^GH@pRB7)~6h7=fceI+I8<>vVl#E|boV?AU_!R8p zN?%zj_zui8(B%3_G7zZ{P2$|@(IR@pM+SIb!mxL^C~bZnZL(ER5bbZ&kGZ7>Wg^M* zGk){<%_0-f*C0oP1We@AOsL-qQl5t~HtfG7cQ zr5KW0ulN}5Lj~nq;>RuzF(KKGrFt`);%+p)T}Wv*zgYd5-WtVM0fRn_tCb!RwgG~| zBZ`&vp<^lVQL-d+4lYY8<}e%!KXk8az>?M_Ml>=edH-&>{NiQd0}9Cp3T(Y0(myc6 zB_Mg*g!Xcn9D{t^wU3TIeRwN#+&j)2&hOV&{hjfIe~3(LgFo(mdTk-dswcSYXgO$E z;tWqeFx`6H@nPri>atGugHitv*Wsmg2c}#T=tV(1Qja%g$bG?`?91tnhsV4ig)l1x|DpC&Pe*W zms$Zn_SpAEt4xYGv|=%QPX|WYDUXsaUlDD453ZWi1@{y}a%4i_WD3PT)nkUw=HH9H zQ*Tr4PH=KUm!?fSjSbu9O&NN61}pW2W5&3YEy*R@JTB%4%l?LnM#eA3Vj!6Aya*Hw z1~L1^yRbmR18=)?wu^ z)+jb0Qh@~!45COosl>^m8DO(&4|KPF+kR!%N_mVN)9Ik)A*_C%0|`wymTo{$mp=OJ zHb;HImuqgRD1ueEDuHW4)pV9+|IL$4-{484X!^%vD($}jYT)(&4_NX+#J7NOd{c<_ z%i+hv8{xn1FSp!R1LG1WjMF0rInZwAhk(wm)l`Q)1%fcF`)sYjDnAAO%4}B-$DJY| zeXz>_adjjgUbkTe@8BCC4gKVuvVzB-_io}F`OY`O>XXlomEjsMCtY)F`>5F%Z zQE0Q@^2aloSeTb-9X^wC?~k$8`<5At5Jx~a>V3t`3H@o?k>K4ZnipqDTYyK+8dyGf zcUc0sG)u!*RqE}WRyG3-XvUk(CQF9gJ}KoS-E;pZA+`tS4uaD?o(0m~5(R32IH%I%Ef|DVMn*z*)gT6zM>NJ;v9#OYvA0b7f z@wu=n2LcG~P}1)~E@FIi)hO|hGf1o4FwSK}J(5_St=EF$SiNzQ^1JrNExTn=?cM29 z3TO&1gEk;Qu+R1ncU_Kxxd3LI;;-{~Ml=}^j1+2;;wFK%!$p$!H*G*P{_nEjEN`1b z41|gN8hg=#K~te&lMq(QG?jJ%Q%n{L6?C3}v;2=;O~a2r!|5FEzOuzWBGF+3xt=2+ zl*Gt$a*dvKO%&~r3V<3Pu*nu>OtBE^r_-W*$C{MJk7r8oQPb=xQM_J+2z7in+b z+<&p}MiX10-vhXX=QXyk$9e^hCNHVFR)1B5YJ-jZc)+?}H$ zN)U|=%@MnD`INhZJC=_5VClq-d&J4;eKRTqcK(G6@L?a+Z`V?L99SBK)>_BzH2bGA zr`Hr)4+F&*o3}K8#fgk$x3oL1A_1W2M@o#MXPnoA#tDniD8SthJWanNQVwy8Z3rQjPabPq5XM zvh=zowvBK_@eDCRKExwQq;$@jAiTTJibw&IW3&ZxNML?VP=7+nC(Aw;?!Ghur)!1N z`T6`k|Go*;X*mBtAAw7ND92xwI*)`k7v?Ihk7@-a_lXo>W1a@IG&`4?dUTR@IW_WW zT97}GJ8K)F__uk(+8cW&9+yNGiq?B4w;m5@09W%eT_`r+mb5Lned_q5g{uaOP-GT< z-vTi-8;FPMFHt7lcuGS}DteEg304Y%<54IvsM2nH&#^Mcd@q~x!(XYzn-)d9TOP^`yoV;E_(A1~JHsI zW-ye+ssyqo+vgij$N;qGR8alsW1IY7F;c^9LE<36zRs;$D>Wwn-QipO>U^d2o&{(@ z;f*eBp-zJq`IkAm1``65{SN5{>1vxtw>*mjj2?%KIte${aJG-aGuHWmvp!rO0%!aA z-9^sT(;(X0DgTcVAY_mRT=HIDuvFqA+r7R&1jxnHh$N+}egC&*af3TT+%uwaIOm$G zsWbtNg(kT`?CS|l@b=bglGDvuogR=yhj(>c98gD+K--<?{vpt3lSpx`0H?uA zS`Dwk@j1V*fD`gs?955MQ8e9M9q8bp+nrJVMW>O#psz|ndCoB&&vN8$NUrBA?xVv$ z*9QfL%gQV#nF$44GQ!_NUzI>6tDTCuucO6ql4w*f2i+`dTxfUXC~%d~Fz?WwM@cn~ zumm4q5sCfm9Um5-HEWuTQH|gwD>5*&R;{>rm+n0HI4wTdtYVUI_bje|dr&+@hsD#V zeABTy_-odbxZD(#OM;{K%cqU~q;;Q~46tkKFFZD@#E0$)jwumvjAG=w+A-KqXms|C zfQt`v5oYPMNP%r@;YTR?F#p?aohBf!_sy0zQAodSH0FN5t% zPmkZ$P$WaA&KZF((IRrl#Vey;5~{=T|wzCkq8JV0Um z#4lxedmH!Cp_`R&k3kO(V<{3a4E}@(#k|6mIGT)I)*3PWw0BG>ElFy{J^_#1)5jQk zPp$tPUdoQhkALR_{O=i*&L>BL9_=ImLDUE-hCizjki%nT{^B7EF(sy2#=w{Y>~>Da z-WEYSmz-Z7bQM^fp)F$bm4Hw}%?!7i-&_aAMb~V+XjNS1iv;J~rVnpxeq^0mJn3m1 zENdxXt51N~P>R)@Y1WVCLksMLazD?-KA3)}#v?_p+2FxIuPWW4iyQl-uiQWwgr5nF zmgpvf4I-oL^IwvfiL7(K{9Wp+BITcT3pq_OeL*t*3jXBy{}W3c3(&{dLtQVpq?Oa> z&qzJNVK~y_!1I)cHaL+Ioetpvx>0eg(ucEBL;Z#ix&7|KhCN>Z;qefSL0eFO_BVj| zb1{PK%ZJd{C?I2bLVO<{7z6T$NHVpt)niN-jsy#{Ig=ilut(q>(6BJuCN_3OvE4Xr zwZAx||1FJJg3;7MthHBtZ3;3*u^8H@Md-q^U0otr&@ja&o%^$%&y_-bnDUP<&as@u zAWJdfFhB`KP1=_?6VB74NeKtxb%dLb|2=@0y!bGviX(8v{?G1uhp=76J#XKi`Zn0@ z)gUs0w1XXn<~Ux}esHWI;dFiLK+185E+&G#c&t(QrZKxTWo=YPIl?qo`AZcCV*DYk z&VPv{G@YU4(B_tPxp^TW?OH2MAB=|Wo&yX}_J*=T0j}kMJ4GaL4AZTYhg$V$ll%EH z@Fte*wKtbOrTyS-AMK?A&YPc+DH<1^jYLqu%3e#le6L4HyCcECqO{K1YrIW?=o4Ni z9Tz-F(u25dp}#vdZb{pZrt)M|g~pGCB3w@-MaLS^z5cm)bA9lf$4I~ppr5a}Hp3!HEZanK}p-@9o0R8ni|MttE zs9x>&>z}Aj!vOD%;1UJox01Bq;1-BK`ag>DeFxq^_!%kIi8!Ef4bgb+BDU5Il0W;y zGWI*EtDPbx~Dj5u!c zHPvw}D4sTdlF~4C-Wp31LTm2BW|-y*gH>O2F)pz3)^9WfmmDZfLB%H#<9i*1xBl=q z|C&n$f>>?mV1tf?5Vpb*;IYQNK3qk4DNf01%a?OL8b8|iWdd}1s9)-uz5Rw(-ll9KiUz1BJ*l*Mn?Q8m+wRDdvW@GBl z=NjIlolN|uLZtkTXH&|L;7GrZRj&(H1dY|OG0jQMO?iz1eMr* zy?f1bj3^39h!rCJT^ATSlgbrr7?smq#wbaE@)H@FqqRyY_e(n`dvVle+4ed!(V6AG z*&*$k*cy3wNB)28C*^_`ePS+oA!0g$tBY#hB%)*;vdK@Df-2L`|Mb<@@D7Pb_~KUi zybfjz2byCJLUvyvzcmy?>x!i_U&bFMT1+s&s+uzSv=o5_!s=M5>^1y2`dhHBFdNwA zoUG{(`MX}U^%cO}?3KS@#QtBATifjGF1}iDV8bb66~S9zF4R`V7wLuCuUAF>R+)-! zE?mqj7&6giDmH>qqd!^akt1*~cg9^Y^in8$hXZ~M%hh6ha9yva`ng_?{s$=aH^>$o zfX$y~pOopo;*)+!=fS?y6o>VFTr1P$%rrHO2u`gTFjVWk>FU^APowj#ir}n%Ic@4E zVrpXO>BxNt!#wTDF(F)bW?kAq(<=b&4THkkk0z=^b*0M_em>;CfWS zw6$C>HUa@?`U^KZ9zM}G#_(OgxNiCV97x0veDQ_oA*5M+RO_aHul6&KtowYvDr-Jt zl`;1^bteQC#gRXu*uCjbau5W4D{zI0A+qPSaP;o`u@TW_DGODM=tFndbp_4JjJexh_NK=cB2$#Xa> zYgB&L7sL>qB)>eoqvX+FCMQMZ;gHVKp7<$#bfk6JUZ)dy&_H+r=G(xeiD!5X;I(fX z!GDqVgkcU;sYkw=$m9{SkK4Yrs%rxf+>iqGltc#&wpvL2fllya=5n;oepil%D8lY+ zL%FZNKjt&`m(mm@sE-a^X)aRTNhTc>qu|r5C0z=wkTADoQFOT!)D!4(#{m~~=FGyt zJYRoUad*ImlXqf==Gy|C<-j@(HN+K3;L{44$MHF75*a1&4{6>7OVFOU=(MK zEU@WOWOc}3L!#JoXDNU>{$}sk(pmdzc-WGZk{?xuuq@^BQInEx%EA~T?&K$nBJ?rm z=YOmU%+|j_;x|1ljaX8xjlWQkPV#<357*&?7*OHT_VGc%9{^JobI$nixP&iR4i3$n zO2$$t)TJ{CTHhD(dGBjSagl09fIZO8WAF4}$q zt3++Ot*;m0^tY2RE|fRpSA9LEj6!!|TbOoJKj%N;a|!Bf6s$G@5pLtUmCH%Q*))|U za~B%6I8q+YFcD>>ln25*fIk0pk)+?###Tc7dry2IT!jmTh?@=3TV#J!pTY0x1JHx` z;s`w{&IjgScZMwtV1@RPop=f#V1OHpn} zIxEtOQ~2KQx{EqqYP4U*k|9NO=&wt5nTRjrDwj%@oX_ARq5%Iw0L+AfhvQHjUu6*h}V zo!)P(#N!#BTebg}&G?s6`hA{&AF?2LS?n=^$HB?fUU(?*i1(;V5^G&}_A}hA@meL# z<6%`TEN;&`c#}@E(rhd%K7(^WuBcIS)u$V;JMY&ExF&-)ltOL_Y=!ZO*Eq~mV3 zraub11vJyIsCE8)g8fL|!BFwWwAC?^T&bZUipWfhw$M-zOq)IY01NapW_;y%CF{N| ze_(tg=%)S6tLUv|2jC0Mso0#```des)SL(KeC`s}F?fhAFEy4?!8&X6w{8vZxg=ro zp$I_qm>V#tkS+bDwmNA^J%F-~(NFnb>v?~9k@t_cAx>4&^iSi&FB=f!49F4QxDqH* z%j)wl;bhMn2HLZ9g41!RPmWJKB@Ve=R8N+ErDp|C*!SxU?Uj9%SoFxYMqh58i|5%3 zuqOa7KFcAj8G9*)-9jpwW1o*2TK;e&zCzNpriSgyUsNu_TaNZR{NPKl*R1G;^W~M3 zo{*I`dQ3pJUPZKg?R@O(6^68OC&iF_y8WIm==b3e!F}oiTgt${c|c!l1$Umr^_Si} z{P?!S+cfnn#pOXXBQf8CEzR*|2wr^CBi9bs?k;Cmzrt>SF3fEQ5XYH6n)nh1nY6kv zN|>zP+{?^pc}h*yWf{@2NC>}Z38h4&RRvC$)J^ehx*S*W-=gfn6X25L?ufcYLDVg6 zr`?@FyLHtR^xfS!8IB{VTaQvB4O{8Aw{M=kNHNSw@38mnJFOSRBi3OWsJmD)vrNt` zi=N$@bQIs8is$ikZDc1qF#LXJR5|RCQhA9_fLQtt{j~ z=Ceusxa&>V5p;pvHt`$<_Qw1DH(l~&M>hgqvd2A{iQ-YVHn3-^9>+FQ;vzFfR z6Ts$$BjrU9p1R2f>I0-YN_xC(>SzC^)(6a6|A|n9V~?oZcZq3_IiUY^+ex_W>QFx- zzvu{gj@fuIcKMf{&3`IERg~_Oh8dth{S~5#f(DMlItNDefI;_{1hPPdtz!kvBxsMe z{_v)?ZF?Z$`vUm{+W1ZI0@F?iSwi*|Juusk zJ^ckt^5?S4(*VHl@bv>G?1LrDbFO#kla;an?B1tnT=v9M;mO?Im83!(vOl5DP>kLc z2I3Vy2w!@;rDOL%m7%7G02HyFx-=dJyzr+XcP0LmDB6Y_ko{3QM9z z)Q_~NO}SHL@(@%7;lI0rC|3hUE}eBQBg|O4yv_k$3 zSR&w*Y52vz=nTN^x^RC@<<01Z)$a`mSS9hn20G4Zb3JZ3ocKq`Rp=2~#{T@7uTwZYION_3@`!fZV3l{YwSVHxrvNUzu3mM$5Di^I) z^Vecm0cDt^54mTQI#t-_D|R>3Hwo5KGavYoq-OUxUNtQQ$XKYE_D|T~!Vz;!V|J4N zWQ*jU3f%rbX{Nn}M|bxv!7H5{5Z5prkOLao=X*Q2$l(+dI{v}MQeAJM)fV{zt)AwQ zot1^tWzDaD_4a&1ZnOnKV7nnw959f`hfh^>sLUT!B5i$Zc-tSe=p7eRlmzkqNWFXg z7xP9#{)dpSB7y5Zz8D4{W)H?p3hYJreZClrYi?;sm1AcX*rjByzY5)nf1m)A{Sy2K zR9MGq&yvKbXAkFJ>OU04GCbRuEg;B>;wkuzufySMENU;1L3IMI5p4WDHFk5pGGGtj zf1vP|50>@xr){*rRBU#;Wco)LUT2ubLgr))w=o(uZ%OH5d$WrgY= z02jiqPM_96vk)$`b~O(-Xjt|gmPJ~(d*X;Oj{BNAnsky*5mG{5D{M^S$zUftk*2uj zI1Bwj?arS$t7;XQIeuUE{82Cz6Nz`O*y(>Tp!&X?EzWbZQBsM!4;@OkO4X2(KS|op zHbhk*iCc(Q)uPa>E$a*utaj6l$;SGaOzvi0`U=DOEH)U`~8RQ&5pep|d z;e+j|N+(W-)x%&@X3#Ol;P}DxLEN=4GP0A{#;@NKK~YLDMgGdqGq$SIy`p@Y2UH}_ zpPyl1hY4BtyvbtybTl;(lB5;=Xc8LOdh6ikZ)xl{#nY-Bfwn2lU;8}}wH{&G4;Puro25d{-LU7Oot|8IYjBTO< zC(G3j!oh`$An>YGieL}TpbT!ODTsiSg-Iq%pAedHXc@rP{{6S0jm$O%m^V71plVJ^ zN)#qVf?`T=IIT;_XoG+Og^T!HwydR{>p3-l?J(=;3X!iJsZh5`>NFu4fL z;=s;Qr9TiK!Vqn^K88HNzX-ljm+Vv-p=6TfgiEO{!F~L{1z;3EDZjinx`J~KUtN%i<2NKmZ+?A&Y&%26%mevEcHUniYPf=3 z30^{diE$jp{(C~2gMrCpYiM*dbb5`R-XMB2`?MSapf(2|D9=~&UW4)BFsqHND$;3+eW z?y3#pb3wd%<;UO61WBk0?AvOdx_#nNXSG^EYTX38!8hLJGKl0NWYPYAIvwJY@d*5V z`|<3*qre@+G*2dK!|Kec50*YW>p@P<5ZM`Ln*=2R@`lXns|Olb%m74^_yWyT$u@|Z z0`e6}Zf;MPI6`l`K*)t8{#ohIK2TDiS?G_Uqzgp7Zj%4XUJQ#5 zBE8G9L_itG_FMY-NOEqOqFVtiRl|G!Ef!>|Y9+sCqx}-om!5K$jDMVN{ev@^R;9EpF z%!8@QdQriYX-Jz!=ZX1ma`wLl;nST(OqUkmqkoHUUF*p#r>`cKG3FE9pynR9BMkgg zN8z(b*-{U#>`UJ&>f1Cl;}4w|sIEUWlss<2!sWW)kh;C12C1W4&)rQaVd%VQShIG- zn}5Jvo(&a^;;JXLO*;U}&`!@?*eUq2QsEiaPwES?__NPl@Q4Iud1oL~LW93_%KmNY zk7Iq68?fReS>&zk@&44n=GXV#S-PmN#G>doY8kS>7HMlcRN)F+y4%xC=|yKLEIQeoQgm*6JiH$v5|X)PnkM@e#vgY{A7#8 zKY(9RS4w&j%N;d-_`g8<4`4tio9i*)H}axvG}vVm!J%&4bhzW^68S;* z!GrVn596(dR`m6b9#G#Y!6jXYe`zxBx`L~dDWq?vhG*_*obc@|?sinPd=rR~w3zSs zs4zys!~x%ff&i~MYK;I__O!6gHK%ZzftIu=MQ>kOiJUY)l+qW`uqZESJJniNx^Gnl z*6Jbs7^d)9fs~6_STp<+F^l@Ugr7f=5-d(DX{a<39Cb(MM1-o;I8-pcU+#5?#1|H+ zuF4ZBuTJ|Pzn<(b8)pSGJ}GPosRz}XTcu5W@a>$tq{%P^XKRMa1jO|TR zjQ=4&Z6Mp?KfMwCB34u7gYvujz!4tev##Gct_a>*T943C81X^L8NPn=?$$c$VMBCW$>-mdNU`j<`a@`OD$KuwPX7p z{F9kMV&Lc4GgbC~#TD>G4I8xkr7UksNWM8R7O%6$OCA>lsC2WuP+HkuohWrzmWQ?+ z0ld6mDrf7YtIf~e-C8+)7OVR2G__O@OM@jQ;Kyd4ll-Oy7>iY;wpY+o{uF`_u2I~*YZ7=?keQ*RPP6j)?U31AcK?K1$9DM}yEby`M5(0VLn`{! zQ97VVOlf8{z;!OK+fDZ69f(~t4>tSX=lr+Xu`RSMG{A`D^5tizY4gCLrnwQ91a%K0 zZ0g;pm9aCq^{UT#^(s@$65{Y2O+G8?BtY7m`WE+Zy^^Zb&;FeZ751 zXIo3sGdxt8pB5236&*Sx2n}~v>CmjInk!XhL>c4bg}Sp?^j&K;aw*2=u>lUCNq2;B zPj>%wPJu4>d3lRw0C&1q2-bVX&{6Yhbvn4=j=ph6v(-rr?}u=wTg9qIlpqD z&9z!w@G?OjSsI=KEMEWX7G`5W{-c0s3{dP_mf2Hx=!esZw}7i)>!~R3e|d0=oZDug zJE`xXZW!T?`X9oV97WGbhIM3g$NEdq=K( z?y-jgei>1%(UA$l8It0CMh&qwwXv5fLbS)RaZ1uJsg@%$<_top>w$Wb7czZ&2cvRgZ7~ua8p3pj7hPUiXBDdYMUy z$KE8`4Qvzby~tPiCPK2A6@a0(jnzGL61=5u;u#Sy^5(^9%{M0kDQB2@mc)Id0lzCS z^7}t};)eLecBMEmfZ_5r4#_mBLg!gqDOTM>nXq(Fm}4+MQQL*iGy+N%5=(xY)82li z_Pom>aEWzDc{X`ZfF;?5PkM1gcMVi|JQ4R(zVhHbS5wl+ki(rqkrK^MFP|-T?U`x> zz2%bCy-?w6e>CeT<^0D_lIiX7sf28UIVWAyo~GX;*X_b_h%EJ2r+zEJ?h7GqBQ~a; z5x_F0!uFV&e;<}9n$1jXTRswW?*e($kJ(WHL! z{b{l-@q144pKp>vEMp0#ae2MDOdAHg`-|!1E&M*ecq+&;FM6G!bI4?qfT5cIrxXFV ziJt-lSD@5DOw5^R1h5zj?|&9j4_U%%eca`|gFT31RPyQZBX}fVSwjpBZ%wYMPX=w= zyT1M_!13icHJqc!Kxw-wL_*6bEw6CgLEFTTZ(0b-qt9>gS(ryrqti}y@=G0v$a(Z@ z%j;`T%G>9^6Sf>z&PQI-@AA;@rT4~v`|-Rc=4|!Eta>!D0yRA_rkzSWf1YLQ(G$ND z8Bu%7D2RDMOKU%UH@q%Fm&BZpy>a?ULXJdC?gYUr<%YS!fliM8($~}la_0^UM ziuzgI=l?I)Z2<)+Y$gYE&H;Q@0{|uIB%G^cEOQD%USLOYzV{zc8}smx=-cfYfCbA| zGlzxbH!Ovxbk#PTul-BL6)OZ{RM=yKT-bYT|LFPUW=3y@x*3P@o|FbO zM`wC`@7Hx#Z{KmTwWF3OF4kpA@V|HR9CA4ACTvISUbO4SO5im!_cKYcJ$;AC*S=f4 z7&G1Nf;YxhW!W>exDHYKFqJUux1+rQ)Y z>}J7|c2nkn?D3QyCS)OQIh!YO>thw44}SQYFUZrg-dYeCm_D9sKlJp{Fr*nOu42{m z@!<%Upu?kO<9%{JDS>P3NSxQ|Q{iSu!q?tBc0IC*JFYgl({=_Q>9vE<#+!VfGnkm+ z`?how(fu_Pyi~sc9b_3SJ)6SRw@#VnV_($@r^S&)}+Ta3%Ti zr?J2NZDpNf6+?f_!SV6yBa2tF-9>}&6)Do-B=H; z5F9$aF|Z-een`8;(Q1{s%&_^dV2h&Pk$s|j(zx!eE>!k?EjGO@i_kzdk&(?L>;3~ zvRueH#QlpRU>ZG z^oTDBr^9yrYk)-K=bTSw77-6Pt8ZB_6+ak6QPeat!&R&W#c4rVGEb9(=6oPU*fDQ^ z1^Y?h9M>RQRnE@bBe#DE4B;PW{;H`bR)6c=E2`65)wryZ;3=LvN#MW0GoPFN_bLoS zg@syEq-f}8tYMS^Iy(l>_~9Wa%nq#;M1sO@bpvRvTT@i4%~C6a;E0E;n8}- z7y7eLS(1j-G<6QamH0-ULH6(KAU~dIqc)Xsg=txCD8v7{4FCGKz!?J@Vg1LOpxA~D ziX0lU5Z}7i42R4<+|dLV)3h#?bp*TqV-jCEUayxm8_D+|!VLNfZB_~-RFg`WgHZ%JmTOPaHu8W}++ zBzPSY>D9G(<@B}5)MNYdvT%PDPFDNZ|cR&co()tmZ<2Jy&vRU4rk;@qev6!sr1f&YL%NDuD zZAxaH&Q^TyJ3P^`N+bP{{C|}A7Ql4V;@jB3MKDhF!SRtwjc>iBos?PLyuLWPowgVtxZ1cCp#Ffn#o~>2&PQ?@=J78s z%%rruhH-gl=jAhTke64CanqZ$~>AB1)SH*D? za~%|%5kWR_QJG*SGNa$Rp8(e`-9xx1q=vkL6?_{V%}p5`loL+}`$)z1+tn$T_=;@a zPr2>9Z+=X=B@y_J2lP|n>W|1KJ^J7+JU;-#ws#|)ptmDx_+RA*q+>@oTdzawN3gr` zPWSN&H25|M)oxAkB~|T#zLzSAH0zVSaHaTrbrcb`VQzbS&7aR6@#@-8;Y&aeZPkiq z@lv=xW_x=`CJRe$kn#jQetC+`Lz)T#Qc`aDjgP%U--*AgDRLWn|B6@fu|SqOfTd_o zvlH$W<-RU?9ky>P^yk)mbgF0T$5dN9{`({bTGIWf1TzGPujIWbcdEKS_Z=@vCdMaH z5#ET(Hm7cL-9`0RdQtL(SU0|%DOWph2^f8Z-#tQPy`uik&iARs) z<2wo5O0@1Lkg9%9AR&5_*gKPnXCBWqTO6$?zE`U^o&Vfd#0V0>L#?^Cv1wB!Q!=LK zmnO`Y=03BKWJFfwoS!XFnO$I&%BNZtqNSXdD5Eg`%>H`nGU;q)s9w*#%`1zfrmo<` zE<1@i$wXc&RCKrRKSc{4OGPxvf7m|<=)aNNo!P9p{nP9kOJO&oAQ{@v>-%XWm}22B z-GsJLgDtk_dqC&O{-=bEL2Xhxd2V7jfrMbLd&5~xsM>#J+wo4wsz~b<=tb_Zt8lPO ze8*ZBcX9$~#-8(5FYknIEb-N$G=J>(X1&I3U90Dp!ZY?s^zqP1bw9*fHAZ94a`pqL zjB25Uq>*qU8J_z$)vPfUsAW!`j+Zd`1? zjV{UlVkhRZ-pca+ z^zb^m_hb1WD#Ckr5EsbQ&BZ5uB7XN%!mk&STNQA78S5+y#=Wo@+zE47krB#WD z*f7}{T<2zayDQ5nO^f$N;T-h-wT;Ry9CjGiXk(Q^?&SBxmgbTKi89bmSF0~>yhp3V?9cYNLc@4RhpGWjOdeDd#kNtRYFNj`+Dk`yF26g zc8}C)v29>>yl%!Q`l6Ay8DN1<5#>1ip&>-Xrh%ZMV$s#Omd>cg|LblW>F*b&&en~{o9z)EV38U0@* z-$4LjF(B{`?3ACQi~?J=+)?&1k>{*WH>h{n5e$Tw)h8#+AYBe?uG|Okve37E zZGJ~OhsYaKG744{L>sZ+5c^ZPw^7N`dHS&l7tqyE~d^4dsg zz16>Po8(4YEagCj(vklN zo=Lm^8?&ThsbEEeruk+NP8?-)*nk#{&~|6exa@5{kt2&yz!mJRsy2*{$h+DPykE+C z-kK|%RO_D{ROpgf8qZ?=y5)|i_Rr@ZQS;Fyj_H1evy;~)cV26c2yf$`_YmY5BL|@u zr!z?$;Ln+tO4;-6dp*xjm!9MMpm)D1j(f;|u{e^I7Im?hK1UkO)xX1D7}SPJ?5eL zC(Jj?UCj)`K4u^WjsoZV6}iGNqD|yW&zE_Wj2W4kPm>9Y&n7ApXrg3W&0{yqpxvRI z)@PgyJ&y>K)fnP$&-RkspZGFfnd59GlzTD#)Ne;^mc*AKMAl1J(Seg#0AlF>$ZPc? zwkYh@_8Q)z7)>p=6|nC|Hb+T+WuM^tkxfp+p1<#moh=%%_GjCb^8>rMdTs% zefiSboK5d^ZsS%}A+pDn7~QzYJM6I`5^!JY!{+IBWuBYWc)@r_E#wR)jSy zUWR09Z{}bABtBX14z%u#8K2Y#+Z78KnnTR;?-W^Bsp?X)>rygzv~L(F4*?Dm%`wDt+5qVEXu=5eTbs;j%L&d)e)Rt6Qf9`AG8$>9!Rp21 zj7v1QGUvUbwnSRorV~&Sv|1@&xyO6mbLAO7CEwrT9P2u*ux~Ei6Fq2~bfy)2RoPiD zKvi7p{6$y*34h31q%26=)7v{__x_i!R*{Wg0#kQ>_8WC|pYqJuR5uXrY-HSdcl{1m zMThHY=u4{)Bd5B3-=HpKY=c1A;Af=+Nk;# zt#FMP88WlZuFm7#8+#5!<2g-f{8CV}N)544HuRvG=I)N!>t7^F`^5Nvy?qOPCmn9N zO~4XM-ULa_>ss`8-nOW%aTCG!;=0S+Y@hV@PJMKLMZ)er!MLZnSp{aFn`61M*{hm& zM!4;HS@tXl-XKIwB0CuNnHg@=&lO_(!gYMs*JZx%V^SF`e8?-%y~pl?{$WG&;S(&f z!Rj>#fI6!q2k`l?j!;bDb(y^A=>d=JtM>-f`ulVhGQ>Ak67e1Y8{$6!N06rg+G~{; zP1+!#&Vp_hZIzXk7tw(Iq`JD%s}m19 z0_B8)IT|&)4R0;xtC;31gY2(SyYnr?+?^g00V*Lmly-#T)x2hz-AX+Dzh?W+oGJT% z2#r@-{K#RNfjsZD+tAgxp84v(fB#ibbJc*Czg8m=`-a!GtZvzSSE;Ah&<9Ze#-G*7 zM2$uxkMsdkikq+uLxG#^z|(`ko_2ZTRUH`p>(W-%X|Y0xNQfMF@sbbf<5j5O`C)nf z#;nl_L;R{t1Ebe~?u^;q38^3Re2@@UZ`CRZ)HUmTO0qt?Xlm;S8Z~*{Evr*&jb8o! zLU_sSdP7x9+JlxrxXw&QId<>;{ZVp6$=l|{?kr&Y%vDr<$;B)I_rridRnSHKyYPXRN#Ilu9$v;;Hi%f0QMnYZDTzc*#Qj5qnXub85cRsUzOH zdpvG+^ia}=e3ohC$@x(?Z>bnm)A+~tsrb>ZIVq)6e8Sa`XJ&D>OOIZyizN4h$>vdM zzVGafk7K6M`q|yVzpE54O6SuFZZLu~7!3dyv)Vh(g22PDNc1f9h|XaZny-)9ZmnWJ z{NmukbFXzkXmlJ7_|mr)z*wYkoGKl6GWRNj`TTqQjqrMUOVp;ssxrjL zt5(a~RFi${GP|#IDy(Jd0y1mK>=cjmm8`p-3qX8?;xdvhi{*bG2>2K4BBOG7wC8Pg z&cRXa49idKHuR57WavP_Yi)SVv&^*JSuJm_ebBs0?pgj7`;~W2yUO^uw)Wz?5u;gQ z_)43CQ}5^=Gd+%LW=Wl2W9hDDZ{|~Gko%aueXg;oA&@k!`EH#@1`;sDy3Mt0z>p#V{bYAmM$D$slUTm+S5zl9zYo(2$y+}U{Vj!QHHU8y(hyB$?%Wf(kPPLs8$OyRI z9*JK0eKfSM8tRPtjyByr|65Vzx2yY1U7AI1!9tSbk8pGeD(vTXc)@-8)5`bF{V%Od z_ZBlxnNK49HTcmWmLI?(6Hv#3IST?K-}p{$!uM%r&01}s%QRk>-xsU=M*y1#*m&vl zW|AL>^j((&{RAt8YedM9K{~r|<*%VQ!6#QT^Y`v#c*s@wm1n8Ta6Jjp**uZefIudL z3yD+c0-P*8&?3rZzYkau6FBL*4W)=SKbx2wb zw_o>7tx$HPH4@)hmZBn+j-1P}e|ANA@f+dIXx(xU&6Qm2u1m{rdtSvNg;%{Z(zzAa zX{VxaPBO{D9@ng{g{1_czdZ^u02VJ5Lr(?SlC1n!Zy#$wuU_pR-j22uTha#i&(2C> zW*1BQv+w0&U(P74_T4&QlLk;-$$S69z9KC9-b%Docd-=P^;(zrMThiHd?Ni#L2iDE%kl3)gA#@% zHO2eH(_{=qZ?2aMc`}AQ;(VPloZCw+s_{R{+j_(V==<0Wq`JhFkqO3Fn`?fx*g0wM z=G<|5L`wCpd(ZbCdMlMG^yiRrxcl~pczC{cyqqoO<}99{VAbMji%)hBfj$^y_8NF> zI)k+bbU-CIn6T04n{cXOL#7ob>}Qz)288n8j$oU77FzFGzoVcj`-E8p!zOjP1bfq} z|BC0nOxEA8Iu;a9wtPsgW)*iH5r*f*G@sn5LK&1fY3rASMfiFfkoWirePAK~GCi~! z;(4rpohkR>p_eh`^LY|- zb@X=Yb4sJpF^_Mr=XV~J+t#O449gpQ)NGm}x>8@T6K^kQo_}+|YOiD4%*K3RMp;+w z&QBZn1Auv-0w+kIsu;SvzbL4 zwJ6QX$nsK@!_yM$#AQGV+sW8$1!QTTJYpb7`P!_qBFBb9X-fdGUqO`h2X*CMo$D`ysF+|U( z?l*2z&uKv7LSl_lUl>E^b|>>G>co^lBc)y_gi7;ACbSl*rFuA)0r0-(_odLt_pl1DK{n+4Z}Tt2@Wv9)%~l3_ z@xYN$OHA=uwG6@UN9i^zZzU35OVU&Tgzk|h<)*yVQO)A19}-HEpD8;fda%T>7*yIR zYf;R|e5z7rZsl!wF&@7bVnn3uV_kBRstZ$9qScL+JhiEUIPuLwEZQ}8+%dv@c1GoIr=SQX~1lJPw(@1ybMy#3FJM24w10kb01 z?U^Zhf>wy&?mInU;edcqo2%Q8-r)7b>72zQCpc41U}QBJtp5h>Jxa)S1dG} zr^@6lFjo5xFY`@dOmOxzhvEk<1jq(^BT#>hnflTbqH%U^MXxXhG3-_B@dC% zHWKgu46N79KW2=u|K50#;YwcS@OR%(b5pz1V}LZcd;!#VYRlCA$kg46bj5#l6neRK<=~~=nvF@W>)kOyWBDE_=v%S4AWh6&Tq-eD>d(TGVAVZ0}o|LVhTMKody09aq_oC zIc^mXb1(##q~#MB)mEC>(JS~_Ha5stP3t-1l#QYiD^B_?QJyIUMPa?5^RbT&ZFhgJ z8dA|R@Sa)gb-6l7lu2*r+C?!J6}(_4%av1e^fKuimgIK&MhbdaRJ%8d?GLU$uqN^% z6hC`i19h5G3lyMDvp4_dQmYABa3$Y+bdl?&H4GrGu*c^wFkl7Z&<5HQ=C=4m9_>a4 zgh98&{6-OpAi;Y|x><*R?BA)98SSB??KE*u-m3PSkIRya> zy3Y#V^NZEKCP`< za9&iGKd2i&cV;9YOuPL?Yrm13kQ8nLs!YC2_e~m8{wp!5o9XWIwBH3>InRl^A4?`Y zL$ODHGLqgYZ>ZSB`|gCnoW(WirB_u@%508fgq`E=pwL#9fj3uegJ3qjPNb%{hg{yX|5QSvm~PLl*B_B(ue+8eDnU;5dEKckmp2cz_7QdNSLXpr1`RHB>VDbUE)@?p)Xn)tOufdTTft{s75dG@8aQ z`t4J7{oF1Gt`16ZR~j~2YO-eK0Y@}y*9rth%cHK(FlcEr0}{`EQ_STRJwEjS(2fEV z3;^_!09%XfSqG>rhRkUht3mM;5(Q+?%E$pN@o;cof#a2l37qVA5Uz?+D-}(5Ujh4% zH(i;nNzvvwl&=X?7Vu!)M-Oue9vo0se>Gc`j(l&OER7whKN_ed$js{r4* zp%2GtJ>hD+FLaX61DcZ`BC9d4r}T$1Jaj;~sh7FX*iP)fE2Pz!sHcoA*6h4SYJav$ zdGN{Mnxr8Xxgo)pVCP6lyzv|L1|FM@IoJ?w27q-3kTBGBY71xpAK|tP98kWezbFTz z+1^3HqmuLbqEji6=)EAIU4uYNi>ZnY}BV@FAJ6oRgfp!DWY!zcQDFJlSo4$SUSYvu8cYE-scJ zGT(E6w=LPn`?(@Bob!!H%=6k=ap}-6%Y~ZmPm-Ma%>@#!QY}*auot^k0uFVTV10k2 z9;nX<71Qdzof3)CW0OxgSVRqiPb=O4BWD*1tRtWAnKkTwg#GMYxFFNfpKQHDC{vEMIYsx-iWG7RH#}kq>LzP(fSY2#G>A^0X?+&h8 zyc;?mYpT;RrbFfaTjtN(;^jOS@hSE2bSzaPykKZqwJqYLZpYcH?$kiQJ4x438JYed z%BoYqEBY*fRIx&N-%JZ^ERL^g7JBw{&M_lfrxn@Pi*-ri(NO$dPpwC-~=arB5 zN`=8I&)g=hHi48efQtSa3n^z{6Lps^b)c2AMO5FJ67Zc$23hWZHrWHMHaP{?o(?`r zdk2<4ir0H8%K2+JSUGsBIf<1yYAP9dP$e4VQ1M@tbo3qTx4{9_K?yk?=mhS6-6upQ zi+T~G4%p!C9AF)m-|4Ocd8GvFKz}NbB#Pfe@e=!)l2d?85mDg#E5dkcY9X~xPCnlW z@5bOs<>ljit#FZ=(r5dvS`n!Tp&Z!qi9WYt=aWQ5lNNQx-I+R;6^P&2<&LhtZLBE% z`n#Z))L+gX`nmzd?@5dv*n3$BuOVv!RsF3R%|WuXVLGFB={8+6CU%^f{7#WQ3q}!^ z2iKKHip{03bMYr`!2)(wWpLVl_k7u^eJJvS4h`16Am0M!_G0wi&#))P!9?T|YTdXA zM(>zT!{kgmHR?$gpD{Q;`S|Q!;+WPaBL~w}hU*4uGnKD4O_fD22cyhkW-_%R&iN)n zb+QtNCm=uySqQqGJ$?wBN{a4buc(u3HT6729~WZQzTdDss;R(35nl{w;7tp~VUTiY z{jk0X#^dl8Ot(-b6K^4CL|yf>#A_Z!BZLO-<$$}K!ndSh;UW+Fq<90Z`y2s0pFB@iuSmL!@+!?VF_uu4=yelwe#nOtiE{RYx}aud5G!%h(<^);Co#Mp7&+~i>b0W z70UTY45gyxw>AC*ILM&w&IWPUjgCfl=eqnGD(i>c`(V^xBiTAcnQCf9sj^J(5@5FA zsEI51K5f0G=V;wRyd*jecJrmI_)`H@5qAu*(&>?s188a_(nDCF0y8bR~FyAM0cwYiB%zJvI2eQ3WdV%obu%D!#VaN8yAaE4L z%1O$R&%JVmd<#CKyr?5j#54Wz?|s}qt9qjWEx*4vs&F=u(^*kq=Gob37z?mdKZ~tg z!Pm=Xz--Hz&a4P<9Mp35;_AfWtIWZZ5T6eEFz2ivFxk&C^sJ;Wh3}GWd!HTrh6+LR zTew*|xLg`9>)Kb8+NZ@=+qIW|DAI5hugMyjlFZ5@)3tVEjBi>FryCns-lxK-{FiZp8Rj@qpU@-gc@EC0}b@r}x$B$^v)wzPq5$o{XJ15je+fSZw;FZ_sX}@+``~(r~UpZMZh7 zYPnn7x*xyW&>f8dAECfrS-^%ovd!j#7eE97jV&kRJ4}};a7zzxwygd7Z;vWLDmp2b z&gh&4zZ5R|)eq^R-Wxs`fcc?NV)4%r1BAKU#hb&6>WVp*L*NqZuj_vdMe5P}i{Y43 z-yZ-5fZCQFr**I>vh@Ur=*!+P$Dyb9pnDQ=9SK|fEAM>xLy}Ehg~^d;HoR^~%b^I5 zlAz<{{b^p~9`n0zFK`KOm+dA-NUJf%in|oAK_vf@O_iuS`52O6Hnh?$SJHP<=#{(n zf_R_baXn#JbgQ~E-Hfi-wkj`mBY3;hkO-57H^^|5{{q{}^CBKSi}d2N8t*;(-9Vo0 zgxY9$EPtKmD;|sit>z(thyTMqPIm6s*ew11nh?|y0Y2a~SYC)m__jQVfj(1fI7!*x zgJ;Ot_4j2T@C128Rwn87e_2NN?~?8lDF{X40^(a>&o0}qB2p_FrRwrg>zm0}jyi0aCv`yK~7o?!wcsDQebz)XCtaA1ZiL2^M z8Yx!hqr9A5^MffmYI9M zX#>qG97gI|qQS_P4{3*k9@+3{ zLYSPdv9aEA?hE1RzsPn>iNRP*KDn8Wt-(;Oe#MsD3~MCO$C#-DU;lEsw3)fMoXKer z)Zv8RuosRRaOef27g00bR;{X?l9*n}e$y**w$G->BuUmHAf`JFfa9D1XM=z*#S-4? zJ|D?Z-b&cQ-v#GO&k?G`UpWNF0hgOg>th?%Jlw4>MSnh}P+cfwj)UlT$r~<&7j)vJ zB~DO>GN-7|wa>>2es+D?7Rk!5g}|Zp7`GrZvmCB= z5jZOa?NRF1Y9NKElnzsMd5u!qQmK6*5U^lINTO-~Fa%2+XjsNDrCHlx-& z&D%WK+;dip&yYX;6k$Bne_ENfvs-6o)ur*s9Oz=05HHOx7S`UVd_nJ-Ue${nU6@wz z>TWyX>sqx72K_ugGHAWDgVs8q`DNU>0`L!kMbxBrKNJ^ikiN;JU3J?kYY>jf!&-jFUjoiiA94Tq#bW!z@YvO^QvlI`(MIi# z`?f4*A%G$1B@8hO-P`d?0Rwoh`nNoCp>yOD+niJI&1v}FVsDp={eiC=e3@pW(|~@% zru9>4Vy(T#&~zaXU+u=Y`ayqNRFoW5j?sp?eqg1#>`R%CJ-|d$^#Z$#-Vd=K2-`d- z90aZ&A3v8Tay)WODbsFBy=;U2WtAbwpbF$FWwUf-!X?tnJUQ50YRHJvy{@+6R8=sx z4FAAl-f6=A`EFayb5e0#4syBT^K<2El8+n>pAzd^j>^@3$0rKLf4OkV>w3ODH|Z6B zEvC7eekJ~@dG9RX3weHe#ar|m*AKU~LLZmn&!T))C#SoAHW?v_^*&AKE?U>?v#ah! z&vqBLnX7;G#?LJ7bVSkVu44z)v2KYCdGr|U#ikej2T-0xBn#LV{l<@co7|zHIMSQ@ z(rTQ|@~LN0^dJIZ49o2tn=q&!ZFxU5uhTf&fbqw18GUE0RTB5 zo7ss;-=j$oZE;5)&$E02OYiJWlZKAJ7Lt+oIqq4W)eXDwKBlNj=qyx-XggwfS!GdN z^`xw%kItf)o3^F#-N~DvB0b8ZR|}P2o3%d~$0c_hVT}K}#0L9mZdq*5^D=zv?6*ut zlRurc4B&1^sVMGb8j6h4*=cTIL*-l$znjyXVQfhtW7!A8){a>qJ)^aJTt&7iAB znk<=uykEj3*}og_yd;H~PWe|k9WdHW&D7h}W}kH4$9iwqZKu$9q!$+%#-&5hY4qH(jEaw462bet5)v2G< zUKg$M7k7!Avpr@pDUprVJN7$5t=6zSyWbB56k62bj zEAyyZe1QPIv{s#m$h$11_&bb^cj7mC4E&u5P5~dRnhCX1?VTionw-6+l0h$y1IDJI z&5_TqTXJfvcXZq?W|}9TXe3u#$n5Cr=#8ReV>GRDw?)}t>P?dum5{@^%sw|hJE0BW z0E8@G^P{>f$7%&|`jxO*o15zdXemn&8UQXNfb5K(A9enk*|aO|OIUH!eOd0~`8UHs z0e`TAF+Frj&pp&+d3A6g5?_~=LzsiQ-!5)@;rxA7)%Mkrox%?>jsJ#9Nu0K@E<}3f zg1OT*7FAnDta7BY#Tweku%-Hhta*koqQ|0t3qHvG-JsO2U;96Rz9E#}D+OVKa0_b?!Tm z^Q+BgJOnS~p!+`P@$)2^&ky?(?7Xrh-d^}wUQVz! zg#a7=Ag_sc?+YeeHO;3Es;@=lZQP?3tOS=4r7sugxFxnC{vt?qg?48Vb@?2X%|DY^ z1x6zWoedH}I|YUzqjUq0w-ZIfqq2U%Z+(kU;^s;F!=`D=5lQF0ENpQi{E)g3b5dK6xsK4h|3}kTutnK*;SNYj3)0<62`^m((k)1L3ew%(NOyOGbayw>-O}A1 z^PKT~=lp|tW?y@+b;r6_1RlcA(@n8>0bohNep+G*ujrQF6MMfAEOIoIFI_j)vt6f;UE6ysA02nlett+C(rWcRXZ!}we8@QG7a#i7?4~31U+?S8$yy1lK=(z-N_qP z-|%;Wu(p1-?w@UXH@7@lQ_3O|cMg~KUnxJ4-)|ZBi@v=`;*{ClO|HJL`N9hh=JQ;} zqZL4%dTh_s_pRN{VWrT@WVY2YT9CX3snn3X zO_!rm6w+$YZF9;hioKi&$W4ifjfha%nY^_W?O##GMu}6~<*3R2vWWA1Wkk5I93v3c zd=|)lL02R|f2tPF*(M~;Fe4V(h&3|lPj^TWXnX-Dson=8DUbH*~r@Hn+K>p1- z|LVc(TXjy=CrKcgWfE94eFeKUUjn;(9hXA~&&lv06p~r7`d<-UlQc)$?8$gl2f0H5 zeVi$N0}cCogF%;^r%Ztp9p04J@Tc_aO4;`H6|5g~gE|jNz3$P;2;42tPUeEi7I(F@ z>Q6T{kwhOw;F(XELfu%>%0zW^COJQd5Q{jdCc0~Lm|?dj|2?F4=zDMpnXD`iQy%_X zSk%IK%);h*@z8Fa*@Ure?d$V;brD|$7};3(!@u&`lIt)q-H~K+Krv zSvNm|Y*S!+ZEv#Z*B(}p_D?36p46*Jo6^w^Z2TE!TWJ_is>U#9bZt+uD&div9;h(C zoblW8*yIKE)4z{Ix3gK)NZ@X=b-rvYLeC>yup~eiI z#y%GOpt!|OX*AzHSy22jF~?EJn=eMgh#ob|odMnBqh)!?tpE%5JpKv#w0y^U1@CheDc&M(Q~kiBKd9xf1> zX>}0nRjf!R`$a*%`npDIyj)00CuMsew}J2357ZFATIIkq`>qmJ(;DL?<{MbIWK@~< zxIMAY$kia*3Ts^FR!ge}T@(j3v`KQ}D9+&np_ll#f&W)K@L%D%Sqt__<~n$WTPY&VBjSC z(PDPLC^9?Z>F3S#S%SylC&RD-E7Zm>P~FWkik{maJ1e0in4;}f@cUN#GQ;xlIu%V{ zNhrFGJD*W;UWnu>Hts+B~xR(_tgNACx}ZY zsqS$TYj4_}^}%`x)4FulM6^8`bMJh#NkmIBtnZw?@^z4huuA-7sieKvY6IzB+LrO^ zu^jV%Itk`65^ZQZt96%lzDuf&vxkeuL!Y1WG`*CX9DB0P7U9l5``nncv!M+P$*haXBuX*3D1PUHC7yKSvMy_@ta{-eqo*KcGxP&aIwG zv%SlsDgOt41E7^0NWWtRZNvJafbig1hVunXFElC3F{>i`iJh@roYJbLm8b2UspjzU@AQeGCO-YIoxO1;&TQ=&x z*FUuykrXF=kcfM~ry`Nw9U@y~COcb9^Hf6w|76AQNQn~na@5~bC*4f`%LBe9lOKoa z*BLU_v#=7~AD;T?JUa9_9*W6#DQzF(G{VnPRlZ5e@!`jS<`4K|aAYevv%B}@KSQzn zsj+&^Dre`gWcPuxGxMlBGTL+b$mcC|=DNf}U^5nA;e%v99w;0-|MfXh(s^WQd)ovm z7stR)k1mzabi@1AWbj{8RN3cZk7NbqcGsx3rLzdq=|`<})gc>$NpuQ3MHm|{JeFy# z(*WXL%O8J!4ao&h<4ULDpDI(*QD6%-+Gl)s9t(cSEFji|!wyc}0d9+O>JC3K> zHYK$0bomqqA#}hWSB6tsMZ~*?9^T8eMou!;;j~6xKPmb@A`M*bDmDf=i)UZbizRfA zb?tNLF@dlCf}5C~*I8a?s=OV;ut@dV=KrrUlL}mDLBI(f@tAn9o`~J>Jx5{fBgx+> z4yo4O#bOAt25n(Iew7!7joK(;X1we-h6|gH_jUi;o805NY6Yio$IPUDm&FLvD10)8 zmtCK0iKJ8E#)$_&U9%*}PxKJnihZGr$sL*~)wQ&Uc%0NXhr%fa5y8eI{b=-bW zhuoTl1;@yGFs!S^n(JQ;6r(ho_>JJo$OB@NTO;J&gI~R_tN7vfMSo%CY@-~X(tqNO zgyu1-YSNt9-nt70{wX)ZwVeVix{44=qNmu#O0BWygQBV~@d z)6HCGWcu6Twskg>NI1{k-Uxo>J+Z#3)^x1yH0p@`y!|-rh#GycdUwF%=Nx_!Qaun& zYX^xGORKO>aEhS0e|WoicGh{L4|#47S5!$K>8l@s*O~Fi9y`7v2NXYN%MqC{Jy6rT9{28Buf6{WSftdZ;+b+-n5o!q$d~I@tLu> z|5Am7r8j-c!CrU6WNpH&7k6t+*!onF`dW!QUMjo4xr-#^;{+~TqAvm#X~TObr5fcT zVV)RC0MPzWl25^KzTe9|80yk#;|O z%I^h%rT@_iX_E`5{>F&aC}K3Vx)C6fJa#Z`r`8LUX)ar32){N#zCT0BcXLF&Kan%F zl@ALn2rwcssywRMJkK1yU7qyTg}lAo>iSlBE=TTpfkFnF(*OO-Qv0`c0~Rl+_`_#j&reKE!%d9HfBmu{z6mH z6d=ro>1Uc85=mPhOWp1{@w2pSr3-=c(s$E8V?DIPFR9l5F5if8e8Y{H>B)jEvWUe> zHtv_6jZ_6)P{ZVO)7WP5%1ZX1)E{lgY&h1d74aJ=3CIF2Eng3IqM~6GQ;<4n%qG1#m&H=}sX$u; zO!onJCmy>3gVE~p-^ph;vWLL*5o|%>^VFRqe4i&cxp;8e|9e`z@O7eN`F&-71!<+tH4?i#L9Gg#ZI81-l(TT~E*ga7!iQYuigl*{kHv2|@ewe@G3JKs6LT~OB65M>AKOOt?b~(4ld4D(WU(iT>7Znmkrb^Y%pD@H zTnt7=&WZcs-%)N`Y#b?wlznFJZ{Dl+3wt%xOf8k}yM-E27%8IAeSQN!0XA><#d~Bv z+h^`CbqXUU!d~e<^)JpIUWBjPM3l1V1QXhujn)T-L~i4k&GRI0lE;X9P1g?KE5jP` zhC2Qg5_A$g{vSDVn%sg{r=VEVoVQ7-Eagrh$o8y z_L|z)zvKTS%D<@uPp1Iu=ntO(GW5=)%d`Bi{NHS0whXuAFhd)Ck+JMVoi&^rn?%Ve znuSO4w6IBfnh*)WMXX0DU0Ood;#M25D>l#&Me4ZIzC7nIbKr0mbquiSZ` zkkuIp!(8jR{1a2zcdbuE*bye^3lVw$ICIhb{-f_IxyJV4z_}oZqH*+*aeJ=lP5e#! zQ@dArkiD*rGVBXF(Y|TL(29G4ib3U{-c)oe$M>}J!TT@*1$2Vo3Nz~?L$9era$gjdtc!*6xU+iW!iDcYNO+;0;@7zID>2t&dyO+M zjR~O{Iz8Lyi}^96@O^!L(>$nYVbqcUO0-AX3wBY8ARC&)3KML`M3?{J||najb*f}mJ?npqpkh@{`aObP+nIsDiZn6Xb6*Y|)j9=;!{877(&{vSua5J7}O zr8%u{I?p~Y+j!aY*)Ma5dk2sKMCLyzkj@7WNZ>17$U4LZSWuJVGtH!`IWcRgV?K_$ zILDbBk-4tAZCQ<$EIrw{lJ3MG8)9ic)FH{ql;~`Yz8R(XI&imsWLH~G|}=&UFQP7jFaK@{K8ub@^;~Ug$L6Ki56f4+Pbbw z_bdojLI0~W4_}}oiS|$VP1aWeAdC;tKJ4A#4NGi@m@z-bJf|sXf#gDWi>I~TOKwm2 z_|wz~rb=~f_Mdm8zkj7MZlsP+*wjiNa9T-zyTY_Vq>O;4c@+>$N9JxNw8P1&D37m4 zbr=Xok$aPq?`vQD= zzX?$TVqcSi0l>WDanrJ>&1u`=)LZ$!%(v?aoc?{~r55~?Yh|$%B9tD5XumGO@|x6| z{WC@cgYxA^3Eg|ai>^1)A%6t&P0~^PBukA%l9R@bG+=VR?UE{U6*>OHmOF zu&gfD7lIxM&+aZUKlAw43|VcXh33S+A%rv* zP`|Zxy8)H9gzrdI>-Ej#tL zVXa1|Yl{^ob#kE$dJ740{?;7ZKfsC06}pb6bgl9#8B1HemCoYUBu9l9CT|pXaTg=2 z`&i`5Ns+u9jnKy2xNdxg>5I=%nK8&m>#ZinP#CulnGZXEf!|k-6o#WTh|XPs{7uCZ%a~6 zege$x;p@lBKRSm=*h~R&dF%l@+otOoc-#$4;NW;1bSI zfn97KzjVYEd|u#>NQ@L{KDqXjF{He&G_%Hjg`dykT;%OE9Px;_-?Z}BPmcyc5=Slv zo6k2@OxzyXUg#sw8C!Wlx4`N|;owz*+Z}iMm${(Lq*pk`suKBgx=E4D7mJD*(`xC* zO=s;ioIQs&uY~`4%EFL#6{Twb|hjIR6EXpta(%rG1S>@6p(hUuW&qGg%ptb;Yu6??%kw#(8D# zpax}E=O95ywK&|NJe5VYOpyFOa)chk+!onmTEJ>V%GV82W-u5ygA03piZNh5o8gW&YvO=A1SG#h<8VgVv)-(o2asP>Mi7i z34rGJL!Ky64o)`2)ZAhdCK@=C2fE3pni7Y6RJrtqKND}pm$o)P7*T-wcj&{<4>J!Y zJQW2_@uQHv8xQM0oUwd3sn3Ve7d(Z5uB4jC*AelQtxeec{@|7&qIa3fGI1kTpB?{u z>bFRvR#4KxVpK%@X@#}LgUbR{W?f@480*pJEwe<@_|UdD2E~j@4@>{mcK^v82zQkmmKhBnQ*Y*-gG!56*i=f{-hqLiRSMd z{~SbBit&jM9ZRTiTjOR-^fy?WBa0>j^Es+jdP;LFd0riK{L_%3V!>nb{N7nD6&hP^ z3H5B&o5j{KMpf3{4IpO5r#2PFkQdqEH=?s-j)>ZkMwQa(agT7;@hnc5!I@wU$M3D_ z4sK2DAC<;uQ&D+y{`PaSbXmD^;M>t!E*)JF^Kqpg|H!XC(Pyy_0IzzULP_C3xOX{l zE&k6rx7vB8Vw*cl4IYZdQ+hH)p;J9dhIrvOo3pHb4_`j3WlwQs8#^2l?M1bi!tk~} z2;OKRle!xf)FSa|bib#&-*>hbV9KbGYSfSgnU&jFlZG&sE?K3y6=D-H7lT zFqfdKR|EL*8`tuk|G2~3HjhP%4e@GbZthB`&OOhQN$KwmII2Gx!{1w3N#!Qd&`tH+ z{>-%sW3krg%5Ys!^HY&RE4&YEm{4+6qK}((0{EAoQDA1AWi%IE-r^aQ;HHDu12;~6 zac5+yre0RK^Q5157}>tIeZ5XzTcs@?fkj3eGNLY93-HxG9^KA%Se8F>EuEU{owAWG zsgSa$$u>~9OWqAMKx{b`t=5q#zh)b+%Yt#~9ujYKEC22v_(R_x2a+<$Q5`9{RE_FZ zgO)rFAzvH;Fxo7i|N1va^L-$;SHKWw(R<6m4fi>H+%30s zBknsxukytr6xOriM)f&QLjw{U5ec61%~tFsF%{1qtpK+#)*hpGArbjx{G0_Jmty5> z!cR?Q9AKwL%R6&$CRU3oCDR3x!Y}ky4m-e4y{tOb{sK}t@ zTbHR)Hld-f##PqgRF*d!)cXB#s?|XmHCnf26a$4iinKlp{=jA1;97$+S^NkcB*ePS+ z6!0&gjnt-<%alXr^9+SQel+zA_MRPFQSJi7&)4J6Xu+p08eC^ZTR;DQH{qvUJ z5{P8!@{#M^o^opo{!9-T^D7%3AA$xnrx{MC`y;iQU6diQ)RsW)qWb~W{rCa~#!e^qj(BNq||D7-FZ z^U1&J-5e(uZsS^iL+_PIGHBzm%RGQ#HCRyY!xB$fL}gE{%b2?^kfCuf4>!ftebCZb zA$w~>9spAbtRx_Jnd%wAPTKUs;u~k&9!toSu}QXYJ(V%ST}!Y?sp|OFU=q#e>BG37 zmtLiC<2lKqPzDLFwGb93L<_1V4Jdp`JBn&i@!`^<=#bIKcYgK~Ong@(m|NC;h!AvFqOLDyBj^p6M-WmLgpzF>zWLFF(qTu(`#VpRF=4mG9E+??$=NQxn^W23149Um zy6~f@zowgr+yq~Vh#^PfY;E*>3R3|J>2_*=J&Mx&2xOa*!OG*NL2X!knusMQ6n|a;+rfrff=M7ur0fg*yIozHf z=ozDbW?rb~GgASWFTe}psNQmf#Ln@?b+sy{@i?p7UFaNxLGcEQ^?`hpQ2A- zX8+&0+os9pHIG>Jg5rBYxmNR{X_{n>c#X=E{}9w?7$xV0&xSGVWEA7KwfJ%o zr;NRYEbtjMyw20g^|xj0wsRf%An!&v(@L`s95l#}*n%F1SJz^XqidM0%({h)l-eK^ z5{r5pDLLYqgno;!q$7{l5@;;LBuyRKO)ibn z?m&tzQTguu&i#G$2ugXgAbJAv&VA{ar^x)Qd(sw4;Stc=iNRsa~gTxC8* z11&#zMe)VrhL48UrD>P1F1&)SioC+%0ynMG_o&gE!d$or zU~~;$^*mNyJff~C^Jc)hZoXte5ASp5YZk}FE7-a+L$I?$=#k8;AolJWlMJ$|2j?0- zQeCVi6@mwXta?0pJ>2)k1?oFp`%8cG#V3Hmr!+~24pdPjdF#EHnPD}d7^a?aat;cT3(c-L4Tt{Y$;EpcCe`&luQY7a9XyByo#YU$zPL587J zdeef8x1xc!QSEuKZyyNRfq;-S;E;Iy_CZ zZY`1vU4FaV7?hQKe)sLCdxC{s^J2hOCAHtUAbFsQDmAvift*3JeXNnr9f9yx@6VcgI@IH^FvpsUe@oT_4Oy8iPBBKOn}S~A~F3p(QPRSSdzKC z=!D$8goA9T&gekapWdd`pK1+tWhUybet!(EOPxXB$(iNg@!z?5uk$z1e_MHQ`-avx z+GEHux7@QL7%rD7Tn#U8<8|sh$hf?dgP@!;-*e|=$?n&Xt{V9J_q#ULbW9zd*1*U< z8oKEC^pE6vsJR>D9664MpEv%u4So_I)P3lWVbPfHAv|JFPnA+Sv8%E!+@3QjDi^7i zWV8UVoDCqnW|F-o@bNu?iHRVU7q6(Vqrf8>$>wSF-tKEma2v@>7n{skcqyVz;0v7KwX;P6QUQJ zgVm-8nN!8-Wbj2?AG_!;ozpoCv*~~$!iFuy_HTRxfA~pw7bq0!_gLo&jm{kqy5-i) ziZARBc0Jh}!_Eux)!Y5<2SktOjIJ6_~eO}Q)yAN5^D0`tY&VG6HEYofotgAQeXjcChUW&(T% zXRni1;N4enC;!PK@J`{c-RY6)Oee@z>nQp!7VKwTWa6IpUtpd-HTQx(lpApi&?B*p zx`yeyYDag;cZ(>BH#*2ZyqATiEyeKs%5JGu^Uie;%nZTZhT9Dm4z zXj)0C5^mrp$YKF36dUamX#rajRXT`Th@V10AQ#3CyYfgzxsgw9D32@5I5H!ot_0&f zXse;pklw?=?Yca;pn0?4ekMg5cP6R{hmK{#>`9?3`kjxOh6`$?>rv(}`pvGR{i2|8X@=|8*{%@w zQ|it=oya}&500ozolS zNEo8OHYE_Z#=l`cKgsee;-$bR^76EfsmDf1rXgbkzt}+`r`1H?Fjc~3o{>NwXpC~H zpW~x(^#^~^lkM>Pp*NUZcRnsHSGjA@Wl@)P;u(!c`>Ch)i!W|`G9G)8+k7l-4y*4# z*;;jmuxN-cWCEphg7Yx#TaS9E5T1U(=X3*t-)&Xs1+$ejL*w4Dph+C#Yn33EJ4yQm z4V`I-Y+8Q4mpakg(v1Z)bmZ;##QJ@n?2>~meYkuJ-z$tOyVcoe*m#Y)5LR?&sc^k` zi^9UdH+^>^soA=+OW0Dc;*PesKm8-|;EcZviQ-a^#NaQ~;~N~8<*!2@up_TIdyfx` zIoL!S$c(61(+*3Ie2sUXzQRkETqv>|ey3cntt+xBX23#8E8J+Xu6n_uy1ttVTJ-;h zz+#LoyHyJ^X+5?cJ2^E}>u&*DuT)1q4 z%(C<+1I1OuYD{!_{05063T!_}zo)7XiVh*!isz=l4Tv((DKWhg_gpy-P+=6bHQ1Aa9sFv_fux%rpBgKhGYmQ7TSpbMexd!V?Qrn7TmBm>kJ~R^6JLzSwhq5 zvMPJ7&su&bJW{QWa#N~Nt>=B6c~E?2G-G~r32$GMZ1(2jceY`W5MH`+vG7!u^v!L# zn%BOB&hz~cv?XGBo3$Bw*#wjgZYKaf09sFRI`71GKT2I$ZUYK~S=KaXD4?cf(r65^ zJZap@_HgvPQ|n+JRWwXCctKiBuI_}H(b9Ls2!#E0Rsuc?142B<@_%!>QzxI>CY{g< z*kFnSFA|QB9C3!ItBV9zry0q3IzpY>ezUG0u|HD>;>MJ8lfV`ElDL0~q*~>EEMPH4 z(L$yfIkP?^pIfTo7KhU}VWGv^$x|t%ewVYPEaMij(@%-~UM&nHa6r{qvibc#ZsGR% zB$_*qd-C7;&a!6XMuNRC-|Ca@5zO?(uOlt;vJE5#?Kp>8=4@_TYdaC4QgK)E8%c5- z#OAHxqEAO=C=5^|qlM`CR=uSuw7)`xnbL&i)1tx>O#g13lH=^xC|dJgvp2JPgLvR5 zs{&~I`nU%lmNGdQ2pVBTmyFoK`(Sf@R)RRutRd{qQzE|zzK4<8_IQV@*!#2yRI7+< z)OJeP(XdDS&X1H7Q69-Xi(!6g+%|gZQOAuc>8kpeJAaMX#`*TVW=5VzZP3#q%+REte8_juzt62e`FF$^r>|8{bl%0c=AQVK8k4-~P+_eQD@`3f+eSlO&F zc4Q8*c{HZYRjuLNBKbxAI5kO&58Nbwak6mo=QigIcb!7GK0p~bn_)sHWDben$iH3l zoLoB-YR-A1V|~;$1Et!To<&f`n@J$)s)ip$uikKxa$?=WWSq|{MfsoTAFg4pfK89d zs;w6QV!Bhj`KaP@-3;J)O%H9$*}Q6do*5`zZevX7SCk9T{$$_$lOS(-7A4lx`pwUi ziLv@&d{BEL5S?e@>`B$MKK&YBXfnxTdi-Ab$oj32ULwHvC1EWr1r`<$WI{58 zSi(ED72|3)w`s!gjiBUfj^-BVGuQBch7^<;lt%Df5g#*5h@5Cr(5sCIEGuV4ag99> zR;Z3C2b5>(Vuq;6PTT|8q&d;Om>Ksj`8N>GO<*C1dV}uM{&p6_jHTGh<9nY0JChB6 z>UJr?)x|*)@nUZ7lrOxz``itziB!@%MX~5Q3PCD=>9gPL(F3*jNPqmGF8AA)6&Fa% z8K>aHe?zs;=TRL#UAG~H1AKs&tk#TM;EwMluB%Vsx#P%G@ZixIkkEr%u)ngBM7K|1 zm;d7DBAYV$dzGnx7Fxq=T>CMWU3_lPJaQcnER8^poNd;)(cso`amE+eS#B>mc47G4 zm^8m^UEY59heXHrV3~Mi99w`YGxcZsC-S3sWRo$8_$NO&6$O6HtrBGJhnfsguO1os zQGGUCt;~7VNQSO*a&s9qX|I!*=B;Kr{hL6t-#&9GfzN34nOsDs9iM}VoLZQ^5{!wq z+9fiv$Y3ezu0(~CdNm?fhqcZr1_(ZD6b1d{6o7a?C3jqh!YpQ@t3TYkbi@u&+)uaj z0d=39AwDUO*&l;Wpu^pL|L=K@(FIf>t`y2V77m;akutC#CgDtB*>BjaxlUh7K**Tk zDl+k)v5)UFy1#CR?H@+Le`~8JV;rcl$Bfv0w|M5p9`z0>Ol;6g>y{t^8V0)AvGI$U@6f>7JWB(ub##Lran8J3hVuHD>T;3bMl|8r)E>koEKV;RAb zpUX*m4`*ptkFI~0L~}SspK@dTuA#98A7!*WoC2P5&vQO( zF6_H*ovK;~U+xLj@y4LG3A$~R(fLLg5;c8;+Md{40a;@%bF_!bfp&@@Hp?ibxQaFg zV~QeGg|=OXDYzWmfz7e6A%VwYH7bdhbWL-A&x*7@i(dTAn}LQ8S4TL_K&t{t*)tZ_|i>uln@He0KG|yejG&iPEFO zP2>zmVH6hsUOBPeV^osshJ*3XMdA{|8+4Qf!HdIuSx6*S5rnPKhEHUJ=f7rL6pA^T zR*M^?H1S{i2Z9&LF`AFQA*A32Ac35aXNVyI-i=uQOVn@j3 zbNj&zi(_iObw#A}bN8=jwBM@G^LYn>rUQ+aZ8w&)(vNRmwQ(}dl(1xsO6XQt5ZW%9 z7MmHj1rk4Jj`5D_sli!#YPLFIPRYDx;3cI*3>&q}cz z2I$^2U1}M~Z!FJhEPVubgjlsN1uQ|_IG>u$SO&uKHDO(YN`~{@rr}47wvrK4qR~EL z=4`l44f>US+GtN_6JPGRCZMJ^C$g}orc#tj|0->QM_I1Y(GX=VN{asTi<9)usWC=s zrq#XwC#=N2JXcR?lx_0g{yNIleMUyw8%wu!H{x&D*CbxIoLRS%>-T`(^PbI+3&cm) zPY=lU#&P*XqI-YWp!Wv1ar<9(I15Ck3Nw8dd3&01PSweto!vqx-IEv`dzFH!iSX-B zpHT$$C4=_ZeP67}HC(42d_PSo%i7=q9htY9y$er~l>MySP)o%*TS3J|AYqcAmJ<<9 zz641Qzv2&bhndo-kWrNfIY(I`VfP6D6sN2o+d`Wo) zEFgn-*|6O0C)BpK|L8-#Odqo+AIGG#zv4T9d z%rTL|Er`eTmqf82VY6-!cAVD3ZY0^_+6O&tf1nhl+Gfi6W#mNd{9$OS7`q!I&d!`u zP)n=jUfAqY`bXp7Ys)1mc!?3zd~l3i<@{xZHl1Ew7WfuJqhoS&Eivl9+*v2&YZ0v5 z>5@v;4T)056&9kse0#RFp}dC~V#^2-EE#2;PLt(eB(-a59!e)Be}^?>O74f{gKvUC zbHC#^*A)Sui#>V3U>OFp>lI3UYN|Poh zA4Vs{j~I`P$_JDrzbix9LQ*reYawGlzv>`bn_C7I(0fa>d;+T+hnsgO*H?lLGh@Tf z4@GV}#(KT>I>k1m@KE%)d2x|{K1Iu9yJwCe+g`w#X~mpUk(3!w${)dukbKgVQqbd3 z7)wso%A`AMT=q`VTDFaEJ6#b&FwJ-{9~@R7u(JR0AN4n{X{l7|za{<*A&)@0o|i~5 z2=eq`@b5S=dTqCIcYxJj&`dMID1l6Yf9NNMnK*hVFrH*KI6qJ%vUwm{sFG?=i0Hj0XUR zUp!AJfIF9cQq8(E8F^?`SJ52TQoLACzU{=@xnyLlX?!dVQ|N-}I1l`fO~brf16G-* z6DMV#(T8(?W)aSIaASe4SMbxUCzaEwT$7-eFXIec)T$vW?G@hheo*o!lhixz%4Y_G z>SnwLEuNuX(yx>1#WMka_Lewtor-rJc8$}26G1w05aP+GtGRRz)MF#Oa{tCWY#?`i z%7Lbbf2w=^1v}zuLMHy4*Ef=5As?a#=HdU~lwfrL9KK8duC9;Z=kDz|+0QPeTbkQG z|A=6Qf6`3mt$KGwJQrC!9*9GKyPsi*d!y_6fn@$ z#bSlCUe3?7U>(afJByrR^?O$-Je6Ai>*efvTeK%FHw>vmIsHH_P-sJry%Vj)6 zQ0&c^%geIR+C06D?*9BgTxXwtWTO4X>@dLR3a`VEkHRtXrw8iRkow%eh6hpVs{0yj z1h+h?u>dM{w{KIofsprzR6fnsS(k^S>^HB``0%^~OcoxXg7 z=dg^_+e55RpfI>TN5`=pqXi@xa!L^M3#OaEh15{K7yC6@HQ_uTjLY0X23`RfEDh0U zwdHKOwRDsC^OSz~G?|6$HI+T}xv$F%se3|py>pEGZ|=0+v8(rAk(LV#6Nq!akfx*J zQet2w|GeL}$R4erWj~LR5KPI+Kf?SEHpw$KpX)7HK=PZuboc3(eEvvXQk~yaKG4nZ zQwsdJhH_x7&P$o%19(OE!(Dl2WwssXH$V;yJo7!wdWUSiSqwTrvH>?Txp*|Z5V>}? zL%0Dy!PsA2{2Dv}~J&RSE-zC$9X=~q}YO|ECdOg8PY+8}K^*28;o- z(L+wf@5IkvCtILLMrsMM;Y@HQw8~_F3ZD}-djyS& zV<}WwN`rSI;edP}1akjwHSNR<{!YE&_6!Rf{_pl4UNz*2)4{8GZ)UT3{-86WMLPKgWw5T?&ts|o94xUNvNnta8Az-T?q*UO64I#8 z+d_#3qTQX}JA2gc3%k_kqdHqgO>*NY;_W0t@s|bH8aCLl2?M6$H}e3psCrUbh|P15 zP4o9QNC+}uunjc$>?rIp>pJp!`8Sxwj7aYb=$4+8ccm6ax37tQ!XrPSDh_TukV_gj zU8f~ErK=uLK>NBHCR~vSd)UuxDq}7@9Wt}mitJAO!yS*kP|Kd!gr6r#hHMmrt_Dd0W+nXMdrJIypfC(QJu_$V>i3i3v06Ic( z#{znVG6skLNIx*ntIhm*W+=4gJzy=(F3&={(*4`#s_V5kjLvOIp{WYh>6zt`qYsCk zS|hs&ovJ;`gPO}zqBx14`)%EViy`V;Ia{!jjb+2PhQnhueIWUi_c7!-jFG;KA2(sVpHmJRcntYX z+k=>sz4tXjY$d=%Yw&^FXV5hXb_vP-+12K6Q#hQ|g1#HmSx5y}^k$Hk1NbYQDxCy3 zeYN#y0h~sm!sdv1E=!qkq!>cu@AzvJM0#6FpF;1Vi?mT^1_)53=h{I66>G-!D7$r} z6!@>Oh7MjaBp`Z_YYe{oO4`tOpx_|)SzL)_`Hj=OGwk@>e0eKz)*RY6UvYc-Z=*f= zlF2v1GT--1b~jz1qbAVeO6n2Hq{f#L9-Qihd4gR8}$we&{qlZJ}Qine(& z9^@Wgw1O}28Q;U4Vr(#}W`4XF6UdOZpjLM*h$T#vX>HxdrHHUXwE;U~?Gr7Ru@<8f z3nNtjwQMLgfQx|T)XPiCEd*;!a1t=AAB7W!j9GM=?$)}O3^6>EN=`kZS>i-4Wm%Q z{f*U)>tHHn3z&2rX)2{ul@4!ztb|(mhsj>F<_9UNv<&L0cK?x!X(xpV6=7?g>@Egv)^CP%i$$BG$_KGtVdyy7fz=JLMn`6-_{`?;rPXN-?_wc5 z6xqb7VkLU>+Wulg&FK3?gKJN$9XxNL_=uE&5 z@fRSBZcn%4a|(ucJ%`rT44${?!dNZ7XY}1H^g&Y?Yn&n1@WMc2P%8dGENOzs`)SnT zT{*h^`*)8*Tg+Dfho`e(h+_-3^`Lw}l!>{gpu^`*DXc*Nyy> zL8!bof*!9q(S{mP3syw}lMXXgVcf0W5*g^_INLg^rwXkgp?Q*7Rc-pw0CAxb;m^Cn zIP=WL2-O)=_nx_HU{)lcaab^^wh<=C#Ati%acZyvq>q1J%Q?;mCf3Ro_|T$U$ljFz z-S;b{%0_vvAIXyJVHm$j>$i;)t3G@_Wqi0m3cK69G%$=zKk8^ItX%62MnfsQ>Nz1{`)Y3MD z=7e@%w>en9lT3?3OUY~#^ZUBNB}4V!#uf%>Ji zcnR@8hP-{$bN3o---!4(L7}FRV7)2UnD64TuO&S~fPx4>Q$-8;XXx(MS<+t0R$Diq z#^X>@&no)E2u}*YB80>TrDyC3c-6W4k#yd6ic-#Tyx~>a;7=y+U4JOaF_5t1I>nz* z25yVD8PrJf`9~EU1Xi|Mj&OcaJRTQWWj(~SR9&~`ai@p+z7tRUrD5v$m3KV0%`(?+>32FLhISjGm7t5$sbr4;nD5G-f7PJDlb-Y*tlXA8$?i zXL_B4rFQ!%me}V_vdm^)Y=1}pqyi=p7b2GdtFqExxU8VpqF0I~g31|XbKR~+5mklo zCz72^t~HQ|G=#UzUh)|(agXX*1#h(CbrTBG$GtRHd8f0h0%liD(7Kh#2Sm1ivxsJz z1#sOKo9@us_8se})krfPXU8=p`UEJ&q#+-(Jz!0g4B~7t=*O>B_!-tfgsz9e^`1=u zx6T3o{FoX|A_1fy84&HCSCd&WkaOt&D`eViKWN;Pg{5M!?iimUVbIkqeESFrRyv4`B?9iCD{!80>1_ka9#xgt0PJxU- z;gBkHeod5Dt^82hwTdH!=`e1cejJP4bc&?G#J5I?WV&=Jp+37aYj#}3m00hp%{jqu zt{C6TcccYp>uRCp#9|2?XlKi3u`NxT&{g7N`AfbIh;dWMjhuuzHZGWbl1F|j@w?uc z`kNw$YimdMI%A%U!sz>%E%tuo(0=Lt{Y?R_zfEkm^G$;7?H?fG9mf`LVjU+OsDYm1 zu(tZM2%lgG!UTX@_c0bA0iQ^4k7K%1ucNP%n$6u5m01AP;`yiyKFX(p&x+Zzd5;wZ z1+2jq))f!^$2tV^i~6|rK(Q#m_P$7&{aB*wbmQUXE;RCDzkj{X!t7A(%5= zn3fd^eanwrQs$gZd~%^dd5N#B9*!agoz;yCq&hM<7AfG>9koXZy^LaurqZZEn!WWm z-c@Z4^dk+^RIg(Cc)%N;Q0*uYUxMdQvq7QG=!?$_q>U7YyW_)_zvn|u2y6!Yz~_s9 z78{VS7g8Xku=v&U((=XrRU}nl-Q!)#oyfdc@7+a|gk!;nW~;-ad`phPVVYgUJVZc5 zN_ByAAN5ugMF0qNRNN8cg@ci*dziHsG%)p@=RknOH7K<8c5ZZdnrdh!zAJ7T z5q1ly!oZH?4rj`z$pKhniKO$}D`TfXT@JNvkml@XL2c}@C2>%;5jk47+r<>V zn7Y6zX-Uvm1h#j`{g~0yIGTbKZnRnM%msu5kk9Q&8#tf2nCN>rIDXUQG4lySUKqXg zgKmA?TH&EjtfwOAH8-z%B}$PnSg1If)PamNG5RkHSA&L(G};?K_Zuki+B!XbsqTzM z@s_6wqKL5II#&38oNMV?gj8pi8!$9~lJ9q-SdWH7blTF=VHh`cQ(Oo?FA-;TdHa(Vui;qb zGAH0d^iUL|FvqWfsm5LV*ZNm{4PH`DW^fD*t-7l3^_TERxZsyFbj2r0XpwHN>Oia= zLj8Vkyv%28-d2lQ$40aTFT=b-ua_Kr;=lqu3|8G2!wMVTF(b1Ea*=57VJu#uCBk?+ z&tUML2LCO5?T174A5(X1-+A7K;~u(&c3mjnAW@Lp)xXZ5zbI~+G;csb@b)`__Y&=h z<-VN+p9R2Y3=)lUE9*)%yTL>-idx|GNk9a}dyjjr6d=#u}-$1q8$P9-vJ znW8AG#Pekx=+(hcBPH&ouON)qu~jZ~^jOy!$M#j*H(^wx=?{{^U#rsJMjh-hv~0v9 zTm@aWA4;W&kYkgo#@sTWU>gR6;GxRPdJA(hZXqyl{NQWULB7qq4=vSS6aXPM=P#RM z=7*5gUH^!B`{ne9&HYCR_0p{NtRM9IJdAF8S(t!Q6dwc+R4~`*29%`4cy#T5xpt35 zoI+N}>=7D^)oPL1AX)SpGg84%>}1iCG=yzUJ5&~~!LS4Icq>=L3<{;qA52Xah5l+j zEe#0Y+hd53d&!m*zpH2T`Gw@_wH;KmSjz=qb_NR)=O3dTJO_`d7Bb1 ztV}>HN@m4wPOtBY#5POVN}mrhH0~c_HTzmdp3`nH$+A~!JU)+jO*x!I9`IGh5S{G} zP^`?reXz0iT_ZV6#)Vr(XlhA#oa>jCVv?y@f7jwKR~?t`AmKvKij6;aBKFho8JnSPJANK$x~HYoNA&#`^B#ojYJ{?s%bUj2JIJXY@)j}ZM)K?hbmM=R z@aRJL0!&8OCP{sSY`if7EEJy+12{@#FFhhH$QszHfgt3i23}tF*^|uaC|=u)Lbnfx zmmO>&(7jY7Scc9d)WpI@97NuFLF1=`Yj03NOD*xE=wM#O)oiq`p;$>ULIEgv?$n&ujBxOT zXNAQ(4JTTu$((|A*u_#H9sm6M9}}(eI5+5-G6Lh`A2q`e{~P}|<>xENHtS~D?%O+? zmJ>uPc(o~Uqfm&rTs9+ij3v>CD$LPS2c3eb70YC;=}SmL zU2@s3Wdob)CP-PF(nbV3!q9npW}q z&ptox2IfPf=BukZ#rc zd{kfY&iBtX3t}G#Ax(bt-;5FTUvc$2*u(YcgXY6SAha}?y5O{QBpi;@4wol7CQdAc zqbO4j(ZsCchElDXV27&hIlI-~DMHH8aKuL|#uNK~dlxP>yy9Ji78AIln<+p2ExGv1pJ-F|x`0ihK!8LQ)@TW1ySSZ`Wp{ zaF=cAo5#I)M7!&ts}Uz@E*Jmae*8zigs;;-t5y)S2G+fqyU~9VYI>xqlCoS=|EZ_3 zjOvx@dL;BufM$kA^m)8PeL7gml>cd)hkRPumwx- z1#pSxYuU!Pl3<8xEIH|d=Xy=Gh2Cy!y)pUFT(qisHhIBI7q8A7m0dnLHjY#LBA!#Q zz;=4RLRuz zGh_8-R4uaWf$kc&&@f+OLGwT!5+S|f@F`OwuA>X#RTF5W{YAxpPoL(b;1l9cG9`}r zfaGDlZ;+0p=5%HABC+cBEl5q}$i=X57L2!%6?GKIy^U-}txO}f zDv`2YtzpIE?6ATCRI&kh!Pu26p+A`?znQg&ur4=Ar(ZMqFHF9Hk4Q>y%CM5oy^m!wNb1H z%AG$uGZWJNV;bW%aGt&Y%{!KHm7?FX!$dJb)1blStZiR;n9{JB7|EuAO64mk&Wo>t zAVw_CV6XKPM2JZ2HS%3#C}D9gxDe$%1N$$!`|*;zhnk5<8sfmSC+I8xnHgBR>!_Ca zGGBlHhlf)P5mYyC*)*~+#3$dzFY@;+LwHYJSu%(du;B^By}Ja5vWV+NSRJcEkuQYnit(zWIBgb{jihAD2MT7L)ug z*X{d9-++oH|GY8a%?*f)setT>wD8g2&cwTIxFH9??OwO*%yMi$o~1FoZ*N%D=mtt+ z=fnRvO$y6~W#rf{A}B%fDd}`C->;gRkCWTt9+6cpH15YdZ%yMwhzl3)H&6H~+ivrf zd?3GC#SsH(u-zri5_{a(pJ_HhTEKcKD#pRg1NP0MM z>yT5gy=l~S4C-gq-rvC1XXCBnDlz2?Mi^XO07BROoql952W|A!N&U41JRyOH{?m z1yfW5@)*zQq<0E`oc)yL0uIkzn7o|%*{#b%gfgYuCT{0uK?0nuH$rZ2q}28ako}Eb zY>3diPs#c2Q(7pbe5w_QYvSqe{%cy-lAWmL$^m!M_FY?ZUtb|`op9@hDw$kA(TaIj zr%}^BwTM^ylR@CEf#!T3vxA`h1HzW7o1dE7^uwd=`OuPRj&p~h@5uZy;2zcsnc|vA zN(`{NR?!ON&U4pY<2#b~G#fL0qW^#F_q&EtcP9pZu)};jF zqwLff#Fko0^o?7Po)DKktXYzJuhr5JG~xvE?|T*X3iJG~RenW9qZj_2h!XRC)_#I) zFVBLW9|ZgT-mi-&?&QP<*AEMZZ%B_XyNY(q{M>wQ4E%WCI3ns&hA(fjtUK75X@x6# z<^pWyGMj#Uj2ui!cF+&6UT?1vPu)wnESdRCcF(8#>xS{CAvS@DGVN|fY2V_!9%pSM zrkz?*#B!fY=W^=9vnuXIfn1s5IXBUCiWk4J80K&lh~#}SVN7AKenE}4Qhm|ud80Qu{}D+V_xxQ-FCZN9q?8r7t&* z9m@9}XH&X_6n;hMX+`7io0P3iaGT|-JBg~B>Wn^$Uv6z*A&Za_(tgF4+jWoW&HGuu z96`U88tM$88k&dM1r= zjWeIrwZ4?yS04>pZTCTPM6Qc6dm&PwnZ%MN@e-88{8$H^ORaJhy{t;aX7bXZu5`MWoK!(yTkYH0_=L}b;vrl67+4nflNRcnNK?p z`yoDT`?+jv6Qj!{?*!T7Y_vD8&59x*laHFd2X`=?H!zHY*xBH7E^guduDOa7cgZ_Q zM_)f4u)i=|I&9Xskg9OexKdg%C>I7}d<``JOF8Rc-wo|>iPVvAN3OxL=bWWMr4JVc9b-F1W*#GhRyldtA*5??>*p?2Cz`mypL-EfOU4pJAF zbyN%!Egs69sz4F7c`Ij2;@rJgBW;mzzU~gkfXmd zax2FXUSGuwzICk@WpholVDN`y$zf`W&{0%)v)F5&`B6iiRk^v4bMCU?ome7>#D=w7 zvv8g?;Ui(t-X_<|Lri>nZ&p%H=IztuwyD}&b*R4F29_IVA;p4hZpb_N9=8B~|9j*X zJCNSZaDlhxSJ>|5f0w4Q;{;+7q`0D_*1xeHwUM)|ibcA`_Fiwu-?n^t6ZqsEPKDE7 zkY&|i>{(&9)vXKkK7}DE&XE1y!x8C@b&--qHKs-AeQj#u{op^DHV5oaFxj#uSDa2RLF~P+S=-+v-WZ=pyiW;- zL^o~-vi)Jn3ia`#yaA9@-Qau*TxH9CWMe7`(MT#ha@sP)`zEb=20-zxK+)PayvBpz*mR zu_?A_$WKDRE%cIke29bz0_n4Pqwn5*)?^@Addgu~e**1IFij>xpa{akzr2CuYPz#0 z((f?=hl;bc1rD_>4)y>Uc(`~AA7CZS5^P9;0kA3eeDCCfo7X&bBPiWo$2IG0fh*j6 ze2^iz;#CehxqEzYMT>Hlf!W>YV+&t&jK3#m+CHflZ*_|odgB0p0g0(LfL8J-3N6Tx zE{=;waNt^HGvNj0ZnbV=onePU;FuDj5`NyWv%M7<6YF1j?AEE9;vR80r*M*bE3w8m zkXEtf7H#W#L^*Jn&E{&JllEf4Q}xm_nsc2dlH)ohPLq~NR|c-%|BFtmbv(mER;DBW zQg7{}@XybA!d}w=GluI!zWON;KUrk_l%C3#k&pcWtPFWt$vhKpd`g*~%&@&+7cV(+ z=5IE;{nHF^_pqW$o zOVX&ie}b<6>)*))*dsd3_rB4ItvOzJ?-B93W`qMMX)gBg9Yz{;fe#;`R3!S6 zl2eE!ELrZYw)}Kg6ovr>xm0#zM@6wL7?unwzx=!@N5@F^kUEPCfFG+%Cs;)8L!t4z zh6N@5$fOpS#~JTR2o3o^`mg8?I$uNHe=u&B3E+ku|HtIQZ{8XTM5c5+29Kg0#*ZB- z(KtAos*~BfC+1)ey3S{Dr4E9aH}^bb8HU%(FM%BQ+FW(Sg{VPtl!e6L*E8QSQ9bJ{m{5em>53a4Sq~U zX!y3-;UU~G8;G%nb2_Y3tvm_X)lx@+rlVlo8InSXC{1&T77=_#Q>j2M5Z7=TTMkR4 zd_-QaoaaEOlwL0i!%L1^*2<~!r^r^%k#qS`ltLG`WlxY9QEAgUvyer%xa>@mCvGvl zazN5c^M}&FuNN3M7nLRIDSm0-KZ;qIjS_R8QwD)-v~TjJy~&rbLh3XZs{I4PvAb>Q ziD(jHu8L0G%Hc|QiFbU=maauk>WYv#kza6cJChop{`7XUb#9zqyZWziN-atNkvj=O zB^7x+PXI>F#IuK-EyvD^CGZhDY$dhFiGRxEtHkb1lmwgv-zpZJotXQHPT#HsYHB*& zP!UeZoRccb-eA&!Tn(v13ptDdXOAUNfb`rsQVVay&dS^e>ZqBUnj!v z{;MKuIBCsYcFMi1xz1q|V~D5ZC^R5Df!gRpWRst>f#jd58s_d~S6j;vIFr{pVzj`k zB|bPpmWOX);GPnyeE)@k(3$sa1)4U_=P2T6gwnW*i;3}Icikr9KyuC7v;!5Qr7<>M zG7u8eCkvDCKcVUc7O*=7p||n`L3j_p4gFc(AfQf2S?G6rn*M4?v(IeFkM=hV8F3xL z8Us{ef-J;}v=QF@uhx@;i_5>AMCr`qr)4}@l3Z=f!;uZn`#V2Qb>5w;`77Ts*TCF0 zd5>^_2Lc!K3zRyI$$P)mIMx6WzpS`;{a*0)m*UYK65q8t^4&d?G!0|~Z)u&<5@{+a zL?sKS-a*|itKF56$Ye1J6glheMV(fDSWvYuxSQ2*-R`p}CWQX@3DCyUKQR1BJe$Ft z$!g(5G!ZnqP_roj0bL9NK9$tTec0oslh@^g!0TDz^nEf3uVC&#V~z$@bsh#vi+W>(MX4( zzRGXTgv~lbE;Cma!l!x{wBZ)1*IQWigzmgT%s#r;v5ye}qRDg`@#gnJ*m|$k^ET>Y zgfCQx_+LSIQIti_A7WY^wYqn!%qWH2F@t`0C7wwwi?wgL=?m7!^bvYJNgFN5GdLc; z;jZE(F}Du1{Bb^O5)MHMQnJ z%#|$L9NehurSyCAx+#9u1WaVXi_?V!70>91pNW9DrgGn06WqLU3GR#D+pP>V|Sa19MV{NIW`Bz%>h z!@2wQ8ZaF$v@6~@hxpEp+YL5dEVwsm$94^~7EPj-Ku8q<9dL`u*>8rMe*`w3Hh-M7{S(s30&c2cNK|=9&mR&j1tfKXGMJ&xsSmRr718XA+lsn2|Mw`MK6-O>EkH8 zNv5X{`|n75bBhVykFSY8_)l3gEDFYIg3Wv%rT7UgkiLKPF2Bk*3bbWps`n!){bH@A z=}V)Jx14 z}4$q8@=%9w~ShIOlq5Gw#5oTwZTQn z&3z6UNKj$x_LiN)mej)e^)uxJA036X0Jh!qsU(yU#%MLmn zidu?>%T2qs{U`hAJX~KBt5Tb}+PVk=jfc7ErYx4W9kIz9s>~@&hF_5IH6Bv-KiUca z2=!BFSBBhl1ZRDoSS!rGp}w#DdpqH@eyzI!y_d<$yZQwp`V&(7KJUMOUumiy5WuO< zV>$LVpzaohRci8USZolHf&$~XFmolQ@M;4c=y5?HQ{yE_=w0)s(gW}bM{^gg)Gp-W z9<83Vk$F=*M8{|k0_t#{-Gd@($&MuB=kFK6xgl=_z~L`sc6c$kP`snEL3;-z!xqls zA|s>{$2!?cWK-k2X5u(y8OnlmWk6797O%@xU?r>Ok=Tdg!6{LoK@4V~*X5^cHe`=s zvpqtqOLCzs@Ro4*sdJ?up%mI{0joyWGF*t6x^DIN(DSh>RTr4XbBj|*z1buyvD==CPkR<{*Gw|2YTDRV4EEZ7dT(cT zlw2+L5jfEQqf_7B9*#j+-$iQ0!+$tbT4Hc)KXSA*Es4?=v*8-Sr$n{hOtCH8JA4b0 zoK8ceDd{;T2UIjAVfJ*@!4Y%iJ;(pX3c|MEbquiKKVI6tS_Hf+Is;lIND-4V8_nHk?87fm#b%E0ma5&10niR!w zK^J=JXGBFJI5bbMVbg++wBNd~UnaTkH(tT-UrV^(5oODSixyyM<1c9#p6^GQ$1-D^ zBEtOA)maOB{|`n?G|2;!opjA@2cyq=;cuFQUTrDib1a*-%FT-J5xbIx2OeSjk(W&^ zlMe(vvzu1X*4)Y|k$S#kXM1?rPEZYCg~s+7+~UjqFKhR1>nTm2t6QRG$C_G_Ww|gr zR~pTQ6j$pX$LWMvwOqRGT{-XCp6i%@SY#>OwU18kd*?kt8cY7AWI^O_{J8`lP+cy! zBi@g)g?}U>ACHLy$Jbx*2yk>*xnpEl4<}K)B>Azhy(X~t{Vh%Vi`WZ#3&lx;U?Bgx zO&tlV{Ic-8iXXbe96h((URp&u?Du&fc!S#>h63oP7QKzMmC}UYP#I6lpjgho$9{qO zF(3xOs%AkJ5c&?CWE!z@z&_oa{I*$D_Kzz&^$6OTeP5_fTVS_5ZAB|O`6tSIYnwJ`_bFuhFZXeZui}}iZ>5hB z8u{@#&l4m{@RqtItqCGuX`@jb0U@af1NSF?c2>H zK}VFVMTV9sKs%UbmnWTusIy3$=2aZeo5iKfcIqX;6&l`Mt7XWrfiZSvb2EGo-K6|z z$?m#T(TeI7Z*a^3K0~MEq=}Ss;!)f|$V|^TyH-}adI(k)f_HF<3MNc9ZYPralil5& zw)ByMWKmq5r}G2}Lo?Q;EV(WORHRQ7Tq$ffN}j`r{N4~y_3ecFD^wlsK80rCmmJ26 z_PtQLJ@GPQ0h|fz3LJ%`8cQyiq?gmv{H}!Xo|++XW@$%vs6NIvHT&rUlG` z*swHuGKdR|sBF$Fa($Ox-o;p0I^v|Vgbz>%#nHP$gE*0jf zx!>}(trXL!S6***T^r^@}e2^AEY-q=QHiqdNaL zWxq>AV^%L}1Jj5*FhLM#CC-Gz9kuUf#5_QEDPowv1BX7r0_w?RS-BVrzN}Dl^(G}v z{8!6}Lz!r?#91MXFJE>rrTP^S=cb^ekv!!^hA~Rn5lSVT{v<)mdm7jt8A_Kjz=w15 z@Df=>e=?`T>&|AJr}B$%`n8>Z5-9{5?SO!nB3B>)eGI!xrf+H$&TPilsGmx&QB^-- zEL$LlTJcRm4mOKfRd;s443=_8`>;l+aH-y*JWR~2a>%y(l`1Cy9dDUZr~d;A zUPvdOqNWCnPwa8lir2eVmw+o2dn$*GAgfu2>Nwhf)M8E1n`3Uo4xPt!ZSd+EYoxm# z##7dcvc*HNy+(pn!NXZl-RW+{ji5RjS+?IIb|45h?KB z$21{p11Q&{K3|&p$C6_{Vc=z2qIB+KsQ9?CQ36LypzjgWpE%7iXCs+zaV1)lq9JJV z@D;q83HCtP+Wq?Pg(*KQu<;t$KDATlFP&shX44FnTnM!Hn4McOavrSt3f@bJt;0$R zRvQ0ys?3v~x}NLu#Ih0rt=HB}W;E0Pg3DVS=*} z`zM+bL^O>}N&5B^0_}6`VSSS>w?v`G{Hh28TV+<9o?~2)Xt8y0C+h4@Kx3`eFpuKr zbHRsUxhk{>cvd2n_31-NGS$>4Rr>yh-6Q~dh?)XUm z>a3L@P|%hguk(LLH;>3|F}q4JO=DJx~q?5 zsuT2ZyaXwPwXlszC0bc<*OCeh_A_#M-A;G&G}jJRJ9ORv5j9KdXLziKkhu^|6V6U` z!yKf5Ujde`oM4U>)@6MWbSB>6f?&z+Vp_bILi!oz+k?&4q^szZm0QOWw=5-J*A-x1#R+1fpZ%9S6wqvm|#}Mr+;HmWlmPo%|5%Ez$i2 zekGoOvTMwjR^XmAZDcFf&Dl%Xy%G{+#`EHi&L>LQmj(@UafL709#;rH30e-`4aI7nZCCR+>#2FJAry z7l2U*aQ#J6wV~W3RFdRRj6t{X^9+vI4(Y1nJ+7JLmEoLjx`?HKH2)cg?A^H^iV8>? z?uUAm*>dvK&Q;AA*pu~*mOOQL$ZPw?&TQNOLP^?{jH7e?nhhsM5p@N8*5Gx7w@he! z`+DNMNDg;N*D|CIF6Et-oOS65;N}fH;`|b~=Y^c>C3LXO0*VmspCbtuv{madZbipG z>=bL$qHM zfs8NXH7Fi5^Kt{bL?T%i@pu_S+qA3P$)i5$g9^Vi{eN3Q^ZB>)+S#w=RPXSrtjuD= z44De8M`^#q2j1^-AKACB-hOeFmH?qY`<9-%1utNxr|UWS9U* zII6GNe*jY^WVnaq|BGYig<5%0Ul;9hm8CL=csk+$o@0X-P>8=*IsJA^|2`UPW{D6X zl`tvLSKfg$U`>;RxJ{mS8)mpi;~RCuzcAfs+i(B|RauJ%^F_bHb`bLD!mKGX-{GPt zg?jJ>awmLlI)3iV+L9i=5TgeGVbjOM#w`iTGSgG>U? zQg8MPEJvsu`s3%a+Vd}bF+T)MA^y`*B!8l+pV$Jvg7yUlL7H&)^h^hDC0V+or_S2+ zi`O|L?k6i8WwHXs`rE_#YM1Zvli$V;c+Hfr%i)tbHz2&Dp_y`EC#PGcbRo9mO26ua zthn>m!oTzT0&dk7Y0zRh@yK0oFSaUMA%>0+zx~S;g{Sp-^D{Hue;xNQ5^nM^k%i6k zf1kIq-c8TH0krAART$5=U`nmf8_o}As0}7zun>Tq4zi?|#ollot_0IsL_EI&9l$`0 zx)w(3D-?os0V|9&rVKd|ar<+K#j5(m;R=P~R=u1NhvC-*`i6L>lfKq$^G15zCek*u zne9y%b+TL7k)IQU$4;2J*avRmB0P;kdwazU5G|?VjJvfQ^aL?O0Ljrd!a$dHM`Qfpci;P2aY2 z_A~(suY#;IU$cWDh7VBy)Jv$(Hj=kY7~26yj5DupcsVi~s`SyuoZA~s1`D0#6`G3P z8i{|1Xe&-Nmj~+8ei^#1r`uHv%BCTjiPCbXfnQxSbVO<(e(0HvFOy%ipS@4sT-Gmk z+aIiM(s1~Sn$@!&Y;Mx#hW#Go5?Lz+23|tn)ia;>tXS7#7?S^*Y3uv?_5JU`_XFMj zUuFqq8n18wao8y_i=J%&i9hwHZ{cN>d`?*7CgyGp`$*_c>Kq!UwhghbNEvSk@6{Yt)_Vv~mxn2j+XDy_c<`+RnRky?ro|R~J#r7mOkae2bmL5wk4{rs6?4s(X-h@{Tbj zs;Pt)j7V@-Z2`7`AdtuuKlW;l&T~5u2w}jYkXvGG#sli z*4>0}qvtoBZ1GH{;|e#$xn??0+YarXR-?Q6YYELxt*;xy-Lrr__oe!Njyx~*F1!76 z276KL%LrF0(uKV)C&_92w9ncn*rjR)$M>)!KxNm}m^EHE4Q!rkNLEMO%ln^cIyMd= zyPZsY5Yt2dHGW9FwbL1C&m-yo^wb~Z)ZM4$b{%p3OPFH^+%xeZiNXVnd6|eJbiR#^ zWJLx9n69~iUx7g*1TCn$l)>2*XRQpWJXNv0Y=|*A{qdU=633z|Y)?(*td6HEmVr0a zQ|R0}9o}TBNK`)9b~yY<(wNiq$N9HTuud~FXwN^9BhAD>Pm;Ri8Prg4LQTdysc{}Q=3>a znB-lvUbj;?h2%dHs$^73ze9=n2_gQ=vO;k0&d_}Y2vu1KcuPaP)T(wG7dh#(DTSsm zz?|J%U3z}syhMoa;d_6)K{ZZgxDcT#Qy`ygdgpGuEuWy8IEz^|J3-Ul?*_baMDiK; zO`a}x($SPSPWSJ`<8A-6$QOe;$`x~5E|_4dLf;6}pbhKXZwsXVQ%EX*%~xk)s{cv1 z!8D3jaX#;1_oi(9tztB+YtDVWot5W%yYKcR#8n774rq4%&tCkI4WSp9yMkm-WV|PW zaFn2TaKnsgy^S2Y4B;o@f%iE6EXS!=5{mWwyb@pCuX;e9QzcwhfO1miu2D$W*wIT8 z?Q~_sb*IKczz@&$nHwU2WowvJ_ZTS!Y~7Dz+;!}22blz3(00x zWU8XqWjgQu98McsCkd%Opb1KEsMhR@V%oF&{IC1v!q=;DTb+odzw?C_ZI*!668}!$ zSnu-Dw#g<{v)?gni@Ic#3HZQHWx})IlMIRX9Rs14w;CZ|@XPF|0oaT^nGMy}-~H`D zCL{}Twe|#o!+f8GD&J=zZf7T_q1^{Z&lg=O8-8PIgA4K(p@3n}q8b8nB{*wNRB0pp z3VX~VFDPsw)lh6Q%x(0&d3Pv$#;xFlm6HM=0V`;Z?9oivNd*wOhm4H!J@};4^mt~wbFyV&S&%uG{PRzVV$O2`EqqndMwT_HW zQ|e>BKam3itq&Z<(HT!w20~cd8fJUo)%HGj;j`1YS`zNiiarXusdZ$q(91-!tuUlX zrS9-%FtnGqq}p)^1`j^Af+3@VC&M;}!{=DSMS{y$IKH7;n6pt_NEmpWOC1D1b2Cov zd9X@&cqXFP5ueCSe}>s$T-=y-ou?)v2AvqDQx2QC_!2I;M$SYg%d1tS&v>4IB06I2 zPaj5z@3{MJil2G876f(M4bD$5TQt)IX^x4uYbaq1O>>*eAjD&`B=Ec(NyEvnd+1D0 z7`Z#?&sdza(lAw*o|=2mV6)Cu&d)%^yJb-BYo% zcMR=Qz+lK%aqf2#HS3+#Z2SvB`uw&zi~lb~=|WuNVsCHo(vcV?0Na*F!=$p&Tvjpz zZthmNlqvv#RpF#F*~S_sp=K`x{7F!_X<+trMxrKho_FN^~o6= z=l;zOwqOXSV2izJo}Bj(6-uN-|HHdnD26Gp#5;DjAJifZyxYm-JvC-V)zrBHXoJw~ zk>=VuB`SJmghNy(xV{Am{TrFW1$P!-DY|oB%KX!u>M)&@>`t;%w@ccgbK5t~CwxGP zLu^Fkv~7;_jq*(JakMN7*%O!^S(#uHC&RFSg~EI0mEXzo&y40OirpRc<6z@7VoN}G z;&DM_CN$lcYhi~7&UdFt*r$%hlHFl&vDSk)sdiXfU7LpTm*u1+BCNCg)nE6XLusbU zb*sNLN0WRVy7J4X5~E_viDk(oDsU-IYm?@Y`7T#?c+>eU_s_+R>30Ko@g0q{?tp(&q__AGjr7i0bpPK4`%nQZM+-(zCv?8>Do&4tv?r23 zu*RrLuOVQWE|q;p4vssf$fwP~+yo9xM-Afy^o9?dgU!qblHrDLTv>lL$lPU;8rWrU zo>R6qU0(`%tPFH;simNOtJVo<$e{8*nw2QIhW6_^QzaB%5zF>!jjIg^J{XXefEAwSlVoAUh{fOpHEJ1@RoAEipdHqP)>4dg2p28YVAn0cU83h)lOeQ#i@d_g| zV5lkn6rrj3)Y!8@eb(3)_F$i5#m-R2O*&M`8&niXiff zpd^L#pWykdxi7Px0H#FX=bP%=mal4uYS`etT?bq#c0ZGzeiGd}zU$1)+lz9`6t+Ua z7S#XqYjPmO5>`p;&Iulr*};6vdWu9fTK487o8>#FM_j0W>*qkF)AYwx^TVDn7FPa8Q%iK|5beb-T&i36nNdaXJHsy ze`ubES_6TcaFRlV3R8Ud5*bTylK$Hnujo1)hxC%{v7f@Dio5{-54ecMCz>+F4`YRM z__PHMi?g+l=B5FJ8CK#}I72hdfVYg>++Ga-`r0N0m~u|G0gc$E-{P1>8oP_hMt;ZQ z)rB(Q=TdscJj3~>#eU6=4XS7!`nb?Gg(XhwIL;=PGF)8X$*MnhG{g8Mzv8LUzi9NaOFB+W;fzI?cb)2qcg=BUXgyjOP1q00lw&W$@# zj1TnfXX(GyI$BJXoK87nDeO|dZt7H&RP)|73|#X(LkdW5bl$6V7X4bkJE8UE`2DGo zqsa@Ov|HqoSkD~g`7em<4wD_GQHt9yA~&&P%q@trPTC#q^{c)N{^&R$e_8jcRc<))!|Me^a zfQFF&Hs+bywO4()@s4I9dn0uE%@%zPE$`#U0B|`2X285Jd^WT@^i7!lLi+Xa`07U* zTuF4ML>Xaubw1&Zcq+WXW}kp$wj*4pyvqyPVFGk^@iMB@mQ^<5-~jloK_pn$%+@z@ z_Y<}Yj|ufUf&cHavfk(Nt{XEn9S_H(_V6>{hJryXf0=f@3*HgD~}V?+xcahUVFK*C7FxEJqS?$ z1~EVkT$TgY|1Enxp;x}3E56I{LqemndKPo;T-(i_=6e+HRJC@K(BMaY?P|AjH4ZD* z!>Skcf&DIJU%32$g*^1#H489TBk}86tdQdOl%j(fF8Qf|6<_n4bW&EjCxPcaJND0Y znW=lKxC;iglGdWu%YH(byws)<1sZlUuv#B%rX$Edy#Po&$t&949wEiH=o`&0R1kE4;tyh~f1}bj z<(iKz?r)a}q7wCOtjjOmKRPd;{Eit!0nIEIhH#BEzjfZF6Im&o&pw9U1Wyzn1A8dE z2cM<~*I0Q^8R!=1a^zwV<%0q6k<Y3eXi6w)A# zfC>v`x?cF+-MlBCHZ7LRvJ^RaV8OE-xN<4{wJ7(7V1&K{svqUpLP((s;hmA5RZXkK z^8qSM!)R~C)6@uH{4xZ(e|apk{U~-r)5AKm02_kyAzxN$8KtB&u_`pzv+Vs>h7EeN5>aUQ^?CYqYa_X+cw8~kR)+~ zUbxK1#cd+oh}t86l@CP6LR&^=D4_W>rTz()C6N#3Q#w*q8+yz=n&0=t-6UQV%C=ax z*Ex?}1#>L(by#S|AYtfjj~)p@TuaHe<_xFNcqnL&D04Y-;zM)=_B>=v?7|RV+KK45 z(3F@RW_A`5IGbpV5b(+p!_Lx8WrhWqbpu`Xm3GSHxg|;CSoDokaAkj49bG|2G#)I6 zyZEK9bWqLrI_nik20g>KP8NwF9)xFKx}hih@R&<|&aD0QOC|H&`U6+2Vt|5!IbEW; z0xa_HSnF&%SqsD4-dQYK$CL=iYc~HRLeJXv(R-K-%Qv(~1OFCA<@8jh`g_;c z)}Lj&V?7l+&+r%E=P{K!V7Ywi97a%6L-(!*!jsDl}xO$wfw z7H`hQt{lk#eMeKc?j!tTxU2rP9$FL1-4bRf&a1zV?wg^_iFmxOLAY%!Gwxi(N)0!ft`0e^U+OD` zx)Gho_&$==Tj0gd|K-7JXx&QxAslSSIxcBnRogf(6BSGnFIc_vmT1Fu`?AyC8n$Lvd&;sZ4sGb&AT9(i6U2QGr z6ha1-T2~kb7^A-oAG)1>n8OLQ<>!THW5CLlza`DW$aRu@{Oze}pVF^o47+MQHjUh; zLXQ>Vh1Xr|aMU=A4>tP-cKah3J{TvC%rG<**bTKsD@HgwZ~S^J^SZTw6n8Am2@mLB zXb$LEAf#nRjMuw>%6Zp?!i6gvYGInCk1Br8GQ>A?B< z_{kJe$w&% zmyW_Q&KPwK6&f{fpSAl>(}Q+K)7GatuA~AO40&rdX=^Pp*J7^eK1Q&QCT(t;Jkmaw zU3B*u+Im-Rk9KXNg#}`;H#gAomfH7w$*oWOq0m=S;I@LR_xP~mC#&e1^({Y(+fk9&M* zJS2`f=!!LT{|2jOHEM(E!M}gg387@)1PSnbAa8+!xUhuwrFw*f64i%;WQM$Ii6^Uz zg!k_U0{7>^x~1VOQG*pu$+4oh4;G}TN4O{l%vvQshBm+baR1s#AmoDf#XW6r%*W0N z`H(>lJ#>X}^ZTdJ`mZTcGBlg)kxg8YGEmY&dhh0Um`Wmqm2O*)d{~gumo%3*>b^x% zt0jMl;)i$PwA$Wr-gE6&LZf-`&3OYOiPt<^1cuSni{1adrwoDP`u#P9na(Xs>73~P z%027eZ35qLe&Dw?4u!k%S^!^h7QZ<&s_qxA?8R0VMH92_O8a(R8P5f#`afS-%M9p? zF5Ht1@2c9z$0iJ$#z5zkPBxi@q*|v=?pg~j8%0yi*X|R9F>`zO&yCv}Mt$O|`uZCY zBVtO&Ira&JoUOl}PxD-t1M*8vpIdOHnw<+o_1DQMlXu=OAVL-~0JPNc&spPqoAr|G z66jN=4SM*eWBCNpv9K0heA6L*zqjm`72Yqisalbme+XiJB2L6S|9)%f}^xU{xF@r1#18 zSc>#PC-ldIpFH2e9*XpI+%yu9*Z;U&Jn#fZyptj*1RpXT7HzxCN8e0Po|ZVstsf1E zI0dSCe|m4wqR54YLs4JE`?+OcslevFf5mFUWGypARU3DRb#N5xjX=gtf~cp><`p+D zK0~X6j%4iOyiG^RNnnNV*Qlu>!0~7i>NE9k#LfbWZp%nz9fYT2H5J*MGbX6ERGRB* zPe-${p?YF3ex+hl!uM3)+X-+jbCWqIVrS$^cIp4Bg&iN`{OPTv`n0@%f*&pYcKd*a z?hRt5(XCRXQ*LQU;IS2$mOg`3PB06yNVzPZKDm-0fHA)cM<^S!Zyy!|qHuPm$TtVQ}q*f4BppK6fS{j`KkiB|{zCb5;Z;uL2aRRPGGtgvuLiQf{30=jQ$LW|ed_J+1 zDbD3x`M*4jqSLXOSIpN{WbWd7I$t-lC#yrM1{NfTyHhrA?pM}w-ARO!+ezB1llQ87 zM4Px_blV+f5-Sz2vTV2q|IoE*N1|~t-Y4HU*W~_9V`=VRsu!_+SJMne)E|4s=A}0`AP}#DA~P>PS!1(2Py0y0 zOyOb_21%0I9>N5+1ZPc4SaMRE7C3uL@WKYkb1HuU6O(E`_arhGF?k|w1W zHBLsrm}#+IC4AcAqQ~of)ao6w+-e&0KGNu|y_Z*>Vv6VbAzxR>8oJqyJB`aRL^M~; z{gq`9KaGGsN*5uJufw4Il9ng1ayq{Pb92QVYmm}U{3TAKz z)bK7G58Jr+ThcU%b#JEMiY@t7#>mvPo&S+uLnZr25;C_OYcMQ32@e0%yl#Tka4#GY z{>5jc16STuUWv@mls~!?g0rtbc1TJO8s=^IQ$ZH#b1~Zy{&-)Ibm8k1c^7UBL-4Zr zcWDbe?=q=>3Sd~g2Kl+haU6y;4BghdW>UP9K*h61(zTaLhUk!UAHK5pxtD;Rwptuv z;tR9UP7H@e$m!{gJ+@tywUu!e-g$rS54ARzEunkY+$!73fJ>*}xG24nH7adf(abjl zAr&e=jC$V=SrY45RUqGJj$Dq<$iLpc`5tbTyBGw_fVViIE%)}O^eoph9SThzYn3YX zZ5LBqo}fmCBP;g84ba-@k3k@vm2NUQANu`I2>`M6!^~_}If+7Qx=ebZuc9*~u}b}JQ{exW<^b?F2`8NVK{;mcQ;q3x-F*@y-Ps~rJQ8;#jV1WI#b>bt2T=GT9R=QKjE5%` zxXfd52TjroSU<2;deIyl=)ZV4fB%9nMtoO>(HnxQ7ksiO7W&?&LVuex9=Q=B{t|b3xMfu6yv) zY;#x&Lp6^ao1^dVZe@F{t5t2Ew0Fk$=OS4wvgg`-9$7g)zqk0=5+`uAYgH+BoxE3s z(dx1Vb01&V;;AWa#j2dNKeAtTr_G~1P-hG^1-tJcV5%dQvfvFSf)-r#>C$?0+qfiH-g zKc550tjZn6WT927hP`q80>?+oBF7Q)VgnO%am}W+dIyWNrVR4&#j7Rh1<+NhK86y7 zBJ83)@rIl5q+g*02`0#{!38X=Ds7|2u$W$*w#_Ib%u_eoR}Nk)={AkTw~ZgnYj4Rj zt3=|r8Y$`_WOgVBh<|6oPY6lajMA;5l1F7-7>5kFe* zC`E_SF6)`_53Y;4{$Ccp#CVU1Xzfec4(#2aRf2qlGTJJUwt%g-U{bURg(Sb8<0#9*ur7G9j(#g{G7# zZF#S2Lfq#NKgMtvO*kmld6ZdE4ckienOF)3?VGqwa+8)0s#6~n#cQ+-5;MNgN(&TC zNuiRGckDfz)UUtNg3jZU+Vk8Df5B$cCO3QwMY8NA`B^c4f`)D+ANf?~sc4PixoM83 zk;7gF6q$J;GnYKnWA=G;5Ag>#(!P%rV=}XMGD6F&H73FB67D#cKbfGMwSQj8I9Twf zdb2CxDj{$(ysq#c4L^3pOzUFV@qWnN5h5-%ECDtKV0uZr_xWPZVdXYt>YfOQl8W`+ zsJr*~ab{4lfB1$K;W|DwF~A^~+_k1;v@UCuG;?FXcne5_VZFf(4>#l)gRT2k)k016 zWWo-f!#H64bhQn?H=e8cQaf+E@}8sFXV>nG-TU0v>o4(?FIw&rya_HLv;*eKdMW1e z%N%6OxI`wE`$^y3q|7q&Mo)8p|8f#Xutv1ssRw3>4u4`4I%$&K+5W`IyGm&;ss@?J zLLqM*EyOMd@XN+z-U?T-57y6niO9VH{bE;l$6{~bh^EW+xD%$nS6)lFztT8<^iggg)tv`z*NrVt%K|Zo z7&^uE#U!2mNOl9hUa&j`Y5;~@f_6IgN(1yQ^}rR&oPwOX%bpr7kiz`XkRUH;P0MsK z-eX0Rz{bg!qI#Ekx!fQMT2@}aA(J&t))y`}2?WT3qbCwK;drlR*3Y zm)h0tC1gME+|Wq32($-ke);DyA4m$6*y%`5DBtVPW9RI{2QCPcMD90DD1vd>eo~8} zfNW>xVo@A8y-ent3AT(%*0~SzLMWm0eG;IfnPyWNY)AL9|5Mu}auRtmptv^{1ww$*rS$(Q4kA&QAv*)iLI`3x) z)*q|EkcVc+7~~4F+i?<6^9z8OI{7pGM?Q%Xv3I|`Efsdj5qtSe%qva2#of zk0w6FPeo_hA8>GHY-AQ&W$t`fa+tI2mw5CX*I6YOA63jeMd0G;5KW<6J)uYDg(`dN zIK%xRj4v5!E7R@_ah4}L9!Fo_)P|a5u&TmHVai4D~V9KvR^1ZaWk4gH*z<_&ma@iB1Z(XH1{b z3h$zZGoYf}19|CW$|r@TGI;2`rED6rzdO$-!_iOIOk;)|Ssr6nDKwnCtW|uD?T)G2 zpEp;rTL9AyC5kBQ!P$&w-!xGNk#$5)^FE_yY=2@)@S9~72#XNqlcu&ezHgeajM%$szSlF3@ z9j}~NI?c-q=OnR}Kw|_pw6|n_{1RDT`Ucg1d1`q61lxJ4o!k9~^>r~7oGYkwv2oWt z)^q;a+XMtW;pRSIr$)kpzC!w&kUF2Zjlau+UOD`>=|!pas*uf5q**>F=TFtr|ND7ig@`u^ckdz)&iblG zp1|=m11c7KT-f>zs2+o_$mD+mE(t(py$+s5f2yQB~G2_3`p!EJL; z)fpgX_4;ltK`Th06q+f$3PAaH2YwSz%WZ-c=fuG)Ei^`EON*elaO6Vt&N%9MvVpHP zDah(6JS@B^t0WcNGl7amg8NNe8KDrP+h&j8T+!a#eBc|tGw%T!vi>CKGuN-BjpMx% zT=LfJT(qTlH7^<(leQ7eVY(p1$$o$~qs1BW+ixsY6joI!#yuvKL}mgxK1fj>PY@NS znjwJshXi%?EMV+SoMviy zg)8n{ux+w1UMpko=T-G%eESti*!gJ+6>i=m=`hk5GZX-iZ9MI_p54$JJ<%F*#X!t+ z>;!Gs;KO~b2f#G)|GOQs#E3(v;)X(Ccr1$fujvlyk!trtdk~lAKW6XC3|cGpjo_Vp z%aW6!qoNW>%HrCRv1gj2`v4_f`367pwX%>(f*(m|clym2Zac~ZJy=p$rzT@TpV0qs z@d#;g%du(>*9yuoX>+1KHxjz{1IX|PwM&R_OyCccHwW|^PF{p>3{|2ZLF7^6x{|}w z*Gpv1QFF;=6h*&y$;}2Q3K%?W$XrPsEb7QAojeN3VW_h5tzzFfP&cEA3m(=YM_`ms z*29i@BZAHwD_4t(b3UNax8;G>N0aEZOm5Fps3#X}0|oT*AwgYo)JbPqVrnB~H)q zM@=!w=B5QH-lcIw3#Rc#TB0#)vVNA=?REYBZQ2=opJO>-bu~cD^Zr~~Xaa_>rsIh&F!J_61o6@`qg z82V?Hn)X=}J|E z72jRTV&S*Dmp_GUAyYA#gq+B^#yyUo*KIy+!gUQC&-5 zTpf!{J5k=JI&4^7cz&#z(we5WhNk@0ur{^vNbE9M@f^}m^#^Ork|_ChBn-Ge%o|q9jU^KXn0@5 z8NU#NvT&(r4sC3=Cdvn@JeSf1Zxd6xM4_k=joi{%EH!)4k&#(JLk12uF0$#56fj8K ziM$mHqVfB}I~%-@`+Kn6J98UOHy@V!F@PGQvm;;^46w6%K5qDDU5JGrUTimm1Yhp^ z9jAUlicycmzNH$km;{TOxzJ@?wA-+r9q+&+H1km`rn#jM6F)galEVs5dWNf&s30Y) zGW?YGQ6k>MGb&2E@uziw>4K2+UuBsz!p1g&VG_X|%~lqAN(O z=*733N4rIuKA~h2Oe`Q#Q=m)m!Ursl1VJUx{UuJtP6=GG&Mxc1``+|)*B&sG0Bkd*$-2$$%RhbBLgss3)t2U!6XacR-Gx?5T| z^t%MfHRv)nOpBm9>HDU^5u z$r8&X>9fuCi`I$gp-Cj|ti;EqDWsF~lmkvacbuWj84Ni&HH>hn+=+;%t~NN3%7GgD zQs`dmSS($n_o$#@ny++i1}3x$3~a8U z|6RR<|HTB7WEGuG9VzS!PuD7vIskM^-|rz;7^bn8`q zw=}k&F~jE8E6>qhZIUD-RnuqTy^;bKPT<~hZE3*fh*M1IA2x(LSFI=L-|f$x+wAM? z^|76&S1$OTb1#SLmBgd#9yy)m?$c=>CBGC8`oB2WgVL5_$%NVa_;H| zZ4={%+%WE{=K;`b+Tx={p3Ne_)w?mc=y#hdELvgs>K>j+oF}x@U)J>p@S?~6{z4IS z)amNDLV#`}wr=45yo+0JX5(+wyazw_lS`=(eO-~)4SX{mfkS#`ClVPhb}l%NQ{~XM zag}mU=J^P|q6gnUpaH1w$dw9T9(yhZPo;VnUl<{|>Bf3|t3-7ZBd*UBd3N>%pyp9* zfBr@tpBSqZ=yuiw{NKS}^H)`y_F2JmiEp@Ea?Zu*PKxWUns}25+FH3QQ$t854a$%f zHy|JMbV|Amxngm{adp>(d=4v=vfQ~5uC+CNM4tkYKmR!jB}saV*TWnCs^w&7<@ z^yvbBK@+2VX}8qmu9stcMvkSyv4=l@38tUoa@njcu(3tZ#oeCJs=q!T_*6A*Ej;}Z zXS*VW#;t!X{|@Fte95dEI&b=%F1zRThs9RGq`IRnh%+?PDN9>{Z={GL9_9WQezYuV zKffHq-20FPVzqDft%(%*Cib_v(ugw%&*3FJy#-=ruy|#l+rg_JT`?YZsBkv;^j$2HVrY0FDUbxh^lh5a%msuYF^6X}(9dA#oaTDR6LqVzU3gc%xfV6uiRIi1r zuXH6o(yr$QCBG>0TWYXf%jNRE)^^dw6B4U`AiExuDff5>hA0@Qh9&{eSfC_nWo@)b z^wWr^Amn-U{wI+9izkevj3xJSG=PBc8Wq;Q2 zMfrU9=?@_b?sx)cm;`M{*6a-w*z7SbGu?Pe*sh($$Y7^TX&H4i%ijx<ri_V4Xk$x&;|IBKF{ng37)Xnao*_k!3>`b-u_sLE`mPOeDGYZ zQzvvBhRi(50V9|GP>b2?7a~1D_ucoH?{YS+{48L0cPV*f+!%ZAlctk|sQP}ClI0Pg zC%2_?+5Y?`@WFvWE{>(?76IubTK;ouKW|%6L|p1SC%p8h2#+X4toIN7-#!OzJ3Vq7 z0t-F2wp@ojk?fZpRd}%oe#em6^0Rgu{`yfb7X_|u+`2y~H0MTOn~JavY2p*F-R_8eTljgJo-<-@xm)>h`1HL3 zFS{C2`E0rYL14NzPf z|N1#)3 zs<*dlL058Qzm89Jx}SUk6kl#Os6-$PS^Gbx784Gb?J-me%|WDwoVCY)XH96Ns{hof z8IIdM%a6XkW2EV;s+n)c?SN}Fqx!XWm=A(@ivoza`(%d=zsyPkY z11XRpTqYKN1Fya+d z8n2+lq08CDz_B{=nMw%J?Q4coDK2T)kf!CuM>}YGcl{^yk&P?C#4t_odxR^wY_AZ1 zc)52?aJGwg10H{n%ex4(t3L_xzL)klQ2n}xEw%ohQ+EOrC6B9i9Ct?lC~VM;OLA4o zKk#6lZp7er_TzNK1SRy(xGv}zB@8TxF{uC#BF&f*E z?g`xqS+}|Mn;fWm$+A8?Wq9*{F*z>f%d~A%FB6-}?sIA`p<|*OLnkIk#HKhQxb$iw zcHi@_U|1|=rT4~&)gX(h8NvqqXMmTPKGB{t$8P+Mt17^N?raUCa>82SOcQ!VmwX4| z2A7;8Ph=#v`EZ zwKv9Fa?AaX-QpvfGu*|6x?Co%myhIA*_3!r4snoUNVrSQ zw$-~FXr*6V#2Q7P_CM|wyq5Mg{tDjRnxkOVgokF6tItoeD6zZu95CP_d0WD1p-h_6lXyu;qBif<}_mB8%wi=dZzK z+14S-w)&vRl_h*usYTh}_V&d_EOd5#qeffBq<0@{U$P`Ccd7> zwIQ0fSaQ#2u)Wwec;e70c$@i+I~(ijj2}cbrA|^kNsgi2%op!4lbXZP7 zmZKXnxOmFZ_|t7iin+d>=H*bO1&hjo%E1O?uS77g?wW3928o6QT0ujtOk9?4a3$ZnU5k@bRD~cbq&cmbH(Tv!+MNv3i`EAqeYv{FM6NB6XaB<78r1ZNS|-IZ5hI@WvbvZbO%=odRok)$H8_(hviQbm(UHGAzQ^YqYI5P7rwD*0q@2V*_Ryl|{@uy&6po(VU6egx~eb`|`4 zH5W8>ci!>Jmx;lS^isL_`a$^i2Bg$WwNbU4!WRW%B;&4MFjp~ky3ku;n6-0CIy%gcaeW1&FZ}tVs#J+<-jZ z*sWI|L6|5&BAEq#o-&$(r@%i9dhNomh5o5fG0*&{bd6qLfD+j~>osM9#h4?}B z{Iyq568_fw*EA%c0GbyUyM`AuYOL`p$u9~;)5{>9+{;*84ZeCXATO-wMk1mOr>j(_ z6qAfgfq9Lhc_+=|rwXK(#%5VBE~mRDxVRH?q2HE(MI5Nfm7vLtT2m6kslqG7lE0(r zv>DtaBM$!#1_@COFxZ;bnAx?Xd6QeH8T6#N-}D{pE%o@_ad9w)K?g8~f#@OSouga! zx5oE;V2j*`T+S{CPW=!w=wq34(i-Ut9u7ALpur=rsWjiYkCIDDf|62wv1YP1kJaf zzQmr4kne#Pst%IXr(CuFH@&hYzSCrA>2moNIULE2OH>{Yq~sY(-yiRfFa+g~7*g*V z@1_)h8u zI27h>Y)&s%T?3ZP=gaz$#LN5fwbE3j ztKj59&)@0++5*n~Z(x4tiv#p*7=E$_-dp>}N)}^~ta!ZHAZ~%tpjNc(TkF)_E-JCi z`okFvO&LUYwvl_}NF4oymyYoWA&10zAq$eDh|I0Lw{z2zHH)pPABU6g5v;y&nW#dLOa zyLz9gNy{0PWjKgY(o)%&DW|(LxJOp&$={NmOzXsDxPr4EtxXYM>Tgk~y^6EXq6N$O zQksM2@{=9OCW3jaSzH%caNozjnlJ<`V*^=AQI~X)F&y6TliNV9JEXxJL$(q#kvS$h zUqV&@d9;x)H$R-(ifC8-B=ZB+9A9=gY}0d2^oOIZh>veW84W5-mS8)7lGcPoDop6G zYzj9QuWpD?bgv}Fv1o(-ttA(u`Kjs!*I9Jm`J7VYaY^`@I&S}B)^B)paN#1LfYlbX z3P~O0ocK#4Ji=j};m*(p0@6L1iyUA1Q(PkDUl=Bj(jFtDBS(SB7 ziBdoBwaenmv9|(Qts3nruGZfYF;tWarKvGKLamcm=Q_nw{u~I*8cWus4(YPK4u(Og z$fh`lLmKD2YkL8lU^XEFXfnQd3`hOg1(xg*9Z|e7SWs-R7(#ve>FNBz z0|2Ue^f14ol>y}S)5tw~RCrg$pQ5-ud#Jw?Te16*^?WcFKz+V`^?Xn6@f~yM7bau# z_RM+6gI%k^w?QPoaF;fuueF$6YqTE13-#O%|r&$cxRKAjDE1lwf&Kmo=RjU>Qw5kt z|5&kqsnz3U&}-9|LorR9zxm`;bX-?njkst%$|B~C1Ri> zjW!urY5qKEB(u?pWx3nb2Z&zGIQ#-I-#pY0-{)T5%26<@a!~o9ME|2Od+y*oLxHff z27k53>{tl0ngh|L{E@U_{@$5D7)ZA~d->hvyFP1h&^W8nE+_Jx9rLv&>`fvIqXxM< zO7KW~6Kkj;f`}OmwUbbF4)Zn7h1sYk7NRjIPrc)Q#<}aW#u!v-si5Al&ZNl3XvOIh zZAhlXJaydSFSbJ&7U@+9Zm2VP{w=9jJ#0P&IGG~M(|K#| zq>pt~i!hP#mL2?h_Z+6pBG%$q>^YZ6{Bk5AdJ_t)^I9<-w8e`mbYn@tiVJ^VQ7-#2 zhCYsflPDl|X1xaaFf|XO-~>vlNle}!tda#wc?Gc?8K#wwq}rB;crRM{4EoIO@7r8f z?(|5YSt;DOEj^><)z3bwb#PuT$2z{ReU>RhV(EKRJVK=va<7f1_39sl%lm4_jNAsJmN0T9aAZO zbS|Gloj)VezC8ZU+5!bl7&?qLu{?k(#!`bNJ1j#j<`7Z5M!_S*m)ui7o{w^deyG*DJ*r;0PDk&$f>>` zRf9on#g%r8m66Pmhr=K39MF%R2Xjc}hvn?$c*6r=<^Qy}s{GR569oZB#b2B{pKRX- z=>zGdPg<}S_!;XV>SimReNWrzpy{uSQAuIee^5cSam58yRT&&AB@xo-4H#ia?shw@ zz=1J2$lr@f@d>jh>VAo0>C48k5@e^*Am(1&%Nqi8_zj|&+EXm z7l4>EID78@ytiL+@n6jUH#ee|{wdCY$JDMXq!?4*uz`lW3DLM6hn=CN83)*2+>flc zlp9q?A_4CRK97%Pazayh5|{Fw5Z7Zj{))1F7JQ*`9!-c^n!2GlNLV~o&XeUzN8X>?ufth>{!;koV|UZ<;f$(2X$SM&?{4Q6 zcaDr<0{lA6D%u?TqW7A;D;wTE@?t77`S?=5pE{L1aLE=5C70u*VpAvDb@i`|4 zaXq*k6e2Y>Ff!*?1YUuNvFs`c8g{>x-SaGC;3?R7aux~9n0ejofkJIkWmXFlw>_J1>mAYricFmz*s6u>;da6tJRcfUf;vF|zB>((N9|AvL?_icf&)iG$BQIQ+jZ z7)*4aU)spwZ%_o}mUR81{g6HjzRc~|;7dflAi%G)b&$U(4N-@A&QI9dO~U`QO+vZJ ztWr>qj;G@=xFM*9_^ul6B7qfapa^DkarnDLmw8P$y>H@rC+*&(TT1rstp!-td2b_~ zMz1U10A9Ife&vv&w?lc>@mx|n^;!_UfE6bB_F|GCzs-siZl3%#?x{=kV2OOUn}O8+ z^!p?|xx$Cg5xTC`$x5NanR50JBInQeU8{M9s<+&TtG0JQ|1N+CbWB0ek}04Qz(K` z>bZ>lUP{Ki?+Z)yd^oqY#D1TgD& z?A?Tr;l~d&nf%sQ+|~W032KsGfWs|OxcFL&3yN3fO{`CT+JW~b-#zHoNvHcgsSaN% z?>d~c_e7g@&wZ`zMZen!a{|Zs5G+>Yb9B!+cKZx$9ROSYq|l-dMLgVVfv~q<=>W|f8RLC ztQ{j1Cm{xl;zNpTWTJPt|5hi=S^fLF?ZL8AMt~F@%~uB@^g5SZ5AMZU+Tev@wJ=5H z-Y;CUq${2xDYEyu@}FfgqS&saE?{n)|3Wz@+|Qk%KjYV;kxc#t!Xg$no`C>f2WpY0 zgRmV%vFrVd;ZLGEUqENrZ<@udHUTUCOkz}rodl_Et# zEb3no&^wa`i2yJJjEMbIew*tVfZ*+g?BLr^V4;kaM}Xk9XA%BraS}+3wzx*8Q@R2l zyj2eYsi;t&R+nZcieAZ~T9OSI051!E7EaqY-72Wn;gdXEk1dn6$b!!FfY_AJpU2N8 z0%ah}Pc>(}1=%+25{h}b-?H$&`q$?VNTld?LV&bS@jc}* z>Y*=rU1YnEs>$VWp5HGQTXA2J+r|;JehzU{K0Z<*XLS)-QREULBf9$ zaPoWHcwS;B!UYy1roG`EcG2nk%PB{OaFFbmv zPE+!47$%bOn!iSAze;M7RZ!s5=Y5L%!0Z#hkp?1Q4%)qt5f&rG41shIxM~L;?jADr zql|O&4zs^_)?JO7WVT~mnZ9a?Y5#$3Y%j{a#V@S>Qk*uZ`y{uk<-NM(mdP&xw-#Px zENs*(?2&jGC1!_9KlnWNy#|dS`BR(Vg?6;DJ8^g>iP^nAP9;`8GV}=;)TQ^S+EPnNx2d`ywRoM+k1X;xlHP z{n2sp5>gE@+V}8(D;uw;_Qu=yegK3v9vv^_bFb7}%Wg(vpCw;5L;)Zy8z{yU0>lPh z&b1GSBA+$#V*~zpy#R`kx?o6{yLY7iM+9d|j~BN=sAwlGddN?}m}N0hLp5mi1gbP1 z4*wExT1)TC>tQ|i&Kg!q*zTC;vUKW$J19oL>Vt% z)2T>rF zeDJsg=HzF3Rxn8x(-yJa5%iCld@oY?-6_)94%S%4_bdLqDusoW5n2oKzZZB3$y0s@ znHv2h5rR}0yQ59dpC^rZ(phLb(;3~SW)S%UzcDAJC<_YLaqBn$a8^EtyqVbn?9+ki zOo-J3>^^~D0Qjl^?7h%cHY7++4m(qc@&NL=WTklaR6QKCTT_4mcL7(Q!+u7?D`YsK zcj()-qlCtW0mL-}-g5)44)TzE%#*r4nDw}=GS}xc=Eq{hN5AO z@zvemq=#RciX3-E?fD=k;W^9e#G9Qx5x}ofgnhx-x9-+f9k%b}J9NZcy-s8EJq0vSlP!%OXuwGX3pRef^R* zwk1e`YZ3dt#77`X9lYK$H27rE#wk{737$n24KcYO^$=w#Q9PND71njDJG2Nh!DOPr zNg#`is3r@FcouJ2xAsAEdR*-1Ceao|eSe4*K;Xcu6UUXYWPO}BA@b`lXr`@G(}Q6| zT?^`|G3fFe3LGf{o}gv$gFYWb;u$tg&x2cc^uphWZzejx8ED|CimY%!6z0mjE8~cX zElMRcCQUp?VhNF6|2Khau1@}?=f*4dMA4qU16ra3I0e=KaP57gFxW&bgYrR#izIH2 z(oR9jf9js`Cd_kE$<(v=Byp>GL_r9gr&-i8-;l|YI@1cDD$WOd*Z z(kf@7_6tmX)?i0!VM4U)Hz#nFTA&g%^NE+l?PV-vGrUaykkVtEVnG;-Jc3jTkW#LVWa~ z2}4Yjq)GmTi)s}>LPX}yzQ#YL9Z7HmsV&7P_npIpSJ}Y%!AZ+qQh|&Cn)m`dG6{Zg zrau5a)&sz*w-YAEKzXCUz>lp_pi86MZ4O$=4qR)J2y!{U2yRw=a)V2US0cMz=P2Nt zpSt2h9p-dT$MnB;au{lnwM3Hs39b1K(buFs95FGZe%4jS5 zyT|wV^VF}72e_lH>8Z%3k4+RS{U&ePulrmf%E3WchXuP7dfqTR(aJP+9T2gSkdvygwd^rvj9F1? z>QqAU*NLp#`=pKbi~Co`gs(vs)ayZ)#wNEXpZ=QTDnDjJwSHQOqD_C|v}k^py1DoO zuxI)#*P!`M`|rMf8d+7ti`&O86msJb<^nqu4xv$#*9(8xxBkfCjHO;BbKGXlps!Ew znr4R&PO6f-Gq{{`+m5V!iGUt>Q%FtRt;<1y7gle|Q^%&HsuQTD&)Hudf|Fj;vHso9 zf&9%@;J0kY)v~Y7h-e?PWi7_eQ~w~5V+3MWyr&&8v{JGhcBp!bj>-Zw4kx`*d_1!> zg-SnxUl0Z?y82v*W`3JNvmOO|>Lnr;=hF6+0l=XqKlV9V*XeHl!h~ zHT$j2r8>-MPOn8$8W-U4qxD99zK%5O2l}Cs-nXHaPx^m4@|_!|hu|JHRW^4|wLT|o z*0*koH?Zs`xaF1GIq%ERHb(xSS-b8-KOcPoDu_D7AKfY|IhouRC_pErEa5n=C|sEh zm0oETE(FF7Lc20$=;erQBSNh4zm82>fh*W9L7$z*o7n--$TrD@d%q1=JHU!bNu)TW zPqd8YFV==O_T?~siDNoe*x=Mbqr9AAil*8a$~kT3YqL) z@YJNLheHUz$1)$&wPFci1wq4)N4OR7lCoZOTxV0hPe4G>7tkK?`wukBUMK}7)58sg z)f&zB8olm&hjzAc7Fke^>MV#I#b_@{l!K%iQ0_jqIgyKQV__S|t5tN7KIMM^yer))6fl$c zPV69Hua(F4&RVQ3^ppG3rQ$z1Dfo%ZlWL3l@L$qL6aqD%8+O~Lzz*L2Q_)Kj`Viaa zM=*37Fm!t^0^)&n$FeL9AK-A|7zTgMatpq4>c0^C@(B|bI8bR3%H4&rFeq0&KeV`h zdPUiH7mxh~!BlkUk-Zx&FyNSNZ*^ioif(IICo(O z49uVt$)?Z&&LJT3?y(f0Bg5Z=z2fMqX>s;bJS3@M$Gml*vnDE&=LI)6JIcQ@rkH;6 zibh^dzhU;4{G_O-%}xc?F|7B^p%OzvuG^p@5A{d&1@UoC=O|(Zl4Fy)bnN&T@`jU0Ox7bhXpO;HqV!#Ph`AXoo+z9eepI7klk&wk{E8r^k4@pzk zPIa;|2}uxOM#HS$4_h{u?MIQhOA_;KN}>oOrc<`m-STYj4{Z%u?OxW_%9#m z76=UJ)`jE#ghpSCjy&$_p@iseLq!OIS7@+YljiihphJ~E&P%FbvTwLYtq&~XG?${0 z1#w}clBr!-Qiq}CS4}E7UceUQO~@6LTPu)~Z!iG1Sq-Aux36C`{V{zKoPP)_;C_jr z2_>+V_Roi-*j17i7-yj~mbGR6oB9<^4^c%$dPpo+P^O%agX7W?5%-STS(TA3X!^59 zJL{(9`;)!^nu5L%M>F-{LbbEv$XaOZV7-6QY%_J7M!gXnFO#~`qLZCEWnTu0tO8G0 z1)+3ZX?5I#Gl?LIe4$_%-R{+vIlDwK+;PH4%_dhibO> zJu>-I2Dta@J+xHSJL;jNo9z-b77ZcP_lDee@3*Vldi2{&0}dttz^Y(DVJH&X;k!a?AA^px#M`6jX4G{C0QJtr4#P&ghJqMl`bmL?RI zO}r?TVp&2H9r5iao35)QVz!v2^B4Yxw6gS|g)7|F>ZkIdjaszt!csD$VWKrpv5jsu zI_^}HD4_!u+wHFfj%|%w#wv908(!FY6}~vIKtPMy-f65zx*MFp1<=}VKIW|+aQrR? zGvN3GKfuX7cl$ZA(%S6>bOGtuvHSf1a`x^3rqq5z{>;wEP#iF;RL_YX~;Ov{IE3P(e(2J*c`rYXOz1^ zx;kG?_GFf9jgDFz>nYaw;j{_LC}NWs?PMIYWhf87rtu2%*tasu@&_&huqTzvaI_;y zhuqdq-vCyws)r^>$rMudOKEWa9n5YmS1`iNR0;STD|MW%A7dRhh*)V_y=jC)w=K>= zn9x_#ax5WS+O9`E#}Pagw41a;`@r;;t+LZmZRhxU}4&mNw zW5UlE{1N%3UlcfkE9_XZnf93hG6xIOmf3H3owu(@RIk`;=dbsG5lnc+W9DN_rufTw zNY6ThSx?JiSY&lx9(nZo-U4rP4(r85&xjuICTqDBI)bzlS@}HbIRJ~j*WwLOv;nw* zCSEwp1WYuoogb%Jrb4d!r5@C!;YODLcA6)$X<*RTttJbG0?kRs`Cv$zLdhCzrTK4b6V7F48 zEcLH9w!$J22onx^@WSnV)&Ddu5#&hGk5Qj-aQCaJCN8L4!gPKilpF*BbuELA@b>SD zUi2^8<}2`k=MKR8n0;^>)*Au_ZMRs>&KQ{LBP?((=ZnRERB~~6)i0Mbv1}%}v(3?o z38UqxDbQ%8308+2EYx`xA2^#>zfXkIqG(d%ej(4F45!?YX1?qd>n>i1+Ex|yNqb>} zf*!9yk(%8spm%8$m@fw=Ac{4sq5s1Ij$X@U3?ga{dOgKuN2Wj0V9(~K zSY&wNM*GT4{`~zd|H-*xGK4KMRD|vvj1HTwiq_rknD-c^wNGeGyOCRkrySOgHNq4Y=&r=4K;zn5N>5-WZH4{e6+Sg z6@{h-Y~1qa-g1TjH_Mqn-$>aRy#08Ooag#KMT6)2M{XPBqvF|3IueE&nT->4$39FC z`_O0*aUOCkYy@zetYy8#JV>GIv?Sv<4`$Nf1O>C&$!dphWSROfyxYE-3g=N=^!uqZ=i0^*_2#w zMXb;uS>L4a&&O3Z2@AFmqQ}U% ztjEJh{!7}2S^|QIEFw*g9X1ILHT!8g6!3wSp@jPex%S#bbsbeZmPvc^-TIDK=1F^;;4!Nwmh z=;~68(X%;cNc4)Ilo}h!E&VR+EkjqWq#!PNKN@Z3j5uy|=8Q_*#D37jAmhbcrYn~D zij1OgwRRnHkr8+A4oGVT0!GXNCtU&9mKf$orPg;82a1bdRoQZlRmXqYscE;bH0=>wqkV`~5OK}15f-WD zc!=H~;`Ze{qGpgQDtBCq%0cE7et2bmQloivZNPnY8k~ z#U*fuW8m&I8#1YjWNTr~H$rWIFRuKvb9&f~HeK&i=LeIS*w(dc=L4gw!WQCKIUHQx6zspVBWVAJId%F#!3 zynVy`UEO2Wp%=tThGCpPsKrtTWK}fytX;pwSvfri?49ugl-B1RsF}AYIIt; zIu5swZNsO7cQw9XGmS!`Nk@QqTkeu^h+TQ*#Q*;;EIUKTC~+%uVA=G=jyOa{WbI9* z3I;k!dtvkkmF_V2wFb6sJb4+)vG3luDqE37Ne~X{%>?hh>7&=l3;v8Uabelz<4!1w z?<{V){at#wF(w(avNwj68)$yH7H8HmSd*J{a37kS(ONP|t&JH%u=}JOnVB3N)tYSm zoBb=(k}W^-Qd?BX!@rDufNgZx9VI|lqQN8Ny(7Y|camXTrt&zRjq5S}DfRUEC#Uuj z?bU{AC}uylGxghs_GbHMF?@F1A2IDRT0>_g#r-LEq^q6qBBYsF4C;}Lk0s@gs|3d5wd1{_0PibCFOU-oUbnnh!e`TUZ}sL z#5`-*pb{v!JEUh7)Cw$RMCX=T00;EZ74@v*gCA}_Xt1Dn>$k6ApJ|`wdRx7wwa8uK zUM~AWfPR^~zYd&xZvNio_@MD>BpjT?49U`VMJOXPuVpZ*ABod2?lue` z^iJ6E87H`qQp#JDSlj6q_Q9LV58oGLaggI@zLeWc1tI*=QqLLgxFB@?vf6&F2Xa5M zgBTbtzIB|(T#su``PWFK0+r!U>lO0cuV9E#3;*SoGrhqOc0tl#N`kDnB?|#zj`Ge2I8fO6Mg#>T|rA_HYM^Sw(DdiBPx(tL?=OW_y++}hCDlR16IlI(OPVh-81 za;*59GJ`7f98y++K*Z`^cDs$-VloLavqJ1|1=tb?AvY$D8a4sok)SG<85-I}WSY2Y z-aLOVx1I$O41CeNUu}cEWzud91+Dg9OQzCc7X@}1*NTc>=sRoB?APBwzmP+ACumpg zcJ~WI-@No^Rl2>rJf5%zi__hEO(<5{-GQ&0D{H5x0byNJ>Y^iH{%IbL1*Q*OgxTk9 z)^%~#`l(z{n%d}mwJ_&OZqa|wp#4Kst<2yf8j?qh_nhz?ZSR}=B&PRVZ>J8GcYMga zb$qoxKtoa>cC75}|A}?^$S7cJI4}Aitrd3k4P!>o%P6gn+YWCWZ#}kwQe0}7(Q27f zUok{QNxy zgSU;3$)#{Sr$M?MHn6=i{#MS5YXhF9y8DAbG^R!KIl+04MNbV{RU4jRGvDA`d&j|f zmKSd2V+h#kND$Ap{^H&Go#=xkuo1h9gT8Wg)4NT>VZIm~EcKZ>LJ{iHD>u_`Y=5JE{E2LXeT_XN}KQ5u}Xt zS_Vs{byWQSC{111v*sD%3iItmC9sI>W;L~R^2T>3(yT3K2JJ5BlN;gNj3l{xjXR&h z$u!X-IB=a^xPMibeCR9=39DbM4*-^n&qTTyy1u`+QznTdD2;RZxvHO3VKIV zeB>j-yW^5)17qnrJs-bLff4yeILuve$Mk}%0YLNk-WHdwm z4W5Sc*|DVI$-KUgU1Fdovyk=`vRwJJf2@mV@vDTeH_%qVeZ_=Ef!*I=0D(KjWhSqa!Wa7Bj2CEj`G)D}n(*VQa} zeCaNZ7OTN2;nJ&D8e8H|JLiC5sM6ocjTRdj8eN~|&&$R%b;P2KNrBq?_&F7%iVBRc z-wj(!voH}m3zlu2O*G5r9nN`2oU%X$M+F8hGs)9{=0Cq+aOCbyS~o*mHQ%SG_K zPd^=y0tKuw}WiLtlp zB!~v>cAa}q64r7=>0sAV-fw^*D_tLe^-CKN#fTBl|BY(1S*410l0SypBo-p@d4 zTA}IO9h(cOV~a$=R!{xc82Z;kP3-KjTguVzn3i!OIe$yrEzR{bm?gW~J3p#xF9y?b z-}WA9HjZSRRh1_={+2<-_rVn4!?(2I9p?~PFL9I5uIAuz-vuK}&f=cogz2N~hP{dL z+#*SharM%q7LaM!2RF*D%u$}9l?V`gYo0If}F0V+_T0s^>t2^EZBr@ zBIg4T4(_-jIL~^dP=H~X|7gc31lYL}9Bex{v6zP`V@NP%>>~Rl@)U_Khpd!(!8Uw? z;hP5pjZW>&H*`89yhHz3M?M*1h^uaiSlB(jJEo%pRQ88jhr;)6f67YJhU>4>oCl5d zTCcVG;s>)YE>mW6Hz_OlDjffQ*>%9xY0Zz5$6MEBo&A27_1!|J^{G>b7*RW>h^CEf z!EVelT9kcAo{M>tp*(cI+LV`MQO7YmnkDVT;+>4br{D%JqA4(KZG^6)!3d3PBc^V# z`ARi*_sExih?LgEeg>^q2=$`5*N0`pR86j(nfVNW)lSDCGXNY5vwA>4KC=`XcUO3! z(*S0M(;hHS?#}haGcr-tTkK$R7jZ!NyNJuA&zqX=deU9^_@QU%zq?+!V~Ft5uUjh0 zPkA4K%N}{Cfp?px+X!=G0nYzr+v&m54j>`)QF-g@G3|SzeZi2~RajTDX~+Vb!P=jF zrYmLy9pB?tt%OInP$K?H+>5!D2vTv}$%fn67|{Zi26KpGW4ei8Umt3c9d zZDsnYLzA0{Coagc^m}@5BeKi(sO=4vZWh?>md{5TXy*OZrrPg+tir8Qi*E}$Ow!f_ z7r9=8I5WaFCYa?n7HBtlqH(M4k(ml2czr0iOaN-d$pK>7}yrKB&{IE@oL;p zFDA~MWQ*PbPDf;q=+osN7rW<34UlQYB~!DItadC@_=jc=6Lsl^xJLcEu($I?0PFH* zax%i2c@>i_6CRMf;sRc~x>+s+%reL80YPZ5nFI6YR$tM351XwRB*UO<7eO6~q_5sc zY)xg4=?PZ6LdyIt17;{)UB&f@)tsI+m4WpK=8v?|qVmw>Rh|)+j9r`C7AkX67}nRRN3%6#)I=?UU*ee zYW&lwP#afUkOQN1SiSzu&ugZpXe5Q(o)rnyP};zJ*>8a{3Z-D$*rqD`mekD2`QteN z7CHToZiAH?njdh&`A3pq6B<(1G$`oZ6Oi0-#a%(G+xAdLIUHeZaAkFP-`YgQs=?mj zIf^YMvMHu?%+S%7E6~YSMaiG_PxIVgInTh@fwJjzf(bGdf zc>oP>)7}3h)=&8d((u;OOxjcNX!RelP8IsX0;P@jlb>wn51BqDcV;OU-c@@t&{oy? zN|f%9n|*60uoj=&wH-<^=*6{pk7NIloiMIUZ9LA}8ac&4J$F@xtK8=rgB6({%NU|6 z7(urNk>#l>x2C6iXOB-X6}^*;L#v<99Jga*37yl6O$davP)DZH8HqQVOlUZwzRWu8 z=TaYcrWM=iL^Kljpembyf&LU{=lqKgg?I|_G&=IGauYT(?v$J$+_NaHW75qo$JGD*H&F&*bVPD4wvaA z7Ceer3r@+Iziuv(Ys~F`d}_bmf5Z1^;FG%jIPr6J6qp7cA)^55Fc5Gz|F4bZhPAOF zs4hj6(Uw?5I_vXED~z|v{#AygE&=9~cUCeTO}vgj_oPXwFwSsNmhZA|(-2Pk$jO6H z{6^K^eU%Q&NS3ngb#6OMqPZ?>rj3%aBza86n}TbYl^SavMr^2$J>}sy$@l+0Lv}E) z_|s5Krt=Q(^QRXE>d>@`l!^X)x9NVPS*KDdV@Vb>4`)5%@FyM$N8!e}*4TJ|x{ z@#(~;3d1c6PTy!;6hgN1$6|U=BJtmu990K4q;0T}todj>swhGigB z@EVkK+y4hfV_w0Ay*W8AU#ynC%w+R~puQJ35cN$5du-nQ%*JsK3Q(rq6voHdp(U=` zcb)@ITBeHX5$TX#>yzN*P!6CErB=Z$sH3(L^)Aq%qF{-LoT}W#d5t;wepq3XA!F*1 z@;h8)bmx0>5?QxET(`p}W0N#WEj*1OK=fK#|MpU)dlP+tcaEw2;2;f-;Vq$elC7FO zo66WcepurvKJ6&(#j0xoHVGlmOn%rN>!(~}0t~|a%Grn^+r)m|1%V(ei&rUG^w^k2 z`bsHd7M>_)E%(6o5V&nG1a#c8gkH6F3!s90iR=VVxn3ydVYgKKh{(I@17+R3GXB!a zh(MZ-v(3xWi_VT2qWHgrW<0yS{Cxk7ttP+@lRfTq7B{C<&Eya+K1} zwk?|`?wn>VrOEm7V(C7##ZXahUX zn{qVlHeK)jlpnt1c2mSL=SpXm@09mP3{_^K(hUIL&g~zRRtAW}wH({EDFAQCD|G-M z3%J5*pNodmZFxD)@GuH(ubutV96#sQiO%g?24IN4zgHtCWPXtx;Dxf}eIcBj33wBf zNdCrbfhLb|Wgs3H0Q+k|U!pg=3?9j_kYTh?Fi>OVy7S+EJaISe5$G@b550z&5QG(4 z`oki|XKS*5F55^46H-z8?MUr*HNSI@xyye44U8RG!@Fdr@v6btLMD`~_f!?n=ro<9 zqtrSSV*u%fVAqumDy!S6J{!)PmxWrGWO$M$!M9GWevz`~9ZrGlgl#itRz`2NW%6L* zmD5O7uN@u0hPt)FO`#ok6}W&vurJSDelzFJMEEO{J=b3r2%W0YKmy z_WMX+VYfYC!{ALkFb#*iRrC#p&`keE6#@8kRiFeN%H5xD%OGdzvTsG{r5LE_Ks(vL zaaA!2PbrL4EeeR!G^A72HM*r}zK(soq|`vT_WW2bpbAHK~bjLO_h=V4); z*iWqYnW{pRwUB;;F-QW{2Tj4H8JM!*bJ_Tcm)r*Y4pq{k);tivS z*XQb_Px5}+xTZ^A-18oRKC{e;3^=#;i?OFCjTiU>E#MH~iUB}ZZ`Px&&_`ge6+QNC zB9l0HNz&2G=;DbFofzA;TigZJg&NXVmo$!&I|}AZhuDHlRYm5Rls*TO!LzL|ujfSz zbgVssy&fxJnEhiIS0@vCvkdbA{41HUM)qeLj}-Gw|C3RJjdyUQ8tqP-P;j972()ys z0LB|?DXT3iIx@=ggFmhgf3I^;m8*#xhkksX%#*zt5nj+InK~j-fVGKtA~+uxSpA}L zwcARFdXr7)@{L6fI)_qrWmzdX1n@JWR9{gXV*h1rc(6b^oYVIsyRp!k`$lgO$~iR3 z8-^s;Pc1T(5uRG?E^pg7q+&Buz2ytO)WGeQDf)(%S=1XXPthMzsx`TY%sg^W**jk> z{6~f9uhpbf+xzJpGV`!6S2h<(zi5>B&i6-Gh@qfm_2R5>B1C=bR$TqdDbzv$Z!7pZ z_yU*!4kareS>deXK{mY>zS9T6*}cp(3F6^IQDm%&NPumec3+_NiOLHZd zZQ87IZQ71wD$y_;Ub+mRE0;TfLDtX?kYu*<1(ugE6*P?KRIBy-f8?QNIC~VzBweBU z043^BN`F@@8F-xR#IIP?{%y{ZH0;%Az3DHmR`5eN>Z4df#53ct}htuX8dJ-&(juA9?9G?))kaJc&p3TpMUQ zWiIU%X?IzjO+D;V$bqDuV!i`bKcH8N%f0(`0dEMJ5knMdA8Xe|!DUNmywusv&pi&l z2DbT5YvkHa@0%wOlFWjViC*+P@7kvUJ3|0i0Nt}U&DpQ7KbyuO>~d!<6Jxko%@<|} zZc#0w$d4A&zt^6O^PjI54PZ3IjC8{HoeO8*KPXvu+jq9}jJ{x7}d#c(ScS^|3s8T3za zMoEIi<+pSpPP9wfzmlj`r#9g@%&S)m*AZ>4ThnN2x6v04B!}}6!mq<(e3aP|r`&RK zaB47Jz^{J(YGuoa_53TI=)SF{iOQ7*up&PT!Y+B03C_DnX&T(PO|)L--FqAIWJ19i zO;j(yRhG}UD8Rma^DG(i+W0#>A-@lNwk57ZhXew{cj+Z}8d}t`BrLqsl(0#+?IGp) zof5;Mv4+ZmcUfp58&&406QcQcB(>hKI>4dXmTfs9X5Cuyapn*V6_t)LYHFi zK8f~)2jyorZj94S>~HlyC4!?`@Xr~VQLZWuMcEW?Yp1l7mn%v%Bxmj4Z;RDx43N0^ z&^&rIHa4%Q#O>bLGRMx_fXLcX&LzyrNI52g|N*r2^J1b(JN%M!3ydL`#2S4JUZ zA^0=f4|2Kz2{ua^1e-eURIC1?VS=2P@kw=Gk9y6T*A@o~q2lt=3C_psqPDD3*yzgx zE2oUhPP6572I3KPhn?|Fggo;gQo-O5OUu7PQ}i4iw9_R@Y-7RtSJ#d|(iz-$SF%ud za$LVSo8OlqO7GhnJpr;E&ps=jx}Bg0BSAk_??-0?VpE-<-mKR6abyR-~GTP7(Dp`@Edn@YcaPiB5YSLlUFIFHeE%xF=mWH;8qkX%(3<45MbHyCG3(2pxdPU{Ww)P&6HJ0%A3^No@E)w zioAHrNJCpf7{@bo$*n0@PhjCv*X5$ER)7%LdnFQJq4S)uqnzns-GZ%fF^C@LvU0*; zorZx|!~O>;W^p#om)1^86#wmAX6b?}gGYG5asDPDS3>^w*j(B=F>}GJW$g%!{d49? z>WyIwIsPlIGT5eymH9_k$h3c}{=;6PM61pM@wz}Eunnsml7cTj&2tk_)~c14ePOik zD}2&yry2a0iU?G1zMq++B&<}v8uXQVGA(2{uxtHeu#Wf^sVw^I4Kj=fgiKgpf!gf3 z{}BMg4It%ly@X-h4GOCH*Jl2+5n`Hm{YCWRMgo7XE67N2-@*|Qt5SR%o>CjhNsxP0 zgkkcUW8TV7mwSO%zN1-naWsV+)*F%iD8ij3$yaenlBN2Hl&#| zynCQ;Ghp!NVOkQ&FBR+`$b57-s0u&6WHMhrY5x3fWMs|zKKR$){Ph^lmA0DEfe(3f zHlmEFinX7QK{L-WP4BwB#bX#fE>9w)&Y00ZptLC&3wB6DK<#|MdvHB8V!qx>INRnC z=tvgu)q#1@VQgrn81}I1vKPo%e|ejZ()Oh0M!byncNvZ^Knjt;S%f9uj^W?}yTff8X5yLEa2cAcC;E^4+kJx>Hqnp&jX7XA zW|)nJTOjTvg~>1C$AwH$J-CwoC*%Hvw%Wg04@J-Ms(WZ^>8*j}Nt}Jrs%FCu!hU%C z@SQbD+v(CbP5m4K$6K=qeqlJ}g#2uZ{burMXUcD{zI|;(+Uqil7jDi$y(Hv_PM9Ga zl2tW~jyUV8x?OgzWMDv1ytu5zgR0TcuFaH1HX?4L@N02{6^ia)a-NiU@?xskE^cXe z=>Eq@HX>aF3Pr^vT<1WoDkSs1xQzELI^P44GDDFT1>^*&^DF0oP}z@D{f?I+%tss~ zE$w@`5%F|FMZfuF?udTPc02F!)2<^BR(;(YDrd;vaO0VY=< z5;q|E6mSFYXi>rYZ$_f3=syss=&IOelYMU@cp|#JrTqTxVwgYHveiu$?yzz>F@@F2 zl9r}#TM@$QzWv*W!VV}=+?cF-xGtSDz-~6$E?X=@_!sJ|M*w9IV5!t?{y*|%2G4A7 zIX*2nCh{iQ zmL2m~u~Nn6{MPQ$L^!o77vY}efyenLZo6hD+9l5ww^}fDW}I@tso_ z&4NVa5@|5JHD7W~YCJJ{?8&WTBvC(PK_Yi}yV2GPO4u57*T|cFaH6QYw#Xhd@LCzN ze|tZ+1B}eAowq)(KK0N0p!}QTXU#w+HE_V9FBK+*JQwMuXcBOnkE$z`C5{f*MB4npg!|h z47vPg6bK34B@%_;Wd64X3&Ii^^mNI6s_fZ`joM!_ zm1PsczB6-0xt8@+SeXaoecsKF3Bk=b!O80(JeO{z(mJn8(T~E1loi>>%~(rjDlw(z zNOe0F8Ixw+87%NFvMv6)&LQc;D7NQl`-2V|^m9HdyaPSq#dEJU zt6NJS-izlm4L&$UWBmB=C!A`{&xT6r=(rES%;Nvyy9B0Cw_z@umuOgY z9~oh)RSps%qfK9R__Yet9sAaP+O>f>{P*iUDT9x~jTyh-SZ?gLYGlQ9oyzR`3w&Ao zQ9DyxswH1sHnvFEu71mW{a)PQzSS+N>NyuNvco@BjP~s-q?#%Alse_(G0Xd4WY4t@ z6j_nqa2G#BAy$?H+==Si8BtOPesNKB+jo_!L>~ha{Jla*wdU1&XC!n@i7-_ftg02H zBnGDYGXh#I7rHFdsD4|6>ya2K5xhJ0e*_zxTF9nvEnmdFiJb^~$AO@;z5V7HR=H2xzrY?B-8w#wzX)0aB)T-&jfyh0(OaL$RV90il@mmNoGK@Bpg3h44SE=8c66D?eBC4ljDap(7K|?fdPZh+1F1tY__&`(O6~9^IpWg4vT`Jj}n!rTm|G z|7$Ncx)d#tEA?{WSd}nTMWiFhg0>{|Es&-#ic!DkY@pg>YaA`pVY^z&*E}c|CAj*@ z@}isAk0E@Mk;~L{vL7UVY()n3ViY=3Ob6Z02&qu^`}#LePXrBndcor_ke+u3A;k31 z$7F`p5ISQqH{0$0#_L)LMxFx=S3u6dS8{NFEr1?u)%vpa=Etr~L)uwXkHBrbM419hI zN^>#p^S`(~1Rj^zZJXuK9)90zE0VLyLzgKO0kH53APOAa7G14?{p^7I;k7~1?Ks_@ z#o9uZt>MmJEkodX)nmabeq#+sLI>JOEYx9yp1dqiGMHlk*poYZV!hZR>UayQI*54- zpRNU4oc{6O^E`+68Q9DT?HUJWS^=2V-FzYC!M*k$EN5+LdUd`o25tJ8^1T|^vo0D; zL;;v0ky+~VhZas-#WK3w`v*ov*T>frmi+TkJ;FD;b0&E5C`FdE8e0;5f4p!WQ&#vP zQ1|!@~px zJl8x-8CS2bDDu3`i58_6>b%GMKgJ|P<07_rH)EF-bo@7a_hfEMwH@R|jfj{4m~n1q1+3qaR=v?0dy+f_r}7L%^Bi-z%nv(HzORvlex( zAJ75Vqm31Kd-sdp;JrO^GF}iJ~QhTdhtU{hl1)DcRY=j z>tX&(*((Yn`G*s?Xw}P4EviCpK}>olk$v`L?O^J5Llmt%QQfv-c`xxF6w$}UGw467 zPW`gW{SxCROIHuI9Ll_B;#saww#T+vB5hmsVtjPo4%SDk2DK;+=!SlADK%O;xEkv` zgeh}H!1)6p3jPU{yzFH8t-qMP%VPl7m5XY&*vt8*F}UGKCsy>|qlxRIdLd^l+wgxP;*F_r zOz?;w#r(1Bs>9r%Fl@}uqF)`IIMBB9NmA=w;T=shZHw{` zdBV6ePkciiD`X9+8Xkig5abCOUR|Iwe?i>`S~wZFFo zh**?rwvRd1mYlZgmi;uB2i=?Zx^G~j)9K0$um&WD!I%ql{i*GA5p>gix*j-%N1%L5 zDq2Jf7eO$5%Gl=;N+aO5z}U{^ez3{9k(unh152Tarrm~JlPvd3%=s+145;7>#VXeo z@NiUqWj+Bhp!z8_z2K4wYlzVP$@Je#Q6Y5dGwBTe=zJg~T4cM_t;x43+j11v&v&m> zqK;~vIF;2~$eK)iXMbRWXF2L)$jG!XUeO9)NH52t=-PZYNq{TZvRqFUSG$Dij)4gh zrb1@!A8;c!ommF&QqTWLD%NQC%9T##pLQ*T*X9OhzjG{4VJ9k+jQAEWY;~n_A9lMa zAH%5toa@K|Sy15O92&vo2Ebkbh5@BO7wrY*&V=O=Z?CFc>vMjN=$HP}bz(R5t~vd{ z%g;+qr>Vgz20`WiLFxiCFDeq&3mF}!1m8<;fr zNV9o#G!CIby;^eLP}}dTC~%EznyNqLN4_M~^*AQ5dm$+*z-=*MRU*&&%DaT{Y2MDu z`YExKIbiYx@-&EcDYzk*e|(PKFBLwp!Su%6D&s?vD6mx{MQo5%P3q;coR};69G0@_ zD!VOx^we$_obgb9x2H#Rz-CBcG z!41)*ZPOjyY>HuX9;P*uf*|+NbWnp{tu8KsWAO*Um3w&p>(q%w&EK$;17Fa1K>p1o zLEV1e&){I&mRAtV(K6^N&jqAK9xnNToZ7xmp(EKADO;_7hS0EyLK98tH-&7)cu39XBF zpMb-63~tIN6fLrw;AB~jZUh4Bl1GJL{0i+i!X6Is!D}?=dXUn5{8rr+O@ z7*ubKF#kFI<{2fOVqMKi8!qb{nkkhNzF}AWcek0RcDAl;b>v)UtvC^ULZ2rg`7Qnb z@$`++aevX;vDMf%8#T_vjoFwD8l$l%PGj3{Y}-kb#xeA|O#MEXH?40PdCY>=H+_J@eBjjsMT6=|wZpg}!5v)&N(^MD9hIj~bW*=7&<)1J5zm|RN1 zCHS?nyT-1vsQ6;lMYr_J+B!tQQlwZOHDgoWBM(#^Acyulo;9Uqvh}GaCG!*xe#1;u zVq~DAYMkM&mDWpN@7`7I0-C}C;0E?WO--dE%A@|S@$zWKB_YC=Rb}z~^`j1eozlQ3 zxtQ%mz^ms|f!b>+AOzeI4;NL37BeR4)1kBiLb*njh7=EXlbwy+V6D(#0y;^mRp~z~ zabejwrZl3 ztlUmtvM$CzJ$SYfQ^Y_;emX@NY>HRRnRQ6zu`KzRLEFB0Xo=#Y!X!g>kMDCk^{w9H+M9R~i8_eg4 zo68Ci)Y#a&?;gCcpZzltTl~j+Z^%zGr?7^|B%XD%wsHk~PzQ6gYVO8v^QwXA3Vsz6FAu88jr_^oVQZGa-DpZ>k6u^=?Sg(_j;FWumTm1`1fOm5x;Id8Ok0yL& zvs6vun~QK`&*Up5RQ#+ABtBwEqHulzvPD~zDdC~*J{d)U7KBNgDuT03f|19*_A6OC zt_kC@B4iy4^_y*`!_NWT-Nf$Mb%dC0g~>io7k+3WlVHv+$dTU|R&Vj5DlHG{j-qRC z(*f0l-8q180XW;K!Z~Fk%boUP+OZ9(1@-TUw&L*y3;GdQQR55({HN#MM$f=~k7p3- zDToZXhj+Oh(+L|I5P_EyVhC#VT2OLdx6GlkP-n1^TKOSm#Ea0{^c09eT_jM zy{K|R3|+#^MAk&t!50lDW$HYm-!v8lN@bObrM=$mxU0!QPyV-Ixzs5Lr^H)fpLPk_ z>bb)?jbyTelCTWUaD#ZVTA~%$=GXvAxOEQtJ>C%vX1B&T5>QTQfBrbByYdJ+_e^T- zwLH5Qd5UTd5%9-WQ8RY{qa#{Z76Jk4BxL!+#lV5aG~zY zWc_S!JDa^E%|H_OKK+ZMdQk!k>%-=;HsN{V3@Xdc=qj{{mVt>CeeU5TT(s!#t+U=?QVxO1d%=N3{H z8dOgBrJPwSfYjUlW1R@CYB-!Y`s7@hY6>*YH*H2lYDVZL}Il2=9ob>{f$D;;b|SfpFMiPg%`Z+id}#` zv5J`#j>;OX(RqgBK|S(OOl3sYa={~2m0tU%&w!hi)!m~Ybf}5<3 ziVxd#-6;fl>U+#FhO%bnkMlk%fw4J{kS*S*xc2<;F{8O-i9luDPgM_6r*J^tC1Ad;i#G z?IM_d-3KdqwX>(&3tU^o976#yP3eXUvBw#sIJ;E5Jf|vt*i?$mAE~z}-Quwtp$z{7 zzJ8OjbskyJ&=YeJFIP+1I$vdos~VH;(s2kfo)S8d8I5MC&_%pBZCsb9TDNsoL1JT~ z%+offEOn3$OW;cuJl`l@GN2yUqh4T71(%5&7bo#2P~ARAoXl4U?G6iwQtdlW;yygN zaU984VEg$|`;AMlYVTT|8|jII6PDNLH`5wjMsez$EHTrdFz5RbwBGxx;ck>YKiTRV zo)+yZ+tYc@P=w(luI}W2Yv}BA0L19#1OY5T|6?vQhgdlb|69<9JkVLLZ?l+`&wL2$ zswd~EySTHgSXP17ys?r=oNdY-;Iu#eX~>E%F`kuf#J`1=kj5q9`z$2gd6a)T0yUx1ub~wz5B(Td20Qr(6gzcMt&!M^}Mh5aCOV(AB(4Iq2g#cWB(+-J3P( zvwoF7v3r6{90Sm-?Yd1G-W#(uAKnGtX*ccMJtFP02@EqaBcnA>u?F6^^db!(E|MTL z3%>1K9fIH@ex#hpd7U(SljdZ+1L59tFsH{sne#v1CwJN`Xu#$9!-L!pEx-VHsQ1tP zfq_oU9a4nThQO z?nS3*41uIJc^FR_J@b!%iZ`EdRj@EyV_hUJDpZW0oegz}|HJI;E}JnWx5Ijw0wtM| z-E?x+ancQIT};)0G#L!To@>fv-0~GM*8L~vJ|baM&S8yly`bIeIECKij>*9~9KX0w zs0Ocyat?@7C}2Xg&u+Y_Xa}bbWu_NlZ7s-#Tk!{fbGS=IV88tpqh42aFo-Ea4#}iXLPkIdhrBJ6 zhEkF?5~39dqdtCP{!VBohmXm>(UnNoqKC%xosy4_O@=^9WvM4#k!NE`qwG?o?PUi} z9z1;H+k!RMuwR4z+!rZbN<2qg>UJeq1e(P=X>Pl@Pd;+sG48cEGF__nGT5d!L-pjV zV5sC6gjnSS>V7RTcUuHPX1s2?URjdAnN219OqE|#D$U9Eqvb21B&Z>3@|k=d7$$v& z`k0*|2wpyW>YCsnrsaLG&x{qW0oH#P7D|AwS%J%ljk8H_8&!yA`~=6?^jy3}6~{-Cj_XiP z)%xD(f4xOag_j%qS2H#f-!XvXI2VhFIK1l?Nky-{pVCUrc*ftu)-Ww)*jYLA^D-rz z9Q)TRXF<643Ote+!*zqTVdt;y0blStJ0{a1znxk= zo-Ck`+Tqi|**=0({5pn)_a}i@V7sZMAlN?NA5egrtFTjKO@T@_(LP21QXw$(fxV4W^|gVt6J48mOcrzi4=A zwA|sGueguAk5jI7nADX~#M6Ha^7B-vM1TKgWZKHS}*PFBC zr|;2uDNdn=ugw}7c5gT#9cj$_S(-qaJ`_vGY33~_vai1Ii7Xjcm6A$8#*;GYv4xN} z>Z*BQOeRJ%NKIA!51XJU=WBtU6w(znT=B4^hybPT#Zl$EUylspL~E&JN|e5Ah@f2_ zgDAOSOmtH%{FBifdnJN0xos#4)i_E+Ef|~uOQB#upn^$njP9RcP2`mQqxsfow?7}u z%TgIsG+?cXVOsw4GAbZQ}yAQ`5SE}3g{d;rXpvI6)(hI4-Yy!5R3*s zxPRXYKFRO-;O}k#OfnyER?doV6d2Pw?*C9dC_j+sEkR+0s;RqM$VX=eki=?CElA1s zb{XdBwHtnhXA7>s+f7nOC;oKl6I}DN1!n}ia1Kh~w+P!{YobUcPPew%MO7BsW zKXM&;B?C3kLcZHzx^{~r8Gun9$EEq^Kxs}OJ^67<8m7Dhy-U6&hXJ!NNC;1DL1TM4 zHs&vdt_Si5F{dEk&O0~B;_njl9+#G2+5IEmi~H$Sbrst~1{R12Iyu;XKL&WbHb$Q$_e3=ii`{mcGDdV;Yh=^(ZmatxHlq%*`jxH6*dj~cgIqE;%V}{#tHGNmkDPwKJ1~UPS(6d zgffOL2V<+zj>5lY3Kx{gbeUg&4xVl|4ly5!}M<2D)rRqL5rT_pne{&vS+So8*JJ6Y4e zisIjoPK9u={)Bb9TvIYVmQGR^v+T+~fBI)=W^>Q`fjYSCgZ&Ecn=b=wBNsk9{+yjB z-96wp=4uQbhz;UN28m!4LYK(Zo>6SEzKo-=zjp{uy4*xGxS{)tv--6QfnVzig;&*&QF|MC#lnJY1?`A+Y zPP%HGT(~`{NTQ}24Xk!FUv1NGOGqC0IObG`?q6%a%-wZsu#~rKgot8ZUl%=t!+CH+ z6QpOp?$jP_25_AS<0S1cHR$a9DVU~37$|p$S8SyT@L9>0dfeTg7TZ;huYu^}ZT(%O zgclWoLWD3|u;T7z6^wl>wM#tNPw~^D0-@cWlLNTUi=vsaS;7%<7Yg} zQIbKR&MFsyMCNRnnzC3!q1>xwMf;*JLv5KzF&L17uVMp%UURa}J4ah{q4Dsy6t5Lf^C+-z9S3Vl zrJ=uL<|+L7SL6AY2T4KYkxrJnfHG7C`CsPvQM&XL$F_GJ7EW2ROo-=>YRdc&4d@gp zs+q<`HLOA6D1j-e9i9c*x#`a}jBo+fguQPZ`f6~NJymWaL|$Q{cMyC$*TkrF*w6~u z@?`v2u$_>(+6>q9GJGBD$fhhsvUexr`xgMtZ z7ASXyVvmmabszD$xE(i~I$-*qfPX_+j9VvCxfC|mzQf;h0GyzFM9}GFaLp`uJLNqK z`is^%OSLDx9M^X86s+i*mERw6YV2w7sF7ddyq8gp({CnXgtq z=>n1NOY--Zs##DVxJBc2dk5`T3(}&$xjpPY2tOh7qSvem0WZ7XN!OkNR(rhClQcZ^ zP=$}bU@hyUvSPpaAu>oL5Kt=YnCt-H$e^6uuTREuUMSDOfIbhc{8FIV*PhMiCbGWG z=Y{T=)o46;@RMa6#4WzI^#sxfeG6%I>^tuHcJIG!3#fV(D4>GBoy7LzJ<>gaKx6bm z%Z3_P{7iz=486EMrP8i~F(cZ(7H-$z{-%ENo6`IT2j(}%yKXU%F=)JAt;$&?hH{Ar815+&E@_i znf|MO?G3%0>UYBH31aH6~i(d+gdOeHa`HdgOfuzAX?6EKvz&bu=2e4<6j}r zP&)qnK86%Wr!jER`*qKUaPL1C{^xG9fXeVqEu7$!v<|ANe>L)WniAS;EkE(~E!aV- zq9Centv$wJJ)krs{$?UTq(iPIhSLj7e65JV&g_6n%gvCN&J?y1RcX3V{n`309jbB^ zn?H=Y2Mfv|O0kaF4e+V$^a2T=pJ+Chl0M9)Hs;RGYKJsgS> zEqH`PBzQif5=is;a`+l5^0VfFD^C}LX2vCpdy!0co7L#?cuSFf3bsKL z(4*$L9kips=g|8!?`rm9%hD_42C!y@kZ)nsGN66j4o&XPS;B?Re&BzKwtss$F@gS& zQp6Amdm5}7{fdTCm zijJSFdYeMF`b1%DB9VU*U9X?>-z6WUE3~2v4yxGO^2Y_bKyl0;)PIa27 z_CtZ>d?Caf;zx}^r5s3FghSX`7i#d@M;Pw&c4^;rYR^sgP2))c)CbXBatcOU0R7`& zU%%)L2&|6KdQ8u>>{EmHf)~MaSA;_A-D9Tj4TVxXoa;9lK9hnqFNQr`LSAPl>gDZG z&aLb6Lj0Yz=@}JqIn8Onhk#dsJHof!AVEbp@_8fv%hVgS7D==RXFeO*pa)(!8QC-Vt-*H|CdRlBVawSuw{FJ$pE3)?-3o%;=J zGN{`EU>Qo)y=A(}!Nx^!%vddm4eLF0VtD}QZ&nTp^*tk9^L+v8RHZ(bGlj;j7^vp> z6|6%QkS9kLQ4pchP37>&pJLwe#h{+uXKiX4EuFux9hg91W%Dxw*dLp_?m{nL54#q8 z6~OrdX`rvy_&JM`@1Q3zaHpL5M_BNe6&|DdUJzO?f6>JWWUce4Z5ffQ9bGiz4!v=b zas$;dc2d(PGg>56{<VKywI{HHr{dx^=82#`zcF|WN z{PzA4fN{v$`u8p#Oow3?_o1Tzo@g7%lQqZbUstU3S7isH;{v}U=igW0$odWC=H#H0 z=9858p>TWaabNz~onS27=0WSi^~@4pNJuvnRBLw3>KT@X_v%>kXg}_^XW)@n1R<3d zUN+%5%*fd*?qDrV!`tef>}{R78@w-)xAocPz#B*l-tQ|dt333A*#bw+qrM+ znl=}JQWkOx0_Hs4fXN#54)q+Nr6CMJaO69-&ecK4;4Lf*9j;P5vz)u z`2xP>mgQlGX7g=!ECSm6oecbO9rA)E4Iz1%<;}?OH=b$d50(rQigYjMMMXNw0-E6P zjjH|RAq%O01vPS?L%GNz735M<*(|}AAJ?7g#!qb%S-DXtU{mHjQDqQ?sWh|pG)4E| zShyw-t!6LK_-EbIk7~$K(s~hErhoDRA$LfkfyW%XWIQfCp^4$?KIq&rdz@?|#LMpO z4Xn_dtv4mw_*6)1H2ISVeu4g_v7k9ilt8kX6rOwx0{>~~F-U0zl!6HI$a-X}>A(kP zaBTX%EN0d^_|TC9mFPU1)doitr&vLu4n<2P2+P^R-5Nya$QTO5p&_4Xb3p0 zBJaZ)8Rse~Izr?6+{8 zEB^+jdiM=qb+Bx0q9Ip;hiO%_Q6?RRAM0)9E&r5Rt-vgBZ~k+606Ro-pOQ@ z5@~xi4Sw+`;55(g32@)@{e^$be52kjzuXC4Z?BQNQL_Je^$2yJQJ+?e6$r%qX*ypFW) zz7eq#Zj5(N{av}TvNz{<9DlAQ+iz^Z^Xi|6-Y7wm(YpLWXx4ziVA(r}cYyfEyRH<48yEo?D- zTar?Nkr}+0_OmB{duK+Xz~qIcj9V95F>F(X(mvoB!(Wl3T;5-c9x9P5UMJ}xW>pIJ zTcd$;om#3Q`I)xjT=L0JhW4w`b+RcfO}rc~uHf{iGqqUEN=3b>!_(8*XtmY*5}hWm zjC|I}Vf#!pre9;Z`_4cn@RMD}Ac8H>3iOyFXz~msw}S^4D1Q*y=9QrV0_~Vw@5GHh z$nAA4>k;_&Z~bJ?aI}`^C{W@C4{)F)un|d#o{tLkrxuzUtt8}Tz(xyLWQ2E+OHgt> z357=d^7wo z2TYIE7Vg*$xE-mtlE`SolFgP36lgqz-6&t2+9u#cJ7JSsj_*VlTV`v)#QHkIjWp6I zP%qS4vr#zddSar5;};%9<&orTK@2m7&3qdl+&2NU9$eL{$Ek$Tefy zBhYM4azlb*hkKZaL{zBmQtBQoHR?jlwX--Z;@XQHx6k_djcgW_CaD(;PQ}p78MOC) zygPi320q}6%=#>qIl`^bqqYROYtRS|9d_oU4IDBx; zAMDoLc=&sG&F*LBUFfsn*K06xY|ybxZ)@seu_9bJQM~EHa?jQpC#Yt0ED|6421!UEAmI*UvOe$>@E;m z#td;=z$y?

#oc+wkqt|GNhwxz9ZI(v(0fUb4oLu`;&KoLZ*)%P(;+OWnZEY4j3< zBRo1X7}O!n(tN${_%j#CPc-f~9%aMTzp(kH5_sPZ>BAiI@uPHY)wFYEp68Fg>#`?P z=9J`PUDcrofnbLfcjoGT_rUhMlACyX?%Nvgz(aeWXcqM9w)s?rZs0a`C4ckm*t%~t zl-m*SbP+W9}|ou4oW=J>uoP0T-kQgJsas6;Ce43P2fQ;CN93_q#z*_vZjPFl+( zR^=*M&yDaJkl!X zpB^4}m`pAA-p<_6)X$$lSrI*IgsI~SFFpbsbcw30*(wKz75;;MEGkdk(Na_&W7=06 z>%KO-#Y9V@>^(ULV#mG#yTs)WT!ySy{Rsq4E6|v@*#kuZ?$6v;m4ta{laULNQWVRJ z4tj0ww|6b0aD*&We!Hgd=mnmvy#FMEeagItqoZ#c89HChLIs-NP(=#a5=AYyC+wF>v(GhVnA1%WCQwa-eYZ4 z5S*ZTVsO!}`9J<3viCJBV9oPS^IWW2F-|LKQl(yU0z;}~E|U#CECAgxFloHuncl~! zQT@+%ujJNI2JCym5mgKwwuXSszHELI%dIXSezVD22XrJZ59+3UWmLr?MQBE2WGe|L(_SPV97!vT_lZNLj-S4jI?TY#xb{NYuW2-vh#q}ZkN#Sw&q%U2AFYT*W zmn6B20fqKD2RnX78PVAQ=?xUhG2}MYMD+>^n34n_?xI)z{Yn<77O`iuD>@1HWvWDL8sDJ~^6Kb!N&NQ^-n})C zb#y+wql%&4<@(GB|1Ggr4EsU&Q||q-2fL7Ed0KLNJ|1RFT&k^}+1I~O8#sGA?1Iar z!?pp6Q(77PbqK`vBPQxEpJZ&-^4; zdRG)Irbzq(fosvQq%Q#fIGNgPH|^UV5?zfA!4&(6&G3{RB4eB_!MokMQ~o+71(sF! z=E2mFK-yj#(2HCNX`jOiUneX&wD>d_axoH+AM##6@Wufp&?F!+59>OFEI#5iMbfeI zVBDElzYZmCHgk50zmNr$()}xjgl$dGGmsT&=>-yew`F=-;-@@k z_JM&Ye_RO6qaFrJmpC>0Z=D>X43z#%QI;^Pr{k4k^t~BNW3Ux>^S{q|m0XPzw{$hB z`KF%MEixg3`UCXBcC*Lc_~|_$Ss3=ecr{2dRo^YQ1eIL6NqU4hPfMDR!IR6THSo*d z#YRrMY$}lXv0*yzW3zDO{^68`S&D<_=Zd#7Gznn|vy5C%iVycO6t4OadD6P?RGl+F z&yDEi_SZ-04;ZK`0l7KXUVyrv;ug0*U=&`q%Mh}cdvNy8riWmf4}TWRJjuuizB760 z<w>yVE|qyfV-F{sU*j7BzD#8R0EokNWk?XU6Rc+e>ey{N*(BzG2MyexweI;*TufA1onwIF7{ z3sgiD!qsg@46h#=-OVSEN83wx$2y1v^l(`1R-ySBdN*tniqPs3acQBqMEiby^|5ez zV&*f#Gh*8hIn_N|+%!P!ch=}C7QedXq=sG{<9bD9#LNnDmby=)vdwVw z{;y!CC$=%{j4?C^>Pb0)VLGn>qAVeK8$;bH6tZf*EK*#mWTcxp{TmbCRiv}}-GX~< z?TK@`#0;kQ3J*miIbG+axjr5QIH_@S69XA4CEJJ1ck7~y?F=sUBLnvnfnMM%034Nr z432{`hxiM5<5YG6i_WY^R`k2Xqn(Fm*Kdz+qI&GH<*NRzi7u-T_nRcVTPR#DPKVYm!aHa!m=>5r;L#aKy9D5KP5o^1;ew%()PhbHB`#>OdN;Z+{I}MIaZw&czkEcSlSahR4gM*Yz-Av|(6m#?uEEIXO zC>ay)cU*iH>VDKesh{0THp^XdPmqO8kmo14k=$29Ogo=DR18=2f_ zvKgm{L5p-Uo#fwP(E88e#cDQl@4w}ChSh-QBP{o$JhmmqEKu- znXEY3k~22L_kr^cc$WLpacKneaJeikID}EB^UG-5Wjl9v)&N4fg(gBGgz)T<^SAvQ zWA)s^CSFc;k&&{ybL-mBb!%h9SKQnC<6lzINVoS$(ZB8RZ0JO4mv?W#qUU*A_AQ?G z*S1v>qYJo}yR^wG3p!2^cp8dz3JCa~ve3LH&x@fqYDlMNqO}Pb3#~gxvgS~tp{z^4 zC`_Jw-i}w=v~p7Js(nI@HF6TUVs?p*0Xdgacna4mM5?PW-Kn1e#qt{h3^2{YlwlQi ziyw;k^V>3!Mr!U_XfZ|R?B}o4!VQV)V$s5?#t+`62eOeRR!)>g7riG-{J|F>DP@{3 zo|mr3s!COgt3r~GL?M@zsk;J?Wc5)On8l_=>~)wfob4Xvp7ZZv@!hkpN^tB{gn;d* z2K!Z>0dTeosS}_a_nmt83jj!im=Nsx`5;&q!a%m~^}bY#3(nNkC|MGf<6eglAqi&^ zqifkAjzI|oV)BorST+>oD;m%PzBDI=G!Lk^5bNKodfmyW_bhJHE?C)9PZ8VGHBU$2 z5-njlHpfG`XT1pqG3zEJLD<@c@p8uwh=`H{W*qi+#)Z%cB5)HXfAx;9=SL%H{ym=BDA3c?%` zo1P}eKr~4MlZsc1J=Jxs2uCJY*PV3&*Vd&3ZTZ)7_v@@)NEWcoWc}0VvF<$d$Y+t! zXjWcw{=R|NCb>x{tM>Ell7jgQW(9osuwbH}NGuc980;A6D9p7NaF%pHc<#JwXdB<)NJdC`!6dwf;t~H zESV(4;?gc?b8eRBw+APRvhu=;qG@wz#l$BQ=BEEL7I44iD9VGHX*KUbz=vR^t=Jm* z*Ucr`cRYJ9o!!5*`QiMQ@MBOd4whoYKkckBz0Bh>Sp%kB1F%zxshL>vA^8ZmRr(tB z8;2o&wXy{4Lwtiu_^vnOcYQaouV`d_g_)YEk>ed&r$VpTP!E4Kv*9v;FH+>zkSX{u|X8S|K>+ z64XWnMk?CC*~rzRVDj^0oE$vd-zUkQkj>1|h&2tK-}3}~JK$Y+Ek_=DA%4tM{)&dn#T70z4SgY4)U7SCanW&0@_5k!PzZ;vNs@-RJdW z1RA4eI%sRtRzvfzH`0co56ZCZtSU|iW&KnkNyWk#W#LjGq*jTI-YqXodbMj$iGrnb zI%^KfyJk+5mPe=7ogovObRp7ijPfmaVc=MkN|)zm(D}5Tj_M`vQGbc&^Eb%4FIf+( zj`X9YqgCsw-<(38I;2qJP(_rnzVqDjK1sV@l@yy1?$@fq$;jc?L=q zKDg`}#ov-fmM^?vigDb%-pE$(%C26=kyP+TQ5!64#P(9c(Zy2>@L3TWCg=Mso}>I5 zdv?@K%$@eE*yG-v{v)2pW~(hh<^GRei__;Jta5$b4S)>Jfgrk!rpt~&_c;O%1$H|= zt#xs3ZO3eOv%)c7z_|}`+MQH^SuwE8NesMU_^Fe+nUGp#kUguJEd$?`VpX|xVj+3B zLp2N})zAw^pDLFmwdt$3jN~w!=#Koaaa~t%Dr_j*3_(0Ov* z7h|=Z^B=BMEol5;lSFG`nhT<0Pi9cIUeb;&GPU4v5-4_(@T4DQ`oj`sDiJn+(>lo+ z9x@`;WMWE>$Zo;@b0#nz{|JCBE#3J zJDy|Bm5fA$o0);nS4*rJ)<1?-9Zm5SX}oQBE=tzuv6C89=Udmqk(}hniLz2h7Oa1? z{5sKDA)xpaj@$q%2_L0TAa=M?5+QyVWLj)N{ug>~Mf#F~#6V$hoT2bYR6)ef(B%gQ zFOyj&O~jG^uP0|c)qINWuj98BmTPuqnGB4$zS>8X1tQ4k#~h9Wl8U5+KGazfsSV1p z(q)mRS{_c^;mR}OR$f;NCEN4E!jE}|?Ou2NgJdZwNZCA(b0wQG45J2(kRG`$lE`g@jLSPHowVu{OfxmylKS#sq|Ms0 zPa7`tNl#RP4u6Am;DS1A#V`bv)ApskN8^8gIgkla&R=qv{>KvKGT?lCYi91=7j(^F zz|(}YL#>#-UOjXe|@S^nUkA_YaX45Kc9g{Bgj`TXuuU{}iT z*u7nXmr*C|GWQc@q&_$%pq-}#F*}J3SLfJy#=qET-1b`*v=KH^Q1icpcXGtZ=jk8R z-`x?mG0MhznOl8M=ol>WuY7(GB8evfYLSLOBWNUesyd?u14FeDhgGo+fRxv9w$v|KrWZ zfcLB5vWAxV1hC+ut>XXx+XYL?s+w_?f#udpLsO2M8x*l}Ck7)`v?o{wO-Q=kC%qG$ zKB$NM2iHb)Gs^z_>xe!aO`6))c794g87^O^`@}fB57Q-~uPq`x@ujX&Gm(V%;okuL z8J4lHb%QWzts-p)rE&rA)#@Jd$2!>0Ba5Ai$+jGcw_^NEh{G>GduY>Dpg&D206ZeJ z%1cMHx$vTbK^0ytLJTFh#HUFbjen)6XMf+b2{utV=)+eje#w)>q9B^t!XD`={l?R@ zmV;TAs5JHHKVHmqP+vaVwH}vK@y0y~>mwzm;C)$?(yK@p^OcmQ=;p)?auO+%mouNR zFp_M$ry?!qRPzLo&QC?Gaq4FD$v=VMQ?kO+YV^fX7`pDfE0il{Gdis4R5|y|j?pT` zadsh{s0;ui1LIT^>Xi^obi@q(-M4jLUY2dht(K%^!YDLvYtJ}>oU-Oe4r#Rp;XTXs#s_qtlti-A!4X73!n(0Q zX<0H#i2ElVi6!rz;K4B+Z79A7ykcBlpe=Q;yrWdpfyYlJAewv4Ceu)w2@%M>r!*(9 z8`7Etun3^iUGmuW*=;o%N2+4{o9u-+&Aa)!c%f-sV5k z9yfg+Hbv^_jWV#CE{N)%o`=}8zkgS`=i0h;iS=lZ*$ZncvKp^pN^cNaoiH}D8O714llD4}p368`xZ7wIYlD$P{ z!d-Jsr>4*zgkVt4B3lfOq4*oUrXl^^>M-JUpyyzixKwl^rgtfRgK1LyWr{){us5uL z(GUo`PdxkCs*h!(dS=?C_dMr)$E~vK<)2dn#${ZnFBCfHd~*DCGsNKlM3(|)r_nyl z`xKI~(taz4_1>DL+y#A2!IM3FC^{S5upEZ4+`=tJ+=7HmUIjCg0ftD}b9mkcyH!N0 zQJNZlDc#6;7?a(y*rR5!KiQ~WA{6|x{PO+1?DHu;<*GP3p=Qex9xjM^R}Dw#iJ;wo ziy@#z+h}wpgx%NrPDcGjV609#VC8w3_xWFgbo0!FbBja+4a5fSkK0y2M5aycXr=+S zX`9oVI?70+#e59Sp&5szW11~TjHG6?a+usfgay(~Jik+^vCjYi>+eTf)vW>k)pTrw z;)QhO6RKj>W+g^kdi7FIi9f~T9%Tw_xhkFt?#4mdB`WRoD}GgH`zdF=QGB znt;+%VpF9(fDPc8+iM+8SDaEqW)GJ8bMVsNK1B0DAdFHJ;-Px$D5GD|>WB1soa$AS zty)o8x?udJZes6p9$wrQvZdJSI7QGhKzp3J0_&na7*9~+M=SfET`E_PYEQ(Qn>&n! z*HQGjuZbppFUVUjFwaqT7F#>`nUPGlClP_~-s$JvQl-Ai)RPvQ&(LC<5)zY1BH70Ck zBp3BcO7EFW&>t8t%bH)Ji-1kYTwb<7MiTY^k`=zafzo^HAe8@%Vu{uz2lfvTl&*2- zZ9CXvo-u`_iQQujRSG@t=~j6Zxnd^B5Uin%lm5j+CgXBwBzU->G~#yUS`J=GAYIi| z_~f^rU_dsMf;PcD;M>5jV#ldBB5i#CT1hsJoTZd?;u2@DNU7fpL!IJ@xkRDg^@wpw z*p#?^3|Dh=gxybXfYO-&lv1r%AgT3HCzCfJzF!+Gcm1J_@K^-&?7+AjdD24A!iDs` zp{h1SGk>oZ9{hph0SjLLR+*dsb%cMendLc*-wFD&IlkR$Vd{;I;duNlvw{zQlgYv0 zcaOx$n7!KHat{}Eo|a=M0-XBVdNryVVTZGHZ56==3U}Y%`_Z4glX^|uxY+h;khpHtg#d>?<-40W;P0PhC$5yZZB{wB; zmYp~o#h|eeG>1_Cu+EByf03B|J)qEUBl8`a1f(e&UL1jSOGjP(xqFO#w2!r1$hKEest{FjbqSCOl6W3c|H#?PjERY%4na|&ZzrMf9;JP2x*#RfteB=)d4?U*; zTs0P#U^YwRyA4nuv;>!^wAHQXBsAe0K3P{+d6%9 z5H+k&_;lKKdx*%_>&78ETcjhBUT$LO%l&C||qRgXa00+DpYxe$)6E9#A}Z@)HK z9ilF+$U?seaENj>|}v;g@3KKe~f>9 z6AmKIdLD>-w2RiWO*sleHIbj-q~z3hzk25N>IsF>}E$?1?)q?`If zKT7?wGTo-se6$3&;y_392~7w&k;>Jz;GYm%p4Hb?0*5S*XH{q=8wlzA`9;!hZ&rEo zOc`F!yEs~dHyZ`BpC?w2UC{@*grPmBKCc>LN#6y309tMPYfL zc+|74__*=4uZ;R6F$zhIQYOV;I|M-Ey9kVINpP;ttaSg6r?X&-^6R@cjWmKZ14v7k zNVmYyjkJ`sbax0M-QC^YokOQ|cf-)lyyO44pZ6=wTzl_dtaYx<9a!9_Vj=nl9j-(G zv4vMkm9ku}l{V>QC{ET3E(M?`hFOhPk;8$8WHUqf`Q^+^ za1!S2kds{31rBOp$kudAfAoctOn9IT31@()NW7t_a%)1Tek(oF0K1`zPb4@0vA#@M zJBJj*PP}H6lv^8tt+G9HgCO!>m3*w3&E^}`aSsxNjZ#h{mg!SFs@SOM-`cqdPBLsd z4z^rj0%XCvEHz!ener1} z7t!U1`)7QMRro5pQxUH}T~z*7Bq9G*EN1=)V|Mw*_n7T9%YsA!hXNYQRWS(#)c=c1 zqe}V%ljI5fs4IfXF164Gj7(JIuk>xG!nDiYR3IjKvDh%1ExT)Gu%&OFw{n`M4TN6< z4uk|uDiEZYRw)W<+8Is>c)vI5coV(;wqW0j=k`8)#|@y$Ofc$P@#?4F)PI6q?*v$) zzs#_UGAV1+T~YTvatc#we|*M!*brgu{bw9(u@J39C3%|OehEZ(FWG4ifyfjjoP=CZ z(-AqP|9&8?_%6GpH3T&^lqP2Fm5j+lK%wml5Ld0PBNF`}D-_6f604Mnw49Bv`?k4c zsrwJg0`foDdJSQuy!q*hN@Hc(jfp>&M>oCD`0d~8L|dpuJBYaEaRQjnRvtTwO_BdF zrlrPrE?<}F-H1-oout?fd^%d7;&yp3k6090RA}D$lf)VFLwAkv0~yi%P$z?d46OLO zniZ<7`SqVTwlW+`?&Dg2KuyQ4f|_DaKPjXuP+vtoTN4L6`l{Y?yZ5I3>fD$%RUvn; z4`6X&{}c%F*fhx*Q7ks%#ALDX zlpIB~8$S&YC&%5+IsRG}oGV-DKkE3LK(}=;J2m%t&ZRVinDr&?aN>Gdfxnd`CA}Ql z;U6I9o#>5!V~R76IJN8e5m!4egF-+6hjQ@VF!ilVwlA^>LgG09vGv|}v|~1ONA4EK z^3HLPL@!Nf65*J+v+h(P(MXsPO|x6kG+ib3U8Mn|Jm4$KH8R*9y2D`9-dHac^dlqx z<%*$ct^fU4n z8h@%!kB;vQvTe?3PA@YaRaRs$&=#z#p;%wAQ8LF)V@^`qGDc9yFQ?1habS!fAkVw8 zPm)0b*5Y;GljD`tALZ}b>tGsOm#$pq7`(3EUQdCav%J2)hW;lX*~nqv>i!S2ZB04g z9^epTJ7-}_*r2PP0aT#$?+gZOI)eMh1FD8XA2iJUZTB|vlrXpHzq%6CtN4&0{w4)S zWCEnXBq8Bz)Jj%zLS3_I?q$ZwWs!-@eN@qRXPny5- zGVa8pAG+`iy?eZYtU|{dvvYAT{|g{>eR=8n`eH)V;$&3L*Hn+HFUL<``JHCVWz2tM zGAv70%nS=lpAYSGCZYx0MHs4b4Ic|eJL)pGdcuT&W%brU8~w`iKzZxE&sxr2x-^H{ zn|p%9#_#9*ZAq2G@EfG)zS{F)%%BN(9jZwg(Xst+pM-vxEDFt9@H8HZ+nCo*puHO_ zik1J~omW>NQHr2TF-nKgMKPXVTTbsCHcsO$o2XSEPF^d-Pw`5(ZeiW8S972#!d>^d zu`%iV!Q*8{_;vC!lXDTH`bA>%Lih=d6GGq!z508#{$YjSv4^u@I!>wKaE_#j*%D5!@C>)4^X$n@93Og=zN$XQ(kRR%Aw(P&B z`&<7vz&L_5`Hqg-RTwV8LOmGYblCK4 zy#0ZGknVN=fN}_HNXOc|K&tni*oIMbTnrll{d&u(T0m< z8_ZZw#%8Han)SO3>O?LCSl<1+=_eV{RbokSj?bS%@ywL5Y_+MEl^FelE6Si96x=gf z@ZnIhL(GA~5JQXltsHP&9uyV_Tc)=B z6Dz6c_&sm6A)1Q7DF`(|IrePUP3oSJa8RyDB|a=b=$x@|rtNPW0r>2D>;7 zO{_6bea>|<`cCOiYBqj!)?W2)mi;75ljCGJm&%GK1;QbE4qkX0)3Fip*xhJdBkK6M zt&02MOZl)RwRmeSg7pjrT||8;GYyK2ZC0(gVsKnWEP9&<@gv{0q8q>9p^wZF18s|g zHff}LhV{sIMq|yXaC=&9XdE0AejIFj3;E};)U~SCgVFkQntnFf!JjMFF2KU?CgaFmzWWf&K_q8#Aw&b+nhxMwWxdUE1HB~lBR>)tD z_nPuQJ{-mheg1Z}j}r%)051n6*wYA*X>hQZyRg_{Q!d5I6o?^+JMo;twkl4M{`7`$zcUhc69{wU|-y(;P% zgEU(}Pt0r}RK@N_uiOFu=~u}Dy~;6;l2$bj)q>8MDyI>a_6$32^K66iR%^Wt?%)R{ ziKoz=+KTq8Kez#^D1;|Xd6$i)%bi#B37GQ4PJSSDWgMB<61ix8y#ANz4~(Q*pK=nnNK z1Y*llob9{mM+JX^W^aptWCqw44{ZsmY_h}-s3b0dhYc?kzKXoG`d#oB>Zke=``Hqn$FGi9N=LWu~JFWD1R6OaxLNDz6@r zKP^ZnNI4mI^E9%q>fG5xEyKZ+(5w}*@Pp>funHkj53R$m5L=(?4iDlsn1A8$>z9>^ zItc!X0%hO^t~30 zboQlg0O?tv_LbYBNkbgE zy4xQ$y<`7Nk>E2E_Q)za6&EDUTZ&%j|Z##0Ig5@8JQaxaHSO zd%1FSfCmq;Xumi&B!Pad6kd{~pIFO`uxyRwWk~(?q~br*C})?Bmv;pgnVwcm5Yc{! z9R^YGC<-8w@6>>st|MuoLz0}eX~Xpl=r{>|77`i~1IZfngu#C(xPL<-dnM0gbJ)@l zbGE;wsHD{L|2g0#Hl>KuQneO?FTrjQ-kUjw2q7-Q0=Vmy+R?|mSd5>NtB z#BSmJ*;68R&^H%Q58LtkOl5G_PGl9dja(cYXwpUiP@UEiuXgAMzeIm$Tw>`o2cQq0>1!6Bk?1hVwoq(Lm9&xzY#68y$d8Znv zZ3Me1kcKaG07=%5PljRUqE8?cbLB`Mj-x&Og)Q53r^)KTsU1xM^jItVvb1~T)f7oI zO!I3pvI;ii2(tHl1MxZ=V0Ginv>&x;o(KO2((^f1jc6U`p4!)CrVnyW;+P`lp0}C7 z#h5QKB`^<`ECvI0dZs_y2JeGbrEPv@OQ?kXpmD<+w+X5wS!PI5KMED9%W+~hd3Qhi z-l#Wbuab4~ME24ll7LPLLrckwzf&X!-fN6yWd54?BO8t^h%$h-hLGvE8tpeaKvrsJ zn3a~*{2$|rq0?`NR8I#6yhAU45t(m#b5+G^igu+IO_Z(xK1IEW(Zhq1t)azXgn?sO z%wXo`L|53C8OY98x1A_&5=>a~mvM6a4Kxv`LB?-9jT%}QVE-GSz;L{*ZQme(_Kdd_ zDQM01-6XJH*31vzS4)M^`6dXbqPw*JxsAH}9L+N!%67mlhqW4IGOaDm8A*JTau8D~ zDbnJS7s8V4%=#0!MgovQ9Sg%J&Zul}{F}iM9xD@P#S=>J5zm1lRLxb$X z{;2IsG)+YFSyp3N)2rP>_ff7<95G=E3-;|L!64{tYN65gw<8YODH-Lj_Q&O=Hh(v=&s=ZGh)dZ1`J_`3q{4EgL z^vYR(sSB7^Ci*|o{EbX-i)7rY#3jtEpMo2}md0v;bL9V+w$K|zXJ&Id#xUv^evD@W zdJSCpy~{r(@Y5Q%9j5P>sC3-nf18N-7sy5XCUcv2CPVv<9t1y$6#{Z-RCkuIdoSn5 zMYNnUDG|s4tXEM-E{zW01VG!&3zX_ODx`Y>mBFGmq515SGOeHVMzO_2bNJJ`H<6e% zqwrCY7{f+1oy!dqDY9v};36Tpg~NQGW8(qf;O?m%#!ZDqW8VUuNr`jH2`sS$ax(xWLg-r}g&WQa7(L?{I99s7P zm2{wecmJ@7A^e7X`Vrh?6{(?x2SFy3zagA~TA7xV8`bj7YvkA9LK+%B1aMf&%CD96 zd3lL(MfcHd%5Vk$MqV(nTh2hv-@xC-F>qlxp`ublKcbs7cWe7Y9?Jg7LoTQN_}8UW zVmEdvrb$0MVg>`ra5`B}G_264*ShVnVf53YVZK^`*{pL#2RhZtW@P_0Lx7qy{q&T1 z{At}|fysa*Hg)R^d#p|A;`qw?(`q2}FW8sTk78|*f`vxx@c!Ei{TnpGA6_vdqC5-P zjl6T1L8dxUg-4mqp$H*XLQ@RLG{fTgJAYm{M^XI2PC(jjGhWOeo@{s#kpNSrp|}X< z%S@gyt|Fr6UJKfBIVZ~liLEx;8w2vS{(~Hk)wBPq%#D)C7Em=q?y|pkRD`TZ40$Lt zMzcPoF;w@>uWF8cDx+wEhc|K}FqUlV)_c%s1%ceN`jRW4%}c?)EoIf)ex15qOkR46MX6!Z7HSE7r9x4Mjle1eR*wi$NvtNU(|Ei;n7tXfhtU#02{`5AbV7f`) zf#y1Y6e1s!AKHbp=q*EaP1bp~v;n$gD zWz)76RvTY3%6(A6UnSVc=#DUX#4Gt>6`nI-M)P2>X7ivvoP)P7;!r)-zl>dEBs6Wc z-7+_Q=Y{XR0eH7mFA2W;zw8Rn zq|Z_{GH?Vx9pt12@*sWzY1ugeyWx`L1uWU}L&fC3*U~`_NlzLY+4W|r4S*~acal$= z61@v;etJh!pZ9QZoc*%S?=h@g^#gOA3WArLO3jBbk4qUuK@$JX#;~a z!$=Ep=MBt2vygkkC&!(w#qxVHV#UyAB1zFJpahcBVx(f-HmnbIj zVpTs3V^oOP%3up1>`JHaJ<^3)Er1HX=mZZzd%MT~D@frfLJpzZO>~0r_6ktoM{gI= zaG`<^?Rd>YXKuBAn&!)nf@5`woBbet>ZI*v{AYzYc$>YAo9;LTs1isJyL5lpW^eXM zohV#rl;d6eh{q2t{~!Zt>Y^Sv3 zS+)v~y@TU&-{Vrbmv`Zyj%Pr#gq_b)PAyIk^-|7Ze&LW2FY8n1mfWrumn7oSNlfqw zs0gJ%a^9TB4%P{y9$f1Fz6e&z3gfp1rkX#aag6&ey*W?aqrMqOI4wTz3iYuIB=w4Q+I!5|w)MMw#A7K6Zs$EAfE zIBVkhC%VkufaAEr3SXUs?G#R27(56MV&Fuu2zBWQFxse8GUL`fH+$V=Zr8>sU@5g?=-5 z#nF@(su?r5Qg9KR6sHg5TH8TNMGFmALc4h9bxI)8L|7YHMI+QV;8x;YplJ{NuxDo> zuCEYJgO}NdL9>o`MTjeTFb1crV1$sUu!!q?@fxgM*T8}#7mP=3knC%DP^ifm ztwWth2CKPEHI?}l|~rZ<+50OGnfi>y|7) z1^MQ7=3B+Gv|oz+`u2&yRN^kD4EN$5IoF%q)F#r10EdY-c}sO z!K!L0*OmYw3H-H^vW%jUNNrpbnQJ>Y(USl5NDvMzaR?P)X8JuORtR+#-h zdf^_uy+yb*d2NX!(}$&D_CZxljDsfa_(5b_Ik??ilJU`UCUja=UOcY3z)G7WTtw!o zEPMHcE8-X8SU}!V*avMYVpkyu<@#IPhW~89-Y>r{$RT|4BRR^?-IxFIm%r01GzTCe z>Fe#nnA*4AsP@uLsnz9+5o|>tP1xDboVN${If(4t$!rwN>#bHI^mSy@t0jBJ2%!=d z1Xq8LPo4T)@w6+#$nU-Zw@gvZS49s*(2|6GI_rMdG1nGI#haWZ{e?*JXR^>tBGZn# z!z|Yzm0rG&n&Wlz0`sEEk@Re$US5A}W2=^qf;Elkw_a1vBmFn=D}uRtR;Q50>Fc0x zFA{%VX**zsG2Oyjq+ym|QK3fot%D+{s-hNJk#o=H3Q*V%Y&I0flRpSg4EsdC5Gu*xRzQK% zeC1&gHTp0Kr4xlr*KH0oC*Kb?Yry@fuVt_P0{m8g7!L~J|J$trZ@U1wFLAvE*AngAo<6@#yTI{jN zm)2LwmMiXh@nN{!`FyRcl8q)+Kx$|A{+b!Sby$q1zxHKqc#aeSAlyCBeC3{J0ULR% z4p*qUa4E46`*pJF*2>$BiD#32oERGzEVD9U9}9!r8(ZwhbWd+6fjZHc`!zG(4ap|f z%akM5?O<53LAWTeGjrSCgzwM9{DLY?4&fv`HNq7rdQAVZ|9YQvqx1Sdbka(ECkt065_*$b%Q@VndKKzAvaIOo{ zG+3Ew&@3LmOYvvOaYvaMFCPV?kX3h{d8J?XasUu=2BKfj4j(n)UNt6BF9x2hHN!hII&T>&zMCMq2Q+gl3WWwPgW817) z#VK&%J%xKzp!{Me#)%GrRi-jCR$C#&%H|7lIval1!Y2b8?Jkdk7ApL)!$IuC9Lq9{ zSS=!piTuiqOJ|G!;giT{aq!mDAp#$I7~s57osPm9cQrDuXzL>>O4Z;?_K5mf=AL2N zOl-O2g;q5?=?G0r#SWLpKaq^4WG7S`xtF*CzJEJ^w$uJs=?#7n6f>*W;?q2Dh%7c_&QOxt zS)UzM17_gkd{)q-E0(UrjbDCPmK9_$N+ceY)M2 z!r&)S<@Xj^Ku_-NS)4RBcIu`4tM`dX&!t)7d<#>%(xG8ZLIB7%#GOC^%?C1#yesT; zR09n+AQAeXsEL%A-V9b+M|UYyN;EhcW_anB5PgSD)pIL|c7+5*EWChH z0Nas|?MX6Dt+YllFmaIaL4Nob2 z%%_txhh)pMc(e+RDGDwqn1pIuvVmg`OI@fCCz`ITMOYE34*JYo6&()re$kn6TfVk$z-ON@C&wYSlzYG$X=^A$L0ftJ9Jg(EjY9cIY*mHrdB0mn^+9LBz{k3auJAuURF3b<0W zbR^n?B~A3zC15Z(3Qh?m2b*VFLh2`^Dy9#uaO-#-aF6e;i`K%}U^Iq#rAWzJDW zHud>F-k)ihB^jD+KkdRhI;it!L8Q&vCNG--{xJdf&pQ&up#qv;>=}}p`9pcU!*l)f zgpwIfb3UK_10Dw>4b*r~0s_fVXBha9`qkR{H>PvhiE@e`3L(Z%!kC*7*9~XLWk$=v zW_>p~A{#sRrv>3NL6mN3_SnjroeNLlXo7bl^)YlJ8NX6SEOeT}o2?y+6McH+tfjb# zwnMkN%|lE64h9}phZvc-kgS~j;SUXxQ}@rWi{^-$^Ki-sb_$gP2X%B+(pgc+^fWrl zSVF&`JDH%N`gh*OxaiYt)eyZO9ZnsKTdrP6zNw9Lpg^lICqp7ahQFZc@k~vBzO7Cp zmAS?VrGEXzRZjl#IehKoaNg8&;lrV9&9D)SF`t;vN9c^N6T@}golyba=OPa4ffXuR z^WFJ3>+}D&Ksr3t2N{a5d7qX$hV%T?)UI`QN zpA1{1FxXH?ZG=1F8I{=@Hg#@^xzQ|3j7KRGs;Ff2XPpM5;|hv-{1ifzFd^!x4Udy9 zZ=@V%2p3OHCu@#5EA&IQ&P2D6k=3)q+83jPTGHC*uOkIM%CcT9rF8SK#x@;eIL}o6 zwg3DU(Ium*6&aIhX|MERw3z88?c3QM@ETzBPqtun22u2VvU$4Ke-lc_FYiJH@A!V# zK;1NNO`!{4fNsY@DB4x2KVR>KBvyjTUG%2GF8d53xKL+1qK}S)dGyPD zKOE-;^uQfSQm4n`3Yk`j6gW>+0s0^ZIE04_mG+Bc{`{EmVLdJ(&$to&d(0raIhsPO zHPztONHDfT#cRSR^J-aRp8B3`2=uTV>~MWgc@ciH-RN@od@T$u>4dlZpp7FYmPf)_ zKiV|oW+`Lzi#MpI6?AaiB17dWISG1WpfwXIE=$5b_>5gk7XYgie|uPDXz&qiEU-&rs=P6MP;&Z+62V+Lg}1Ffb!qs3 zb6)PfueLfu-4N|vdIq_48wShuRgp|Sf07>Fa3*MW&Lr5s)O>Z-AN+ULSDgKit=>=HBPn_J@#MCN++g)bS%tQK$pvFk{d96# zJl~%_J2n>p7;*{D?;vGzOtc;9rpW2cJeeOeQxWV;t?ZcSlX)r*17~gnWiop0j=zF}Q z@&^hclXZms4(S)R(un)^d|ugXOu0}=i+p{pW_ET$Axv(C(&(U9Lc+G~CB20~Q?g&& z-9$zcvfzWV{)EvP&=fNT`2H7##smAr1WrIy@z%Axfq+R#$nAL35h_x)>ngP| z8}Gg17HNJw!RSXB$06e=2PT^0kKS}-NMVR~P#~W4()t6PeKezV%q(l1yt?pIPe88{ zK5<+QYp%gkq`Eh;Z0K3ct|xu#;Eiu3|0}s57Tpm9n!otUmHCoiv{iqYanXu(zy3_0 zLG+29@N^Os=^zBhWU#&mlXA>O+ZU@6DKks(aDM5L%M5F-dw-g|rPx&Vqq?L#;z?x2 zE8S4J8x7^hSVQi)xf-7ty8gH!&AlFKB)%MJFjouDafDXy>2!Q9ykSzrnyLdoj?|7l zfu^?}g*II!BU|=D8jM$w$ll}yPxQ9*=6*hpK{x?>W=jN-L*r+Y>Y2Z?^Q_$$8Zh;3 zsh}j9!xb@GNfm{v(kZ}z^CDK3jt}1EYKv_ja5ky)#a-ZLpv}@NavM zMi)jK0JeKx$5}#nccp~qi$t4km_zgC1K8GMG$bk=%rb-;Ev{FEEx#K=3)Hq9Ow zcz=T7NIvAfEkMniR=g20NpC<+LVX8};@{b7j%;YzizAg7)Uu05zSi)zZ0C}bUB6b+HR*WcG_2kCFU+#F#@9dLWU^K+PtsM_YFnhz^Q}yOt;y%RL zZ+nyS!*=Bjf12&=+BH{kTPrOulu0ZUPbn$CmNO-J{?VA`Ewd%XCyik??f^c`>D8Vi zcTP8ntNeO^3FJeKZ-L&XD$laaM}*96Z!Ijo7<601Z4GB(Cdg@Y?~>R^)bsf%9I_6d zZU{2W6ENQ3(?W`z3A&5k#y#6di6D9Me6FARAwbXE7MNqd@%N+JDfJe;vaSv zI`nj!xS@RKbA8Srnrndj_4;C=c2@Qvq=i;xE3=TK^kH!YQ$FG_>c~>hp2sE z|25S7$E&PiGu%aDbmW#y$N2PscvJ(4q+|K1^XFxR*h+LhfQAplV$@Z*q21O~h$*EF z1s(hQYU1S#tAm;}N!U-9*?*IEhe40O;WM*Hn9!>$8~+N9*6=sgsV-luO(wv!$m*jN zCf@f>G~fv7mu8@Yl#iWwEj!QZcfxW2u-CZ)l{zv;|n!vB64=y2y>y~#Yd2eMWI&+P;q$@x&ab;Xjpt?T|i9#XzTm( z4XKY&qcBsPWr+&NkhVV0(w5EWI})h~NM0CPok$xyeq8x&RWB=a%JikIjg_D9uZs!j zKAF_4@4`QG6fZJt_mc!ed5&mzmm@7&)oLx_1A1R^;a+Sy!yB?BH^fK#$w%}fjs$HV&5WlQy+&%}PovA~EGs}LWpiIWDpaBkC|P#g6QlSf`4aAs zl7p~JKJUk58q?1rGp?m7JPYZ7ve{>EAy5q4ZP8O1%%~!Kr_HNHH$aPu+rIv?sF;Xn z18FjHx<{3TCNFdnlY*gr4kgMiO{MPcjlZeS#w3!H&P6;R{%YhE*K8%X?`P7X?gin7 z-ZN2nlnVbJf6hSPkFaZSQV=V6X`5=6XB8KPj&iq@Y3tKu5RydeU30=n;2NNI#fU9^ z4eXxQe=CsSFqXMHh?*~o#3+rPG{d(yz&(q0=((smk8H_{(uC0=^}FV-2gN3iYr8G36i|X%I+Y znveFRo;|Zdn2`IuCio5OC6oM`I<)I=Ln=o6ampI#)cn>G3n*A~bmsCheVPsF#L(te zdmfAaJ7KjT@9?&1z|Yc`bA@lx$|?GE7nMgXwM{{=&3V}&C9f&D5gf4?cKH(zeZM5ll$5Cv_zVc)J8Gc0)SI2v2 zP3w5j60S^IRGlP);p>r~V%vTkC=ne?7}+Kj^GZR>RM_Qt-XoK1)O~j++dqRnE)aEr zv-BnENw$>;?R^|`4K(#f`XW78&EV2DPe{|=D$gby~kVEOZ>bqB<#x;*U^N52cEuT-|TF^ zt>!L?X@|$y=T806^bZjjtZ7~6#b34op!B-BlAqHHSGfaHWUp2N58cxTRKDIfudEA` zzsTGUSzGTIqeiJuEk-3y5BnW-?i{?%N9Z<>tuh13s-EsX+5&&*yceosTKu^7MS;ra zCOOvU^-?Ng=edaeLBoVCk<8W|;N>$a!AG=o*z|W2(_1I4sq4PUe#O%ljSe{JF?jnh z4OuyGxn|oDURa&G_(}kQbh!?pxSi*NWL1|u3-b{DOqr_+?Lt%OqPE?}#Up`XwD7pS{7q~95go+tBo%?@|7$AzKl_Bl8=Rk8Z%#l=MKOz*-T zcKi0%MSYh4?WS#4p3d*w#Gh|{K^mI@J6*W|l%LtNN5gUMG5jDAx#LsBGDsw$dz-Whn;{wq1z|fnr5Ak|Dm^s!(f|ui*nn1#XUMtowac=bd@(W6*7~ z%_a{q^9O;<*17E4WR8X?zG?W#qYHt%`cKdH@t+P7QQkW41zS7Cw|eqWUi+e6@Xp)r zr*9owT$Y{IWGA;)XEXgyD)~dKBJmL_+s>H4e;CNP4d?zM*l2kcBiK za?PKvoZ}C|=4VWUP&#+DLF&jl=QIE&(3_;_SoZ|#kp zkUd>k+&n#z`12oe#wuI>>3Mf9BA!LKJI`MH_8Muf4Y$d|Ku}NR6^Q2ipv+UZ3*^V_ z_l~{(iHSd;r{*>OZhCncQwLlZk&{S|=}HyW0Snrku*WS0mC4Qz?EJOWt0vU?Mqphr z;Z7UY1_!;Q{h6TIhS#^AIRAailW$>3TQODZQM0+^ZfhI;A#ZJ6j@Cp-zouI}ywy7S z4eHy=CTeUpA3~#!n}uA3OWWkmFFKzm!M~o#v|O*7fRH0aaF>=gKEluDts}Sbvdm5v z)bziyYmy>qPPWORm&rqst!<}A%^VHm0fBwoeD0FmqUdC1fmD7|P&2~h?X&%Y6ki-5 zt8G~@GScb<+2@eV>*}0!hx+KEC74D`1_#f-HZE7F+%k^9Pp6G*hCjXERq|)o!OL8{ z2U&eNdCxOR*xcz{p)Km7`7;it<|uVzuFmSq#Uilp5pLCCYigO{WuBWI=@29@^P0_s zsMe+}l!`(77;%sjQSVZ=Ud{hK3eL6_)5tyP%+;qGAcN4{lkBv>X8{ERr=`4gX+jM2 z^PQKY;8x#oS$lLguE_aVFOKLwgNvzN&RFl;K?YGMu-&)(S z68nBGbUmvYXwg02uRW^^RId*D){}T79<@c`Bj|hAQ-I+io3@o`@M(Yp`_Y~BCP8PO zhP`E?kW-e|N+UCXB=P4v zp0l0sJY@7TI%}Lf^FL(Jalb@my;~Il+N@jrgsDagXSm>4&p<UrUfki^IA3eOYWydt8#8OQtPsT;E; zIg1R*jfo*E&wdz9fG9o*1f$>pYyD_3yT|TFCwOVW`F7x8#{EXl3^PVBdlA!_1DkbI zG3$GYug*L8OKNzt7~SrL1)G0cED(Wnd5A}_wV~u7vD*s4l7CO-S=fjWUiwp4V%^2x z;QY>n*758e(qRp>v5ftMNz5Q}Ivc&Fer=i9pRZHj!UKEk0jJfWJA*DC+9d@NLI);v z5+}bL5rUn|)7z|Np^p#`(TF-G*LGud8i=VY!l))HqxKGsb}$QB3+C}BVq?s|N01c< z0$GAwnm)`V2}5rU)7)kzI9=~K)o$Edz7$H0kOdp_YZGy#g)=v<=|JBTx^j`=pw%Rd z^DEsqjvfQrmlI4#M^xrx#;a{YBD=o+)5C=ClbG%-8SdtEiO2eH|7tjpd3x0In9UV6 zzd@Nm4FJZPk>ilE&xiD=J9cTFGfQjT(u$Wl)CS2HFG52>MxekO}C-{ z@q$nn(a=J>7+LLkGj7k{z8&pAH=?4}+zw76p2>z=@z{Y3MIJebZ#vg2MCTqN)#=go z(gfKyeRwj)+Nn2BA@w;;(*HFFZ27;g0{fuf~D+T4evl}8BH z>gzD;PF&X82;Wf`smpyA-tswWGpemu-*xc9^LsQiyw>6)ndm}pr$vrQE05>mieTp3 zvyn}YzvH0Ryr^qI;%xqhkv-S@IX7H%e8GTgABRlOh&Q%)LrtBABE6^fXI0PTu728P>9wxb zyB8IK!Uct4lQ#k26lz0l)P}2MK!YGzGa7s3WK&^ABPn~NCq+neeB^mX^_BBe_HP^t z!qdoMu9?L{iXP;rW`)aUnq#v3-w-Z+VByrPf?)lQ4_>3!H%K8eF>;9{`;)?}wb>Iz zK`*J9U?D-d|6f`f$S2%qHx2pORmnx9c3Ol3@Ab(CXK(9`rtT0E zm4CZV1Fkp75^FnF*VPd@$YMrkLvv9x0bY!Q zax{gNmN5*Rs_7(0>h@Wo&9G&m$ibJp`B5|@rsv=iK`@{wWEJUze=^kdzD}=V&ypM* z`*9d3jAS?G_#y~XaXJ!t||Ca^2@xi7ki#OT52b z>*VsAH-+{5ext7Xy?@}oEkL&=lMNE7tC5P)lf5DML)kaH>Ruk_huNlKfqRHJMZ7WP zRiU89J`=*YG(jb=ChmqRsYe3;R;J6Lok2^1NQoWP>lzME+5G`5bWt}|fI-(tw*YH2 z*Mg8gby-MCGz`2t5K{4{rv-<~e>peF(}_A$d8P#7Kj#&2vB@A<3hPZVH-2bCk>+pw z-;dqZj&0}8zG*Q75WW?Z;_uVUQP@_ZT@oQh_ILt4Wv)Ii zQ47Ow9FJK}4kl=@Z5Qtd6*Y{X+LXg>ga-voktV*pDVM?d+9+Wr0G3uCNvUB;Lb70RS&u z(7GeEAM%LP{W{aWX0)M3Y9UDT2=zSD73~KJq-a+@{y(1HDlE>fX&N2e-CcqPm*5@} z7+ivDaCZ-`!QI^lu$awfIKAv1(l3du-z7`>o`gq--HdDFs`(Ke+SmcBvVA)3PFe9X;)l*MUL z6hll()6XGnlpc;1$|`u#z>4PNhPqr3#i;_gyX+Nw=LbG;w0qGzQ!RAwI@#RW_(1`u zi2OHsctB;pg~--m^jIg`p|Qotj&kJ5CHr#oDqwTy1k$PLLiA+y8yT>3=Ej-fH6nF81Q|gWTpFHAj2Tx{7AyD9x5W?01q^bs8`-Wz zt*DL-%c5ZsHGeLy@%A0`(-nXqs zgmce@7nOc9vh)YYeGVW=;0D=Q%wvt05x*Q;WvCq>g1k(LuKg>=c+3x;$g}IE02`w@ zk-&pzQVPF^t0v+EjZKuu>Rmk^BI7Q+{gB9f(ULmKr(ffSTd@cEkf0#C!kt^N@FQ5n zmv~Aa*<)NyG5<()gK^D7>GEvT zT7LY72-0<5V9RV`;!-`5x*Q$y!!6+6zOO4=yPUkOz;;VDG)w0^9*Yt0lM1%-jKsHy z3z~b+@c;(@J`c;C1<=SjogJ4hPNhv4oKJt~Za;qNj!G=@bC^}!rDbdL90bc!f+hta zo!||+KZ)-W0i8wlCbH5^@#w7#L#M3&U)G`kLq|CjdBoXp?FsCSd-AHd4h`|pRcU-Neghl!_(^QXX>kGv--wmQ}p z@4L?w1nFS5$+@nbc0bfo;8@Hh3HYjJce@bSs(fnF*E;WH3#+0Xo%pS(BOl!K0J?7* z>lXUaaVp{W_{Wc(9!!vya^<&ua!UM{w#2MzVGI#KJ4-I9R&`RW2(USbiO&l9iN>kust#1Sz59fD>2LN3cp zMDq7HN}laR1uhJySo*A;hSO={O3VN>7BZehjEvB-C)6V?15$v;^+Dpm;nF6B@c>E- z=hC2a)e02Hrjcoa9ku44{B$pZ?CXH5A+OnCk{M6c&m@Vq)PXU~S!w8Uiz@z`qf1;j z1^F6aT!;h(PgYRq=<3)(RQNtfqw5_u(#$Vw2j(@ls%~&Vkn|@Y6vo-D`J;0%t0m zzo!m(07&tC`T2y9CD!OsPOgZ{hDz!>`QQwBD^6bFMB`U-&)B!pzZGHHvOg-Uf99n} zquZ!_Vnbz5ohH+Hc9RzXZ3{C5aSuwA_jZ|qPF}5GtblJ81P&3pGeYsu9_UK~bDqB5 zhJ}kA&n6Twk24w~u@JN{8iE#fzoUh6Mo3K1vdMsYs{5@vV6ZKkn1h+bjQ%E?>=amHTs>j2Gw5U zZ`ll`@rA6`NY~h$)YHHkLCj4msj-hB~V-6n678#tLG|P5dpy*Se-JLP6S+ zJq|D+vzN1@VgF20Na|r!RF(_Hr|-U=%m>uQ2gpScfjcMCquzOI#h#*0)jyPeAjDy| zo46g)Q{s#oq#vDChS(l+I=_~;k&Pr3bqR{kQldUKX6N|TgI=|95U^^dCv3Oc^y)a- zYwt#KidH-F_e7MehmHwr4PoeKFBV)F)+jEmfi3Kqjk|XBfVsmImoig1Z`ze#s-iM) zNQ;eTNSH53GO)CG#Ks7kU8;(zdDDM6+nN^>szZYJc{?+rJ+j?SJ2KEYriku__BhIh zOm_)j`rMSp(tT0bfQAH&HXYZ7*QIWcX-@exg|W6{lQK#;$mg@*On68)ngs$kFx4b? z`$1|l0cbCFi`#NJ-+-@eFSiSGTm2^zQlB`!+WP~s4ny(sn7cJ02=>SpQxJH$9ck|l zBmte*RCVKDHZ=>0ZX?3z<|t2BPWb0#^U47J4q?y3zJic^Sp*Yyr3yn0m4DykY(AAj zap51h0r3T}t@7c&VTfS|@F%CB(j0Mwjs{^rHi#xK3Vr|JVI|(XvOxCSygTcGwY5m` zLo@gKU+MT`jkzF%wP1sga41qL>;iNUv5Uf=pt}bC2|y7xKv~DPR0|5)j(}3^I?@R3 zAHf%_rOLF)y3(;lc2odXcia<2CE~(AgLDH}HWfiF4JW7^_RAg5Z!7}1!Ifjk=AX}S zN!*pz+E5W>l!P~gH|G_~^mo$D#mPk#MHxJjN9-RYQuf;A$uT)LV0_T-L-MOB62f1U zB|UlYFl3lXmeXzy-hQp-DG@Q=AJAx(jvjor)$LfsS=Fd>Uwy3GmUnVorOlUa4J%lh zd1sEwvJ8YkV75obvt>HS}L?mp_2j0B62s|0T;c^=mJ_CxMgP4cYx~Jp0J}InbqP& zw&Fi8E*ZZS@o;k-m=;3|5mLe&rak;jhN9{Eun-*cXyk1IkQJD&7etNu0w=i;>?XTm ziff|t0|b1P{7N}S3hj#`P~*11056Ua@z|4`sY zZ#8@?MDk9(SGy>*`M)>73*3FA1}23#-X1I(An?h1orpd~-`zx?Q1{#~fCNF{?&fpU zN%KcGw&%+*3hklSKj8I;>gLEu#T+zzm(yA4G;V-UTp>)vX)t~o^J`J|19GiEUoxpK zXYEPcX5WgN{+}njVaM@iITTS`?uJi?t7EWy!t_to{wo;JsVMB$L+z;kUtEQUeg0(8)?x=xi=e!ARnJl%DA-8WA>j6MS_H|Y6*?iX|#UKrsD7jV}hcnk0KW;wl2$Yx?}L;tu4+Q0PMY` z{+v2~W-oGnL$==w1KY}5MYR7#xH+w_M@38PteR0+DZ@0%4Xa0?6A~^M<0il7j$^eb^k_#`OHpO78)FRy|S!F^})OkTncJ!wVlubTmVLAamgUZu>Q>AR-w z_dXc14|h=Af?q0s;l0?cx4Gu`BKl(cf9*UGq`gU{XG#1+qW@yu^48fMot9=#XP1Zp zzksCxMN1g>!37Y6D0b4i)8NeuFy;iGkdl1@*!gkKS4@ZcN5z(7l0&oFbFM^FJAdwii-e~kx7OdqK}>T@ z47!NYoIt9=JGsH$J~9hdh`P|K7LkOqxTpFYR&b^EqE2@*pfoc5Tl{V!=0RM?Ny-i~ zeKQ>Qz{FXPO3bRxbb!)ATara~h^x$qYXudzr>k7a2($)y<0b-U!X&hI#TeUoMa8rT zein(Qgpn)o=ddU4ot?BetBz@z5K|u=cQ)C9rfWg!AntOtZmtWyf1?Fpqj6UQLanNZl zX;|YL%ixw3TxM8{aZJLu@Fm#WrA__B%u7)^2OXauL)g5z5}#LmW>BSBMiex^yfV=XV0EF~1_?1d?tUZPVh=c>SE$tYLxkz}Vir^$$WSTogI59lp{EKu$ktun_OxZoCiApG)Gj~pS5 z+j8?3GFxJ>z2zA6!eIE=3ifg#-K(YQK`zAJY)^3-MLH57}O_9$EVSY#z5*7pjX0Oelr<=+F zh>EA^3Ef|Kwykd|N0FAm0YMi^ZI`F8sURx{?)oN78KD!#D^*alP8+mfD|qzATciHv zp#U4;ZLN4|(yghA4UCNb5|dq5M|Y#WQ$*Q~3D1!G?2k;zyK0V;fS|ih1~ZJGP9%m;%3Q z3KR2T)AqWl`bg20Uf5{!WH_e|`LnWI8nt@el*OlH){AmMq+?qYVWu#7bJ-uWU~xz? z+iuh&_*$Yz^zHZLZkOM~@3aQLw(AJ%x>xSqYret6oJVe7|V-eDP@Cg=fU zoDUS-j;{_iE^;9cR#?C(aKY`)=)Z~zp?4 z^S3m8Sk#XQG3q7Z@`7E~Az2&cxG$m#0>qISxE%H_QwPy3hpJ8u>t6{3w0t1Jt+#$# z5PviI8gGiO+r3Rq15~~v6U+29w#3&xQ!@>H$MNSkd!b#^=OX%?M5Z$`R32rqgUF#L zMe05^VQs{?J@+{Z{tPh|HWi(&+t<|q6g1e z)>r4DB5D@O%47Sjt~UYk2Hq^R6uaQAe%LyUZ@Luykwd9u{z}o5cbg{c!u`&k_bE*a zQTqn^Q`C!uTIFoLhHwVD`xT0hSpGvzA(fEH1;SMxC0RfUM<#>6@zzohu}Tbd(KReX zK}N65HAOaDZd{d+ zqZUSth`uWeiSEGkWb!Ho;5X4&@OG-5Hhpwrm*Y-2=y%SQu*d%N0ay2~m(O)#Zj(FM zVDRRb`DWSVkNfEn0$X9`#Bx)rEq7lq!POMSx~nqF{n8I=J8*dFR+W9Ln_&6(8M8hk z9Bn{h?hOi|-LdiHJUk~V@th)qZk{D(pX+qBEJ;}~L7w69tJ}peTKYGRK<1IKiNanZ zxwCC4eD*&c!+chvkZmn2t=4L8UvUCBy+gc5qmkJO9}Y zK$ijSz{vUav6i*)t7@9G$`n#ykuDb9ue;hW0tRaV%Ot(%0<`R=T9${?p3Ff+$ z@Qu0(Wq;LpXV+0vu;aQ*jQg4l)DOMd+NeYAEjTQlr>3rV^I}nFkRP|_{6+Uw>6J4@ zr{$JjVwz38ANR;07X+ly5PqQ(cHjH-J@(U8H{z?G9$OP)><|Cq4tT6 zIL*(OIw6QTaP4;Ay`jB`vKqeTHW*}}0DjOhDoDhw{=sVb_q9Tlf;QxYM6z*BJ?uZSvtioBW|i?&Py<{Nz}i6M3q=Y`bPJE;gMy@2kt-HE0LjhmL;ORLh+| zoFy9%Rg1VG5kt9o-aTw->t2_eiJ#Fh-@~YdJiGpV313!wHMO^udch1GVwzNQ;=}4R zwG;BNx?C0YvX{TDr`Psx6N5&$fd4(B%F&PK4SamC@pG@(AClJ|YpgQGx!nD1vD0yS zDtf`sd-OX8B)rUfd-?=!WvWh2?YuqncyhHj*d)0;febso4eRf`rcb0fGWGV)Bu5+Rek28F)YTK16yG=T(8=T->O1Q(y)H1#4scC^>* z0O)8UvlTJyV0x8zhs-K^eVCbxd=pCMJ(XD#Ne!)S2`GJ;=GxM)z|2FCN4OZGny~)} z%$N7}aE-A{GOSi;pzRy!Wm58Y{(RT=IR&%4_%`*L>vx|L9unV;HqUj|ERP zaO}NL>ybJFI`v0VX9(*P)|F+2@;0Nc7?nXc6=|G5F?N~*Oi|Fgie}+LMe?H$Y>lY{ z%at5tCxugi#svS=X1T25AiBPT3SlU5Aaq;s`@)D{mJir(z`a|K;$;yqnT4tU{8O#^Rnu8z-5#+u|0Lp+!gM81}nFuvE zy&8LUP&R_}YDR~$^AjQEgx;Anw5h%J_Du8+RMNb^x6!*5HK6;uPIUS&vEFx3o!8}ye;;FIA#zy(*Z(d( zhR8s?z)%C6hIkHgaYb+kKhi%v7W++MRkxxFA5ndybtvrEfKItU@(7-dh9r5zorxN( z)FK2sMlsD@M)=p&z{c+KOgi``tISGgnV?(27vbM-xWPaH^@@tQFecv{Bs zowj&pPN5|W6Hw-pk>J_e<8_3P_bZ!#(0giyS+>Ohna`7F)qm1+M@s_+dc6Lt=yWcw zXOluO&C<$nEaQ{}3}Z^{5WF9Bk-)C#gg2z5NI_2bg}zvGs@*-Wg@R?mRT_tWk9hx3 zBC+E5XS78hEv!d8;!P6kFu>%M8gs-pky`)|*%a=+!5B@~H^ z^hKZ}{v)3|ettXKteDT+_~JE=0p9D=9y1w0Hi~xf%qfJ^OgWTJF4^xElPzqe>NMv0 zv@8nkZ$#`rMZJ$k51aHCj?vBxIcqgd4X~Mil=u{fIT@D~ruC6|@{kDX_tEQZtzTA; z;;&gr^Ogdr+fC7yghKy2XbDjFDI)ktgLT{hUX!kE)Aj7cao*V=^5AWp{6$It&@1g~=8&^JGN^R-}v(*>|K48Oz3kGw3*pkSc8ogbg!HyvCsK(kaHqYsCsYpQcu{~&E68-I| z!NQYjYZWwNzcpd-EV5KYF7)zwgQ4p0lO#peufeIO)alzYWhdsE!d}_qDBUK#$PzT^ zX7!LMm6=warBM_t3B3c73>#>B_>Y##l+P{)8vmZHvN#50@d7d!ruhYWjH=_xX7{8aeiE^hr3h) z8hs~*{UwMS7a-}ruwyc(pt*itwSrzIUkX2m&W&ZBp6bT=z-G+YtV9PR0!+cbn1O{~ z<&TL&&Fk%+@*qS!K$5kX;vt^G&WuasUr;u1lNO(GPNC5_Pmb=VCno2kIkp)0<8CDU zfNllL(Zv|crN@KDv@CdGGQ(xs!+@E6L1^;u9c?u&)Hhh-h0ZF=yn8#YB8x-;l1A&t z_yp#31S$F+;yku;J>K|_RlTx#fG}!A$C|zElcXR6!0t7eDaVTi1d0~@FlLPX;BD3& z3kT7#)l`DtHF22|WKl)SE`T|=?EB3z{ z^Mh_202RaA;6&%DmM~hn-@}meGBQC9#gu*Ek$k)q$bMZVY$>InQgmf@+5y7>e^vZ7 zyUI4+VjBBQTq)npYKD~s_Y>u@-8_wm_(^)(U7F!IF8kb08ExQ?S@Bss6QSfoI@C(l zSTHfM_3pIt7+Mn&{2u(_-6lfE))2;uH8AQaC@@mNSk z)JEVk9$c1MYFJpqs6imzY87L;P14Il-kPIyel|Xz5p_mKn91LccXKtrk^lOTdB5Aw zxpClaY6IBX)#p?o7}Cc--!*|GApt$6V85fyHZ6n8*F_2z=(UfzPko9;1}+fr>Y?T4 z)1?1}KQD~gSxb<`X*0^7=}>*WRo2RYnf+~aQ%4A!JGz=zTDAT>ukqXV)8ty$tt<+( zw2#(y2Op*oe(6K5tYID{BM^k@v17|+e;-1(0byUUbx1y-3L<4(b?fmJUQs08%e)V% zG_dIBk~91UqMijs9!qwBzwiz@5q)Ga3Cdk)E>(6t4GRdbWE?7hDPxKoQRs@EH!l+9 zVP$n?J$P<%+!fl=Id$#UZw7hmEy-nr0=18`{wz{Y1zL<9sGhdZMo*e#!)sEW`H7Y0 zb{}9GrCBsQO88E8C7&-&Lr)bMk~DotP+Y{wcMV`vjz?V71LKos{!T9FqjL{_&6aGn z%S4l5F}7t+?D=C9M(niTUkrD`N{A1(auud9(JP|dT%CKzwo@y?Y>6j@UjVu`k$|Q# zaG@q)IatF%W7$u-aTOvUy|Zd7mlIg|pA z$ZW?bGgVq^i9-ch>PIvnClYMAcb^%x@R#eLNctnr<&9@to@ z$#8*e0bxKCxGFtrlU>SwR|aoCPj|n>L*(0=yPs-&pLqZo?(@;jgk{gPer6$Q`2e2J zH_H@__CZ$2t^*K-=(0;?e-KgX;KTUx&vLhD0^S`V?>edsrHelCubcQH^7Bt1FDspN8r6?roc(n7b(@+N!=wSN|6GI|!B=l~l$%~@aNzHZUq9*B4)o?2rWF7Gwx z9^9BeWr9y`!6?VzgX#`-5CwQ~a(lMh_hh>J0Yay>qHLWjz7au0qwd`B+&08pA$+8} z=h1&TDqYAa%T#*u72tbtVd~zD{4?4Q(aAmJlArC)GD~iZ0gb*D=5RKKKDD1TEJBTg zhU>j>s7zF2v2p1L5r?jc>kw-@TCQl0fQsJQ9{EqpQDA})aL}K5M+jc4|BlzD4_mGx zfiu<5Ghl{nxh=Y=8+3wuJj4MwJGxH7&aZAg-JjRvh(ZDI+VOk=kMq(6jIE7JDemXm znWwi%9s!6vjP>09>!Ws+m({BMpH2OpmHESIvmLWo{VR~lxG&(<0S_tL9jmO3yk}<| zwQ%egUIAL8w9>gq9$J18q+q0;`5+=ro95vGjuqP}$*)Kz#gp=+wAskl++@WX!uu`o zisv*8`{vMHtNuF4D!gtH2vBLZn0a}zx(X+fF&?|d=o4iDd!$~>a1%kK<=|u3UH&H>ij~Z6_g7C;P}@}wtaOH)i8aR)^1_3l>a{Pw{1Z`D zRW$@DPDL86SL5$~OLznFSPvOm5**r26;WB$aP}i~&pz07sRV2w37V|CPJ3VJaq$QK zpv7{g3f?ZH{Z6SnmBB;DUN@r1C+{En`FDQsLQ2!U@zvtm)To)%DYg`*VJj)tWZx4U zkpr#&#}S4t-aMz+I>9f7R7J74cZin_!Im&gG7&f!j3esDYzP)=F*k6vl^F3f#zV2m zROlhA4I+ec(NH`5fy5H<6UKf(~CbJrz zD;MniJeH-05AEu7(@)9Na+#U1`+U8essCKeXdY3YX@ZQJu2WgYnc4zjJSwzE`c0eiAq={KK zX3{C{f4YrEziPwfXTzNArdJ3ekgeL1Y^-e(Eb5tH_)>WVP54zVqes*^jS_%m&Kr-? z?h2eicGk3Fc*~#Zb#l$1$tC6e2b+a)(oor>ZI`k)&)48|##x8=#|-|v-fOSma4Eqq z-mYUGkNJl#l1*e59B^?o_+YvpTntf52@l?axsJeNima@WyrqqZwWq9phadbfv$4Tq zerUAT zb)81uwb~H#OQBRG7d>!n{p&2a{5Kc*|5w1NhZg+PGGOftkW@2q2HVmbjAi!wy}46I ze1_D()!PlDZ(0fFl(UcFxdah~2w6hW;PtVhz;W~6C&0iW* zPyE_YhZ5osS$g485j}^7iaxS3jXJ~C^+~815Xo3Cns+>&Q9!Na(XPvjo{E>37HV1f zL|(y)g$)u1=7iDZVGJD`i+R>}bjX?Dhu79=N3GR0BJ-Fp%9<%bU&+62Z__^v2EQ0$` z0?uUtQ$R+T7YGvNK*b<7>zLtRY~<8uh<31wENLWn7=)@bXBX+yH(_JCezk4O#kSgy zR_0*Z?3`&I6c7aU6-E+jr`;j*)>!OsI$f1YAhwp`ewAPmX0rdvw)45>!j!U5R3FsU0Z zyU+W1!L=yO5lWJPcDT?Im`2V~V{KQNdrZ3Rw?V?X$$nVHR?_AC)cF~Uwm~nt7x>pY zo)+Ocwgie*(UEmIFfTdeLv;iBokv*z6MgIUR!G%(eEZ@fIPCVC3OVEM2X&vB#2g4_ zh<)=u(wsf>_3*Ya+qR6Om--NseT}2Irgp`=jqNFS`zt`MeK*Jv(OHxI5aQ-Ba(6vb~$l$`8!3MR) z<;oPXg00%`oO0Hop*2R{W3RR+$yqPTb{3A+%qZqn8d<|mPUoO1Be9rjA8_))|JT(3 z2TOpQY|`xUuSRoVixm=W0=~jibO9r}c)W&l^05*-E>%v^Rerhl>Dra8mPDPRb8dlt zSlsH%(rq~GarNgvZ#=AbL}tRj#*8g{gPoCAfl-ERS|IG+U{wFy&E#K$3pvu~1I4eYKDzg>EW%6WZ3fI()C4~urQF?V+R6476gH2&d(!w~VPcLy-@aKBNQ&wzn5*>pljF8>wrH4fCW{>g{D-}-zX z{kA5WeB&tWOOr39*RND{4Tlz&_?HFH0NZ3A-OXU|lpoQxVQ}t_kIzbjYyGQLC}aeH zK;!l;K{q&t=Ufb=t(Bx%bsCoPkO58rA?$R?XAA(aNzBm?g&&IS00sRPK-CIm0A=}A zpm_c3A`BcWYG3(pJbUU*7Y9V&9CsUlm*2&l{I zQ~Z~0(F<+0SN=E2euHL`8EM$j0IS_>-+OpQE~k>+V#nQ*^;{MARlM!KcQ8v49D4#0 zKB!N09-1AZthz2k4C26ST3`b@2R6T>*zMU|PYi{G^Nt(E7<@q2hoU+Rn0U#OFVCb) z>KJrxzoQ+faO=u3{<(SP5dwH@;Vw3!%=B#ml3BdGM$kAOFT>uJZ+5Rge;W^V_-=8k zb}M%uayCXl)-1bwfHT+i(^T?cQ5?{u8;_+QHwDxZ*Qd+6?8t`9*_e4`==kA;&ovrw z(#^l!dT`{c!_eT8)E^3B>YIZqr2lyGl{Ktu?_qvqCLby6THO=uP=lvjpZJ$1{q}{L z*h;z?K5?Vz(Pioun=BluAw_kD?QYZKcGU#!5jPy+Aa`(l)__COW*kq6YrPZ`b?`+R z`LW6T$i-SHE^0wE&LjFN!Ny)0Fww>ZG|ikzwiz7Ue5sq)S1n#t{7X;brbpuwoF7^D zaXJSdzD?P3cTc1r-Een!M+ehdd`xDQWs-!~OozDMg6H2^bgx^KlB7BJEI1K04P;;W zpOSEF8EkOfY&Qs;g)C}>-m~h>gmvo8n^Fr8a-9hI{Dh~*-|t@^ z3Yi3M0B66?D0rl~P$MyXkpHPS@?4_B*cuW0BjS#IuQ5S;R5};h6TEW7gaS|`NnnHm zrj9iAHU$VR7i{5)_zR?MjUd(@v1OE*(9}*`y~DN07QN!}c_~#x?W9Dingth5 z9)W#P-;oi;q0~ZfuHedm@a7MyE@kZvn4UrG8YO#)I_H)@J$P&TZnk2lq%tI8PEU3T z`triZLnJ`u<8QD(lVu&@35ial;s89*CRyd=9216_0FCSJn1K)5TpFVsDm4@+4i#s=lP>LWeE7Ss;5=VC6^^HBTI1cSkYU{X+YhB2?WZ`Idv)VTl9&7io4O8C@^dNLR?^TLD z#C&Y@65S>u*iECH*JwHqtlB?33j+UF07~1^K$8XMhOY?^U;^EjKM)z|2F&GF{pw%% zI%J8gmEcat_}ec*`zd5huyB;WrmqIfa4pqrwBnRZN>c@Yc}LLp z8hpp9L?~atD;WHnFs(ebtU;nH@1)!;WpJ*CZ>A7e?S0$`sW4FB|1pduJL^OyGFtAa z?Y@SkAI@BKCz3yuW4r4%qAU>6N3<_}E6(Nv#oZgAm%3&DNuc*}Q!(DdhAj|)Y{B&z z{$95$hU#BP4kB>Ml&Oy+ZR}u5?pnS1t{*MtruVx6UUkjp?AN}tnzDpp6uiI(Id}z*Ba8YL4F&9?m2Os zxrNKLfzQaxwS(=jAuZ?9p+Eaqz#+ZfueB|!iLUNOUS8w+82q%=71!~>_FSex?~UIB z;Df9c8>di-ijkB+FXgk#_f=L1$2cU3Gv4s4F!d_S26{y$-?RruqYx`&$i_VMJcAhZrvD%HHPS0D&fa6#Bvzpi&97|{|i+hR)i zTJo9ad1Aq~;>7aUQQu4UvK>tVL1c}ct$#yf;W9~iPQrejYd_A9@z4!^%bHK#knAAQu0Q=n^)Jq`L77nm;RZgGNuET)04x7b zl}a>nQK23Liq^5D{~*V0iL@pXFLZS3}(iu1f(D?ari+S!#?pjQgcUh;Hr9uL_kan{(#1 z%Ln&^IGT_ssnH>;&MsP51l$%iRm!o+YQ~vL$>IHEcl#%Mq^PYt;WyD6|06I*)_(-m z1_)ePY7m=PgfNS80IN5|DoVs7tIRy+i)@npYK3~E{>4eujmmv);x~+S)fXWv@Kka5BKdtqpb3cS1F2=4OE0NIqDuC|6d-R`6!BU&%%U}-6n*Rj; z9nbrMT2c9zt6m+*1Mq|SxEMwKne_$qw_$w)gD{H({VY;{dER96$I}W-yx)XuMl8&@ zm7+ZNmUhAt1PEkgh`7n3TJ(^4(Tx%uhXRIsh3Oj?nzUD=vG}6~KviQ?=K7Kto*ow1 zTJr^~8$?5Yan+r%k_Zvdhb=y~)zXkvX6x4gsg>#8QZdp7m70fYrXW>NqZS5qW zoNr&bzP_bTnD*a!GL;Ik0Q-Fr&eZ#!W@QFOE@ed~keSp!L2g_(L{TpKwz-rBx{%Lp z-yzPT5x%}ONDM4{*stBeF=mOF10cCmjxS=#I6C7ew4tLv*hY}>i67D)%eMV2nKZV; zzZPG9R&Er8W8WV-zAQ~D3DI3Jk2%X#5|*|nJaHdb&wb{C{Lz~wczkLk z)~ps~URLz*nx*x1COV31x(P~0Rt{@>mI=B}cG#P2Wvs?1gwseslVuC|lXtQ;0H01P zrN4Gxx9>_rhN!_rsGy_do>qTj=GY(S^dqlV!kX?ACwI%B0hzC;U4CqkTrv$lfC^=r+K^+GlnJ3+}WnV@d9_rrr6qK}3g z*nZCLK!n5V-*mSGZ~nYTq4w(>*=U|DaZnq}@o#2=xv0&LlxQ(?10nG>@)YM3^l?n(}hK9!{OJkC4H)Mr7fE^@`Aek3*XpQZnS_e>+*0@pzduAzvOBQVDE4!XfYYKR!98uG>&LpI938xL(o5>5?i^{5H_6oWGofM?NL3-}4WpGW$&WfJE+y1Zs%VGY2 z&TF*gDimj!|M)KfTMR+w6ozp^+8EWSMoWFaM^Q zDxbZ?*;qVmJRClcq0$4-upkwnh5Hq<_6HeRbP-3d0uo1WRX?OKdm3r01B6Frl8!um z;o*gjmlHa^(Ps%bO9Le4`-$v(WD$${gC29~NLbi!?B!}M^O#cucR&56q&bj5ND#;T zw&a?uXm@6kuIj0(TYB@Hte#4gH*o$D)(zAVZjv4qTR=Ay2w5FMYyBp zK(#W~-?n%_+d}5Pd5t^?4a@v%DAYjE$Hs|8zOSImi^ZYx~t@gf+uu}H0 zIgAQbl^Y$c`oz!Lcmx?11qLjNZUM}Y5UzI({7vKgPd)A|8lYv|C)k$4!9cNgO(|TL z=;JWn5Plmsrup9}48SYUOiYs9EI(%w^_oMxT;oN%vlmqtH<7}A;hp_!7=cL;;T5>O#&k$`j17=nI&X~e4bWmcIf(0%wCqP%WxV% zAFu1hexeXO$|fAG^M3fOdNY_*y8KItj4E#N$x z-_7f2?(mU8e2Y>lHPzLYyHx$nz<0xkdRwq6}wcK;~VQDpEL(?$QaP7n+W z0p8BRiA_>pOTaLx!H}b)fE=B$YTve7WHhaTZ)>qY29pysebVD$FT-@?LjQ9Bx?$%) z`hL{*792GmdN9%!dUM+JTR-yP$a4lRg;fZlnb3_qhkEB8HOvr2D8q;n@6VETPoS9f z8SIj^HSgKIawKyipTBkdd_i0hK@^e9OS@ObMAgH%9H*Zh)BUndvIn5SFNTs!2w=J)E&~dqjgU2SH3pAhfA|oSK0s1Jww1H9w_g z@P(a8^jKqx#DRuFD^s=CYSNmaf<#X3 z<)rX5(@lUbG7?a3l)$)^ln~S1fhjCZ4bn!k!1lcyU4nthRO#*AxR#*S*!Fw(0deLC zt#f<^({BBb-_QrdWKzrO*xE~|KvZ$CSm}~D+24|d%f6ui>=;0(ml#BPsqxa193%*0% zVOCl+w0sDv32z)R4zQYNiss{ZE&8*!A^61h$grawZ&BrI{OW$~$GH4xkLBJG6ItSe z1Y6avo%%N2-k)Ge`HyTzKVZfFg=;73MV|BZ9Ha_KaZqiz!F>d4@rc@i9sS<#T53h_ z?fWNMRSX$xyKj>xAzn3W$%_7hiIjl6 zoXerfsAyUW>r`2|`X3F>+7~z_a=(e#a%7UC>+5VIkiV{kcLOee9jtM`~i3Que>8P|i-T|5O(U>e!^tM*c!bvg&ZTYad#? zK7DIbHda1VVms~2zkN^7s)OvU@+toyTvmn*=%>Jf>12@&GFUBZeE&Wn^nUs?*x2uh zT_K^m>zVPCpa@0&{+w^xTHqxlPD{G$?_Kaqg$yJ{!+tJ~dQ#?1*MLrZ*n%16_jPNq zLoe8oW+-cFCU$+ofGon!TnXWwh_DGN=L1NKMFBXa5m-O($%5lVZ1WB|VDnxXc!^#DC zuNk=3t)V@}aI0XkP*vCLszrJ7>I&o5N{UU6A{xlvP#l4H$gz<42yw)wW}}+ca|M5S zbBZZo%c@CQd-%KQs_WW!J+#9kIUPKF4DUMPYq^bG!N&;fDsTGV|zdmAy+ zu;Kp|k~!EcEn;>g6=?p4;jFG0`PbgQ+ed1pRu>IG&taqW3~$NIVBMhfVp2?T3f4zS z&ds-SQHY(a+GK0py}%m<-z-QJf<3)k+j-`z!*=w-e8vqUyw7xtSVeXSxJY|c_{MS+ z{ym^!&H)P51To4PN;sZSXA_Fdy1=Uk3b(k*0;X6pYuYJ#cHQkue}HG&&sBH*X4qF#_V^1a_cCx=|C+)-qZ{VC9#vN_W>g=^z205T(Il%xg4~wl zejU+2erILj_K4)Z`iW;Jg#$p?idw+UpM-E$zX7~^Y6Z{ zL#s$bCml*583xklOUjoi^riGWz|f3$$UqG{Dy=@okQJ9ml|#jd@df-s4+t$jaJFn# zQUWC0EoJa-=>-2C39>=}2~+MHQy^8{{Xd?*f~(4|Yj@Kj4bt6+q=0lvODo;oAl(fj z-QAtiCEXy>-Q6JFu1yyD~+wf8=bh=crgcDi8yY1pIX^DRXG zo4yv(mmt<c8jkG+Y0H+e!@Xs#q4;F!?7XX>m>)hBE z+Fl0)L9nGCglJC_UoS5PKecq2ogMk9yL%=x=X0Ct&GpOQbvs4~*pAIfqDXHin2bxL z{;s!uY&37Q?;6ezgo;^dYIy6_yL;|{0L@UohfENp;XLY=xAYjJ#NL_P=&QHPPp%^) z?66W)hRNkkqb`d$`ICw!#`R#P2rrf$hf`?})D6{`xd%!(67MXE{z^M)GIi;&mDV{? zX8*=13E?0o?s&u*_9$KpeQ^rEwS9yOjPtzm3&F_Jxxnp>6!@n6I#;l=q}TZ8Va`r1 z@0KwC$K|O4)8z~)%gh6$LU?1P|9XzsXOrynBi|iBDIfQ01sF&%-3WVS3w7awM3%z! zdw4>411gKcq)JpdCqAdndU*bYfNH-A62R^u$Hc2=(1!Jb4g$T8R&KR{KiQ8@E`fp9 z{+M#3gil5&!bg8Ju-@GOzjZH7oZ63FJL^{iInxpo(ZhJBU;$aN(_!a&BzY zMfZja$+X_o7n>sK!r-}#-M1eLmQK$lWm5>7R4064i95Q%Ga`x^${|e=Iw}vKOUp3l z{YGM#vyQxQ>qtXRinChTMp~D!Tf?6-JA>%4wKUB7cbEzKy^3ae#UbH@D=0VG)tpZB zBaD#3=Lv6zPy=vWg>=c?oiuKKmOY*YwqkqFrjCbvY&S>(l?%ZR87YrijAx1JNT>iw1gEp;8qyx=cmt_)O);9l=$dr9 zq$Zq6F4~@wV$Qxcbg-y^{Q$^yfQ&8_i)IGPa&eoO#6t^Iyf{_4l?qu&*+gP|YRdyT z<@E8&d(wXItrOxQoFmG7W03PoP(~%Vwh_r&&^H`^_~E;BLM!L~yC6uNz7Z*I67G6c z`Re=4rT^k7t@h_BSWb1icx-CEW$=Cuga--BmZnYDlRaFQ$a&a*#de2fqVkqZ=o_tE z-hc1M>yvxt#WF9y{Q#VG{FS-q%7^k>R^m3e0^ex!PoNYaHSq*t2w$8;fvrdP2Pam$ z#WAzm3Bum-g3cfP-=F_zW>{KOgbq0|Ht05}9~1ldW?EkaMm@gmhf-Dxx{*M8$;=Yo($}l%VuDH3;C;yX(_)n}Od*`($z-{qsGo<*tQj^G?lJ?U)2!1M+ zqc;kvexR9w=X-+&?Gpi7C@cYCf}F_XrEUr8&*7fHS@6YsE)@DPac^KcZT{NgT-mv& zc3=y3#MT=L3h%ro+82pVZryzpooECC0AK*A}+4mEL}01=H{Cy7)EufX(K z$W&C*N7s6`JS$ib*N=g&Z-ID^^_M08rVrS(a6R%b;^(CY7ZgA~mZI2bZ~X&bnh!os{b zaR|}~KA=Ne&qUleFSv%BI@m@KX;0y;LlW4;Ozw(;>3~Tbl6l(j0 zPlyr^*%llX0zrnBAdIj^p$hVQGLh1?*}}&%Zz0i9*>k2i?ZM-#bRi-yN`K+R;ONA4 z$Bn;x0xM7H(OLJW5IS8m?zq>$O(n#PacrL8)|a&RKd{fvP>hb%nJ!mdx!q(ZBB2eA zRzsUgO3B!7lY7dK-h&I)g65A113ZsCVNL@t6mKLtXN>B8Z~S3W0xtgHr*+|({6d&( z`1fIgoVI)lAzur^yhiYvunkfl#N#VvdxA$~>TNVBe%@K0=SbrqjS~tzRutZ5o;mmrmSKA>p2xFXp!=B>EHI#rmZd z(Q{EK?x@?XR)1zfmZhfZ3qO4Or6~dqt{!oP@YdFY=EKEsC~fRk>#{2BQRN_g#v072 zLzv21=3u3DloeRPYJY~MMUV@8Ji&M1aG2H5;gG|$5oi$ z@O|-!!xma-Qjd(%r<7(@xBA8~Lj(W6eGU?G^iA*}DFB{1xFZMzQ;TqM~E z!tNn^UBnk9;im?|7BH@cEarvK`1FwLjwwkw!ctV9CojGm#Jlk6?+RPOlj(SQ-=FDp zG9Rqpl|s%++tH@}mrGciEi_rRs(~fYG|j7R`_mRYt2=YdJG*b=__UczjsrZ;Nd3Aj zY1}d_@&=1i$)s*wZL+ZNhAay2fAcV_Q2s#RObf+lwd2bSC6``oe#baYUGGPsv4?yB zT5Mt~AT`bu|6wp@gi{$Epq!RL01W-wz>NCp!^QDbW=%b5Rx2jg&AaqTSs?tU*Efy7$hG9{8@!tkY#1l6T~k z!IH@UnAH?ivmajnBM76=jSi!Bkw<)h4Bl@vNwDE*asG&cSC-I&?8)Ysmu|-P8ME#6 zYgSp%jc{c6+2*xF>>9RiPRFJh;ERH-Mi~mKg z-eFe%R)=*tv%?mB*)|$O>0S4N_$U*kwdoYAq5Qr;nj0-vMaz#4afp%$#VG=5nMEsI zC#urg((dpIahjWmQK!G)rUcPSj!|*qS3h#d{4Cb&+WC0;INqDelk|*EqhwDy$rf)d zpc990FHZW)hEs1ER5tuC6Xw60v}qWS?tJjg-Mt0o-@AgURjA;*(Fqr<$Ey)qesQ2z zR`*npAIFWoAriV742IQC&RT7n9P-E-70DAZO=T{4$5-VYgwaQrr^+aJ}1FlD=bQ&{NWe zG8y5ZHXT>LjAtXGl*bfpHcd6N8W9YX*MsHKr4>;o*9zPh_J96e7^K+|WMO2oXw&uQov^f@qZ&lvsVuoMCe@epBh8{-2i z@hfeA1+r14m2scfIN!SpqUlHtra#QMY{h5uK9~W?%RrUKZKReSguPb}pyR)*kY7T8 zAR^xJJ=l`BwB)KVNQ#KQTn>Ie6eT=Fbid^Xxz4@~6{G&zZJn%ddp;uKy58|9aI7~?)Ks7>^vyT4t0s%5dRx4Fa; zsc;hI-9f@XR-!le_&a0#rF5A+>1hIX@QNdn8E#`;y6X8mn9$CaEN(#obJm33zw?G= z4g6Y}DPVY;rd7{QK<6&QNh67OA}JGunITK@SVp zeQ&Zkq)Mozgc<%Y`XnT zNlKeJI~NNZ^(P*yYm%FTE9Y)O{MA>40(~$t70-6R7`~d=-{m8aDrep53^3%9+p1Dc zsxlf{B(3kEx;C);Po96DTYUYPT8sbx$^=f@&w9z8Cv~_{HFd$RyDfAt{LEpOUsbI0**`1me6I~1IH{jrs zE-d*@u1iAPFtL3f)>N0uj$VgY; zn|ZjK6#P*~lk!SWd9M~D4BQFWi(!7!9gS$=ZOJ`uHvC#d+Xx)~)_#fWLbku~v)`wT zb~xpfZJGEbP1%Ym(tw0a{9|q|j^U$kE9*<=*ME+c$*~Z}%IEc~#k-CA1D!KB5z^0l zq8lH2?OkZz;48x6qV_7_8+fxH?%|Vf6DMwtc(tn(;HV}dBVN3d3f$*Td{17ZsPN!F z`_;Bsd5X?{5aI8j^t8hh@FCmh1pXm{#u}E&?un zbTDFi!c+=(R$sVW%XPf25@ls5Um_=&K1AH+<$F=7!b~)J_Q{WTQDoSw<{rVZsf+%l zg7X(c_@J1LQeb#VADGxz*-d;`G01M(^S+_hL;bOO@3SjcR<|`I^C$AYhEec_NNL;+ zYe?TAkLCwP6WJTlFX9Zs2T|JH%LcieINwSvOg!r5`E!-y`2NsBzwP|;Cq!h(hnvf4 z8ncdp_#)5*Sv6gkqw>#p@vlB2q1WfDdgR`BlGv@aTj@Q-w)c)=UAaqxg zF26emdBv|o_BYGQv#|ywp1D(jgkRFqX~#8_C=D$oq6jZYUfl)){KCalwvrW}EsAQh z-;wLhOujF>o*n+3qAc~>Rb(>uW?3*f6Hr+5z8nWSFL#^dfwRLu4?^}}$V%cBX=f(B zIFnTL}YJBY*Onsz3e%j&ijAtQcWUJ8fEk+;{DyZZ%Jw8{@?FpQHBl5nggU9vDy( zE!{VF1G020DV#>zIekGRabGay96v@%CZhCB@t)@tHDn43e=@`{=+g6`(&d-TS7meh zWVF*;1%mUmT~2t9>&8h-((_C9{cmz{tJ8_Tf=9K_5!6l+gL6?6)DyI+G6R}{_t(Ce zuWius4W!X)1J<3#mlbv^0g0xzE4WDlqJSXiKLk4D+tESNCb7=!6X`j*kiG3Y>xZ-=u@eIe4(cHyPfP8y#sfMf*<0cU<3H_L*S%; ziFf3Ny^=3*`0^o5MpPsj`DAW3P3R3~;-wW1pRJL|n@J)aG96|2@Ur-2s6EFZ`8nJ6 zrs;l$$JA>H9t-|qgeqv{GZ;4vd^05{ zvygT%AiIzv8EsFbK!aZPf;6IN(;G)+mFQ~W@8roz2gRL(q@Nri#nt(G3$nckHE_QG zQ#Zi)+Ee^-=X73E`>v+8cm30N!2oMdPHl9waKT61M)b#VWO&0|&pJZxc1U0p==4ghn5UWzS5ob;dv}PWxkd0Lw#@~YNcE3dyC34s*EMr;>cLg5y>V67f$FTjY-IS0 z)7Jn*2>jG2;vLfVI^t|wKLEAIohRUITqZlP@3K}E!)FTuOv*Y0U99Pe<~N&iUv2zR z^txyeg;+*P|S3hrlJPntKetvRQ z-G|uzqR9v9KKGDig4a8Aj{bi^o}^+aliSW4BU~FX4d;{V3O9WH<67E~vK79Ds)>d^ z_@nSUz4+L>x6VvIT@@qCA}u_L%IGqJS@evPGES5ZD2x#aD)RgI;Gm-(h*yJ*-a9g# z>l7V?#W48m#I{9#SN(jI0Yj?T%#%o6{hKlS{lf0+AMz&A7w9A158f^?({nRUJLrELJJjSetMmZ#TES1fGetjTu zOWq0{&$U*oYuR;|9rd9#1=2nW74*Ko)Bp6qz-|jLUEtcW4F@p}SSKB`^tvR+0@;KI z7&s`Yiqhrq)>e9dLuyp`(sb@$TDPq!c!4J7|x-hk3 z$|JDe75y5t6OyFV%H6o(pT7!3uRhQ~`W}c?zQFzfP_rb}lz{mCr_hIs;mg+83qI$|0Mk_8mEqn}?ku2_CKO}qoNmdNg zxz6I24FjBuEGAL~q$@wt(Fmqws5$bd-6JHwl_VxmC0$giwNhycgQ; z+!BUutcVRPw=L}`Ytly`d!P<@qjPgY)Wlp2csA5+0r#~3^Hs$t*z97I=aBqTh%Yua z{d=dcQb(x7JPTP|0|8IbcBsZiTW{)agQ16z#-itqF-f5JdP02Mj?4kJ(UI-nvbY-=M^759v^pv^k;stBoWq;K2&3d3_N5T zcNv^@)B}^g_#_M-MEohI)2~5H)PWD?UOdfy0~G9q%_GW|&Z8%nvBGt}=3`0f_D~3I zF1!y()E2$C!uy*|PJ_)>5dmrZqY_EJ-`$D-TW3H<$G97y_3y*C=dm*YT0Z`@725Lr z*^0HOAwBwA*#d=DNPmk_^=M4#d)H7_)y38CeXZ#|co^0bVqv%-#S&U*2O+Kz>k5UfZ7pQL0!$GyK{fXCY}8luPz0Ju~CpSca8-_kUJG=0Zi6AR>;EqM>JrGfrr>xLyd%Q>y-+U0^icOtS+ ziVo%APv!mV)MGK_a1315`SwR_x0W%kk4PbI99jQfBPGx;UM99m z*ReI@%fZUM;uS`0WG_3Tns|I0g2p180q=IBNPWHx{*Lp@fF}bFRT0Uj*Su~>E*@)? z85=;)n)(Yc>Va*yOdo}6e0g4jXmeiOvkdv?Hvf*}I^aJz*1k3Pj0`)Mh12-hG|)Q} z?DhhZupux1F%J5vnmZ8d*O_|pbq@(XPug1G#e7R7L5ua`Z!>oLsZyml$imZ8uqXgG|IGTc?Q-c5u=imOhcxd0{M_Y6Tf7>S!^Eu4kUO{; z3D$#;ZEPG3hb&V1+i{*|h*?3O-!Gu#S%R#i7_|;ZTV7Bn;630Lx0*U;kNsNa59rj? zgp#pGTq>u-;ax?^w|~Vd2X8de&QMByb77TF9hVa%`bYws)$K$TnR$wJ8B>M3VXD|N zuMV{j`nt$IYSFS#h&c*xj!h0n-Lwk&mU}|E6vHvbZdi6f^CzspAmUf!QU#lcgYIXR zII*yl7wpcTKp{hEH+}Q*m{zU5K07C~lO!o}3?I_#@RJSJOMw_u&<-u$0-l1c*~7r{ zngi3?{lGpq%)wV&WUX*1!KyuWW7eH792Lv438||N6-C_QZ8M@O-YSttenNyL)(4#+E!JVI<@7NynY+rom`Sd0{b{V&{!hJ@~-sNuC z-~zkS0_hQHEFvTc^=1hu!V(g4;&YE!Th)uDrfVN|Ec*-06@I9Jj~!$!B2n``@O8=z z`7f_M@o}Si%uQD{B?ApvtS>@t_PWfIkUEY2Crg;h=(CNkdD|ZZ-h2j|nizaUHFH$N zb+jT_8{PfeyIEh11DirbgTiLJ(eS+k*yZVV-?vPxhds|((N98F_jo7gtbPG ztW!UM0=Pun`pw5=u7@M>JJ1nkeUPPAZc{BGQpf|Wg09VXilu+V5IbZ@$oprY6X)4C z{dqmidty-Nk!<_7qk=HpTNrdwb{@p|ZKx*CygH;H==r%R=L?UYL$|{oxL^GI7!?=r zQ;2@7eLbxU#9~g1R12e!9U^tySRx%E4|KE_mNzY?7`Nzn08Ch3*o@2|mZImr8T$Y0 znlNVk{wNK_k-CiRjqN-?*V6fZFc%}AMNUGIIOkTfla%B8WZ_)hu7kN=I^NpZy^)URCZU&EV~dYXK!B8xOMv@ z&0C42e5Y~b#e;jK@zXCAtBTOP3^R8{3FSgsK1o>PPliws4_G)A>D3+m)RObpmE}Jg z{@~&r;4Kff>pZpFhCm)CpbZ#*OG9;p$qeDcb(f4p{hN9AvQ@v<+L?%tE%_fOAWHML zT%r@P4^^RB&;4di0>LAUB8t&MY!e36%Xy|Di8}`oiICtN@_FHndKVzM3H&N?hB$#z zfrVnYS|zgDQ(~}1F-$e!R)y}oDboR^X^XTKl;LI%h8gfSS;3~Q z75ed2Gl|}LeutCE#>OJf_f!dkuR5)VB(IT@miLtSFekX1%N^@iqGtH>IorexjLzK; zjeVX2I@&L5W1(;+-_jMpGf|@ml@N*Me~UJuIb=<@}b7U5lwoa?l9w zUG&-aGzFZv?k4;ZWQPljU))89KeP6PcK*mkiIEnVntzdiP{31ZvK8b^BZIQI3M;)S zTE3d5lv5>hJ}wLbJ2NhT-c6XR0zh`*i}?u9IzL&zAdLKcvq2OJq|~cfC(wynFlN8qfo0q5XI z-#5yn?^Okm-aYp>2PkTley1m30jc0Xm1w@nW1}w+BINGM-o)D1iPw-3d&I}ylI!U( zTA7(O>jp{xq<>TQ_J`k>JXKiCxcPuB+)q?I=XfM_6%9-a_@M0qn0~MrpN$2dM6efj zAo<6a^~cozF4xp+!1tltZlLq!G`m~S-2E?bn|-fkGa-3i!$8iU;nFnkbO4ios|I^J z?YrW0&E_yMmcdTvPXKOLaotROlD0|DO%T~yc6=92au&C%HbuP7>3@)Gbw$$jY{!kt z>stQ=G<6=E4jw@iCFUo;-cpMiYsgEJ7Nq`@@%qFFf0Ey5{{=6a7tey zFiES=0O{w4z0nlpwX2^LU2pad@WNV_4z!@|y|^%k6q}XC6mP;47w-BQsntDC>FCh zo-{^ioy8{{JR5l_H`bBRvg1Qb<@R0|O8*)J2)r)Y=^-R|f5o!AyyKf2?RCD}d}NN< zMbA)_DRs+VEx{0Cc^i)!*U7kGsE%Z-%GC=k26v;uIQ4dOn$T=Jm3pfWRf!!vt}LG; zIjZn7v12fm)g?gqct14SWXpH?wD|4>2v0TxKF9%s{o8N!>6OdBi z74^;5Qu=O6I@aTy`Gq-yycM}YmdlEH@(qaL%3(v`*@-p2GBh?`(VDgD z`w=*oU76X#L6u*HgK&=H<=q@CL_|unarm@&Jatp_=a;`tKr^Q9SO;$8m<1YknZNKT z!s`$I)q;|$zfg?VYxxj{k0lb$y_5VWG@Hds#Xe7TBO4Z%@XdTRar5eKtv$9dvRCOt zBwVdD(f0)=RQLMBfsry7Y;m8zDAa1@)tQ)M1T-^)^Gu+!Dbx5*c{ypH<>dJGvIRqq z+R{4&1_Ewgb+rFv$Yx#t=`r>NU8a8_RqP9!0;{98W1oeH(X5y(IDCOAc=^~@U?2?yk@?trh$e<6RL z074jhP27SbxA-=o+D&Xcx(%K4UZZvd6+6aKN*jCWt438i`a5Oua0c+z7c8U<@%X3i+*`DIA0}-L_|f`} zI9za_w-Be(B*WD)7qp&o3&FH~GZSHk+mz=a^fEQcyG;{qhff*&nSEIuNBoSQOU8E$ zMGGRE={TOMg2b@C8N+-(%2gRJML@B1V(zRj#Jz^059fAvBR|D{^*&ha&&b*-3Zs)AxqS;gy7w)%RSinR+ zP9>$E9c**21~Kl0w$ewav%k7@uyu-NLp$-7g@jJQ-vv&YT8afEPd_hqHa2{5^SFPzS zkK{Z_QWnoZ284|b5&l^H4oZybI5ev4kHXjbMdz~`wCG?gel7B*Vd!XdIeZ7NXtujf zlB%#~Z$`J84U?O>zZ^{lm0@X-6bv#$V*=z>lkuNo>e)?YX_G6}(;--D3}@LQB}43K za8ERCFKkLC>zwvL89l04nT1PTRvP4>uP3}NnE>&>5Z2wE>cg&{_XkqX6N8g*$oTr^ z{AWHKDF38yuXFU7BV_3UdhuKR)AAD23+~fFg4$F36wLe~@%#hr%0!kVh45x8bbUP) z;zX&n<-C>eE&dl|T_k;A6CGT|&GhRc5%7Zinj%U}(SBVlxQS}E-`IA?yJpA7e!t+NL4Kf#=A5mOC5`rRXbO)1yk>8W*gWpYty>s^DXH1RfiTh6d}m( zFnkK0=XB-O%Hs@4ZJcJjyjNTh@lK-=kqQ)388*7yAa!8kqzwb%Gk=Ou6T-3HZ*KB^ zcj-NxO|A!TXq-lC>st3EHyIR|OMSmJ;K3E4d8NGvR!LcwfIl?=lZVOzLRl9~e6@;Kw$tU305tY&X#KHAyhPhhc= zyHvFijglXhSb9?i6POIr#(**#I|}@SPq3twzZ)lM>1l#=c~et~+i=8Lrqm2J7;^HX z`a}N4b@AQnJ@Q7p{faI>*#QT~`b2n<`ekF-4G+hfRasvVf_=9%Rd4TZF}}6*m!^(X z;NPF!c{`ROg}_Bi=vT>cc(K1kUtQ}UMv2FfQhZC*u7q5c;}_ramb-a5=#Nd3vy5P( z`h>RGQ_MMcEdfDgOgfo{5I_6xEjb7#0NLaXKd`<4hL?b3WAe*zhtJ;l0fO$``;`mu zF(J_jd7NNmLQwRw#vgh|B27$)60K9X>(usT3C{w|GD^ppKpPRxVf4Pz{M}a*Hd3c9 z-vh&Ko+dMPH?Sy`iw`d`E%{9O#%;o^gs*9DPvVxIQmvQ@bJ(7RTiX>Pc`>fxeO4t8|DSc+o! zOJH#Azc^GI@&r5C@`@bH@5B%3_^l)_n(pvRzhHI^DKt)xbl+ZyZZ#@lL8pZ>JYhTp zBz-dY?@@x7;1n~{0zl@IuYvb8AeeopchFkZ3hnxgqX5>hvS$s;?y`^U$w;8U zYwX|0KOn4m4q-Xy#rP{y%~X)=1X>dL5wGHe*)_%CLONC7Rzr`abEWzFeBc}8xSutV@(0^6-s1^Z7W6#rCNc$!U1ij8;(V#a zXT7rd{^+IpZ5c55iz}xt?ZO9iqY0lEEOvhKyF-!%C2Z%VY{n%fQQBeBwbe)%8Nth( zDSa%Nm+Wx}@1lmUGiW-8PT3mnul*Px+&#X+n3llV?$XZes@kbsot7(fEiOA z$u_WTV>54lUwMifMMY30Y~yj|lNVLD!=h=SH0!cMxX?T#tq`{)9ghh9J74*LVwoX! z|7qYM5~XM0gUbNy&1t#0Kl2qu{fGo;6b3G??!_4Is;mCeqoB&EM-yWzDIlQBlx*&= zM^(p5Z^WDo3)=K9S z$t`0F+vQ`@bJEtCl6`MkeQhFM9AAt6%^?u|{P1$$61^5QzIqqG@DZ}}BLfcBE#iHV z5TF#oHuo23?p56+VHQ5|lXu}F8w&1Be98|kq0pAZ2GO%C_PGC+eY^D{ff|V$UsJnJ z>qkkTX%Js+5%yPDcx7kYcq}F&dPP2swA^dt1JJYz=Hq7ac#!o$Q4_p@RQ%*P+?B5t zPSAR#0vCO*kf<{UTZEkeWYhSn+GD(2J0s-=X5Z3GB_&N$^I1aOPq4pD!!Uo|{`y?05}6P-e0ouR!<0IRX|WT1Y)}V- zu1~8K?|&+V#(ARRFfdf>35lg9ht51yoyvJdcV9;gA!and_aMBpjO;mEH$><@zqQ&< zlNJ~m0}>_UeW?hSIO4I%5P=){GVE!)r=O?K{*Xx5bB~v}01b)q@*Lj1Ps&~jrFJ+z zjh$YSpawK)?@0mFIFmQi+Yi>d-KNDHzcdBQ|F*t16xs>yXXH`dye7 zL;(Z~&bD7(YWMr!qCA@`CdcTjf~p8PdEwYCL;oESIXnH2>n0M7is>$2U)yPnpZx*| zB-G7NRY!2|kl#NYXQoh=bDDm&=w~}+SK?U3JqT1wEE`0G+8z@*uk6Y{kgJwKRvg&8%cs|~u9kgv*!5k>zi7SRUlP}&us@hzMdBce z;F`CP(6BMxIka1%{PSf<0k3;!gFEQ}UkER77yIs+8{D7y@pp&agWeD=u)nmk{+7qV z7?f7|J#68RbZOjUgP4o?C(oOwTb9yPklh#El;bG`KBf0k=9g|X1ZfZS3LBiBUtpF- zYp5IEMCc-y{LsUZZmYj!@0pwaE_5mG^-5@+&Qt4nUWIHwPYHndnE#{zzz+UiR8cGk z)T(VVREVNRN0zEQ(`13X!%0HKi?SP|MiqB2&sbrMmcIm*{~e7@xziA1G-^VSpBNHN zf(OngtVO>CqZ<5_LyS+vexH3{zI9)GvT=7;z4L932L9%xAiz#hO_bF<<6|p3<6{C?eYozKMdeoulNibPdMe# zjeO^dMN@I~v+<%Q@DHk-F^$Z=R=BFPx5So`vj}&y%iy;r)%TA7^}l^&=j>V?01289 z^yRqFvwiR-V}@-%j2s`0_syMj&0qgghClj#MLf-xM(5({fbLvkv3doo)COwY@`xRV zD(Bu8B`!^{?t`fa9mVF z?>CA0R^s@%qj*CE85;l#le7?ER~gr6S=K<~%%cs1mLx9uLxkY653b2HS`hs`&+H0| zZ&I6~0B=qQ&5y-~t>@)t+L;35g}|_rt)PLHFk`|nwrCJO!4G9}N(8!QxRJJTE{t*OQkg@Rqn9n51#|)Ca!nVf@auP)w!AGI*IsPLNoOy z)a<9(X@KLxJCyc%agz1t)DQ4&1zI9gdJs-MD;!yi^Sfu z3!@hbV@I%DF^^_5IA}SCe6}7AE!0|;w2eCIhd(|Gnkb0w^A8<271MD3Jf4l}!a`}a zly_c+AF3^mQmwTDWBoB17NdxR!1FxWB2)kLKd;}_^8%0ro_#cE!LBdI zP1~X?mz@)k$SV0Zpja0<3!H|1{+KdB_oVrAaBMEf1jeXW>`%cI%#QqSzt>t8?bE_@ zabi6hjqTZ)>xt`<=^o$kAj}WSz@qYRj7lLHrrEOqMiar0k)HcT{ySi}6+kH#AE^Xh zeL`Q6i0J?2<*if468UH1NQD}1xRgZg>o}3y&5SuhO9#bGg?%lRg<*keccNB3@e{PQ zp~LCjNjPrQr(P>M6j7-i^X5i6?SKnU=-PWc)c$oNGc9xUsHUNk=Fqv06irbz|a zdgIkC%2RU<|Hhh~yiK%6wv{7KAgj>Eu#CkQ67>1z=inbGw!In!hi=UUr-+ll z8p?6TD{6@Q?td>C8MiY4JbMc%`9lq?B$6@v(9iaUkLB!UTCQ6*xw7_DY-0Hc>F(0T}PN;mxI3hn-)E+Bj zZr`*(5vEX6c<6T`UwOzo94S!fC8w|o> zMSE+V-<4q7?2+iJuroUnX*c~Y*3Dm?m)p%ypoyPcL1?-<$oGx(y$=K!<>NbmGw^49 zh)sF>z0erM^VjL<-?lP=V=)RzIWI*gM_8P^UFxnvu95|=Lb=azFp#Bs->a;F>bi}w7Yw^B*!mhy!NwK; zhJcCrYoLVhzr9*^7~uQYd>+UeU-Rg;g-my8<=Fw~zUL;#L_n%~pT8%Uz-{Xcmlmkr zilrP$u-Ue+5I*|@U5tolI+Vt;SK(?=zI)Ch{4h!+$$|z=>V0E2HOqi~k6DGzH^ph) z>@_`IdR7ZtzNH7D%Is&Y0~(e#0!WUbRWZa&1xzLoP{Z3F9?k>lZqZ-m7%JfcNL|ow z3!^kVKA$r0Tj(ukFUa~!9i(l#DdQ&hngeRf-`-%^p@dMYMDZyT#6!m|48jeRy8T25Ha ziP1SHe2pB9ap`t)#-6T3rb$d2et~$)G|K1fnWb^erM~lyR)bt|qSFl5eAutcHJE=q z&z%=wvT7|_4?O!(Z({ic57OAW`dpuF9OaLnfQc@e@j->yp9~aue}2cGFfV7&J9-d7 zh#;wC%DvrgBzImI-W@{vaZLRo@c;4jRsm6d-}f*b($d`^-Q6J4p(x$m-2y`h2Ho8) z-OT{fEg;<>-3egzI%}h)vhsR;jP|C9O-iYV`4zRDmE5+2 zh_hLG<_q^f*-r}ert8;uI+P5e@rJL8!6-X;UIkr^SNm>iS^=Y?xHIaFgy5;s z0JgxgwckxJ-g5esN7hMdmar|%4G%0c_KYTHt|hhhy%aBk?(R)h=w1bFvTQ|6V~j=x zWBlr`-TLljlE`F-Ti@5XT}&x)Omw(pV9q2*#^jq=0;(1;hc84JUWxftbgTS}_9=hw zw!4GI*DR%k$*27)b+xdcb6hh%7_B9|4f!0V={dicceIB>!K67V06L@FUYR z;1DZO2|V$g_kylBq<~NjsENlfpUpFq&wtv{rWXyAepj@b;%(otFkDvc=b>nC=r}eFC)*Frr<$r ze5nqLzgTGL=fR)CWF1f$-bXN!^oW+Cq&>G?9&`PY4L@R{wln=DiasqgCyw+W&(l4| zm{NpNoB8$`WqI1*f_XJ2(P-tyxxL;Xg7Gl;iEdMstqwIoe?whGJhcQ*F_3y{P!#9G zZg_4?>s=iFf6B8z@5aNtyC9FBQjhoBuyuFDpoNL(xGryN*beGHu*HKZdH19UYmrUqX@G0N7KEY zW%3BB`)1km<#JZK&w@4>&$8&7scBKpGr1JIJ8A%Ot>FR@E=td&sWV)9P|C69m;ejz zhPJLjqtX-t^-qo9O6r;#<-`zm)^k>GcH5f zCs*8QyYMaBEdOJDwvB400GE(F^QHKd08QgH&Qggi71s>RLo#e1G;{KOyixCOb61?opV`H@axKLok_$3ql&!vG8e(Ng{qf--##`$>z zH;oSqvNJ3WDF9o<*yK# zgNZ+%rjL{4(pN~3>1YiKH&xA?47?VyW`%Qq#1P}G_H|VZiGqU0k7n#W4`@zGn9!Nz zhL^iBcr4pBPWkCxtgy-n$efHi_oksrjN#9DaASXqR|X&LI-Fv1-= zk|pdNpRrXVTm+92^oNt~sI@R7jLkO{6O+A%rdE%XF{o@vd!&a)COhTJoNppW3?jj- zZEP zUl$Cbak5Xa>1eW#Z|VvOV}6B_@uTRoaro^@(5b&lz}4vpgBf`u(%I{)RyE4TtbXle zErWR1BD2O$c@@n9=<(D@-f~%97Bv!2wA)Rx)gc}CRgo&)MO+o~*KQP?a&H-Q`8$?b zwVQzuk>^tD@8kcyjr&)>Abcoz^$e&9I-O`G`3D~Uk?#SUrN%!z_VroId8jV&{YC;Z z0h@tLjOG4Casvz{2OWdVs=#eIyRu>JNOYTD^jrs{q||Q4E&E|{A!u_Seny&R>##eu zwq<=OemoU_R7XkxIdO^!yNG3qLn-+i#0tJrJ&Ufpje%j#)JT(uLbqesfSA)j3iu5E zU(S_;*7f=~X+}{IMLYKZHm51FOAi6X79FLVMCZ02{c8BFNNCkoMIxmr!@&IsfZg{}N`5sKNem3O^(da}2cB>XjJe>E`uF@FcCF6yVs|jT#wzv)S znrebri3sW~cv|_XhG~9fjg%cYwlan4)RO}KkZfj};Ba`HhgtWEg=F2!7#Fiu$NKOmf7@l~vSAnA^| zYBya=->{IRxrqfDP!6da0>ibP>S=oO7vr+j9X9ZL^-Su8DAS2};YRhmL2m4Sx<9_4 ztZkJL8nX`7H77Gm)6tKYo`ulqz2%Oh5A#wVY)TsOQcd|pR$U4Q%-f;xF-nx3)9ocx z1x8E5l?Toa?|)0Eu9^O+e+Mt_{~kBx%$t3-CAR#HW{;#&I@5c*>DQm}PW;&89pjI$ zQZT1HnxW=5vu~7;8ayML)l|hz=!^}QlnuXB&+L|+nD<}r@~De{r{^g={hyAka9aRN z{#7GNysR6d8r(mFD6L*E8MxI=yN>~oSnn6$3=4qw-A0e&u}v#v)3G4J^Fe_-^TgEG zk4D_GBsV7^=q1MPKawXk8)B4fsY$T*IFXh1#@vrT^~diw5L)-WWIO(9$?|p8L@+D5 z1rt%iihDQwwZ+>D5HOVc3$gS8)=@S9ACSM_zrrR33QOAA7IDx2DWv~x@9UQ&^|jf8 zS!ML;_Ev1sg1?O6DT<=;mzqrR>9SNsJiX3uzjhEKkgIH_I2d6ZnrTkJK#)ZFk}Nmq zy?@*DxF=l7`Snipb>tIC7+aX{kNr0G*S-RhD?eO=B}Pojt@ac6*FA&l?N5F>Z8FQ| zeSK|tAl~Be{2F9T+bcrn%Ke6U-9Rr#vFWbOK`G_!i!P0llNRaeV{A_;RU+@g0fh82 zrdK!b@@K}An#E?N0*V#>fcnsC&8`wTGs^K_#0EIEona;HvCIg^C#fZU2=D*!TLI`tdXxO&;;>bK zYO6Jlzgp2r$$pG^WWDAkdH`JsC0&?SCIg=^GqeStPm5NsP{0@bNn_PwpPxb7RF;h+ zVRZFwePf{OK8UbXNkI&FTD94*-BtwvqL&S%&aCbK3x3P_&QmGEU@O2IqNu|`)WI>Y zh%iCqmhp=YUSBSFUbiwPG{MMnx*;WenH%-ql0R7Mb((wD+@dcXobp3QH5`iK`~At5 zuPDeN(VkD+aJ%tY34y6#WT!AKvqwV>{dY2WAsm)>pG@lN@cOUpwavcG!OeNiTNco+ zX$OjM-{kY2^h)2jepjz0-XR&znAl|>B6zjCviTbSP=DJ>BCs{w5dLub3Rj;8l|~7V z0!tvNzqc-?@Hnu;S|%RiJPQ1K~gV-?m;ph`2Nvj(eMmdvy-cMoAK9K&aMzAYYk zm>#9Ak$lCf*)mvaIjrFp)7$kk`q3f!kwON^i!gg=3X$hJ)e_}HFdUEZP+!eodL=>m zowAGWmUDhdhSbBXaqb(7Dwe+%>zCR>jsu*RyX+@m6eE{kLSBn!O&e|hdsYGR@mzuc z)X+<#<7!~wCJTleV9S~wH^*GpymV-=D9GhR*P;fP|0Wz2j~vS?;~xQuU10d-Q`Sku z-=$JvmSRsLrfl$G3{hbgL0=ek*3e#~CyIIV2A4UQ4CRm*3dH4-A(iV2mq%{ScYXWp zz^)jLn#LN(e2MA%s&*(n$}L)nsTqGv@q368yIGugFN%tSDM6TwRKKEhcaG0_S3Bg; z`1oZKFY7vJL&QetAmF^?{^{^f1?=ap`Slu76h)R)Mg=x+ZJO#)bK_jnDCURAv)NH3o^GH3kaW(`?%;pb%k2%rwYy0fhUn!*h%L!hu z_Zs&n1nCeaNJnCIMh=im2alE@RnjpUrbaxdZ746YOyW!Dt$QCnw0?y1d}yCDK87vD z-g`ywON1y!`faiRfsvGj1C3yhjA#k@zcXqT+;S1j2+mzgkEJT*gDU0YkI$xcH zj=kWX{dY!ik%qQs$OH>>BF@*cL5KpIn`&tva86EqF*AnN4!M`bSz>K!xGESd?70M( zv;FvAih6qceWmH_w7A+Db>K?C0NAu4@Q4ts@rBOoL7}!u2w2PD!mCbF5 z4d3$?ydh+3zPGWc{*DwpwE6BlrF)f_Ol=s$s)*)St=sOWy{;kZ-i?RvVs7n+k2)Mu zk1fk!BeLluAT>gL6R4X}w^M_oz+PGrpLJF)c!hf-(bgAW^n-A((&&6YrN>vKkEIg> zS)6#zMRqkf?9nPY06oEvIsQlAV1^Iz*8sFN z0&*YpZPG)v2ohH@oxj2e{QFL3W&(CReeUz|vq!->ae^XbH(`z4c-TvPGkN8%vAsO< z*6$mz$#^=4=v4!;pyyr(MK)ZddjU$>c# z@mHpA>?V8>e#JL}&Hbg?yDPt{%C>X>xETa?N*{|sQ%`3)o3OCs+GSwD3^>E6eFE)+ zinC`j;Djj(d^zBeGJ5?s83{e~ieI;Q_U1Tw(U%s$OV6|$vI|QT@)1wcm{W}< z9)HlI&t*pW@j)+4LX00+CoZEXl$f@PN*7YwS(2lcq6ul7hYQI@x{koi@nVk6PMfkw zG=asJkZ%6OG42bo15t55i##K8Sw`VePJ}lHW#oMss**41dqE#{n>=~5FZ;P1n9CWF zF4w^7-Lo*}zaRhX@HKZpJtl>SeK2vtVRRkxVx>y;qoi$4U59RX`h+B%(6y&<-Hy;C zEr!X!({g{@M>Jq-6XRP8xu^CRih1S8N9N%qY8<(rXJ%I5vo4}SLnvVKfz+I8YhX$Oi@{( zxT=_aRy>HnuNISC#&w4rDiL(g555EiodE;j@7I%J&C7t&GI$Rfa8m(rL188R8&=Xt zbaGesyW=Rd$Z6wW6?u8-*-}SeFEY@CZ(*X2Ct!ldX4))LzKBI7!hdkQLDpr|ahJ~L zq?oHp!-B=szzynkJhx`GauuOe*6op}9?yaxERo_P#v$Pe`qDY@;nyLuc*@v;ZwVFAJg)D2q1E|m3C5u%bMFo+rU+YTx7D2( z`2K90GK|IF_LL|Ke+%AIH+mNyk=mCd93;0bWz4zjx0F=P(JGe3R9q-SrI zNo*4J^+QCj9_)!ax#42f(;K*3&Wleo;%hml3AW(P9?aqogAR&$;wUo4mG?8so4uG$ zkjYag=<4&H#x`ZkYUHdMbQQ1%Du5xDdw}iq8|==DVF^+0PVxB;CrOkNs%Q!4k*i3= zg4n|P9ezYl8x7v_CO*bd03)`rQFe17ph&+~QA|&qDyT4d8IMgEt>}v1T0l~w0-cLS zoSkX#@-EgYc*lx)TW(UlJbLY~9tDnaUbPie8opTsx2Y#U?&0&SP{NmdEfx zHl-LF%ae`!m3wC%CiBl-WUY{ikIApJ7D_P{ekrs zmxABcR0s5K9P$?W{29+aNiWF>jP6m#)q6nzC*U@HUyPtvRd4<0ZmzeCpw7UpJid}Mmbru^5I4Kt!ub{d*-obesMIMtkE-W zzJ0}+d1?Q^a|xY>Q{UkVtJNf~stijaZ@1E6(Zb9_X%d(nK~(Pef*qGZj1saI4f+f% zM}9`D;o1#O+LI%RF7g}?Ack7hs0{-x!_oy#0=SG+Uj}Kt9=vjl2H|U)mGUV&WHCsd zFrCLN+i%i5`-8g(oPWmc_IveXGzqHl>U&cQNM01M4E9|+_>&HmrFvVu-+zA0BIv^V zX>-b&RkP@4_0E$<=ZkaUVPb7qOEA4?QqiLBDYY)FmO+54_976N+eLU<1szz8B`P)o zZQ1M|@&zjfHCbGmi|u3(O50s3EAK=mmeh_aA;xX};gYo-95f*2bNxHncGGOq6t+&mG!Gm90%@nv;w^N%XLy{jRUlCe!JN4>+G?|VKLY)kAFpWw zA3-`y9^ju9hsyz9#!x84ZLv-{M-IMp5YjW=`D}Q=rA9D zHF?LBYpVL*FO_zpkOR#ZmFF@wSagiZPkn~=dN|=Lc8tih6*xpPk&`x)?76{sa$?ED z4?$D)?JsO?!<=1y-{&($Jh7TLr?!TT$ay{8VaW(~L-m&}!f&_I=y}o+$XGW$l&;Ao zG6T!SR$bHh(TbVuo_k=Q>Wf7az_$iHhtQim?7W$6S`c>&8Zi++#wn8LRcp1xa%kqA z4$ys^iKq`~;u5!|Hz0u1mx=Z-I%Jqf{i{(T#ruIT!WT2|yAt8r6a+6X^fgP8gwo5+ zJLQ3w&+6g~(%I3DZTEGt5>Yx`Pn=oK8AJf+WdLj^UVUeB0=fk@S^*QgmPRHxZ`FZ? z+Lep3Gu~~MamU)m!avFxX5OT25$q@U$yMp_Z$BHK`qXyGprj;S$|F@^VpAdF9wRfgnnU`{+VioT#VJ0q;bIuIiNj#A}a7fTbk-Lzsdo2I-+V9yK!Do41s zg1Mi?Aj;&!j>zVZiSEcX2AX+HAJik7hm{;cLpTb5UqYzCY`9Jw zXf!!^$-{k35sbLl3AAlEvH~&2#rq%QeTKh0>7cOsFzg{+Nyy0=p!F}JDdH_eEAUY1 zXCmzkyL}PXU6Jj{z`Q7^W2Rn%^NQu`a`J#v^uVnBH8L5xawn-oUC+03SLW=bED~gf zii`ioNx<}!nVZ?j&Bfp;k=14A{oyy_YxabOgQ5*d$(fomL|{zjYn=ICN6(tiwxVP? zKf?d)%3!>q-WcXl;+(?TGy8~|L!AC!xz60#!%P8+D?nkaB#jTyJGB!N+vVgxLLDR8 zb;AfEa)BO#gH^a7DUThVqZF3H^}}jIvb7`I;IQU*Ue|Y+P%$I_r1e#uVNyD+&#z0eCXP=Z&tR*!6q)(u83Pn4&eTKB`zm%{MVC z-sDqs-Q|P6*_bGw&6~i>-$vA#Hdg5%^28$HUYm6ft5==&E?;os3cCLT-Wz^&tAa+9wZaJk95kBGmKx6a%rNCds>QSeKK45hg*kE z`IkcX7%9idZ})u;@K4=uLZs(ETBG_c{%=SI(oKO`9-u?&@{ImPD@b+L4LCOOT6#_Z zTWTdI$YbW^HBfZZuB;TBf9`v?ut9z80axRA5Wt}(-b`z7Bzj2uFs<3~Id6O#-evnV zuYK8sDo9X*G0u0hx8}_85;W3cWXJU)R(eX^a|HNo!9IQ#*vG$?cwU_r@(|5QV8EH! z%SpqgI221@w}6U0{TJ;6-|B^fiZ$*;>&P)}FBNG3%4=tx6k^v?fna&0Uk3=&w(Aff z+`2X4No9Ab@BKsL>1L_O_nEsN%0!UFe#~`ZJ`@X#cY225^bks#AIpEq(tk^GeftvE zzW>7r=Om`dVIu{!gKU-HX|og@*Sq(nhjEm~xd)R$!NUKQJB1&@pRfD8^y#dJF;j#p zPGiryCVDRAvSXWEQrG=>&}jg)Ya5IU)QtMMo7!*GqLNXeC$-8O2vrx1ha?ht5h8#?V8N8 zdCtv;Zd5u8Mo&FLLVK&_lS>ZW93E{87|rMtcw(B5MOaS z-G6*?D}g9F4ZSME7Ea1o3B2g7*&5(_X%W+V*5G>ie2DXWCE^6|@K-`}$C=P=;*VJ_ zVR#|sKio@dZ~4N2ocf_ccpx&fPq&XlX#thI0$he1Z-j+gkWDq=Oo-%r~O;k0aD^3B?mkMeGM!%*?K$$6Jf7c+PGa zT9(Ot9`5DO66_ecU9KfRy#!HrCz}rEb2JmXu5lEG)aT4ayd8;N-p6hFmzo)LZWiPR z?^^8eFym~aSK@Dcdy%@ika$=nKFf-s-^u@ap3NoobPy&CJX?6=Ur&iK5gYl6aJFyS z@t$t#uKj^#=l+4#EdzoOkfr1v;Jxa$u(GQvyywCXUIPY8r$8gDWa#jCA>8;#|zcF9<2CrO3u9R11nw5#Q z0_R5Mg1sZQq=;QFBc0vqGmRzfK_u>)LiI76w_NVKK^E59Tsi#uUx+b=XTy~{AQ2jV^r$*%D-!}TrcEE zv82XNe@C<*5wAXEG!MVQyxr4#l5OV|LzWvkBwB%YJAbah||~ru}Qut zfCV_7{(6Aw*`GC11V@4&N%kAS5W=e@X4r$C3fOvse{clc06@;9_}2GK?EEHyrPjOU z<_n*leDq8Kr8uG@!C9C`R_s8#+Ro{jJv%dKwij1o$EHtd*?s``s6g#pfoD@8%*7() zoN*I(7gLun%{jnSJsw_qWEy=l(Dn7;fy^S2rdv>>p+)}Rb6FbCmkO!w!~s|$967+% zzIo*_3Uxzz0p&MHK~3yR{{wtUZ+xbA9olMvOf2@ZQj1)A(<^5VmCTTcJ}n?~W2Str zg((jmM?cUmED+Hbamag2g-6pL;wm&LW~(l!ORyOaSNj*(wt}3v4B3-mDOHJ({cwr< z%kD<_0g9ddHZk=Ivyrm*S&0M2~<}jQi@IaIj&IdGtOQNZqOF@75*tfHsIP=si@?MV~%?2_tF>j~$%-rq@hp1WO=hR!$D}oB8wUZuku@BC z_1gn}{4%h~@%9cFF2p&oZZRn-glf5;s?vR)1OygLA|knhV3|f3s&jdN07_i_{;4zK&@| z`&;(Nf4~u4dzoeJqJ=+zdld`AtcwXQpOh|m!czM8_+loVRO!g$+qgF7G8bel)}Bb2 zyn`lD;Tu5)qj-d7daT__?vBZ$x5eaO5?!sl)$5hz?9q!z2QuOI;WVH4VeHJ@y)?vr zZPai4oTGOLp=6s=#lyY%J6VJC@Ifh=w{hZM7AnNG+wQJUg`I`kcT7JG)xTp{`Yjxp zlG@yCXlG&C^=-<)-Y@$o%b?5B1l6JJ&$!2@eQw?(6=}Rc>{F2FGLXN~X2;A$X7Czb z=x~78xO*A2_1t84!IZXy_xR30Iw54V->&^8^fu{BySwGWVVa~*Jdo* zhD;LkomfCL0$M8Qs2wpJr<#<4?%F4fX(i1M{yNsvI&ApvKVK>g!ZRBZ98W)^k~M+$ zXk%YK)jSHXL%OHTiTN473I%Odwty&P02i;!ys41~z)6aEQzl4g*G{-&mB zqgrz?eat2;zAy7hK`9en_E#K9AC(BQ2ikg6t7D~<*@i}kr)hPkxEMolZ)}J#1!7p2 zs4v88N5?6w$nFQL2yU>Cj72IB?>y(%db2{xN{9LP-ZWOdiIkn1$VqK--cbD5tQW#0 zUDX)@<6tkb*VSywg()`+dhn<`w6i3!30TwOx)+I;i_@qKZs$)6t4$39fRB^+ORmo!H5eP^ z`~r{xg_sE!=PK=P%#un;W?3MyDvi@+cled5QJ0=(Y@MOhKL7gO+Y^SOw zs&cvL4L>F#fYuoZO=u)W<&{E|?}#-wIwRcQnnc4pK|Dii6p7RgK*IG%F-V{&nuH5+ zO`3|)dQZ&KT_)YnJKFiJ$a`(8g&25nlUYd42q&7W6v!B#d7Iislo*SUM~W_%Fs)`A zkM-#8Y%<;~2&~ARmo_fq#~M|5(Vqan{ba71{g|(~i5RqUwYIllH*`F)BvADaFS-1k zB7+wa9gZ~j5B4B>kfvpr_M09W`a7~4Re!7%yn``@zHrpn2vf&GCF9aLT> zH$16I!lTbPH|(RMtx-)pWD8}~^v2PDkmT6TMxydxS~QO=t;DWp#u}RO!wY}e?Spit zU|2LFyB6F<%(MvW=yumYw#)F2TF~UO2=O-1@`B?LV^vJ~+aIPYFc69_|Git-6Xi~wsTAZ-v7;UXLmOF?HBLfI-h_p-gyNn`S0Fj5;k&(Ll8dNEe(gOC zdWY&F%9nVv%&Lf0RWc`$SPp}%zbxMP0@mN3mRMv0$jma|o;~lgdOA_97+-K^g`|>v z?V{B^pjxhG5hG3%xVEZKJTcwLjPqc{&L;BxBNJxcHyO01xm=kEy^@`ddfz3$I}PSw~J3IT|JB|pdWMy=k1i3J9T zK9|N6at$$S*C&rLn4=Qnfs-I?r%-lCtYA^fL-#fkD)(Qm(n;zkV8-OXc8Ihy*=`y< zZQ6FaO&k0mKl{_spp~skd;814xGpL4)2_miDneXy-^%(|>HnA+qeMaCl3`9?9t1(R7YI(8PKzaI=Vke+l6f{Nm;d) z0&Zy`D!n}{yZm3ERqFIFs>$pjRW1~+G@DN0nAY8yFfJ2&irCh*mD1tr2H-y>3h{B_6c;stLjTIaLkP3w6GW)EiEK0ew*6f zIj3TD#dW}RU+Y&iv%S9UMeUBD24K?h%Be{|=fU%JtP>H?auiN%=-k})1kCONYMg`1 zWPruN{~eKB9s(xD8_n8#Qs zu*@oD;De`@i%X4&@Or+5ahy5b#v#VXQok6#Cdqb-0b>mhuI^19oAH@u|3p4UFPZb< z{W~V+jTn3R(lLoU!m<6=v#o^<$MV*)G2d5B=a&mWPN*_=XAGA~#0CkT9&=2vgkY22 z?^F2o67qh|sVBiX*QtD40~Yu-|E9ER|4A$u#a{8UbFc&yUKaqM3}bUYZT2T-WihB9 zc1n%q=SMU@ZL|*lWpx#<;+^IMnZ6Y=CZx(S?LmQ``d}74L@SG^$DgId_Q0x!f0VRG z`YW|^JR3dHwngQpvy&kkzJL&5uq4`HE`Ma$^UvFPOdWw>%nV2l5x^C62p%{Of<o=>V~_`@m_8rUd-_!-fDS1XS6mrH>EyRerZ&pdRE3YS#2py!)=^_&Jzt z$c9{VT#`9hGKe?QbTHP<&a}BOEhH%f6$K@;A%vzZ1v?8~QV zzUVh<(i5^aRMw9ICBH=apWFBB_S8hXuoO0@lF_GHQsSeJ_UmW<$VEjX)_6;ZF+8aA zHr_C171umb%7mW3QE}Vs2c9XeYF_5qE~it^deh%hKV=JTb#OxRAAJx0k?+*VklfdH zx#G|um>Qa!tMN0d+~u++i5RN(J~D`r9WgE@u5`_{C-&F%cBV}myLS@_C7Z0WsIC$h zfoYmeZj{=JR9|id&*1!3^BM>$S++in+;xWQl7TAcuijVv9gf_51v=kPOs>_Aw_#sT zkFi*z76}l;N}qaVYa8UhwUHaReV@Z~7t1#dFjIdSg_oUlc&6Ub|8GLWPDEQxxz<+X zdQ!|Y?=DA9goDR`nBDC+SCmAW35`WsNRrYOBN{O|h1dq~K671Cpk%LHNG>;2V!jG# zu8K0#yshY~B`Tep0k$09wd@EDGK^`n zgBw>Rm0GXy?(CQinWpR)k{{a~EO__R+4f=dB7N!oO22S!k;8|5Vm)dRQYSHZY^V~B zKE{L$gU#NvO}6T-Efn5?e7Kh=LEX>W;9c|VvHDMS?;Ukx^Xi)|t~L5u52(%2*=}R& zQ`3sEh!puz_XfUz(obzO3#zY!L_tx84L=5lSS&5) zJ$W+$x5S%8@zqwC@Ld61BayKV?&%YSu-+8wUR?wO;(;hL)3E8he|V^7{PfX0*t~L>0d?{E+Qe|EzTLa8F4bg5CGO7N{5{QgkW~(@xwTh?3rB3- za;uVaxyJW&v-FIpEKrUK!%+U4K)S1{4bOML zWb5yw&NS%fqeK%D;(tU0b?E|>xg*_pTVd+PWe12VN(G;YT|_KMP^KE)af~4^D_c?; zpAFcIeJIw{d)mIP68s*i%hzXTx6pm@lw{ZP+EQHG|4xtIW1ht zGs}IIE#br9)vGci2v5r5sbaSxeYI@rDrB^2c(be!3|<`rY>U-+phR;6== zrShB0@DZk`-SHC5b2VHy1~vMC^2XJMJM+}|eM>tj?^hO%!HVAYBW;T|w8Cl&m=})^ z$&fd?&m`Ev`F@oelAO43LR^e7%Sj{ZlT&e`Efc+nx+o`liHJ?0I~A$MUy(e;#D#5` ztvKX3^@!Wv$(A-5`HB#2m02dOV2q-HjkmMrRzV#AsrM>C^E6HA(r4m=9{dMtwhE(C zwHyE(VCb`@e-7a27jIH*K`cd8(+%bAeEO8SwH-;Vpf9Q<9VsgC3Mn*1s{rAn^h*|T zMK+_K3~$MuPV?;uRyr@fR0FHC0R^H3m9B`D0j=f4Z|=dzlsrd^)aFCTg&(l&6h9QO z^2CsjxokgB?PJGlE;=6QH#Vq;G|ee8?F@7hxT2kKp&ECQlX5+yRok z75;O?M3IkZ#%nN4B!#?_4(`8C?uiSwZ&V>*zGQ&=F4MFA{Hpz(mxyllsF@;-H+iAMn!()jDT-!!)Gua zSpH6f8Srt;inB>x?ak>q>+4?JO#BU$C&<>vWJoEGgIN}`LPtzpf@}&hDuJoMVHl>j zGOnk3<=L`7`*uA;TU)}w^B3_eczZKc=bbVS{bY;fx-6p6*=k_v-K_aZ_Y^e6_-Xgt zhE0WF4h;y8q~DbFZ_u;Ot|~Cn?F7T7H5=^D|FCJHUU$(jjm2i<8|A8)bYrGJ z$O+pej;R`pDM1Vb?#JhD@iJwx^iK=klW8zdazb|=5o`x^%w_g+a$gDosq$lGSY1^0 zwZJLlXqmc6AcHyqxTyppt06wVFc#Zfr%~_W_`2GEC%z5@*;l;>Xw@)p-_fIJ{P`Yf zSWPq%n9X(x6SoRr;@0PxJ>XH6ciM0nV5bp)qv4%oyaazVrQu1uXRdoiLkg!%;2fkv z(Nio6x4l*|;Z<*i8e^YVxs3NSBrH!_ILFLB8q;;Y_cLcpsyUO=l9jjhF78oY!}NBV zE~(B(Mrq3-WY0;hABIU}7^rQ;q9Lb}i1NTJ{31jEB_{7qj-!+NHVnO) z6c%y3teN2X3$3caZK1ImDSj2b7d3>Q$4T_b*SRS1Pk_VT5PPWLc2cg)$?eQX)ZFD0 zef18g&1}O+vZUAZi~FHZz(0@53rOw`NUo8j88d)@9D>p}Za#n;l1ug>CeV83siBv^ zh*?K^d9XftoO|q11TSaqtRYXjpyGzir_MPImd!im1&KvmPmIboM<<0^iDesW!}1ks z#=r8;a-;V#_mlQ<352US_aS(>g+T*I!vv4w0*l@zl*ZE~8Zh`=^7+#w+iA={5#f8F*iZ)9qhjPdQ7)SVcTsA%t-VmkEGEG- z$`sP%@Mfm&-xKF!=g%eHo8FAi`I@x*1A(ql_$;gDB|p$*Zf8$aB(%nDqnAEWGPZJ*U9wOHeHPKoo3kA~i_YnqaS_0O1$cj}zAndNWHe!;pXm*=qu)dVfb;qm21s~mD>OIjraWJ_nC^lsP@ce0Atqj~8;@`S-#45;(6@Y4;CX z({b?z+|ceej&i-Axlb99t_HG7*1-YA-oD^L-~guRcKlOxKf4#&NHNE!H{^YM^{qBB z%JFB2nZrB0UKYgoccq?KQ&datSayBg(d8(-_*{ZqVe@;7c2c_4=YnVXjRJazaa! zgr~Z42U$kLP1V*kj&~46+1tU5)6w~P-Atgc|nYn&~fHi4i(bkt`u3MWo))QO(iaRWW9D`N~iGLr=DTc4! zHnx4tuUEEGx;L2WeVzV2&5;b3#Xyj>n{S5~qgS=XIcSXea@GY(;H{*!eRp);VRs9Z zP6L@7CD8Bpg7a2rdW7#A1EYbKhyQmIyp7Pb2%bb4U*DfXnDpPbNx(&6!IXTa)a2ws zTwk@ZL-BIlY74~0_=2wZi&mGZfpVhh=bjd&qHu6B5$Fpb*iD%x!JSI+1I@o%W(Pq8 z58ZfNsU2W~I_XS%GZ!cw4h&=CDqa#$GkV<9U_LQ@?Siw@ywC_(ar+rVJdtkcGat8= zlsO9*2Z5itHtEOi1HUyxn7DHfI5x=6ehYE$%1o6KsG8grC#79{_Dl*Qo9A?i1c zRCj*wylLZbK_bFUa_j>4Y~qPWij}Su+z& zcWwh4ABBG#kB!;~rz3uA1RO{@M6jpcy`yoV2#;i(cFn=k4b$K$LKKM)p$K1zRY$N4 zY2Ku%)nU~&%Xs1@4IjTMU=mqm;!G_1n0~RiGN|&<)BNT`Qf0R=wVz?Ql{-;()Q?%^ zm7-g+?j{lWWpc~6Q2R*B|(v$G9TXfECqV3OqiP6 zC*x4WmkUalgo$d9K$S;C$(rFn2h6lObPAHhx(XMAkrqK#(9fJqzp6ivF#6tBaBeWb z#XR;+GZiP)E7(kM53$B0eRCR?wA;k^gHn5~&L5~|x}THn{Z!??v=??^Gh$(@$I_8Y zbeF}FiN}Ze%Zje3R+b0>o|%N`&MS^akq8j1WzND--N1hi!=w#1O-(VHKWT*qe`kytb07a8tW#7xwaqFdL9Ly&tT8nYJxUn-B|7P zA0(bHB;2>cH4Hc_?{KmZ?|_3soN<@q4fdPA9wrY5B5j+wwjz6=!+<$pJF+CM9KFnA zlff!gL@gMEJ%HBc@Zkxqjjfi|D}N;K%98Jm3d+fslKdP=l&VoF`v(3MOe`!oaUO)8 zM06gsB8EQ0FR@4W%v33?H;Z!dU^#g`$~-93`;+(TtT#r<@8U4}ZzXeY6nWX(QVjYZt6%9v zzQH+?Ya!Kr-+Cuo_Z^sLZTc%-_!tN_-^^E(ZUnb&gH3)Kb1rL`dvoW4nO)^jJYUCJ z6_O@(Sg4Gk6PzFFov$WC$Px6bL}|tri?0S>2!`z4nK$sRBl03CUP+cnAlkt!oB-1TDLW z`isBh{C_l^g6Gr2hM|$}?iT3=X{9@*ySs;;x#M%+ z-`{XP=bXLQ{;stjZtu5En@KX{{c3Bx#|>^)N>v$@9UVdYjPNk9Z3)(){4+v~fm+{! zULHltie9-ppSSc&hX)LyzrgCow**k^M}mOFPJBtYxAJBKc)^wIob;5*iZK*0ah8_x#`&iz1itswi!7UyWC#IN24a1 zeF!{v4z%FPOk)_v?4M6>l*i$%Zqvvg%Bw0PCDX$%7#I|XaQeUOQHh20LzSOiE_`+t z?4dVJ^H4H64uPM85kcoy;bycSSULt84t@pjL2yx1U;eMYNPG$<1m@ae7d5gmqx!As zNwrbL@oh8PgeOcM=WdeRBdjbEH1k;E3TJ8;(d9#V-0p84cU$si#rWWm1SXT~rj zw>xZ(_s7kZM0r}xnnfgQ7cT$}YefHYTVbZv*QSy=#2oWD>D4{)n}v964m)(pkYwuU zQbL7XI$+QOdU(BZKT8HFBhI8?$Rwh1Y`toC8s{4vg7f0~nyArX(qJVtj~;MD*vE5a zR1F5DE<%%cpLPJgpMlU&k+M)o$1I3L>`!-0=`1h6XUSueFN=QV)(%=|gl@gbGs~Fa zkwJ{eiK(VVj;b};w->o(x1CwMRLtxiBy_FWNaTz&tQ=n@7pew=>1 zujIAo1>oh4gYPTTWe*N$-?4CS5lRLVAsxq{S^Dn?I0*ju{!G&`<1_EG6cee@b~aYq)%>1=_CU!6QVgo#>%F38to8X7e#gsqUlyb(>OFP<*hu z-g@z;4SA7{oZ~(?4gOUtpTF9iVCLY^ZC-HAM_9eluyogbVs-Xptt= zs!{%+BYT{%Vx9)N$>tPHnao`_#e<3T8DQw8g)?ZwA_4jceEb0bQ@xHLN)ZSxSP5@K z6Jz|80k`eoWv1p~HD;E{55N2Z9pE`w>e@l?u?Z-32lTlNK{co?YF zWF$`?3xrlgAhaJS1SBur1kW8Q@Ipu1fFz`0cR@t@meT~FuJfCc`PY> zSX6BmLYi5vSO2GOnx4%`jtD&2!Bl~Z$K7rOuVL0$A=YJtBU0`)&|e99Xl zf+~E}eg#qnLj}5o*Qd)(&ox)^>6)vrTv?e+4gWsCp!*be#eZ_ou55WfZ2#V#9c{3C z2z9oXIo`0}gC$>2N^BYyMq-eyw-k-D|xmk$`ThnawVRL3I@2kSn6uhg3ozs3-I; z>FOd^(tD{@bo`3X|Bb6TSJ~)~Rs=Fs%Zn;1^!;t_;kn&?Q-_xTJKFu;hj($aPpX+V zy-KqtWB`}iHu7M|Wscm14%B)Y8b+4a#rBd#aSLopQR@xz&PqQpbcR=9P{tgpv2%}} z6uDTmfy(tk4$^r1VSn1rI4$%hO9paV*!8Ur#HsVuUU(l!ai6Ds`cdTv)Khna z^E?Fg(wCK$qzbsQ_7H5DnE^^3bYY1IntU0Yq1_HGspFLrWRNb@4=5u0n6+|9XMJYG zFclSzoK%jtZ>uC_Fk%;rp_3uo6yADA%ALBScB;8wqoFdg!}JgiEAf3($#=@iXv7lp zm8daKxi?$Xh@J{^pS>w;ObKRa%$Y`1B-?OZ{gsuFSWd`eONFPMaz}};+^3K0cVfXQ ztBCyxm8RBV^*m9OA1&G{F?}1N{C0Ei@`#uP)*o^n+82ys8xe`o@Zu#tfU!}A;m4(k zseE2K{&-zn$vOQzya8RS>0jGxRfFSZO`&n3PXP|@w{=U?u%6%|hxqkm^s!4k)6T}* zWZx~*;;C)y@!&bLf$yk7_48QqNzoDs`vk?oG8T&Qbh!4rUI|`*=;#>r&>2x(Mf6;5 zijN)GDAjwH#9Q;M0m>(~zA&R{F^(F*>D<&Fq(3NaSBRESOph>HMAg3UMMG(&S*~Ti z|4G$w(SwpFt~@s544Tuj8otm8*)UyjgFFs8t%1O!p0Mc&OfAG4Rd@z9I96A zuO!8w`s=Dn&cz!Q;@`k`cx4;dHLN%l}IF_OgP^OP%5s}3b=Y0o4Z&Zab6HwpRw9#&fZggw4wZj_H>YM<-p!N zjg`y~C_vm5>|30NbHq@z3$M2bmz2t>I2CBaV3)0Y`IPy_X3VvdX>FS8p!ZgV$jds> zWJg(N()%(_XR283FKA`HkQz}ON5sZnB_$`8yx#yMe%>ujyL7)bu$C$HD!&KlW60^4O8+N#DCa;z5^W>4f+)!z(^TL*A*g}PP&Va`84|X~g)cjykl+Cby4U`&GGQz@ z6z?F>*7B2_$I5J?9I$mYZi-3y`%MdF=F1p*!U5xu++>aO55=M{SaC}_`wKY=xxvSr zUJgG?i|d*niF;!sZupNkgE(jUt*9QIWq+lMc_oWi((64W6Pg)W-|l!hXtk;JiJ<+g?D5Qk7D98Ka?SD?$+kV# z3mng$eTkwi;Y^l(;E>b<@lPsgvP1>k?7i2aUuwEelDqWp%#I2%^Y{Ufe<<@jbWmH5 zN3HhIG$zeJc3{?@?Q5syDCzX}vY8224nu{8Pp-BkT3}eM?+>;0cTgYfs&AUYXRw(r zPH+eWIRqxpH(2eVu`SilsFk5qX2P>0c7{?%Ci^vrlTH0h4rn!3@CH zpIL5=2jAXU?!@eTN+hqbQb8#G5z6n#77~pmI#b8}GX(9&yNzM^0nq`DGT9jlwZG;j z+{C-5oZ}0$c|W;aLHV%9hR44%8T_S1UD-tyuaJEHo7pRcL_3E$lW)Vl)cLpV3ZENFKc z)xzte$fJEP@Z!7%^JNycpJCGRvL?aw;gigr2R17a{s+tg=8RKpWZ-kCR>cBW0lX}J zbEn&UbpD)B3i!f3WI3!2Kj!MkW6>B729@>dsnQII)dPZ&P-_v=)yjNx>D%CH-?5^u zlPJhX*)E3n)0%$k8-Cm;7~|uE;_jZ4&yz3!qNN|^l%q<5YDs^@;s)-R#S#B$qK$jo zzwy>3@5lF+<#60L$4yY8+J*s`+VU^CqgnyCl?f^JI|b9|@!K6kUCbS-Fq)AmnE=V9 z@kZCc!`ZmVx0Gq8JWmqs?C})(((!rrK}NGAa4qqGr&c<{p{3z?Iq)~~ty+yweQ2X< zjM$cc`*~2jagOO-owDc$c0cPXbPw7~n|xsyM8oa>3f4W^rmrK0kD5#w)@x|5tE$~A z^I+p25l-@C6TM1JZK+_Wc4dOk1Snj)QLOTWOX5tBhoGIMB_!R1W%^T_wbrhWta{zA z>`8UI&L-$2D~qH6pC>GL>Xo`lJE8`Xjehng;k4Sbx9IlGFBQzzMRlW>C5n4pJRfvt zNe~|7L6NdO*85u@g388U^FZrdLeLJTkCMj;%}}r{N&_>MLtK#P!)0fK%tw*iESXNx zU#HtjdaF0T{bMw6B2q1%@&eMjc2}+v$A3e$SB?(8t-8Q(Wn(3=T)H#RkYVO1EFYf9 zkd1!e773r85N?v>Clk5XCYmc-g6LpnGsE4`9ul>WdWL#V!=fFexbly--Cq2GOth;` z$P8}?e2cwyA!7^hdMM$%Mv;WUJsrkX-Id9FiBxR3$M?0l_j!kjj_ocD4^ZW7=!0pO zw&5$t_7DlO;c4x-9)7LBsaLGW&=^c3-S{Bjci&fAA4eN#6+4)wB-C4_AHE!lnX5F zA9Y&=2^WreFIiJu^Hn|d^~$1)?$a{Xlorp5z`OI-OQt%p~ftjYCBi#GsN`k=p4J7_az z0!iZ?yZvdKZIhi-ardgbuz;fogLXFfbvl7X6FQIuE#A$gZUWKWeytql(fKpZnGvc% z`vsfdvlbaKJErpA_o2AszMOO&50<256F;zbfJ`jhHyuA(z(EK5ZUO185j6EAYjKg_ z-;#|`m;v@rOjan=XZ>D>97XJe6v|-ebhmQbF-WyTVtEIp2`+$o7;vG;!o?GiV&cM+ zvQQpm=gCJ-&eROhi+mS9*#^Zxalil15penQQ0`RQgvSU1VOlq-_w%DIdH-S;sgAbOp37ycai-ZDqrxb@^H0WL|e*8plZLBx_CyZ)eNbkvivW$Q`=`DcIj-{pF zS^SFiFVnLT+=ngEM=O11W?y?Iitf=v(%f0s# zFu8-qjYIWLivyzJ^R**A$$sffanw7!%-}Q=W?U+KU-yJd#T@+Udd3H-36`80{vYjO z)@6gzo%pTD79|=>$c{dzAUc-R*<$V37Ea&d{j=I6<9&i;7r!|?I-2Ym2DGTnz=XNk zRC6`DQ$cfpCi+nTMT)pCFwKPm2jiWtW^*S)RxmTwMZmVS%<~wFBdgI~iZS6~Zl_YL z?G}4%&e>oBTg0#P&u9UNtqd)=A}_M-Xn(^-g?T4(=v-2ll^O&1mN5(v@7RVU$6g|G zyDM<)k2F8*YY2^Sw*PGQg4vR@3_wEfVGBi!!0fGiIg`IJ`J>X4nYnEeauQvBVh==1 z#3$zkH>enuEbM5!;`gLz3eOWx-WYKMUUV$&`{7)$a1y_z9FU9){9$~L#H6KzWeNZJ zX;e^=EwCcN(n62utMdX_RosI)oE|sscmGNn`zw9Dvy%QtZ6Rhmm?}vU7SW-Kghwk)2HfZb5y{?1dsO`qL4LnaI zIsgMt`8l=)2DaghG^8QXAO1EMnA%rgfr$U7cZx7JDAdIv$)+CJ854-~NN|@T7{96} zHo7z;#=6Afr>qA1WoX1to0cx-xtmd$00~|@$ za01PQC32k{7(g8(zbpRv)7DTaT@%qr#U%SYiteI0-_Z-#mpbI)sQW2rBo9H~y2LS= zF(=z_^FEOn^!#E=0&5mUo4s&m{pw^&Q7R+Xw1RMSf*Nt=+>~lIwsk7LUza_7 ztQO0fWs#YqZp@T>yAVb^60JkAuFs?_$B?0jk6c&KoWQ%25y-H@wOp0yWXZM_VKyCJ z?Vu{r0v4@LH^Kn+w}T6aeiGIofp6HyPxXo0=%UpwnM^@ty$D+0O!Qo+hSc6ZEuFaYcuAEs$t3kz-yWU!6RSp5 zz`%@|Ew%1ZkoYIb#a_z@`d9mhfD>=b3+y64J%=R)EmXr5zTB!}b`x5KDNU?zFuN`} zxiPzU^V`|EIKo!UMsRnRtsl}URY_Y%gq3{Oo|xki#=YbD_rh;6a11^XYW1`?Dq}q= zxQoZ5C2x-0e_|((^aL)iD@t-BFgve~eM zLVWEG<95axSs?DCep^ByprFPEp6S*8LKmAnqI%*3ctFVj(E|v*Bx6WiGmQ|dIcr>5 z|IZDn%H7(td6c?4XkMwwZ&-w|G@9pkEZ<-VscnkSy zueBjssx{{j{p$UfIc*N?nv{zcBNrpy#m_3Tukr$8xxPu?ch^1mv!%8`8qJ2nIhXFG zK#&`>>e`mdcTeEj_mQRKNC*~r@w)9XMEA+vITGi^E(&Mn_g8C4g%ZKd1DAPeQ;al` zS)7x9ba!Rr42QM1Kj`Tq(>9j9{l%4bWT;RZ!8~pTeH^Qd!9Bv#htnscqLJS-O*g@P z++Jit6AvtMj~?U;U)et#ag$0tr>xRZb;|>SX{AN%f=1J^!|?+j7%GAlMF|2bJ~0>Q zCgMF_%*615(JjSmHi`%SItkxN>Y<70E%2^d{3X%0@^&q%6L(s;CblG^tS;fON#VZJo_@0Fc!>jyrtULct35x{5^L z$Q*5@A(e<(&7lS=8q>wN$n`@So?A|St7CTQ4)?=bQ@E_&6Y2S-eAkONxZ+O53(iCh z{Drk7WRnEXsqI`B8*mHnmBgDv!euZ+5`Hv*h^y@Q2<`nrDvwgSQfY&9m+cG8GvG^v0gCLE>Xr5pDSg;J7AYOZ$(ooEVfoQtt+6_4uY^ z-?sm)CfbR^n0aY3Q`u=x;nF|wlN_JYJj z4sa^dYHmK?nVd5kzAqX!9lb8>HhPVr8aU{3Vv0rRgnZkGfZm^UW4_TQzHrR*^l*8S zJIwl|tTO)mTXO9rOwB6N*rsDpRKK|k&8cKoqIt8W=yi6OIEssIgm3K}-kMSG@Xgf2 zc_&r>_Oe^omy@sWY8QgIR^O@0V;)~^3tq&^5snXsCx5=|imQJ0sRIK=#Co}74(NzB zwGtEWFb`_-aP0$w+w!J@NI-0h6-<)*If)EE6!0KeEOgig_^zT~VQH^{y>9Pqgs(v_ zcpGtF9iNy|f}aoPp)inf__SyDE#^gEE{p#TU;nomu8?d7t21Yg_Y{I^(&|BD?$SiF zD+_!Ortk1qtup?sIpY5*l8OVznzZs6N|M~Lm{}Zg#7%Ug#AqByC*WdAPNLMTBlC*Z zX(?XnAy5iC_r0#MQ-)fJATQhx&*3WtX9Dw%$PrJfIO_?U=kzI&4t`A`E73-iw|<`} z7^u&(F;`iB`beXTSD{OKYmS%YbIa_^?4y+=eZ4)iZ~K^raxMDZaSFlh19a-aPn(p?-zwQLI_4`LXZL>_snL0vOQN}#SP+1=@5V_lI`~zcYepQ5a z$7jCUJas)-@esl&wr$`K+cJIhWgSIx>&G1SV%*8fU2!2I6OG!25_9X`J}+X5O^^x8 zPk%tb$O8@2=$9WxUB99e3f`>WtF=I5`__Ek4Q$Wd1oG~MNE4x}Pr)I$r$0ODE#MV% zHLG*s2k<;3d{VnS+;&y|#LR`9*p8c=ND#H-eK5HmzF_YT!Hp_Sdo}ReBXgc_aQq(3 z1Tz-EEFGyUNVc~%Xc_XPQPYL^zS24J-xmU%F+RxHXL}XFl1@VRQ+LGLE$06|fPC6g zRCr)qkW}IR&U0E0TOP&Kd-+Uf;ZN`9M>0CIr|36Lsi@T^ALS*KMV9+ozRkjy9($tZ zJR^USic)*ry%Wn7fpe3S;5PsKC`bT2k?CiZ2NO@5g%U#PRoqU$hYD~rtJGgBnJ#g) z^W5@Jnb%gyp2eBgAEp*bVWUo`$Dqa6Mkk>oBetX2x@T&Z6_5GW!*=;10Uqqu1JYV{H606>N zJFu|*1t|_hDxr|0x;x;${f;NsobH9N@G@5-)Q6H@70l}(J9I3#Dnjj*SxpkhHx_fdQ**FL?o@fILdFa%am!{r24e zAoPo@=iN}^*)?3EGLxaJWSS?kz3# zCwZUqy0sp|wB%j?bmEEFd-M6u-Fg6s78GO4LXdJQOTG6m{kG1%OCm5Yob*QRalWlA zuIw4T_8d69R)8EK<=uY@mAcMGysm%@@USe@>>+5HPxT>2bnMMdtdIU^z5M4S_;QpH zmQb0^0^JBHEh(&VW}|y&c?$)C?gJ|rc;N8QM3TEJy^uA}mcPVZ6$C-%{G8NE zoQP~)yW|2gIVPHd{JwhVTxl)b+gy9FZJhX1fd6ihW1@(-Kd<4fK<5@{`B9)t*^ppf zUcy>dth#|hy3g4RH*9tH)Q6;qJwG*%YIZJfrWlC{-;cU5<%sm`Us*0aYaMS}?X{gf zl$pC>v_9o%5^#hIxb<7w|3#IaM(qC;no0)_>L66(f4A|ih80h56XB672)v;3_A~`7 z(G$HGsCl92%auhm&aEi6Sf$Oo61-rU_)6!zL(wmmRzv%UQp1{TMV--D)sqp2@)SwJ zza(AZ~w48U;$&K{srzPxkrzoCK!Qj!mv%%n_06!iV(l^^zx%t8M> zij#ZGw2k&?^T;5!@BOOU^)~LAbOD1i!>gY7QxsqEjsc`8Zfr#(e+nu^-8rX@eLJrj zF5PkdDZ&4^yEoJftQ5#Z%PP(D(G(i+jyIz}dd@KQipP$F;-a=t56w64=wurN7B6_d z$GjP()ZCnQn|$e_&wZ8QpSMOz`n0X;`SFLTj3{Uz9thTc{MFQgly9%!c2$Lr@Y6A` zf&8~5%0fP!1w44w&7FFjE1Ewt646Woj8{1x$bWHylS_VspB_SBcpE`ZP(0hdxG;PA zajo1Mi}poAgtqnZvJKcq(ES7eX~+Jad@d1q(ReT)_^tM79i7*PQayfzzKGS&;@L4l z86)wzzAFj^r#of9xz{)QnKQ1dy3uF5A5uJ;L~0_<=eA!~Ji^IqTRs)kUlymlMdVzF_Nlt;zM(4x(+4~H;L#l_F$=!Q`^Hqbe0A{CCT~lm_Sy-IV%<@fes1fkToam80<%cq(v0?~* zGr;>)5^BrkU!4o@^i;dSxx_vCtkgn#=srq8%0xZkDAq*7^CQkIF&DKWRuyi7k!g^+ zPVnHM^hIO}m;X+#4h!C_k;%9@HAEWM?~i3(W|HFMD8pnyaBIy@K9h7alYi|{q2+Or!H|H&*s6bytSRuIoq;$2P z)xFZ~LyOiZWjTRIxEPgknZ7L%dhq;3OKdy->UEA}ZFI5r^4|!C0PxE}87@19SF8af zvoZ}`AO8Rq%7T{mcXwyx-Oi;(a&y|1OiCQ8v*{Lv5(-@#eaLWPUUjt1B04+PlZ>H& znJJf$=THz+@yTU%D5a3+j)C(Rj8t!$eZy9|M?VHU*z*{^*xJNgEe(#o);{rue^pu6 z`a1Je26>0+B;>N8?lsv^@;T2h_CzKt3YF^VIAQTFFZKz#*>v$+1G0)KR8;>2ihk{u z=V7H}BA#Cj#IyjaU^PCg$5T^(sBgPkv@a^Vv&1;A%l|GVK`b|W6#0;G$R@(#4*Toc zdj5K#R=Pd?gSK!U8}#Of8(fp%lKSrwywa&G%Z4+Aa8;OFE2yjXwOpGW;3tQ+k@KSv zHC&K#)NGxn@^f5p&PTpxozO{eot?7=5(dj6%a~=jQSt?z8b{-&t5~1O=;AEy2#j1m zr}pJg_owPhUMC|y24Bh&43AL6pvie~^|MjgIdV!!ZYG`tLALdXpEYgT(UW|U6D!)KG^ zvr=V6mlDMf#zE5iAq*<5sd?RTtq`8d8({KU--{bJ znQkn{1}#VcP{~^6yI#S7?QZWogYc&te*$H|V>_&OCM7nwzw=`(VEBumRb>+j`f5+BtrsA*>x1j`{K{Ykdyj%o|%BG)k679q<8hsju7H$FMCWBCNl6Jm5V=psmZ7{i-ille9Sm zyoMta2}#9A)AZ#>>A6lu!j~1IW#1occW+&KBtB}BF^<*;!;NdOEUU7gd=Q>CnK{sQ zE(8|>g)jh5SwurMptV`&)5V>h?j1DyH@Ii&@0!w0S@wUEUmVxfEX+j?;QX$AJzMA6 zm`!$8=V)l->Kxq^yJ)AvrQD9H)fDD3P{Dj2<#$|@*QN(#T}DPPZ>HaQx(UM>8!YTQrHkCn!Wo7K{e7tkh>Iv{)C)e$ZJ1MMflmwc zbh9U(#CbMiY(7SD$qpDHyHW}qeEHHi%jdqUyNt%MLM{)&?yGnl5+YS2lcc;y#P!7% z=-#{ZcxB3jg;Mp-JLi?0a z?Ps&&m}%mbjg&+M1MXZ|TL++|{F=)&u)5Pg15sec?S6^J>fI+kQwt`X*o4fC7MRxT z`FCp6#+_U}8zqqr9F__^^(2gN-Ud3bM|qeqF?nI#w4%j*$~N^*p7V<5hd9^bXEDn= z8xt}}Dv~lquM0#rLPRcvUx;6o+adpEo)eS9On=~g zY4<0UEp+ctn=vzLqGVL7N<33jlQDGC#(i!+yua`Fy}RE(Y5a601j9+DW#aw-J03~1 zDC*nmX0{U9uL0|)$14t9o$&y}5ld=|o>qO%@ZQlHLgbkyi|r`z)wYh+bVSg671uYU zxz84D!v6a?clE~=X)aif>{AG;wp+_#ycIN94F-pVPKm1l9VD_91oQWyX>R*vh zXJAMwYfR@W(i+hW3TP)S9ptki*1hObqdPad<|-o62<(mO!9(i#%PZ8W!uZ*qRE|7C zagxiKA*n!wlmWHqkb4J9Hd=94pYEXue7dfmO3CAd3b0nGr^|=XTQ-hMMn&L=HaqF% zKguNx<6qFlz1cafJ)#?QsOA|d%IWEhnY~;-=3Y$VQHBray17g{PXNL4nlWO3M?nlb zm+tc12hKbuf}fCMXVTop#jSHK<0?OA)#YQNy=Ql^-Iv?@_8CWKkMQxU=AaCjA-JAt zN9^MH^yx#-to*FnYZL&&Xtb#s^?KB;bkM!Q4a)s7QGm0|?MHIFk`IxmVta4FR3Lmf z_{869fO?GJLf+s^ls88~L5hIg^%bN4znP&$fH z_I>x6dcAZx!O{jO)o}01Oz>R@wBF$`_0jM0d&d^2@aP9LuH!+#c`MIr8J6Z<3r$Nn zzTx1xqD?gY!Z#hcQbe@GAb7o~(J`JpwTaBpoLpE7pT!3Oa>5kk ze*wxk;l&p1V@uOoctcBm49VEpU*zE0G1ns|as%Ps9}5}(Y33f9p2Mn5M?`~&7L|S0 z7}}!WzusQytxSoaAxKA}e`6(^U%=MzS0y^`If-1F7m(HB^t1~HyeP$9UA-Dpd4m)! zKY=AvD!-(n&>KK;j~F4$T>mF=x1>t}zw8Zt-cNa)Mu(}8;3041%t)s^^s zSkFl6cW^TC&yKj^On~zY(_-a)HhgN*Vb9XnK;~Bw(2VdKNnbCsSsm>ne-wN45v0(w zm>o^x?duyJbAs5T*{5Am(9W9)LZ~J&kd(M?|doh`W97vQ{Cu(&#l32B>;aP zFGnvzicy4ByVYLfZZ>p(U1PN`gF5c&WpQs;4`na>xS%06EKE$b9rHR?g!OR1GC4uj z6>#YibQ)5;aI{qBF|n=&l9m3$(Dq4!_E)`gZs6bncdm@h=v=c7y)rEJofMo5?@TRt5JlI z`FF8jl6XF3QMm{YTa#|+#Ab&os}LyO{JL%UF6zb;JIrD&JEVLlSYX-q27(If8R7hQ zV0b~&;6~h^(i20M;g=hK>jk4f@LB}YnNyWiD=(?Yl*86x6f*P@_9aife*^Culj*XS zb-mu**BzB%m!JRWW+8RD$R>O^e(_SkVT1SR?DB=Ey3%g_NIL5=5(OMmEkJyHb*EGt z*-q2AHN(HrI!?wIn|~aS#n2865F|h~Lg%eDplWy54PWv6`R%&efkQ)ErGo_ptZ}UP zc;aXK`E-EqN8d#FN{zj%4kWiaM+)qC{qq-hVnV8|mtoU0eF<)LQ4=<{VakaMRHg@) zyubi@GYM?gdFXadf=dUrS=>QUA3ztXy_hSFS!esSfeD(*%n`=TnM8|!eRou}l^?mV zkW6{0;0;E*)$NQD?Y>!gaP4bm66g_)>MAkb^FiePf3_KV0ENbNOrpeyq$5fR@-9;H zkr1O15U^6;G7k1oC-?km4aJ=op#g+(1gdw0tafa*|TRax+7qZx-#%MpnD@M`my&Fq$pOf3d zZYkh3@NBaSGElY!%cR_oos+?vnA)ask~U4oN?2C0hwl%F^dOIC8L5oZZRT%%Ef&@B z((t0Vu^tgvPN*=|b8iA1E>o&SgSgsRB#jsTncOZe3Y6i14Ctc2;P(3@{kcp+MbF{= z9fehlZoFTxUhA4YTdu^C#1+jW6JY?PiS%ZJJ59vk{nyLoxY?Q#{Xn? zRoV+b`y_^STynwfP{f_*xl%}PVU#Un?u`EXJk^5`?y4(jwVZIk+|07%!n@mM!3H{w zx=>!fGUD-*xB}m@>2}Z*p&lpNZCY`||2bIBVgd9N(R~8B=#F*-ZKpiS^J_wD+}az6 z3m(5bd{{TL=oo9UlFW4b;4LCI6!isfPE3&Tj;8#^qRhvv{2|?Re$*5sC@Ju6{`-9oM zAd50M-vI12o%tn_P&~h6-lA|$vRhi>GU+n(IYcgCruSnu*GFM>S{?_CoDUp%r4+91 zU)v8l&A3y>8EjH~BE(&E*c*CF(%QSk`s^9?XM4ZLdtYWO5~P`C5{KyjexESVXsjY+ zU+yKEDEsd0aoYx6AZNotSH7ij^-YVLtrA6igOAM%W|M41=3;I%ScL20L9tz-)GrxR zGSUAVV(Dt)DeHl6=Y-jxXN!yDu^KSw=@d9#ZPEGBJCC`I!10^cUuZ5}-3f5oZ5QgL zwZ_|h>v#thoPxT7)*ac3cdURFdJ%d@9C4sWAgOWQo|s{e-oTgD z)R}#pKLTjG@f2wEmLHM`iu@I!kB9id8gPnmswo7)AMYT;fQ8n13Jdd-Tn`%9b|4pv95-$;Y5 z;+#T;Rcc?&4Q|4gVx|`>q2ZKWsNL=>tb0878IAoVo~kYfp8Ui;K`P8e+Yp6O*}Tz$uej1WQg^rwk>R|q>UxWa3KSh?8cmb=TcGN z%yLX};>X@1ZnE)G9HXnha%;ABDtWd!-P;N1pn77VymXB^a<3Pn zPX8@jue!mt+W(19RJcODgQ9XkGVs|l1q2$j)8w^;k z@NIx7ONQ7aV;xKp?vHhFNvh&Pf!8EREvw58p4t?{tE*l7#YDniY#J7@K1;s*86@UJ z=k^M$yaJA4b0$~0$^S>^X18{H}CJ=^V-vJ*+L^^oTyuz2rqP?+cyI zW1eZ&7q^Nv2#1Cf%4=Yrq6+ABIPR+qX!gyOk>|zRo6)6s6mc~yL*b^8+}M;fQ{v*~ zx((D^8(Uchj{x(T5F!#nt%s)Pa~~vJ@!P!1sr~Mw5sf@=N{-Ikm)MJvqg;)!RQ*BO z!V+ob?f|Th^@We%z(6c^6ts7V!}+&k?T21lG$rhaNU?ZDchjpOh0XkLWpwR!>EMQT zYAFN6X{gH`m3QKAbrgZy>~qMUQU~z4`h&{v=5CpuO2ADrqeBUQ$4*2IW-@#X(q%4= zqukf$EiAt1pzx)}eCvn359e6CGU`yVk~{hKMBpS;3q_uODX$z{v!*TEjP>5feG%F@ z*!^#5$bIZsO^W_?AFJ~kZif-zg(nR_tO@O&hbpNlO?X{>bu$t5l%|x@UCb1iV=C&qgq1ftSTeMn3pAVTT}%AZ|r`(#Ae&ZP`-ZtQ_W3vS;g@sBEPBH-?nN z_Prm1zcc`sjkgY5)fJm+yRIQcst2bDzTc%*nSLkqrp0f+4PNQn*8~dto;~CAf_bP; z2by45W_^`AQ0~$2>*M)r)8d~|F6uvnMJ!!~r$D z`iZX`{hw*byDwN_c%z zD(9tVriJUMM^}!D0Eb%U9_#^&Iw3f_?6`U{&yPqLbkyr-yN>?5k@)U75aCMiQ0J=Y zg>0Z)$FalLaYVG5Q&52&g*v3;D~C--2|sfAU7vtl;vvm~e<`5qlf2?be1p=cmzVi% zS6v_8WNkFUb{6F)QQM(>E26J_gnpO4aydozP?WzJP{SxQ&UVY-SJlDS4X@EM0Vo9! zza0WwlLM)FjdI)>9H~$+y@M*eH68SM?C@nT9eOg~dDnPm@$+5W`*hzQKq`R)zc#5) zV;|A6Q?070_1oyF<5k_5o09h5n8^{jR$oEE5C4|gy}zND-FVJAo4&K(q)PUEk2Z@H zpnkL-*Zx+^G_UJoWn24bk7ea6%?ZuJ9;H}jeSgzD_rV|*Zo{y-aRBfj?wIhv9f<|e zUermm?rN%rWQav4P63=KJI0R9aAvI8)7Vfcne`PXrQKd^+;pP|{9VAcICF37X%|O- z2=#g~@DynzUEOcZMQnig4@3%ggN|zP^a*s1>9Ngey?oaV;|TjOtA)b+sbZ27tfDdl z5HH`YeM!76#{haOhAoxeZ^3MXRM6Ge2RYz9RWru}ZsC!1kC8V-=HVH5N2vcachfsC z7iZ3Cp||-#SZ30ORdnx+Anc3|UI8uuHFe4tm!V!^A%0nAE6HmQS;Jn9YguRf=8fNO zDxX48n({fByl=zwRYxlgT}%yv!#?6G2^!o?VS<|zFOb6NQ}^qa4r(pkTu(wE3~@^<11AC@I`|c!65u zN1S_IOk53tB0)g;vA^bDGJ+!Z&%+K6+ zu+VtWe)sFxLenMHbTU#pBx&p68QJV^LR1zJ_e(|peZ>_nArgoIY>QlL5s*eJ2C4ohuaz?9nE)~?2 zjvbaH8|%0MDi)$PhU(zvw=c-Kx6~q;QPZNkCw>t{Hc(wzoza3E;aWK{bpV5ox|g&7 zq{teID|-25_2Fq_@IT1Z~xiqupt3aKZpLevsJU%fU` zHe2Po_0GFIInDOEW_=y)0;lq~s?;Ll$C2A!j(>S{G~_uU4)M%e3G;8Y#N|%%`cbF1 zk19_e(^huX(!-J7k5*j7u9{(qDaRJX=f^UvHbS>GpGFzz_Wld|Y1@_JqKs7Q?_k6X zajHM4o#Oi8Hs?Qb3r>oa2G5>vavL}6GE<_SGQXuLBSAPiZWQ%g4?TL}eu8kPEid7F z+?_t+=c0MQKN57yqlX-Hr2N9bZ|0DMpEb}Qp@}N4n~-s|-2TG<&`NCFCJy2|qOWT+ z3y2lLehsjR+OT`_fDK7MZvL0x$$$NT%;~;a)BPGlB6x8~V&bazJsDM}SHJ75ij& zw`+#iVu3YcddC#KiQ&Uc!29vVN#bp%m&UZ%!eE$3N zNwfL9UFI?nd}{IlbR2$%EJXQw{Sr*bPC@QP_*hSz`J1cDq*G*#RR6L(`*xf=aYp0R zKD*5W#~7~g0E|rC?%)2(sQ^d9D>LQUus&G}^^eD`sV(A6g4EMQ4$+jloB}A`@ckXN zX_lIE&G$ur3SKt7#cZtz1J9$4bhe@^rs7O4a({Ak?6>;tnzkWLq)YD(FXs-fFe-uG z@e5+f5WRI_Uk^$xa}jQ81Jl=nw*nB4z7HFCSiE z2R`s#X0;>F#ydN*YwBzR(ZdO_JMkY$aDgj7B1Vi)8_Fm1R@E12?Id-&Mzy))vBebF zQfFL3SELC*&(vF%M0kamQZl=0(_c(J5z()#4x z#U$tbly{A2ezheE!Ci(YaYw(!l!D)3j*qdzy@GwK`y#n@(jJMJuQWSwdHg>1bie4D!zHEXuCtn9rdIK$@o z*+u^42==|AY#0YN?Ut7DVhxb43^ROl{F`;y{uh|HHUXW0IjFoG zYS`lY+BxayDGK;7E{}mLFc>^Y*?~H7qUF&u7gRZj(?<-%_&>>tr&LS*C^0 z<%+(~yH_Sr5wV|>i5%qmEuUdxEv1l*ODwSder$@SE?T%KQ>Y`0%k->BW2jsvTxk7y zBgBv;#AgR&aC0Bznva#2Sb<}?|J~;X|26*fUo&lZ={VLK<62~%+2;p+!?nS!%){W! zr`AoWtS;@CD2BJkBT zm6%S>oRihFKppHZh98X~+4JW5+s{xvsA46+#CrO6-&PKDn{T}Axkf$snNjfdmGw|M z&|L+YG@V42-h*n|o?=Z8%;%lzQ<{~joayFU{`Wv**Zs&8oL42t3vCiq== zlVoidl1Mo+eit!YXTA@cCdx`dNm)13dE$0g&F@!xmBZ&)H29YeyEPP@D`NN=7x#t~ zu>aTD^>6t`5f?n9LdVF&zKgyYVr*kYi&%r0#l7-z`TbZGL-V$I%JcYUxcl38r-;4q zj@Z^N%WliNQ8By|wwMlwpeDncT;nVn#uWE&eraj-e*E{P4ntr6t|Sr)*48imL?&#S z@csxypki@OT#jLa+T`LJ;rdcJv^R8JiBXQTMO?#bbV1WGK<-5Xa0q*d#sDx{4f(_) zhShaZ)pdy!B~JuCQ@LsOo=L}t(^2s8fMO3XN@HX>Nn*>jJC=kJU#pMK z{N89g;|@_i7I#%b)hS$J;91@FrtFX66B@iWibmas6&O;$3KpVZ?IvDYR`YZR1p3|G z7|fwRY*h28J21nA!NfiC2k-++33Hhw_P3|5_K&5V1Mc~EU1#Hc9}%}loK1QlB^Z4% z)Dchf&U~eew!2;6t}z6X&7us8kS>!E_|*esA(VnWI6^UrgJ0!_O5407)|3_8_73{Q zA-J6a1+46Tw^m0MupBxEWavvs^Ft==L)=Tv^an%z&zHT&JcfA}c&l&&P(=bLlmGIK zcV{#!>E5k1n@QwoXMwKg#z)5Ys8E!m5Fw)-w?8lHX}hB#lUu5bYI=_q%)#x#w(sTU zGs$w)ob@Cr)1vkFyP@bj3FYFb#H9S+Dfope*o(GjFqzz=yn7nqS!L3kv!<5G4owjB z!{ua%g5YJR>!Kl_!c>lUrU^%+B6z&C_nS7Wi^sd}c46n{7lIm|o4(f$x-!ne5{{h@ zG7y=mZ}WE`(RE7!=-+&Y66jC< zS0Mdo{wO|{XTz{&+$uSi8ap2`2Bk;LnOVJ0Vby0Gyf?=^)!poN8s6f+mam2m(icd9 zhD+CLHp!xYkBWacV^jHjV~m)Vv{GtKm0|&s_;uJvTny{^FDTZ13OpY;(%(eagfTCl zllUr76k13RyYPy~gg0PN-~RCFEb_sSE3g=!FwGO?tvP8xz_bXVZ{gWA@w6huzOwNsWn4uiEpKE8rrIVtBCc47s zFS)hmiSP;pLN63P{g!Bur>`rFJuha0@1J|v~Y#};-LM0X&HOYrJ3m}<~3oOtUU&* zM`86+y90m*fx%11eA)BtH|}KUwy)Z<{zudugXiaKT0~Y|xc0Cpx)uqOmw6vHB9cF= zf&ztH@}!0I`rdZ6FNV`-!f2nGOPDgN`hW@b!f(U!!ZcklL}$mnyuP>@em8~qYfsES zrbAQjdgM{C0~SP$YL1)b+#VnB`!RD!AQ0JvO+A*+@JC###te}@leTr+2BG`qD2;fw z%x&?6?P3@E(fBW|mPqglnM|Q&jN~Ytk}>4DLqCUPPRL9mu0A}e3&t=@rV5W`VfAIh z3hOc+rNEg@fCf2(66o~)iL8SMHh;oXDAKv&glCwE8tbl-w+w}d5{wU@zVz;cZzf!U zWcKER)C;ip!O-aX-xiohlI{sP%wT?D$9QBJRnu>DH@Tm(* zrzpbeP(@@4=?X|oV?iiJUocG^Mfd5@s-==r!O$Y*MN_DX)k|DdQV7(BCkFXNT#y#R6#;7>O3hTk?5L6l!o9Kv64dvZ)nqy!UMO)U8j`X=q_!YLYa~M%Q<%>6xbZ7m#!ELy% z+(U~=rz@x4FH4c~g|YhsIMdOetmLGxxeZTclQ}zM6}CZpW(_#Pcv3=D$P$#pMw=jl z4MP;-b^&@)tusaYj{FgaRyw`1)C?tK3(EoXR?B^+Z37Sn@j18ARA(EUC*k%K=zh`6 zqS$`IyYHL`G1o0d`>%$W4=lGt*3kC-Kl|?Cf6wuMsq_}FQuo_j)dNDM1S@RN=0|nbGB4p9?)E9NWnRZ^ zqTNU#OYp2vlcTqOR;lX=Z>&H0E0Alx>*qDsT{#w-CwQ;3-me{i7=e=}{|u~)T?no; zF5ZH^jX$dJ!phrVHdcm&S%3pYx5))Kcgat>nYyoc)J|KHR1!|e55+@#pRp~p655+l zz1kyvLFTQiI52K*^;JL#z8Z5R-=#zMfDG=Tf>B3Xo?XhAE#h@0at+M*50k>4&^pTp zN2C!$enb8cOyjb6jA%i>CuhUQm)4W$SwN1o&EA$cS8D7ms64_EM8JC}>O31kDPZOQ z-nde%?N@6D2h$j8xer4=%~MXF=}zd-DSQ14O)Ulrnc{^`KCUOJe6PxN)i=I$-FtrC z$vUx5-EcQy7qoaIsO^<4^HPVeGvT*?cHVk?`d|nXCG$#1@N3i7u*jYC?&chm1L@IWTdwY)?HyI)V}33%ze_uZKK~1 zT1DFc^YF(Rgla+#sK&;hDxkm)1b|yoZSOxjCqDN)RXqYlKHjIvt%v4W(LDCI5WDlI z>_$IN#2ME%M$NVNrsS_cd{kbO%bwDMaJSUZ3ShOm%1PJyhrBQM&G}Dh zQi~}4Vy<6~k_O=Db9El@$}{2KVmntUY-v77F|7&qk*q?C)R1%XGdwNik6%TWT%V7B zPYw0|_S3(qgBKRO6OR0{z}+@Uz##3=U0u2nIIKeip2S?=4!<89emL>n;2+6NA>4X_=xvk4GSzFpo5LC3tj(hzP(X#PP3fB7WRV-oR639hzm#}z|v_9fKi_7(%PM8^Esr(k^?zfk^R${w`tM*ru5TaO}WB=syOT%F3#eN1FWl#9b z@r~m_81@Zif}vck|Juxe$DH+^f6WFhu);Y@I#f&Sxj2bZ`YhipkJi@CFkEOdK{`hrN!2Az}=E-z~Xx@5QU5EVm=j4_88zNgAd%j9r<@t`dZL8{6{%mjq zolEShJV?#6H5;8Ajc_fAoQdxs7o=36JRi8`%H3 z;p|+2D1smSIiJ0E4RkJKA?+x;KN6v zdalH4FZ}eb*#dp$%*Qp~`1d|H#HmaC+KgtkO_mhoyhM|(SneoBx!kwDy#bpRZ_Td>w66i?Kimul*Zdx z)LN5lGEp?l7-6GH4VO;qhXqC3i?UMc=7XA}atfPzF4ZP%C1x8*Z2W99_lN-K}*x-uYfSZ^6;w-LT)G&4~3|b>SM#tp`*TYaLa*uQK zsD);89Xi8k9n&SYAea1W#sZ(@)vxOw5j@} zH}L@>>YKYp*;-C09j~sew&M^X+kG-^#@~kwnjDd~k4LeYZc9p)Y zqz5{i7z&|7*pWSm-FqAe#Bhf z;mH0a)06svou_z@(rrPq6Hrj4w~A}QT#DL}l~8Ifk^uFRv!l@<;NcOLYkirtp!7$CS>xO!%{?IjW>2emr~rVu^=Wm!zwU zc=}4383r?H)HTAw0h^qMqx>L5@cmO^z5Uq~_GNGu`tk^#^iLhM<$3G|N<~3- zUHP>OlapJKd_UA~;z)n_PP+%?(2^=3Aj+Bie4hHla;1ylJ~F4ji11x>)-<{O^Ejby z@FtN(8xK;h?=(%yjyk#g9IVuOS{X&*fUk|o(ePE4n!@WWKc{cBL-QUwaB|=EV=1N= zjR2+ByzkYXRPwJLEb3R?Q?57RCkzR;grZpXyr|LlOay0^(9spz zqb;tI!DT6WsK1-E~WySbyWwn|H4Ww~FzEV3aZDXY#WDL&g;M za+xsoPkcaT+KJoTy-8)hxq``9_zFC^wzBjj2c>WFtg%CiN9HLme0aK zFv}Ph!88Q1evq3NAVoz*q%+6naC$6W=r(Ldg()iIKAXzqg!;aV{M$rpUdS2GE9ew2 z=>xQM{w>t9j_%d&G@={&?4cpDdciDKKT(*NWluR(FE~{DmRirJWwuX&_yj|GBe=m2 z#@!g&eJ`y{CZh$_r0X?*s(+bRr;mO5Vg5nQE#xtXDMaoKNi@+O7sJjYtW2atlH_ZD zO)#rKz~@`2(r$AZ!)m#8>2?_HL>^#_WBl;g@_-TY zl^@>q$a2l*v3kb%eyb(?EoU7~8P=>wjK@{ess`nvF8mLU2;l-P8JB*WoDeD~DSPY0 zMy6TP>06G_g!G9=66--6?a0mnKaAgM!@Tnb`GbbZ!*i~`2FmzGQ8;L{AFVJO{7K!~ zc;`cG>k(~M*}xblOM$V)9p3}|X?^0$sq(q1MiQA%(OOwspk650DNRPBit0B0w)F0a zrDqd6vIvq|!Dh+?2e?R-ZF_V-zOU9SK&QQVQ&r80%+7`hrccve%`aJ1O>X#*4VIHheS%cTFSRFMuZ8`l#LF;5>qYQZHzP6j_uqs zBN+$Pcsj}m`M*Nvf4NF>l$c}!L^I9^;#`UbHBbDSbTm_oO4e|CcrYBfAtN@Y9dEw? zt_@0&(#t$v$(eUvI6D5eCBkbA?)AN>H$mZshdpzMLsKAORXUPAiyKZLEuPRpo+H6A zS*@R(F+nUZVi3M1Y`PRvaN+_^_Ijq=C2M_XQLp#ns!C9fi`A*J*bC;T1Kl)0I(A`p zvG*12_>}(Rj*M11YT}W78}PPIs>?g`br5|q7L}b9fmeUfGfYstV>mTmRkW}sxyLs7 zq5;_9EY zn??JMUOamHxv)l|Uk#`ENNvT3mF5*jp*0-d%eFH&;3tUB!gujZm zs9Q(~RCWHaaKO6N!te5H&oKRmtPsFyvv*Wy4kR^~>Aa~+qu<~7+%-_!q))R7XStDY zVXz4m1wOW)-l6Wn?qYBh^C&D0w5Q*AF)lL7UIqo|UchIsAd&R>-}}&XEo&>`Fil&J zk6+NDq;e!f_AyEhKL%ZLGg(KWC+SVK@)6-i`N{?`MtkG2s&a?mktV>XXhEDlP>5Jp z{q-NItu=mq!)*XtsiK}G-R{4|#ncV5Q7VosUs~@5f)bs!?8CKtSZNT?R{K@RL6#}` zwk3|{+fV8OkizD}R+S#^1PX&+WLn=(f=;l1ChzW><_-Ks3BM!P9t;lPJCvq_pK4|# z*}(lolja|xg;2Wr-M)A5awiv@rNssJzLQg&6XaBfAy7S0yxfB-JQ0n`WM_NzG^9zn z07G)Ibljt!_Zk1Q5)!RH>*+c6B3~rNzd=0Ulhbk)-tPB(|IQ{-=Srccv`wo2!@G1$ zy;kYRJY{vTMpQG|5}P7HqJgKcupRj3pjbt;!smOPjwSwkGr1sKohJ6H((9oxyH^|E zV#02%^B?m~J@7(um?NvTeZJ+5DO&eb3*u%oG_rkC%w_t0+wG!6pnpE6IjO?)sbkNF zAN#`fm)>Vy0=>Q*oF6>VdZ9nm`SyP8SA?jKzR1NW=_FyfBaM+fkKbCDXVuw%7Fy&3 z8^4lMPWV)`E&J;I>1}<0AP6!p|SVwMs6-S1o05ZxWuUizckJd>5`4gXev2wMx2e}^P~V#yXF$bzug8N{D;;X)8-g| z`ZnUEZS7wib$-cIj0h6e@ac`Rrs89mm|>gpi4>8eMQ|Gf9M8lEa;wPG7Fj^KKriRHvNgTkn{L7V^O{^`56O8e982Wv#5IsZI~;qFOL;ke9a@l zACkx!H|m_K-SvQLz%5oYPVqC+cr*NZ>!V0aIjjlV0~bmKPYYoH zco{T-Pxf(2@!r{a;*sx3Py)YXr)j(#s0h`zY7T)Q;NBxB{g>r=y8#75@5!N+k zLWii#`4Bt6YnuE#fa&nSfr@F>{5Kn^B2+7CYY-nPsdb@ACig6yj!XO&sn(7LI=#q7 z`q?q(VdSM@2o=_W-3|HK(EwW*yN{ME=|baa2vY>^m>8JkhCV2VBjFFHf-lM^iuswt zNjwsP)-^qX2K8bg#?0FL`4^I;m#nMs(eP1GL#R_PH13W24f#Fpg|&}6sU2hXpOhtT z_MjnGa?7-=$}5-&pqCar1I{TFvl2W5PySG;(VIE~_A!;m07<62FntrUI5G)+Z>Jn1 zl24UmAjQceR_?;pujJxZ@ME@9JOFt&xAz3`3exf4`XQr#BsdV_7)D&6JE~YriE4yg6 zXvSJ`n1Z^vH)sP3bANqom7->xNkGg&G;~mC7dV;|L)vK^c;tj*?vh8mbnc1lnoLKE zDCrTk%xuB%p^-@2Vp}xZv?&rCcMw0MFn$$k5|*fir14D$UNlPoA3C;OoZ6-) z*c)gNw)|kj41=%%ntE`WU$ybY@bUACoJFNjhcofp@^sBMr6j+wm{$tAIr}?jJPZGXH z+Z~(*cr*7&oyVcKi7M_Ju@v;0=Ny;(=C574n%Wv&=S>Fk;%umOj;Iz4B5Et+_sijy zb9|KQwcu72;>YCEoo1mSbY|`K^vw_r0d3`xVxi>?$2g8AbNVNv5;jbkz2OClvoxm5wEZ3~%RmQ`Fzuw?zunY-rPK{8th}5l5!| zN{IYrs2@x^hctM%oJyph4(57Wr9TGPI?c+Q zEHlYy?VW`E9M)M`{-D8|ynka*EVRtaR_BYx{?eJ=35<7dG( zRMYTLTJQ0M?1_91W}sRE_(}5j``&K}eHQ-o;jd}-P>j*V)C*Gjw@4W|9~1no#2-ez z0P}F_wwBVisa#Mo>>$@x2UtLyw79KsX;#on# zBE?Sj7!x8exe12b%!8S(thupc;fyTlo^}1+?qEO?v-WZj@itlO{Lw?O-#`$4=Zrx< zkSn3>>`Di7pg~^9phtr{aje_G5{VBT+;+*?LogzCkV6;;^)a&PdRR zF+b^0OW_*e&r^PxwDMD)qvb$eoG z1Li^R*+;hD@(tdG8Rqf|$VhBNDG2^v7JFPVESL3ZsQx3{fv>?bT-4?*XgJ$mHEOE- z$}f!lsetz08g6|3f}pQ(aU;oFR);;vpXAU%LjB0aOyF;orElI0Yu5klomgI z=B>wzZEHfcuGwt!-+C$T*ALh!LY7NQEPv-A4OEGTW3s3Y zV@trNkO^{PQmQYRD{?km0giEDzy_BcR1k0N$R4I1_^MU3A2B4y!ePji0ER~y;lREl zI-@)q--8g_4*X7UE3+aghDZH#=}aL9Ux|pff78df_PaYSVk|mPP}+2qPpBzVAs1=V zjT|gf_eww+G>d`W!{o?QIGKF5i$!sgh|6b`@BhixCaDFxGcLF&Ztz9>5h`sN|C z{%;3xnteY?FPk3uckXvwOv1LPAv-XWTwr(B|F>S&6@qi?d8nu@vTyaLuZW0Io=QP8 zYHr?MGg0V~KYJGl+Vt$GegFcj`yCEHkE8F3S(ci&8k9#m zUJwOJhnPj@;DsF}_QpuhuYgq4Y^^IdVrLqvmHJSB)s~)bD!W=~%_@3P_oGl2Axx~u z-mm%5GrXV2Fb2`ngFl>0Uxq-(f6vC>!3@HA`RI&(Xerm zMk~|Sy0$7L9UMAKBvVOUjCy|@|Da^86B;0sN(fOBD=T%lPD}IOF}Yek0h{XVgz4G2 zGG~q8)kY!-miLhYA(1rqE&nlsPEvv#gTirrxhTw1fXXfu*~L^XL}*zEIh{jeDq<^! zuj`5I;3Ve&?sAwDtFpUsJb#|JxJFtq!310ml6Cc)2W(9LPR_RX1Q?YOZZMNu*%jPd zvr^PnoR80Xnq4n@z6-_J>I_t5yH^j_mpnsL&ksrgWMaTL=)vQ0L&i>^7FOluHHrrt zV9t}{;KuS*e+84euwWbxyH9p0Ge^_VbtDYgUNS5eq|GaXl>_)!T~pfuBG8kq3^V+N z8}u&D(_VK~ILa!FST(oEc1_sYdR+qX6+K*XM8}<>i}WP?zW?uFi&XE?qNTt5gxX6E zF;wn1LpOy-@9PgD_bQYa1fLM9IR-pCR>TBTFJJFE_0=4RnA+c?cjWR()N2oy-F2kr z{Z2l{B3QinX}HnMx_*da)VJ#b&6Gl4Hv!ih_UJ@XL~L!dboF0 zuK3cT33$@>_qlqBKQz9JEm>?V^HDM5b% zM#fPIj)LZ=Hh#nT8q@Ej(06ZYVd8%CqkiQ)EQ)2mb=QhmP1HJQ;3^)u3RB~i9tP6+ zH!CfL&Oj8;Dm|Wwt*NW?W5*=3Qi*n4L5LA~gfmlTp$$*`Z-SSEDodSr3;EB0g(x3k z-@`;PSZG#(Llo@G`ql&N7wCtl<{Q|dFDlXd)kwkF_9Z^jOuCrvsf#LV2gTq zeC*tjC;!~;t;hz86f22}lh2+RHd?aYm&O_a1YpuL5!n#^`_wtofeDcoPKL2hWl@?$+4BNK9$-70ZC8n7{MuxBfrttVE95 zYk1E;$cU3xU!3>xWO8!~R*$@+{MZr7`*P~KTSgW071wMlALKF_bCbkgtbh5{=dlQx zvxn_=>RoVkbV4f;L!yC1{hd%a%GN4(E?#_@oQCTm<@3Til?ax4RyMqxpFU;g+37BI))P+o z##pVth@d7hb;{@T?_UbX-VMcEv>S|@2uq-7#PiyDKTe|F+(or&_?}~} zMZiu$@5CDa7=b3F4AYAh`+h+yDNZ= z!gfU98G!amf{8joFN|RS_9_Bb3HcSjf+*c64kG3jK}wu?cANXQ7ROIi&G}i^p<0|& zpVqYGTO)7aI_uL9Y-b{hmt+i0K8c6)3MD%x8J5@{yO}1sd~@;>u5BrU{WTqJ8?uqb z9kz(pA{!&imzji6O|fIf%eL`$_`5XFe*{RN{z2imqZS+W=r3=2l6Zn@XHAcfp=q$t zcSVw-X*&8WJdzcx2p1z02;`yFug_oh~GFfLa54B%c7i@=Rh3vrxLEeoJ|VnsdSy6FMzf~0n9Kcl;IWE zWmWuBCr0*#ZZOO85xiu}7I)o>+=yE%BiuG}{$7D{!V!(YVmqptrvoi5e1x;kunX$* z0eIm|cD^cKxsCAvkGt~~9>>o@MB7&-FM;KVCSrB!t2DsxjY%8t2H+U=BIDlI)pra~ z%(j3&YHn~CJW9761QaG4y6OB!!s3tL5L)@eQ$U!r`-8C5HV&uPG1R(#;3o0#y$49^_!%DOP5y8)k^#)ut8v^JRq&hJ!m0U%i3A?E`p)t1$}Uf?&dY`!bSw) z&M=+VvNgo;1f0JLTm1`s#683?fgf>Q25hB2X#eG;YZ>oEMc{o?DCnPkzdSUYrL-q^ z_z>lkclf6C75Yin8#*d(B&25CL8DlL(lt?@LI&rh-;ebX6nl{KX9xnR`F z4nDXZnRVFI%F_r~(_qbb>_J_gFY4G0eWJ`8Fw-8e?^Zt3#8Wh@wRHMg^&aI4FB_>3 z4i$E~HNeg`1=!g(Pj}Y3rTvbMc7)nuKEBGz0o0l6#5xx;fkQ@e@%NOt^E1^eo07Lg z7RP=kTrIBDiD^86Zv|0I;=4E_-qmbCmM-!HUKKH9DZD&X2@RTTYO`>Ohb;JUf0ig$g+q7BZzinVYKXCf1U>^$f1DoUb+~2lk z{WU2%ViG#UJ7h^`<7nF9-@P{UbzCthcNP!S-II~S)OkAGo1~F$rwgpoL!zT}U}iM943T==|F(EnhxDCyd81OQCNv)H+>3`{dU>dY0~%M3KKB3^ zJsVnuzyiIlN~1>a0e#CVw8dtw5B;G-w)qTOfp?>M0*qu%D5oQcWGo?azDhYiD8ql+ zhuN2w?;W2|U!nco)e@yJH(`Zd?xGi($9q0WJZE(lmw))>@zTABb**QK)Fx2v~KgB<-ry|dD0{;*C`=vO&->q)Y zcbr#(d|W~sZp*KOmg_H>eO%X$8?9gR&%@Z4x?z{idLY%~B;W+wK3QFYMDIJuUkaPP zuld!+XZA7hDoS<4tC;P31+0Coc_*#Ud{F)CJGug**p#>5nH33onjt;qlMyYw`~G^RtBcBtv+{K?gkz=HCN_l0LgYcr_Q#!LDov)UnLn3g$qR_^ z*A8TJHx-@1+A*}iV+Sp(EwWJW?5bzT7e6TlyTsaI{LPi8MxXiLiFw`%xS zEpyA{z7UISm@tB)L#Ym!k_$eUvNNo&$_;$(@4#U>H+{o6YB*j(Z}60nBcGxW7LlsU zd8Us_7IiVrG(`a(Z=PDx-39_rVTazte>PkGSj-KJ?MccYRfWN>@y5k#c??Wnd>br5 z%RFDkL!ON~_FP97C#;Gm`ZCNGZ2;or0v9-rp(Dz`>`65ttX~qB1~R<< zgJkfo-0p`<2fD`J!N9eou-a#?8sXLd@(6BgFMQ-E`d+7a7wa9{UJi?9wV}?0I3L&y z+%B>CCUL`9BBQ^@?<6<+xt_793nQ;EaeOn;j3+b+s6}%S3&QVatMhI!N6E~#>JsGs z@$S{dF|f7hzMXp34SMP?JQrL$v;|&sN!F?oCY!O1|??qvPDL0m3L|iL` zD6_0OS)5;!|Ll6{)XHDrgsF1(VOG$M3%{8o3ZCK!ue&Ti9nL9KQxA6jFo8#_6z@WS zb}VF{oqzf91A@-eMi_adZJ6(A2EDb~mS4F&Ed@6WmTXcBzE;eIO#CZhZ@u@q9|zLq z(1F8z-}UEGvYR88^(5AnpM@~^*!4PWLSMdRg&lf&~T&dQ!t3W_Ogp zu?88~DX%5LJW;53|NQQ-W3vDEL@YZ|?!l05of<>ury5892$$mRY|7bFj06hAd$sfo z*?sT28{Jg2{oF%O({%+ZEk6byhJ9uqBFX9`#b&=aZJ7EyF|a|ZCcQ*15Hc6=#7ZGZ z%*B}0zwP$`gLx}*Ja=21br6I|Osha%y7@tY2uSpc$zJrg$sAU1qKv}Anj7WVNk5#{ zKd&O>{|pX*vg!f2KB*dSo(mk|vIJN?id#$2^2$u?<~>$&e)VjpuDQRlV(})cFWM^O`bDep z(q+`?Na~w*yTM!28xpyOuQ8{D5x#HP0^2{8$74xlipJ1L-N&w(r_V0cVQ~$QpE@n4 z!S4MRpW1R67b-O99Wq@n+F<}ELXa4oN-CDZz~RCxB$~|(!#=2l2 zITZW^$y_xNS_4#o#h;QcBVZbE4G@;V|4bBXpnuJZ0dd=2egky7d%2aXI-7ep)3DF} z_SKdk1^X3LwKz2zEGT_t%ip{#5Whz8*rBJ5;F40Em$SyMv*;QMm_;RMf3i>_Bht{E zkk(eG2=W}0T*YJtm@J45V&AOD6pE<)DG+k;4V$FMhJYu;CKliX;67$?#pL-N%vSbF z2>69MyM`;&jaguA3qurfo4X1JQ?wk=gW3&>T0eY}3pYh>4lJDu&Pk+tmcN}jCNTPK z@FyD1R?2YMg_7kN6mtmKZRkzB*@ z!$r|a9A%UJG3`ebtH-x@n_<3LH4bx2Q5C!d2Ybp(Rx&tQXBjTuO!+@Y3Q1Jz>U7%p zUVpRR<4{T~_YUSYp@4$TA;6Ag)K;OruTlFlc>M+Zv-@N1#r$=Kv-bwbyKn#N&qOLb z==1$|Pd~yUUznp#^fii;;q~wuofbLB`s`1hhn!?~a9>ON;;Q?i2?ll$l*~sJbZg-A zoxj%5C&4Cds*JL+Z1js%66uHTV$|%*JuZjF=p43si??L4&bG~^q=vo=X#7`zgvC#! zz`J;83t3(Jr=Sn|V_(>!ho6S+s-yOt=}>c;igx69)_*HBbWvsK%vKh^pK#f|nDA?z zZjML_`AO%+J0`^L?8;F#wuI?9c*Z zk*D0B%P>-i!B7^RH- zA6#bCrt(Kt;7bUkt~zt#zyt*sb6fHe(ziyr_{D(K&Akv&ih8>GTx zQ};IDdS4jo5sL!NM1dH_b0w2-u*zjH$XaXq-a$2sHd*HO6ndgy&75PhzEl;Ii^ESzi$D=TK90khKbe+k|<9eeY;Np9r)vUq}bl^Pk=}v6A7QWKc z(J`aBMz@_7S&@3f?>XOSe9ZjKOK8f#5hguq6^iWDx`FUhn&J29b;nYPk72(HP}`Z) zedomgx}XWx_0TjJqFZ`RfDxJC(S~M$)~0O`8+5!c6>4~Swf&H3=L=uncvX?rf(BgjBXS=MhTFv@+yiYK;Druwdwf%BeC7A$!iV#?L)SYsvbwJO;wvzqa9V) z%eT5=b$<40oR@Duqh|^4v#t&jEqwx?M*dMn<#cabK`}Ja4<#wRulWd}=)K8zhmW1{y534T{)({|$ zv0Xn-zKWEj(s<$KEj%`*0a0)KUh*%|I>n|<5BitLliZ4|qc_uNQTF;4^HF~0|Lp;^ z+&yFv#pl*<#v{w6v9Ok?#r6i&GFiepr8_$0eS#BLDofmQ^HClHHGXHl-^M(MLhfa? z4k7Opda1%BS6A!YB{~Wsf?9erD5vThQQ=%nf|`)sd@pP*%q|Tx?H|Ep z(Wz^Vv>q-^VwOx1n*%6R#YP+Pm+dQGf(GIx3Q?Yp;}aM!OL z`%ab!f|8bj{)soi@Xqq5kI4dC`KRS(a9bIQA2F(7lC?&{d;mG3IfV6#irdSkiX9*$v(YzedJq|74yFCX(!zlMo12v7?<(u(^p#eriW-9(@G1|mXi3&0(B;^G_>~tdl zwxd_Svz*_l&VFxR?}8Na1OgHgkp;%}LnQ&x7R}Z^22AgROuX1og16VaL@Pu}v#t%~ z!5n2{R9m$6t5V@-A##!E29DLBW!|CeDpyJY+pTn0(th!&oQA^pANIU;Uyx(wIbKRm zL>Fe?j_OHyGm$d8{>se+aF@a46mZWUiB?xlV|Q&auApm_g8^9ZLtn8P+DhHp=5jy9 zch=*CV|a25B6W%IRSgs1#G^2*{sAkr5`uK2aONb+k;JEIjIBIsO60V5HxPzJ1FA;f z=?}!|Ad8#I5LNOy*R=I7m!KOhAONr;0}5?t z43E?M8(Ig)`kzWDXkPyi?p}tmSr6cOSMQJKyEJAVr*h;)tx3l;6PXd6QWKIUR*o2w zt`YQNKbxShf9AkgY2(Dfd>HvK4d>g(=1Dhy<>U4ADCxIEw~{({JH_0m;Ymj8k$p9E zoHhcWo`ND_|7Ia&DYqruh1gNlg6E>P$oerOqndixxMb6;F4FI=nac6i*xreNK);oF zGdN@>%wMMt>{^IwXN3iOR9)%_(Hti32vl>sS7_==wC1!m-pUv1Q8Ij7_H;@+Uq}23xVmb{WgA58{yR ziT;AHM&Azt#`_6%-@nytqVH>CN1m;Wc-fZ7rs-5y7(QR=UP!K zc0{->5gybZ-VUw#)(5 zv?f;f@7gBb1Ml)a!MMS_RzKpeopBm;7ixa>5*D^^^>V|LeTbt}ezg$pL~ckVmC{XZ zQTeJ@Lbf%-=QmKuJ1BT<7dCaKS$q+T7=*EV66kts^D%h+64w*mg)=7rsNdY~2aVJ{VF?m`F$1cy1z2FQj+5H zIK#a^%NZeR;;ab4KUy4wBu%d|;*rIBtZ=y)xtAjN?@%IMGQHgYAC_N)e2ozGM^TUY z<<>V6#N!c&xGbTLAu`d1lcQw9#gK?+B9yg+YFTw{=InV%uP=o6Xyu#{TMLh{oB!p} z_B92I(FRRe-uwjl?YYpQ6noR&6~f{KGnyd+In^bmNUO%$p%>5!Tu?1KwrpZg_JN;& zS0+QwKuq&(WCqZ?=zn+eYUg(M(dLE0!@5%5lhmcTT#TAwfh@~Eh#Bu!A#x6^QwNwC zjKnu6rtC2T%Lg(?5AV-eJUS4Ew~we%3*n~N0)=#%BKF3Laf&#O{v@JO5Q1j!L{$Sq z_a-!qVYiS~+p^9)jmh;@;f@x#&kaH?R_6^UkZte`G^z`{P8ta9mIQ556^dzqz#lU7 zhlyvB%C=6ZOZj$};hVtsOCXM!W{vF$cVG2^>+k5R+P@kWvFcgTgYgqvh4DuZ<7 zTzG1{H{aF*^prDlK_Qiv`g6P3DGz2g$}p>JNWImb7ui~it);{&XBDhL9bjEcw_J#` za`eeIh0q^dn33z7aLl<+d5X?SH@#c(r{rhgv^k9+&MxA@5yjupw-b>Qg7vw||N2}q z%g}Xo$zyDvL^|wl3TznBi|GVQC2v7l#?Z0{RuJK1Afq!u`KY?~K{AJh@Witw^T!&V zQ~XRZ9D-;nZRB0?U$6qK&cX*r@~pceBn28kkF{t4zxyou0-u08{q?sqO2A#J-vMex z3Si8jNXoiYB`Ys@hn;nARJTm#VEMXzsOP2E9@9rbE}O_+s$)W%XoBjNu0zSj-ZfW) znl0`_RpXmIOQR2zf-y6Vr35HA4lO7ib^ObE-^EVv&n^xcm42;^LVbIBSAIj){=>+e z=5rUV$W$Z!0yu>$M0Ppt=+14A83C^!f2bn7hl#A_wXmPF`0WMOcn+L$rfE0(35LSN zMiK*Nkc>HDc}A)ib`K1^&x0;g&+cgE1s-|EJzk6-wA%0b4~sg@HURNW@VM&b`KO8E46*mi$)1CxX>|$;8L+05X42d{;Zu2As z#%=@=I3ehGG7@wo&G4X489z8tDYTK5mB}~zWils~x*vVo-BZc?5MD8)c=r*L+&pRU z{H|7ZLRdb_@Wn=Fh+Vm!2P%rXyr`M@enkD)c0Q9$pjxr%@R~tv-?=Q~qmFr;>pAy~ zMO9jL<-C@+_l7LvWMl<9WjgprIipm5eKCrcTfZ8GNL6RvcWR9obhyqPa6APlhHY7h z%A_Pd%CX9z7x1_Ra3MRG4|Df^ds7|5nXELo%w-ui8vt|z3~DRutooL~!jv;6)x&=M zd$n%XhBRnaoq^pS{|4WJ^=v9wGKyuJE1T;PXS-v^d@J@;HBg&Fd5cp;WWUD;d zNId!XCO3%D$YA$2xQywMK~eIsIdaX1B^n3JqxER`VsE?!*ydW?P~gsP2{j8L%M*$c zxz_o)o@h z8@hfS3@mXl)HW4G3-7K|2}d`uNhJNGm{`hYHW5XT%MfC$*Qq z=Dg^!oqEb%Km7Df$N|oom5`24nlE#X zc%{q`2RMHOZlpR7J%P%ObDmJB10X|c=twyn3~oJe<^Q+0M%|=2Epg(X9EZwZzNzG*4q+bZUrOG$v~^ z_W4b%_{%<(&8nhLK2L>@iDHfDBabRu$q~uDf^b29B}6W-tnoMC0c%CjY1mjvDercd z^)5Xqt20!oW?MHg39kI4Ywjfxp;TT>O|iR+l5@lokRO5Xx4i2z_0=({rj-?KnM4{U z@Ikho);&e;&}1U0{L!XKVtBz5@R?K!zL0?&nr!)Y4WoV&!Z%_mrWdhy=?wrYj%#7j z(Bbk$)f5r{xNBdSfRxIJ`}MV&VyL7Pc`G;h2L4r^kbZN!txSJ0V@IdL05PUdfjygQZ#cms$04(@KRJGpWjn^l=5I3WraIiNMmjMB-`4x z03|ciTOA>Jcza}!Ae_kShXZ#ba9nd3oue$yu|8uiAERWcFIZb1k~abrUr#KUTU3F` z?PL}~zmK|(;=97XHu6Q7ww_}F=QYpc<7Pm^3i#)}Jqa}Q6;`t(v1@OiZ6$~4ebM8V z000#Zus@lncFyg6KKHr&(J?($u6HG!-#pFR@eZ)=lS`p(tj2e8)s>s$-dxc^nZmh%ULZ~$Nx+x@Zacva#5=0(yYxUNxTu7SkU-Pz2 zmp0)!7sx;}6?xl%1Uh>y619lO$_ws;2?QZ!6bN#~ZLi5(3;w4%O7W!vXCZ6=36crR z?VCUQ;sW82rE^&5uaTcm$2BajiBROH$7=_g0t6jymM0)klz;~vVSpc9?vxphd*Qf( zP8~INWYp?RwORZ&Jj!Q;WIDn3u4&}MmY^-g2ruLCV2$nTsv%x}FddF*@f!;c?jnYz zLvK7QWqy_Xt5qB00*PgJCSC33bH3z;+jJg8d*IHl^8Ni*a<*^jwRiJV=iP1br^#h1 zTXMTFwV#Ew15$mRCrJ|InKD{pE7VXL-`$Mw9h`vc`X|9HM_%?9n6Ezys0Fnfp+dJM zHo(yfK1}Sq<)A|}^CwKq&UhXzl`y}vODR!;+cULP>mD|~OnIHZ#KU+E3k(^GoGb}O zlfx4aj&l_3HKRRRy?kt+F;Ei_D!oTysQJ z219M0YtCKXS~@^$Do`J7V@u>``OZ;`b9x?}o-GqK(U7V4Rs)uzVzdh4Cs5JTKqt`U zaq^rFoI@-2H!^{tg|SSbO?Fy6dLDrhUDTu>Wp=Ep{M)z4X&d_(_3iI*?A3`#*k%(u z-|Or7v$@VhU~#8Z%zZ=Fch05XFPBWJ=82sV?%pnNE~*tP z1a_f5`oh0__r^kVmcIMFw|yTu^jx&?4p;nvcoo{|^UbdTV4=K(C2({A$i~-9qQI|( zaSAw#Kovw_5(g?`>>pcOpzHykr%+G~_Wsv0pDR>C5dZW8)o`E7CDHoo!sTST&oHmQ zj!8s12)oQ`n2e2~(#cM`tJq0Ew;4B>jPxXOk6rXSj)wDIPtOYDAg*HaN;^LxAn}g z+9*JF;z?er-Q%4uyxsG>oE2rb@r^+=smX4if8Pw+s1L^)`f>3lQHbs_$tN%Ao{H9T zE;e;9=xty=j@WSDoi0ZF2POrrZDI?=bUe7FRJY=~W<(G4ruE>K3o*}psPCTp?7D1M zjn*Y!PB7XBXmn8?Ed|P{0IXQG5^efPftJWMifMZ~U4*FJJ3DV};t9-IF$yf^J@UOg zIN1@}ehq)|mytC6t?Yw_@{RH#_((xzOVXEI^=E4`i^OF1%)^S_;3K~+PoKXIIgfQS zOdGlR?cpLVq1xtaLDTkp`t6>k1MykmyyX$OX%jn%jtxb#8%#hM56gb5GH}q0u;gZ3 zA-zS6hF&WjOUA%u2mez;{x?wEg%;q|rgC7uU3?W|(rto4KaUCsbK;S-OBn8;>`Wva zKAZWgvyVRQ3m1XvG)BmK_0u)cIT;=b+}pbxF%P5bxEDSh(~}=DY{! z3*@K^G&8c{mwpeNSQM*D3I zj7|z?C|+L!ab7&$4!tU!7=ykfz>TLkGOmZd)OL`th4 zIAxHJMubXGh|u;wr_IL_vieF282;m?CUsV$}pyO32lcNuIH`aqyKNPQ7f^7$MdO*S1o4X4So=DIU@r@ zIzB?%PYNgyLFV4Q*p)64wzl2qgrARiHf`=;!ND403 z5H0GEZti?ruD!0Z<UX+;toZJtL8!)7E7IikxiM=R*-c_;tx(85s>)XT`Rf>L^(nXRATuoEJhKDm1)TNZ_^A7}bOY}LsH)bx zI(1`tTmkKfc__hki`x`k$g4YA1PG5<<;^_fYEf`<>AJW8(caa1| zuS-wOH~1ov<{Pl1yq;9SXFat1h}~FZ{G%SVCm2bTCZbZl;$L8649|IDrzZ+#`s9F8 zie&I9oUiJ6)U_chm%j3FazvV7a~kA&F9%V-bGZb=M6rc`9_$rOFE9Q^-CwMmqVUuD zW9rE`S+<+hWTg;knF-6Z*jqe&{6SHk0R!LSpH5*+IKY|zkq^_~ngI<()OT0>n41|Z zc0lL6hhw`MnPc4@V}AR9@^_P-`|NK}fo|ba7Lr?l?Dh6G$ew1I?FM{>3JEXXm}@g#BNBvtp?yqx;)(qD~Uxl`y%R*xRG%7-XU zBo9cm;^3Fl6w)9~)=v6t3oj1b8_D(<`eAPj$7S9D!iDcBadNPlp z#kl)IQ6s-3${lc!C3;i{Z<>$m`n7R(5+qXZs z1OFWz#YZ8{ z5^ZyZtYF&bvr?esvm&q-nWC!G5CwB`PVpP_lcd^Ga899PX{GV_BsS@S*O%jdNsGrl%kR`M0%B9{dw!JbMyCD1AN`wda2au zecJJu0D@KuW-2P>k?NIkY*l~uqN4A3Ps(4Ze6Pf~*i$^`FsQ~jLVz{8aurDKOi6G) zfLau3ES1P$DoQYzT~{TiH-Ji_nFpeSf0zc0PiCNS` zb_@KaJ7NAm_U}RRsV(`U52}vhF&2(R%UCPsrf5| z{$uns#Y^(u{Ll1c-H5DHK6zlJjp}_DEAxs`<_fPEV3RGLGp4F_ZdbdE9)z-#s zOj$j9c)#NEVOzGfUDmIZyU-u@9R6bQUW^B5YXzENbr3ftR?{7Dg&90qGY*-cJ>YYc zFpn)*ux0kHp_#2xHhw?YB)oE52ZT>Z4gVV`!%o{(FCj_jY_Lgg}yn6$m%Q>BcmY?roIP&ng_N(nz+v_PfgaQj0soOHppvP6n!b_bkY{2?M1Un`X zEjw92NI>IH%s1HHtn2j=#@saKxlvDd4}mE6C7#0UcaS|R@kpB2OVy3bsm|wH)P2DC zZn|)T3hYeG0hxG|O{`Pk_AnmcOqiZsfiuHjVHl4@xMe_&RuGle&d}$hs42A}hr2M- zN>y^kUl%jOaoH2Tzs!@PQ;cAP>l?)9T`c~}uAP+N8Hat_QylsGnwgPCBJ5ah0VuS3 zDwO>XOLaU01aiM0tX?Dt1uild<*vo>9#peMBJlY`jy(NdXvlX;M`UMlr>HSeS>o$7 z&vT9`N512$lG}gEOE=fYF7~UD&@godv~$0~TqxNizz+;&`Q}%{R{=zUZ-pfVg<3=`P}&JH z#oDDXx`?iF%@a&Q*~spdB&S9SX*Jx*lQps!%r&Ut@K3qQsW3K>i>`6p;Y1UE5FkU* zNzV#NO;Tw4%}u(tpu*e-l`l{4ce6ohU4B#VjhrbvU01@LFZ)#)vek09tu=>e6z6R4 zOFCF?@3Q*V@RlEPW>mLqF=fEvI^U=}S`V~cm-k?bb)dltxh^V|RCIv++gE5H*-!tb2bAc~LilXg zbkuDpBG<09@t&a_4lHop@WCPyFQaolX>PqiJa+kIXauS*n(xcsqH z^}?yJ42o@8#c_AY0JtO^>OBUyJ*8P0G9v;3y&=H7u`bb4?a6%Tsar_y zwwP}|)T>*Ew5k~A$zAREWEPvi$kmOcc8q6HwE=ALU8&dFLY|)%WhG4b4#(QG^j2h= zt~F%eHF9UC$x(ZsdeodKD@}Ct6#P@(F42j-9K`$9cq-WF2s0ZrKPq$tko|8?Jwd=Y zWgW!bTq`F*dqP5ucTJRRPh!$cjLsmoA#utz;7YYij1D^WI)3H)XFPL zp>}(CWAe)1t+7@bbXsluIrOel-FQ~01s*?MbSJCqaB;>FCYwJuJaleGPWH9>J=x-u zm`UIpl9(Q$Y-5IlKm(85g z!{=z|A~W^9Az;sY37oF`k%8|)nbF}K-Uts|$fImNo9%gG8zN8PPejTbYBwWiWcJE4 z2+hJ@>I71lX_tc%f{nfLf>Zb#f0e8gwdC9|S^U;xC5r*Gxih^rxl($otj&)?VO}ed zctj*wDb8?}PJaY=K<9%V=EehoyOrpFJg*X?f|Jab$NN8Z zgXPx6U*tO0P&>t>Fvg>Qocnubh`@pL`dDx*=%n zS|IyH`Mqx6aVPC>v3DjR+1udwL>9OoR)gO*e)FppsHq`v#jNkNw2qzX@N5J;hhf8=Wz0qUQ8UbTSh%jE!cfXQ_hX#WOd%;GWTqOSKV;uEhf|+ z&f^=JX@0&Srf4LNV6OlBQ>x`OKni?JGWMf}j(0vS?0NGP-=^03~R(?5`tXPg7srN$!8-3Rv=~(O_tqm^88G-Z_C}0CsE_pykaZ{PZxhY zGx|?dvTIV&r~r_Q?#hi`8t9f!62Q_i1e$Rj11OBIdOas${U-=)ZQ$T z+xh3ineU?+H0Cc)N^T51&q9%G2OIc}jAa^Ks8c+YwhY{#m(9!#6`@uCz}WCB_SJ*N z-+h!xZHyvmuJOjH!@gvM0;EsH`j#s%*uvwyDsU%Y=FjhC9;uKGWFF5+|oGr=Qte zI=bNx&%Sxedh~CqkeT-Xxs+2WTLJ5c;PuA;B0sm0A?N1+E38yd&|Vx|#^7bs5UnT+ zx>ZehhEE3)FYXT(SyIx4s_ouV&LU}{+Ivh@6Q@?jh|t?!v16Ugm2XiR!)-}&K~ z4p!y8fPBu74giYBpo;XF{KDbtpDaw8{aausDGT;Ud)dSk9pawVBWtc6W+-b7Shi0m z9x>*Q8RXCe4weml!BVI1FA_ZWGg%K-NDk`YNM|n`s4%tcxDMaBGdPPnx$76*rf&j4 z6Yu^foX?{Zmx|clq!w*HIkYy-Mz^yt7_I&rIN}{#$FgwQ_+;oiQ+hex&ETKkxBV@K zU6Kn@P|deczgB<7h^K7)#$-BWY*gIyex;g54zRyG$JExl@SIlp#y8C!p=(xI7IE zwPln&gR$g&@m+uTm@M=zqj1#XCCINgf6VY)WOHASTb$!I7C4W&0RY)ce&I4rbe#@h_H7&Howc5t(dj-stZE@w^tm7|H;f%~J1 zOPhz-lb111&)=CJDq^3;Fi*ZzSZn09Uee!IX;U#@D!Qkv(B0PCzD`imk5--*B)U*S z!TiV*DE}*ygM{JAZfX>%N3Y}V+{t2WZ3Q$~k-5nwk)tohn74+>7F<>DPl+I8Ob;jH z{TD6P$J!!qBh`KPSh$A&BB{R&sk`|rt|qtGOF!X5F3k32l~T|TfS1^yR$YYB@}A$= z({BbUyCWDj-HI#g$Tmb=ZyY%GH+>FN_(!V_YGyegJqUvA({}I)T>s7`5KK|>Tr(s8 zRhCTCQBO@Jk_zm=6=g8NAXPok_-9;feA z+uvG5mR>IIMX$ti5lxv<&rOuV6_=W=iHpu7I^taXDF?AObo+Tdy!=P{eu|v?I2m2Q zY;n*>2LMyRBL^x;qWNcJFOQ{dl}PmaHSv46Oi@#e_^Kkhwrp`mj_EJ&mM^AQzx{xsA}IO zE1f^;CzT=fQgX&uVBVYhr*-2~#one%=suq0BtYL-7>Wm=9y|Gr48+0HA-Y80Z8rml z6+qoXs6v4o?WlA_eh$b;k*f4uw*!URIeS2^_*1Pnld37P7uDY`PeghK&=w!$N2L`a z7BRB7giuE%DAbu74t8OU+{EC&W>oSaqL~^I)f{|J^S!RI2&n zp4+XNL@=K&~woX_HsHiz9PR9kv8F7os3 zA3IDet?^%fosFDENNTk(-D4jM#3`8Bk#8Hpq>Z=%DhCBAXx^Ys{5pwP1?_>FNCY+4 zhfoQUdB+1d4y~ZMm)Gsg7DO6ghe|MR#{;SiC)+Oaj?b&o4E|9?;M*3BwXV*19E&wc zkwkjkYDXi6+b0a^h?GFjqSO>0npfS8HlU1gIHxe(UYc`{o zIF01zjZF_j)=}>>y#NUB!Q9|MFx4q=5!&fA!S=+QLh?K_dEdTa`;Xzy4v?Xu)YBBb z03S1Ikh)Z--w^}VhA7)YppKWuy}wj0e?r-;wpc0rArC+lD!6%6`dfmVSfG7*f~TYSmZr?JzWcFxHNI`F(j2Yc?D505sfgS>fF3mT8;Js zG_^1nAM^iQd~ZAzb=?Ecc;v(ikrC0fezT%-F}eJMJ>FCA0yMqnmCG)CxR6~X1wTSs z=|B}2iyA)tCgJ?M%semm%`uUAomqEMkm-W%-J|xP{dbRn#RIr5^A1N{F}6soKa0_vAABZ>wPxn`{wd! zI*)UifW!BTu1ABrgf+h=dg|S^?RrTbY~a(5pG95mMlAV_<6ZRvkCg@u7tw3dZq4UJ zmYmL`fD1t527 z$mZajBaVpUS(rbB7CQO5O5~sptn7S>yqw%SpFD#IOc42A+h#<0v|l5`F+U$LTp)K} znMoa^^#syhA4VCy>(n$@VU3BtKE?pA{Ze$DT^cZHQ%sJ9f6~z~c55?`c$I(sDVRS4 z=ansUe7jr8dEUfgPhzV4ZY0V`_70gc=cOBcG%4uY{rbUq)ZM(eecsg{)b_4qN)b7hCr2Ro`Php0Oj}6Sc<>JtHe=Gp0x&;#f z2a#q~2T0Wmq-7LLb(~4^vcGKTmwV^{@PT|vjoc62nl@gxqtLy$tcUFiR{@+C#{tci z>wd&Apf2Vta(uKVI3yDENT+dRt?;z>M}6f6Kd4h367tnJ`Vc^FlUvx&f*$tQ?xWHZQh|JTK2Z^2y`@!d6sB;WAd+7IQIR``C;GPs85Xb<1N z%$PgbMsf}0i}+W2UTyzVDxFfd$M{!@%wy??)wy}I$K4Q^zzf8l4b zvCbycu*uC(O}?gMfR{z+$dL4@YDkTzc~6<=pTu_02fg0$i!EWbk^~Zk&mmXIqhXCP zc1(!Jf)_GY)bTPyYE780cjuxJK_5C_S8%tV*YC>u`Gt$o*SkTo(6`G>i!G~XI_!27 zT2n}PKVNk2ORsatc?xC=uF5=)-1?!fjj>ueHdTlYmHw~Ol9QnUwdVkC#>>^!RmZxp z5a?yHzV+pUDrC9d^WSb|J?WFO?6}?ai_3K7U*g~++?T=4K8TE=!qdu%|Hd6(S-!}f zhM}Jg^_J+DRkfqi!p02Iwe$1_W&Z|0Es~wP=D$GVc(|QQ>_DSiN8IXYPp5>eW4Gav z(=!(Cg<9pf8Sg{P&;`J=38eNsbNyz2K>rz;lLlczV9|GvT$+duPxpej5Z;hhF@x2`t-yvmG#JRQ^B5zFE?S|`02y$=WE z3ky4_Ou3UTHTAM2_IB&`du)$DI*nj+TRAY{vLE>>rWf_F9=30EsV8dXvH<>6^KZ9y zdTk9Sk&jH^0&v=bSmBqgkhK47thZTC7BA?WsfErM>Qtp$_f{S@HkyoH|5@Hq4$Uu3 z_w4f-C%NNvh)Wwx-p`s~X;?9GtS(bTMP~d=x_)zLFCM(CzT$6TxWWb>0%U3d>z}Ze zt^WI_l*=zeP4d#Mz89RkGcYH}%@fQ!Hmh8J)Sm2CqVh|%v2Ik7;C)Q=nO#;R#D{c5 zcP}4V38je3Xl1s~5P2eY>4}svkk+xx&B|>ECHU@Ldu)H4s%(cTY-Y9Sv|-_-`~puW!fi4dN}TA$8`Iitp9(ZS|1G zeLwU5T6gN4?vmwkIplwg2!~EN6|VA0WY^M)e4ka= zUa0ncmNH{8rgk}hFQ&02h;J>wi)_%^oh&Fa{!cr=) z>M_PFVkM?wJIKWN6*$9%;L|L!-9c_C#pfO4*S8#J(Xol86Cq!>a62)7T1bURV~z#@ zp(KDt=Nk7`ZK~*URq5hi!zm4#?v8JUXVE9K7303;!;WnJUoKZKP|TV%zq_f{FW{Nw zuQ}UQvHkuj)hliI^g$F6pCU)MX2zHNRXt2!I&rgl7?@3QJ4rAhj5^1Sr;(nh9IY& zzOujw*@Y*T&8lJ6 ztE>?|J40J&FUvHK#~GdTQ{N>NEYE(94q5nlVcn^r%`-yCc$Zipi$fE%Y{eS8qY#+% z{;JE9ks(b*(~#s9DW0KywwsIks(wTyg0KRiXdq$D>_Vwi@mq51(jxe-D`{WgoJQs; zXndfr6gttrk?DlA&z6DwcG0*QsgW7Zt9!h&3yN?`9)x@Bi{s|V-uc_Z6D{f2gM$b6uyhy|tLu?$DLy^*MbdLxoK|^t>uD-ch*$h}+NTg-U zd|ZXetGraNnMN-Hg=eD?T9RK(bx6?h)1&cALBhdjaP##FwP=zpj8d41zu?j24M^X* zX^`PZ8?l#48 zVS?^2NuP;fe2q!rO=If=udn5+ji~AGSGKe=+GO70iB~K@)ivZ5@*h_C&uk)>B9TRL zk@V~A=BFeY-pN6>81mAi?J`%Lux&uk6NY8`9UHljM?1P=cgce4Sa6U7997o8`Y%LXFRx2+%Slp}nV&lJNxbKzmXg#VSS%~jHK+yXoNOxKjAbXVL zif^mtvo|Z!e6E1%HcK!2+-SZ4eXpZbP?2+kj9nT`s3Oe0I`=Z;JChDQba^YTXcwPZ zzE|Uq60vSD*0u*JF?2yAdw>XDW|F3?{YaF5E<*Sb%mJdtjmsMkSj8R2>c|+NusDfe z9YV_TV#vL*+TM_@k7a9b81G4|WH!87M8N$@Iwf!z?Y8M_<%^FE40d0@BxcqBUYA0W zG5nvO>Ha~?!jeo0mirBpC@8TACLno~3piRr3F6{*IG9H0^A7Oc7H$mE4nJ-;S6vCf*}qYsLZ4FBY^cKW@WX4kG%1l)AdCJMM2 zbht)Liv8FWj(nT44lblVp)$T0RXoo-xcn|1f%+|lC^D19v$w;`!2(_eboVqyG1r}c zY1Br?1bG|kJ3d+HAxx+j8fp9j9i_TXkhDGnzUJMX33h+MYnPpD9b+(#rO>*l-%pF( z?a{nioEyRXo{awjh}j0;Cy~mRthGL2l4~|=k&e`b;d-2ka4#Y>zR}(ywqQtg79YyS zm2|wc9pq@rM6lxU7z`}~C(0dqAB65|dn3`Wz&2m_mvT1&)G@$=|6c6>gLr?(OYJ2F zO=MJhCuWi45V5jQh6pGbuJgoOMazB9Ya2w8lmQ`6Je?L%N%j^FX#^)%gpY(s0c3(g zEZ4?oK@tUj>F@a%6L5VuktUE{XK0#nVQH|%k3amijlBHcz=8ht*Dw52DZ2F16^u`q z)}(WNStMD>r{!3F&mIS_*EWYWFq!jMVu%+lRLYa=MVmq7BxJ*-wT`GZNGQOEhrH<* zW_~(@LHv^Fo{c*I`SRW-05`bbQufP$Wbin=Hu-^Lx7@95Lg_bE-Xu~(A1u^_J!3dp z+mdSsOfO}3i)4zn4#UgNAL)v-o^`M4OuuVsztCv%EWKSz0P%OPz=dPK8>bg$;Hn}L z(U7fTK6dfyrcbA@nnBys{O1vovOp;#yyTpPd?Fl?Mo?U_OuNJmy zlqxfSQN}UV9F9IPOz#hdM_jGN>K(opUI*B z5jB_7>;J1D-X-UW?)TtKBi0curtS|);IxvsYEiB|OMZ+HZQ>%^+t5Cu74bnSoLCgJ z<`m@HkmtU3%eOUMO{2Y7Y_2RLMB${!eb+!meC@325lj6Pr|(o?-4cGEV+%!efUQql zN`svkE1I@^ssz=wQ7&4~F#F(K?RA~t$P@9<){i{5A7!N3Z1G7wtu6lE5bzi~1^f+X zuH}gLe6t_Eqf2tz5zs=0<)J&8Gh)wIL_6OYeyLK4f{4FBx{Ci1v8q2)E0WE?_CxiB zR;6~dt5UIUQf-A;@k05{ul=;>AjKqOXCo?z?uAG~^`f;;#i}?j+la02?TLRQuBc~L zZL`|4ZAs~f3(R4wy`}8Wy+Up;=m~z~rn4bk3@SL%cS$t%DR`2#H0TdcD-_1f@Nuo( z01(7|CP^c#4Nqsk;hZ^JIyzNNIET!BYFcKA$-h_GafSgi_-L&bKBjgm|ovHGffa2_eC=MZTTekxV<~P^?4F_#sgP z8;3RMZIGN};r9yg?dwgUQTS`tiUaJh*Z0*Kb9hIeUY=el_>M4k77ZkAX|(H7=UOJn^QQ_|OJg=e=O-wcuk= zqnq86QygbF@q)Q8J!0QE)5>8lgR4n3=tI;Q-^JCS+WvU3;FM zrIN5f9=Wg^e{xq=yqm?9x=Xm4R4=|D$-au6LrIMjcKqU~*>C5D&OKa#ERK=iQtKq5 zXR#BReYN&l9F;0Sn;02cLeqK43^(^D{0y=I8eMw@*+F53NFZo_IO-n!UHBj5@HQjt zDko@Ltm@d%MDAaB`gdQpBT7Ez#SnD zH7@F-GUrE$k#2H@yQ?#&<#KlNp(_fwcw~hsAv(M*+f0C|{aV^_4be`_FGU5>XW!%X z^2Hi<4$i5Uf}O*hv^7WNeeDC`$I;&a7EtLjWziUs+Yb7%=jK8wgr*BqyP>oN~sN`YV;K;U(W^1onYb{ux0KYoR)f zQmOKv4e^}MM|a8xi)*NV|7h+XsmeN_c1OHdaZz=tNc_>Z<(NWtCNmEA|IW{^4PV#W zT)d=#rq)go<#4F-OTP<$IMfO>_#7$qZM-Sw_#!9x*u~(W&Nxf+H9Q`#-{V;ahf&;J z?1RFa2h|!%@)zT{ND@y`?W~%7kNm1B2PEFiW>AP%2+$*NfWja!iZt7wJ@5*hB3-G~ z)R(Ksd_Z3EZtFJHCl}cknNn;^NgA$>ge?bW-vj2OpginlIT&HH3Vq1qL(MLqoN#j5 zg;P<<^w1Z>VDLA4(?mm1g%V7R=Mc4s4`LKgvG~%3IXQG|p#z`B^d}4PUAsgyLcBcu zicDZ1TvQ1&Zq>}>2jysZpO-iflg=T21iz=f=DIh_wyqF<#LK7C><0-*&>cPYn`oCXQ!YPTN=`aLFr!-GD6{4R~Ng~~Oh z$w!#$(Hea`ELq3rrqwl)t?D+gSSGb#6HxBSda-`6Q>T`(;bY)~T4+l;5&Gk&C{A}w z{)EoUjOTZvOaPU~Jq^V;=%V$e<*^xBDEj#BJ&r>r;cgx6<<;y2E8`aYcQk+v-BF$o z`PVF}IsPRKG@@N*K3Y=cecPWD#jvPk59u+(`{~IwIHiE8F|Rr~pZde>EcC|el?->- zMdnJ6O12)B&zA!3z@&UiYN~Ri9;SW8fhBQY0qN%3jQ-Ec|3SvXMM9@Q8u&k9U1Ou+ z+VajDlyyt+$%0)LYIBrWLPNRO7fZU5-GWGg-wd?_4d4)Pj3^Dh`O9|~3)Lh9@F4na zCApz0PaY)jZ!Q`!qqW$rU&PYxE zeh!uU0EFpp-AxOsp(%lV9NOyO4=K{Md``q<=U-$k4&kxUQ z<~=j#oH=uOx8Hno{QO>SHUsuY`BBS?h@*q9^t?stoV7!0HeJHlIUpv*XaV&7zZzz< zm>bNQiQ&cS`5vzvu8c=l-iN*>W3e{yQTS@3Jw(0a zaa3dQR5`KOrH)K#R;7|;gF$)7Q> ze>6ULzis^y^nkNgyAD|$2Ss0kL{d#RZ(F%c!)=^Tum5$32e^AINfhl=T*N>A%KNS9 z#HS?M7fH3=70==K06`vf*pgIn``13}z|$Tumyo#d%E+7AzArymuhi@3=C$;{&I(*z z*gacvIDKTfBGU4(Z87PRO!=WIk)LPPtUUg{U*@APfu@l!dTkywCw+*54m|YYq1{?C zvAVOS6r9_%V!%E&@TN$dz|L%mb={07RZQ_0=PSY=IBTt03r2S`#z=w8;nuVQ0mz=O z{q&&T{efvsyQk--o5~0B4qtHz%=YWP>Ti-{ah?_|@X64-o!h_%x_hM#?QC1N^_DeP zx_0BYCaYLhzi3XDyDf5r*7g=S6zP-erXoHg-VW<} zKQ>F-ZaE(YHw{`-vM6o~z|Ow7u`Go+iQKTEHi@+rEBsV&2;Fy+Tfvgvc~ zP`Cf8kJ)7Uh$ujbOO|rlSFRr4oZGT_w)Gt6d))HHdj|8+QhlZWs>?waMUv-SP?Rzw zRrBQ!;=u|$V+pXcAX9Angf@MUQ&u@mJ=rWQBNux%$1G5YKr*3;cFC5~n9*pdue$y2o19o# z<@cMu#hmupUzaf1hdtc9jh(?9z6hR^jKS3qUYOW9z`q67S5hkZlOW(SKM+7PZpK}m z>1#Q2;+2z9?_}-$jEfJzVNmnx@;WLwPjb8(MArq-EfOejN@$xu&6-kty zgfi~2YBSgQ3=88~I1uMIdhFHN>c*m2U&*kqHkV&**_XpsaXo?K%5MIaI1uiq!Ln*b z2hht3t~=olILf`ewFyv1SMBxJ&fRkVEfFNE;~D$(z;#k=uchC9hKJKQF3-woOD??M zv^=4YC5NS8QzjUJnM{|HW=IE!XO~W93pfeU@{HxyqOP?R`_a1`B+u5t5?Yf0*-`)> zA7^4!wg4YVrf6eeOwljqNoRZ2n{)VlRxOrFE83YH-B1SvfV(@`aDUAta}El2(*twg zXppNZ+(TLnj?Hd<9>IL{+I2_$CNJ_w={;3zjVPL*KO_?4c7Il8rekd zKzL$rNsj`dhe=pDq+O?-8SQ_D_CU*MzgI(`CG*DNJVD!|Rm+oM4bw~pB|cz# zB;=o7CsZ@*C&?fiwdP-}+FFf0JmIk4I>TFH)=zLH7p#vb##`AT9$LoE*I926xTXjq zUk#v?alc)18UMUUki15Dj;*)(W8@tMpE9SRu`4k1{f$w9^JFsKc z9VVcFnOQ`I--Ve=imzvt<4>Px-?fHOmRW3;BZ;f6z}a*;XWr6BD`K-J2j$|hWm^PC8L3Q(jQc{Kea9#+N3bo9i?(m)!#DBC z=Q%oRJDSdDK;M@{fVJ~po6RU-B=63sqA__(N|lbT%zr%ho_P~{~zW)7OdLQPB*tcp>qPTeFz>AHyG}4&B zt{K2`4n|ghe07;|@A}q&(#kv0xY51LQ#E{X@ezqLtB7D|`IXhjV;C~7QOtE5OfZ;1HCV`-QCQa88^jm+2dRV00N_W|#^d2P&{dOrl;c?3DW0x_TeIJgMn`qHyQ z^EGT=m8mcdx;X3nU*3$7*~LWw!r1fWhvNot6r%F!wEg+p<^f1lZp%a^9y~_L_q1f@ z&n@eFas2#?=)5bC%hmw@mg?c)1_@b4{!v*>>$X|S; zk@vO}AZQqvab-=fTJ(mm4^dImf=p@tvO!~soHniQZ+yQPRPI58U36l&d}~jbR!wIS zCCZ28qxIE%p=HxK(Q+N!7RY`MfyQUnFMK+UuCQ};DVN$t6vWXVg6fm4>jtZr9cS;L1F9xKZ4~DR~$Dx{)jAb z-m5?C@FY=&+{g>;PYcrgl3b0_<@cl}J|ScONZAlu<{cIch~?a^Wt+#_GS2qRsznR2 zuGMd?bOz2kINhN&JX0G$b*LU{+R+ss?}Y1QWdtun#P=%7cZSmQ3!lX3BJsAL`*0mb zwS7Goh2{4<{Q9Q2wo zhj;`ZzA>8&HGhC-U15G$>0{@iIk3;i&(ju%@9pY5O>*ONYA&Wp!;PEH8+`I)3^GN) z`z`WkWJBwN7u2t2AG|OGfN9-tJ{z8c9&G0}eUhM_GLzteT_J6o$Kyibvo3ab z^C!H8`sOPqr*U!u*A0wC0H6cf%-d+AZ5;H!B*e?0Mw~k9 zS@oITw{Ct~O82bDq6`5SepZMl*tzMNYi*<4FJ4{>?V*Qt`ri6hmAcu-@jGkOQWHek zq?R1K>SzJx^qB9^tj&%#rjC|)emB%6w_?cjgFn?cVd!F}_=0?c#bJGs@SCbdsXyW@ z24?$S71Rc7Yw6CgT*H~-ISftm+$~T=c$VKg5h(X zQ2|T4UZ_=U8#b%)-fOQlcKj1PtQ+|u4MI~XsMz@+*C_d1aa^_4xW)}NMx>8^MU*hL zjq#d9ZA%IVC6}Hsor_8Tw=>L?!x`=Ddax@%Xw|+<=S|7i3XbIM2aIXcY!rj zM!3t%S1T6)+WB`8{Z{;h&*9kx8BDxQj`x<1f%I9WJ}S0X^$0nSiV}&)n_&1 z+bT6%$b*N{j$(@jloGvN&LZ>cR<{axgp2r&oc|@UG1+kvKzxcgFxoj1KtF-*$q!k5 zvgo4nkPvkN9c_2^$UK=AbD5WWL-70E$my1GBbMy)5It?#@$tvE<)*S1L0OBXu~=q{ zk9BM)EVXCx*%M{*W1+56_NJ8CYR?-LSjJwHLptyS&m3LPu+e8y*(IsZM=IKJXiShe zhRX~)f9~4QrYDg_4N96cnqBDB7+$870a)UEb0od(?kyOXZxIQInt5&@uL7IjmM7|7 zZ%8;U*ZrzXQc|~a4jcmib!-3=g))QCA?d3PSb20pc{s+*OHfS4fZ`(Q^=wBAmV0*Z|xv zZZ$^8bC4a$~Pb5ei=!x)SDDok&2TvW)bGRhNYM83y+ zj3@9!x9v)`67cG|4=8qxE$6jAcadGw$ywI2W(dE7mch#p;wqFH__lcT-IPb0?P;%W ziGD*VSG)kT^|yLpf>8C0d|UuIN)dH}9`m%!m7WAq0+uQH ztJ^nBUo4u^+8HW4lp!yu)I6ePlChY{uBHzb3SWC|iA8zBaM#m{Lv0Hof-k#@L#8Tyu=( zCc^dZQ8m|sICPnFK)pA)W=>*P9kTNhF!D9FeQn8Vu(b)^7~%6Ue(klCZmu-Zuiw5` z6-G+&wdzLnO``7>RmbXQgh9KF^AosP0P@*Y7ueT!jnOQRIezuXVj$v6u6WL4?+QAS zkQwJ9o%pryd+K|m<6BRAsSKJVl^UzkO8rjAWkuHs!Gp69j7xp9kHH5QHvd!*woCN9vH;9Vg*nfV;7xNEOyKj|DH{Iyny9AhF<8aD`J(2U#)k1%SzzL<9AbIT0|oaSB_>A$2?Be=%5HI^R7=(*i9a(Qv0v0 zHCf*9b1-5uK_=+}qhyT8gMXsWKAY8&qQ}hq*>83_)zeeqg+NXoNnGtS@7oTb?{zpM zpw})MSR}k{17-dv7`Bf(afx+pcq2${=oOu0F;@zPWxt^e z70s_=`vQV`?HGHup*X|b#4^UZlhX(1q2|_rn*P~*mb}152d*_IQ1kn6pHmUO2Z5s> z4$@4jR-ntV(>~yi?RLXB&o>=t_SpbEn3>McY5wqOvlMldF3I?1?)Tq7tFEP+0GsLO z-_vgJxkGg`FWtra|G1UvhyELS;ut6zX=!ic(E7QbxcS6Te~yxK(8PH9uxmcm9Zm4< zokLLNhqVXhcOdWUZh#yDKyGoQPM8|{?+CMMWD6wMNhNT7hZ+vr7;G9TUXgQQN*}kD zodkJiyuynk;xFQ!F~uzxK0H@{WQ6-e1;1UVrrC;eZgiKSt9+DZoNK`IQ7g4Ss$s4D@{DKH z?|6`$nr2vPcdg-K1UzS3R5!hJ#Pp}#AA`QF^ctEEqA_9&hL=mn*yUyCseSHM4A5nk zhT9ovkWZoSw3t3*yX{iRHnsr6BP$QY73n|RRBy)YFTkj*d02lH_<&p97j`2*B{lhL z(a_io7W7lvz0HsF#l7;F?q!H2=~6v=&L|Nn%62a@B zQ6*$SM~Xcuz=8tTB3bSp(!i#um*{p+;u$B4yRR+cS&`6fhk&THLoX`;l`OsPhTpB*efqad8~O{xV%Ly*%&_IEg9E>jg% z*8cc?SK#CNxR}m%Z9xO=zCu!G1Ej(gZ7#3F?#*JSb~o;%OVbEzsn%#V49bc zr^*>m6E6#y!(#qcQd~>}VCsnq`kqgUaj(>Q5Pc@_7nc+Z?Pq?v=i@xlVX}U>x4hS&R}6+_t@9 z*O2!fe{{UKB=&Iw>}|3GcIy@hVp~86vUKlt>2QP|w(oB<=J{vxw{Ht5#>a-{S}u+@ z^dIV*)3qG(Mz+5kEHY)Evg?{)ny>>PdgZzg33}xWr~SmM`PCaC{Ys zP6>*X%^?na);OC~RJ;B07bZ7u2a5JHqZ?2d92e?HAXt}DimUFdO+6XTIElHAfme$2 zg1A(^!{So_d)6ELVK;L#Pk${RFT{+LDf1B#$3&un06LPulbNRWysIA&|` zQU!|=?*BN!{}XE3z%0j4R8lkig>OJDq#>@>b)8C-Yq9?CD~`N^QMWMp`{?0WxcdNe z%e)YDrSNCZqAI$tbH`Z2?eMzc^S{(V9HT89LoVamAI<^C-xLz@R=kHZD=J-06y0-i zHtMk}-ny0Sw^QtgB6zzK`$CqQ34C)U#G~p^d*ZOVFj zP@;g`3#^VBWj}%!p`+|=J4>+Ds0NcBaVdPOEX-t2{Ps(nmjzbZ8frbwkX@FgKgw z=XJpnEKfW6SHkNFKhQl#p-p8vSsoV3?(R6xI<#_I>An=7fAHE1KsygjtSl zh!(c0l}jh~1%_xG7nx-7Y%L6OE;O=R&OunC4@zHe zF2qta{k_dTM`Illh~+H!={Vsgb+^aDWLQ}!CZVB*=?-*`9%IpOng>9$>~%FZBeM>Q2HhT~jIOh3miBNe} z)6Ip(+Eef~XWB>*sEt}7!Sw1-Wfww~zDoB6ZB}Aj(eGAp@IE7{Pwk_;dV=mJx78oL zKDS8{SmiUzIodBqTQX*R&F*257&lXXG%|2yf0*`A4*2S}@(v^s89{5#5SZS&D|XQR z&PMecO=|pLF>xQmlv2Edjq&>Y*qnutnd$a6g)FeJbEsfHP;@ohm^5RqGOoc=kW-%U zffDxho0*;DId~mhL8eat75g{wlm7vrd%I?_b05bI*gCUnlyCl%tz>a_`GhBP^9nC- z^KUjcz9EXLjUlSWb^RD;N4B}<1t{?@-~2^}tVYmcklaRhP&Z;75?5szggGX$K2Ln; z`R3<+p-U6#I&$i&RnpE?7&EhvtX8sCc0R0L@ z24CY)>zhR6g<1NK(trNK&v$z1FOEmN`1YVHtxqvu0R4A>b1)YJDu(R{NE=(b9W{&f zLdVbl{>_?Os40}q8-$sRuN35|uM+T9v@r*tL$=0Zn9Lm&VAqLlwmLkZ;g-}@u?zK&pjBZC+P@}S0OExaxMKC5#nJZ7OI zhnzns@1S4O9F?uI=U894!$Dp(KaFiv=qMm%9-i6Lo+-D~@Wsrc5yPkzpA((>GPGpi z-uwEsd%ilR>Ob4)hc@3%cwbB|fPJz;m#c3Fi(uhvmQUZ2;B}hSF6;OD-8HYDpUya? zFYl`X%b-cRO0MUw4%()goWpO9l*g;!ROP$w^`EK6$H-YW3|$TJd84AdH|CZj6x!V>rp5?m5c_7Eg%c0A zppe`4vzogDuRtuX!1ZmZyDb{f1Pf)Xc~pwO=d6+hF7fX%h#D-8%hShhFC@WZFyL|~ z!`JKZLQt0;OHt`*Q2OZ%o(Z!@E!~0NRtXB~RqW5(xK7LL^T{T237utpQb%;)*U@Iz zA#4W#HydY;?ri7d=mJyn$ucvSyc4lik0V`!o+{kiQttZ1Qm!{9`t`hu# zi$`*3qT=2TpR)Yy#aA{J3#*;NN8wsKF4@d<%IFdoY%SWxRso}m!!Z%Bw{c}FiiQ0e z8b1{LL`?K*tSnE&N7Ts8;&DjLyG$)K1W;yS_Pi&-Wu=pNKk8X(A3+r8k>28CVXh zwuydx2<}a>BG0G0Cwmz8$AQNihVuH&|L#j1N+;z1U%LM5#Z~~ck){aTmqeljZJff0 zf%sVDxG6~(XO|-WTTw#!>*jK@kqBlp&RT!P^x#}>qX*fyw_>Y#<-u{= z&)2X!;CZ!M68NO<*rw91Iy-UHSsDUA7QDYich*>Gqp2TSiG~h^IXUy^=Xp9L9lyLP zH05QV@e6!Y44Q%u52yy7szL6)5}(f`8FTTWZ%er>T8 zOwFkN(!kx%qZG|s5eyhioczphAG1R8C4>X$b+IE9vc_xRWK-o+l|F)8-_^gW?;{(7X%D)A&byC*B_>3L_3X?9&*~`5~Q)noAq}k}2u-3!_X1m5AZaY_-(tk#_XQPM?M3HYoQg5?btMdIYERk=+7UR8IGBr*Tm$oz8ebQJEjh?7&|(D+bd^;b?o zCGu&j=&t#<&z}gI#}MWu`!gR?JZ)L>?U|EaNodh0MYTwl2LsrE5O$*N9oQ=!mGOxd zrQx`HW-|bY!ps2ehW-|GrxJ&*GzI@dORk^GK)nq}%m?6Y$ubS=5gz>foHyn=(VJx# z1?vgmK6jK*f)%UINvJ<(CB_TZa9O#4Kb9p_vDo}iS3T?6U+!a(HnLvr2bt01>-L)N zU|)_s@sW0}#ZqNjmyhGD6>681yfUN6#wFM!ZZ3yBAXolL)?zjM52M{S9|wO&FB^wk z7Ip~jLKBF%?MF9gZG%Pn>@TVU=O$~nr8_bFI7UZ9|2i`$HJBY4ZK?kq)Gs{|fyb8f zA-zP9F*^c8mqGEZRlrXCUbyL&5ZKrpKh3KK70b^E zeeB1FP8!pgqr1-PnzMJR9-|3nkIbt_g63LxZLikQHHI+idst7k)>!pa9^84%cw%qr zlaY_IJ(JnA(a5DVy)E!KynjtmulyjYmY=gJ;5e%0K(AO|)Mg zVY#0Wyl5Y%^j+iXry<`4D~h!8%HOudjmhhTN2{=|_KymA^7lixaIGgi)x(>)O@@B< z4paCs_azX|GXIk+r)iqNk*LdmBL4&Tj%$j}KdMs`mwqzHx5y*#6&>}OMk zK95zColV(s*Q=lQF#T<%8a z+hzVE+RtmPFm+qz>tRr(s{P!^3hxISdn>yYPz7#k=NAw*u!O<-AaFe>dxDSZ6L7z$ zMVTF$-vM-2zzBE?4q(fpO-+Kv&7g>UVv&h`;2RF_PDNNuBc$QOlV46>GLL>U*iqz| z5+2jt6$b3htUis!It-3k@|2@^F(1bIzJukVLzhnRQ8s5yE>Lxoge{IcjP^ka8%pP@ zl~|Xh^>Iw$+7$?ODV>{oJk&t%E(v*P`OAFA>1J&^CV6&u?G}QFqiNUS_1lHHT_m;p zU-moWsa~@HQ)XWwG*a+!yg+gOMsvX_8;u@p&P!eYT{u)31b;=222pi*}Pd(Nhm8_p7!It{=7%eXQ{!qhG zO>mP>jE&68-5s)TWtA6Ccd0K$485v4G3Y^htNWZ!nZ^%h)nL+u)#4v5wXS{CV+fY- zt8UlFPC>V;TNG;yUl;>~OrFb}tqB~JC)}z*nPFpdVY@>0M|9)$GR+?I`Zv?OS3y@B z+=38+vaKccDWxbHlLtTV^H=R8=g5(FbEFke8k%&kKU6tpYeO7*zKVX!Nkj3|om zdNGHZ^ANx6=LoHy1$e)Pj*rLH^A}}5p}Q?#Ew=@eW#ln7;1@iJKA!UL=Y-D#5O)VD z0IaFVzuz(LwUTwVCN>0X`Ct@6Ej~jeb{(S3=RNG9VooF{p9}TmH%;ubG?LXntLYQ! zSHfVR_(mq%Q&k(ZLJEjKN)*86wr4n%=ilv6=@ewAp2v0(ti*Lsbke!QTbpwBl#j;RP_+B&wh3oSSkBNXj27{3m(Ti^WPIt#V zECTBqCw>4POe>);5W%mIVt2!Z%sY>{;&zOjoFT_Qn55&T7bvoFTAvoOlHxfUJw>fn z!g_D;WMISX6m~t$eq5=hxG|`#r4T9m)3wD{ks3$WAw7jM3817EHvE^e$#H1p|o{T zz35>3@`#35je)P>VY9$R!nS&aEAydv1DJ0CY<$L*;(|FIXC8S_^fN9!_>FNqGfm?0 zcUbm(Hazw-SnDQVG(Ns+<_T$epID-Vb$9mQ&>&n?x-A1;RWEJ>@lkqB0%*k-H^2O68~O{u;_#3vknJF^flQe}-$Q$PP2wXAz1I&%f`w{r6S4MXO;g zI#4<5=6odMw%0;((kRBcN23EFX4EtUn>54ANm;W2fs>XWCLn*CuH!>eE;UF-uShem zCE_>K{gT)9>nw%#SM&CMe1|}opDQ{$pPaEk`F>?n8vmS|^jPxzrJ~n2c@hbe^ELcN z$zbBybCx;Vhr!!&?b~|e3}vB30gVq}22lBQ)6t?_Xf$$ZP*HEkk8i?Mg69suYjRhe zb<4RAxTM8y&(TpldLW3B_`{6Gm%#tX{_Zm%X0u`y8R<%c4!T974#ryN>qO_N18Iz_ z(8Ai+hw60{UjmrjIu;J<1~6TpX|h)uMOra_+Ka0tUda=eRh06qEtAm25H}9P7rJkk z)X$0*!f$7En7SPXNl_->-K$Gui+U1Q=czldV)NxpD-hqF)YaXTC0rx+2S{jK@d`&c zf>c2-ym`@YzE`PP`vT70?woN5v<~jqL%nxa_Hpc9y=ddbq@}|X{V#E~VUW2iiKa`> zkL_1Hz(K7H9)E^4{C*7qH$CeH=Fs2#xew(1ayTg2#J`>8DoGTyRGm0E?8<8S_{{_E zr^L-eFn)x+dOTng zWvp&$M;If-RMo$KF&D8O=NSv!h27;Rq0-g)4E$z1pgCyBAZ@p2w&~4O#^HfL@ENik zh(PmGPg}2dpfSKbIcfpfj}iZ=;#EbVfVuPzfo{&j;eIqf0P)k`#r(rqut@>X8x&t7b|@JY zI@zB4UXl7f;6<#0)P`IAM5z}aSG2xv!;xNnVI1-k2YHA|3Ig}E?8Y5=ys4$^{t%lP zAK8jEp;dsGU9e@8tZLxTe-758Y5B$VX~P_FS_=~uf5!e|_YP;UR%Z0T(>AUDt3+Z-u1;>;5%gG4-zFdrX_rXb*&X*nMP1BXf<8-;tozVu$y3_O07D7p|qml(Oj~Cj!k36HyWg zr1iuNnh}=Ky~`;9p)cM8D(Spvn8K;ctYtSm9JsB>d<^i-xu&l@DWG|pD|JR9PhYwj z8)d;~pkX?8;a_e$Zi?6EwnJR-sl6q-$;J&ExSef9GTp_9wQm6EyRT0k(8A_e?TanB zds$0)GS+}wQbeE$ATH~LI2d{rd`0HeFnj5O(DpQW$S{!={nT68rcyaAoas1UruMRs z%}qm2(A5sxL3ExE%Om9JT$dgHFb_-le;=WTXZL{(Vh2!eYyVkW2OVVWL9I^{RA)GwJH%h*y7_f4K!=Z-YyQ^`kOO^k*MOI^2nJdQiT@)rLJmJ# zi|MM7x(wPNI}IwT%jo*) zEXk@;xqgHRVSAi>w7}=yjhQwLybR`kb$PKb9e3~e-BV6z84nyuTg&RGI$TV6C%k_R z2D{KDjme2tdWDq0;&<`$mw4~u1%G3e4GVdPi*XuJd zci9@n-7`a>4;)vKJ{DntglIe0r`RtKs45d^q`J{k6ph59D()-E+irNa(n_4qBQ=Cr z#`O-Lv=|cLMnH30jE(6$kTB5=`&7C;L*uEgzEgE5G8_MjL$fL8}#4xU9Au4LCbAu1ph&g%bOykx14B6wMNl^XZso!dz3jc@RfA%CfBwj@Kf<7&L= zSIUMRfncw#zuq>otbrfaQ|&VuYo5G_Z$DHtmZj6GuDUA>{#)Pkv_YP5$@UQ9pW~QV zUS-^S-gb7+*bXCQ={d;xcap|`s00lDD1!w3%zk~p3#??aMfar292y=H6;zXvy&-FP zs#J2{7*R+(@vcv*t-f-3_ni^K%%dY12%txEnIPCglKmZEdjVW!1{Jh#J@I*je!4S? zn@ATq(VEk#TW92+@AOLRo!3(s9%IDOt$rj19#^m!{zd{q;6YCjPrO3^nKAY+?i0%# zoXYG9>T?qftm;!mhGJ?3A~Bcs65o#)r!3*e1yXg;Sc0ztwh~wk)3;!i6%N9pgLm}6 zj~ikPz0qm#*neVL6VcK6TzIatqL}QJWELt*@B2itW$G75XwOK#{9Cp<|Dk96${CNF zkFqsLkU2d&oAqg~?3dwEUFL$)xU<=y63(H};vFIcnsK&NRVrkq(~N& z1`JKYaRbn;jD`U&f&GpNZ=Cg@$zErt6{MT=M$9YP_rX2sG|Z}k(*%n)$(v;BuF(qb zgHABNV^SlVG1J-RIWl*i%+>Vv5C@B;ka&v-{fhFd(Ao;1~ zp>N+VhI@F3H|~!=<>&9#@*0GUFce-Z?L4=BJd{K~o^&xPXCmiY@P)4@T9Z`qN5o4V zUYTZ_P?{o3^bz(~AMjtZ4*O`)bZLoBHSvcE9_>jV++F8;rmW7kFOZCD_+OGW-CCYy znz4&HlBJit;`w&g^1$bUMzb=ZS3@`jV>D(+ocX`J9mdlp=>?2VJUvtxje!sEBg!zY z4GdAIjUNGKG=gxz?|ibn6iqV+Xj_}kAkSHy6mfLfbvQ{u8eu)$Ks4Z|xgyp^ahD(^uX zC%-lHR@7TFuT%|;R+MRMM>pW&jbxGfc0v_rZQu5(#`G!Yuu95D#Z*e=*ol5sFYKDk zAkWhd1O^@&Twp8R-v*djb z$mLxSbYSLlVmPm*tYT|2mcJugt17t&mn#Y}2#`@#{!%&$3TL}=^V&>dz||^)wQ3Nv zKbucrr4FL2)oyxoYtV~Z`szfP-i`PuA?D(DrA);7laNH$&q5i$-+T@AA^4UzjG}r} zTs0f=1(OZC_`iy%G5X>39esZplE?G`WLMOLlk5v5#-+uv#q86!xoqdoa{pnF+r?1^ zWw>uY`~_)ETYNa2QkJGrOm=*gwPCp~Fy%kuaqy@xmZ^m?O=B#u7v{T=H#dd^-NReX zC#vbrQ^r=p+%odbXp*0dO#zhX_QF(8onV*&EAzrT88gjV&D>%^P{HAJ6SIQ_cRcmo z<+tFK%w(hQ?)T;fr|@$cH29UnX(o&WBJMy$Z1ppOJ}NhB)SY2D3jQNlqL>#HN&OrqhgrCC{a zSv?&Dtfx(e$zfyKp_fSLM}M--l0QJ+e7!bbRlKId_u?)Xzwg z)d@-L4$uPqz8O8U2Z9ax%~{QUnsbVwq)1uCsq9nPz?VTK3>E$6rbsZ_CWSB% z769ov$h9{;*KI{sJp4Te-2MV-VTY5e^^jISwPIpg!2vKgH{P#9#AgFgmo+t)T{1cE zQNPqV3+=y-tQ#;{#@+-PR*}S)Oz1fKhn`N|E@#bwh>+lU%mP=UPb)TGe$Fqvex!oY zz>}PG)@IW~pOw%0I8fhoC2-y>gObaq)$oPXGEiSwBy7%ck_|(z8)rMK}>Fm)uX>cT8X6AF1 zP6f%Rxxo`bP9+i0Cow2ub!-y~1XC8kMxhg;ZO420X36O0Ga3QXcbZh9C}74{sLB8A zYH=jFB|P5N(i>T@8{w4rtAZ3+Vaf1+nEI-)DBCVvx=RqGL%LJCLqbA8q(eZuYv`7S zp+mY+knUExyBnmtYvA33-@o^@Pv(G&ll89k-0NNqWoA(OS-6Hy4_ve^u;Y*XHc+(F$jCyDIV`@ zxa>XCUT{^KZ=(ov6FlLD9U@nw8UHGbUMW=k4(hsqSA8MQ;{aaPx0Y-ufF;#a^ltHVJ0LHFUHMreHeD!!8<=0Etr zj^-rKwcgk3;ys z44xkX(P%Ybzb9n(jM#)2gvA5J829f6NO%33X97Pcb-eLt5<`j7i;lfFs4%0F)Kue8ODXEjUb9LnPGzGbye!m@pN zq*UTGihUq9n&Z{hDm0=e-XR}ERn<5mPX6w6pC&qBbXUkO76$ga;JfPX^OX^O{;@^~ zM$3RxVt>=R8G#N-?5w5Yu*Jv_zTaz|2S!FDfh@51D~k5r$V+zoBYL0XOZ#rVwkzm0 zIBa0;03Z@7+{C^;^gN2LQO7PSAI)R9B)(ITf`js?m(J=~2mqnq^f+ylQHF9%y5Bic z5^JtO?S7ZLf*gcp$bCm$BC)O?F!XhC4#=%eXJ8KYn%4bmfok<4KKGE*_O zoZ9B?a-0?ul0oN{RrwOZ6Ikmb>nY=68U`}mA7jJ0Vp-Cv;4o+AeJnH_OdcA6ENYgm z3{e$&xRa-Oud{HKRZenz{_ZPK1%R)2oiR6(9SSt?K-LZs0P{{xqOu%q9s=E5p>3Nt zXp@GqWWPjU;DK;x56+-Dbb=U~P1giEzP3V69merE_dbsIcCE4v4Z-ZP6CljrGn(~e zSN`6-`$>fp#<`=68zyl08pn*`Rr_k^F^e=p3X>+@^#|vabP1Nd+(h%`8tdsy{ma8X zn}(JkLDG)_2u!%}KC1n2o?oM|92L6e97v<9m@vFfOq$63@!s)$A)=NmX23*}Ay-Eb zII zh;D2!9?yjq)up7ShG6)fuW<`JJ{S=O;?@sy3fbC4@uIlg>k2EBU6Q!RX?ej8t-%`Z z*4g@}nI}X!(7W=qPA!};$d03Zm8Tacq4e6a%es{MtXO=ysx{?+p;#NGD>%1gj*+r* zjrd`*(esHGO})yDuU4e2rGI8Q+(^Ll=VlAK4)_UCwTx)Y)-1UfVWR+Jp#C_F@!CEo z?ZH(%+kob-&(96LD4W>ZLYT?H$ns&oqtx(h_9d5L*q%WE+Ei6p>*)aydk=h4-;4+ZGXO_g%5KOKxU`qP3X3@lT1vN?|6KJ2p|lvA@0 zb(!RyPZ#9+e`HJuE{^SA0_B7D1X?*@QQ~<0;h4J4jHwQ~>=WCLT1;dh3^8Ju6I7XxR7cBzWMOrM8YgIGNr^ zm}o%vskYpzC17Ni#A_)**rD}eHD%(_uR z>S>+BJrhT%5-YZZGux}VJ(sg2tVwuxYWqKESbXxk1e6F}ETGAt@$oCJPIe!}TRXF3 z{^N4ZUE829n0JeqR?f_fve8Brw-$f8e`YeA*KE1^CNh2sgPBB{s|VY{&`c8Wj*YR# z*<>QuUoCz3T;IQ_Hf@?vdFAdPUI*)Rk^c&#iQV@(_IE;I6}6qxBV`UurZhbb?Fd5x zOCky{uRQAelWZA_M@IQbpA@ubB|xrk9%TWd98d;t1O91a8`#Ybi}v+*NA1iQy=WWc zXJ;)Dhca@8NOcSF?F9hGT;4;ncN$BJZT#3uKDCVhr}&EfKldrnxmBxO3XQqUr8o~1}iHyZ?H zPm_%qbT+VklNCRkho`q;A8Kq$cK0_$Z*zo-zGZuBYX$c4{mqmglq&p%j#olo zZdnJu?z$M0p;Iowf z#Hb+?KS6{DP?9CM+eF`Oi(2ocJ`2nukW!ws8?&C>!qlWABswBU?0rCXk$hK)LBKzO z*(`8(3u|4d@_`@a=&t#6UVRN;ak1&(m^ie6UQY$m+?+J3cg-lJ%rN>M~XV{ zz6Nm1ruT?tUHmQmCks|Apfca`H7XM*dk9|rN-Snz}`z8mk-iPk-YruYRr;FhF#(86>C6(aAzgHV@?RRusZqCs< z?et$aDRi8>005SS>=QadB|;+*g0RTi?vdJjxgAg04ZVKPNc6%PJ9y`<&R*7=d>$^w zbCAMT$_}?jiD^yO7e{(pFUs6`<$?;~#^v6okq`_=Hg+0EuGTLh+EpX`$_DVXw6mg& zaha~{bgl+8Q7RCrKay(yqVVmtAbHm*qb6N@#3xHE6>qC?XjeMRvns!Ulo4Q(WpBF7 z1~b3cO2;6H8b*&K0~_t*N>fF2AR;!vl<|1C90VGmhi1NCocIoAfJCwKn!^b8R!8dt zRCUn2Sth_2nHm60q`Y8Iv7^ml!o#sX$#b^F2-I*ZyyspPD3CD;ZX5CL8GYnO6o*}f z-fVC%fY%B{!Sek(?k)d05QIJ7RQ4vh{ZNq^v-?~10S(0z7gaQpjr>UhnQ7!?6MW4yCjikd;_}%WDy6YLS z^RPYxi|_c9C|)uKVpq@5I$+>`iJ5FxpyM#JVQ9`|JU9QG+dnjsclGvWq<+b@rc^za z01KOza_KZ~^2CXcMPApgGhX4l3f3Y)!H}{U2H(5>?Qz0(^q}|m<>>q){ARX0;v?~> zPcyiOG;YRz3c5(OA5)m=D5vr+e_mr@BT=GK%@tldrng5m*euk|62Q=UTS)Y&zy9T@ zCvGye?TPRWt@-AXp9*!oAfnOf?H`WUr{dB?v{&j6qIB0a=jt$)N9E3s)D52h4r3{m#41 z@Yd}z7})Vh!RXRVk$z+^FI2W07{En-URnzPa#zlP0_dMGMW9C{7>?+ngbbSR%q=|i z%wKIu`(0Wh$LQcS&IZdg>>ABTo74S=wzpOy!BY}&S7Wru`Z|e$SEpCt+|5>mwb62| zDs`{c*d>p$-^H;IfzIC`G@ze~Qiv4uwBm)7iIz&24JhIg^V5>K?#OG0l)Yk(K_wht z+O`G#oiT;K-je^mqPpOfvF-)q+CEqN!<87U9iPGzOR}W3Ypsi07^8=dzF%FoB12|V z%wRiHl7oI%FI3_1Xc3L~rCnJ5uz!Wj>jv0=f~8>ZU^~ke^P3ZBp>lZk=sT|lF6hq! zcUMZf08R)%dhUk->3eAihd$vbz#i?i?Vi_z9EnU}vD5@x(En|8x0EwW29TDpDQw=1lBPM-@d-&&H3Vwa;*6^rwUYVIg4!>(DF345Q+9UM2(4bO9VX-yi!LZ6T`IUvl>*1l_-{XU`*p#TeK_(T?zyh=( zk6zRjxkxEMC4*Xw?+&`Ns*l<5!MSno4-}%EvAck_Q)lRfP*1`;Lw*e4-`Kyz=!%V^ z+Zh=jkhdHt5gLE<+5(A8&-0SxdUb@x03YsFddB(PoBPvroiCvbjh`wDPN`7Nl}*qs zFvry#j^HFO=@_inGraZd2?wpRLHj18pb3i5@2e17&n-GD$Oj{IqxT$^0XcIv zOV_;9$DXuDjW>U-3b80R0~%q%k6l6x)ZO_w6ku?~xe;7)5ZUhd{>JZ%t=cLXO*#E& zuFTN~+YBh!>x3{BNWrO_LU~y-&CewNc95H&xe>$2!3W<0*m))ycFT|U4a$zAN6x|1 zB{iP6a+2ELq!q-a7kL=oSO^szSNG!XesC+6V8eNMJ8!M%WQjFW6l;p^Y2Q~nLaj0Y zfd8NdSZ?@Tqql<|!o@@Y`Mwtvqj=74hhFq~X(i`O3#UER8SZ2$5FhJ9rio#4$)^(UT31$_s*m5xC z9OgTr-wi}wDWJ&@8{kB5n-2l?^2^iPrv0EI%+Iv`v16>eu(76mHq75m2jnvrNN-^B z_JUL|GZTo@L5ozy2u!uqOPCe6SK>a86 z+JOy}PQdZ_BCa#UZXT!m`He0oK9}^3-3=!T_+n@hSn$WrSlbeYNq~O5m$3Pn+ghV1 z9_w~#E&lE~h{}0`$Mk8%YZv!#r5~Z%8;_6RyQC^=7~}m3S1sCEBQc){ zXZd_g5PfUl?SPJ^Orm|c+Oa%3p5@7S$z`2jZ~AY)^LzpZX7mH*Xv?2`nnEF#U8Mca zWWDNrX~*8lp7r?O3r(l=?EJ_Z0K<#vl>QyRmv-Kap(0HG{bD4s=l!+LY`=?`n&+CJ zsXU-5r2`A-ab61^Vr%ndBYCmq!}LQHv4?GNN`9&me7IMJ3~?Mc}-;F z%POyBWmVh8Q7j@-@1zdSUHeG)RamaQE&CbhPod~G7XzjE-dutPuE+zP_-Q#(K>~yuHvmiW7bEGjya6b$UtrzB1p(R%WA*H}sSkY_anSggTH=x& zj^I z!C={`_`_L4N4t1Tfj?(G$BZ4=oc$TTP zcpLnn1YLo&O3*M>z;ONYhWc^I=x?=S=yfS6L*c50*NtADzjGAX2{Klh&)ipO9VQYg z{?uf9h_DIx{t~^7m>X2*T?>WA7|^@{{64S@bp8WH=;Xd(UkxDp4IwB7iKf@mFu^-w?} zTm|QR1g-IM>ZC@gCIA)0YIX2JpP6Y_L+Z`tZpD z?N@h2qOBOCCiRPS_Y#Ri31Kw!V;^o%$@yls7|n&aa*g9@`^WZXz6aK=JzvwHX@ti2 zWqVN4AxwxSJY#(aR7hZ;M{-uCp_r;!JAYCr_fRx*5@1GhKHV)ygbVLPP^HG}jrNF!Zs}4DSO>PY0bcs@%$#o7(8>UD^>cwu%6l;ll?ChjFV@@_%5 znY5^^P7W3tWmx@-9r&AkpDoQ(Kme6mh-v(HZ_-FJj=rPI zc%qt6W(|6(PC6mVf=9#NqNJcm(Y(tokVUv2mAWsZGs&WqZsig9ZrbOfPgm60>7-O} zA}!U48lsSas7mwrksVZ0B|w`-CMVZ7_)sko$+9go#+Lj((}RkZs=Z5paClWMU#%#2 z_&D-7?lpr>pTTwR3^=gu=b>Yh*YE7e!G#kwP-`Ui;M?w<@Da7V%yTjf48Ty7Anirt zhNfiyeV0%mfAS0vc?3o^&!BUBYCO=L!-Q>zyiF!s3#W0kk_?E^v}a*K${30MvT$(D z%t*(zTw05+_z`jh$j3jYjj9trRjQ(!kzdx*A<(2C3n?IxqG0gzw{sI%A|)=S=+MH^ zpoJH_!CL%7=s&zj?J?jleE*6kptaZR*VhQ7E^8UPESCbJWh){4PbLiO;^S=&CIYY> zcvZFF981C76*qjO1*VeYw`20(a^MQ-b%y{~^VW!R`2i%G-ad^jH&wd#F%o}B5fakI zqv|v{=WJ!(`bjk2uU}eU@b47?s2bLR>Zu4%4;(mklCC}8edh1(2*!#q0CvyLvwvU+ zjd3(YUaIm?lw`aE%yQiiTYTlAdH1-yDp&^u`S!pD+t%CPxELvf5-o+FM*>CyiE!M^ zb7O8{XYfSXG?V?l1*`;4zP9;cScg{9l24F&Jg=jK@-av?ZVnFx7u97YFEtPkBlpV> zitP*YQkE|$5-kNBqbM4Fg#ZV^o3{r@MHH;!#EZm2xt#tkl3!N(O6%yi1>Wj=s1@Mr z1*=9q)CU*QFweRnaln%!&n{wzFX4_w4~QET&<0(sxMIE)kmsuXUK&naK+uBugJcX( z^5A}f4zf$PaUVl)21b0H9kG)!!#VDJt#QCCoC*7oSPO}OoEr#mf#ht zHC_Ide_#0H%cp>vM??sqIde1vfU<%cOvdB#U%rLq>JL0fB<^39RNY!9jynIHme{Wi zg8rO{cE~Q~FyKL~_}5Wo%BZFzC)IVJSR~1AJOvb<0c(HLC(jx#Blw^{Qa>mTW<5$Z z%O#fjkkDG+PRnYTAR40|5O)gt!_?{1%m|7VN!HzSJTZHtn#rO^D_nlW`_W7-_R~n`36_k=+W52U9x4*!+{x;lK3Fh1YUWGKM;HDVIQZ`i zSc^>`zgWjDbk;!=Vt94~TH!i*rjUW&e~?XNbAP*9b${uB?sD1j?(Nu`M%Q^+b4?k3 z3lR@%PGbFsICmjYtR0`x7NAfCY2e;jB!u>c9o{HnkCEI zv6nBRX8ZD0-T`agq5&1_1Q>$xF9^ZV25r1^*lJxfUt=}OL7+osz0T~1QDig{TBq?f zAciSl56(GhCB`8E{zwZ#Qv7LNaWGDt;fR5Q0?N45d(~2!0=a_Rl2rKL_ms>6FOg#QX?q#Zba-h=yrbM%mm{MH4TBfORhmt~-ha+i0JKuDtpWg>lAXGD}n zT{E_EpFh2{-J6*#hcX&}vjj#7)nqDK>5R2-jbt54`Tmz|T zFXO`Rx6;-EkPi(TWxua_L+f!{f9I0=DG4f%1y5&*_i#Dn5)g6{2)i5cexl*RDEOwu&opp(!+pzW@r-ts(uKKX%eA|P|78X;Ia-9P2pzYMYw-(a) z?LvsV`@(`Z12Be&6>~OG@ps?;Qo-qg zS1d|FCiV!LwzPpEb$m!OOl;w;fw0?v;=P5p@~E<5IVdV>C|Rotk&SYV>oP$~5Y(Kvyqk?NB%Qeo2Yv@;iQ>Q>Oi`Yp zBBf1j*erZm6BzVxCQ3~Ir|)3%Kb&mH)e3 z3>wxTYU*c487J%Mzl{4q^x21Mng^ZHR?Hc(rVEN-)BrMo<;NtYLQ+-K2h?tv(pDsI zRdbD#`@0`GWGSFe5(Yy?e^hvqem7<6kaZ|#t5#4&ymHW+->Z`Z#ZrW$(&ISdP;Hdl za`0=DLWT9a^OO3|trhbMLKA)00N$I725oK(!3$_1LU|loRyyRvdVb!ok%5~bEIVF| z30%8C!|CV!Jry{>8N53w4R@AfsViQcIJcW|chKxwK2VdWYke(EE7phaZfgA0*;|db zq}%cHS}TceK%O_5xv~;LHbELmQi3MDU(Pj{o+(NOt^_5zU6j2(57iPeZF?nGdV-%j zM@3MeSLk-KUoU`Rf7%_#0}g*NQB*2W!Z|?LPR57e(^iek-kG?NdA#YU&gBCSm0jd8 z-@J$HrErDC;X(<&BY{Lmz(r&D|8)BgwYV_>uqWYjM;NI54hXUH-aU3=Mk4co5_$7I zA^UN|1?j-KqzZCs@v5vml`wke@x1k+xc7qs@d$Ur6hBD2$E*!>iua$j}uI+GCN>pKg(y8jlTEJApQ^=F&>~7h{Pa@Y`wILH& zO{Tnkf0;?<_xTlB=kfUwtT8KdcC)j>RvxD#$v&*XZ0N#sl}Xhzn#JdYvPrqI%3AJX zNs7V9Dm9%M6^_R2#3<-Rc+u=(=uq6d<6+x9sQwOy3fN^{bO^eGF3Qi(O33H}TAq5V zHvscxfDc%6x;%bq#Zn%JHawHQy+>QEhkEEoE5FFCF^R!3XV*^M1IM>adVzV!95@d% zm3tCZ{?uY!beXZ)L7%-pk4t)eL&Uz(Ib<=mh`6<#q+Hg-8vn8EN*U}|sNS-Llhv1p z1&Qe{tNDcNmJ--2Avu%6Zi(MWV<0R_i|>L*eaH+x1lCrU=*E&scYRcz`wGMdWBfJ! z5AjjXkYF6(;oA9O`l+yJrr^k9nCs15cgHWu(>;rj?Ff`XU(A>=tn=#Vi zN?-(inpM8eCTPz9M8k(Z9=@H+C!*{c+S*A;V*;+tz%DPrC2*6M6SYQ|a2zAn7m&YHey0h!TzXgk8i?@g@gps} z+trT%`1feTfS`^R2!Xw1E7u-UCv*3;tVoPFP_q=uOZ1+r`g@c|`BldBfq-LyW7FIi z0eEAA#yxF-h3=r$BjK{IxsN06CJ&}dbN}bm7Vz+ABX^CKSHF=0kj_A{C@1J%ddif zf)_a=C06Vy`zb}X(l6hJ6mL^*wDlK6fzkcohD3i`E;v}uFG6M^0-dU z+I$78Aq_lL9*wUb?~Z{#EjjCBovGCaexQ$uz#WD>wwSbi<`DLciD`T0da6`>aa^~pwj zdjOl1P2gJ;09y6c1V49J?V;sBWKeu^+-?z+py!?NG(NM3OlfrYXTrEBkB((%8t-FX56>Jx~9?QOGp@J(`$z-!V zE60V1>$?nXHiBcR%mfP`dLHgL0L4-7@Md)u2PGMfk87%Hi4uv&X(oN-Wwm^=KWZ|6 z^(fosyP2lfRQ$15S|3s0iOlU*7YOO~CiwEcg>)i-7fmNY>^1Na()YOsD3LnHhF(z8 zJ0C+5KL@zFJGL0vJg)!^X+9VOiE{9L>rR8%C1-*;4a$&*RT0M+5yK_ZPE}{--|mE^ zW3i!6aiI%=a7huVYZ_SFZ5o5+0dPUf4Tma=#ms#%)Mc1*wXT&3EF#oq4) zx=pH}?(L#6cZ**FnbO5QVWoLJFIopn;X?(_?vpyFC}w(wCCB&(X&`8&IR}c!pZwl& zhG`~?J-vAzGC{g~ue`&mU3V;yw5YgDkN}BxR?wyR5wUEy%@Ac92NNJl-c%+Kmko}d z@hsZDjCr`X6zNcEOILeKCG?Qpl6E~^@ARZ4+*BHQ@WJ_R`J``DPPDzg)iflY_-563 zUyXbq@&=R;;Kp_>R!7?bPk2o96tXihv$Hx~N3l5}&TDa6@i|-QfjYZAW8_J#Z%9xQ z)ZBS0oV?&88O8K)qpu>u>$ISpEVcUhqXfA}%##d?QXQLy=M_*Hx3*)TraW8m+)@2v z$*G1<CvA3j4wy7rGr%5yz^H?X3U$$=_>G%dLW8; zgGI|>v7W}y+FZyjo)Ua>zYkf>q;8@8wyMYinK!(Wx@(9^@X)F1swUGDZR~b)S|*a+ z@0%>CG?_n{mhJVia-Jr+=Tx_hs`2SChL$ey>-amFpd-(7!1gX<$*Fo+ zn}W7#sXQlDjxk`D&3cJ}F=qMCfKc(Ld_nCpn3B_8>A91Gm_W`B;di5)$^@=|GHB!L zezl3xS%JQXiKyS!t`t8B*d}Ow2OfsMRwX4wRegP@FI1S_glm#^mO<~O=oss3B^k7> zM&qzs5VV?N-jgg^cQjT@5p!QUF0S;xCaPv7F1Sr65gb$By*q-nxK~e9LN%yH`l;&E z!*8D(a00u4`I~b-hznkw#%sc#dvdDZM0o{}4(Bl@aGt6$xvSey=(Fkhe;s5>emi2@ zWqP*HezE2ksMe0!%vOb%Z?Nk@q@WOX@#33Cm;An-l4+l?DqA#=wbbI^87Yaf;EoPV zI^%K~DX*sa@6hP)T8`~^C>rs^^_Hq?i&&0b#!7ZtI&GtJ`7T>54jFH?k{EK2@()_* zG;F+T78-%u9!8J3r%(2Vh%LT*I#L#O`dDpDF>#(K4OgSOc89|ljAv?^-fUasHQqEE z6Y*e|T>+|P_x81?4yU{|3sA@XHBjq?49UXvpkP&PcO(fFo0n~h7-xa26VZLWt18eS z`2Ov?>S@_;J%`ip(dUG11~ETGA*iG#7>|^`kAia#`xpogQupr_EvE)C{qs;3UiEV4 z*}iJfuaGa=1E7-veM@2h2>9)bbgqz30t4rF=GD;WpY^_eP=55HPPr->Pdh9y#@pVbWS$rq&Fd{8}=1H~kxY4>+y4HXQ#RnIen=J&&x_-*KN_bTOdP6{D% zS`C+NwB{e3LXxD3+YbgZmvBo(59e+2ewX-Es?uxl^qReqB0}zc+Zc1qKP`V2lB)bg z%2tuPe0QFoH&T1@8B&XKd4i);B`4PV$oXs$^=54`3bO|a;J*m|J^8V|7l-DTy9ER_ ztkqFSwnCNf->G{#&#iYhVv^_18$SbiteK@V_KdzCUJNEtkG%|5w)`!RgmJx2>!I~b za{rBfqc&1uO|r&&wW&@({?S58`6PsnJa07Z%p5NIM^cgX?Nt)2z`}zZoWVi1B%PCU z)8h#ZK{=pLx;=&wmkH_Ojnun{kB9~5u-fJG)^p`4on$03{)iDgSn*bF%|FJ@`2NFI zo877j`~8hqggg^ZVOMPf?b_kcw?67fKB*+7tb6{x+_-+Y=%pX@D%r$jU!1Rc0WFAf z_M)v`%ehvm&t9Q^Br4Nop}R*VEGk7!B!t5)073i&<6=3;n7azmU_*P^Xhqkc%VT zw7dFxguT>zbH8i-_N$JihWtZD0XYkaXX%7mR)+a_ZgE%ysfC^bTAW2kVF_WKjPtyG z$UVG>nM`9h7;xB(_`@<<;}QC(7?JXt^4)zLT_GK7!-Rzr3 z_$&P(x%JgW+XZrS3PFaZvA-(`KYn*I>t_X8yQQlCVfT?SVQ$z3-zU~)(T*gsQ_!k& z74ugw&p{WeW1k%mfi;jL35V|n37l;{iH+Q7k>f#04V2FK9WX;p0*Khm#!`oLq@Mdt z+&=eoQzD$(KYs%#`f^gi$c}GG6KGV16VG~urQ-i|f>!!6c7-rnkYOSp9!T zH2RJR#H?!T1je$xJ}O+KF-`6?tu*s7SZdGn<8EyR@it|PwxX4WzEc%Exb12rI})p> z<666`#W>+kk$Tcg8gNQ+no1}?zLhPu}{m)pju}YYa3^(N#U)K zj_$-$&laYuF#EH= zI3rrjU(g5tOL3_ra`QGGr8Q|;#d^`(NmG6&j*NISn&?Io8;_{5U_Qln?p}(O+)H*Y zpO??ul1_zP*YF5=w8wTbmoDSp9R%9Rnc6G5%7`SQvY%L~1hGP6v7!22ed~O*%!JjW zwY`$oQv1&j7Wi1JtAf$^gElNQ?*TK%lYXI#LdbX05870|7UDYR6gxTLX7Lp)YmcOM zqXW&LC{+^g7o1p(W z`WKy>lx|Wa?eaZ~-A(%aCcz2hK$*Dv4T6MsgaEt!ScYsuZ{vE%Y)U~QoTtH`5!aoc z8>%Rz5SBl~Md2QVD0y)Ia`KtQx>4ffkyv_G7M2g!dG{vqMo44m`nDTq_o1lGrBz+E z3Vd+(D_bXB?)8_u&x0YLSu2uzPg1d#;^>~*nuiG~ z(@MfM;vTmbtv(4eJYVws!?)~EhUbp?J28W-1^e@NA`k3>o^awUdh`({MGvZ`M~9_j zj3vUW@8~4%6rZ#3#`!~c)|Qh3yDYv^mgWf}ixyjCp`>S60*fr2){;W>r`+LdgDwhm zqNknMCi~L$Ylp+&Mxhmlzax9C>W8frbbhfw<08Z^-{gaL1?JY(N`wNB`7^6lh3{Bb zbEq|QU%FeAZN2Jqj|ZPv2T5AYSzXp}#NQG##3id%H7INaKsG%1$OUfPVS4t=NNjj= z?s$jzNpOptgtWa9ljyG=cD(4b6Acq@nA~fkh0XG@4mr03iqziU?IA~q4&`=h?LP2yJHIFWLq~u4Q94VE3$GOZ{^@;p z!D$a^!Frmy)3k|$r!+?CokY!qS^3gxAw?QBp6V-ssT@Uvzg~lK6Vqw#)qb66h-p7E z;<--YEfDFw9do!6Sc3Dq<{4RV4mAMpl@JkMAi=$Qwr>S&{1!;4fRJ zZ;8-<9(I=43aSy62S1GdINf_C@1Vhp7^m9uOOWbt%yE69)@r}$fn%vQLVSo*^K(S? zCRKlABS()|TK*mOn&dxfD+T@aGuWcIt0_$m#Ua6v6#j$Ve%K-WeqfHX53MkShQbT3 z5+Xj%|6{n1kfMl5yi9IcRNw&5wa`s4n||HfC1Q~Eba&qw(Ma)^DBkPMs!kSkfwUAF z_^3XVKF964da`8%(*za2JC;yQx`VB6ag9~NS$z6Rm`9ZqKeD-Q@mu(8EjAhSTYmI` zd@^`lNMzA&mH4K-*k$ft`{cM)@xQ$sGVwm#X!)(zXLU7Zb~IvkzB@eHqv>q%;O)(O z1G|uQLPuV@btS;^o7t(owTyRtwF+75IsK`!gngksLPfuQ<%C#m*!5Kf_{YJ*FtGu zOp4sT@7sekecIXa9^IW+^zd}TsJ;*P-I7TVn4K^rJiA8|t;n_<{75@;*PtXPiIgTc zrnK$5vL4VB)!CS~%XY>06HvI3i%XUd$Ab2_eVq~rF%SiRyKcQ|YiK#_@}p%;fmfE5 z5zF-T5+Bs4PaCb9D6jr$?CkZBbZ~XH!q29e^d1f=de@Sq&>+&;HcJJ02d8?Zne-ZQ zDScbli-G%b?!(#}$;Knau~g#c;X6)ZX9JnoO^O%6@qsDa9zYl?0;t7{0N4eevls2p zs8P;QpuU}a8_Md5*zR^Xk0Cyaa%syuf5|fvHsoO6qw@8HBnkCBv0d24kA=5>eN3&) z_bz@Ai5H>Y71-F-cPkYrrD3&SGMQXic~a6fi$9-DzLeV~X#&i_TDZY5Rz^-2leKmxg;=~ zQcX_`IU7rH7MM-d4qXSOGH=-uj9Yfo5^@7l&@LV|coup=1zc3Ds8n=E$XY7?Ra3qC z*P;Pjvo_QL8cMi36wy$67_q}_~b#&=GV`iHg+G!Ea z|29NX9zh?w4)k3J+49B2m<2JU`|W<>aXdFUG5OuWyu)BT5kgsc8%Hr~CH5JrVyYq!6r52s9 zNjEIfThu$EkCT}-8H?njVt;H0)!aFf2Z{Pvypn?6E;I8Y4l8`-k5BKfCjxe-XDxM( zb$fs-8FDYXm&6-3^n*}D0M$z8fJYCI4xCgRzroq0&VgD0wX-6NJsG>b5uMZEx3in3 z-Obe2L4D^lFJ!;Is3C_zt#*%;@L*gcc~RvBD%^|_K^p?@Zv&0oVuxck!y^)_jP?7- zb{D_q&Z=DPQbS=7=vCUc+ShNCr-PyLjpt}N#0^E(ZwytG!2{nUd!edbgv)b#w=)D z_u)O=G+(+PWMa1AR*pEb&IZks=)PgC=gE#2m(30Zj*?yIjjUbw;c zZwDXK>ndcJwmP*af6;1qvGExKQKkPOK0a_~vjs40ncD-%USyIGtUXkibD>Lchu@>? z#BIfCbUbwSjYPC~#F-gqjVyhwXUp=g`yq3yIswn{LtxB1)gEd+m(Ux?voR?z`AYSr zFgtW%6TLerh*UJF=8})TUG{k@8Q4PDu zuL(Q(FL=?dbcyx5Wiq%o6M0P3usza)z2c$YdDIt;QD)mXtm#|;L}bfuTh!c70X>T+ z>TQ|sxx?x;W}~lXYV$0>V4~5(c(0<%LZKfeD>j5Sx);e5VRAHV`oL@Ec*`B3KaTvVpDaWhC$!`TH2u@QsvOGEG)oA z?>;^S3K8tmRn}3YQxbKfi557|F21bT?`_K0Nz}gG6gVG+x1pmgZk40`+f9yVt9UXS z(M((MVNto+Jk{{Ds0Q5~w}I+y8L7F(w1Zj9g^#*r>(`0imX-b3?;dU8(kepD*!Q*j zuJ+9D<4D_XK{O^qvzq4-O__L>Q@T?Ao39fl8bXeA$o#Tl^VKQ z$rL5QngP`ioL8UwdeFemJlex=(HNK+{(|>a9u#*4BY(3kitC3mq1Xd@9r=$&&PU(G zO{t3SD0cpz{7{m2-wh!5!LIopzPZ7Wgv1aA-=#v^*04(~NDE775<3V%s-X=e3p( z=v}3^O9LidmwVpRxVs0^_&-W3e&*Wh9`0_hgay>t+X&4jJI?roM=QP3ohUkl#jZc4 z#vnQRGMl>X9F^N`DX`Lfru|g8_EJrGk@FM5YhY&9IrN3lo^JwL{z3$s&vG4i?4oQ? zZsTnO?fN|nw12ohjqyyo-KEwwk>pm0*uoMdi)masHOb2oGXKugOrncdJk=p5kpNzW z9qJegZq?4M`~lu0?G5mj9&%pd@l%Gx!KBzM^$XUlh(PaSZDkflx|gb zJlYJM^B!JWS(8)n3ep}5iz1NThjz<}3Wn*gWdrZY&Pz<5QoO)@8-M40b@mp{X6(N9x|&?nI6oC8A%bq)IuO{JY>hiFx0ewBD8g zq(jb>cZ>8_Rb`Wm&(7)pU(lAV4WYpF{u$|aEIp0bKH>tfp(ipCcWl|8SO@1#uvu=jDxl|lFX_B$1eKz#@P~EpRI93 znIqOsW6rVU=yS3j%VAPEGpz@Pl|(XJxHP1+DohqZPm++8lp5@DZ(i)|y!q+}hPZA@ z^xVlYsp)abLBo^!l3e$~XnEYXUy%FIG7uWak|?Qx$)Ac8`5tYYBSTLAH#_;l=yLD+ z%<%x=z9GaO8pU|4xxkBi8$WOAdjY9s?E>+GsqJQ)#Wa6uaP6`~=TmEVloGEF1c-V+ z321USb<~BYpMBm;i{jV4YmF2Oh6m0tc9;5izD=#{Lncz<2a8vpCb}5$xeAk4@nv21-sl-i?-9HUYY?~`pNpcDH@qeg6`88AgB$CU% z-{gX^gX2`6*4AB$qb^quSE}z~2FbgA-B=s=sr!tjG)8`l4(?v-?dfUWAFns#^S84G zsguvy4V9(XCu&jQvqjyPN`K6?fS(FBJBF`KgX%plS<%gG^{RONFVtfSSrT z=6zPaTy7o-HjYc4Yu-Fd^|qzU*KO06ib7p`*k8ZgbNrQ>T2uDD z(gKbB)QmtFcGlCz*jtGy_7g09~3wAo0m5qMYsIPyXj%8DY4^w#@LQ zCbGIRxtrqjvOAu3>l83|yhT+sho!cC7D?X&sT}#{pHkK-*rUV!M**78u!lD2yxUmW zeeIJ-B!8la|A+;5mzvb9LYG%zsxz2nnu5spQza`bsF{xulZZ}7+Ui{CQ#lZbG=4|W z@Fw2;55~lDpikYL6~iENd9Da%BWeTY!D63L!0c0$>Q?E6fL z!o(=DFCk>#_hn?8vSwe#5@Xk3vJEq4p3&#~Jb%OU!`J0GM8_@On+zFUw*gi=X0RrBmW*uh)VA4_K2L9) z3>r_3=RM;zLmTvVc##^xA(Or}%a7)+;b`LM<-l5kE6zs_+syIv!tGVwU*~HuBYBMj z&B_|@G5C_K^|2w{o$#{xHKoa&#Nk!zP{d-%r`w3LMi5#HO~3 z{3?P6RIhQyL3rzs^^|!M`%}K?`?o{#G`9kCOIX|YGgsy?w{G?>q_|}s$F`IY1sGX| zp@(pD%{n%<%BI&X(qNw%^obA7nDcZ+G9*8eGShqKHz(s1q}^+sxsx%3PQ1VD(uz;| zI%%z#zO8oOoa=C9bCUrGx>v9v<7%3?WZdj<{Ymtc>4+k0``F_=_JsY3ABLOjmRLFD zV?Y3Hk?bcQ1;+}vzSI-6_6t_PpG3m^G!#BE)wQ;9m(OR$9mp*nmc2Vvwh3>V{l4g+ z+uxhly02R?@pRsaNB4X%3hhz-T!JHi8kYJW7kkh{3Tl=l_Bg#huingUb-y;c-#3{< zGG}qgw)YIzsdm9C5{2-eT*e;yD?jK^8(u2wZAj9kAmo&0v&QXwHFG| z{u(qVoF_QWL|a&Iffwvv(an0^kDRU&iJ3`$_xGZ)*AQkRWcS_C*B4pnAYKNItW>=b z!=uw$e?rPr!u=|{+v;s66bF#gs!-c%xU!SmOq`ub%opiqdulOjjyP}QpcgX;vo`;F z9V{a8e1djf%VR=4s(CmkhH~(D4+8f=iWYm#3xA(tFS&tH1(ANqDYf#Rm+l8&tIvF4 zI=a#6$rqp4QqGLIy(L(bwuG7e^f>y%u~FdFnebp)88w1W#x}xW+t$`YO|}~ z6Edx$-Edlfi;DBA{&VErwC)Cw^TFrd?`m~}A_QB?UNS^$wm9s1gR+b;eRulu(v7~( zHFQq3$0(CUlYAYsAA`%@;*Uv28Huy7u=xTJ@6r!l)}%Otsb;`hqx@FO)`qj&eg#}Q za>8<()|ebp4(|3oTDFHY%SX;_9?rI*RTK-QDmu^VyDSQ(>}w4b7kL7JXqoxXsTTzCF|zABE2*rNJT5_@GZr-eBJ}D*t;8Z(*LwPWv$JvfA*p+4A}~4XfLf~> zB--F6L>|q!DXA!oaorZ|Z?1{4b1GZc4{6SEC*hoZInvr{DvB7}qVFEu;ZgoMw4$=W zDL+(QNVFd|y7zSvcO{@D-vC*xi|rM$Z$gyD%B(wfgVu>IZv;$d&Dba(qkB%K7vyF2 z2fmezYHJ>Qk9&#jF1Ixf-YoS}0T)hi{)$QuyNfcMy|4H7{|X7@T0Zx03Mm&L7bmeEjj9UQeV{Y#cnp;$V+~rT1TpdIsF$z%a8|h)}XRnIR zGA6H2?EYZ!$bvlg(!c;8S4ug*@%*#ygOvJtbJ_D5lF?^Slg^a+=W27p-v@~!H}mK= z0dzH=7U^eXe0WCwuPXnri?YQq7mi=SaUv+Xc8unNvUuAFwzBeL1hOrac9(@T){B?Q^lZH(H6c~nE>)m?S zQJb_?Hi_=Cp$UrI8CWDv^%^C0*#Df=&Ok<8X?dSgsS!A7Z+4no9Hjfs$i=gcQbw z_on>BE2Nq8y4Sp{78-X>C00_{p+T)-cXp~Dcd8aeb1Hc;+Ig+L{`kxO(<&MtmVeMTr zdx`>cDm%3NtL*p7h+u~@12TU`>hO{P)6|Qh`1K<;wNU+kN%zkD9XE59jzkq=9qv1T zTH640KaneKx(WBZ;-VXFbx0=<=M8&$+bMB;98PNoru}+wGgS_xsUbHq!|Yv-kxb!F%T2D$m-^rkR&}x8+Sc*$5g74zibQ>s5olYOqU zQX_>?mCwpw=70tQMy*D6Hhp%k+(iE!_I{aNCV|0}j7UW;9;lY|P6IA_jpyOc$x{XH zHj0h3pScVz`z;s?C5vQ0s(Eq`SM*~2o#IQ9^OWAF|G}oQz5@PO(J|xxN0Jp&mXXrG z&wMwXW^pMa1HE%+ty`rJE2@Yqwfn=ynR<}H0uRx7w+>mk=`|wECb;?{;jpXs=F2)W z8u{;Q1woKv`cI}-3KQW<<65;DG`cb+o>weWjkmnY-I(dfgmfpZU}`_(y0-TlBr9OI z=#E1OE1N#i4XkiHab&#s;l36{WY!Em)qMpbSz<5FRS>@%FZ`)<$h+`1xbZe<ZkX2(0|JC-(DOp~i1_96to#<@FaoSRm z_271r9GygdkA+h)PU<5 zcDH;;4F5PS{D!|97I|fp>` z)K6Lq8zcRtU+JRqaXi1fh&m_}YEys8CuXlwLEQHNLA)sQ8}fKU)`mSATsqA4Q#2rP z#|ubV6Ek47m|Eg~FOZGoUOE_zV~DZDq63m!NwO5?&s;SE~L-UY50tZ{^G9 z7=HWewx%mav}=8RvdZ1hl>LQvpMe{~F}$nhvpo=X_LnVxc{UIht@UAtmPaq$ZTtQl z>bEpzXY>>)`WMc{=stY6xvnrEhuMM%@Hd9>BrL{R%Udto*`{TyRLv`Rv@06yB5}Bf zf}Tk`4h}9H#|(#eD|{%%gP;kiJ zaYtMVpITD6CU3!R(XAy0)D}785xi@9a% zf2nMp5g96mPMYnoFU7_4!B&GqjLzBaKHYzQoEQ?PDv=R#FovjaxY5n|fgD5x>9B=Z z=Aceo{kYoxrzJWhCI(fgarckVj{k9J@`u-}J3ilWdaRGFG^d|ZJ#h!D8@@q@Ovv2< ztHfNB^Nbj>f1uN8_~q_}c+A%VwufWe@QW~o4Yj)H0Y@2C?H?)@?oQGi0wTxYq4^b? z_U*XUxwO|c-`LodE|nu~)^1otXvzGp0=G6ZtMkrPDL$+bOFkRU-oFX!m?^iv2;*_1 z{5*)RPw4G_yphKsMc;e6jr6fvU_VKBXvwBH=K$2_R46Q)+|d z1YRX$V;-+FnQ-JBzTe>mTY@Ut0h8G!r6)0i=aRBezs(|{O|)>s;|&!SWl6A zl)|;k!Jg8rdqTn`JVINCM-eNRaHH&UchMKkiORM9>a>T^RrJHw%8cWj8LJ^JX*aeC zJgGZpJvewWO4pkRPi)v>J-W5+LtTx#nRm%sFyLz?jLK7%tRs_aCa#tcs`{|T%y_&4 zFdmu))$!^*8us}$jCMu#I^*?Ut#S3fJo#kSpx2|v0%1^$z8_lz#QMpNK>aEnlsnlul`PS(X5bbUO_u$G;6*NfyJQ zFJvGGg-OBf$JLQr*Vefz*>!u{osn6E@Y$Kh+T@x&wwsUe6L&oPRG!X=Us3|op_K9c zQY}-(Pp&FXFB%pYSQflryXWp5H8+Y>>Af*w0;+pJW0Y#QtrxM^*k7dr7IEOW|8_;0 z+y9lHenr(A^@%SWDs!H4y^9}OEE(Uy%~EDIos7t%h6)^f|KD>^wP_{$XhL=wA(0iE z%eG3MToHl#O=ps1+xF$Oxhsbwjh`-Wat#b?eE711Zuwou1xO%GYrc80K+U(?+CI~KA@2}mN>j{1 zUD>S>gSIm&|8l6Zu^xb!?ybkPy9sjc1;i%{S@czfakGxm4kd=PbY%vr#1}yx&(?|?iXceb3#S8IVjnh%W1UEF3&UlwJ& z@=^Vg&9F=!Rd>DZH!o*QF<7+$KQ{o5n@EGi>19uPr`OPySM?^%vL%^-7d^u#p|Ip0$@Y5uKu_dXuX_y_xWcbXGt__)tp|8%Xj z?tS*;aZ^efOZK4_rg{l_KFJ8~~u~5JllHRrk zm3iIWhAO>|-rJybi&M8nd8M703TafR=fZrF!J0k#_V!_Kxco!svWg9^icw)Q&+Iwc z8gE$?!Kg#i%N~x=3>IW(C{N-a|C@{=GIGek5K+e&1FgT?5N3geM$Fcr4+pb}b#2uA zHcXe*TA%;QrVsT-bwmrQ&`h!boW2P$h3ZL7sz10_aXZz}15zl#Vrn4i8z_Wfm}t;? zEDWvzQ!e)P!Q;QRbO=-C)Xw+kWoo>l(D`JYrvGM@&92^HvLkn~J~x;5P3H6lKBG|1gR(QT3!8;WzM$ z#4QkQu4Vt=$(Q|kxsm5P`VUzGl6ADt;=k72axGXmDQEdrC}pm0J1w=y$eKH?VU%bg zQnXGN5CNNFqYY_&A-;%Jx8#qKx9Qhpr7G>AfgL>x5-vk7mPXh(G=bRidn}T%Xf)NhWHFjF0;K!R{{F_Q7iUan9lGV zQpUh9tZnHZ=O;v&5RxtaNr)ubC+B7+3H(?TNtN{0b}6<2VmC}K!gu7TQUIYyTUEzX z0D$!`Yu0yF*_n#{v!e()d?Csy@JuZqj#Tb+)U&8 z!(Ej4Ocz)||0y+CE8{R&2cO4xd1+;0^3$}Yp2(*(=*CA?w*tAG==sO+kpf^wSbq-$`~K)rttNXjc7C zCgQdAoFkEG!d(l(Vti0tW+{mcmRDM-FyIz8l;a0Y!|@5%tyiYc{SXD3j>;e^8y%b; zRSv9;jq)JN^yEjtCTYj=tJj|0z+kW28RH82TUW8jSRd9SD&F$mcws}ESI+lCROWGJ znOXC0f_1$aU_HM}(&X}DY|qYnmXK`)@`ugsEm~B*>i-iD&Krn92s;TNP2}A@`(A+s zmz}~mdC39NO%+~{?101R@N^Zq?jQ$$dk-O8!H;L1rHo2z3rsH7OcK%li7!9^1DN8R zwa4e~dFswu*Sa57N@_Dyx7albKmPimzNHaoJc2rt4NW~P#kag}{H)OJO|bVpv$0|2 zN+HTwETx1YG0SK536&yOw?t9SI=&9JA{%E7c`(W6?1lLfX1!?0yM?key=V}X-nbWb zFy?E6Ol~sL&HT#Tq2@K_ZH3&UOq!9DJtj!K(sfJfQ{OpAT?|T5{IYb>zZ4EX`VZ}> zkSB2^#9xeO(aE%D*B)R;_l}0i&bkNC{gk4`rJtnxRmkkAdo^I8;T*M?(CfGD=wS*@ zdH~QuAR9D`Q_-jimust}KJ@mZUekW)_P&*lTM1Pf`_u}woF{Yl#PIRc{_6Jrcm;mB zSy2-?r|a2=gK}55Tj^!tH5rFAyaucLHzRB;wv3D@LLR=K8J0P=^htWF*!SM-uIH?C zlu_Qkk#NY2RGF0V$Xb@4KB{dtq78R!BUv~8K@2`@^g2A0i(3C7=G9SH;=_uDw(a$KIBCJjB>*G%LA7hNR!Tg1jxDR$SA8xBD39MQW(E(6Bz^pG^k zJ8j2&Jho#!h`>}bmS^$CgDE~NUZO}sE-56ujcl`Gyt9wK+l5aLnNi>#-VH%YH(b}fsr4{tTr8yV*XNgHF+a(M$ zS2aoBvs@T6Igwu0O=-Unm}HFvro&Tbu?LvcyA@!y7{cshK7+yXXT?)k$F{+R#~z+2 zsT-2o8_WiOhPoan2Jwn7oca^D-B3E*#iS0*_pS9AnHFqY5HDDV+(O;|6TW&>G0zCQ zXp(bBOE33&n#rAA*BUR7FZM7%JI1a&ZJL-_Y$DK2NLfIuvnVEA@S3+3!laWDcGBpIA|-m#8fsq1vDTHd=!@nyhF3xf1Lh~%*;#^qd4(-buaN9 zt{*Ut()HGZI?oAp$i7BrDSaW^BUsHo+n)E4EiNvN#x_}fxpT9ADQ_6N_Wcea)lXGA$4_9 z;xsxgC|`3(Z=HO>{<6U&zBG@|d~r9@+-2MUZg^yxXP+&#cs<<|>_%~JZ^z=@LGKDY zUuhJT%B7V>d)t=nVH&5VrcZ21ve-CL-BE+-=)+Bf#bdVsW<5i`^J&xhapVgyU~I#kk&F;~KpXD^vdt-f{S-w(I@G}d$PwO_9m!UWR~PAfKm9N{ z{3;RRum;nhno)qxFRXUx=IkFHS=XZ4o8`p^R^9@Uhxy!yZsNWLL= z!FMj=M%EX({LB%O^@D-yUH!sp%}GDoMXXv63=)Iz@}RFj5HN+utlwZMX-AsbHrp%3 zohAI;&A&4rm1CkiDn*3L>iUZs3c?KU^qVCTGrKyw>e6>*j|~l!udn}SYyEF_T8f2+ z5`O}S*Z-YFcJfK2_d2ua@Vr98{`1ua zrZmoBgI{8L#pqCXxpwvmrv?wVqV0SrGbN@vu7XG8o?P0;7mKIu3==^%p8pZ*LdJ7F z#5RY_DNoY-FG3DDcW3cT%j{$*D)xl%v*RXZmX)eg`M$Wc9vI|5t8`p2sJXf)CGZHTRJ0siQe3`p_Hcrbx+9vd#I?K+7 zx30h>pZ@86UrxHw*gXemqyp^Mv@9z)0|Az|^m2#nUVM1>m_MypI;U zjd8%-;9^vU(tD~~8&mH~UgsozQm9rGSY6OYimICJO@yuDV{>LIE!%RBKG9xK{oBYJ zQnss;3ZP`zGn^8omoGG23j2_QkI*kx6+Pm5=f_^eVCzBEXFnsbQB9nm4jM46u?_Je zFE?xa4{flW#33=Aq|-){rRP~^*25^%c(|Mw1D3^yT#eL$=s-Mhq+1JO5UZiV`tSj} zb!cJG&ku)lY>cgxp9EgBdPK#x(~q-=(M7rPMW+fpc}msQ#-6-j{5vkHWvsXC^_462 z*3=uuSg$NO4THMR*EvfrOdd%Px$!Y{?Mg{0P#J|d13Qf~HC4H~s7B$S%|b>1C;7#F zTYINykpBIIIn%^oPFgk+5JI?!2z*6&g4hAt_^G&;b1Z*e^1s=!2Y@GHhoAOXICljhgM^mD z-awT^CQG|J>0xFA!)U)rswZ&>kEul(igwEMMUk4MT8ku9K^TXJh!ier zuqpj(O9)TRbU02bffsDG6=K|&xId+C+2iVlzB#vV$voN-n&FS*oqVyPAl%*g?CRRd zX2MQO4|04*z|sB@yI{|1*_C-STS=ZYgP8c3;LC?z=34;Kl7@DUP=v~~qhi>rZ85#W zjuru*(vkdqVa2tML zYVU0EI^?VE5ofMFlbU-p_XSP96K&QAnfH-TTUd2&6%6^fzOhDVDzMtI4O0pNBw}~r zlsccp?d{StL=1x~-uLg=*G5l>0|2K_w&gZMNcyXL-%Zr*OFhLqxdKpzyTsu$7~gDD zE-Wq3V8_z*{kJRp+CO%Cjz%69IyPNDczQY;^SheBs%0|1zs2f^Dw3`W^Ew7`?VLKr zR6X;%W~&$Pg$dYd#J>gQL#kcmhthcS!RfHP{0spzuWT=#7%;ia5X%T2?d%%=9#VmL z4~dhN)G>x0<37*M5ji_>H3KRoI_dY4v%$IcO}_7|@5@G-8pK%tDtPb(okXQ|dtu>I z6vY!N4NBxrRbTxUyH@=zydp*%@@kHK=HQyVwJi0Ilj$-O?Bw=bY2`dCB0$3;%U5~l zPJhX~cTzVT{Hd|U@)lnX9y0cR?xw~URS-=Hf5hSzuG&#kZm}v98tCxXpN0W*q62ET zxmPPaB(y(0l;q9aGQDTEdhb|om+<) ze!5j}KZULrr&-#9ojuc~UR+oPiKp6MtquQEqV{VNpzpd~R-(+mS2lSVC8age#$3G) zvjhGuhMTiqG((whN$pYVV5%ThuL>a*YNwC1xSfKO;^t8uxk$eg#Uuc1Cty}CjVXPt zF(Pne!*QbtiZJFO99XjX*se^Y*^KHaji*YG& zVqr6&^4CWvLy>AOV%9Gx+Eh4>e5`QgyWv(>swa_??%~75oZ$htRSJ{`N%QaxxrzN6 z%DnKdKkn;cI)5Sz#QUpPJKx%CV{Hlj=NIbvwTcz#C1HteXoUPB8lo1ebXhIRpquoU zm(+W4@ATt1@nwuGhdZ|yrMP_#1PP{(P?{5-s=jfZX3dpjx#|bUe7g)}x>jo?_5Dw_ zN1PNd9u-NlX|Ufqrm~ytQu_efNHWQ~FU z<~}5!l&l3vUj2TN((iKb<2VyOx=q;i{d3)QMzV(#!F^6Rp{+RRu-_7}`*!b*2%Pcx zhTc!|P5J{wBK)whjl%>`Ek}p%_N@o7aq>r%$Lrf|aCS=sFP3G=e*9=cd58tce&-U{ z^=RVnNFIFP(zO;!p7c;&Mj=XCS+!thRra32-n4M5P)qd{w(I-@F(^yrRnN#8@}~h^ z=WH{@iD3UkeP^dtAwJIO&u=k-A}0P`J%a~l+KFBOKawP->HgL;VBp`&Zx6%%I6Mzw z?w#jZZYdv^%bB)qy6j=Zp&y&?*uAp>=wj<1d)Fj^q1lmrer)(ZXu%;{j2LhPASu-_ zECfjrRxsHpBU*kHX>vUl_8mU%!2XTxKeb?Lq*zcYd{VsY` zO%RY1Nd;0yn{rgrmKWdHt$mq}dsK_`w=tTD`r@xEkznc;-&sn+jh!Tcbcf+y0i~IxfdFH<$l)IZ-%&5u2D(P^Vrmncw8IcZkLS_K)BK zl-l0&x90i9DN$Kd>NHZ+AXaP3kJZv5D&mW)f9x-}faSJkX@4lb`5bA|7ttc{DWbjV z$yWwSl}Yz|B>&MzmYb-$9+!l9EQuFdW*czzty_9o8k^{L+`j-@iAVSWdA93Q~q6c+L>NF zH=Uoy=(#lr;6+}uK)wy5>>-t0C()2eW$Q^j-#+KEOc%LC2bxsa_bh*N`-h2kU~g%3 zYd=xxe=!3BGTGA}Q*%3WKm7#Nt2YuJqIqECYInkS>*<#8GM!#&!c!ElWrY27Z%M#6 zdxh1i8OK$p`fYz&*q9=O>?9lMwmjxV8P7JFD{uLIY!e5 zrZa&&)I737ygusXL4UmS71yA_dJBEOD1FHg#0nD|z|HPf9tK^tiNV@oTqhdg7a_e(KZrlz_Y!@ z^!Ri~%=n{m%Tr4#Q1T;%1VUHy{o2yvmnSB3zS_ik3xjO)<{PD&vKM|(ej2jF^O)$G zj7T3z*waSYg0nbj&eX!Y%`1RCzucur!Ymzd8q*7A5ifVIl{+yzPQdi6U^z2(UQ#Ozs8D}qom`$*( zXnUus@@%=m!ro>~q2hxfy@ZGQu$`)^(Yg@2u{DE&l+ zgL*G`g2nE&f%TZ|uidnaHlv!gP<=|^rkt1}KH_euW8Bg(t)Jb?>1?$cc!j9RM!svx z?!i0HSljjEx2X+WP7W~_ZKGt@k0EA%y0^H=rbO*?31IwckE#t0r@El5Sl%jFqsD^?#p(M+;8|oR%>(A!)>QLEPyQDLQ1Hzc zv9l(o{b^zsWKq<3>XQ?8> z@0%7*FLdmvMF8nJEF1Ya`W|z>+8Nvz|DbtgW&OIJepaf(i-0EM%Nv~e&h3%pGe;J~ zC&}h;B;p&E@f^I@Ku_HWYMf_kp;$6R9A+nXktYQt!jmtHZvswUp>^BD{|)S+y49>R|3%#vobrZi!kdMT;Jg_mROXJ^vbRmtyk~yd5A|fvQKpRE zhh~}{@^Hek1N6!$(LY6ps4lv^5CV8>P6JItxt0t zVjBX^LF1DRVs7~}&h~uUqFfxQdhH05X&AeY5A)lzdta{Oi@_KYe6pN{({QL#83>_h zrZ@*zIk>`i!bIB$oIK$SyNmy&fnXXIBp0U7Ac9y9-M))Z=G{9)BW~Z~n)-Zw@zz?V z*_H6gKKqfUEO>Fn0IwkHOg0|Bd>1~mmppV?+i}=14M2>GIko7P=k26smh`*T@dKaZ z#c7I0hfLZ^-BZv5Owq8PXxYy4eh zuqSq`9-TZ)3f+&Cg4?a-WYx!mQa#*chTGx z*V=d1cQ1wdF)Nk)DieEYZ8co;x6x|p_lbP~UnQi_clK4xRSN3?whPPSlpNN1?Mxw4 zB-Kh`&rZoc3DxmL($mxj>;?%%BeSBjfoMH9CuKz}14}#1`2cJgLMjE%9nyVM8NXBR zZ{4a=(0Xt)?FIl<1b0km9d|^@<?DwwKjp`T9m!AbF1@8_UmpX7g)-d7k&jr-TZ{92_YM3(X)k_**YcQ6rdu?Bs0e{5*Wu zK|0Py3w2y1rdlH;f8(}3&SbmiUlu%Ly3)Ees=nZdwz}X(`7Tl~YM7}-Lpb4s$f}99 z;WTYlzV01w=Hr%$1d~$lmeKk_>L<#mu5i6^`=lE4y4Dbt*Uh3v!>G?vI{XH|s9#IG z95=}pGIVn>Va$s$6F);7AZH^&54W?Eo3F$*SN{w{oWAX80(+-6U{o|-m0tBBiT{d> z8D?0hDwGxM{V|VODKuBx?uYPaLP|MB2=RMouw)`cp1g<>Lki+(IA4H=`YkW+eK*|2 zYX%Sot5(C#QdRhEY{(aY>AOaeSFLBKhjbT65?NNZoAE6IC8g7unpu>{Uh@kK<3b*$ z?B*M)rxA^>Zj5B5pL7eUH9OgO$iIX+UZ{=fcP<8=B zb97oP^{e*ZVmu|m!9()N%3e0?C?mFn?>461m?4vgC)_)Oz}3#g;p+}wc&=^xJbABH z?(Ef3JCH%aIBaZQV@cdj!pCYq(T<~}YpPzgxuaYTQ!Z8ML2)VfI6leuj9VdYNWT20`ECPBQvZ z%XZExSq~oXdQa}kUfpD`bB%A7$*%z z;l^=Z(6fI`prTcQ+#cJ?x6loNTZ}kM9?nzJ0pfQN=qNIc_Dke(7)Wjf3D(o zm)=yg9=*PeP+kBOFZVYt+z|HW)6;ekJKcP;cf{Y?Umu&|U^nMxZMs*f%m?e4aLm4) zl`Ew&6}(e68*EbJ!k;{En&V8ufDfv+J8K zO&`!|tY<`jV3=Nw5PT0R4;s?+2UHTlI0*k3KIM|J)erId%=N+G5Y(h}Gf#t+@d>7- zra|s1bGy%@#b3bZo_YDPn@D>)Go&|fKwGjjn9rdCGKJ5Z?9vn_PH~75$#xp^8_-j0 zauePAL;jW8Dq1>Pq(L;b+wAFzovKA4rO2@(S56N)R0;f9R@r=wXUDIBB>4{0SFNg4 z8_7WbIpM|yafQ7q2?Kv6b9J^#g!9Z(Nv`7NzjIsP#QaL4wp8s+dc+{e<^a*%1>(e- zRoH=DzVZO9O7rrTs={5ECx%ka{!RqWW-f^#ezF*asJ$~2>Fv?tbHU#>Vs{uTXS@|j zH_DM7ImICI=LW+4>Pq24|5oKOtYWPuzw#__$N%%lQVQpqFMk!cUB1#$<}Pr#_1dd) zVVkuW`?#K<-%@D%OAm{_P>Ar_Zj?e9sGZC43_iuNf&+J#>v=H SrJhodf3!68)yvhMzxhAC)_hg~ literal 0 HcmV?d00001 diff --git a/gui/package.json b/gui/package.json new file mode 100644 index 0000000..11dd06d --- /dev/null +++ b/gui/package.json @@ -0,0 +1,26 @@ +{ + "name": "s3si-ts-tauri", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0", + "@tauri-apps/api": "^1.2.0" + }, + "devDependencies": { + "@types/node": "^18.14.5", + "@types/react": "^18.0.15", + "@types/react-dom": "^18.0.6", + "@vitejs/plugin-react": "^3.1.0", + "typescript": "^4.9.5", + "vite": "^4.1.4", + "@tauri-apps/cli": "^1.2.3" + } +} \ No newline at end of file diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml new file mode 100644 index 0000000..1ed80cb --- /dev/null +++ b/gui/pnpm-lock.yaml @@ -0,0 +1,975 @@ +lockfileVersion: 5.4 + +specifiers: + '@tauri-apps/api': ^1.2.0 + '@tauri-apps/cli': ^1.2.3 + '@types/node': ^18.14.5 + '@types/react': ^18.0.15 + '@types/react-dom': ^18.0.6 + '@vitejs/plugin-react': ^3.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + typescript: ^4.9.5 + vite: ^4.1.4 + +dependencies: + '@tauri-apps/api': 1.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + +devDependencies: + '@tauri-apps/cli': 1.2.3 + '@types/node': 18.14.5 + '@types/react': 18.0.28 + '@types/react-dom': 18.0.11 + '@vitejs/plugin-react': 3.1.0_vite@4.1.4 + typescript: 4.9.5 + vite: 4.1.4_@types+node@18.14.5 + +packages: + + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.21.0: + resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.21.0: + resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.1 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helpers': 7.21.0 + '@babel/parser': 7.21.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.21.1: + resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name/7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-module-transforms/7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option/7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers/7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.21.2: + resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@babel/plugin-transform-react-jsx-self/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.21.0: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + dev: true + + /@babel/traverse/7.21.2: + resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.1 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.21.2: + resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@esbuild/android-arm/0.16.17: + resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.16.17: + resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.17: + resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.17: + resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.17: + resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.17: + resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.17: + resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.17: + resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.17: + resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.17: + resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.16.17: + resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.16.17: + resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.17: + resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.17: + resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.17: + resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.17: + resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.17: + resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.17: + resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.17: + resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.17: + resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.17: + resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.17: + resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@tauri-apps/api/1.2.0: + resolution: {integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==} + engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + dev: false + + /@tauri-apps/cli-darwin-arm64/1.2.3: + resolution: {integrity: sha512-phJN3fN8FtZZwqXg08bcxfq1+X1JSDglLvRxOxB7VWPq+O5SuB8uLyssjJsu+PIhyZZnIhTGdjhzLSFhSXfLsw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-darwin-x64/1.2.3: + resolution: {integrity: sha512-jFZ/y6z8z6v4yliIbXKBXA7BJgtZVMsITmEXSuD6s5+eCOpDhQxbRkr6CA+FFfr+/r96rWSDSgDenDQuSvPAKw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm-gnueabihf/1.2.3: + resolution: {integrity: sha512-C7h5vqAwXzY0kRGSU00Fj8PudiDWFCiQqqUNI1N+fhCILrzWZB9TPBwdx33ZfXKt/U4+emdIoo/N34v3TiAOmQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm64-gnu/1.2.3: + resolution: {integrity: sha512-buf1c8sdkuUzVDkGPQpyUdAIIdn5r0UgXU6+H5fGPq/Xzt5K69JzXaeo6fHsZEZghbV0hOK+taKV4J0m30UUMQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm64-musl/1.2.3: + resolution: {integrity: sha512-x88wPS9W5xAyk392vc4uNHcKBBvCp0wf4H9JFMF9OBwB7vfd59LbQCFcPSu8f0BI7bPrOsyHqspWHuFL8ojQEA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-x64-gnu/1.2.3: + resolution: {integrity: sha512-ZMz1jxEVe0B4/7NJnlPHmwmSIuwiD6ViXKs8F+OWWz2Y4jn5TGxWKFg7DLx5OwQTRvEIZxxT7lXHi5CuTNAxKg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-x64-musl/1.2.3: + resolution: {integrity: sha512-B/az59EjJhdbZDzawEVox0LQu2ZHCZlk8rJf85AMIktIUoAZPFbwyiUv7/zjzA/sY6Nb58OSJgaPL2/IBy7E0A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-win32-ia32-msvc/1.2.3: + resolution: {integrity: sha512-ypdO1OdC5ugNJAKO2m3sb1nsd+0TSvMS9Tr5qN/ZSMvtSduaNwrcZ3D7G/iOIanrqu/Nl8t3LYlgPZGBKlw7Ng==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-win32-x64-msvc/1.2.3: + resolution: {integrity: sha512-CsbHQ+XhnV/2csOBBDVfH16cdK00gNyNYUW68isedmqcn8j+s0e9cQ1xXIqi+Hue3awp8g3ImYN5KPepf3UExw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli/1.2.3: + resolution: {integrity: sha512-erxtXuPhMEGJPBtnhPILD4AjuT81GZsraqpFvXAmEJZ2p8P6t7MVBifCL8LznRknznM3jn90D3M8RNBP3wcXTw==} + engines: {node: '>= 10'} + hasBin: true + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 1.2.3 + '@tauri-apps/cli-darwin-x64': 1.2.3 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.2.3 + '@tauri-apps/cli-linux-arm64-gnu': 1.2.3 + '@tauri-apps/cli-linux-arm64-musl': 1.2.3 + '@tauri-apps/cli-linux-x64-gnu': 1.2.3 + '@tauri-apps/cli-linux-x64-musl': 1.2.3 + '@tauri-apps/cli-win32-ia32-msvc': 1.2.3 + '@tauri-apps/cli-win32-x64-msvc': 1.2.3 + dev: true + + /@types/node/18.14.5: + resolution: {integrity: sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw==} + dev: true + + /@types/prop-types/15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + dev: true + + /@types/react-dom/18.0.11: + resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + dependencies: + '@types/react': 18.0.28 + dev: true + + /@types/react/18.0.28: + resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + dev: true + + /@types/scheduler/0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + dev: true + + /@vitejs/plugin-react/3.1.0_vite@4.1.4: + resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.1.0-beta.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/plugin-transform-react-jsx-self': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.21.0 + magic-string: 0.27.0 + react-refresh: 0.14.0 + vite: 4.1.4_@types+node@18.14.5 + transitivePeerDependencies: + - supports-color + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001460 + electron-to-chromium: 1.4.317 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10_browserslist@4.21.5 + dev: true + + /caniuse-lite/1.0.30001460: + resolution: {integrity: sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: true + + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /electron-to-chromium/1.4.317: + resolution: {integrity: sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA==} + dev: true + + /esbuild/0.16.17: + resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.17 + '@esbuild/android-arm64': 0.16.17 + '@esbuild/android-x64': 0.16.17 + '@esbuild/darwin-arm64': 0.16.17 + '@esbuild/darwin-x64': 0.16.17 + '@esbuild/freebsd-arm64': 0.16.17 + '@esbuild/freebsd-x64': 0.16.17 + '@esbuild/linux-arm': 0.16.17 + '@esbuild/linux-arm64': 0.16.17 + '@esbuild/linux-ia32': 0.16.17 + '@esbuild/linux-loong64': 0.16.17 + '@esbuild/linux-mips64el': 0.16.17 + '@esbuild/linux-ppc64': 0.16.17 + '@esbuild/linux-riscv64': 0.16.17 + '@esbuild/linux-s390x': 0.16.17 + '@esbuild/linux-x64': 0.16.17 + '@esbuild/netbsd-x64': 0.16.17 + '@esbuild/openbsd-x64': 0.16.17 + '@esbuild/sunos-x64': 0.16.17 + '@esbuild/win32-arm64': 0.16.17 + '@esbuild/win32-ia32': 0.16.17 + '@esbuild/win32-x64': 0.16.17 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /magic-string/0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /node-releases/2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /react-dom/18.2.0_react@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-refresh/0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react/18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /rollup/3.18.0: + resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /scheduler/0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /typescript/4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /vite/4.1.4_@types+node@18.14.5: + resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.14.5 + esbuild: 0.16.17 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.18.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true diff --git a/gui/public/tauri.svg b/gui/public/tauri.svg new file mode 100644 index 0000000..31b62c9 --- /dev/null +++ b/gui/public/tauri.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gui/public/vite.svg b/gui/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/gui/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gui/src-tauri/.gitignore b/gui/src-tauri/.gitignore new file mode 100644 index 0000000..f4dfb82 --- /dev/null +++ b/gui/src-tauri/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + diff --git a/gui/src-tauri/Cargo.lock b/gui/src-tauri/Cargo.lock new file mode 100644 index 0000000..78c1d83 --- /dev/null +++ b/gui/src-tauri/Cargo.lock @@ -0,0 +1,3249 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "anyhow" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "cargo_toml" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497049e9477329f8f6a559972ee42e117487d01d1e8c2cc9f836ea6fa23a9e1a" +dependencies = [ + "serde", + "toml", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +dependencies = [ + "byteorder", + "uuid 0.8.2", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-expr" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dtoa-short" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "field-offset" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +dependencies = [ + "memoffset", + "rustc_version 0.3.3", +] + +[[package]] +name = "filetime" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "windows-sys 0.45.0", +] + +[[package]] +name = "flate2" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" + +[[package]] +name = "futures-executor" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" + +[[package]] +name = "futures-macro" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-task" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" + +[[package]] +name = "futures-util" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.0.3", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.0.3", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33a20a288a94683f5f4da0adecdbe095c94a77c295e514cc6484e9394dd8376e" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.44.0", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +dependencies = [ + "anyhow", + "heck 0.4.1", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.5", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "ico" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "infer" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" +dependencies = [ + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "json-patch" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce" +dependencies = [ + "serde", + "serde_json", + "treediff", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" + +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys 0.42.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.45.0", +] + +[[package]] +name = "paste" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pest" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" + +[[package]] +name = "plist" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9469799ca90293a376f68f6fcb8f11990d9cff55602cfba0ba83893c973a7f46" +dependencies = [ + "base64 0.21.0", + "indexmap", + "line-wrap", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" +dependencies = [ + "bitflags", + "crc32fast", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +dependencies = [ + "cty", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.8", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.16", +] + +[[package]] +name = "rustix" +version = "0.36.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustversion" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" + +[[package]] +name = "ryu" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" + +[[package]] +name = "s3si-ts-tauri" +version = "0.0.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", +] + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" +dependencies = [ + "itoa 1.0.5", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "string_cache" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +dependencies = [ + "cfg-expr 0.11.0", + "heck 0.4.1", + "pkg-config", + "toml", + "version-compare 0.1.1", +] + +[[package]] +name = "tao" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac8e6399427c8494f9849b58694754d7cc741293348a6836b6c8d2c5aa82d8e6" +dependencies = [ + "bitflags", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "paste", + "png", + "raw-window-handle", + "scopeguard", + "serde", + "unicode-segmentation", + "uuid 1.3.0", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tar" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tauri" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7e0f1d535e7cbbbab43c82be4fc992b84f9156c16c160955617e0260ebc449" +dependencies = [ + "anyhow", + "cocoa", + "dirs-next", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "glib", + "glob", + "gtk", + "heck 0.4.1", + "http", + "ignore", + "objc", + "once_cell", + "open", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "regex", + "semver 1.0.16", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid 1.3.0", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-build" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8807c85d656b2b93927c19fe5a5f1f1f348f96c2de8b90763b3c2d561511f9b4" +dependencies = [ + "anyhow", + "cargo_toml", + "heck 0.4.1", + "json-patch", + "semver 1.0.16", + "serde_json", + "tauri-utils", + "winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" +dependencies = [ + "base64 0.13.1", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "regex", + "semver 1.0.16", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "uuid 1.3.0", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c507d954d08ac8705d235bc70ec6975b9054fb95ff7823af72dbb04186596f3b" +dependencies = [ + "gtk", + "http", + "http-range", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "uuid 1.3.0", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36b1c5764a41a13176a4599b5b7bd0881bea7d94dfe45e1e755f789b98317e30" +dependencies = [ + "cocoa", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid 1.3.0", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1" +dependencies = [ + "brotli", + "ctor", + "glob", + "heck 0.4.1", + "html5ever", + "infer", + "json-patch", + "kuchiki", + "memchr", + "phf 0.10.1", + "proc-macro2", + "quote", + "semver 1.0.16", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", + "walkdir", + "windows 0.39.0", +] + +[[package]] +name = "tempfile" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.42.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +dependencies = [ + "itoa 1.0.5", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" +dependencies = [ + "autocfg", + "bytes", + "memchr", + "num_cpus", + "pin-project-lite", + "windows-sys 0.45.0", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" + +[[package]] +name = "toml_edit" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a1eb0622d28f4b9c90adc4ea4b2b46b47663fde9ac5fafcb14a1369d5508825" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "treediff" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +dependencies = [ + "serde_json", +] + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-bidi" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" + +[[package]] +name = "unicode-ident" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "webkit2gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", +] + +[[package]] +name = "windows-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" + +[[package]] +name = "winnow" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf09497b8f8b5ac5d3bb4d05c0a99be20f26fd3d5f2db7b0716e946d5103658" +dependencies = [ + "memchr", +] + +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + +[[package]] +name = "wry" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c1ad8e2424f554cc5bdebe8aa374ef5b433feff817aebabca0389961fc7ef98" +dependencies = [ + "base64 0.13.1", + "block", + "cocoa", + "core-graphics", + "crossbeam-channel", + "dunce", + "gdk", + "gio", + "glib", + "gtk", + "html5ever", + "http", + "kuchiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "soup2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +dependencies = [ + "libc", +] diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml new file mode 100644 index 0000000..5de7839 --- /dev/null +++ b/gui/src-tauri/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "s3si-ts-tauri" +version = "0.0.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[build-dependencies] +tauri-build = { version = "1.2", features = [] } + +[dependencies] +tauri = { version = "1.2", features = ["shell-open"] } +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + +[features] +# this feature is used for production builds or when `devPath` points to the filesystem +# DO NOT REMOVE!! +custom-protocol = ["tauri/custom-protocol"] diff --git a/gui/src-tauri/build.rs b/gui/src-tauri/build.rs new file mode 100644 index 0000000..795b9b7 --- /dev/null +++ b/gui/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/gui/src-tauri/icons/128x128.png b/gui/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..6e59aed6e8c98c2a4cc33fd34a2b6b68c60359d9 GIT binary patch literal 11748 zcmVWM}5hym{~2%X<%KFYTqhw3qhM zUfN50X)o=iy|kD1(q7t2ducDfh$5ZS#wCp;LDJBVbNU_UtjMxcrhmkrUj_n5&}cMT z2EEg1chUtX+6xyN7M%tH6`T&jj5dTwTQnkyR!cy4z@v9@vFYXnb5^(bxXdnbF&U{E zNfS>Lp+{SeKpPk0cs2rZWo2brlD&%PryrQ0Bl24IxnyH1Cb zdgtUGH`hto{hhM6`0$xyjok^|#!@IE1==S8YiVh#E;p1fbI?2vKn6 z=&oIR7cJPbW8T8L`m&m)WBD^c0PdDn$5gM^MPSUxKmBgx(BJ+k(QNK$wE;F8LtJ(W z1(5zxKjD|D1PY{(712-s^LXg>T8)8(U`bh7{^lKXpI^WE`B!cBI>8N`PKQ0z(lMk1 zPjX&EvWve^?v*wDqRS`$bAD<{r@r+T0=(U3)6jkDqXxfRfVYScga}Tj>~QLJdcDcW z9O3ldFP7hZ=i#GEH;EyZv=WVR$dqSos9vNhF5<(cPyWY~GcJ2+vC$BlQdegqx@Wj+ zbr2Na4t!rUq}aw-ti`^a_72k2_z#DEi8j|EA$G%y^IHHVoXiUeD0K+AtjK)~$ zrfa_X?1CO+W>nQUWanFR{pqS*VGQ(n<%8tY7lpr_*LyER}Mo^nz9+fa^md zOlH%aH*fu}Q^%~4)iqYDR?CvCo!Uc%2M&joxPd``DnEPkTZ>1GCk3%S6iCo20I4$H z$&`QBEju=*b;uf7TPJ{TXsr4+{BEv6Z}&W}HC33b%ep|V5JV*Fkls0aktSha>YPBYr zlQYv&#}4{o&pRKXMJqN;2q2skq_Iw&^xBid2VHY_RkcF-XfNSK0#Xnygaw^ayY@90 zI*?-c)fyKp+6)0)vZrVF>7%Z^^p*E&YaLFFR;YKe#DZ4CgRC5$FcuCDs>-y+UOR_V32m@-OHT&Xez5)Lppjm$ z(Uz5;-uK#q9{t!^wL9=euI_liUvoh}ljkikIDfec{o+wi+&6XN)AOopY&NY{ zulLEO137Q0uIpM$=N``}EZ#vt(ZOg`u9cJ(f|Ms5KDGp>^EaZZy4Y8*Ib@@%!QAkOZp%}0!2J%Jbhr{=)c6G$YzU<((Auo_2m6)H$C&Z3r1l;0MRlN zyL|s`hkr;;>OQEE?ElFXh0W_oIvI)D>+6B+6U(q`@7p+*y9{-8RgG##Mi`Nm6@xx~ z;?TQS95OSbkdhLC*cd$wMvajDwRLtB7h7=rcolx!Q--bEN^s;zc>_dfh(-*$A5+G^ zN?bw%tJN+-;Nj&0iY`!Ga%|VUw|fmH;L}$~vcLAJ-w43w2T_2dTgIdjx83mV7SckU z9GJjQPV-j*uT?0%qN*CZ_b$ZFJ^w^u(Y{7CGcsav$+!-fFuo&(4NXLPdK99g^#nAD z-XVh{@lL19Di9G3(i!OBt}U9Y0Ds=)n7e0&6^UY3SyuFk~hQ7MAT8NhXQ4x(5G zN=xg79?c@$TdJaB8Y=g7gb0^hl8VWb)9||oitymW+pu9{AtBn2Sn&P`+y5Kp_ScQ}WKv8dc#m3zuSzr791A8)6*`(?KiB4;;8k^Lf6;@esdc#Zfzb8e1s^sEfdq4pJ`AJEs*`0Z%vyY%#@{CR--P(AZV@I^0;epT zYtipilV_tM^~7?svFP7Z@yVB0yMf=kS3DNJJqByPzZA1?=`M!0xTv1kypveBB%D2x z$j@qWNM~Pz)Jz@qFUth>gs^z1D7RqlD;J9PxoqC?f)GcnlY}qFlXVuS9APviFpSh| ze!~FAgZYauK=$!(#J46SMBs1F55wk- zm*JM1yTeMca$BdDgm+IJGw%odxCSrRp?D5ikBB32@aQA`#5EQ}hmL+O{0?l6 zhG|R$hi2F?j8vHUMWF%ND6ugase(4>&RpD693Je=~lR(07jT^&6 z@_>=QB_ISKMi7T{SQz*Qvah%Pu!w*^+kKtc?aMC>#if^aLUk3{>P2AMSSBZ%FtC5TK!DP+{jiF}xG#2SyGJ?~!G995A3)2TUrm#~<1M`hE>vi|=we1!cuVrHk|2+*%YDin$YhnR92o zPnK0XzOl!z)qoK`dMEM=>czRyXr}MhL$S)FkTK6tyhjssgPvMw)AN>&K%?I)X+<4}!->|YMYHRH{c(4K+HWi5@JG)XKMPj1S%^?EiE8Ip@los1}l;Fe(1p(62 z#;M62a;y5^(s%~*!T^=Pvk@;;-|im<-DjX;3f0@!Zw;=;K`c@!<;)AEzhe zkk4}GIvtARp6|0aW8c0CEL)z3Ro|V#zP*(=bB3HlHYJE-GU>@p9EDjocfq~)^c3*2 zdwHkN{>TakShVPv=$+AELia9H!P8^-147~XYi1lJzvXhPIDm^7n{oqhnBfoGZ|>P< z-p{5WJ6whgxL;f@DyqesZyiB20ocJo7c?YBF*U~0b!P9&R^(yERckSP;>``I4H2ZWgV<-ColW-w` z7ri4WvrY=~c|mD3q6TsWj~n$IKKgtLMfI%s-v@W#>!p_v0@#t5U_cI82zTAH74LtL z<9@rz7>V9JZoq&GW}{Q;D4`FyxCI~VN*yuyA-wy^DB)pzYr%2cdp99UrwDQ>JKX?2 z8}cM7D8`VK8i6OD*o}4T&WKw>2RwkxP6I_Ei9~@QIRyRp^?WcaAZU+??D0ePt77AG z*#n#8=IY{XP9tLR6osy@cMuntjDEdu7Ppoy&&MN=?Lq>1;1<7s979JeC*YqD59#%K z0_=nM&5cJe^Rl7j~OsEqzE$CsH68)R@EcY#EA7*@lHmpwd)FnrQi@`?BxUL znoR)Tg!dO8!!yq+NhcJP!Nf6t2hWU_ByGt0f0hC%d*&mBnFGkpu^ZW+2mL(vmjw!i z5V&moe4NT#kMhdnc;Ro^M14irw7C?naCnbyS76eZmq=W67xh{5XLir=Efy!96eW?s zw^)Ic!~qm#j3eZzKu%6=6Eg7-x3VFGLxhe-Tz)wa|7B1nITC5`{jkMG8;TerA@ zKjYGWqhGJ7BwlQy&2aYLn?Vt13Dyb-EEp6fwxJ+_jwsCmb8Kf^KXWO{D+)-fPZbJX zO^pJCmcBv6>4_u6MC-AB>wN6m`=+=)X<{-)jY<^RK8yftR=HX+OQdNlE8wSCm=oCS3I)bSr-~drn~Umw zjTy%RWF@7H34FzxXR&U}6XISpnUJr(JXqxfN?o?`9mM)ypLZCKKK>&ihFyq^g!n$B zT>gh#)V+nM;iw-YpqO5!!kcwSp2^Q*i`fDrh;)v#s)9lQU;3Z7gx6q`L;b1WsC_X% zj|bRAaT=fB=XBadnpT8SPrihsSpNOpIB{~NxX&i$lFu(f@7^&KWmKr2r+|G=zJxzN zu@{@Sl(_5JY%CsREc=S^^)Rb zr$4;1?M*jil5ZiG5I{nQln4wH+pcCFgMm$zLD=O{eLA0Wvz=A@GH!#Pk zsxG4A3miW71tCKR4D53c`6vE>=*URo9-)~<6ex^>3I>IuG?!D;(!JIc&Ln0R@uBP$ zShML7H{eH(Ou#cw^}(dcsi>~B38hb`*SI^YD3o>#A8y8))t4ZJltA`2Mn&mFBvQ+B z3Ru{?K3bhsWFhZi1-%_UqWWpQs`r)Ps+wwS8Z+J%BXUinmzO^HOkHVG#hyJ^yPZ1`X!(pS)@E#%4l}T=@hAX+E z>rD>2CKkJQtsEjXQ(tO0xE{Af28TcnHX}!r`hkNhO!iKeD(XpeFJi31Clh||M zbFxfyLT6|T90)uo(3KSGAqHeGV!?gxVKp>&ztQtP>NeM&zwL8(nPqqG*q;JPN)T!3 zSNV8*;R%=%4T81%>bGmgFtdNx;hI70KN2d4z(`SCSdSrOZG5wIH0cvc!u85^_oAw% zhPX(>Od`MfA0!3@#{rrQ^jQcZH?AtTaKD*Xd(}1kIrr5*^K!QMCX9Inks^KoJoNBh z9LugoWRz9~rt%X0%_bn{2(lu`sa~x0CnOmt>Zly%1U&_gv;tUx<`NnWl1ODAI3yl_ zf1!`~ma3Y3@~u?d(o_6>Zo;(y3}Y{8v(@5G94 z#)!}`PqbvQ5JP~~k^@M#$tWTP@xXyv96wQu{QP=US33kHr&1WWf4>;??HdatSr|Mc zNrFP*{sc+c!Bj!|!7Vpu;Pro;z}|i3IC%7ZTsZjQfXzZV2p9$K33TP2dvQs*vtnFd z)8xM2^_$*n?faUX^T2X0z<>*`#nGHu*mr0VR;@0=W8~$V^ZY=u1Q;uA>(`fK-TD%2 z*jPq@sY2fAdanu^v+JQlVsZa{U2(&&(?#%!eE~c>Np>5x%|S*IoFgv5h-{8VJNAlsZ2;Se3&w;i&r7z@9B_~1>0FX-+O<8NMLRi2RILkva}lqf@WT} z6pQ}dpG-Cjo_+2}BcL;zPl&$&9g;6ZYVrsqn){IFE{z;TQREvS?_SL*iXp7Po`Y`) z=gzX_g&2MDT70`~G&0g7h!Z%~Q1aQ*ZF?D}pMx;$hwqv`8ndq5gX|Ma2%wi!(59!T!qHn+3b{_h8(r>N z8VE84>&fM7G{)eXX&>T0UrRV}ut2M{6sGi*;T+5)ieTE8)TEL`a~8&qc!~^c*486NwFW$?!ho?^0K~JWhQ}%5R@_h|i9ob}xGWj#E#6)MRYYR#K^}kKb zK%7rHKoibEfMhw$VP3KJuK;x5v{YMP<#brrwhTvXoAxLT9btKQ$_+o(VB)n2KY2{fP>lZiL><1CiKXP6r4q27~WsV0OKH2 z=@|=Ftx^(AQWA#~62y7WDE1ANfJ;!5L!0rG{~`}Ac867X19$I#4>_m46W6Z3ssj>9 ztLH_jd~p(ym?8V%HvyNYzcS4*;N2Q=gm#c)2BG8obHnRd+jRNPvRxe@$ z2~yaiDTs44XA?gAW)kTTily-8{C?=1ZX&m^P012!X7D(eWTv>n`-@Lu^A<(^_wD%` z#Ky!51yrPog?XHU&k2;8AIlb#K|`2XbS~O=I&EUb4_>fp+wO%F!Mhc%Rr+6ku@A1g zCJp5jJ8-R4e;DYAIq z1G|uWvQ}IhHS{^e#l$Pr?`I%LZj9IAO$qaCEUYBl;&-U4BO(NgmABZwEPVcK7ILBn z`)PLkxDXq*{|Pm<$}C{B*?`3h2VmM2sRVqhVEeub`xX+Cjacwz4i+vtEv{vBnuNi9 ze0|s%F0e*yuLr@{_}o9 zHMRBFf8;-8;=PLeGuzy?J9mn}Gf(%x>{*?~+5zPhLDc(Nm{I`W33Gx0dv;ggiWxiI z{{E>GK7~0x)twqH2le&AmDUA=ylGlZx5#WxVQ6kzP?O&*cR4~98KI-F?LlnX`4sXB zR}s*w5fjy&!nupkDRrp21dG=H_SF@`Sd$k{U1~$G*9x|{0ag*Kd;lHc{@y{d~>262liLtS5vmpJFVi@gwb!HXSYf2 z$)sMP>0f|DYSWoP&1zQOQj}WK)V%x_6J0ou->4J8l-28>#E!jl)U+$5lvwxSi*ILO z_O*veEJUb_F-xACnyP?q+=$}8m!Q{3Vy7^^Rab8#*1j7jPJKh+-7j#aWIH_f-00jn z61UAx!yUJGMtYY>)K=Mj%X<%?3E(FiuzgE8E}gm^C8Y}RM-F)!BL>~Antb}^$=Dw) zwymsymKXqh5P3^X!*$KI^9KVz`^5KHz2PpDRUB4pXapcQWo!Oh`KYFNd|u%O^v;@u zx;m|U85ao+f5n^)jqBa6=w1cNE33M*q{#>C;4n>u2~ zj1(~|xW2|Aw0y0a2Hxn)rN+He7NUdz{?a7{xc1jSqF#+EUO4zEj2rm`#SRn&vo%Y^ zw1^xbLjZ3Kz(uiMSg!2tzDFH5v+%$Ihirq%pofLz`tt98k6rucx*r=pEDkTs>4{4w zrXc57HQrfNASPMnoLUBR+yz9jbtEo~B5=>5!{Oj1;Htf?kwXU^iqsa9m} z3?3YfOUA`x+{I?}=@SiOqz(=W##GnXAy+BM8ZE6p?sD)r$io+(Xh2Dk6|-*r5ubdj ztRcYMY09_{Fz|xw72vzV%Kl`JqJ{BQuZQ0Z^oEtKEbLk1g`9YR)^2$Yn|D6$2HL1m z@%ZQKeK25fEGkNr37e6T8pOqEamghK`1C)8ZdvVcuxzz@2M!?yujrAIVnAlP5xsgx zVnF|B3>XkCqIQYNO3IIe^o_bYCmj}{Cx{IuG%bz1Qh1?Cruvw8J(hiS26x?i0J*t! z;$C!AM@*mi1u{Dg3&_zE5KO|&0X$hvi^&Q8Ac(p^Lxf3>@`^K9_WkuZnZH`SsS#BF z*dyHpVw4qG5O3BYFV8BD0sW)!*8D!Wak0ji*)V|2zb)u5|_Kb95zhG7nbyA~o^|hfFuSvjqMm%Zx#RV4p{-J}I z|K@4;(_PZ1k)8hmAweu^Tua9UI#%In+V_ z`=N2F$ZZ=9Y(-(J=hZow+P>fPB)0B;#(i(rEoqqhN-sgV<;A3Q5he13$$|na9{R&E z6c$>^X`&Ok`cFTbiv@4>Kq=Yc+GY^I6^nQ81IWM@Y(03gbEvD3@Het&>f05?c8V&S_<{ zCw9X8^Yvc1?KhoKM-*C7VN>$y9I{aOii&MS`3|BsouFDqpqw0w5F>h>$7WFB7$v~H z_Ar}&vGK~Vty^1$7yh1urC)I-j{@ZA$PQ%R&k?JU@-yt$?DuPA){em@Kx8YdJz*K}*BGMSaKUOi11 zb5Sgo5w)>@-a$O|s;d%NiC1}Fc#`K`8$+^k7fpb-6E%PHO)*}3?IgZg&M|yN1Lf^& z`uF}{3?KMs@=!*rR4*&Qm;HlJYnRw*I}s4Xcr)ckkcoFJXAQnwc^PTUik!S^W-{Jc z(3cc5t#GjDRpsn#9GCF+g6??XZzdehuE+FgX52a}nRJBavTppPo3s7UO76cx?fhN5 z?O0L11&iOy$AY)>v2|Oeo8sAe>DBEv4D0_Wk`psUEWeSK-&Tn)L8fZ8$r?fIlwnQ( zQ1(~&a@BPAVE_5COg!^!mhi5zV#djljWwBuv?X&Qm>~ldq>b5Zq^r$EeIe#d~RBOlj4dwXg<1_f|zs1NesB=GMGDe|C*I5+8eF!N@ z-C(yVfLGkiKcCh2f)xRhzwCzn^G0^*=6vS?d<~g!J#ojK>8L8RDvFs-^3K9sN}NWC zquVN+!d?5(#|30#TXFg2X7Uh5lf%a0o`Q82fqNl%!P?b{DXe2eL@AVRt8-x2?kars zbqPLSQi7d7aH3{IP#`Wg6TOMz`}F(`65~56Zsj_=vP_+-IoMRj!rnR(YK4U%c}-n+eU-Sr(w-m952uI*G>SdgD@vu%I-9Y?WfaiRE#7hlf9 zmrHtM;)Gb@A}S|n0(h~wgKO7sC_9KoMQDVJmrHqxO|bQqtI9~nD8tU3)s0r@Une?ndJUAdHs+PjHk~#;_TOWP(-)sFKmb~!-3UBQT1gNgb&G%ZdIfmgMSJ7%onR9eX9Y6G% zsjIh>zg<>Su>5*nRw*~<)CNL=hfz?pxe*SIza$pd|2i3$O-VrKE+%oc0U6Y--lc{W zKulzluUT7#+>;hepl3UGHV}Xv!WaMOBS$gk`CPBx!6s%*bQdJV4?=3vMdYO$O%y+X zB9M{lW{-+rpVQA2+5YocM2#q4ruc{S>DLp6oi6xp2f<83Fmr|o0W`clxf~spZoYBG z;cUIultAoQ_PRxRGihPUs@ysupO5B#jXj56#p!|-jk0dcW)mh&jK$0=6GdpYW4eM2 zb_$(xz(z!jHOgiY(J>m~hPBr6VvWio3M>*hFf?$;4&;;F&Wk^!b(oAK^I!t>AfoPm z6hiJs2&8w<^=B=f7m85WyGDu6x41i$ANNC5&yV&A6f)^ilFd8?7b(TC> zEEOVKX8-;g{D*ArMT?8Ejg++7YCHM<_2`glfH6u3qfU|kHN^hwYMkn3Pm%zr@D(H* zQB`3l4pA=h{Vu(D2?q7~ADH9%h}FBf%Qm}1UHwZL%?4^e_sh2jNBy#s#Gj_L?BI@_ zd*}QEB7p6mQRsI*H3c%X%pA?}eY$i`9Wjmu(Mf|A5RY^XGB1K4CPu`hqI>3K^y+#K zvE-2=KhI*#BTc(j%&*^npax66D8bwB6l2xuG87P1GnJ>LP)OIT7q&Y)4qfZ@iEu7~ zJtbLB&ypy~xN_ zunH*xr~->5i%!1b%0oYxLiWd6gPaXgI-w_gd2h%u8fy{mkYz+*JPDdUx`>_5`+&6Z_ z)AK0QY13%*dW5vd?g`=58uvRKP%Trl$Y9RWrINsS^5vsg=Oe>^mI&e&mpd6gU` z4xVBWo-RsawvWp@CbnteX<+o9$rz8W=@UtboG8RXZCw>As*Vt_s}UdD3vn?W1TyfF z@RI+_to+QV-|nC&t7gmYxpNr!fl|LR!hr)tfP-h^Tz|!py|FQ!`jScIkR(kTlURe^ zz`8&0)~QwYUs4@9%2sgaBik3fr$CENr_okco!zSL;5{>@?=ex_YZst1%e7nK=F=Wi_`-Xdp>l@N(^ZX*@p&=mjqhWTm4(zdBg2 z&CjoWnSgJPFd6h`2>Ab9K4Ls+{q?S~M=MIJwIu!kRzUcJ7%Ov5tzQxuVKDIIOxfx5 z@8bgHUcP1~wKPffXVyMz`#hF3rg~=kJjOiMnh*e=OGuP9Rtgy#9gaHZp=0lSq|+wJ zojZ;k&uX~cVY7)mA4xjDHM39`f;=g9b{!Rt^Z&5#ji7&LD|L2>D@tyi{9-Tl0N$Z+#E47%Ok09>1_WazpuWVICGF_+D>p2~*r2O>0 z_1o^gD<^O11~J5vR%(sR4+{tIL|d`sGMk812XhZ(zww6EW-m{O8#pjJDk_fi2S_S# zC+%vMuhb~3?UzXCP(q>#P-Pl9t=4GJYHMoC@^|cg;fYlnubWj?x&I_lJ+B?-RA$14 zkZ8lzF_uv-+msZY5d4D>&bhfa-gl$0Oab@=$g1^bS?{tmm`n~r6uOPDE-Q%1B} zmw%c)b7?6PMr3rFKCM&A#PP8)S$&NLQ-Uk!uklEE8$Iu%3m^3Zr^vQxUraW2a<*}O zDaA1M<)2ye-O0SAU!5*owbivVnc~}bIDqi&($FTXS7?CbB~-E4-I?gfbaQNUR=4P= z%r4Q98662hVu=9Rhameah68cXG+oB1rDsFkzMug}HcqdvuFWl|uE{x3QJsCPruJl+ zXB~y&!wdLxRD}Ots}b_-7q)S=@1o%`k%TL~ZPlT3s(eXei!8Pe&)=wxucE~5SpjsO zZz~;G00006#(GDEH5Rl>Aij>jF5|c z^yt)TP`61UE5Ls~FG#77QcNFhb`t}~lXF;L6E7b>GL)K?pH(a)ogibLfPlzgboV-^4T=(0#K<|e}X0HGL?M_iZzbVvEqses+ z7Cb`K>Se?`wrAH9xs=*~A4IUd?9Kr%{x1g(B$>6MSG+_80j&?fazqi=R`tlHNI*RU zoXkW99)Ue^; z>7SPbeb={43Al@Ycrb6%*jMrLu9Nj)<)N9)U#zJxzRAamD*g3@zs?l235eqQrD`-& zf9?5`DsDS1_8~YhcP@lDWG*raZcDOD8a>%lw4LfEX$ySN-8R=UclzjK$He%Y;UlCx zs`A58cymst6LNT_{9ZLf%)h>>iBV6XX0|IflKdTayLJlXDGx1{Lh9q!x#(w6s;V#% z`X{u~9R8`#S#M`sqx{5^iSTDm>h|neA)<;b6hTnwE2*kBF$OZVGe7@Ea42BEWdo*m zr0lKahc%jmpr`Bf`99U8b|$fI@8Hq*)SHGiVzhMBGur(NyMy^(h=5<~ykEXP9GKhW z=H|jkA{dKU4kcIDUF)-3s#xhQBbHu7AHLkF|CVh9;oCFR=Sc&8`Wk!*jEDAO;+d>{ z6uCP1y54fo4Vhq~Pk6>)<#GlN$qWm>p%Z(m5Igf|<_ol(44ow?dffy)_Xxjl>t8%^ z->(395w>(H!sk2?#WTqPl>5k(oRZ>oZhlE*0i$g)XgyD5-*wkYoV~m{F!p*X9`DFg zsiMfMKFnQF_Ho({Y9YDAYJY+SyV0KkQDN#ZK)& zFi|_*<+RCRU6cXIOXbGA^1V04{BD2a?}J>7=liqy<^+_)OTD^;MM~FGp_9jx{Pz=N z|H##pYT0HRRu<(;qgV}{ZXK^n9ro&f@|}zB1&^_;=Aw16gkZuX;pL!V*ZI3Gb<*Xt z3Us+OLb6EZHCMtDIf-Z{!A@l^4#Y!kllS8Dxu-HMg)*J2uk}~Ro^U` z`)?07fgil*g9)As)uSjxcwSd4jzvk|t;CgJe!&{CZK++RgVexeyZw9LW&>OILyYqo zx6}tRXuo01wVWlCs|;hLBGO+7o&mb9o?zQ8o(gURoc=uL7dPr@xgis|A>Xk?!#gh) z0um3Y1#vivjxVMm{-;exqP{a19`iis*aC|$yYTzax@v*t%)%4z+fWfr@J1Y7^TqkX zZ-#S!a{a@WBcljpDFoVHv3unHxwd! zQsWKZ^zT@EJ6vnYt;qbVpLiP*?#0 zKYmqo-*`Sxk!5;qpfcfFms#g6Ztg$L9oS4X5zLtQagWP9dzMCi`P;O z?fMvI(>EN7sqNC-_8L(a+~{QO6eIf${&~er11-Xh)1)%{E>>>M7$E?d@(S%L4F_^mQ^9(4Ic zHVu2Karp>rALNKo@?1(S%07BV%~l_KHQ-TYhycc|PmfW30zt=a**~r* zQAU;xU&0lCW>AQV^`z8_5!=$!$EoOu(6t~=Dj;|WxvJ~`zH4N3+N@BFn6aZd|DXH`*l+b&3Zp8%5 z4<;4nL883KwzD#Fc;>I3IwNW+?)6Q?0cy7WSMKY1sLDJ)^T8{@ZgZ+)e?n&L(rWG_ zB?0q2c;7po7N!5rh^Az}F(0-S#zEIQc8+Wj*y>`rOdoJ0!sNA~d*z_@k64o5#544D zUUdWcM3+~Ga{a#`zp`NEEkPX-k$&4 zGNYeymWNb>bHozo1yzsa~n+`jVbxWOM4^awOJONezVoTm@f82LB z`mq_fxJjC%AAiEf1#t|jJLj`K;EH}-IVI(uZ&11J3qLh#HiSvCA8lTP<|pBmb6!vl zMa4X83j-&N5_=M@UWEp)$gMQEJ>(3*f*s3)HXMjwUDECw{wTq6tMlgb+|O=;qDPfI zpel8KSH#QzVDOCI$Ewda@S!nu7F{r#< zc}HWThj!6Fb?^{Qs)`y=&WThc3_pQSwl<6rWycCOjx{iu)uck(T8yK{3DXO+SfOig4KmJeZ5@x2c^UnU2V+~LD4gpD$4Nmim`okSEP3%nzSUnFw!6*zswZWKfUTYo8z@R) zQ{A+)>uZw;w)!dwMJ6%nB@upKGah1LFikGw7NWIX>{^T7TtSp0*!Cv&Vr4ar794CGJ?~-X^ltGe<$N|HoRh;z$nn_s@>ckY$G6A=(%`* zb)m&f$Z2y-!op&N&emJOgK1LBA8wRWrUtzHgY#vbvNTIM4Cf5Y1&3{Yv!+rIT#PRk zV9u2*^oUB#-;Iw(W+>zJnpZeu%hq%duTO4J!+L&8eN^y|^yo@KIg4C0%vdton4p3d ziJmo{*q2I)@Hyag$sDwNHTZ`$w$**>wVbGwPGJ0c)yw8cv94Fxz9^gvWE#y6mE4?@ zzH|{VTeCy#+~LoFPfkO>G@?hSg;?uYvuP9hh5QB2Y;JvyeLmd3HgcWU-dXN8fvn{gSF0A;IpZ@25{$2u0HtYE(gGiI9u;{c?RAIw7?)nh z)hTg*RiQh{%R$ z)T%R&lz@2i&E-N@7dY2sjr34l5E`m^I!{I5>Xu5*H3>YkRhgLBfVyC(P}e|1CnVZZ z(>Mr?jm6~;EXGh!INuwahv)aGiV^uqkBGkPciUiYHcTgj*m~(r>UrsdQ>Gf2ex5*D zycw6rNG!}*bRK%I+UHMd_f?*N?_Z+RSLj=Ppci@S3lMZRidBXK-ZP{Tuz#V8@+$?lPk@@?7LsfdPk$nbwaKIQuX-y- z0%E~qZRRh;(Dul&!1fJAV)5Azpz~7qN|9F`MS2>L7TVB;Ho)D$QF(ev5YlUNdwP7# z$eWnLEP(qJn*5b7iPUp4ov7B|QCXvDB??KrzAy|_;I!B-xL=W>O&Y}_XdLX=WmHtw zc`)GvO4+7c--k&N;h0A=A9WA2UHoS{@%qYcXTiI1m6p~~GjsIxRW~08OK_#os<1}#WL4joa?iFa@dtVNr_f3(C zio<|@UcVmV*Ayb}=YxyFvZrTuxAU;yXcmQZX4=_7P}Qp&k*K|IcGLi!Cy~^I_}#${ zBp``IZ_wz#mM%e0q+hpbBg7ZHFX0Ejy1VAsL96a%FBBqp32HT`vi3e)l`)-uD>vCG zdOouM+tpJ#lm_~KJeBW!6e^J=-G_|4m?cr$u{H=YN*#1mS3aUQiJqO@im#l3UZ`N* z!^go0e2&Vyooe!17%#MiyVm4*Jq3A{YzB!qWwLl7OVJ z)bQ}rLB}K$gBolz93av#tV979k7SOc(D}Sdce0u{DCL1^`~Jza+QJWd&((Q zdcD1Hj&p;f*~KtV=DigeMM!=yFnW{#ix{Kn8;PY=%a7`{(}aeGv%)bC^*;EC?x6J0 z@$l!wWTN!OIWKs05M47nV`LNn-;-tmqo4d_gc`EFj+E{S9xXH<;lk`(fre zjQs8SvGzrl=3yUdbK`_kq7>DrLH}pSy1P}PrmCJ8k$ZF71TUej_mU%eIb_N>iP8gF z<9cm(b=MALgOyh%`aury z!Oz-VsX9|eOhTlf3k0*srJ3HwerK_jqqsNIwZi!cX#L?v|M50#yeU}&8Z>o=*rq2J z)diPSPl;YXkv@!F?>zspl>@XN^Kvc+M~@$f%xs7k7-^Ir6vGbSYRU1;zy7pADfZtq zDQvmcs6pQ1O$N70{+KvgYN6ZBOS%a?0Sm`ch~BSR=Qxu#hmD2& zclW^OYx&y)vV?HdovEm{?JOv_;|F+jN}O-)Ev>#CoHMLLg_Av^e?VRz>w0)JX1w0d zSJ}=RHDUPw%tdvlLi^2E!EG-x6;2K&`3bOcnb|=@UPIX;J>@Fe`|8x>l*GaGP2L(B z|1JgAq|Mc$2o#=@a*L=Q{Ny&SFVtuXc6u)@laz}HUq;HbbULrw>c1b{^k3OpozO&N z^?Uk@R_`QD+ z7@>^)1Cic8--x25^Mdg-#+zQkXSKJ`SEhnObm6D65X=L>(jN^JP-EkagmL_TS2gz% z(n-lBC;?TmJ*E0uUriMhd?{2&twbYg;r7zg_*`gADH`cds2sMzw7+%kL4W^}0LA>% zOR0zPzg(e^=0ZJxn(!NVIf{-=D~G=M@@cBGbn?cLtvVMk%GKnt-ikOHuk_ysHm_`m zhczRH?(6|GzZ^K69!CYdtu&ns?hQWPKJwud^Y2;_FD&P=sW0w&71o8U^(Jp7v{)Le87mP`Qvho>+l-h3=f~f@#sv^aJ zZ8^ZAVA(GlcHfL`x9JDv1H!{o&}&-S9QZnt##jhtw&x3`LL!T`pooI9NP&K0p6t-< zj7m5iDG|cY<=H5*j~(_%#BbkNvMf_6dKYB#7^a5&iPX0ff***GC_%US0&$_7h;nyA zcY#N0z=ivz9W&zwtWbp}TEqdY-`}J1o~nxmPzPl#21@$y2k~mB$pq^ma|q7+e^siO zTM%S9Ms7cT`oIhq6~(SaqeGL&Fba1j5%qKB0^eYW5^>>_RElwn5T%94VZU%FJHxDlww&i{O7*J;}0+uz4M@(-zxNOTnm41#n?nof?q-i{5HFwEC4lJxz+ zfG4R>7DO;Y-C^#i_$wR@_PY0O1}x zs*GF3J9BXY+tBWj)iK|T-XHFd_6xqY<-sn^F31RkHRL>JpWKs-=lvy{uZ_>Y$&>Ws z)9FNAKs2S{&8VRLz@8$Zvpi`cs#YzTz1Pwz$fxL&wjLjry4?T%8lGc@2V1m~Mkfn7Vvk-)@(NOYn zuKmPMUVT^gYrkVzej2{x4sx-fhtzZ#VTZY2#&4Z;;TvCu!T%cEa54gr^@<|PBurRE z-&k?>Dz`=Gj#Y7)dc=(o7f)4pPrR9?yL|E@VNFy69d@`t~+=R9FJjF8oscmfU>9Q zIpZ}eCe*)|>xYpuMW)4KMi(T^o14{Td66v1!m+{CO81z-#6jmNs)s^qnypE;XI zT01Cp1a`1fNPR^XEbL+&C0?OGZ1oS^m&7F2Nf?B(!BRKZSLoJPH-cQo4Ma3JZ4lG_ z&PW8~Em(llr&x^~1ckI4EjBpplqx4$Npe@=jWAUk_tiN{VYxp_u@9A}g@#jm=!d_- z%;;=$Qzkow9^kSRw?jWli#1kAQ1$a_^D8?Z<~JTM;~Lg`-zmyDVWO-P{XD9 zJ*lr7I13VPZZsxiCmf#=DSeX~#)zjrYHqvR+_k-LXs40z@bAAP_dz7 zj|%q*cbjGm@-h`wkW3^N>H87>%XN?BYH{sv8w@Xhsw%6IhGiR^pTI7Z%oS?Kc2&eC z)Q_xmQ$&(b&~4k{L-_SV)&z4Qr;hb(ABHQDu@fy?!xm`%kho~-Ue6q}w@>O;5HMwH zESZh`cn$ouv3%M0I}7u$l(5g=9cA;mWS$udZRGHM?Ne==sYs^0=474o{3^S~c?Rxj zBmOJ1*7447xB-(-srcboZ&w~&DXeC}n&-APx1w5fuMT@=XhYJ>tW#u+o}JV**N-L! z5!9ASKi?eTkAuKO34NyLEXlBwwQbK!$JNHHSc}CmRZ*_n`a-lCE35A;>Tqd}Z8d?_ zTKq-kIkT&#CXMH z2r@$@s^KW%sq#qJ=ICi1*E1$E5edH*D5(%&*QW)vTcKxi_oGd~m8xMCCWYIH=@ZWn z9CC1}*XYU?sHwAN2n7DwDBQe=lgCB>`ZcILLM zK-P@ozM2bTs5^T&wFg!9s-22fYGgtZI$GJt@b*ZXZa&Q}%|5sm>Fv|4)2w~ZFm~_$ zqxz3(gi5(N=HS5|Qo8un-Cgs?wL@&WRdyWyrDCc* z0iRBSi3$l+$+!k?erQVFz-MZDW~GSU01a{`K@7dKjz}3k^Z^`L^0$e*=vvD3yB(ir zd@}uOmRUpx(*d}2#8L@2rdcE@GaK+mBe>)jO&mQGdDV6bD3AA|ujCbNZl$()_#cT~ zN|qy)U=(aHBeZMRV+1(DZFhGsi5}DRQF#Ww`*xqA{cWOGe4NugGxfNmU+c|((-OA{ zro2pG^*Y9~o%efHXx*}A|MB!U=Zf|aY5ensx2$5n+d}vD(?9vngQyYCGvUMvutLlo z^s_1!o+W*ZE{xCJ zO3%bB1OS+NXyhdCor$(hpb+ag{r+|gFHY#-+54Evnv6R7Uvj!=8s*0gA71NAUeQpU zpddmQHrZhAiFG=)L(#x);I{7xeK%ylMW?M6y2{=_Ty>cdHZ%^M>c;cB%Cw+Q=s(!o z=Rq!X_hKXPOdboevIzzZi4{mI(I7w01^y~s-}|K7rLlSq-Dw<`S_3V5moIjX`>ImlaWTn#x4Ua zPRcmXsOoX*5?7DWltem+@sH`m4)uE*vA2V~zQhw}4-4UU0I}T5_2vkydM=u0ir%1D zXojQC_d0?|G#^$5460?(df+%07YZA6zw&dB9QUDKh+Z3pzzh>mT~(#9S@0j@JpP={ z>VLe3W4G?)bu2m%xJ<=_qD^>DQNk{DH7H;f0V-zZhcZ|B4{oV2Whc4LE1a-%fdcE5 z_!{37GjhXUk$b}{7e%8^Ds4i>l6>I=tKs^8Scw#nT+GErhy*y`4Yx9gX65HLy?6>d z^5Z@V`8H!58#F@4qOWKehLEH)T)+ViJb$*U1mr%>UxZ<=x9vb&l9b%NMTM9fT|X-P zvi_;62w}zD?_@lZ!9@!p6w2aGd2weY=HPU$OVuh7I~@qtCmJ$s#ml08;{M)v!PZ44B#W(`z@`ePa-U{Gss7J&`-~!5U4}k(&;JDXi4} zjfOq=pQU(9ip^-zK(4uXRP*RYejTTj@I9S53uj0p4N=Y5qIHEbDBEgpKmtF0h_~PL z7OCkDD2Ih&<5oIj|MLz|Dk+ej_8?l;9yn0F4j)!jaiOG|xZliRi>@5;7KRFsf9Rd7 zn`M5>MiuTVfXT*wO~XvXpHDHL2eNT!8Tw&+-uRI$J9vlcvfk=`=hFt%{(1`!(!e;# zzd?zts?y4cWpe(?q}AEz8XY?QINPMMTaon)S`7Z&?VY~FuLJfkR@3k=p7MjCS(rg8 z(`!0VC67BazX4Er^Yze(COL?~8Eevtb-!yV7-2KeP`(qL#<}?JO!$ev_jI1XcDnJj zf$+KZwN{%yoz(PtBPcRfCY7BHa!GItO;LbC z$+v$XnFu4{rqv}OyeuvCdipCm?!`4qtW~vvyz_bu&w-F%VTs4T5y$DxD-B+O_+iuL zcVUC?W?>p7(Pzn-$BqUtUfmj_{zxwtMEdo50BSqkF?fC$!lGGYA`6csO#GkYtGZW-|& zk(U+HK4{m1xD4>Nd7sXF33G+^;tU@)MEwyIJ!M~!2OcPJuw)it?5|%(_dTJg4j5Fn z-^*~S3rnN>Ids{dYpDGn>e!sG-`!u?tJU{RvpoR^U%v<_$;dR3x`HZ%t)tNbdySij zLK7_6B{qWQgOQ7Zb_85qR2Yz)&Q8j8AM*hP0D`rcvp498ov{@1%%-B8UG*Kp#ZEEf)vBYG-|^ig-zt^gyr}O zA*BQ7`-yR$7jb2uaA;(o|I5v=51B=Ng4xS5M3`%me)= zm$~LP>0=pl&=;CUZB>ae1)IY!x3m$oje7KIk*1nx+!~Jm*ak%g!kJgD%}(1hB)|L& z!n)WokO;%41q}FzJ-$?_g%Q-!X5cr|Vd926)8<+h@9}yn!8;IS)aIQ zNCt=*=Eb?d2YoDxh?tt0s?nZs`D_k)o-v#VDe3MPNZ2VrZ=FHq=n2J-(K8;mc0k4$ zOr*?{uCXkyx|BCP6czOgYqzI2qiBr7TRVd&{+XjljHk%7dtWp1yN%FHe(IpED(XT^ z!|F<6``#I3C1VP9QLG(@RzHa9E^KsRO46{{8Q~LNV7T?=i~D~w^hM#=2NlyJj|gn+ zfCJf#dqQ`ZX|<8cMiCwhRF6LTz9s|)+4aKcQdnJ#Nj2hkOR;B=hf!J}9T}V-YSd`{ z7K3$kQo(BbDdw4hg+}r{SRnIvD3;RD9n&Z1wd*9Ys55#cdl|wU_JR)28QPRBQplXx zwf0}uOTB5sbhYzB;Opd-DHRnQg8W_w=D(8Zz!|upD3_A&ra2#xw0yGu`mkl#)&JB` zoa`!5!~$XCX{C;+ZDpIu(_SlE$=s->x*inyJvw!d-Mxdhrna6V;R?Pk7KAaf^~86b zG0tUQh<+Imqy6&xWQ{18x$0fAW0Ek&$ake;2kZQ`h_V|H-y;oo7vzrB>oC(a1>>}F zjko%>_ob&;zcw#V@{ml2ADy-5)N*Y6TqPw{+o-LnGn8Z}=p!LNG&*@y<#*}^4Wa?T zN|zUsg@qdB@*xgR*s-jbtJTD`YN(~6>LAZbt>r%K&g*Ax;$k)upJ4}PBbT2V>!{Pe zFjjU*QEdXZ6gOR=9!}}W88YE$bPSNEQ&pAZ*DD%kv7r=XTg~y?PRT2&(N$UCqT@+x)aD#(Lbgw&IMA+3B1;)?#d4!+Rh^=X(f5 zI486#Y-ot5G_oD58G9>F?Pf!iTo}*?sVePC(H~>6IX2Gnq zXdhy_-eZ}*XV~d@ufVS=^8t6{*Cc z`9I(dD$~MI?3O*3{u0o^E$#dC5dC;4BAMclSAV(-W!Rjo(@q+9-m+Az$Vy|m`LJI6 zkZmHErvQNe!do|Su>S@t#;|nn&y0QCmlVFrM3C97a+uhDE(Z1WXd@ME1O?JVI9aOGaNe+Q+&0K6uuMdb{xRhMgl= zUzp!Tj0ra5)Afrw1qTOKDpr@cf~yy!`a`jq0@UY2nd7WAER15+!F_VHyy>92dx>lK zfg|`J1pxacf>9zAweDNlJT!@$5@Lyy+{$;%iW-{KH2M}b2J2*-sZ^~E>>R5Qn-;?o z$Gr6*f;%5_W!F>~!>I8_wgS-dcmLeH%ygG_Mhshw*K(EV2uKfC1Z7TMpg0Dk>DMpLeMN?Gn2iBJgRd=N0qf1t3@&ntXTY^=m?FPz{?imbC|}P4 z#5G+Q`XXocYk=}^qhnKB^C5E5V`FpAgIECm=v5?RI1@d*l(42%bARXvtPOf)y1y)< zSfiRD*8=uMi?GZa+f{A!7`DLJlkg3qao}gNnxXzwit+9Q|2T7$oZsMMz-~m4vc-C! z#laQY^%&LBXNpni`iDj5yHnA6fK=ci@og62-BJQBHAz&8`d7pm{b=1pp?s@~O2H`+ zn$gU0SmwG7#8Z8CEcnMhVkBQBQ(x3Wq^!^%W4;-yxk2o_C8IDb+08&M5BlY;jo6Xud4udf$n2#7^_IW@qA4!R5yAIlr zQFv#b^t9`91oXP#Iz9+tV!qD6%&LwAYH|IY8{}hekZX4>C_d_pt5eeB8)z7%)P?T)YqS!to>9V9RcL;Ta>p$L$=+!sdfum4k#%<&vr1 zN&QU_g_M*7@GmvK4JZd#Eu=A_8@Twe$pApF7`M7vr!WFx*MFI_R)m4BZkSoW0E5AI z{){+em{^Wxdl+D1O@7{{2`SQw8jmLSy~ai@exE7=mHFA2wCUefsVhWs2A2-znPvj91;A#+arled40(%;%rhf@J-PJ#4Qr z(08$yoI(Fq8+32)3s57fYfq;W^C}-!un@Je#u;DLRG_)ug+9jEt?-6Yx3f-W6_dIu zqURR&@0d2-N3=-g8lt3lvJ9x9CgiCloETjTe?W&rF-v~E+mq4hs>Q@*6F_Cs(qaz{ z?{8vw)p_AWW-gX8ovgJkd^t7C3YsTkuh@D0PhA>5k2{xRGut=tFp3IA{;xkK2o4_> zHbI4{4&wnP2)gzwD*9K=8Wb%~TOs{HD;ew{tht~*a#)d{72DF9jyLh(dm9lVZeAWW zt__tt!n$r91ay_K0ug@L@7+ag)x8>28E9!tU_?DT7ffy|J*j>sOw2y4B=V%6Tk%W! zYM({-tSF2U#guT=l&R>X=}1(vmi=2^Xu)Aogu9>UDu0;jNJ9eN&yTQP3+>f)@-v zf_)ag|I&MmX|5gJqp@DacU7uympm_c#KKXRFR_-3rhA4kS-FX>+*rU%y^V%*)X*8H zVUF=A0EW7PK5NA!bma}|AEdC?NmSZ#vKIEzTo=sr?N3XrOI#Nr@*dW(pQOMr!K^+=^1QCM{_NkG@+lILC z*)8}!B7aC^0*{;5w^CvnRoUZva`UNanvt*-@a*ad8!eL`ZC9LIMJ5ZPZia=K9G z_p8s{pDkQ_ZG8meRb+m{N>jN^`@M)4yuwhET98}}sPPv5^?NcF>S!bckd^g}XI#PBNxK>BCF4H&+9UW+_-Zrlq~s(V|D$PU4EdH0Rcly)g$~y{&p=H^?^;j zH0Ha6`!*d&EfY}|EhLUxle!2=vin~-I%))}@of0`iRXd5th6D5;=D>sKi|)SP@W5j z+>dfk4q^S1Dbaa?%EZtLY=ndj;hs2vU0aQu^a7;W(GmUcOaEhc|hpDb}roNir;q4S7 zNiZuOBgzs-|D>^xvs(O-`}0lz#=pPh-E|gKk7&X*s^eck!FSAVyz}&S>KSyzphz&VvvfkvSY&vma;SOmJkgHScrlgJh zOB1BKk*)u)ylUf|ZtZL9cx{I$cwB{EWEH?r$$RxB$PjyOGwEl*76G2nXXd=~z=MGd zK1r%aFnFWmnTFrh4C^ShlzIAVPS9)L3pHTK-Qq{Kz1*oah@=JvDB|?6iFV{S?Tk8q zD#~iX*W&k|_WD1dk&iKpI3kk9? z4SNgD(Jrl|LY`)W(#@dE=&V!WzCwpEz_R5&sa9>x;7lgJu7Sxuz3Ch_45k-6xu)A= zTA~oyj!?xm#o&mpi*+Wt^^GWzpXB9_1Z}G)C;tJPJN@JFOUpMH2INf&4zYhKfxehO z_h&^#65?%k)Ps=T%c38Fr4y5|Poy7gIH*$>(CaYN3ShuI5P{a(QbKITXB3~j(N9Q6 zo*#j=ch~2|YpLtn)7w31HO#cF07rO zQ-xdDhP2Lg$SEpXoo@1?Fvj<;8W5?UKN}T5rK{`^4?p8QS(X3`CCCR_ z><=*^3t7O`J=mQ)bljS$_D*mr$|mgVUm0pSN$fW^92ydV2Zhdxo8Y{6qkTC3o^Ixq z)~lA=!S}YoVri_x&WYh<0|{SPZUS05!T#fBar-p9L{i7lnhm?X3#TfR`(wh$mmfb^ z7Y9QIzOZ$BhaaKxTbto-x|@@=@4Z2fjVlJP+wswHxAsp-zNHn?bcQ3<{3DYL_nH?m z>?oxBc;kDAMk+9yXgtp`8$07wtDPfmcwKRFCdL3@;*(P#hUCl^p3+M@M{tTssLj%0 zpfmYPLWlZ9KVi-d;V?v`RS84&vJi%dht3c#G}=twBo={7z5$wUjJQ8_`2&4<{{AI3 zBXuT4pZzZmn3Oers6bIbgy$;H)|~i5N3*deSx^0PURPyuRE6{s8+fz%jZSuhL0n-uz*aBFpUPXPKaGIK@wxf@_4B`(AQ4hV2% zke0S(w^E{|vdIP9a@!vL*eLYd7So#6iQfGPixm9UjS*}joxUD!=`3RN7R{P)hhAaw zfs(-O5dN|fEYc()QR+o?yznrr1<~aumRC>$v38v*dtYtE2ubO7P;fmLd!p^Q|O^u!&KA_+Bcnxmz?k*?i; zhqRGw``^O~-6wId+qu)8$P5ipOGOOXl}$&h&c!jMCYtAmSSZ}m#!s5T0yYlsT{tTD zr&tx}>y9%}C|vLBy5&xhUI7x~QLEcZSrgpHJzI`(8GQz_&&D8P3B_unHykCC-2TR; zXU?X~q+h_3@ZBdtzCp!0;)o+A#;kuT(D`yhNw?AD@ibP;!ba-`an3~*6cj?wau1B_ z2~vY-M*ArReO8V*N?)9Cn0-x!Hr*ACkDCW6k)h(DVNu10mChn*3q>S^Yg;^`qq#GEt0;M1XsWyG660NZM;&b|eO(h!k+ws@DEgG(ZsGLqo=gUKdY(&K3E7A@q z+sw>WpD9viOI2};o2>)?(=9i`hq0e>H7H^AY6uM*K9GQ3lO+D9%WbUxaHoBi$iBsy z?`roaTYcRN%QoY2$!^N$J(-U?y8S2{DXGK{7gnp(#RA;orY6PVq3D5tO(!Vj^vmdd z^`vqP{yeN=0f-9&G%S;&Ib3m6MnlX;71%9T+Gd>jQSA%q?Su zweiwFQ&oN@Dl}iCsD797O*jt&P??H%ylwsZyk!*9PMr`|7{X}YBM*#-F8Aaz8U8Jn%>o16aJZQ(nGRbU7oLArOt(@GpsDKn3);p zX8SIax7XdUyR6YgUpi$VyyXGHb05;%a|f*Nv1;VQUzEt;EScQx38lCXU7-R}5w5Y& zBD<18{;0E|yQE^MCI-F+1d-Q$8GiRenE9{cbeTBs@1n7LKeTCsll0&nQVJW?dCeNK zVhZJuBVosBE8uxC@5yMQa}WzV&KTVkZM@wloeBE?UZ5N3#`0_<}Cx^iFmXF5sSR~M7RYb4Z5GY3S92GiQ$33 zf|#?>UpuMz$yvz^CweHWOkaG#Fed`wPk?3sav`R#(fYYH{wsC_=M{b3H`Lnr%P(~+ zKd}cLbc&c48`guak$25?U96RTP-Y5Vm_~Z(XwBqVs$lK^MUQ=7WY*rs_>`3h9b;8X zu~`1wr@^`_sesLR6i$MJQ&aD!Dr~^dglA_+ngCl;)LnudWRHDk9-^SR=kp=eQ~-!J z5VKQIP1#L8oeJ9J_TZPIqf!%O<+LxBn=npw5YdP!_F2zKmI@roMm}nzc3RFI7CUBTf)4Hlq|ynqW6J zg+F$KwsW}IdLgG>5A6;NTUZ?lBsq{h>gJ!uvfi!evOQ-x6e2`{5qN&jjVNK*lp zaid$t{ZAH>_&Lpj|52QKxmTQvE=K`E)vrjau{Id5>hAIEJ^o3kH(4mmzj8r{4ivpI!5UXTh zOPTrl)y2Cr7k;Q_q>pRMjU}q60D=A8I3?_mucoTO?!Aj1m8OX_ zM?=xlKvz+7KdblP?H+eDAuhJXmpy@#b(Tsgxq)T5D+%A;2SUl#i}~j(R6)>+aM$~} z={Dv_BbJkl{1pFQ4RaA5^4MC9qa`3PFe+4VB(-ZmYYu{KyuygU~ zQ-L`HJo+)Z8^`k;D;uDMJKAhcC0jOVnduqz_62>GX*I+?eM!E;V=#`5i>YVs-qJ;P`uHrwop zvUm6Lj^8KA|_`FYM99aTm`g;=>!Rx0go8?)X4ms$qp1P#{-Pp}T zwf($`^uJn;4Exsz%@PD2J$?HL2M8+Z%e`^z>sRRFL9CEJp#pPEK`7Of)Xij;O4C80 z87ai#{jH+CCRSKrMaT*)l2_=Akiv-saME{RcWBq?k%OhEJs__Cyzj*z{>kkNar_Z@ zr~H0*Ean%pDpc97#L&=#KK@V0b6;Zku~idBuvMum8va9=ZVaAq5O(YL>a<~0`2l{@ zzX5@eAgE#<$T8uL%IU{>|GGG6KmwP;rEi{RJ$&bbkdpRoA%8$X@%`q$vvMj)Ug2V| zk4!lt^`Ky4Ea`in5RX8=zEgbI2Wbp^4ulu2@AO4OcNr;3*hfu-mVwmor~n-X`Q#t> zvG?z=cQQM0S3DU2*zBKmjt_K=M!E?MzRey`L;0^PK6CrtecSR;6maJs-=kWz4qo^t ze0%O!vZr~r4mixr4crcN6Ur5B`M=uEv8}R(4a0G=Z5zAEc2kozlWk3!jGbLO+fBA@ z+qP}{?fDV!A6TE(v5s|LI4=UDccKUVGp^mzA{Szl&v-lD->M~5P(A;Vj`gl~DBH0_rS=vo)rx!v^L`AvfcX2>Fn=B{G~VX@m> zTl~3}GXV4RC$hP~PH&Ti$8PDyTtHV)_J&=rgWaz%fhaVync57(wp#Gncgy10wN1ci}+c_1N zAugHs?=-o&lfw?Lmw=Cmm8Z*~m!RF;g7v{Yo4JR)9sox_@?{$b@xjDoAz!DA_{Rei z;Ql`Og^ywtZnM>e=4?d=fI<8dDuw?eX^O%Y6~P~w54{F*AX?l4OG1z^8OpR_TGq=r zeo9A13!ZmSjBW&qMIOI0X62j%44HPa-?sm_{{&2dR{cANCcweL`NQ zjFbKz6&&q37&D(W1$eiFsI$k_`BbN%KU{s*2KD77U|fwkN~U!9l67{41OHCq!Nd&; zKroemFiK>we43ha2Ehr_YMB-3W42qZu(9{;Roks#oiv-i3ASo~HbWxuUQ^Osvl?4* zzTtH&zd$)&#H3rqGYWZEbXL&tzfQ(P$7~x*2v@19>mNiarT|5qGCRUoZoVfhJuq?D z9j^01OgzK7yrejGkJjlVgAb36`nxQ=i9zXrk^|Yb z7j7v83-C8vPB*K(PvaQZx&4Gj0ZGkh*Ku*@Ur|}aK#$AwL3Dfexz^_ig_YcnIT+O| zDwS)9Q*2$wb?o1^!pht$eSWk!vL6U{$2>tbAAhKk|8n1?qyvv2$bGis1C^X~S@4O- zA|8W;>#|>0QlB!8+PJdW6SFs8Tu+69rVTceO@*er)ep}-HUc77v;0Qb_%K5*k(TbK z*PN%%w4YXIdkv04{uY(*^h=#RMCm;WR$KFMKCKWmbmi<6kTwGqJ4?6L>>ouis1PB@ zfiRQ6v<2XrCU|_Lq<{}9H*TLe$tnRIXO(hV$G_J0}s<*lSem! zhJve6)76hcur|%{TLO3*i+m7+E7YbHrJsu812+~5-3^5Fw?Nw<6A@v z?i833#mWPoyc<{#|6Mrbb-Yc_381HnEG2Cx>}CRIz5dR{?d*V8>VJ66SzEVwY~iIp z7u~AAlboe&T%#0~9Vt!<|DM!@D{fhrK_OyQVEyH~n2bf~dEPXNTpw$Cj*FlC zhFPQ;oR#~4Fvx`72qji1Lya;aAbIv!vB-cY9NEinLeJM=$y@-?@}^bQ7+1nQhs%4m z<|?ly<#_cqNf)gyX5$Pi;Z@%2LziBrVD1&mUFT!&F+gP6he!3oHh5;TtPFeOD=GGe zi{7Fe@(qmFQvWBxDh62+)7m`-diojF>SLS8xUP_IP(d8I19$&=5N*jA?Ag<`3WNUq zqL7b_DSxly8r}JX(uojS`)W#sU;QXDa$yEJ9m_vJ=@N7>2nf+HxlstE@BitmP6(yq zQr+R!w?40@Y_%{(*!0=q&2kybUp4KhK957tjoMjmL{t(R)CGrv&J_O~bFO!H1IN>m zRfvDs`Wf$-=?9nhhel40n2a3%(|JszPJDj|2L>q{Y+HzQ#<;5eQa?m42AfDnnjzd^ zzvZ%f8bijU?+}_}o%Qr5reDnBsEoq-+9Lp0=;W&}gg;brBb6&`{GuT4n6a6Hy?b?z z>`O-%6KY}oCjg_6t2YKCO9|P84$G(kieF^qeA-{33QagRkWY{t_vKNqnv|r&LqRWD zkSQ$_Cp(H9PLUDR?rK6*QegD=u%6rM(Y?cT?;kEbq$M-AKEHtdAIoI1>>E+ zk7Ai69O-GvHvfRYf$ z&UNo+yFP;u1d=tQYdt*`AiVzWltku$A%XTI1Kg~T!&JO%$KT7b)hjyX*oRHE+I8G% zHMv0u_4#>1$ZZW!-2Ry~hT`M+eS15CZYrzE+$Lx8YRA*?-BSChX zCBqyS;V*#!YH~yxRlhAP25^;$z*+Ex%H>*ztpfs&9;&20QTa!4yGGZXL~_zF-WiX2 z$Bl3AU_g%FkP*r+i3}AIdxQUoTV3XQe=S-ELc$Q3sALJ{b8kMQJ*VN_+y)1n4lOP? z;XkxQp6X|t^A*(x>mgGJe{*q?)eIfFn}6BtY8gif51Cx{auO$~>FxA3WI-fJm{67{ z8!M>!jt=(QLE2M-NJ7|B9!5)nd-C-_9IJ9v3IL zI{ZE@BAY9+xqI7O#8VykJm1)2Ntc_I6W-!CQfm_LBqZ0VPT2M#JyEUG1<#Csc zi|Fu6oPJ-TixGeV@w+SjsZ4`@yh`_j#gPNz4S?Dr^D&Lyu}j}mGk_{0N?-W}=$BT0WkPs(q%d}2$ z!wM6H;ARHg-X1p@MKAKNUxIENb#=eHajY(8w9!6TRRu{6ZUdF+Y{^iUq349`5C=KY zpnE9x4r#jf9Ba3FmU-qPlE&$;x#@Dpos#5)Be0`EX&gZ9J}wi zE`mUU%w~mqLxMbo`sCWq+mb9$Uncnq12@EBvw*LF4N?WX%llwHg(40ZT@w}0w1~!` zgL=b(Gq-~$oSwNKh56#3;sWr^3s+mpWyG`utds}i=%}Y=Y6^*tZ?wC~r-Z(-DB*#j zc#n%=L|2BQt3ZVuMVfY#5R-?2);IHLO@-5>n}Z?(T>Smzs|XqYL#ar#Nd1&7_JU#P^bfiEU5mfhnOr-e%>yR|!akrVH zUP62!V-1F)RUhz#V@PYR-^tMH@-cTN#`1ye~vql<0a&MIU{TU^~wZ5gP2wPq^LGiHno>Fb)My?Ww z?rHnw{gwa9?qwNq7majGg_MxhhNRBS;b%^1OLn`wLw@=@AIVrEM~|AbaJA`W2LATZ zC=s1fzH~3~&%o_4nkauMK2dty0XHm+(}i9rFR{hk4&KCoriTBH7Ct_yH9Pg>>+gnN z)$!8zcUUwtj)6D0p*?=gJ$Bd6aa;91R*v}z=RQVyW&OWIHP_E`n2Y`wd+V(O*(66i^4q+MqR0Ndi$UBo zlyZtH%_pwT#Fw7pNIeD$W`He78E3c}BwEi5jeu1jku-sIFdC??&I+3MSGfI0Ky!dVhCH+>g z+w}5VNKilg~h?+3OfNC_V&YJYOvqjZC%nyeB=&x6US|PUQ-ja_=qR2Gyushs0oJNpkxQ4)mROXwS=%7YWa`(wbPQ87ojz4_^xy zJz9!qCHe%eV=nOxZ9x`ADB}{d$+V$!6Qz{2%`PrFSRJ z+^^PsL~hGTH+8Vosuv@5LNnrhmez zE1f0K1iyoV;s!(*^9=yN2gfMZX{%W2cUEUA#F<{tMDxx1ID-}YNdJROJt|Wh=}X_# zEAUd9$8wmc8z|((<)XYF+??ufmH82MhqQ^JoJb-x&&f>ck&i_&-g$7ly+=qvwix=WXl_O= zT}XNNc2$T|Ylt(p6K=(rQ0X}iD=YnrHm0hr5*x&4dt|8ZEuh2wL+Pc9W{jS2 zx=tfgp|X|UNrZC^y?^UCfBR(a08x5GU`k{_EsUaoFvMS-DpPQbVo(b54x;-hd6>^Q zQ*={9qAH~$#y zqW!vLgJKmIlkeq_4z-J1j;-w4bAb@(k_3t0R#g!?-`~+(Uo%*pGhvi`$1d{NFdqA4 z1BZ7>g0CrneTLL_i-Why-SXXgZ!mKwHzYWBxu3#j<1wh4?vFwBAO7VP*AifN3-txa z;>AQ*K!Ot~scb$jB}*6RNS6>efZ~Rb-IJqw&5mUWl`ZVl&F;=u3Y?3RNcZ(o3io@e zSxEx>C0SDEkt8V7dnh#)wJ9zQ!}4jIRL=uyCJNoOKGBU-iq)IfmztHDB zZrjJ^ENjomywCB(9}H`U%nve1TVFa1Z<+q$4b>EBn^#@H=qiqnYtDh*x~zziO>yiZ zdZb64JC0rD3dH=vJxVNcksJmZ1{5hJ1_jBC3@Lt3X?#)TE{y*e5C1IE%EbBAcw%Rd z8o`Cx;Cw&rb?sHuhAKEmK=rZtDoPEygAiL>8brb(3x+`nr0Mt= z6u=a`raw1&^MhlsmIQ;E)5Mr(nN1C-0r}~Az}@!P>7a3UT?mJ>_x9%cP0mAw`h)o8 zKBcFPit3g)?j9?|l>Jk@l8=m0w!l*J=vzujA}e! zkm#TmaOtb_+N?%$!74pS%nxdKZ@pyFX9SA*OHNRbAd@;2DnC3_>pl2BCtaGz3(+1* zw-TcJf7K<~preSBq!Yq2L-x8aWreF@VhBRbHSvG>ak_2qf*7{4Ft3xmb@%l=Ycv#m zpW@ZcOfb9m>_OdAB3vw=`H9#lwa25r{03t{%tad(7ZQ3ejk=ZPpHRY6Bq`Co(`2|` z-8YM7EiJ9>-Tm9`r(yu+O$TT&LS^rAmIiL)7``knR6x%3_a$Uhi(mXe|Kxy~aFm=^1t@fyxcBw#&^TW00K%*bh>W@B|bFRTDu75L|;rFuow~ zC&tos7v!pz;T;GwJYcw^bQv!(t98~qR%!LUG$=e*=cf(0^)c{10 zVT5yK8XNGJKt<%rc3t=^03QbFrVKgw;)x>(V$_ot?apTig|{^8sPG!2)njWxc-Zkh zNg%h66b6_`7@wMpvK8t|Pk^OPa4S4H@Yg+>tJ$@&xh0(nW$+bFvFppE#FhUmLQeI< zICfzk(v7#Gk*a>9qa*gnbD7N!M=0D{i4XPn#!;GsOUT`;=BgjW5n>msSDx6(ySv0O z<{Nb?fhDEGkXDQHiWs^)Zy<7^0lp!GQL<(Q|DvYb5jUh36J-DIy+En@*UbWP(v)Tn zBWQ!5C+d=$WSJHGrV5B4vD|gP2Ob>^^5oL%oW%~ig-*+r9U*MeE)wCZv=?JXT}60i zA0K`kcM9?+8l-iX40+iNdx#AU2VJlmnGwOYeWi`gofFR@zTR-9l`}u@h(i15A6JMa zzr(VHgNzaXlIC{&%uOcq z^T0tslj-5iCIBQR@GD zJ1?voe~tERzsLx1=_MiNh0bCw_r<3tCVl01{6YP8R@k1SXFy(yyL6Uay-q8jcK1yJ zR(Iba4U<8xT@-7TRAn#pxZ7@QD%HU8CFbMS@gbD+^&IsHQ7ng!IH3@apL9#Tq>MiHV3q@sa1T6}Lv_)(ZCn!r6<*mFU&PYi6OXOoTt?DZ(3}64U%iinE z4O*rej68Hv@cG3s(7lz5S>PjM2M^9jQUoNB%lf^7U2cU*z;uA?y49VB`0VJ2-j_>C zIHR0lmp(G_`RGp(FO0Nn|IIWJbj%TTVTa~8- z$Jx>{YLj|jUx7FF=774V>iaH6Mil$e<{@j?U8880u4B=Ve`bPq-lSN(TZA{J@XS8-9)eiDCRAYr49 ztXU}L&jaa<01DgGrl$O%iLWVAIyN-iB1sSG4d6J62R^sDu@ip~IHAU#m3^~b?C_Ff z@sKZ|#lR1ggf3i)UUDPHCJ@ns!gNHBdpqtrp#xv*=mh7qF3amHz~;0r@`r>;gUGb5 z^);veRrSc|SRD+C2)W}~&P%ZdNo6Im`9+qe>CSx7#OBdBMLAwFPIhpQBWY$TahxET z$eH^Iz)_3jq|7Pt#d6Fnr;j|V3Vv7 zw}t6RK)6vSl@==xuCC_KPh`!C^Zr3Clmk1a4+-Y5ZX+_$QrQ%gjVv79jBW!l0Ip+J zKgqDcn1AnvFoF^ zl1&fn;&jsHtpD${p4T~ZlfFAP|C6v@)85XXv44TjZ>|j_(ME6nHbdefP!WvwzM=#K zPz1amPhSW^%%O277HAR&k`w32ejmxaQ4@ zORvg9=bW0pcWcflhM{(8-n_8r+v0-zke71lGN=so(i{4nNUIv zeQFeGx{^w*mJZv7Q|vBX+`IRa4n<8Hp)3z>Sh009hB>w0Qy1JkF;^a6k)-`vFV2uV zy-&D}&8VOl`QOruox5EwPT-6N3zeJK7{X~o9?b>os6tG^>8Z25xAuy$xgGumrW|}J zO2(T_wMmIB>;nUOiK{d?P+u9dFv`JKm*=_ojj8aFJ1-ACi1u4EMH_FSf<8oHccq-d zyJ=8eJMY}>Ju1(h;W?O=2jz?WVIcRBXi)+8p2IwAdXHRv-X;ban$N5_sPMSSFq;Ct ziB#)Ip4)A0l9pi|>9^NAQPi8C7^3R+NED~};J~EM$FSY)__JNF(|WNROM-zdLVdpx zHi<}l;3|0^9gl+N565;K;%7I&0nAlTu0x8Vl)uA!z1vmr=Dly?kIJ!7((tShIJO3k zt`dM%_P>8A!>1unG{p_XaEaJbt*xCmAX55EsE*bz;HGZY)|gM*pWSR1P|6(}Ld#)9 zp*T$f!F^jBRFVv%#sq?GUxjETQV8y?K{94=6rDXiGc1^%H5iuJ7ts0y_#F_27ML?2 z5tiQdgyu492l>fZFK3(jxd0 zPjJzhsgo{lBmkWOOt*j`XmMzpSsj|wC0-)(72rg-1EKPc>fo*{luylubIYsyAmZzG z+p@|>OL9%5F8?7nD=fQk-=&=PROK#LZ>b`}P@dQE3NR>kwx6alQsk${|2tF0X z@|@_qmMJeB1On<#U>u|rnEutg;vUJHJQFv^r922Sae&D9(ec*y+jS@K>;!zq6%FuY zq|jle4n8P8C~0`kMi)0+jvv|;05Nv(ytw47Jn=+@H(`s5wXgBMi@GhQ0G&GdFxL-W z3>$j~IId!_ZFdagylFfW;BeYk+*B{8%%R;A34z~$v08`$G$YGpsY0|ig6+@^vH%Io) zx>KNJm54%pmZuTYlutE1ALNX0+A3 zuwbF+`a)9K3hQ`PduH@0Q>b;t;6sQ*{XiTj?0u7Q+=}H{9-F4+S?_LG#Fj>^Iv`$E zv&lBhk8B`%FBWc>&}<>@6}(Z#{Ysgv@?MB!2ZG*+(OB9p_n zYs8f(a(L${$qzntw{C6Pi3)PVzTjS_JyX7$fp2Y&c)mrp{68k^eKwb2W`p5wE++Ce zz~r->zdP>aCdq93qm*uu&QI*lYJ8v2rlF)>ZNgrcgUCHtnNbnf|4Ty5Pn*(Fo2UWa zRItfR&4*PK=}la(-PD&04SUg(5o)Xri2vgP$^qhK(I3;DDB z04MUj;?cD{csq)tfA9{46!zoroNCX_>R&FiJ!SRr3s{$b96?$I-YUwi`?8)}e3xd(_CY$rfj$XYq^?u4_3{-5ewuyz_1IG2mIm){vtrYD0-f)gY}d7B_@+n zO-6$my??o1$T$-tL3nI6>P5Di*p*s`7T47}8HZgc<$PVml3WINcLV}|Fk}Rn>ClKC zFq4mmwB&c^PJ)O;e`yepJdj59f&;}@Rp8g^t#Sc;UG7*D`qK~h_vs29?u;Xt6^P{>c1Nh$N6c(BoGCXRQ*Nm?tA zW?TN>EB;S_mlgJBNI7WN_f(4U2Id z^_6J$5K+9+#g-MfMoYQ_OlfwDGsxO4T39-b3JvP#fSTmPPd*{<7c52}88a_b5iBL# z_sgCTyvPp~@kdJPB_gUpwT`=KoLX#YZj9r{AE97&(hGdRgQ3!cilv{;VCV>f;4#{4 z;*65awBpd>rm~?rDvep_0Z#FxW%^-#D=+@|Mg#tdl-_fNRs5t8xSlAoLXR5qq@D-L zV|`;=>QGct0zR!miE18~vl>S7iREi(k?TSwuu?ee?rd&=PP=E|E7n*Gcr#eq_{9`a zYy+X1Uf#SI8~&c1rBSMRo;V_R>7}rq*G`pv0w4&Wws_(1APp<8lB?)uiZM4wk_+EH zkS$q|f9LC$iKDdliTs|~=a=p&K6r;C_P*%aDHOA#@r4+9xx95NJ_EIWhH(kK7(PUz zR|vCTq31%e;!GJWgp@Mtb|AE09eoGZv)v(?} zJ~Nyl87o+wa*dsvyTplRVQ-8Vvy=vW9UjOnCQ$)%d&by}mxjAEEwAWt=OEvYQ^7~Z z6ky~bc?E)eA<@U<^4YYiZyTFtYo~*HE(GmkUYX-_AVb!<9?NbfcG94YiU!o3ERXx5 zd1dm{VEqJMO4OL3g00Qzy~4;19rRT;IVgdq@iyKt7P;#bL(I)9EM8kD`_oj;O~?KN zttfFbBYw+{n5X(=8KpD%S?6o@L6aL!2`aQ^--#g0<-Bbirsya&&`zOH#MtzmoB*?QQn~PJld%oKzB>rZinsfdWrW;k4TuSy?u68zATPNP z+Ou(}LlzE^1I6*-(`95j+YM{LkJH6nH6S~J%VKZKt$*JsbGIqEwh?a}Y_onac(DR} z+W*CwhN0t~H}WDgMF-^rg0A&n24(5C)T@20bu6cN(YW&C(&!_s7t{(|2F`yrLC?L= zP;+O{$d>~xo);VWqqv1(k1_Wy?{dVcaDEH_lpP96!zSEFj*aJtIe{#)n7U9!UGaH~ zaG#EMKdj>|#sXhaLXFCTO}5IL|74y4X3;)!aV%Q9@8*FY*0q$F5c#t46d`aBT?3(L;K8*!V+VQhu%5r>E^oA|TeyBH$pj>D=w$Z^op97Xj%jfRnWOPpSK?t7I=j1=(yqe&O+l_RqG@+W91} z&WdeC4*FNv#MGeV!FL~nFaqHiA4?65=8UyJySLP!_gNz^kMSm)jD8*Fe@#$%@a4+Q z*ninWLI6t`=+HBJ8>Ev(>tyF4qU&M2(xu$KD z&$g<^G6Hc?AF{zBis+MzhSIESePNI>!Q{?|QNs_Cf}>o9iBKmzv};g?=Ji41dZ+h| z>T=k+D_Z5&Ze*H{5Ng~GZl9_lCtavvevW&3_!3PKvn5)kovEr@D+J zDnzL7Z@;C6u*M&TMe&mIQ*PRlj2jIh)4xACUIF9+yVN$$t-V1Kx}Lh`{LYs9T3QeM z*GVcS3@)LkAgY>BQ{+zM!5mi`S791lGE%>InRbtfW@s@O#{~#p7DlP##5onot_xtqyYbXOP4FzdMBiL zKAEWY+kuYQBwdEeud%&KuD?~392=#aR$QO^D5u&nh#Fa(jA#6 zq%S!L#lrt#uFj1N#nxan@Lj)$(xK;TLLUfBclSBvOr)fM8U#1TJXT)M)X#zXs?2ud z{H0}MjFNxj8kg1axXLDdtn#XhOf}yr`9YoX8Ro5OO)W8;i)T9{zd!ev}|zOiNRNXscap#|Vp~ zC=e08G4M4AqC<9(xbQ+z?*!A3@T)?@EB7qCa)f@t+SX}t=&{PWJ(oGVG*S|0F}@Z8 z-h3R_D`eyrB400-;9IgOj0r+6@W?aUsM@FBiK1F!d{n2sh+-j%+c@h9mPrC(=I za1B%zad>fJXlPKzvMhdcwi)cpqWO6axHbE<^a*JRP~IPFq8(5*mDW^}EY$u6TZW$diGnXVRqJwuno+UblG4DAu?oBD;+D;f zl)7q8Q59yOyAZshTfoG`f0)7b!0h@$Yl<00$}B<|PCFy~zXwLENU^s*!C~4YWn{%| S9lz#N!G21}i&u#1`~454W{sr) literal 0 HcmV?d00001 diff --git a/gui/src-tauri/icons/32x32.png b/gui/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..c93a6fd9343439bad0f351fceb6e73b9d52f8e89 GIT binary patch literal 2093 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 literal 0 HcmV?d00001 diff --git a/gui/src-tauri/icons/Square150x150Logo.png b/gui/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1087eab776749c9b06166f09643916331729714b GIT binary patch literal 14556 zcmZ{rQ+p*$ltyFQw%M_5+der#$F^ZATJ^3-Wko4O zI6OEI5D-KeX>ry6*0lc}Fi`)^{Gg79ARyeuGU6iY9-B7?&;jZzE8n}zj5hZ5{ew(B z*dmY;;^GY|!(jsJ$>otU>@!#jfJlFa1xuR-GTC}~S!{;K&d1*Ro|lR{p|jo>a|;U# z^RgSJ%beqh>#CQXj~?e)fg3QDDAklAj8Ym2TG{_+%R3>%i*C3qUop^w{N`hIrB#3 zPt87ewe7e&2#sNj-FL?mm=k*ns{M5$xSydg6S_&#Riq#kEh{smRJ2!SUmT^f*f}Vs zPqW#07`5heW7a-&*&MD|e&N0Jma>R-Edz;mrFmzL6bR3C0gWMa{kJVsw&!i{_R_t; z0C7(K^kYkL*tY_`YX?WMYbX>22Id%q@Va8X{X+-{Uwj%AXxgceCx9Oq=bF*{W*{Sv2r6?P+mcXaDCp=eGxSiqF3-0nPprB{@Ji_ zn|i&~ZMBELRz(3t)h99LN0e5DG6W?T}07tNRIg=vA=e=*ms%dnD5}3<+Il5(i71f$Yv)Qh<(6t}) z$o7Ql4~eO6q42uYEyw(R=3SC;b(@G!Q^69HBa6;w-HkjVCZGU|P1 zt#(t9O-KNrOQ)4wmYR{}EJ+&)Z{OqOrb&tp&KD?;YJ$ukoR1ISq{d~+e;6QZU1;Er z3A#L{hQf@;jNeFY!txzACnb^_DcBk52SoG!xUW908K^ELCRDS0yZi=?J&VkOvUgqoeIw%j?l_Xhb@9+$@+Y9^ z;zkA^FIa;utMgF1^vcfNQRCERXsO@4Jijw{D+=x!w2TPd$ceylW}T)2Bbj6NM;GA1N>dcY$~KXvu-klI^qIT=Q*et7 zU=x>eIG==IF4Dz7mfexI(64_rzv|z^=@EnGgs%H4A#GovAR~p; z1&QJ|}*3C72ht{hS9~w{t>qdk~^Bw=ILJ0ZF}T zdX@*d?tYK1u1S2q75nfYNkNUDm|-cZUu}4cD_xulDna$xN#d1&2fI_@38~9<=)dnq5e-yx*sq*eBOKexAYGA*8lco z28)&XQ`jOX3(SrcSDF|Mv^=SwomkJkH?Am2!LUw7CUW53L+0UV7wRqJcSJmF7jNc5U{P{;LQpXGnGzuLNU zcZ#z&zLAbrb6xW_TOHuT|Ix3FbqxoPwk6=#la{$nf1C3BK$_o!oz#C1PgOZWqB(5| zrG&0GnfkZhdxgl(q1D3UKi^N0!^eTI_8VV-4s%1`(3lE^M@9y4zkbs_acDo%STOrp zt~JcCP*7}fG2Ex1;C8*O6WX>X5V2-R{Z+jyd3GK##IsPgw$bi2i(PU(w)oWvp-*R; zY@P4#dmj)r>07#);Z9SZf@9V7m6F(Iz;kwpy+@87Y(Sm3xNCTCn^1@O_y8hi!cI6T zejQncM;-MHxOpF|H(kpXh3HUob0aXH86UXT@pYJ_y%?^L2jfRTs9K>FrT`dFPCV(z z81^#jw3x62AMV)%MMSfaq_z5bTRZ%KXWxGhk~i;BVEo)>nmR14Ttx)q9XRkFu#uDm zzekO63C7ZPq`%L2hP1v&D!+GuI@)pBZo~Xc8LKB4ZdHw_X!l@4A5duXzYg zeGz;gSm#%}-~>(xZ}$rWZfSbIznRz5embvm*?IrPFid}Jfaw3~!R~aAr$phIpD&1D z8$|>UmdI5+W3HaBL0(=G&#B%V9F@%8R~PUe1q^tr{knMDY5#Y7ccEXLVaxRS=%nwx zAw^~~xYWA2;0tNu4F2~$hbuOaGTe9@5luTOVZf^gcZY2>r_#9n>5QUnYv$$-{shne zgL_wxW__5{>I$#^`bz5I>(3AQf~l?RZgnQl>&RTV@nWWqs8VHBQ(<>Eq&$?^af!fQ zeBkQ#H45)K^BrDP2?cp=pCjT87vOFnz9N?SAV$r;Sf?VFQljiJwNYvDVIA#^KXvKh z8Yx;}eZxe#|L_qQx2YsEIio0lo;&6YDZ`uTO0VNU+av=Esn_f zHT7|rXM{NP`fvekPJ#8|9PumFoi{V#vRC>$&g9)`u4N-|l(gK`+?Oi!=oR{rip8PdBXK#`nq2gIYiY@I&635!Vym!&lvB>8tdwLk|%0=4gT#A6Zwnjwv#@LW z?>5_18}bm|_3-J?9H*vYfu(9_k7e>jI;H?!qnPPMja2bzJnbBE>qw;*IiI{7kzJh) zpe2+{k#uxcLq7cY2uw#yoR}c+vM1}!&a8nQS}`rQyF6&VC$9P-9}^R%@}{|0g3p9t z3^&O#vggUCgh=>~v^_ZWb(#WE*n2o( z#gJ9~wJN=H38azQuiqQ5pG(e;@4s;eN0;Y~(TxE}i(!m1g5QXr(Fg_Bq|?YOK=6;J zogsbZ3*Xv=$fx;*`uCAEW&y%0G_+rPkT(Nn^-GE9fO2!@ucQ`IE(ryY7I|~8F zY3DycQZ_cM(o%(E)=kM9{jfn+Q9Vc$s+T%zi{phFNe^0( zWD&h^6cWN|9N=b_#Kz;_J#LS79$UylzG#C@0#IU^7nw1Uk0WCPfEwzl7Nm;{bM++~ zrLtr{6h&&8FFI>$y`+@bQ9Gs)0klqQ?hmli1Q!OLd0IOQG=;g1RdnohX*OIIF-h3S z9@{PYg_>;8$-BMr{Iam-by(NkCiPVR0fa zm!mv7L@qP~^B1aqpW86h$f}s2+2d^9vDN8fsl+dw$m|KHuKtJZxqg!~R{9?X$rsKF!IY+$K@uS5?IUe!8!QI&KOb(51gVrt(Ae_s_j)72w1Y z?+oe76HybbZBHI^LSmXtXsX7?63L%lADfQaAKv**U{*dd5m^hk^8`3nX#CF3){NgK z(W(s%f(ZGlR8(z9t=j>h7P*X!GZBtuC5NqgQ2U3`-bsj)RHCtBYbU^m?Vn!9`4$W1 zz6~x#qpIki2Y3O08SQ3Jg#4MRpcChmlU^`s~so( zgzeD)P*#pD8h4}Xj%eT!UJLMfVRXpVw-cfyC=fSP@{gUfLG%U#zbl4&)8rvZbULdE zPw3~w3oX^Ft{{n@)8lQ%R+@_XvGGJgTg2F$HE~f8xSz^23u76d?quDNaskpd$fG)@pWzr`o4c?3xYdD@f4KE z$f%eVHYJoii}C73sD8#3s!z;I7VD<1O>>)kS&Oj3^y?f=&J%>YhOSVLfGXw#99QlR z3}5!n-+_;*^H=t84z6aFYr}XHr5>t1v7ZY8GJmr{gy4$_S2kM0nguV^>5S+c5xS+@ zs-Acb9FkZ}RcmiX^(S&-@hjzlmFHjLF2@lw9vl(Pf1{GnV3X8;oNXvhSv$uLO{|Va z6;i=~l44}DI6u^+o25+3p+ja)oyz%}E6KwC_|))@s)Mg8?n$*AIVJ&4s{41{-o?ss znTrwLnAltgjr6O4*%NCR^_EH;^2C&k=!)dL!J9SWehs$0vGqhPaz;w6VR1*C#!#_D zSe;1N9hS2q>`v%Kp!UivntBfmqLx)*^j8*y3#dsl}z`dO| zNLuy;`)*ep(=q0OB4l`Ve^S0W@BL3&=Ka>I7n8piFDPqM;^feW92=n-s@Iyl10o(x zI=1_O=(2pLx++iWK3XxcT!n|53BTjslHtj+KN%tAy?|TY0Ue$bE8$y8ZrAA=ebCJI zyu#p*$*DKgf_rfj65+pXbv@3E%uC56j{aUCU*cuq6i z6xRN(Dnn`DMV=URSv!0~(qG_(bLXYZW3$cW$GeeFldo$Dj*mP1rp%^qXvGm_g!j5mK}sDwrSN z`G$*^0_F)=xm9rFtEy^jMV&H&8@}iT=%I)ixTCJ@Uh}rOCYQM5_jOtIfM$bmq0kIEUv<|#Eub8NqUXt9hSadPCQULKf+vm$_%4V@1mEHgm5Kiy8zxHC zEe_!cP=2+;5LNmMpgDnHE25FVf8TtC$4ORI-Q;gJ{N;9aK#|Jl_m{8U!z+4MA;yQ} z{52cyntmr-Poq>KcMDxXlHM4pi=q*vlamy6=SZf*^)OQR#{tHsHFiOkk0#XV^o0aqjV@qR>12aki6BGH zc2hafXuAXVYE=U!ak_|`-jrd6zpq5cg4dCbGb$^DR=k?6FjXc950~NMldp)J2g#(d zI$t@Ey;L7X%CgZr#1_7jq%p>f<0w2?TA@VDcJqNqP|r)?rUe$Iq%`yXuiQ}!q%;J| zI>=O$VC{~>Pk!6cUHlE!;k@NC{E>COq1x}&_ePNQ$fB=fyC_GEG8N8JAX>8YT3ger zD@`ZiMMN&a%{*-X-+EKX&St&xmc{M-t14#jp0>u`KeY;5+jn=F_ZKNQ!+{79@f<}( zod{EFpLku*J>)(f{N8eu+3QJjbE1ZJ{8m=BWTL4eBd~;bjND;D0`=hGNE|eTioLRw zu0-YKlVkqaF=YMhH2P{7_G}AJj-vdHXCyog#F00s{j znRpCyqYi2v7rc61Gq3Sn0(mOvUcQpE7BAwFVghVaVXw-Y#91Dquhi zQEm+6ouY7`9|WE1I^t!Fvba(yFzFZ`PXWc;rVRzM3Voc0 z`ptk!wM#BKaeAboz$``Z^~t$XD-&mIz1i;VJxee`S>0!hZ8+#vnMfr!Iqu`k`&onC z6nc4;(5s-(2xoHg|gUT+)?j7QM%&(`v#)#!-YjCnS@bsJ9iHVo;}NP z`)LIH4C;)Ru|Te#mIb!33-M;ysOq&qyR^-N0Qlygd!JlgdD>Mn++5j;f6(#zHL#0m-8MNRriiW z+uzUKqgR6c)`dU9d1p6BzpFTsv0m_4Dfm5tRp4){Gu-CLFR z7)atxV-Voq-!G_>Y&VRk6-cPN)#9;MCVW1qQVF9D0i+60P>AyVJZfy>#o4gk;YghO zRc4ePA3LV&%@wlx#tj;PiAp`k`|~qkm7Z{Crj9&<%Ou(s>5B%p-{5_~NnuCZ1IDWZ zA%s`n$KLL7-*uG&>3`_Si5x2!%bMIVLAQaLR3yAqj;avbG1tmz>z*U({2!~f9r$R& zbLt5ec6n+jX^Cd=g&!jQ7ykn~DIeg$6?1iXMLYguB_go>sFk1Ltr5cC(*>K;z5ypafP_LxM2)!oJ*!nLpc4MPg^aTVwD(y zv(Ada6JGZ+p6b8|V6ni76NwW8T}`Vdd^HX)j?4X;<9_eGVcsq zm9fL+Wdu~)E*GBd8O}c78?3$S=IU05{G7QLh6M^&p*taF_zJq_x3fKyGe);|I&oq3GcJMdFM5OP>+fzqaY;t-62v^j=bL1)wm<-EQf1ta@i?{L!Y>TGX?db257brC;ZzLZR-(Ye<5iP z&7S{J_6c!LS6z;u|dOt;l&ZZ985(3=049s6ONk1p8`D!fN1ank#-C`hckxq*MaE66`% z^qU?Nl%UvTY5!rDCwL+0-FdAqxBKi5?rLzhU~ILiK_z*R&>z~dku7DEfwgGmC@8Fm za3PTpClpu>$+q7ivr%L2W0$1anGSs9y$hV#6=X#sIWCU{{W_X317c`oT3^K_lo~n~ zc#pcbtZC(SYMz0}ebYvYhORR$uTz-*4GCA)Y{*4OB91DbdlBMZINi?300RHSO1Qm5 zo+q*p(M|-1*w0x;U=t)vp{;P_kSug!=(!0>&7STQvCa9=#QZXmQaABp(BE6+iagm6eGNgkNXu7`Y3Bp(_e-l-HWMev&}tHO!NDr3cfz- z69_bHyUOZLDnDMhGC6rGNxe*~C9X3nyuy15XR=mx!gNlzVCVZxXxy7?=YmgxNMhpNWmbw0Pib*7&Y3+HhS_!6ZK zhZ=0zFU3DQ5OhxRPr#-!cAsu;`VKlS0oCq4^m6?C3JrZ-B8HAShYq!dPe21czMC?JzZvDxx&%wsllR#K|b(|<~;{gZ5Y6~P+jF!v#4Jg2{ zjgFl`+g4$TlookPWeB$*N94*pq?RdiVnIw(^^{aqfOzj$9qk4|s2q-BDeG|icbJhh z1$m6?x9=yQo|_(157gRfNX|Wl8N}oVG)TS`- zPjI(u#5y?G>rbCE#2CwK+EHUZXG;`ZqQs|qQz>lfO4qPS?Nn;285WdQdhw>#$BOUf z0Ve&Fepgcyl~uc~qZ-tLmO+|U`3w@JQ7*1@r!UHw-c!xB@3z5*&xK!M^F(nICGjnF zMb9!lv+qbEY=a|}&E8j>_ILX4*L%D1saOr}*yqNipO35=w5ajMJ{O&i^|E4k=f*kI z_q=11F}V7=!6X?{DXw;Wv=hb6{Ugtt8?lfr6w9tnYxJ%N?wzW}P6VU6t~rkEu7mg8 zUkx1tw9q9A&IQH5A-yguXKZF^USG5-20LBdqraLin*R(B$`V6@b54nb*cPI$< zOhRTuFlRA)(K~yT*4B7#a%7w+@TN$G|- zv@Q&&n53RTm9|4S!!>B*3t!KCV~P1j)W?pZKFkQWTv{b}ZIuu>@POau2gbjzFM6F{Cwp`jb&HyI3t_|>wbrUDk>W}*GG(-4BL%321?=u>uU4i$wKm#X{a*0KAU7dw6lzU-L?Js;C#;@T(8 zBq-B#I4kwgM$fG`l;i47Ow2UVdgOh38>jnY6(`3}GHPF4 zpPvE+@PWmb?S4}}qR?i8Jv5$JTpacd_T^j_C5@0C%lN5vA#VH|`SF*Rhh8-;+8yS( zZ}TOC4epr&0uzOnn}hO;=)IrP%^NS4r+F|8%C_&mnor-GNlJ>n>I^Jg`RUF&ypo`x zxOhfm(}pEXbrfVaRy&D3#|)l@Q7de0tn9h7?&L4|%-0-M1g_zb70&10TC~tz7vtBr zE&;e6`Q&Qg%KT^6mzi6a>I(O033ei+zL5G^6^b<9-TEy{%`(bPzL-(Qm4m>mZ5I~c z->iR8iA}Iqkz&aeG7$zni0i{N1N+Lx2tZzP?o*sNcc|d-TupP+VrC=4_X96PIu#`t zcS#Uyzj+fw5tojNjDsace_g)dx<8&?3hCJppifv-f_(K0Q)6Vk^NJ^jMwbzgsGXS0 zeXCMZ_DJo(^XWg)tIult92q2O)n4}>x&<8(W~y3OihAQ)Z}~w)1)hC(l$7B++}S%j zj@|gqGX`=a)g=|GVIQV!4XZZWg_H~rJ8L6u{V_M_#I;`4gcWYA5Xb=+^{EjwawwHWv zYqvCNGIZ$puiG%gTZ6N)(R5zl9=l0U$wL*O*ngt*B7n0A@(_IKraY9m#=jbp6|NFRb zN}8_Y$+qpGw8;e5;Z!_Jb`P|Sv>ol;Wi$&{qc&stZw89mX6VwBY*_It>1|sqlaXDT zNRVG&pX~bHuAG1JlEbwB?lllm4ilA4;e#?elJ5S5S*c2Mk@|b*f~*V#$BJUm6?lP` z#rBE?M9siaZyobHxmBa6S^;VAtwWh8uSFyYNSU5aF7cHO{;SijN(w6n4Sk5Cb9UFT z!8**<3%@HKOSN<-CVg?gs-MSOWa02HsMNC{iYaHphO%qlTfol;zFHz`O#Jx;v~DX!ULda-rl zkzt%)mc|TJit?j8YO0R!6%*&F=;XlC&^)~%jxEYkUio?WEH%^Wk`iZDh`y_yzO7*D zA4hFMDkv2KbAx+Ys7C=Qof-MFG8+2=-`(Biwxt{G&0s#|F|;VQoFF;Obi)25jkN>; z%btwIXtK`>-p^=#Qmv%(26kR$6)V)>i4!<(NWa002~nSQo0?H3;a@Ujr~F;vu;A}w zfZ=h799Ak+a!HB;`#qfD;pll#_9bWQ%9}$jt?&hWFkF^7YFd5SGN%ecJ!{9Qn>X#Y zTFDZ-h6gr|-!SGmFSx8reORBbHT@t;bhzS1!s z^;Vn&fD=@nzbxFa@_fyIHF}Q~gtepXQKWLG4Eu310VRV!=f6D13y)4HlIS9nS5|n$ zTliO1#C_>|8VQ)0w};cNAKA$}-MNY_T5)^4MhYyH*jOiQlY|MxCrDCFnz&64qP#IR zTfkyU(st7}V`NA`o5?ux+tr+sM6{RlJ+4u{U4HyX|E6p{xFOuSGyYNVGN|TXEziPG zbPJa{o<<~sN!)@bbQ798B8UU|1rNCsr=&GQzBR80M{Qhe5raM_D1gzny@{Vj6<##v z5anG&M6bEJFT{);$&e~%QFauD-*~^)hiqx0p-9O$S|QQMLgUdncFH&x1KFk8nuvM6 ziPuF>7)j1X*^;BYrBrodMiK8@^P`z(e*_}HO75V%x4Dw~I&=37_zKgtEK*8S;C`9* zH=VBcB-0U_x`bttz!N+={<^usBb@r0=mo(DQjlv>XgKFnNs6CKH>#vNhiZU2_+3VI z@T3)PGJX%SSXxa+9>yctW`|H|rSG893j&V(O`V@woOCVWzL%+Ri`-QeQ0>hju;#K! zPAQ>ky2;@yUuTbqxyO7CTiJT{yOdO++rg7nL0nq>=gB_&e$twHIMqhR9WDKG#S|{^ zk^{}xcLWX?l`Tu0nGh}fbXeL&s&N3^Jd{2OnSOB zrV_xQxn9)f@lXl?rK{bUI4mt3h)g%49Z(ROLgNs~Rb)PyFXa^Cz5fCp7y_<5+kohk z(b*5f$x`>rLh(^>6J-Cw--YYs`j40LNSIu^j2oGTEU*zGuY__T8D4nZ1Sw4VKiGXI zjg>W-zAmr2Cgz^2tGNAD(eC%wBopz;;h%sl<|?a`CiHeB$*;~ZiYMyPqpax-x){Du zT0!TP!o-Q7GaP%r)2yP3b*v&Gf4mAol!TlSLL~^qN}YYRgFg(y*+&0?W$1`vtEW9a zHE1WtN2-<6&qI`VxG>arn^lKQIuZiqSn)f~CCLR11i{Cm)8H){6)=7O?GeRogF1@p zm}e)PMd`{)up7^oUc6pM!wpp6sDG9kd6-}=vc{B~sg&RGV+SgqEsICkv9ru4vVE=} zNOphkk$YU6pwl>kW6=9;=p;LgwvWx1t%=u9RI9Wo$ppL{Qu^^~KZjLGf_MPt=@G{o!p9DlA4_DvGI`cf ziY+i3FT`j&m7Jh82h5CJmWY;|h-0P095gb{+b=mb`_ydF9#?1QzkB4beeSZMniz8R zsyJc#sbWbcZ8qg(G~?^Of2qgO3>kxw3Z&AMndGK+4E_W3e?Uk+!e`biOj`fzVc8OP ztCaj>5+uC`<4Q}UUr>N;0~jUie)u(~NPT2XuFXC?%KLCIxWN50h+vYvI4BGBA7yRx zwkBh);)~Q|)n8rZ7Iz60J2zGwVYy*6#lNrpd@Em=5Iz*EzM_QrC1Xiq*Bm7LIPfET z|3H0G*>3HdY$)&t@HlTo%6tY;N!$P=u6SKT<-_B@UYin+vQ9{~R-CQBF3#!3+G>Hw zRb^ezA^@3#=TG6&bBo9f6%1e_`)KLPDOklXA5IQgaC~Kh95(S*Tz~t7|M41Sp!GgH za?x&W#zPj=4;U1s4?~V8FE%AcAV486Vs!Ol?xA^uN(ZAb(;Vw(&z6Rb*U;RqBwy&V z(!dn_>L$qdSBdNK#@}*Dn#c(F_O0u`7ilZDSmh@DTdk=x62 zBx9zr9OY#N__Z`A*;r^Cvs(Rq&(gUl1E9?Og+eJ$LT8issOBuI(hPQKj26g$^CpC0 zAhVXX#Wd>4^D#gKJX6DICMZ6=?uD70M_?>#a8(wmHbg!X>pNs6)|InJcmc5G6$bdbe8J{{PxTGR_k-qGhLi|_G z1@6@PXomD_6j6?OUX92KGc&F&ewM*wd8OT>JPBv z(`oVe7&a9AV(ca{H^|>t8HPcy{K^A$@L$y1I5JUnO4oK5^sc~v!WAOOcM=2K3CnYw-^!sL8S@p>Q zDfxQ=Js)^7%Q~r$Nj?c1DbnUaj_0|)M4*@aC1p-5x~{(sT16_Tz(*iWVcLzr?)t`a z(9e6{pBw$P2Y#2i z4hi&KGCen41hR$Sy*+_`{>uys*qjuWmB9-m%Ctxz{b#e7J4#-t_lIV9K;_Rh;lA=k z8haCQR{cL7Nku&Jop3oO{-g8Akv%KZJ(2#!i}9y@c^SMM->2yveFl9CeVf*1iEnoD-+hzjH*?zvWS3rSl?*G z6p|q;=N_?FjE>UldczL|M5^2#3D;lrzjb_a2aHAA+65_g!;=5G6R^sFD#_tShP2C@ z5bZnT$WO9TT78qb2w^dJ-ZL%~Bi{M(1C2Fi@oiX1SQGQ4K0zqXRm zyy6QK-K;9$1+zEcav1qieE1`1`H^w7NOwD4_8#x3**$DAj|;_)93Mg}+K&&}V+fN2 z+Qm86Yei@~=h{}Pyi!~7f*YaYj=}Q8YG$3DG~P1$3e>NsQ;c;Ci85+dFI{-NXUHQJUlA8q$Ze2?QIS7Rby3mQ>FF+kpFIggmg*xG%oGTRU zEkcDfRn+iW6`f4PJs&+eL9WI?U+u6jAQ!;M3<_5yc`0^~p+F0ruO+DVc3YmDll1Z2 zWYD^f{xUd`3O!lTH!3ev6rezzVrNUKu45prJXQOR+DOg(IeEd3>)IJKxRQUv_xMcB ze>!P_#SMwb&^U1Ju|9p;yza+?ZD`)amrDvh70PVZuf2e^a&f4-(6*L|v-pGbcT$NC+O4o9`EDQu#}nOIEsy?oiSVn5+l8(Li69Q^){HWm zODdenP?dBVR{yEgVzonBb{v)EaggC29W05<7#ERu=QQ`nr>GjB*2{T1uuX319NbvX zFpkvXLfJuK^_woYe03Yv8=_g>>=cXOc5vx&SAeQOX$}^mdTau+87mxKaIj%;q`Y?L zuCum&KImna8B-5I;YBJwZfwJX^5A-60*8Z@Xs2l=sxT_StPGb_uh+CQ^H*H;XLcJ6 zY%O9eHAGueSbM=jJd6hGQ&-`}VKtv&vrXwo1~f-nA*iqv8$_AuYI7>_e{}cR46ACW z_CJH-Cjj9)FiLNraFh}^WI%B* z!nUIs!eMt5v!Yg!&b=Q9vUe7WhM}`CYi{iKjE)>*w-{pmnnr@FCh8C8jz+kwTAHX7tCC42nx0!NIjUP#u6bVePz-wj0Thv0d4 zYX`oV`@RJ@5)+TbALd8Ix3o3deaT}Pm~YDWs8Dm*(o`QMhP_^+--xs_9Y^f7m@#oE zssRw6jMXJk@(t#VhBMNd@<{w_Hm&UFU2RE9%qlg(AT0P#%T=P0q=+ZJU6pm4kJ;DF z=xwa(D+If*x76UH=;IXes@x(f+CKRw%pAgYmb?w_4t?}~qu>}W+M>f1Ei;iLlyj^% z>{Big6!7GZ3{Ahh8kLmw8osF&bHpeTZ)9~JZfczAt^dYHHH4}mJ%yP((FkS4T4->* zg(ss)nLmx=xK+-WH#Hhv9A7kH706W58fwlgP0|?%nQaA$mdI@YOk=`!ps@t{9LL0d zPFWB~na_LHh6p)V!ZA!0Ii`Dn{(ky4m%@$uTa@nq#ArGsdI!UI?$9k~GyAyGgWG4< zydk{m9P$=Kd?ns_BZYekdmC)-K9!&l+BU7O2i_rjRMzR$9KbVdlb$xePu9|%WU#}9 z`H!)N!;>VB>H9>G_H%?4AM_JQ<`2&bTjB2s4H535f4R6AO;k(MBJ?-7%$%gNmSa3o z@hh`Phyxp>DVBm8TECTLd`%b9L_E`{DYcNNh%D4sbE?J96LY=dAauTGY@3iV8FZ&i zr8()nDQ<~a3?j-(L;Os2PDXb)vwKLG&$cs5*qf-199D+n7AHVyQ7c6XSg#t~hVtz< zdtWYIJg$KoN}(OKU}>@lOkye*mkJ2Aeh5tACB-lG-Yt%~2pCq1@5l`Xm5LIkCJ`K0 z5apa_KTjMII_{g~Z{=|rJstfTdPdEZ%x6jTF2LW;>pgQ={?bS(wRYC+b7vd*1D3xQ zsc%UhxU9!^%dndR=o)Em3;fX3JOMRGdhyc}Vr97x14SjnF(Sum#|6S2|MZ1a&;l?N zfn^w`oaa_obT7Uw&x;$62Y0H>a~bB%ls0cOh9+*X*qY zyab{mz@{Gi9r~neQi61Osn)9Ct=RwoS8U=mtj*`Pv*kixpEl1;(&eTAB|m54as_|I zP}lelU*6hBW0NBO*Ra|J?eRCNTw(&0q#bx@aPEI!`NlKP{#=lGa zXa~inNx8n9YI6jCy@YvgWS+@$WxK*|b6iWKVCn-oFeR-^36yb>``sm+=U!~*?(Xgk zlj7aprkxW~ovJ`tu^6B@X0u;DKbv-AKw|~b z|2QeD%UD?Fm5U3zg} w8~YNCC%KN?OlnIO&;Mft{vTzq|M4fA4!*+}hhXVHYY{|7LQ%X{)HvvW028->@Bjb+ literal 0 HcmV?d00001 diff --git a/gui/src-tauri/icons/Square284x284Logo.png b/gui/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d1836705b92750020584d0502f5f2996c789d2d6 GIT binary patch literal 34828 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 literal 0 HcmV?d00001 diff --git a/gui/src-tauri/icons/Square310x310Logo.png b/gui/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..204742c7d71a7f6b18bb88c441cf9b3431224115 GIT binary patch literal 43233 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

ujfW(VwAK~cy%*((f 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 literal 0 HcmV?d00001 diff --git a/gui/src-tauri/icons/Square44x44Logo.png b/gui/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..57aaa76c7304b27f81704feacc2b462c9174cc2e GIT binary patch literal 3127 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 DYVSEU literal 0 HcmV?d00001 diff --git a/gui/src-tauri/icons/icon.ico b/gui/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2f999eb2f17671b6f57cc7979b23b0aabb3f5b50 GIT binary patch literal 44372 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 literal 0 HcmV?d00001 diff --git a/gui/src-tauri/icons/icon.png b/gui/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1778d50ca7f7b6f9a897fb2193877f556ec36dc0 GIT binary patch literal 92667 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 n%&z;>^#A|)e$S literal 0 HcmV?d00001 diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs new file mode 100644 index 0000000..523550d --- /dev/null +++ b/gui/src-tauri/src/main.rs @@ -0,0 +1,15 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command +#[tauri::command] +fn greet(name: &str) -> String { + format!("Hello, {}! You've been greeted from Rust!", name) +} + +fn main() { + tauri::Builder::default() + .invoke_handler(tauri::generate_handler![greet]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json new file mode 100644 index 0000000..44eca7e --- /dev/null +++ b/gui/src-tauri/tauri.conf.json @@ -0,0 +1,49 @@ +{ + "build": { + "beforeDevCommand": "pnpm dev", + "beforeBuildCommand": "pnpm build", + "devPath": "http://localhost:1420", + "distDir": "../dist", + "withGlobalTauri": false + }, + "package": { + "productName": "s3si-ts-tauri", + "version": "0.0.0" + }, + "tauri": { + "allowlist": { + "all": false, + "shell": { + "all": false, + "open": true + } + }, + "bundle": { + "active": true, + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "com.tauri.dev", + "targets": "all" + }, + "security": { + "csp": null + }, + "updater": { + "active": false + }, + "windows": [ + { + "fullscreen": false, + "resizable": true, + "title": "s3si-ts-tauri", + "width": 800, + "height": 600 + } + ] + } +} diff --git a/gui/src/App.css b/gui/src/App.css new file mode 100644 index 0000000..a89ebd1 --- /dev/null +++ b/gui/src/App.css @@ -0,0 +1,7 @@ +.logo.vite:hover { + filter: drop-shadow(0 0 2em #747bff); +} + +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafb); +} diff --git a/gui/src/App.tsx b/gui/src/App.tsx new file mode 100644 index 0000000..9ebfdd0 --- /dev/null +++ b/gui/src/App.tsx @@ -0,0 +1,53 @@ +import { useState } from "react"; +import reactLogo from "./assets/react.svg"; +import { invoke } from "@tauri-apps/api/tauri"; +import "./App.css"; + +function App() { + const [greetMsg, setGreetMsg] = useState(""); + const [name, setName] = useState(""); + + async function greet() { + // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command + setGreetMsg(await invoke("greet", { name })); + } + + return ( +

+

Welcome to Tauri!

+ +
+ +

Click on the Tauri, Vite, and React logos to learn more.

+ +
+
{ + e.preventDefault(); + greet(); + }} + > + setName(e.currentTarget.value)} + placeholder="Enter a name..." + /> + +
+
+

{greetMsg}

+
+ ); +} + +export default App; diff --git a/gui/src/assets/react.svg b/gui/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/gui/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gui/src/main.tsx b/gui/src/main.tsx new file mode 100644 index 0000000..fa1b97e --- /dev/null +++ b/gui/src/main.tsx @@ -0,0 +1,10 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App"; +import "./styles.css"; + +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + + + +); diff --git a/gui/src/styles.css b/gui/src/styles.css new file mode 100644 index 0000000..f7de85b --- /dev/null +++ b/gui/src/styles.css @@ -0,0 +1,109 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color: #0f0f0f; + background-color: #f6f6f6; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +.container { + margin: 0; + padding-top: 10vh; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: 0.75s; +} + +.logo.tauri:hover { + filter: drop-shadow(0 0 2em #24c8db); +} + +.row { + display: flex; + justify-content: center; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} + +a:hover { + color: #535bf2; +} + +h1 { + text-align: center; +} + +input, +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + color: #0f0f0f; + background-color: #ffffff; + transition: border-color 0.25s; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); +} + +button { + cursor: pointer; +} + +button:hover { + border-color: #396cd8; +} +button:active { + border-color: #396cd8; + background-color: #e8e8e8; +} + +input, +button { + outline: none; +} + +#greet-input { + margin-right: 5px; +} + +@media (prefers-color-scheme: dark) { + :root { + color: #f6f6f6; + background-color: #2f2f2f; + } + + a:hover { + color: #24c8db; + } + + input, + button { + color: #ffffff; + background-color: #0f0f0f98; + } + button:active { + background-color: #0f0f0f69; + } +} diff --git a/gui/src/vite-env.d.ts b/gui/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/gui/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/gui/tsconfig.json b/gui/tsconfig.json new file mode 100644 index 0000000..3d0a51a --- /dev/null +++ b/gui/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/gui/tsconfig.node.json b/gui/tsconfig.node.json new file mode 100644 index 0000000..9d31e2a --- /dev/null +++ b/gui/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/gui/vite.config.ts b/gui/vite.config.ts new file mode 100644 index 0000000..ee4440d --- /dev/null +++ b/gui/vite.config.ts @@ -0,0 +1,27 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` + // prevent vite from obscuring rust errors + clearScreen: false, + // tauri expects a fixed port, fail if that port is not available + server: { + port: 1420, + strictPort: true, + }, + // to make use of `TAURI_DEBUG` and other env variables + // https://tauri.studio/v1/api/config#buildconfig.beforedevcommand + envPrefix: ["VITE_", "TAURI_"], + build: { + // Tauri supports es2021 + target: process.env.TAURI_PLATFORM == "windows" ? "chrome105" : "safari13", + // don't minify for debug builds + minify: !process.env.TAURI_DEBUG ? "esbuild" : false, + // produce sourcemaps for debug builds + sourcemap: !!process.env.TAURI_DEBUG, + }, +}); From e171609bc7609dfb7ebfa30ed4312af0710ec9f5 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 20:08:28 +0800 Subject: [PATCH 02/49] build: change name and version --- gui/package.json | 4 ++-- gui/src-tauri/Cargo.lock | 4 ++-- gui/src-tauri/Cargo.toml | 6 +++--- gui/src-tauri/tauri.conf.json | 10 +++++----- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/gui/package.json b/gui/package.json index 11dd06d..d2f22b5 100644 --- a/gui/package.json +++ b/gui/package.json @@ -1,7 +1,7 @@ { - "name": "s3si-ts-tauri", + "name": "s3si-ts", "private": true, - "version": "0.0.0", + "version": "0.1.0", "type": "module", "scripts": { "dev": "vite", diff --git a/gui/src-tauri/Cargo.lock b/gui/src-tauri/Cargo.lock index 78c1d83..d6b24b8 100644 --- a/gui/src-tauri/Cargo.lock +++ b/gui/src-tauri/Cargo.lock @@ -1988,8 +1988,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" [[package]] -name = "s3si-ts-tauri" -version = "0.0.0" +name = "s3si-ts" +version = "0.1.0" dependencies = [ "serde", "serde_json", diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index 5de7839..ed7664a 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] -name = "s3si-ts-tauri" -version = "0.0.0" -description = "A Tauri App" +name = "s3si-ts" +version = "0.1.0" +description = "Export your battles from SplatNet to https://stat.ink" authors = ["you"] license = "" repository = "" diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 44eca7e..b3bfd75 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -7,8 +7,8 @@ "withGlobalTauri": false }, "package": { - "productName": "s3si-ts-tauri", - "version": "0.0.0" + "productName": "s3si-ts", + "version": "0.1.0" }, "tauri": { "allowlist": { @@ -27,7 +27,7 @@ "icons/icon.icns", "icons/icon.ico" ], - "identifier": "com.tauri.dev", + "identifier": "cn.imspace.s3si.ts", "targets": "all" }, "security": { @@ -40,10 +40,10 @@ { "fullscreen": false, "resizable": true, - "title": "s3si-ts-tauri", + "title": "s3si.ts", "width": 800, "height": 600 } ] } -} +} \ No newline at end of file From 73eeb73680141ea21bce113fe90613d4dc806a4d Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 20:40:39 +0800 Subject: [PATCH 03/49] build: add tailwindcss --- gui/package.json | 11 +- gui/pnpm-lock.yaml | 400 ++++++++++++++++++++++++++++++++++++++++ gui/postcss.config.cjs | 6 + gui/src/main.css | 3 + gui/src/main.tsx | 1 + gui/tailwind.config.cjs | 10 + 6 files changed, 427 insertions(+), 4 deletions(-) create mode 100644 gui/postcss.config.cjs create mode 100644 gui/src/main.css create mode 100644 gui/tailwind.config.cjs diff --git a/gui/package.json b/gui/package.json index d2f22b5..99809d9 100644 --- a/gui/package.json +++ b/gui/package.json @@ -10,17 +10,20 @@ "tauri": "tauri" }, "dependencies": { + "@tauri-apps/api": "^1.2.0", "react": "^18.2.0", - "react-dom": "^18.2.0", - "@tauri-apps/api": "^1.2.0" + "react-dom": "^18.2.0" }, "devDependencies": { + "@tauri-apps/cli": "^1.2.3", "@types/node": "^18.14.5", "@types/react": "^18.0.15", "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^3.1.0", + "autoprefixer": "^10.4.13", + "postcss": "^8.4.21", + "tailwindcss": "^3.2.7", "typescript": "^4.9.5", - "vite": "^4.1.4", - "@tauri-apps/cli": "^1.2.3" + "vite": "^4.1.4" } } \ No newline at end of file diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index 1ed80cb..df3c977 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -7,8 +7,11 @@ specifiers: '@types/react': ^18.0.15 '@types/react-dom': ^18.0.6 '@vitejs/plugin-react': ^3.1.0 + autoprefixer: ^10.4.13 + postcss: ^8.4.21 react: ^18.2.0 react-dom: ^18.2.0 + tailwindcss: ^3.2.7 typescript: ^4.9.5 vite: ^4.1.4 @@ -23,6 +26,9 @@ devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 '@vitejs/plugin-react': 3.1.0_vite@4.1.4 + autoprefixer: 10.4.13_postcss@8.4.21 + postcss: 8.4.21 + tailwindcss: 3.2.7_postcss@8.4.21 typescript: 4.9.5 vite: 4.1.4_@types+node@18.14.5 @@ -492,6 +498,27 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + /@tauri-apps/api/1.2.0: resolution: {integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} @@ -636,6 +663,25 @@ packages: - supports-color dev: true + /acorn-node/1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + xtend: 4.0.2 + dev: true + + /acorn-walk/7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -643,6 +689,46 @@ packages: color-convert: 1.9.3 dev: true + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg/5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + + /autoprefixer/10.4.13_postcss@8.4.21: + resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.5 + caniuse-lite: 1.0.30001460 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + /browserslist/4.21.5: resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -654,6 +740,11 @@ packages: update-browserslist-db: 1.0.10_browserslist@4.21.5 dev: true + /camelcase-css/2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /caniuse-lite/1.0.30001460: resolution: {integrity: sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==} dev: true @@ -667,6 +758,21 @@ packages: supports-color: 5.5.0 dev: true + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -677,10 +783,20 @@ packages: resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} dev: true + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + /csstype/3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} dev: true @@ -697,6 +813,28 @@ packages: ms: 2.1.2 dev: true + /defined/1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + dev: true + + /detective/5.2.1: + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + acorn-node: 1.8.2 + defined: 1.0.1 + minimist: 1.2.8 + dev: true + + /didyoumean/1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + + /dlv/1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /electron-to-chromium/1.4.317: resolution: {integrity: sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA==} dev: true @@ -741,6 +879,34 @@ packages: engines: {node: '>=0.8.0'} dev: true + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fastq/1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /fraction.js/4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true + /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -758,6 +924,20 @@ packages: engines: {node: '>=6.9.0'} dev: true + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -775,12 +955,36 @@ packages: function-bind: 1.1.1 dev: true + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + /is-core-module/2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 dev: true + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -796,6 +1000,11 @@ packages: hasBin: true dev: true + /lilconfig/2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + /loose-envify/1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -816,6 +1025,23 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimist/1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true @@ -830,6 +1056,21 @@ packages: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} dev: true + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range/0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -838,6 +1079,77 @@ packages: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify/2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-import/14.1.0_postcss@8.4.21: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true + + /postcss-js/4.0.1_postcss@8.4.21: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.21 + dev: true + + /postcss-load-config/3.1.4_postcss@8.4.21: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.21 + yaml: 1.10.2 + dev: true + + /postcss-nested/6.0.0_postcss@8.4.21: + resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /postcss-selector-parser/6.0.11: + resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss/8.4.21: resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} engines: {node: ^10 || ^12 || >=14} @@ -847,6 +1159,15 @@ packages: source-map-js: 1.0.2 dev: true + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + /react-dom/18.2.0_react@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -869,6 +1190,19 @@ packages: loose-envify: 1.4.0 dev: false + /read-cache/1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true @@ -878,6 +1212,11 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + /rollup/3.18.0: resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -886,6 +1225,12 @@ packages: fsevents: 2.3.2 dev: true + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + /scheduler/0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -914,11 +1259,52 @@ packages: engines: {node: '>= 0.4'} dev: true + /tailwindcss/3.2.7_postcss@8.4.21: + resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} + engines: {node: '>=12.13.0'} + hasBin: true + peerDependencies: + postcss: ^8.0.9 + dependencies: + arg: 5.0.2 + chokidar: 3.5.3 + color-name: 1.1.4 + detective: 5.2.1 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.2.12 + glob-parent: 6.0.2 + is-glob: 4.0.3 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-import: 14.1.0_postcss@8.4.21 + postcss-js: 4.0.1_postcss@8.4.21 + postcss-load-config: 3.1.4_postcss@8.4.21 + postcss-nested: 6.0.0_postcss@8.4.21 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + quick-lru: 5.1.1 + resolve: 1.22.1 + transitivePeerDependencies: + - ts-node + dev: true + /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: true + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + /typescript/4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -936,6 +1322,10 @@ packages: picocolors: 1.0.0 dev: true + /util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + /vite/4.1.4_@types+node@18.14.5: resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -970,6 +1360,16 @@ packages: fsevents: 2.3.2 dev: true + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true diff --git a/gui/postcss.config.cjs b/gui/postcss.config.cjs new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/gui/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/gui/src/main.css b/gui/src/main.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/gui/src/main.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/gui/src/main.tsx b/gui/src/main.tsx index fa1b97e..9ad6d41 100644 --- a/gui/src/main.tsx +++ b/gui/src/main.tsx @@ -1,6 +1,7 @@ import React from "react"; import ReactDOM from "react-dom/client"; import App from "./App"; +import "./main.css"; import "./styles.css"; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( diff --git a/gui/tailwind.config.cjs b/gui/tailwind.config.cjs new file mode 100644 index 0000000..a4cfc88 --- /dev/null +++ b/gui/tailwind.config.cjs @@ -0,0 +1,10 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} From bafec72d377fc02b0f7e265d06d07604940f14f0 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 21:11:16 +0800 Subject: [PATCH 04/49] build: bundle deno executable --- deno.json | 17 +++++++++++++++-- gui/.gitignore | 3 ++- gui/scripts/compile.sh | 7 +++++++ gui/src-tauri/Cargo.lock | 22 ++++++++++++++++++++++ gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/tauri.conf.json | 15 ++++++++++++++- 6 files changed, 61 insertions(+), 5 deletions(-) create mode 100755 gui/scripts/compile.sh diff --git a/deno.json b/deno.json index 7e1ce52..372c8f9 100644 --- a/deno.json +++ b/deno.json @@ -14,8 +14,21 @@ "cache/", ".vscode/", ".github/", - "profile.json" + "profile.json", + "gui/" + ] + } + }, + "lint": { + "files": { + "exclude": [ + "export/", + "cache/", + ".vscode/", + ".github/", + "profile.json", + "gui/" ] } } -} +} \ No newline at end of file diff --git a/gui/.gitignore b/gui/.gitignore index a547bf3..e002aa5 100644 --- a/gui/.gitignore +++ b/gui/.gitignore @@ -11,6 +11,7 @@ node_modules dist dist-ssr *.local +binaries/ # Editor directories and files .vscode/* @@ -21,4 +22,4 @@ dist-ssr *.ntvs* *.njsproj *.sln -*.sw? +*.sw? \ No newline at end of file diff --git a/gui/scripts/compile.sh b/gui/scripts/compile.sh new file mode 100755 index 0000000..047b8a3 --- /dev/null +++ b/gui/scripts/compile.sh @@ -0,0 +1,7 @@ +TARGETS="x86_64-unknown-linux-gnu,x86_64-pc-windows-msvc,x86_64-apple-darwin,aarch64-apple-darwin" + +# compile for every target in bash +for target in $(echo $TARGETS | sed "s/,/ /g") +do + deno compile --target=$target -o ./binaries/s3si-$target ../s3si.ts +done diff --git a/gui/src-tauri/Cargo.lock b/gui/src-tauri/Cargo.lock index d6b24b8..c353fed 100644 --- a/gui/src-tauri/Cargo.lock +++ b/gui/src-tauri/Cargo.lock @@ -1504,6 +1504,16 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "os_pipe" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53dbb20faf34b16087a931834cba2d7a73cc74af2b7ef345a4c8324e2409a12" +dependencies = [ + "libc", + "windows-sys 0.45.0", +] + [[package]] name = "overload" version = "0.1.1" @@ -2187,6 +2197,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shared_child" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "siphasher" version = "0.3.10" @@ -2399,6 +2419,7 @@ dependencies = [ "objc", "once_cell", "open", + "os_pipe", "percent-encoding", "rand 0.8.5", "raw-window-handle", @@ -2408,6 +2429,7 @@ dependencies = [ "serde_json", "serde_repr", "serialize-to-javascript", + "shared_child", "state", "tar", "tauri-macros", diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index ed7664a..029e010 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" tauri-build = { version = "1.2", features = [] } [dependencies] -tauri = { version = "1.2", features = ["shell-open"] } +tauri = { version = "1.2", features = ["shell-open", "shell-sidecar"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index b3bfd75..16fb8b0 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -14,6 +14,16 @@ "allowlist": { "all": false, "shell": { + "sidecar": true, + "scope": [ + { + "name": "../binaries/s3si", + "sidecar": true, + "args": [ + "--daemon" + ] + } + ], "all": false, "open": true } @@ -28,7 +38,10 @@ "icons/icon.ico" ], "identifier": "cn.imspace.s3si.ts", - "targets": "all" + "targets": "all", + "externalBin": [ + "../binaries/s3si" + ] }, "security": { "csp": null From 401fd35bd0d6beaae438a8b0756269829c90eaf1 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 21:29:36 +0800 Subject: [PATCH 05/49] refactor: move css --- gui/package.json | 3 +- gui/pnpm-lock.yaml | 30 +++++++++++ gui/public/tauri.svg | 6 --- gui/public/vite.svg | 1 - gui/src/App.css | 7 --- gui/src/App.tsx | 26 +--------- gui/src/assets/react.svg | 1 - gui/src/main.css | 23 +++++++++ gui/src/main.tsx | 6 ++- gui/src/styles.css | 109 --------------------------------------- 10 files changed, 60 insertions(+), 152 deletions(-) delete mode 100644 gui/public/tauri.svg delete mode 100644 gui/public/vite.svg delete mode 100644 gui/src/App.css delete mode 100644 gui/src/assets/react.svg delete mode 100644 gui/src/styles.css diff --git a/gui/package.json b/gui/package.json index 99809d9..8671ce4 100644 --- a/gui/package.json +++ b/gui/package.json @@ -12,7 +12,8 @@ "dependencies": { "@tauri-apps/api": "^1.2.0", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-router-dom": "^6.8.2" }, "devDependencies": { "@tauri-apps/cli": "^1.2.3", diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index df3c977..b2ad054 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -11,6 +11,7 @@ specifiers: postcss: ^8.4.21 react: ^18.2.0 react-dom: ^18.2.0 + react-router-dom: ^6.8.2 tailwindcss: ^3.2.7 typescript: ^4.9.5 vite: ^4.1.4 @@ -19,6 +20,7 @@ dependencies: '@tauri-apps/api': 1.2.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 + react-router-dom: 6.8.2_biqbaboplfbrettd7655fr4n2y devDependencies: '@tauri-apps/cli': 1.2.3 @@ -519,6 +521,11 @@ packages: fastq: 1.15.0 dev: true + /@remix-run/router/1.3.3: + resolution: {integrity: sha512-YRHie1yQEj0kqqCTCJEfHqYSSNlZQ696QJG+MMiW4mxSl9I0ojz/eRhJS4fs88Z5i6D1SmoF9d3K99/QOhI8/w==} + engines: {node: '>=14'} + dev: false + /@tauri-apps/api/1.2.0: resolution: {integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} @@ -1183,6 +1190,29 @@ packages: engines: {node: '>=0.10.0'} dev: true + /react-router-dom/6.8.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-N/oAF1Shd7g4tWy+75IIufCGsHBqT74tnzHQhbiUTYILYF0Blk65cg+HPZqwC+6SqEyx033nKqU7by38v3lBZg==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.3.3 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-router: 6.8.2_react@18.2.0 + dev: false + + /react-router/6.8.2_react@18.2.0: + resolution: {integrity: sha512-lF7S0UmXI5Pd8bmHvMdPKI4u4S5McxmHnzJhrYi9ZQ6wE+DA8JN5BzVC5EEBuduWWDaiJ8u6YhVOCmThBli+rw==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.3.3 + react: 18.2.0 + dev: false + /react/18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} diff --git a/gui/public/tauri.svg b/gui/public/tauri.svg deleted file mode 100644 index 31b62c9..0000000 --- a/gui/public/tauri.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/gui/public/vite.svg b/gui/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/gui/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/gui/src/App.css b/gui/src/App.css deleted file mode 100644 index a89ebd1..0000000 --- a/gui/src/App.css +++ /dev/null @@ -1,7 +0,0 @@ -.logo.vite:hover { - filter: drop-shadow(0 0 2em #747bff); -} - -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafb); -} diff --git a/gui/src/App.tsx b/gui/src/App.tsx index 9ebfdd0..0c49c26 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,17 +1,9 @@ import { useState } from "react"; import reactLogo from "./assets/react.svg"; import { invoke } from "@tauri-apps/api/tauri"; -import "./App.css"; +import { Routes, Route, Outlet, Link } from "react-router-dom"; function App() { - const [greetMsg, setGreetMsg] = useState(""); - const [name, setName] = useState(""); - - async function greet() { - // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command - setGreetMsg(await invoke("greet", { name })); - } - return (

Welcome to Tauri!

@@ -28,24 +20,8 @@ function App() {
-

Click on the Tauri, Vite, and React logos to learn more.

-
-
{ - e.preventDefault(); - greet(); - }} - > - setName(e.currentTarget.value)} - placeholder="Enter a name..." - /> - -
-

{greetMsg}

); } diff --git a/gui/src/assets/react.svg b/gui/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/gui/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/gui/src/main.css b/gui/src/main.css index b5c61c9..ff783bb 100644 --- a/gui/src/main.css +++ b/gui/src/main.css @@ -1,3 +1,26 @@ @tailwind base; @tailwind components; @tailwind utilities; + +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color: #0f0f0f; + background-color: #f6f6f6; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +@media (prefers-color-scheme: dark) { + :root { + color: #f6f6f6; + background-color: #2f2f2f; + } +} diff --git a/gui/src/main.tsx b/gui/src/main.tsx index 9ad6d41..ca1c41e 100644 --- a/gui/src/main.tsx +++ b/gui/src/main.tsx @@ -1,11 +1,13 @@ import React from "react"; import ReactDOM from "react-dom/client"; +import { BrowserRouter } from "react-router-dom"; import App from "./App"; import "./main.css"; -import "./styles.css"; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( - + + + ); diff --git a/gui/src/styles.css b/gui/src/styles.css deleted file mode 100644 index f7de85b..0000000 --- a/gui/src/styles.css +++ /dev/null @@ -1,109 +0,0 @@ -:root { - font-family: Inter, Avenir, Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 400; - - color: #0f0f0f; - background-color: #f6f6f6; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; -} - -.container { - margin: 0; - padding-top: 10vh; - display: flex; - flex-direction: column; - justify-content: center; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: 0.75s; -} - -.logo.tauri:hover { - filter: drop-shadow(0 0 2em #24c8db); -} - -.row { - display: flex; - justify-content: center; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} - -a:hover { - color: #535bf2; -} - -h1 { - text-align: center; -} - -input, -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - color: #0f0f0f; - background-color: #ffffff; - transition: border-color 0.25s; - box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); -} - -button { - cursor: pointer; -} - -button:hover { - border-color: #396cd8; -} -button:active { - border-color: #396cd8; - background-color: #e8e8e8; -} - -input, -button { - outline: none; -} - -#greet-input { - margin-right: 5px; -} - -@media (prefers-color-scheme: dark) { - :root { - color: #f6f6f6; - background-color: #2f2f2f; - } - - a:hover { - color: #24c8db; - } - - input, - button { - color: #ffffff; - background-color: #0f0f0f98; - } - button:active { - background-color: #0f0f0f69; - } -} From b76faea13324bee713afc8766d6812c459bac95b Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 22:06:14 +0800 Subject: [PATCH 06/49] build: add baseUrl --- gui/.editorconfig | 12 ++++++++++++ gui/package.json | 3 ++- gui/pnpm-lock.yaml | 30 ++++++++++++++++++++++++++++++ gui/src/App.tsx | 33 +++++++++++---------------------- gui/src/components/Layout.tsx | 10 ++++++++++ gui/src/pages/Home.tsx | 7 +++++++ gui/tsconfig.json | 1 + gui/vite.config.ts | 3 ++- 8 files changed, 75 insertions(+), 24 deletions(-) create mode 100644 gui/.editorconfig create mode 100644 gui/src/components/Layout.tsx create mode 100644 gui/src/pages/Home.tsx diff --git a/gui/.editorconfig b/gui/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/gui/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/gui/package.json b/gui/package.json index 8671ce4..df6a522 100644 --- a/gui/package.json +++ b/gui/package.json @@ -25,6 +25,7 @@ "postcss": "^8.4.21", "tailwindcss": "^3.2.7", "typescript": "^4.9.5", - "vite": "^4.1.4" + "vite": "^4.1.4", + "vite-tsconfig-paths": "^4.0.5" } } \ No newline at end of file diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index b2ad054..f64e8d2 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -15,6 +15,7 @@ specifiers: tailwindcss: ^3.2.7 typescript: ^4.9.5 vite: ^4.1.4 + vite-tsconfig-paths: ^4.0.5 dependencies: '@tauri-apps/api': 1.2.0 @@ -33,6 +34,7 @@ devDependencies: tailwindcss: 3.2.7_postcss@8.4.21 typescript: 4.9.5 vite: 4.1.4_@types+node@18.14.5 + vite-tsconfig-paths: 4.0.5_typescript@4.9.5 packages: @@ -950,6 +952,10 @@ packages: engines: {node: '>=4'} dev: true + /globrex/0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -1335,6 +1341,19 @@ packages: is-number: 7.0.0 dev: true + /tsconfck/2.0.3_typescript@4.9.5: + resolution: {integrity: sha512-o3DsPZO1+C98KqHMdAbWs30zpxD30kj8r9OLA4ML1yghx4khNDzaaShNalfluh8ZPPhzKe3qyVCP1HiZszSAsw==} + engines: {node: ^14.13.1 || ^16 || >=18} + hasBin: true + peerDependencies: + typescript: ^4.3.5 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.5 + dev: true + /typescript/4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -1356,6 +1375,17 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true + /vite-tsconfig-paths/4.0.5_typescript@4.9.5: + resolution: {integrity: sha512-/L/eHwySFYjwxoYt1WRJniuK/jPv+WGwgRGBYx3leciR5wBeqntQpUE6Js6+TJemChc+ter7fDBKieyEWDx4yQ==} + dependencies: + debug: 4.3.4 + globrex: 0.1.2 + tsconfck: 2.0.3_typescript@4.9.5 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /vite/4.1.4_@types+node@18.14.5: resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} diff --git a/gui/src/App.tsx b/gui/src/App.tsx index 0c49c26..f6983f5 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,28 +1,17 @@ -import { useState } from "react"; -import reactLogo from "./assets/react.svg"; -import { invoke } from "@tauri-apps/api/tauri"; -import { Routes, Route, Outlet, Link } from "react-router-dom"; +import { + +} from "@tauri-apps/api/window"; +import { Routes, Route } from "react-router-dom"; +import { Layout } from "components/Layout"; +import { Home } from "pages/Home"; function App() { return ( -
-

Welcome to Tauri!

- - - -
-
-
+ + }> + } /> + + ); } diff --git a/gui/src/components/Layout.tsx b/gui/src/components/Layout.tsx new file mode 100644 index 0000000..df11dda --- /dev/null +++ b/gui/src/components/Layout.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { Outlet } from "react-router-dom"; + +export const Layout: React.FC = () => { + return ( +
+ +
+ ); +}; \ No newline at end of file diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx new file mode 100644 index 0000000..1f2efc8 --- /dev/null +++ b/gui/src/pages/Home.tsx @@ -0,0 +1,7 @@ +import React from 'react' + +export const Home: React.FC = ({ }) => { + return <> + Hello world! + +} \ No newline at end of file diff --git a/gui/tsconfig.json b/gui/tsconfig.json index 3d0a51a..7959a47 100644 --- a/gui/tsconfig.json +++ b/gui/tsconfig.json @@ -3,6 +3,7 @@ "target": "ESNext", "useDefineForClassFields": true, "lib": ["DOM", "DOM.Iterable", "ESNext"], + "baseUrl": "src", "allowJs": false, "skipLibCheck": true, "esModuleInterop": false, diff --git a/gui/vite.config.ts b/gui/vite.config.ts index ee4440d..5067e19 100644 --- a/gui/vite.config.ts +++ b/gui/vite.config.ts @@ -1,9 +1,10 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; +import tsconfigPaths from 'vite-tsconfig-paths' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [react(), tsconfigPaths()], // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` // prevent vite from obscuring rust errors From beee24e367b607cfc4095c9a57df7ce11cb67685 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 22:13:09 +0800 Subject: [PATCH 07/49] build: add -A to `deno compile` --- gui/scripts/compile.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/scripts/compile.sh b/gui/scripts/compile.sh index 047b8a3..74b8e45 100755 --- a/gui/scripts/compile.sh +++ b/gui/scripts/compile.sh @@ -3,5 +3,5 @@ TARGETS="x86_64-unknown-linux-gnu,x86_64-pc-windows-msvc,x86_64-apple-darwin,aar # compile for every target in bash for target in $(echo $TARGETS | sed "s/,/ /g") do - deno compile --target=$target -o ./binaries/s3si-$target ../s3si.ts + deno compile --target=$target -o ./binaries/s3si-$target -A ../s3si.ts done From a39e7df0696cffb3c41e197d143200ea81e6b2dc Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 3 Mar 2023 22:29:46 +0800 Subject: [PATCH 08/49] feat: add Loading component --- gui/package.json | 1 + gui/pnpm-lock.yaml | 10 ++++++++++ gui/src/components/Loading.tsx | 9 +++++++++ gui/src/pages/Home.tsx | 3 ++- 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 gui/src/components/Loading.tsx diff --git a/gui/package.json b/gui/package.json index df6a522..5bda570 100644 --- a/gui/package.json +++ b/gui/package.json @@ -13,6 +13,7 @@ "@tauri-apps/api": "^1.2.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-icons": "^4.8.0", "react-router-dom": "^6.8.2" }, "devDependencies": { diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index f64e8d2..c2b5f39 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -11,6 +11,7 @@ specifiers: postcss: ^8.4.21 react: ^18.2.0 react-dom: ^18.2.0 + react-icons: ^4.8.0 react-router-dom: ^6.8.2 tailwindcss: ^3.2.7 typescript: ^4.9.5 @@ -21,6 +22,7 @@ dependencies: '@tauri-apps/api': 1.2.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 + react-icons: 4.8.0_react@18.2.0 react-router-dom: 6.8.2_biqbaboplfbrettd7655fr4n2y devDependencies: @@ -1191,6 +1193,14 @@ packages: scheduler: 0.23.0 dev: false + /react-icons/4.8.0_react@18.2.0: + resolution: {integrity: sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==} + peerDependencies: + react: '*' + dependencies: + react: 18.2.0 + dev: false + /react-refresh/0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} diff --git a/gui/src/components/Loading.tsx b/gui/src/components/Loading.tsx new file mode 100644 index 0000000..5a090a2 --- /dev/null +++ b/gui/src/components/Loading.tsx @@ -0,0 +1,9 @@ +import React from 'react' +import { AiOutlineLoading3Quarters } from 'react-icons/ai'; + +type LoadingProps = { +} + +export const Loading: React.FC = ({ }) => { + return +} diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 1f2efc8..b788ce9 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,7 +1,8 @@ +import { Loading } from 'components/Loading' import React from 'react' export const Home: React.FC = ({ }) => { return <> - Hello world! + Hello world! } \ No newline at end of file From 586df102a9c29a1f7789b114af3165959f46813b Mon Sep 17 00:00:00 2001 From: imspace Date: Sat, 4 Mar 2023 17:48:01 +0800 Subject: [PATCH 09/49] refactor: rewrite compile script in ts --- deno.lock | 11 +++++++++++ gui/scripts/compile.sh | 7 ------- scripts/compile.ts | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 7 deletions(-) delete mode 100755 gui/scripts/compile.sh create mode 100644 scripts/compile.ts diff --git a/deno.lock b/deno.lock index 27fbada..471fe72 100644 --- a/deno.lock +++ b/deno.lock @@ -40,6 +40,17 @@ "https://deno.land/std@0.160.0/uuid/v1.ts": "7123410ef9ce980a4f2e54a586ccde5ed7063f6f119a70d86eebd92f8e100295", "https://deno.land/std@0.160.0/uuid/v4.ts": "3e983c6ac895ea2a7ba03da927a2438fe1c26ac43fb38dc44f2f8aa50c23cb53", "https://deno.land/std@0.160.0/uuid/v5.ts": "43973aeda44ad212f2ec9b8d6c042b74d5cef4ce583d6aa6fc4cdb339344c74c", + "https://deno.land/std@0.178.0/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462", + "https://deno.land/std@0.178.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.178.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.178.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.178.0/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", + "https://deno.land/std@0.178.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.178.0/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", + "https://deno.land/std@0.178.0/path/mod.ts": "4b83694ac500d7d31b0cdafc927080a53dc0c3027eb2895790fb155082b0d232", + "https://deno.land/std@0.178.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", + "https://deno.land/std@0.178.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", + "https://deno.land/std@0.178.0/path/win32.ts": "d186344e5583bcbf8b18af416d13d82b35a317116e6460a5a3953508c3de5bba", "https://deno.land/x/another_cookiejar@v4.1.4/cookie.ts": "72d6a6633ea13dd2f13b53d9726735b194996353a958024072c4d6b077c97baf", "https://deno.land/x/another_cookiejar@v4.1.4/cookie_jar.ts": "9accd36e76929f2f06fa710d2165fb544703617245fa36ac63560b9fa2a22a25", "https://deno.land/x/another_cookiejar@v4.1.4/fetch_wrapper.ts": "d8918c0776413b2d4a675415727973390b4401a026f6dfdcffedce3296b5e0dc", diff --git a/gui/scripts/compile.sh b/gui/scripts/compile.sh deleted file mode 100755 index 74b8e45..0000000 --- a/gui/scripts/compile.sh +++ /dev/null @@ -1,7 +0,0 @@ -TARGETS="x86_64-unknown-linux-gnu,x86_64-pc-windows-msvc,x86_64-apple-darwin,aarch64-apple-darwin" - -# compile for every target in bash -for target in $(echo $TARGETS | sed "s/,/ /g") -do - deno compile --target=$target -o ./binaries/s3si-$target -A ../s3si.ts -done diff --git a/scripts/compile.ts b/scripts/compile.ts new file mode 100644 index 0000000..cbbb346 --- /dev/null +++ b/scripts/compile.ts @@ -0,0 +1,38 @@ +import * as path from "https://deno.land/std@0.178.0/path/mod.ts"; + +if (import.meta.main) { + const __dirname = path.dirname(path.fromFileUrl(import.meta.url)); + const TARGETS = [ + "x86_64-unknown-linux-gnu", + "x86_64-pc-windows-msvc", + "x86_64-apple-darwin", + "aarch64-apple-darwin", + ]; + + for (const target of TARGETS) { + //deno compile --target=$target -o ./binaries/s3si-$target -A ../s3si.ts + const p = Deno.run({ + cmd: [ + "deno", + "compile", + "--target", + target, + "-o", + `../gui/binaries/s3si-${target}`, + "-A", + "../s3si.ts", + ], + cwd: __dirname, + }); + const status = await p.status(); + if (!status.success) { + console.error( + "Failed to run deno compile for target", + target, + "code:", + status.code, + ); + Deno.exit(status.code); + } + } +} From abb46979da903efc503011199066485eb6aff47a Mon Sep 17 00:00:00 2001 From: imspace Date: Sat, 4 Mar 2023 19:19:24 +0800 Subject: [PATCH 10/49] refactor: show after render --- gui/index.html | 31 ++++++++++++++++++++----------- gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/tauri.conf.json | 13 ++++++++++++- gui/src/App.tsx | 8 +++++--- gui/src/main.tsx | 2 +- gui/src/pages/Home.tsx | 11 ++++++++++- 6 files changed, 49 insertions(+), 18 deletions(-) diff --git a/gui/index.html b/gui/index.html index 194012b..dcc8e25 100644 --- a/gui/index.html +++ b/gui/index.html @@ -1,14 +1,23 @@ - - - - - Tauri + React + TS - - -
- - - + + + + + Tauri + React + TS + + + +
+ + + + +
+ + + + \ No newline at end of file diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index 029e010..55bfee5 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" tauri-build = { version = "1.2", features = [] } [dependencies] -tauri = { version = "1.2", features = ["shell-open", "shell-sidecar"] } +tauri = { version = "1.2", features = ["shell-open", "shell-sidecar", "window-all"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 16fb8b0..6598587 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -26,6 +26,16 @@ ], "all": false, "open": true + }, + "window": { + "all": true + }, + "fs": { + "scope": [ + "$APPCONFIG", + "$APPDATA", + "$APPCACHE" + ] } }, "bundle": { @@ -55,7 +65,8 @@ "resizable": true, "title": "s3si.ts", "width": 800, - "height": 600 + "height": 600, + "visible": false } ] } diff --git a/gui/src/App.tsx b/gui/src/App.tsx index f6983f5..53ab39f 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,11 +1,13 @@ -import { - -} from "@tauri-apps/api/window"; +import { getCurrent } from "@tauri-apps/api/window"; import { Routes, Route } from "react-router-dom"; import { Layout } from "components/Layout"; import { Home } from "pages/Home"; +import { useEffect } from "react"; function App() { + useEffect(() => { + getCurrent().show() + }, []) return ( }> diff --git a/gui/src/main.tsx b/gui/src/main.tsx index ca1c41e..9937e2f 100644 --- a/gui/src/main.tsx +++ b/gui/src/main.tsx @@ -2,7 +2,6 @@ import React from "react"; import ReactDOM from "react-dom/client"; import { BrowserRouter } from "react-router-dom"; import App from "./App"; -import "./main.css"; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( @@ -11,3 +10,4 @@ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( ); + diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index b788ce9..20dcdc5 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,8 +1,17 @@ +import { WebviewWindow } from '@tauri-apps/api/window' import { Loading } from 'components/Loading' import React from 'react' export const Home: React.FC = ({ }) => { + const onClick = () => { + const webview = new WebviewWindow('theUniqueLabel', { + url: 'https://accounts.nintendo.com/', + resizable: false, + focus: true, + }) + }; return <> Hello world! + -} \ No newline at end of file +} From 259aa852d80f9032ae65ba4a424ccbdf3970acc0 Mon Sep 17 00:00:00 2001 From: imspace Date: Sat, 4 Mar 2023 21:10:30 +0800 Subject: [PATCH 11/49] feat: add ipc --- deno.lock | 1 + deps.ts | 1 + gui/src/ipc/index.ts | 2 ++ gui/src/ipc/stdio.ts | 48 +++++++++++++++++++++++++++++++++++++ gui/src/ipc/types.ts | 1 + gui/src/pages/Home.tsx | 11 ++++++++- s3si.ts | 8 ++++++- src/daemon.ts | 20 ++++++++++++++++ src/ipc/channel.ts | 54 ++++++++++++++++++++++++++++++++++++++++++ src/ipc/mod.ts | 2 ++ src/ipc/stdio.ts | 40 +++++++++++++++++++++++++++++++ src/ipc/types.ts | 10 ++++++++ 12 files changed, 196 insertions(+), 2 deletions(-) create mode 100644 gui/src/ipc/index.ts create mode 100644 gui/src/ipc/stdio.ts create mode 100644 gui/src/ipc/types.ts create mode 100644 src/daemon.ts create mode 100644 src/ipc/channel.ts create mode 100644 src/ipc/mod.ts create mode 100644 src/ipc/stdio.ts create mode 100644 src/ipc/types.ts diff --git a/deno.lock b/deno.lock index 471fe72..42a5e38 100644 --- a/deno.lock +++ b/deno.lock @@ -32,6 +32,7 @@ "https://deno.land/std@0.160.0/path/posix.ts": "6b63de7097e68c8663c84ccedc0fd977656eb134432d818ecd3a4e122638ac24", "https://deno.land/std@0.160.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", "https://deno.land/std@0.160.0/path/win32.ts": "ee8826dce087d31c5c81cd414714e677eb68febc40308de87a2ce4b40e10fb8d", + "https://deno.land/std@0.160.0/streams/conversion.ts": "328afbedee0a7e0c330ac4c7b4c1af569ee53974f970230f6a78f545b93abb9b", "https://deno.land/std@0.160.0/testing/_diff.ts": "a23e7fc2b4d8daa3e158fa06856bedf5334ce2a2831e8bf9e509717f455adb2c", "https://deno.land/std@0.160.0/testing/_format.ts": "cd11136e1797791045e639e9f0f4640d5b4166148796cad37e6ef75f7d7f3832", "https://deno.land/std@0.160.0/testing/asserts.ts": "1e340c589853e82e0807629ba31a43c84ebdcdeca910c4a9705715dfdb0f5ce8", diff --git a/deps.ts b/deps.ts index dd03979..e60c479 100644 --- a/deps.ts +++ b/deps.ts @@ -13,3 +13,4 @@ export * as path from "https://deno.land/std@0.160.0/path/mod.ts"; export { MultiProgressBar } from "https://deno.land/x/progress@v1.2.8/mod.ts"; export { Mutex } from "https://deno.land/x/semaphore@v1.1.1/mod.ts"; export type { DeepReadonly } from "https://deno.land/x/ts_essentials@v9.1.2/mod.ts"; +export { writeAll } from "https://deno.land/std@0.160.0/streams/conversion.ts"; diff --git a/gui/src/ipc/index.ts b/gui/src/ipc/index.ts new file mode 100644 index 0000000..d19e762 --- /dev/null +++ b/gui/src/ipc/index.ts @@ -0,0 +1,2 @@ +export { IPC } from './stdio'; +export type { Command } from './types'; diff --git a/gui/src/ipc/stdio.ts b/gui/src/ipc/stdio.ts new file mode 100644 index 0000000..2ff3e02 --- /dev/null +++ b/gui/src/ipc/stdio.ts @@ -0,0 +1,48 @@ +import { ExtractType } from "./types"; +import { Command, Child } from '@tauri-apps/api/shell' + +export class IPC { + queue: T[] = []; + waiting: ((value: T) => void)[] = []; + callback = (data: unknown) => { + const waiting = this.waiting.shift(); + if (waiting) { + waiting(data as T); + } else { + this.queue.push(data as T); + } + }; + child: Promise; + + constructor() { + const command = Command.sidecar('../binaries/s3si', ['--daemon']); + command.stdout.on('data', line => { + this.callback(JSON.parse(line)) + }) + this.child = command.spawn() + } + + async recvType( + type: K, + ): Promise> { + const data = await this.recv(); + if (data.type !== type) { + throw new Error(`Unexpected type: ${data.type}`); + } + return data as ExtractType; + } + async recv(): Promise { + return new Promise((resolve) => { + const data = this.queue.shift(); + if (data) { + resolve(data); + } else { + this.waiting.push(resolve); + } + }); + } + async send(data: T) { + const child = await this.child; + await child.write(JSON.stringify(data) + "\n") + } +} diff --git a/gui/src/ipc/types.ts b/gui/src/ipc/types.ts new file mode 100644 index 0000000..1986489 --- /dev/null +++ b/gui/src/ipc/types.ts @@ -0,0 +1 @@ +export type { Command, ExtractType } from '../../../src/ipc/types'; diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 20dcdc5..71c6540 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,6 +1,9 @@ +import React from 'react' import { WebviewWindow } from '@tauri-apps/api/window' import { Loading } from 'components/Loading' -import React from 'react' +import { IPC, Command } from 'ipc'; + +const ipc = new IPC(); export const Home: React.FC = ({ }) => { const onClick = () => { @@ -10,8 +13,14 @@ export const Home: React.FC = ({ }) => { focus: true, }) }; + const onHello = async () => { + await ipc.send({ type: 'hello', data: '1234' }); + const data = await ipc.recvType('hello'); + console.log(`hello`, data) + } return <> Hello world! + } diff --git a/s3si.ts b/s3si.ts index f904804..5020fa3 100644 --- a/s3si.ts +++ b/s3si.ts @@ -1,11 +1,12 @@ import { App, DEFAULT_OPTS } from "./src/app.ts"; +import { runDaemon } from "./src/daemon.ts"; import { showError } from "./src/utils.ts"; import { flags } from "./deps.ts"; const parseArgs = (args: string[]) => { const parsed = flags.parse(args, { string: ["profilePath", "exporter", "skipMode"], - boolean: ["help", "noProgress", "monitor", "withSummary"], + boolean: ["help", "noProgress", "monitor", "withSummary", "daemon"], alias: { "help": "h", "profilePath": ["p", "profile-path"], @@ -38,6 +39,11 @@ Options: ); Deno.exit(0); } +if (opts.daemon) { + await runDaemon(); + + Deno.exit(0); +} const app = new App({ ...DEFAULT_OPTS, diff --git a/src/daemon.ts b/src/daemon.ts new file mode 100644 index 0000000..62ffdfe --- /dev/null +++ b/src/daemon.ts @@ -0,0 +1,20 @@ +import { IPC } from "./ipc/mod.ts"; +import { Command } from "./ipc/types.ts"; + +export async function runDaemon() { + const ipc = new IPC({ + reader: Deno.stdin, + writer: Deno.stdout, + }); + + while (true) { + const cmd = await ipc.recv(); + switch (cmd.type) { + case "hello": + await ipc.send(cmd); + break; + default: + continue; + } + } +} diff --git a/src/ipc/channel.ts b/src/ipc/channel.ts new file mode 100644 index 0000000..a1eece1 --- /dev/null +++ b/src/ipc/channel.ts @@ -0,0 +1,54 @@ +/// +/// +/// +/// +/// + +import type { ExtractType } from "./types.ts"; + +export class WorkerChannel { + queue: T[] = []; + waiting: ((value: T) => void)[] = []; + + constructor(private worker?: Worker) { + const callback = ({ data }: { data: unknown }) => { + const waiting = this.waiting.shift(); + if (waiting) { + waiting(data as T); + } else { + this.queue.push(data as T); + } + }; + if (worker) { + worker.addEventListener("message", callback); + } else { + self.addEventListener("message", callback); + } + } + async recvType( + type: K, + ): Promise> { + const data = await this.recv(); + if (data.type !== type) { + throw new Error(`Unexpected type: ${data.type}`); + } + return data as ExtractType; + } + recv(): Promise { + return new Promise((resolve) => { + const data = this.queue.shift(); + if (data) { + resolve(data); + } else { + this.waiting.push(resolve); + } + }); + } + send(data: T) { + if (this.worker) { + this.worker.postMessage(data); + } else { + self.postMessage(data); + } + } +} diff --git a/src/ipc/mod.ts b/src/ipc/mod.ts new file mode 100644 index 0000000..39d68ba --- /dev/null +++ b/src/ipc/mod.ts @@ -0,0 +1,2 @@ +export { IPC } from "./stdio.ts"; +export { WorkerChannel } from "./channel.ts"; diff --git a/src/ipc/stdio.ts b/src/ipc/stdio.ts new file mode 100644 index 0000000..eaabbd2 --- /dev/null +++ b/src/ipc/stdio.ts @@ -0,0 +1,40 @@ +/// + +import { io, writeAll } from "../../deps.ts"; +import type { ExtractType } from "./types.ts"; + +export class IPC { + lines: AsyncIterableIterator; + writer: Deno.Writer; + constructor({ reader, writer }: { + reader: Deno.Reader; + writer: Deno.Writer; + }) { + this.lines = io.readLines(reader); + this.writer = writer; + } + async recvType( + type: K, + ): Promise> { + const data = await this.recv(); + if (data.type !== type) { + throw new Error(`Unexpected type: ${data.type}`); + } + return data as ExtractType; + } + async recv(): Promise { + const result = await this.lines.next(); + + if (!result.done) { + return JSON.parse(result.value); + } + + throw new Error("EOF"); + } + async send(data: T) { + await writeAll( + this.writer, + new TextEncoder().encode(JSON.stringify(data) + "\n"), + ); + } +} diff --git a/src/ipc/types.ts b/src/ipc/types.ts new file mode 100644 index 0000000..c19944d --- /dev/null +++ b/src/ipc/types.ts @@ -0,0 +1,10 @@ +export type Command = { + type: "hello"; + data: string; +}; + +export type ExtractType = + Extract< + T, + { type: K } + >; From 64e11aa389e95fe532653d3ddb4f4de68cfdaddc Mon Sep 17 00:00:00 2001 From: imspace Date: Sat, 4 Mar 2023 21:31:08 +0800 Subject: [PATCH 12/49] feat: run daemon using deno when dev --- gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/tauri.conf.json | 11 +++++++++++ gui/src/ipc/stdio.ts | 5 ++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index 55bfee5..bb990f2 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" tauri-build = { version = "1.2", features = [] } [dependencies] -tauri = { version = "1.2", features = ["shell-open", "shell-sidecar", "window-all"] } +tauri = { version = "1.2", features = ["shell-execute", "shell-open", "shell-sidecar", "window-all"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 6598587..7261850 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -15,6 +15,7 @@ "all": false, "shell": { "sidecar": true, + "execute": true, "scope": [ { "name": "../binaries/s3si", @@ -22,6 +23,16 @@ "args": [ "--daemon" ] + }, + { + "name": "deno", + "cmd": "deno", + "args": [ + "run", + "-A", + "../../s3si.ts", + "--daemon" + ] } ], "all": false, diff --git a/gui/src/ipc/stdio.ts b/gui/src/ipc/stdio.ts index 2ff3e02..84481c9 100644 --- a/gui/src/ipc/stdio.ts +++ b/gui/src/ipc/stdio.ts @@ -15,10 +15,13 @@ export class IPC { child: Promise; constructor() { - const command = Command.sidecar('../binaries/s3si', ['--daemon']); + const command = import.meta.env.DEV ? new Command("deno", ["run", "-A", "../../s3si.ts", "--daemon"]) : Command.sidecar('../binaries/s3si', ['--daemon']); command.stdout.on('data', line => { this.callback(JSON.parse(line)) }) + command.stderr.on('data', line => { + console.error('daemon stderr', line) + }) this.child = command.spawn() } From 1890e3a2f40b6a63656cff2dfffa7cce17003d99 Mon Sep 17 00:00:00 2001 From: imspace Date: Sat, 4 Mar 2023 21:35:17 +0800 Subject: [PATCH 13/49] build: add favicon --- gui/public/favicon.ico | Bin 0 -> 44372 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 gui/public/favicon.ico diff --git a/gui/public/favicon.ico b/gui/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2f999eb2f17671b6f57cc7979b23b0aabb3f5b50 GIT binary patch literal 44372 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 literal 0 HcmV?d00001 From 8df1224ea95a13e7e3709ee317bcbddef54f5b16 Mon Sep 17 00:00:00 2001 From: imspace Date: Sun, 5 Mar 2023 20:01:48 +0800 Subject: [PATCH 14/49] feat: add jsonrpc --- gui/src-tauri/tauri.conf.json | 8 +- gui/src/ipc/stdio.ts | 4 +- s3si.ts | 8 +- scripts/compile.ts | 2 +- src/daemon.ts | 143 ++++++++++++++++++++++++++---- src/iksm.ts | 159 ++++++++++++++++++++++------------ src/ipc/channel.ts | 54 ------------ src/ipc/mod.ts | 1 - src/jsonrpc/channel.ts | 50 +++++++++++ src/jsonrpc/client.ts | 128 +++++++++++++++++++++++++++ src/jsonrpc/deno.ts | 32 +++++++ src/jsonrpc/jsonrpc.test.ts | 43 +++++++++ src/jsonrpc/mod.ts | 2 + src/jsonrpc/server.ts | 113 ++++++++++++++++++++++++ src/jsonrpc/types.ts | 66 ++++++++++++++ 15 files changed, 674 insertions(+), 139 deletions(-) delete mode 100644 src/ipc/channel.ts create mode 100644 src/jsonrpc/channel.ts create mode 100644 src/jsonrpc/client.ts create mode 100644 src/jsonrpc/deno.ts create mode 100644 src/jsonrpc/jsonrpc.test.ts create mode 100644 src/jsonrpc/mod.ts create mode 100644 src/jsonrpc/server.ts create mode 100644 src/jsonrpc/types.ts diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 7261850..ac5139d 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -19,10 +19,7 @@ "scope": [ { "name": "../binaries/s3si", - "sidecar": true, - "args": [ - "--daemon" - ] + "sidecar": true }, { "name": "deno", @@ -30,8 +27,7 @@ "args": [ "run", "-A", - "../../s3si.ts", - "--daemon" + "../../src/daemon.ts" ] } ], diff --git a/gui/src/ipc/stdio.ts b/gui/src/ipc/stdio.ts index 84481c9..d7d8eda 100644 --- a/gui/src/ipc/stdio.ts +++ b/gui/src/ipc/stdio.ts @@ -15,7 +15,9 @@ export class IPC { child: Promise; constructor() { - const command = import.meta.env.DEV ? new Command("deno", ["run", "-A", "../../s3si.ts", "--daemon"]) : Command.sidecar('../binaries/s3si', ['--daemon']); + const command = import.meta.env.DEV + ? new Command("deno", ["run", "-A", "../../src/daemon.ts"]) + : Command.sidecar('../binaries/s3si'); command.stdout.on('data', line => { this.callback(JSON.parse(line)) }) diff --git a/s3si.ts b/s3si.ts index 5020fa3..f904804 100644 --- a/s3si.ts +++ b/s3si.ts @@ -1,12 +1,11 @@ import { App, DEFAULT_OPTS } from "./src/app.ts"; -import { runDaemon } from "./src/daemon.ts"; import { showError } from "./src/utils.ts"; import { flags } from "./deps.ts"; const parseArgs = (args: string[]) => { const parsed = flags.parse(args, { string: ["profilePath", "exporter", "skipMode"], - boolean: ["help", "noProgress", "monitor", "withSummary", "daemon"], + boolean: ["help", "noProgress", "monitor", "withSummary"], alias: { "help": "h", "profilePath": ["p", "profile-path"], @@ -39,11 +38,6 @@ Options: ); Deno.exit(0); } -if (opts.daemon) { - await runDaemon(); - - Deno.exit(0); -} const app = new App({ ...DEFAULT_OPTS, diff --git a/scripts/compile.ts b/scripts/compile.ts index cbbb346..3964a73 100644 --- a/scripts/compile.ts +++ b/scripts/compile.ts @@ -20,7 +20,7 @@ if (import.meta.main) { "-o", `../gui/binaries/s3si-${target}`, "-A", - "../s3si.ts", + "../src/daemon.ts", ], cwd: __dirname, }); diff --git a/src/daemon.ts b/src/daemon.ts index 62ffdfe..92fd8c7 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -1,20 +1,131 @@ -import { IPC } from "./ipc/mod.ts"; -import { Command } from "./ipc/types.ts"; +// deno-lint-ignore-file no-empty-interface -export async function runDaemon() { - const ipc = new IPC({ - reader: Deno.stdin, - writer: Deno.stdout, +import { + JSONRPCServer, + ResponseError, + RPCResult, + Service, +} from "./jsonrpc/mod.ts"; +import { DenoIO } from "./jsonrpc/deno.ts"; +import { loginSteps } from "./iksm.ts"; +import { DEFAULT_ENV, Env } from "./env.ts"; +import { Queue } from "./jsonrpc/channel.ts"; + +export interface S3SINetworkError extends ResponseError<100> { +} + +export interface S3SIService { + loginSteps(): Promise< + RPCResult< + { + authCodeVerifier: string; + url: string; + }, + S3SINetworkError + > + >; + loginSteps(step2: { + authCodeVerifier: string; + login: string; + }): Promise< + RPCResult< + { + sessionToken: string; + }, + S3SINetworkError + > + >; +} + +enum LoggerLevel { + Debug = "debug", + Log = "log", + Warn = "warn", + Error = "error", +} + +class S3SIServiceImplement implements S3SIService, Service { + loginMap: Map void; + promise: Promise; + }> = new Map(); + loggerQueue: Queue<{ level: LoggerLevel; msg: unknown[] }> = new Queue(); + env: Env = { + prompts: { + promptLogin: () => { + return Promise.reject("Not implemented"); + }, + prompt: () => { + return Promise.reject("Not implemented"); + }, + }, + logger: { + debug: (...msg) => + this.loggerQueue.push({ level: LoggerLevel.Debug, msg }), + log: (...msg) => this.loggerQueue.push({ level: LoggerLevel.Log, msg }), + warn: (...msg) => this.loggerQueue.push({ level: LoggerLevel.Warn, msg }), + error: (...msg) => + this.loggerQueue.push({ level: LoggerLevel.Error, msg }), + }, + newFetcher: DEFAULT_ENV.newFetcher, + }; + + loginSteps(): Promise< + RPCResult< + { + authCodeVerifier: string; + url: string; + }, + S3SINetworkError + > + >; + loginSteps(step2: { + authCodeVerifier: string; + login: string; + }): Promise< + RPCResult< + { + sessionToken: string; + }, + S3SINetworkError + > + >; + async loginSteps(step2?: { + authCodeVerifier: string; + login: string; + }): Promise< + RPCResult< + { + authCodeVerifier: string; + url: string; + } | { + sessionToken: string; + }, + S3SINetworkError + > + > { + if (!step2) { + return { + result: await loginSteps(this.env), + }; + } + return { + result: await loginSteps(this.env, step2), + }; + } + // deno-lint-ignore no-explicit-any + [key: string]: any; +} + +if (import.meta.main) { + const service = new S3SIServiceImplement(); + const server = new JSONRPCServer({ + transport: new DenoIO({ + reader: Deno.stdin, + writer: Deno.stdout, + }), + service, }); - while (true) { - const cmd = await ipc.recv(); - switch (cmd.type) { - case "hello": - await ipc.send(cmd); - break; - default: - continue; - } - } + await server.serve(); } diff --git a/src/iksm.ts b/src/iksm.ts index 0690ae4..05ef440 100644 --- a/src/iksm.ts +++ b/src/iksm.ts @@ -8,70 +8,123 @@ import { import { APIError } from "./APIError.ts"; import { Env, Fetcher } from "./env.ts"; -export async function loginManually( - { newFetcher, prompts: { promptLogin } }: Env, -): Promise { +export async function loginSteps( + env: Env, +): Promise< + { + authCodeVerifier: string; + url: string; + } +>; +export async function loginSteps( + env: Env, + step2: { + authCodeVerifier: string; + login: string; + }, +): Promise< + { + sessionToken: string; + } +>; +export async function loginSteps( + { newFetcher }: Env, + step2?: { + authCodeVerifier: string; + login: string; + }, +): Promise< + { + authCodeVerifier: string; + url: string; + } | { + sessionToken: string; + } +> { const fetch = newFetcher(); - const state = urlBase64Encode(random(36)); - const authCodeVerifier = urlBase64Encode(random(32)); - const authCvHash = await crypto.subtle.digest( - "SHA-256", - new TextEncoder().encode(authCodeVerifier), - ); - const authCodeChallenge = urlBase64Encode(authCvHash); + if (!step2) { + const state = urlBase64Encode(random(36)); + const authCodeVerifier = urlBase64Encode(random(32)); + const authCvHash = await crypto.subtle.digest( + "SHA-256", + new TextEncoder().encode(authCodeVerifier), + ); + const authCodeChallenge = urlBase64Encode(authCvHash); - const body = { - "state": state, - "redirect_uri": "npf71b963c1b7b6d119://auth", - "client_id": "71b963c1b7b6d119", - "scope": "openid user user.birthday user.mii user.screenName", - "response_type": "session_token_code", - "session_token_code_challenge": authCodeChallenge, - "session_token_code_challenge_method": "S256", - "theme": "login_form", - }; - const url = "https://accounts.nintendo.com/connect/1.0.0/authorize?" + - new URLSearchParams(body); + const body = { + "state": state, + "redirect_uri": "npf71b963c1b7b6d119://auth", + "client_id": "71b963c1b7b6d119", + "scope": "openid user user.birthday user.mii user.screenName", + "response_type": "session_token_code", + "session_token_code_challenge": authCodeChallenge, + "session_token_code_challenge_method": "S256", + "theme": "login_form", + }; + const url = "https://accounts.nintendo.com/connect/1.0.0/authorize?" + + new URLSearchParams(body); - const res = await fetch.get( - { - url, - headers: { - "Host": "accounts.nintendo.com", - "Connection": "keep-alive", - "Cache-Control": "max-age=0", - "Upgrade-Insecure-Requests": "1", - "User-Agent": DEFAULT_APP_USER_AGENT, - "Accept": - "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8n", - "DNT": "1", - "Accept-Encoding": "gzip,deflate,br", + const res = await fetch.get( + { + url, + headers: { + "Host": "accounts.nintendo.com", + "Connection": "keep-alive", + "Cache-Control": "max-age=0", + "Upgrade-Insecure-Requests": "1", + "User-Agent": DEFAULT_APP_USER_AGENT, + "Accept": + "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8n", + "DNT": "1", + "Accept-Encoding": "gzip,deflate,br", + }, }, - }, - ); + ); - const login = (await promptLogin(res.url)).trim(); + return { + authCodeVerifier, + url: res.url, + }; + } else { + const { login, authCodeVerifier } = step2; + const loginURL = new URL(login); + const params = new URLSearchParams(loginURL.hash.substring(1)); + const sessionTokenCode = params.get("session_token_code"); + if (!sessionTokenCode) { + throw new Error("No session token code provided"); + } + + const sessionToken = await getSessionToken({ + fetch, + sessionTokenCode, + authCodeVerifier, + }); + if (!sessionToken) { + throw new Error("No session token found"); + } + + return { sessionToken }; + } +} + +export async function loginManually( + env: Env, +): Promise { + const { prompts: { promptLogin } } = env; + + const step1 = await loginSteps(env); + + const { url, authCodeVerifier } = step1; + + const login = (await promptLogin(url)).trim(); if (!login) { throw new Error("No login URL provided"); } - const loginURL = new URL(login); - const params = new URLSearchParams(loginURL.hash.substring(1)); - const sessionTokenCode = params.get("session_token_code"); - if (!sessionTokenCode) { - throw new Error("No session token code provided"); - } - const sessionToken = await getSessionToken({ - fetch, - sessionTokenCode, - authCodeVerifier, - }); - if (!sessionToken) { - throw new Error("No session token found"); - } + const step2 = await loginSteps(env, { authCodeVerifier, login }); - return sessionToken; + return step2.sessionToken; } export async function getGToken( diff --git a/src/ipc/channel.ts b/src/ipc/channel.ts deleted file mode 100644 index a1eece1..0000000 --- a/src/ipc/channel.ts +++ /dev/null @@ -1,54 +0,0 @@ -/// -/// -/// -/// -/// - -import type { ExtractType } from "./types.ts"; - -export class WorkerChannel { - queue: T[] = []; - waiting: ((value: T) => void)[] = []; - - constructor(private worker?: Worker) { - const callback = ({ data }: { data: unknown }) => { - const waiting = this.waiting.shift(); - if (waiting) { - waiting(data as T); - } else { - this.queue.push(data as T); - } - }; - if (worker) { - worker.addEventListener("message", callback); - } else { - self.addEventListener("message", callback); - } - } - async recvType( - type: K, - ): Promise> { - const data = await this.recv(); - if (data.type !== type) { - throw new Error(`Unexpected type: ${data.type}`); - } - return data as ExtractType; - } - recv(): Promise { - return new Promise((resolve) => { - const data = this.queue.shift(); - if (data) { - resolve(data); - } else { - this.waiting.push(resolve); - } - }); - } - send(data: T) { - if (this.worker) { - this.worker.postMessage(data); - } else { - self.postMessage(data); - } - } -} diff --git a/src/ipc/mod.ts b/src/ipc/mod.ts index 39d68ba..f0cfe10 100644 --- a/src/ipc/mod.ts +++ b/src/ipc/mod.ts @@ -1,2 +1 @@ export { IPC } from "./stdio.ts"; -export { WorkerChannel } from "./channel.ts"; diff --git a/src/jsonrpc/channel.ts b/src/jsonrpc/channel.ts new file mode 100644 index 0000000..d1ef783 --- /dev/null +++ b/src/jsonrpc/channel.ts @@ -0,0 +1,50 @@ +export class Queue { + queue: T[] = []; + waiting: ((value: T | undefined) => void)[] = []; + + pop = (): Promise => { + return new Promise((resolve) => { + const data = this.queue.shift(); + if (data) { + resolve(data); + } else { + this.waiting.push(resolve); + } + }); + }; + // TODO: wait until the data is queued if queue has limit + push = (data: T): Promise => { + const waiting = this.waiting.shift(); + if (waiting) { + waiting(data); + } else { + this.queue.push(data); + } + return Promise.resolve(); + }; + close = (): Promise => { + for (const resolve of this.waiting) { + resolve(undefined); + } + return Promise.resolve(); + }; +} + +export function channel() { + const q1 = new Queue(); + const q2 = new Queue(); + const close = async () => { + await q1.close(); + await q2.close(); + }; + + return [{ + send: q1.push, + recv: q2.pop, + close, + }, { + send: q2.push, + recv: q1.pop, + close, + }] as const; +} diff --git a/src/jsonrpc/client.ts b/src/jsonrpc/client.ts new file mode 100644 index 0000000..ccfe2ea --- /dev/null +++ b/src/jsonrpc/client.ts @@ -0,0 +1,128 @@ +// deno-lint-ignore-file no-explicit-any +import { + ID, + Request, + Response, + ResponseError, + RPCResult, + Service, + Transport, +} from "./types.ts"; + +export class JSONRPCClient { + protected nextId = 1; + protected transport: Transport; + protected requestMap: Map< + ID, + (result: RPCResult) => void + > = new Map(); + protected fatal: unknown = undefined; + protected task: Promise; + + constructor( + { transport }: { transport: Transport }, + ) { + this.transport = transport; + this.task = this.run(); + } + + protected setFatal(e: unknown) { + if (!this.fatal) { + this.fatal = e; + } + } + + protected handleResponse( + resp: Response, + ) { + const { id } = resp; + const callback = this.requestMap.get(id); + if (callback) { + this.requestMap.delete(id); + callback(resp); + } else { + this.setFatal(new Error("invalid response id: " + String(id))); + } + } + + // receive response from server + protected async run() { + try { + while (true) { + const data = await this.transport.recv(); + if (data === undefined) { + this.setFatal(new Error("transport closed")); + break; + } + const result = JSON.parse(data); + if (Array.isArray(result)) { + for (const resp of result) { + this.handleResponse(resp); + } + } else { + this.handleResponse(result); + } + } + } catch (e) { + this.setFatal(e); + } + } + + makeRequest< + K extends keyof S & string, + P extends Parameters, + >( + method: K, + params: P, + ): Request { + const req = { + jsonrpc: "2.0", + id: this.nextId, + method, + params, + } as const; + this.nextId += 1; + return req; + } + + async call< + K extends keyof S & string, + P extends Parameters, + R extends ReturnType, + >( + method: K, + ...params: P + ): Promise { + if (this.fatal) { + throw this.fatal; + } + const req = this.makeRequest(method, params); + await this.transport.send(JSON.stringify(req)); + + return new Promise((res, rej) => { + this.requestMap.set(req.id, (result) => { + if (result.error) { + rej(result.error); + } else { + res(result.result); + } + }); + }); + } + + getProxy(): S { + const proxy = new Proxy({}, { + get: (_, method: string) => { + return (...params: unknown[]) => { + return this.call(method, ...params as any); + }; + }, + }); + return proxy as S; + } + + async close() { + await this.transport.close(); + await this.task; + } +} diff --git a/src/jsonrpc/deno.ts b/src/jsonrpc/deno.ts new file mode 100644 index 0000000..d984990 --- /dev/null +++ b/src/jsonrpc/deno.ts @@ -0,0 +1,32 @@ +import { io, writeAll } from "../../deps.ts"; +import { Transport } from "./types.ts"; + +export class DenoIO implements Transport { + lines: AsyncIterableIterator; + writer: Deno.Writer & Deno.Closer; + constructor({ reader, writer }: { + reader: Deno.Reader; + writer: Deno.Writer & Deno.Closer; + }) { + this.lines = io.readLines(reader); + this.writer = writer; + } + async recv(): Promise { + const result = await this.lines.next(); + + if (!result.done) { + return JSON.parse(result.value); + } + + return undefined; + } + async send(data: string) { + await writeAll( + this.writer, + new TextEncoder().encode(data + "\n"), + ); + } + async close() { + await this.writer.close(); + } +} diff --git a/src/jsonrpc/jsonrpc.test.ts b/src/jsonrpc/jsonrpc.test.ts new file mode 100644 index 0000000..b150b03 --- /dev/null +++ b/src/jsonrpc/jsonrpc.test.ts @@ -0,0 +1,43 @@ +import { channel } from "./channel.ts"; +import { JSONRPCClient } from "./client.ts"; +import { JSONRPCServer } from "./server.ts"; +import { RPCResult, Service } from "./types.ts"; +import { assertEquals } from "../../dev_deps.ts"; + +export interface SimpleService { + add(a: number, b: number): Promise< + RPCResult + >; + // deno-lint-ignore no-explicit-any + [key: string]: any; +} + +class SimpleServiceImplement implements SimpleService, Service { + async add(a: number, b: number): Promise> { + return { + result: a + b, + }; + } + // deno-lint-ignore no-explicit-any + [key: string]: any; +} + +Deno.test("jsonrpc", async () => { + const [c1, c2] = channel(); + + const service = new SimpleServiceImplement(); + const server = new JSONRPCServer({ + transport: c1, + service, + }); + const serverTask = server.serve().catch((e) => console.error(e)); + const client = new JSONRPCClient({ + transport: c2, + }); + const p = client.getProxy(); + assertEquals((await p.add(1, 2)).result, 3); + + await client.close(); + await server.close(); + await serverTask; +}); diff --git a/src/jsonrpc/mod.ts b/src/jsonrpc/mod.ts new file mode 100644 index 0000000..ccdf324 --- /dev/null +++ b/src/jsonrpc/mod.ts @@ -0,0 +1,2 @@ +export * from "./types.ts"; +export * from "./server.ts"; diff --git a/src/jsonrpc/server.ts b/src/jsonrpc/server.ts new file mode 100644 index 0000000..efdca86 --- /dev/null +++ b/src/jsonrpc/server.ts @@ -0,0 +1,113 @@ +// deno-lint-ignore-file no-explicit-any +import { + ERROR_INVALID_REQUEST, + ERROR_METHOD_NOT_FOUND, + ERROR_PARSEE_ERROR, + ID, + Request, + Response, + ResponseError, + Service, + Transport, +} from "./types.ts"; + +export class JSONRPCServer { + protected transport: Transport; + protected service: Service; + protected fatal = false; + protected task: Promise = Promise.resolve(); + + constructor( + { transport, service }: { transport: Transport; service: Service }, + ) { + this.transport = transport; + this.service = service; + } + async handleRequest( + req: Request, + ): Promise> { + const { jsonrpc, id, method, params } = req; + const res = { + jsonrpc: "2.0", + id, + } as const; + if (jsonrpc !== "2.0") { + this.fatal = true; + return { + ...res, + error: ERROR_INVALID_REQUEST, + }; + } + + const func = this.service[method]; + if (!func) { + return { + ...res, + error: ERROR_METHOD_NOT_FOUND, + }; + } + + const result = await func(...params); + + return { + ...res, + result, + }; + } + // `handle` will never throw error + async handle( + data: string, + ): Promise | Response[]> { + let req: Request; + try { + req = JSON.parse(data); + } catch (_) { + this.fatal = true; + return { + jsonrpc: "2.0", + id: null, + error: ERROR_PARSEE_ERROR, + }; + } + + const internalError: (id: ID) => ( + e: unknown, + ) => Response> = (id) => + ( + e, + ) => ({ + jsonrpc: "2.0", + id: id, + error: { + code: 32000, + message: "Internal error", + data: e, + }, + }); + + // batch request + if (Array.isArray(req)) { + return await Promise.all( + req.map((req) => this.handleRequest(req).catch(internalError(req.id))), + ); + } else { + return await this.handleRequest(req).catch(internalError(req.id)); + } + } + async serve() { + while (!this.fatal) { + const data = await this.transport.recv(); + if (data === undefined) { + break; + } + this.handle(data).then((result) => + this.transport.send(JSON.stringify(result)) + ).catch((e) => { + console.error("Failed to handle request", e); + }); + } + } + async close() { + await this.transport.close(); + } +} diff --git a/src/jsonrpc/types.ts b/src/jsonrpc/types.ts new file mode 100644 index 0000000..b8b58c9 --- /dev/null +++ b/src/jsonrpc/types.ts @@ -0,0 +1,66 @@ +export type ID = string | number | null; + +// deno-lint-ignore no-explicit-any +export type ResponseError = { + code: Code; + message: string; + data?: Data; +}; + +export type Request = { + jsonrpc: "2.0"; + method: Method; + params: Params; + id: ID; +}; + +export type Notification = { + jsonrpc: "2.0"; + method: Method; + params: Params; +}; + +// deno-lint-ignore no-explicit-any +export type Response> = { + jsonrpc: "2.0"; + id: ID; +} & RPCResult; + +export type Transport = { + send: (data: string) => Promise; + recv: () => Promise; + close: () => Promise; +}; + +export type RPCResult = { + result?: Result; + error?: Error; +}; + +export type Service = { + [P in string]: ( + // deno-lint-ignore no-explicit-any + ...args: any[] + ) => Promise>; +}; + +export const ERROR_PARSEE_ERROR: ResponseError<-32700> = { + code: -32700, + message: "Parse error", +}; +export const ERROR_INVALID_REQUEST: ResponseError<-32600> = { + code: -32600, + message: "Invalid Request", +}; +export const ERROR_METHOD_NOT_FOUND: ResponseError<-32601> = { + code: -32601, + message: "Method not found", +}; +export const ERROR_INVALID_PARAMS: ResponseError<-32602> = { + code: -32602, + message: "Invalid params", +}; +export const ERROR_INTERNAL_ERROR: ResponseError<-32603> = { + code: -32603, + message: "Internal error", +}; From 80c0e26b3e0933cc6e6b2f4ada791b4a093fbde5 Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 6 Mar 2023 01:56:07 +0800 Subject: [PATCH 15/49] feat: add jsonrpc interface --- gui/src/ipc/index.ts | 2 - gui/src/ipc/types.ts | 1 - gui/src/jsonrpc/client.ts | 129 ++++++++++++++++++++++++++++++ gui/src/jsonrpc/index.ts | 3 + gui/src/{ipc => jsonrpc}/stdio.ts | 36 ++++----- gui/src/jsonrpc/types.ts | 1 + gui/src/pages/Home.tsx | 29 ++++--- src/daemon.ts | 51 ++---------- src/jsonrpc/deno.ts | 2 +- src/jsonrpc/jsonrpc.test.ts | 1 + src/jsonrpc/mod.ts | 2 + src/jsonrpc/server.ts | 4 +- src/jsonrpc/types.ts | 23 ++++++ 13 files changed, 200 insertions(+), 84 deletions(-) delete mode 100644 gui/src/ipc/index.ts delete mode 100644 gui/src/ipc/types.ts create mode 100644 gui/src/jsonrpc/client.ts create mode 100644 gui/src/jsonrpc/index.ts rename gui/src/{ipc => jsonrpc}/stdio.ts (51%) create mode 100644 gui/src/jsonrpc/types.ts diff --git a/gui/src/ipc/index.ts b/gui/src/ipc/index.ts deleted file mode 100644 index d19e762..0000000 --- a/gui/src/ipc/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { IPC } from './stdio'; -export type { Command } from './types'; diff --git a/gui/src/ipc/types.ts b/gui/src/ipc/types.ts deleted file mode 100644 index 1986489..0000000 --- a/gui/src/ipc/types.ts +++ /dev/null @@ -1 +0,0 @@ -export type { Command, ExtractType } from '../../../src/ipc/types'; diff --git a/gui/src/jsonrpc/client.ts b/gui/src/jsonrpc/client.ts new file mode 100644 index 0000000..d82d182 --- /dev/null +++ b/gui/src/jsonrpc/client.ts @@ -0,0 +1,129 @@ +// A copy of `../../../src/jsonrpc/client.ts` +// deno-lint-ignore-file no-explicit-any +import { + ID, + Request, + Response, + ResponseError, + RPCResult, + Service, + Transport, +} from "./types"; + +export class JSONRPCClient { + protected nextId = 1; + protected transport: Transport; + protected requestMap: Map< + ID, + (result: RPCResult) => void + > = new Map(); + protected fatal: unknown = undefined; + protected task: Promise; + + constructor( + { transport }: { transport: Transport }, + ) { + this.transport = transport; + this.task = this.run(); + } + + protected setFatal(e: unknown) { + if (!this.fatal) { + this.fatal = e; + } + } + + protected handleResponse( + resp: Response, + ) { + const { id } = resp; + const callback = this.requestMap.get(id); + if (callback) { + this.requestMap.delete(id); + callback(resp); + } else { + this.setFatal(new Error("invalid response id: " + String(id))); + } + } + + // receive response from server + protected async run() { + try { + while (true) { + const data = await this.transport.recv(); + if (data === undefined) { + this.setFatal(new Error("transport closed")); + break; + } + const result = JSON.parse(data); + if (Array.isArray(result)) { + for (const resp of result) { + this.handleResponse(resp); + } + } else { + this.handleResponse(result); + } + } + } catch (e) { + this.setFatal(e); + } + } + + makeRequest< + K extends keyof S & string, + P extends Parameters, + >( + method: K, + params: P, + ): Request { + const req = { + jsonrpc: "2.0", + id: this.nextId, + method, + params, + } as const; + this.nextId += 1; + return req; + } + + async call< + K extends keyof S & string, + P extends Parameters, + R extends ReturnType, + >( + method: K, + ...params: P + ): Promise { + if (this.fatal) { + throw this.fatal; + } + const req = this.makeRequest(method, params); + await this.transport.send(JSON.stringify(req)); + + return new Promise((res, rej) => { + this.requestMap.set(req.id, (result) => { + if (result.error) { + rej(result.error); + } else { + res(result.result); + } + }); + }); + } + + getProxy(): S { + const proxy = new Proxy({}, { + get: (_, method: string) => { + return (...params: unknown[]) => { + return this.call(method, ...params as any); + }; + }, + }); + return proxy as S; + } + + async close() { + await this.transport.close(); + await this.task; + } +} diff --git a/gui/src/jsonrpc/index.ts b/gui/src/jsonrpc/index.ts new file mode 100644 index 0000000..939c66d --- /dev/null +++ b/gui/src/jsonrpc/index.ts @@ -0,0 +1,3 @@ +export type { S3SIService } from './types' +export { JSONRPCClient } from './client' +export { StdioTransport } from './stdio' diff --git a/gui/src/ipc/stdio.ts b/gui/src/jsonrpc/stdio.ts similarity index 51% rename from gui/src/ipc/stdio.ts rename to gui/src/jsonrpc/stdio.ts index d7d8eda..a27e4c8 100644 --- a/gui/src/ipc/stdio.ts +++ b/gui/src/jsonrpc/stdio.ts @@ -1,15 +1,14 @@ -import { ExtractType } from "./types"; import { Command, Child } from '@tauri-apps/api/shell' -export class IPC { - queue: T[] = []; - waiting: ((value: T) => void)[] = []; - callback = (data: unknown) => { +export class StdioTransport { + queue: string[] = []; + waiting: ((value: string | undefined) => void)[] = []; + callback = (data: string) => { const waiting = this.waiting.shift(); if (waiting) { - waiting(data as T); + waiting(data); } else { - this.queue.push(data as T); + this.queue.push(data); } }; child: Promise; @@ -19,7 +18,7 @@ export class IPC { ? new Command("deno", ["run", "-A", "../../src/daemon.ts"]) : Command.sidecar('../binaries/s3si'); command.stdout.on('data', line => { - this.callback(JSON.parse(line)) + this.callback(line) }) command.stderr.on('data', line => { console.error('daemon stderr', line) @@ -27,17 +26,8 @@ export class IPC { this.child = command.spawn() } - async recvType( - type: K, - ): Promise> { - const data = await this.recv(); - if (data.type !== type) { - throw new Error(`Unexpected type: ${data.type}`); - } - return data as ExtractType; - } - async recv(): Promise { - return new Promise((resolve) => { + async recv(): Promise { + return new Promise((resolve) => { const data = this.queue.shift(); if (data) { resolve(data); @@ -46,8 +36,12 @@ export class IPC { } }); } - async send(data: T) { + async send(data: string) { const child = await this.child; - await child.write(JSON.stringify(data) + "\n") + await child.write(data + "\n") + } + async close() { + const child = await this.child; + await child.kill() } } diff --git a/gui/src/jsonrpc/types.ts b/gui/src/jsonrpc/types.ts new file mode 100644 index 0000000..bbd45ba --- /dev/null +++ b/gui/src/jsonrpc/types.ts @@ -0,0 +1 @@ +export * from '../../../src/jsonrpc/types'; diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 71c6540..f320709 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,26 +1,29 @@ import React from 'react' import { WebviewWindow } from '@tauri-apps/api/window' import { Loading } from 'components/Loading' -import { IPC, Command } from 'ipc'; +import { JSONRPCClient, S3SIService, StdioTransport } from 'jsonrpc'; -const ipc = new IPC(); +const client = new JSONRPCClient({ + transport: new StdioTransport() +}).getProxy(); export const Home: React.FC = ({ }) => { - const onClick = () => { - const webview = new WebviewWindow('theUniqueLabel', { - url: 'https://accounts.nintendo.com/', - resizable: false, - focus: true, - }) - }; const onHello = async () => { - await ipc.send({ type: 'hello', data: '1234' }); - const data = await ipc.recvType('hello'); - console.log(`hello`, data) + const result = await client.loginSteps(); + console.log(result) + if (result.error) { + throw new Error(result.error.message); + } + const webview = new WebviewWindow('login', { + url: 'https://accounts.nintendo.com/', + resizable: true, + focus: true, + }); + } return <> Hello world! - + } diff --git a/src/daemon.ts b/src/daemon.ts index 92fd8c7..8df4af8 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -1,9 +1,7 @@ -// deno-lint-ignore-file no-empty-interface - import { JSONRPCServer, - ResponseError, RPCResult, + S3SIService, Service, } from "./jsonrpc/mod.ts"; import { DenoIO } from "./jsonrpc/deno.ts"; @@ -11,32 +9,6 @@ import { loginSteps } from "./iksm.ts"; import { DEFAULT_ENV, Env } from "./env.ts"; import { Queue } from "./jsonrpc/channel.ts"; -export interface S3SINetworkError extends ResponseError<100> { -} - -export interface S3SIService { - loginSteps(): Promise< - RPCResult< - { - authCodeVerifier: string; - url: string; - }, - S3SINetworkError - > - >; - loginSteps(step2: { - authCodeVerifier: string; - login: string; - }): Promise< - RPCResult< - { - sessionToken: string; - }, - S3SINetworkError - > - >; -} - enum LoggerLevel { Debug = "debug", Log = "log", @@ -71,24 +43,16 @@ class S3SIServiceImplement implements S3SIService, Service { }; loginSteps(): Promise< - RPCResult< - { - authCodeVerifier: string; - url: string; - }, - S3SINetworkError - > + RPCResult<{ + authCodeVerifier: string; + url: string; + }> >; loginSteps(step2: { authCodeVerifier: string; login: string; }): Promise< - RPCResult< - { - sessionToken: string; - }, - S3SINetworkError - > + RPCResult<{ sessionToken: string }> >; async loginSteps(step2?: { authCodeVerifier: string; @@ -100,8 +64,7 @@ class S3SIServiceImplement implements S3SIService, Service { url: string; } | { sessionToken: string; - }, - S3SINetworkError + } > > { if (!step2) { diff --git a/src/jsonrpc/deno.ts b/src/jsonrpc/deno.ts index d984990..139200b 100644 --- a/src/jsonrpc/deno.ts +++ b/src/jsonrpc/deno.ts @@ -15,7 +15,7 @@ export class DenoIO implements Transport { const result = await this.lines.next(); if (!result.done) { - return JSON.parse(result.value); + return result.value; } return undefined; diff --git a/src/jsonrpc/jsonrpc.test.ts b/src/jsonrpc/jsonrpc.test.ts index b150b03..c2b67cb 100644 --- a/src/jsonrpc/jsonrpc.test.ts +++ b/src/jsonrpc/jsonrpc.test.ts @@ -13,6 +13,7 @@ export interface SimpleService { } class SimpleServiceImplement implements SimpleService, Service { + // deno-lint-ignore require-await async add(a: number, b: number): Promise> { return { result: a + b, diff --git a/src/jsonrpc/mod.ts b/src/jsonrpc/mod.ts index ccdf324..5468255 100644 --- a/src/jsonrpc/mod.ts +++ b/src/jsonrpc/mod.ts @@ -1,2 +1,4 @@ export * from "./types.ts"; export * from "./server.ts"; +export * from "./client.ts"; +export * from "./channel.ts"; diff --git a/src/jsonrpc/server.ts b/src/jsonrpc/server.ts index efdca86..c290519 100644 --- a/src/jsonrpc/server.ts +++ b/src/jsonrpc/server.ts @@ -47,7 +47,7 @@ export class JSONRPCServer { }; } - const result = await func(...params); + const result = await func.apply(this.service, params); return { ...res, @@ -81,7 +81,7 @@ export class JSONRPCServer { error: { code: 32000, message: "Internal error", - data: e, + data: String(e), }, }); diff --git a/src/jsonrpc/types.ts b/src/jsonrpc/types.ts index b8b58c9..6e7506c 100644 --- a/src/jsonrpc/types.ts +++ b/src/jsonrpc/types.ts @@ -64,3 +64,26 @@ export const ERROR_INTERNAL_ERROR: ResponseError<-32603> = { code: -32603, message: "Internal error", }; + +export interface S3SIService { + loginSteps(): Promise< + RPCResult< + { + authCodeVerifier: string; + url: string; + } + > + >; + loginSteps(step2: { + authCodeVerifier: string; + login: string; + }): Promise< + RPCResult< + { + sessionToken: string; + } + > + >; + // deno-lint-ignore no-explicit-any + [key: string]: any; +} From 7da5de6c1e3205eabe9754351fac3e22cb0c698f Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 6 Mar 2023 03:38:10 +0800 Subject: [PATCH 16/49] feat: hacky tauri login --- gui/src-tauri/Cargo.lock | 1 + gui/src-tauri/Cargo.toml | 1 + gui/src-tauri/src/main.rs | 72 +++++++++++++++++++++++++++++++++++++-- gui/src/pages/Home.tsx | 11 +++--- src/jsonrpc/types.ts | 7 ++-- 5 files changed, 82 insertions(+), 10 deletions(-) diff --git a/gui/src-tauri/Cargo.lock b/gui/src-tauri/Cargo.lock index c353fed..aee54d7 100644 --- a/gui/src-tauri/Cargo.lock +++ b/gui/src-tauri/Cargo.lock @@ -2005,6 +2005,7 @@ dependencies = [ "serde_json", "tauri", "tauri-build", + "tokio", ] [[package]] diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index bb990f2..5c46677 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -16,6 +16,7 @@ tauri-build = { version = "1.2", features = [] } tauri = { version = "1.2", features = ["shell-execute", "shell-open", "shell-sidecar", "window-all"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" +tokio = { version = "1.0", features = ["time"] } [features] # this feature is used for production builds or when `devPath` points to the filesystem diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index 523550d..765721f 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -1,15 +1,81 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] +use std::{ + sync::{Arc, Mutex}, + time::Duration, +}; +use tauri::{window::WindowBuilder, WindowEvent}; +use tokio::time::sleep; + +const INIT_SCRIPT: &str = r#" +function onSelectUserClick(e) { + const element = document.getElementById('authorize-switch-approval-link'); + if (!element) { + return; + } + e.preventDefault(); + + // very hacky way... + window.ipc.postMessage(JSON.stringify({ + "cmd":"tauri", + "callback":0, + "error":0, + "__tauriModule":"Event", + "message":{"cmd":"emit","event":"login","payload":element.href} + })) +} +function detectAndInject() { + const element = document.getElementById('authorize-switch-approval-link'); + if (!element) { + window.setTimeout(detectAndInject, 100); + return; + } + element.addEventListener('click', onSelectUserClick); +} +detectAndInject(); +"#; // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command #[tauri::command] -fn greet(name: &str) -> String { - format!("Hello, {}! You've been greeted from Rust!", name) +async fn open_login_window(app: tauri::AppHandle, url: String) -> Option { + let window = WindowBuilder::new(&app, "login", tauri::WindowUrl::App("/".into())) + .title("Login") + .initialization_script(INIT_SCRIPT) + .build() + .ok()?; + let result: Arc>> = Arc::new(Mutex::new(None)); + let r2 = result.clone(); + let r3 = result.clone(); + + window.listen("login", move |e| { + let mut result = r2.lock().unwrap(); + *result = e.payload().map(ToString::to_string); + }); + window.on_window_event(move |e| { + if let WindowEvent::Destroyed = e { + let mut result = r3.lock().unwrap(); + if result.is_none() { + *result = Some("".to_string()); + } + } + }); + window + .eval(&format!("window.location.href = '{}'", url)) + .ok()?; + + loop { + sleep(Duration::from_millis(100)).await; + let result = result.lock().unwrap(); + if result.is_some() { + window.close().ok(); + return result.clone(); + } + } } fn main() { tauri::Builder::default() - .invoke_handler(tauri::generate_handler![greet]) + .invoke_handler(tauri::generate_handler![open_login_window]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index f320709..17cf708 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -2,6 +2,8 @@ import React from 'react' import { WebviewWindow } from '@tauri-apps/api/window' import { Loading } from 'components/Loading' import { JSONRPCClient, S3SIService, StdioTransport } from 'jsonrpc'; +import { invoke } from '@tauri-apps/api'; +import { emit } from '@tauri-apps/api/event'; const client = new JSONRPCClient({ transport: new StdioTransport() @@ -14,12 +16,11 @@ export const Home: React.FC = ({ }) => { if (result.error) { throw new Error(result.error.message); } - const webview = new WebviewWindow('login', { - url: 'https://accounts.nintendo.com/', - resizable: true, - focus: true, - }); + const sessionToken = await invoke('open_login_window', { + url: result.result.url + }) + console.log(sessionToken) } return <> Hello world! diff --git a/src/jsonrpc/types.ts b/src/jsonrpc/types.ts index 6e7506c..e6c310b 100644 --- a/src/jsonrpc/types.ts +++ b/src/jsonrpc/types.ts @@ -33,8 +33,11 @@ export type Transport = { }; export type RPCResult = { - result?: Result; - error?: Error; + result: Result; + error?: undefined; +} | { + result?: undefined; + error: Error; }; export type Service = { From d9992d16449eccba9e5230ee51924eefd5ffcec0 Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 6 Mar 2023 03:50:29 +0800 Subject: [PATCH 17/49] fix: sessionToken not get --- gui/src-tauri/src/main.rs | 2 +- gui/src/pages/Home.tsx | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index 765721f..0376617 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -21,7 +21,7 @@ function onSelectUserClick(e) { "callback":0, "error":0, "__tauriModule":"Event", - "message":{"cmd":"emit","event":"login","payload":element.href} + "message":{"cmd":"emit","event":"login","payload":{"url":element.href}} })) } function detectAndInject() { diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 17cf708..8b575f6 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -17,10 +17,22 @@ export const Home: React.FC = ({ }) => { throw new Error(result.error.message); } - const sessionToken = await invoke('open_login_window', { + const login: string | null = await invoke('open_login_window', { url: result.result.url }) - console.log(sessionToken) + if (login === null || login === '') { + console.log('user cancel login'); + return; + } + const loginResult: { url: string } = JSON.parse(login); + const sessionToken = await client.loginSteps({ + authCodeVerifier: result.result.authCodeVerifier, + login: loginResult.url, + }) + if (sessionToken.error) { + throw new Error(sessionToken.error.message); + } + console.log('sessionToken', sessionToken.result); } return <> Hello world! From 0cb33a7527dc2e80ddda2b03fd4e3d0a491c6b5d Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 6 Mar 2023 04:05:59 +0800 Subject: [PATCH 18/49] fix: fmt --- deno.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deno.json b/deno.json index 372c8f9..6f1be96 100644 --- a/deno.json +++ b/deno.json @@ -31,4 +31,4 @@ ] } } -} \ No newline at end of file +} From 5f9ee2e3fd6cc901156b99e502b03d9b3449984b Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 6 Mar 2023 04:22:10 +0800 Subject: [PATCH 19/49] build: update ci deno version --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 83b7294..27fd0f7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -6,7 +6,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] - deno: [1.x, "1.22.x", canary] + deno: [1.x, "1.31.x", canary] steps: - uses: actions/checkout@v3 - uses: denoland/setup-deno@v1 From 01c0478a158dc1db6b3d768e457fd2f23c32da4a Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Mon, 6 Mar 2023 20:21:29 +0800 Subject: [PATCH 20/49] build: add eslint, i18n, daisyui --- gui/index.html | 2 +- gui/package.json | 27 +- gui/pnpm-lock.yaml | 3169 +++++++++++++++++++++++++++++- gui/src-tauri/tauri.conf.json | 4 +- gui/src/App.tsx | 10 +- gui/src/components/Layout.tsx | 4 +- gui/src/components/Loading.tsx | 2 +- gui/src/i18n/config.ts | 18 + gui/src/i18n/translation/en.json | 7 + gui/src/main.css | 44 +- gui/src/main.tsx | 1 - gui/src/pages/Home.tsx | 43 +- gui/src/pages/Settings.tsx | 33 + gui/src/services/config.ts | 8 + gui/src/services/s3si.ts | 37 + gui/tailwind.config.cjs | 2 +- gui/vite.config.ts | 5 +- 17 files changed, 3313 insertions(+), 103 deletions(-) create mode 100644 gui/src/i18n/config.ts create mode 100644 gui/src/i18n/translation/en.json create mode 100644 gui/src/pages/Settings.tsx create mode 100644 gui/src/services/config.ts create mode 100644 gui/src/services/s3si.ts diff --git a/gui/index.html b/gui/index.html index dcc8e25..0263b3f 100644 --- a/gui/index.html +++ b/gui/index.html @@ -5,7 +5,7 @@ - Tauri + React + TS + s3si.ts diff --git a/gui/package.json b/gui/package.json index 5bda570..e83d437 100644 --- a/gui/package.json +++ b/gui/package.json @@ -7,12 +7,17 @@ "dev": "vite", "build": "tsc && vite build", "preview": "vite preview", - "tauri": "tauri" + "tauri": "tauri", + "lint": "eslint --max-warnings=0 src" }, "dependencies": { "@tauri-apps/api": "^1.2.0", + "daisyui": "^2.51.3", + "i18next": "^22.4.10", + "i18next-browser-languagedetector": "^7.0.1", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-i18next": "^12.2.0", "react-icons": "^4.8.0", "react-router-dom": "^6.8.2" }, @@ -23,10 +28,30 @@ "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^3.1.0", "autoprefixer": "^10.4.13", + "eslint": "^8.35.0", + "eslint-config-react-app": "^7.0.1", "postcss": "^8.4.21", "tailwindcss": "^3.2.7", "typescript": "^4.9.5", "vite": "^4.1.4", + "vite-plugin-eslint": "^1.8.1", "vite-tsconfig-paths": "^4.0.5" + }, + "eslintConfig": { + "extends": "react-app" + }, + "pnpm": { + "packageExtensions": { + "eslint-plugin-flowtype": { + "peerDependenciesMeta": { + "@babel/plugin-syntax-flow": { + "optional": true + }, + "@babel/plugin-transform-react-jsx": { + "optional": true + } + } + } + } } } \ No newline at end of file diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index c2b5f39..8f799a2 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -1,5 +1,7 @@ lockfileVersion: 5.4 +packageExtensionsChecksum: 48913be470f7ffb75d24e5848808682a + specifiers: '@tauri-apps/api': ^1.2.0 '@tauri-apps/cli': ^1.2.3 @@ -8,20 +10,31 @@ specifiers: '@types/react-dom': ^18.0.6 '@vitejs/plugin-react': ^3.1.0 autoprefixer: ^10.4.13 + daisyui: ^2.51.3 + eslint: ^8.35.0 + eslint-config-react-app: ^7.0.1 + i18next: ^22.4.10 + i18next-browser-languagedetector: ^7.0.1 postcss: ^8.4.21 react: ^18.2.0 react-dom: ^18.2.0 + react-i18next: ^12.2.0 react-icons: ^4.8.0 react-router-dom: ^6.8.2 tailwindcss: ^3.2.7 typescript: ^4.9.5 vite: ^4.1.4 + vite-plugin-eslint: ^1.8.1 vite-tsconfig-paths: ^4.0.5 dependencies: '@tauri-apps/api': 1.2.0 + daisyui: 2.51.3_gbtt6ss3tbiz4yjtvdr6fbrj44 + i18next: 22.4.10 + i18next-browser-languagedetector: 7.0.1 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 + react-i18next: 12.2.0_3yopsigl4h4eb2nqrqfsy65uwi react-icons: 4.8.0_react@18.2.0 react-router-dom: 6.8.2_biqbaboplfbrettd7655fr4n2y @@ -32,10 +45,13 @@ devDependencies: '@types/react-dom': 18.0.11 '@vitejs/plugin-react': 3.1.0_vite@4.1.4 autoprefixer: 10.4.13_postcss@8.4.21 + eslint: 8.35.0 + eslint-config-react-app: 7.0.1_ycpbpc6yetojsgtrx3mwntkhsu postcss: 8.4.21 tailwindcss: 3.2.7_postcss@8.4.21 typescript: 4.9.5 vite: 4.1.4_@types+node@18.14.5 + vite-plugin-eslint: 1.8.1_eslint@8.35.0+vite@4.1.4 vite-tsconfig-paths: 4.0.5_typescript@4.9.5 packages: @@ -83,6 +99,20 @@ packages: - supports-color dev: true + /@babel/eslint-parser/7.19.1_zt6cfucldurvbyn2isj445jria: + resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.21.0 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.35.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.0 + dev: true + /@babel/generator/7.21.1: resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} engines: {node: '>=6.9.0'} @@ -93,6 +123,21 @@ packages: jsesc: 2.5.2 dev: true + /@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: + resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-explode-assignable-expression': 7.18.6 + '@babel/types': 7.21.2 + dev: true + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.0: resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} engines: {node: '>=6.9.0'} @@ -107,11 +152,64 @@ packages: semver: 6.3.0 dev: true + /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.3.1 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.21.0: + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-explode-assignable-expression/7.18.6: + resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + /@babel/helper-function-name/7.21.0: resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} engines: {node: '>=6.9.0'} @@ -127,6 +225,13 @@ packages: '@babel/types': 7.21.2 dev: true + /@babel/helper-member-expression-to-functions/7.21.0: + resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} @@ -150,11 +255,47 @@ packages: - supports-color dev: true + /@babel/helper-optimise-call-expression/7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + /@babel/helper-plugin-utils/7.20.2: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-wrap-function': 7.20.5 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers/7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-simple-access/7.20.2: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} @@ -162,6 +303,13 @@ packages: '@babel/types': 7.21.2 dev: true + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} @@ -184,6 +332,18 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-wrap-function/7.20.5: + resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.21.0 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helpers/7.21.0: resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} engines: {node: '>=6.9.0'} @@ -212,6 +372,706 @@ packages: '@babel/types': 7.21.2 dev: true + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-decorators/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/plugin-syntax-decorators': 7.21.0_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.0: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.21.0: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.21.0: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-decorators/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.21.0: + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.0: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.0: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.21.0: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.0: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.21.0: + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-block-scoping/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-classes/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/template': 7.20.7 + dev: true + + /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-flow-strip-types/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.21.0 + dev: true + + /@babel/plugin-transform-for-of/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.21.0: + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.21.2_@babel+core@7.21.0: + resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.21.0: + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.21.0: + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/plugin-transform-react-jsx': 7.21.0_@babel+core@7.21.0 + dev: true + /@babel/plugin-transform-react-jsx-self/7.21.0_@babel+core@7.21.0: resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} engines: {node: '>=6.9.0'} @@ -232,6 +1092,293 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-react-jsx/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.21.0 + '@babel/types': 7.21.2 + dev: true + + /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.21.0: + resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-runtime/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.0 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.0 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typescript/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.21.0: + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/preset-env/7.20.2_@babel+core@7.21.0: + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-private-property-in-object': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.0 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.21.0 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.21.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.21.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.21.0 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.21.0 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-block-scoping': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-classes': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-for-of': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.21.0 + '@babel/plugin-transform-modules-commonjs': 7.21.2_@babel+core@7.21.0 + '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.21.0 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.21.0 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.21.0 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.21.0 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.21.0 + '@babel/preset-modules': 0.1.5_@babel+core@7.21.0 + '@babel/types': 7.21.2 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.0 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.0 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.0 + core-js-compat: 3.29.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.21.0: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.21.0 + '@babel/types': 7.21.2 + esutils: 2.0.3 + dev: true + + /@babel/preset-react/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-react-jsx': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.21.0 + dev: true + + /@babel/preset-typescript/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-transform-typescript': 7.21.0_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/regjsgen/0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime/7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + /@babel/template/7.20.7: resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} @@ -466,6 +1613,48 @@ packages: dev: true optional: true + /@eslint/eslintrc/2.0.0: + resolution: {integrity: sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js/8.35.0: + resolution: {integrity: sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + /@jridgewell/gen-mapping/0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -504,18 +1693,22 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@nicolo-ribaudo/eslint-scope-5-internals/5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + dependencies: + eslint-scope: 5.1.1 + dev: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat/2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true /@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -523,13 +1716,24 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - dev: true /@remix-run/router/1.3.3: resolution: {integrity: sha512-YRHie1yQEj0kqqCTCJEfHqYSSNlZQ696QJG+MMiW4mxSl9I0ojz/eRhJS4fs88Z5i6D1SmoF9d3K99/QOhI8/w==} engines: {node: '>=14'} dev: false + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rushstack/eslint-patch/1.2.0: + resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} + dev: true + /@tauri-apps/api/1.2.0: resolution: {integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} @@ -632,10 +1836,33 @@ packages: '@tauri-apps/cli-win32-x64-msvc': 1.2.3 dev: true + /@types/eslint/8.21.1: + resolution: {integrity: sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==} + dependencies: + '@types/estree': 1.0.0 + '@types/json-schema': 7.0.11 + dev: true + + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/json5/0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + /@types/node/18.14.5: resolution: {integrity: sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw==} dev: true + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + /@types/prop-types/15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: true @@ -658,6 +1885,153 @@ packages: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} dev: true + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@typescript-eslint/eslint-plugin/5.54.0_6mj2wypvdnknez7kws2nfdgupi: + resolution: {integrity: sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + '@typescript-eslint/scope-manager': 5.54.0 + '@typescript-eslint/type-utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + '@typescript-eslint/utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + debug: 4.3.4 + eslint: 8.35.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils/5.54.0_ycpbpc6yetojsgtrx3mwntkhsu: + resolution: {integrity: sha512-rRYECOTh5V3iWsrOzXi7h1jp3Bi9OkJHrb3wECi3DVqMGTilo9wAYmCbT+6cGdrzUY3MWcAa2mESM6FMik6tVw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + eslint: 8.35.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser/5.54.0_ycpbpc6yetojsgtrx3mwntkhsu: + resolution: {integrity: sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.54.0 + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/typescript-estree': 5.54.0_typescript@4.9.5 + debug: 4.3.4 + eslint: 8.35.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.54.0: + resolution: {integrity: sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/visitor-keys': 5.54.0 + dev: true + + /@typescript-eslint/type-utils/5.54.0_ycpbpc6yetojsgtrx3mwntkhsu: + resolution: {integrity: sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.54.0_typescript@4.9.5 + '@typescript-eslint/utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + debug: 4.3.4 + eslint: 8.35.0 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.54.0: + resolution: {integrity: sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.54.0_typescript@4.9.5: + resolution: {integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/visitor-keys': 5.54.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.54.0_ycpbpc6yetojsgtrx3mwntkhsu: + resolution: {integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.54.0 + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/typescript-estree': 5.54.0_typescript@4.9.5 + eslint: 8.35.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.35.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.54.0: + resolution: {integrity: sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.54.0 + eslint-visitor-keys: 3.3.0 + dev: true + /@vitejs/plugin-react/3.1.0_vite@4.1.4: resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -674,23 +2048,48 @@ packages: - supports-color dev: true + /acorn-jsx/5.3.2_acorn@8.8.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + /acorn-node/1.8.2: resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} dependencies: acorn: 7.4.1 acorn-walk: 7.2.0 xtend: 4.0.2 - dev: true /acorn-walk/7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} - dev: true /acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true + + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} dev: true /ansi-styles/3.2.1: @@ -700,16 +2099,81 @@ packages: color-convert: 1.9.3 dev: true + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + /anymatch/3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /arg/5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-query/5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.0 + dev: true + + /array-includes/3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.flat/1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap/1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.tosorted/1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.0 + dev: true + + /ast-types-flow/0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true /autoprefixer/10.4.13_postcss@8.4.21: @@ -726,11 +2190,109 @@ packages: picocolors: 1.0.0 postcss: 8.4.21 postcss-value-parser: 4.2.0 + + /available-typed-arrays/1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axe-core/4.6.3: + resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==} + engines: {node: '>=4'} + dev: true + + /axobject-query/3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + dependencies: + deep-equal: 2.2.0 + dev: true + + /babel-plugin-macros/3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.21.0 + cosmiconfig: 7.1.0 + resolve: 1.22.1 + dev: true + + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.21.0: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.21.0: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0 + core-js-compat: 3.29.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.21.0: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-transform-react-remove-prop-types/0.4.24: + resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==} + dev: true + + /babel-preset-react-app/10.0.1: + resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==} + dependencies: + '@babel/core': 7.21.0 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-decorators': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-private-property-in-object': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-flow-strip-types': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-runtime': 7.21.0_@babel+core@7.21.0 + '@babel/preset-env': 7.20.2_@babel+core@7.21.0 + '@babel/preset-react': 7.18.6_@babel+core@7.21.0 + '@babel/preset-typescript': 7.21.0_@babel+core@7.21.0 + '@babel/runtime': 7.21.0 + babel-plugin-macros: 3.1.0 + babel-plugin-transform-react-remove-prop-types: 0.4.24 + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 dev: true /braces/3.0.2: @@ -738,7 +2300,6 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /browserslist/4.21.5: resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} @@ -749,16 +2310,25 @@ packages: electron-to-chromium: 1.4.317 node-releases: 2.0.10 update-browserslist-db: 1.0.10_browserslist@4.21.5 + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} dev: true /camelcase-css/2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - dev: true /caniuse-lite/1.0.30001460: resolution: {integrity: sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==} - dev: true /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -769,6 +2339,14 @@ packages: supports-color: 5.5.0 dev: true + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -782,7 +2360,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 - dev: true /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -790,28 +2367,119 @@ packages: color-name: 1.1.3 dev: true + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + /color-name/1.1.3: resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /color-string/1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + + /color/4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + dev: false + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /confusing-browser-globals/1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} dev: true /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true + /core-js-compat/3.29.0: + resolution: {integrity: sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==} + dependencies: + browserslist: 4.21.5 + dev: true + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-selector-tokenizer/0.8.0: + resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==} + dependencies: + cssesc: 3.0.0 + fastparse: 1.1.2 + dev: false + /cssesc/3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - dev: true /csstype/3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} dev: true + /daisyui/2.51.3_gbtt6ss3tbiz4yjtvdr6fbrj44: + resolution: {integrity: sha512-AQa9exq/DsnvjyDi6bwOqHExQr9LJJag0iKRXNvRRtHXPo1gaAQ3ASJWylUB8J8KMH2M9zIpr7cvPHc7yGckyQ==} + peerDependencies: + autoprefixer: ^10.0.2 + postcss: ^8.1.6 + dependencies: + autoprefixer: 10.4.13_postcss@8.4.21 + color: 4.2.3 + css-selector-tokenizer: 0.8.0 + postcss: 8.4.21 + postcss-js: 4.0.1_postcss@8.4.21 + tailwindcss: 3.2.7_postcss@8.4.21 + transitivePeerDependencies: + - ts-node + dev: false + + /damerau-levenshtein/1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -824,9 +2492,42 @@ packages: ms: 2.1.2 dev: true + /deep-equal/2.2.0: + resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} + dependencies: + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.0 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /define-properties/1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /defined/1.0.1: resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} - dev: true /detective/5.2.1: resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} @@ -836,18 +2537,122 @@ packages: acorn-node: 1.8.2 defined: 1.0.1 minimist: 1.2.8 - dev: true /didyoumean/1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 dev: true /dlv/1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 dev: true /electron-to-chromium/1.4.317: resolution: {integrity: sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA==} + + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-get-iterator/1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-set-tostringtag/2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 dev: true /esbuild/0.16.17: @@ -883,13 +2688,365 @@ packages: /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} dev: true + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-config-react-app/7.0.1_ycpbpc6yetojsgtrx3mwntkhsu: + resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/core': 7.21.0 + '@babel/eslint-parser': 7.19.1_zt6cfucldurvbyn2isj445jria + '@rushstack/eslint-patch': 1.2.0 + '@typescript-eslint/eslint-plugin': 5.54.0_6mj2wypvdnknez7kws2nfdgupi + '@typescript-eslint/parser': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + babel-preset-react-app: 10.0.1 + confusing-browser-globals: 1.0.11 + eslint: 8.35.0 + eslint-plugin-flowtype: 8.0.3_eslint@8.35.0 + eslint-plugin-import: 2.27.5_ajyizmi44oc3hrc35l6ndh7p4e + eslint-plugin-jest: 25.7.0_aere4n7c7ynvp62ae3ihfxuwhu + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.35.0 + eslint-plugin-react: 7.32.2_eslint@8.35.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.35.0 + eslint-plugin-testing-library: 5.10.2_ycpbpc6yetojsgtrx3mwntkhsu + typescript: 4.9.5 + transitivePeerDependencies: + - '@babel/plugin-syntax-flow' + - '@babel/plugin-transform-react-jsx' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true + + /eslint-import-resolver-node/0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: 3.2.7 + is-core-module: 2.11.0 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils/2.7.4_qynxowrxvm2kj5rbowcxf5maga: + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + debug: 3.2.7 + eslint: 8.35.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-flowtype/8.0.3_eslint@8.35.0: + resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@babel/plugin-syntax-flow': ^7.14.5 + '@babel/plugin-transform-react-jsx': ^7.14.9 + eslint: ^8.1.0 + peerDependenciesMeta: + '@babel/plugin-syntax-flow': + optional: true + '@babel/plugin-transform-react-jsx': + optional: true + dependencies: + eslint: 8.35.0 + lodash: 4.17.21 + string-natural-compare: 3.0.1 + dev: true + + /eslint-plugin-import/2.27.5_ajyizmi44oc3hrc35l6ndh7p4e: + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.35.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4_qynxowrxvm2kj5rbowcxf5maga + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.1 + semver: 6.3.0 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest/25.7.0_aere4n7c7ynvp62ae3ihfxuwhu: + resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.54.0_6mj2wypvdnknez7kws2nfdgupi + '@typescript-eslint/experimental-utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + eslint: 8.35.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsx-a11y/6.7.1_eslint@8.35.0: + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.21.0 + aria-query: 5.1.3 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + ast-types-flow: 0.0.7 + axe-core: 4.6.3 + axobject-query: 3.1.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.35.0 + has: 1.0.3 + jsx-ast-utils: 3.3.3 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + semver: 6.3.0 + dev: true + + /eslint-plugin-react-hooks/4.6.0_eslint@8.35.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.35.0 + dev: true + + /eslint-plugin-react/7.32.2_eslint@8.35.0: + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + eslint: 8.35.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.3 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.0 + string.prototype.matchall: 4.0.8 + dev: true + + /eslint-plugin-testing-library/5.10.2_ycpbpc6yetojsgtrx3mwntkhsu: + resolution: {integrity: sha512-f1DmDWcz5SDM+IpCkEX0lbFqrrTs8HRsEElzDEqN/EBI0hpRj8Cns5+IVANXswE8/LeybIJqPAOQIFu2j5Y5sw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} + peerDependencies: + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.54.0_ycpbpc6yetojsgtrx3mwntkhsu + eslint: 8.35.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.35.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.35.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.35.0: + resolution: {integrity: sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 2.0.0 + '@eslint/js': 8.35.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.35.0 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.3.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 + eslint-visitor-keys: 3.3.0 + dev: true + + /esquery/1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + /fast-glob/3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -899,12 +3056,29 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true + /fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastparse/1.1.2: + resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} + dev: false + /fastq/1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 dev: true /fill-range/7.0.1: @@ -912,10 +3086,38 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /for-each/0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 dev: true /fraction.js/4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true /fsevents/2.3.2: @@ -923,11 +3125,23 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true /gensync/1.0.0-beta.2: @@ -935,18 +3149,43 @@ packages: engines: {node: '>=6.9.0'} dev: true + /get-intrinsic/1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 dev: true /globals/11.12.0: @@ -954,20 +3193,173 @@ packages: engines: {node: '>=4'} dev: true + /globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis/1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + /globrex/0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} dev: true + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} dev: true + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto/1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 + + /html-parse-stringify/3.0.1: + resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + dependencies: + void-elements: 3.1.0 + dev: false + + /i18next-browser-languagedetector/7.0.1: + resolution: {integrity: sha512-Pa5kFwaczXJAeHE56CHG2aWzFBMJNUNghf0Pm4SwSrEMps/PTKqW90EYWlIvhuYStf3Sn1K0vw+gH3+TLdkH1g==} + dependencies: + '@babel/runtime': 7.21.0 + dev: false + + /i18next/22.4.10: + resolution: {integrity: sha512-3EqgGK6fAJRjnGgfkNSStl4mYLCjUoJID338yVyLMj5APT67HUtWoqSayZewiiC5elzMUB1VEUwcmSCoeQcNEA==} + dependencies: + '@babel/runtime': 7.21.0 + dev: false + + /ignore/5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot/1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-arguments/1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer/3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-arrayish/0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 dev: true /is-binary-path/2.1.0: @@ -975,49 +3367,236 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 + + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} dev: true /is-core-module/2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 dev: true /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + + /is-map/2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 dev: true /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-set/2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array/1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-weakmap/2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset/2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /isarray/2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-sdsl/4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} dev: true /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc/0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5/1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + /json5/2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true dev: true + /jsx-ast-utils/3.3.3: + resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.6 + object.assign: 4.1.4 + dev: true + + /language-subtag-registry/0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true + + /language-tags/1.0.5: + resolution: {integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + /lilconfig/2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.debounce/4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true /loose-envify/1.4.0: @@ -1025,7 +3604,6 @@ packages: hasBin: true dependencies: js-tokens: 4.0.0 - dev: false /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -1033,6 +3611,13 @@ packages: yallist: 3.1.1 dev: true + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + /magic-string/0.27.0: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} @@ -1043,7 +3628,6 @@ packages: /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -1051,11 +3635,15 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 dev: true /minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -1065,44 +3653,178 @@ packages: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true /node-releases/2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} - dev: true /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-range/0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} + + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} dev: true /object-hash/3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} + + /object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-is/1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries/1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /object.fromentries/2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /object.hasown/1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /object.values/1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} dev: true /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} dev: true /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pify/2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - dev: true /postcss-import/14.1.0_postcss@8.4.21: resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} @@ -1114,7 +3836,6 @@ packages: postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 - dev: true /postcss-js/4.0.1_postcss@8.4.21: resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} @@ -1124,7 +3845,6 @@ packages: dependencies: camelcase-css: 2.0.1 postcss: 8.4.21 - dev: true /postcss-load-config/3.1.4_postcss@8.4.21: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} @@ -1141,7 +3861,6 @@ packages: lilconfig: 2.1.0 postcss: 8.4.21 yaml: 1.10.2 - dev: true /postcss-nested/6.0.0_postcss@8.4.21: resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} @@ -1151,7 +3870,6 @@ packages: dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.11 - dev: true /postcss-selector-parser/6.0.11: resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} @@ -1159,11 +3877,9 @@ packages: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: true /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true /postcss/8.4.21: resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} @@ -1172,16 +3888,31 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prop-types/15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /punycode/2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} dev: true /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - dev: true /react-dom/18.2.0_react@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} @@ -1193,6 +3924,26 @@ packages: scheduler: 0.23.0 dev: false + /react-i18next/12.2.0_3yopsigl4h4eb2nqrqfsy65uwi: + resolution: {integrity: sha512-5XeVgSygaGfyFmDd2WcXvINRw2WEC1XviW1LXY/xLOEMzsCFRwKqfnHN+hUjla8ZipbVJR27GCMSuTr0BhBBBQ==} + peerDependencies: + i18next: '>= 19.0.0' + react: '>= 16.8.0' + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@babel/runtime': 7.21.0 + html-parse-stringify: 3.0.1 + i18next: 22.4.10 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + /react-icons/4.8.0_react@18.2.0: resolution: {integrity: sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==} peerDependencies: @@ -1201,6 +3952,10 @@ packages: react: 18.2.0 dev: false + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + /react-refresh/0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} @@ -1240,13 +3995,69 @@ packages: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: pify: 2.3.0 - dev: true /readdirp/3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + + /regenerate-unicode-properties/10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate/1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + /regenerator-transform/0.15.1: + resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} + dependencies: + '@babel/runtime': 7.21.0 + dev: true + + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /regexpu-core/5.3.1: + resolution: {integrity: sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser/0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} dev: true /resolve/1.22.1: @@ -1256,11 +4067,33 @@ packages: is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + + /resolve/2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 dev: true /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup/2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 dev: true /rollup/3.18.0: @@ -1275,6 +4108,13 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + + /safe-regex-test/1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 dev: true /scheduler/0.23.0: @@ -1288,9 +4128,104 @@ packages: hasBin: true dev: true + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + dev: true + + /simple-swizzle/0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: false + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + + /stop-iteration-iterator/1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: true + + /string-natural-compare/3.0.1: + resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} + dev: true + + /string.prototype.matchall/4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + + /string.prototype.trimend/1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /string.prototype.trimstart/1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} dev: true /supports-color/5.5.0: @@ -1300,10 +4235,16 @@ packages: has-flag: 3.0.0 dev: true + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: true /tailwindcss/3.2.7_postcss@8.4.21: resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} @@ -1337,6 +4278,9 @@ packages: resolve: 1.22.1 transitivePeerDependencies: - ts-node + + /text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /to-fast-properties/2.0.0: @@ -1349,7 +4293,6 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /tsconfck/2.0.3_typescript@4.9.5: resolution: {integrity: sha512-o3DsPZO1+C98KqHMdAbWs30zpxD30kj8r9OLA4ML1yghx4khNDzaaShNalfluh8ZPPhzKe3qyVCP1HiZszSAsw==} @@ -1364,12 +4307,87 @@ packages: typescript: 4.9.5 dev: true + /tsconfig-paths/3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tsutils/3.21.0_typescript@4.9.5: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typed-array-length/1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + /typescript/4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true dev: true + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript/2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript/2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + /update-browserslist-db/1.0.10_browserslist@4.21.5: resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true @@ -1379,10 +4397,27 @@ packages: browserslist: 4.21.5 escalade: 3.1.1 picocolors: 1.0.0 + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 dev: true /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /vite-plugin-eslint/1.8.1_eslint@8.35.0+vite@4.1.4: + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2' + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.21.1 + eslint: 8.35.0 + rollup: 2.79.1 + vite: 4.1.4_@types+node@18.14.5 dev: true /vite-tsconfig-paths/4.0.5_typescript@4.9.5: @@ -1430,16 +4465,76 @@ packages: fsevents: 2.3.2 dev: true + /void-elements/3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + dev: false + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection/1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array/1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - dev: true /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + /yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} dev: true diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index ac5139d..bac3573 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -71,8 +71,8 @@ "fullscreen": false, "resizable": true, "title": "s3si.ts", - "width": 800, - "height": 600, + "width": 400, + "height": 300, "visible": false } ] diff --git a/gui/src/App.tsx b/gui/src/App.tsx index 53ab39f..bb15a5d 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,17 +1,23 @@ +import { useEffect } from "react"; import { getCurrent } from "@tauri-apps/api/window"; import { Routes, Route } from "react-router-dom"; import { Layout } from "components/Layout"; import { Home } from "pages/Home"; -import { useEffect } from "react"; +import { Settings } from "pages/Settings"; function App() { useEffect(() => { - getCurrent().show() + try { + getCurrent().show().catch(e => console.error(e)) + } catch (e) { + console.error(e) + } }, []) return ( }> } /> + } /> ); diff --git a/gui/src/components/Layout.tsx b/gui/src/components/Layout.tsx index df11dda..cf55fe0 100644 --- a/gui/src/components/Layout.tsx +++ b/gui/src/components/Layout.tsx @@ -3,8 +3,8 @@ import { Outlet } from "react-router-dom"; export const Layout: React.FC = () => { return ( -
+
); -}; \ No newline at end of file +}; diff --git a/gui/src/components/Loading.tsx b/gui/src/components/Loading.tsx index 5a090a2..cb3789c 100644 --- a/gui/src/components/Loading.tsx +++ b/gui/src/components/Loading.tsx @@ -4,6 +4,6 @@ import { AiOutlineLoading3Quarters } from 'react-icons/ai'; type LoadingProps = { } -export const Loading: React.FC = ({ }) => { +export const Loading: React.FC = () => { return } diff --git a/gui/src/i18n/config.ts b/gui/src/i18n/config.ts new file mode 100644 index 0000000..dd5b07c --- /dev/null +++ b/gui/src/i18n/config.ts @@ -0,0 +1,18 @@ +import i18next from 'i18next'; +import LanguageDetector from 'i18next-browser-languagedetector'; +import { initReactI18next } from 'react-i18next'; +import translation from './translation/en.json'; + +export const resources = { + en: { + translation, + } +}; + +i18next + .use(initReactI18next) + .use(LanguageDetector) + .init({ + debug: import.meta.env.DEV, + resources, + }); diff --git a/gui/src/i18n/translation/en.json b/gui/src/i18n/translation/en.json new file mode 100644 index 0000000..30a2bf7 --- /dev/null +++ b/gui/src/i18n/translation/en.json @@ -0,0 +1,7 @@ +{ + "title": "Welcome {{name}}, to react using react-i18next fully type-safe", + "description": { + "part1": "This is a simple example.", + "part2": "😉" + } +} \ No newline at end of file diff --git a/gui/src/main.css b/gui/src/main.css index ff783bb..0a64731 100644 --- a/gui/src/main.css +++ b/gui/src/main.css @@ -3,24 +3,34 @@ @tailwind utilities; :root { - font-family: Inter, Avenir, Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 400; - - color: #0f0f0f; - background-color: #f6f6f6; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color: #0f0f0f; + background-color: #f6f6f6; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; + +} + +body { + width: 100vw; + height: 100vh; +} + +#root { + height: 100vh; } @media (prefers-color-scheme: dark) { - :root { - color: #f6f6f6; - background-color: #2f2f2f; - } + :root { + color: #f6f6f6; + background-color: #2f2f2f; + } } diff --git a/gui/src/main.tsx b/gui/src/main.tsx index 9937e2f..c67c01e 100644 --- a/gui/src/main.tsx +++ b/gui/src/main.tsx @@ -10,4 +10,3 @@ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( ); - diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 8b575f6..0bd1ffe 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,42 +1,13 @@ import React from 'react' -import { WebviewWindow } from '@tauri-apps/api/window' -import { Loading } from 'components/Loading' -import { JSONRPCClient, S3SIService, StdioTransport } from 'jsonrpc'; -import { invoke } from '@tauri-apps/api'; -import { emit } from '@tauri-apps/api/event'; +import { useTranslation } from 'react-i18next'; -const client = new JSONRPCClient({ - transport: new StdioTransport() -}).getProxy(); +export const Home: React.FC = () => { + const { t } = useTranslation(); -export const Home: React.FC = ({ }) => { - const onHello = async () => { - const result = await client.loginSteps(); - console.log(result) - if (result.error) { - throw new Error(result.error.message); - } - - const login: string | null = await invoke('open_login_window', { - url: result.result.url - }) - if (login === null || login === '') { - console.log('user cancel login'); - return; - } - const loginResult: { url: string } = JSON.parse(login); - const sessionToken = await client.loginSteps({ - authCodeVerifier: result.result.authCodeVerifier, - login: loginResult.url, - }) - if (sessionToken.error) { - throw new Error(sessionToken.error.message); - } - console.log('sessionToken', sessionToken.result); - } return <> - Hello world! - - +
+ {t('欢迎!')} + {t('配置')} +
} diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx new file mode 100644 index 0000000..f823c62 --- /dev/null +++ b/gui/src/pages/Settings.tsx @@ -0,0 +1,33 @@ +import React from 'react' +import { useTranslation } from 'react-i18next'; +import { AiOutlineLeft } from 'react-icons/ai'; +import { useNavigate } from 'react-router-dom'; + +export const Settings: React.FC = () => { + const navigate = useNavigate(); + const { t } = useTranslation(); + const onSave = async () => { + } + + return <> +
+

{t('配置')}

+
+
+ + +
+
+ +
+ +} \ No newline at end of file diff --git a/gui/src/services/config.ts b/gui/src/services/config.ts new file mode 100644 index 0000000..2f06aa4 --- /dev/null +++ b/gui/src/services/config.ts @@ -0,0 +1,8 @@ +import { fs } from "@tauri-apps/api" +import { appConfigDir, join } from '@tauri-apps/api/path' + +const configDir = appConfigDir().then(c => join(c, 'config.json')); + +export const useConfig = () => { + +} diff --git a/gui/src/services/s3si.ts b/gui/src/services/s3si.ts new file mode 100644 index 0000000..eedee76 --- /dev/null +++ b/gui/src/services/s3si.ts @@ -0,0 +1,37 @@ +import { invoke } from "@tauri-apps/api"; +import { JSONRPCClient, S3SIService, StdioTransport } from "jsonrpc"; +import { useCallback } from "react"; + +const client = new JSONRPCClient({ + transport: new StdioTransport() +}).getProxy(); + +export const useLogin = () => { + const login = useCallback(async () => { + const result = await client.loginSteps(); + if (result.error) { + throw new Error(result.error.message); + } + + const login: string | null = await invoke('open_login_window', { + url: result.result.url + }) + if (login === null || login === '') { + console.log('user cancel login'); + return; + } + const loginResult: { url: string } = JSON.parse(login); + const sessionToken = await client.loginSteps({ + authCodeVerifier: result.result.authCodeVerifier, + login: loginResult.url, + }) + if (sessionToken.error) { + throw new Error(sessionToken.error.message); + } + return sessionToken.result; + }, []) + + return { + login + } +} diff --git a/gui/tailwind.config.cjs b/gui/tailwind.config.cjs index a4cfc88..7644d8b 100644 --- a/gui/tailwind.config.cjs +++ b/gui/tailwind.config.cjs @@ -6,5 +6,5 @@ module.exports = { theme: { extend: {}, }, - plugins: [], + plugins: [require("daisyui")], } diff --git a/gui/vite.config.ts b/gui/vite.config.ts index 5067e19..8493565 100644 --- a/gui/vite.config.ts +++ b/gui/vite.config.ts @@ -1,10 +1,11 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; -import tsconfigPaths from 'vite-tsconfig-paths' +import tsconfigPaths from 'vite-tsconfig-paths'; +import eslint from 'vite-plugin-eslint'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react(), tsconfigPaths()], + plugins: [react(), tsconfigPaths(), eslint()], // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` // prevent vite from obscuring rust errors From 830456ea62f3d1ebc0618709da4ec624b57639e7 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Mon, 6 Mar 2023 21:32:00 +0800 Subject: [PATCH 21/49] feat: add config --- gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/tauri.conf.json | 12 ++++++---- gui/src/App.tsx | 1 + gui/src/hooks/usePromise.ts | 40 ++++++++++++++++++++++++++++++++++ gui/src/hooks/useWindowSize.ts | 31 ++++++++++++++++++++++++++ gui/src/pages/Settings.tsx | 11 ++++++++-- gui/src/services/config.ts | 33 +++++++++++++++++++++++++--- gui/vite.config.ts | 6 ++++- 8 files changed, 125 insertions(+), 11 deletions(-) create mode 100644 gui/src/hooks/usePromise.ts create mode 100644 gui/src/hooks/useWindowSize.ts diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index 5c46677..2941aa6 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" tauri-build = { version = "1.2", features = [] } [dependencies] -tauri = { version = "1.2", features = ["shell-execute", "shell-open", "shell-sidecar", "window-all"] } +tauri = { version = "1.2", features = ["fs-all", "path-all", "shell-execute", "shell-open", "shell-sidecar", "window-all"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { version = "1.0", features = ["time"] } diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index bac3573..99a0ebd 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -39,10 +39,14 @@ }, "fs": { "scope": [ - "$APPCONFIG", - "$APPDATA", - "$APPCACHE" - ] + "$APPCONFIG/*", + "$APPDATA/*", + "$APPCACHE/*" + ], + "all": true + }, + "path": { + "all": true } }, "bundle": { diff --git a/gui/src/App.tsx b/gui/src/App.tsx index bb15a5d..eadea29 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,3 +1,4 @@ +import 'i18n/config'; import { useEffect } from "react"; import { getCurrent } from "@tauri-apps/api/window"; import { Routes, Route } from "react-router-dom"; diff --git a/gui/src/hooks/usePromise.ts b/gui/src/hooks/usePromise.ts new file mode 100644 index 0000000..a89ce41 --- /dev/null +++ b/gui/src/hooks/usePromise.ts @@ -0,0 +1,40 @@ +import { useState } from "react"; + +/** + * A hook that returns a promise and its state. + * + * The promise is only created once, and the state is updated when the promise resolves or rejects. + * + * @param factory A function that returns a promise. + * @returns An object containing the promise's state and result. + * @example + * const { loading, result, error } = usePromise(() => fetch('https://example.com') + * .then(response => response.text()) + * ); + * if (loading) { + * return

Loading...

; + * } + * if (error) { + * return

Error: {error.message}

; + * } + * return

Result: {result}

; + */ +export function usePromise(factory: () => Promise) { + const [loading, setLoading] = useState(true); + const [result, setResult] = useState(undefined); + const [error, setError] = useState(undefined); + const [promise] = useState(() => { + const promise = factory(); + if (!promise || typeof promise.then !== "function") { + throw new Error("The factory function must return a promise."); + } + return promise + .then(setResult) + .catch(setError) + .finally(() => { + setLoading(false); + }); + }); + + return { loading, result, error, promise }; +} diff --git a/gui/src/hooks/useWindowSize.ts b/gui/src/hooks/useWindowSize.ts new file mode 100644 index 0000000..461cdaa --- /dev/null +++ b/gui/src/hooks/useWindowSize.ts @@ -0,0 +1,31 @@ +import { getCurrent, LogicalSize, appWindow } from '@tauri-apps/api/window' +import { useEffect, useRef } from 'react'; + +/** + * Sets the window size, and disable resizable, and restores it on unmount. + */ +export const useWindowSize = ({ w, h }: { w: number, h: number }) => { + const oldSize = useRef<{ w: number, h: number }>(); + + useEffect(() => { + const run = async () => { + const factor = await appWindow.scaleFactor(); + const outerSize = (await getCurrent().outerSize()).toLogical(factor); + oldSize.current = { + w: outerSize.width, + h: outerSize.height + }; + + await getCurrent().setResizable(false); + await getCurrent().setSize(new LogicalSize(w, h)); + } + run(); + return () => { + const size = oldSize.current; + if (size) { + getCurrent().setSize(new LogicalSize(size.w, size.h)); + getCurrent().setResizable(true); + } + } + }, [oldSize, w, h]); +}; diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index f823c62..83ff952 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -1,17 +1,24 @@ +import { usePromise } from 'hooks/usePromise'; import React from 'react' import { useTranslation } from 'react-i18next'; import { AiOutlineLeft } from 'react-icons/ai'; import { useNavigate } from 'react-router-dom'; +import { getConfig } from 'services/config'; export const Settings: React.FC = () => { + const { loading, result, error } = usePromise(getConfig); const navigate = useNavigate(); const { t } = useTranslation(); const onSave = async () => { } + if (loading) { + return
{t('加载中...')}
+ } + return <>
-

{t('配置')}

+

{t('配置')}

- +
} \ No newline at end of file diff --git a/gui/src/services/config.ts b/gui/src/services/config.ts index 2f06aa4..4e9966b 100644 --- a/gui/src/services/config.ts +++ b/gui/src/services/config.ts @@ -1,8 +1,35 @@ import { fs } from "@tauri-apps/api" import { appConfigDir, join } from '@tauri-apps/api/path' +import { State } from '../../../src/state'; -const configDir = appConfigDir().then(c => join(c, 'config.json')); - -export const useConfig = () => { +const configFile = appConfigDir().then(c => join(c, 'config.json')); +const profileDir = appConfigDir().then(c => join(c, 'profile')); +export type Profile = { + state: State, +} + +export type Config = { +} + +const defaultConfig: Config = { +} + +export async function initFiles() { + await fs.createDir(await profileDir, { recursive: true }); + await configFile; +} +initFiles().catch(console.error); + +export async function getConfig(): Promise { + const config = await fs.readTextFile(await configFile); + try { + return JSON.parse(config); + } catch (e) { + return defaultConfig; + } +} + +export async function setConfig(config: Config) { + await fs.writeTextFile(await configFile, JSON.stringify(config)); } diff --git a/gui/vite.config.ts b/gui/vite.config.ts index 8493565..cb16e10 100644 --- a/gui/vite.config.ts +++ b/gui/vite.config.ts @@ -5,7 +5,11 @@ import eslint from 'vite-plugin-eslint'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react(), tsconfigPaths(), eslint()], + plugins: [ + react(), + tsconfigPaths(), + eslint(), + ], // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` // prevent vite from obscuring rust errors From a98e02f15e34e937f52ba40a84e26d9b5ef4e461 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Mon, 6 Mar 2023 22:01:18 +0800 Subject: [PATCH 22/49] feat: use react-router-dom's Link --- gui/src/App.tsx | 2 ++ gui/src/components/Loading.tsx | 5 +++-- gui/src/pages/Guide.tsx | 3 +++ gui/src/pages/Home.tsx | 3 ++- gui/src/pages/Settings.tsx | 3 ++- 5 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 gui/src/pages/Guide.tsx diff --git a/gui/src/App.tsx b/gui/src/App.tsx index eadea29..93133c3 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -5,6 +5,7 @@ import { Routes, Route } from "react-router-dom"; import { Layout } from "components/Layout"; import { Home } from "pages/Home"; import { Settings } from "pages/Settings"; +import { Guide } from 'pages/Guide'; function App() { useEffect(() => { @@ -19,6 +20,7 @@ function App() { }> } /> } /> + } /> ); diff --git a/gui/src/components/Loading.tsx b/gui/src/components/Loading.tsx index cb3789c..aba915d 100644 --- a/gui/src/components/Loading.tsx +++ b/gui/src/components/Loading.tsx @@ -2,8 +2,9 @@ import React from 'react' import { AiOutlineLoading3Quarters } from 'react-icons/ai'; type LoadingProps = { + className?: string } -export const Loading: React.FC = () => { - return +export const Loading: React.FC = ({ className }) => { + return } diff --git a/gui/src/pages/Guide.tsx b/gui/src/pages/Guide.tsx new file mode 100644 index 0000000..8a61a62 --- /dev/null +++ b/gui/src/pages/Guide.tsx @@ -0,0 +1,3 @@ +export const Guide: React.FC = () => { + return <> +} \ No newline at end of file diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 0bd1ffe..179157d 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,5 +1,6 @@ import React from 'react' import { useTranslation } from 'react-i18next'; +import { Link } from "react-router-dom"; export const Home: React.FC = () => { const { t } = useTranslation(); @@ -7,7 +8,7 @@ export const Home: React.FC = () => { return <>
{t('欢迎!')} - {t('配置')} + {t('配置')}
} diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index 83ff952..0e112f9 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -1,3 +1,4 @@ +import { Loading } from 'components/Loading'; import { usePromise } from 'hooks/usePromise'; import React from 'react' import { useTranslation } from 'react-i18next'; @@ -13,7 +14,7 @@ export const Settings: React.FC = () => { } if (loading) { - return
{t('加载中...')}
+ return
} return <> From 4a081e1237f015ec35cc148817969deeaeab33f8 Mon Sep 17 00:00:00 2001 From: imspace Date: Tue, 7 Mar 2023 03:36:06 +0800 Subject: [PATCH 23/49] feat: implement settings page --- gui/.editorconfig | 7 +- gui/package.json | 1 + gui/pnpm-lock.yaml | 766 ++++++++++++++++------------ gui/src-tauri/tauri.conf.json | 6 +- gui/src/components/ErrorContent.tsx | 26 + gui/src/hooks/usePromise.ts | 68 ++- gui/src/pages/Settings.tsx | 122 +++-- gui/src/services/config.ts | 27 +- gui/src/utils/composeLoadable.ts | 19 + gui/src/utils/sleep.ts | 3 + 10 files changed, 666 insertions(+), 379 deletions(-) create mode 100644 gui/src/components/ErrorContent.tsx create mode 100644 gui/src/utils/composeLoadable.ts create mode 100644 gui/src/utils/sleep.ts diff --git a/gui/.editorconfig b/gui/.editorconfig index ebe51d3..e47a131 100644 --- a/gui/.editorconfig +++ b/gui/.editorconfig @@ -8,5 +8,8 @@ indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 -trim_trailing_whitespace = false -insert_final_newline = false \ No newline at end of file +trim_trailing_whitespace = true +insert_final_newline = true + +[*.rs] +indent_size = 4 diff --git a/gui/package.json b/gui/package.json index e83d437..4086458 100644 --- a/gui/package.json +++ b/gui/package.json @@ -12,6 +12,7 @@ }, "dependencies": { "@tauri-apps/api": "^1.2.0", + "classnames": "^2.3.2", "daisyui": "^2.51.3", "i18next": "^22.4.10", "i18next-browser-languagedetector": "^7.0.1", diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index 8f799a2..ced6f7e 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -10,6 +10,7 @@ specifiers: '@types/react-dom': ^18.0.6 '@vitejs/plugin-react': ^3.1.0 autoprefixer: ^10.4.13 + classnames: ^2.3.2 daisyui: ^2.51.3 eslint: ^8.35.0 eslint-config-react-app: ^7.0.1 @@ -29,6 +30,7 @@ specifiers: dependencies: '@tauri-apps/api': 1.2.0 + classnames: registry.npmmirror.com/classnames/2.3.2 daisyui: 2.51.3_gbtt6ss3tbiz4yjtvdr6fbrj44 i18next: 22.4.10 i18next-browser-languagedetector: 7.0.1 @@ -48,7 +50,7 @@ devDependencies: eslint: 8.35.0 eslint-config-react-app: 7.0.1_ycpbpc6yetojsgtrx3mwntkhsu postcss: 8.4.21 - tailwindcss: 3.2.7_postcss@8.4.21 + tailwindcss: 3.2.7 typescript: 4.9.5 vite: 4.1.4_@types+node@18.14.5 vite-plugin-eslint: 1.8.1_eslint@8.35.0+vite@4.1.4 @@ -1415,204 +1417,6 @@ packages: to-fast-properties: 2.0.0 dev: true - /@esbuild/android-arm/0.16.17: - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64/0.16.17: - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64/0.16.17: - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64/0.16.17: - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64/0.16.17: - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64/0.16.17: - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64/0.16.17: - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm/0.16.17: - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64/0.16.17: - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32/0.16.17: - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64/0.16.17: - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el/0.16.17: - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64/0.16.17: - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64/0.16.17: - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x/0.16.17: - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64/0.16.17: - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64/0.16.17: - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64/0.16.17: - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64/0.16.17: - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64/0.16.17: - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32/0.16.17: - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64/0.16.17: - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@eslint/eslintrc/2.0.0: resolution: {integrity: sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1739,101 +1543,20 @@ packages: engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/cli-darwin-arm64/1.2.3: - resolution: {integrity: sha512-phJN3fN8FtZZwqXg08bcxfq1+X1JSDglLvRxOxB7VWPq+O5SuB8uLyssjJsu+PIhyZZnIhTGdjhzLSFhSXfLsw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-darwin-x64/1.2.3: - resolution: {integrity: sha512-jFZ/y6z8z6v4yliIbXKBXA7BJgtZVMsITmEXSuD6s5+eCOpDhQxbRkr6CA+FFfr+/r96rWSDSgDenDQuSvPAKw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-arm-gnueabihf/1.2.3: - resolution: {integrity: sha512-C7h5vqAwXzY0kRGSU00Fj8PudiDWFCiQqqUNI1N+fhCILrzWZB9TPBwdx33ZfXKt/U4+emdIoo/N34v3TiAOmQ==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-arm64-gnu/1.2.3: - resolution: {integrity: sha512-buf1c8sdkuUzVDkGPQpyUdAIIdn5r0UgXU6+H5fGPq/Xzt5K69JzXaeo6fHsZEZghbV0hOK+taKV4J0m30UUMQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-arm64-musl/1.2.3: - resolution: {integrity: sha512-x88wPS9W5xAyk392vc4uNHcKBBvCp0wf4H9JFMF9OBwB7vfd59LbQCFcPSu8f0BI7bPrOsyHqspWHuFL8ojQEA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-x64-gnu/1.2.3: - resolution: {integrity: sha512-ZMz1jxEVe0B4/7NJnlPHmwmSIuwiD6ViXKs8F+OWWz2Y4jn5TGxWKFg7DLx5OwQTRvEIZxxT7lXHi5CuTNAxKg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-x64-musl/1.2.3: - resolution: {integrity: sha512-B/az59EjJhdbZDzawEVox0LQu2ZHCZlk8rJf85AMIktIUoAZPFbwyiUv7/zjzA/sY6Nb58OSJgaPL2/IBy7E0A==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-win32-ia32-msvc/1.2.3: - resolution: {integrity: sha512-ypdO1OdC5ugNJAKO2m3sb1nsd+0TSvMS9Tr5qN/ZSMvtSduaNwrcZ3D7G/iOIanrqu/Nl8t3LYlgPZGBKlw7Ng==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-win32-x64-msvc/1.2.3: - resolution: {integrity: sha512-CsbHQ+XhnV/2csOBBDVfH16cdK00gNyNYUW68isedmqcn8j+s0e9cQ1xXIqi+Hue3awp8g3ImYN5KPepf3UExw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli/1.2.3: resolution: {integrity: sha512-erxtXuPhMEGJPBtnhPILD4AjuT81GZsraqpFvXAmEJZ2p8P6t7MVBifCL8LznRknznM3jn90D3M8RNBP3wcXTw==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.2.3 - '@tauri-apps/cli-darwin-x64': 1.2.3 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.2.3 - '@tauri-apps/cli-linux-arm64-gnu': 1.2.3 - '@tauri-apps/cli-linux-arm64-musl': 1.2.3 - '@tauri-apps/cli-linux-x64-gnu': 1.2.3 - '@tauri-apps/cli-linux-x64-musl': 1.2.3 - '@tauri-apps/cli-win32-ia32-msvc': 1.2.3 - '@tauri-apps/cli-win32-x64-msvc': 1.2.3 + '@tauri-apps/cli-darwin-arm64': registry.npmmirror.com/@tauri-apps/cli-darwin-arm64/1.2.3 + '@tauri-apps/cli-darwin-x64': registry.npmmirror.com/@tauri-apps/cli-darwin-x64/1.2.3 + '@tauri-apps/cli-linux-arm-gnueabihf': registry.npmmirror.com/@tauri-apps/cli-linux-arm-gnueabihf/1.2.3 + '@tauri-apps/cli-linux-arm64-gnu': registry.npmmirror.com/@tauri-apps/cli-linux-arm64-gnu/1.2.3 + '@tauri-apps/cli-linux-arm64-musl': registry.npmmirror.com/@tauri-apps/cli-linux-arm64-musl/1.2.3 + '@tauri-apps/cli-linux-x64-gnu': registry.npmmirror.com/@tauri-apps/cli-linux-x64-gnu/1.2.3 + '@tauri-apps/cli-linux-x64-musl': registry.npmmirror.com/@tauri-apps/cli-linux-x64-musl/1.2.3 + '@tauri-apps/cli-win32-ia32-msvc': registry.npmmirror.com/@tauri-apps/cli-win32-ia32-msvc/1.2.3 + '@tauri-apps/cli-win32-x64-msvc': registry.npmmirror.com/@tauri-apps/cli-win32-x64-msvc/1.2.3 dev: true /@types/eslint/8.21.1: @@ -2359,7 +2082,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2460,7 +2183,7 @@ packages: css-selector-tokenizer: 0.8.0 postcss: 8.4.21 postcss-js: 4.0.1_postcss@8.4.21 - tailwindcss: 3.2.7_postcss@8.4.21 + tailwindcss: 3.2.7 transitivePeerDependencies: - ts-node dev: false @@ -2661,28 +2384,28 @@ packages: hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm/0.16.17 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64/0.16.17 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64/0.16.17 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64/0.16.17 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64/0.16.17 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64/0.16.17 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64/0.16.17 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm/0.16.17 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64/0.16.17 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32/0.16.17 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64/0.16.17 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el/0.16.17 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64/0.16.17 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64/0.16.17 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x/0.16.17 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64/0.16.17 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64/0.16.17 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64/0.16.17 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64/0.16.17 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64/0.16.17 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32/0.16.17 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64/0.16.17 dev: true /escalade/3.1.1: @@ -3120,13 +2843,6 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} @@ -3832,7 +3548,7 @@ packages: peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.21 + postcss: registry.npmmirror.com/postcss/8.4.21 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 @@ -3844,7 +3560,7 @@ packages: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.21 + postcss: registry.npmmirror.com/postcss/8.4.21 /postcss-load-config/3.1.4_postcss@8.4.21: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} @@ -3859,7 +3575,7 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.21 + postcss: registry.npmmirror.com/postcss/8.4.21 yaml: 1.10.2 /postcss-nested/6.0.0_postcss@8.4.21: @@ -3868,7 +3584,7 @@ packages: peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.21 + postcss: registry.npmmirror.com/postcss/8.4.21 postcss-selector-parser: 6.0.11 /postcss-selector-parser/6.0.11: @@ -4093,7 +3809,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /rollup/3.18.0: @@ -4101,7 +3817,7 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /run-parallel/1.2.0: @@ -4246,12 +3962,10 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /tailwindcss/3.2.7_postcss@8.4.21: + /tailwindcss/3.2.7: resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} engines: {node: '>=12.13.0'} hasBin: true - peerDependencies: - postcss: ^8.0.9 dependencies: arg: 5.0.2 chokidar: 3.5.3 @@ -4267,7 +3981,7 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: registry.npmmirror.com/postcss/8.4.21 postcss-import: 14.1.0_postcss@8.4.21 postcss-js: 4.0.1_postcss@8.4.21 postcss-load-config: 3.1.4_postcss@8.4.21 @@ -4396,7 +4110,7 @@ packages: dependencies: browserslist: 4.21.5 escalade: 3.1.1 - picocolors: 1.0.0 + picocolors: registry.npmmirror.com/picocolors/1.0.0 /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -4462,7 +4176,7 @@ packages: resolve: 1.22.1 rollup: 3.18.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /void-elements/3.1.0: @@ -4538,3 +4252,391 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + registry.npmmirror.com/@esbuild/android-arm/0.16.17: + resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz} + name: '@esbuild/android-arm' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm64/0.16.17: + resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz} + name: '@esbuild/android-arm64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64/0.16.17: + resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz} + name: '@esbuild/android-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64/0.16.17: + resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz} + name: '@esbuild/darwin-arm64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64/0.16.17: + resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz} + name: '@esbuild/darwin-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64/0.16.17: + resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64/0.16.17: + resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz} + name: '@esbuild/freebsd-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm/0.16.17: + resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz} + name: '@esbuild/linux-arm' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64/0.16.17: + resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz} + name: '@esbuild/linux-arm64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32/0.16.17: + resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz} + name: '@esbuild/linux-ia32' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64/0.16.17: + resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz} + name: '@esbuild/linux-loong64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el/0.16.17: + resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz} + name: '@esbuild/linux-mips64el' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64/0.16.17: + resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz} + name: '@esbuild/linux-ppc64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64/0.16.17: + resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz} + name: '@esbuild/linux-riscv64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x/0.16.17: + resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz} + name: '@esbuild/linux-s390x' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64/0.16.17: + resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz} + name: '@esbuild/linux-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64/0.16.17: + resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz} + name: '@esbuild/netbsd-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64/0.16.17: + resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz} + name: '@esbuild/openbsd-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64/0.16.17: + resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz} + name: '@esbuild/sunos-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64/0.16.17: + resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz} + name: '@esbuild/win32-arm64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32/0.16.17: + resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz} + name: '@esbuild/win32-ia32' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64/0.16.17: + resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz} + name: '@esbuild/win32-x64' + version: 0.16.17 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-darwin-arm64/1.2.3: + resolution: {integrity: sha512-phJN3fN8FtZZwqXg08bcxfq1+X1JSDglLvRxOxB7VWPq+O5SuB8uLyssjJsu+PIhyZZnIhTGdjhzLSFhSXfLsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.2.3.tgz} + name: '@tauri-apps/cli-darwin-arm64' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-darwin-x64/1.2.3: + resolution: {integrity: sha512-jFZ/y6z8z6v4yliIbXKBXA7BJgtZVMsITmEXSuD6s5+eCOpDhQxbRkr6CA+FFfr+/r96rWSDSgDenDQuSvPAKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.2.3.tgz} + name: '@tauri-apps/cli-darwin-x64' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-linux-arm-gnueabihf/1.2.3: + resolution: {integrity: sha512-C7h5vqAwXzY0kRGSU00Fj8PudiDWFCiQqqUNI1N+fhCILrzWZB9TPBwdx33ZfXKt/U4+emdIoo/N34v3TiAOmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.2.3.tgz} + name: '@tauri-apps/cli-linux-arm-gnueabihf' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-linux-arm64-gnu/1.2.3: + resolution: {integrity: sha512-buf1c8sdkuUzVDkGPQpyUdAIIdn5r0UgXU6+H5fGPq/Xzt5K69JzXaeo6fHsZEZghbV0hOK+taKV4J0m30UUMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.2.3.tgz} + name: '@tauri-apps/cli-linux-arm64-gnu' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-linux-arm64-musl/1.2.3: + resolution: {integrity: sha512-x88wPS9W5xAyk392vc4uNHcKBBvCp0wf4H9JFMF9OBwB7vfd59LbQCFcPSu8f0BI7bPrOsyHqspWHuFL8ojQEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.2.3.tgz} + name: '@tauri-apps/cli-linux-arm64-musl' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-linux-x64-gnu/1.2.3: + resolution: {integrity: sha512-ZMz1jxEVe0B4/7NJnlPHmwmSIuwiD6ViXKs8F+OWWz2Y4jn5TGxWKFg7DLx5OwQTRvEIZxxT7lXHi5CuTNAxKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.2.3.tgz} + name: '@tauri-apps/cli-linux-x64-gnu' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-linux-x64-musl/1.2.3: + resolution: {integrity: sha512-B/az59EjJhdbZDzawEVox0LQu2ZHCZlk8rJf85AMIktIUoAZPFbwyiUv7/zjzA/sY6Nb58OSJgaPL2/IBy7E0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.2.3.tgz} + name: '@tauri-apps/cli-linux-x64-musl' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-win32-ia32-msvc/1.2.3: + resolution: {integrity: sha512-ypdO1OdC5ugNJAKO2m3sb1nsd+0TSvMS9Tr5qN/ZSMvtSduaNwrcZ3D7G/iOIanrqu/Nl8t3LYlgPZGBKlw7Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.2.3.tgz} + name: '@tauri-apps/cli-win32-ia32-msvc' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@tauri-apps/cli-win32-x64-msvc/1.2.3: + resolution: {integrity: sha512-CsbHQ+XhnV/2csOBBDVfH16cdK00gNyNYUW68isedmqcn8j+s0e9cQ1xXIqi+Hue3awp8g3ImYN5KPepf3UExw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.2.3.tgz} + name: '@tauri-apps/cli-win32-x64-msvc' + version: 1.2.3 + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/classnames/2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz} + name: classnames + version: 2.3.2 + dev: false + + registry.npmmirror.com/fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} + name: nanoid + version: 3.3.4 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + registry.npmmirror.com/picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + + registry.npmmirror.com/postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz} + name: postcss + version: 8.4.21 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid/3.3.4 + picocolors: registry.npmmirror.com/picocolors/1.0.0 + source-map-js: registry.npmmirror.com/source-map-js/1.0.2 + + registry.npmmirror.com/source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 99a0ebd..d1a4f6c 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -39,9 +39,9 @@ }, "fs": { "scope": [ - "$APPCONFIG/*", - "$APPDATA/*", - "$APPCACHE/*" + "$APPCONFIG/**/*", + "$APPDATA/**/*", + "$APPCACHE/**/*" ], "all": true }, diff --git a/gui/src/components/ErrorContent.tsx b/gui/src/components/ErrorContent.tsx new file mode 100644 index 0000000..bdf9b59 --- /dev/null +++ b/gui/src/components/ErrorContent.tsx @@ -0,0 +1,26 @@ +import React from 'react' +import { useTranslation } from 'react-i18next' +import { AiOutlineWarning } from 'react-icons/ai' + +type ErrorContentProps = { + error: any + retry?: () => void +} + +export const ErrorContent: React.FC = ({ error, retry }) => { + const { t } = useTranslation(); + + if (!error) { + return <>; + } + + return
+ + +
+
{t('发生了错误')}{retry && }
+ {String(error)} +
+
+
+} diff --git a/gui/src/hooks/usePromise.ts b/gui/src/hooks/usePromise.ts index a89ce41..c2d8698 100644 --- a/gui/src/hooks/usePromise.ts +++ b/gui/src/hooks/usePromise.ts @@ -2,9 +2,7 @@ import { useState } from "react"; /** * A hook that returns a promise and its state. - * - * The promise is only created once, and the state is updated when the promise resolves or rejects. - * + * * @param factory A function that returns a promise. * @returns An object containing the promise's state and result. * @example @@ -20,21 +18,67 @@ import { useState } from "react"; * return

Result: {result}

; */ export function usePromise(factory: () => Promise) { - const [loading, setLoading] = useState(true); - const [result, setResult] = useState(undefined); - const [error, setError] = useState(undefined); - const [promise] = useState(() => { + const init = () => { const promise = factory(); if (!promise || typeof promise.then !== "function") { throw new Error("The factory function must return a promise."); } return promise - .then(setResult) - .catch(setError) - .finally(() => { + .then(r => { + setResult(r); setLoading(false); + return r; + }) + .catch(e => { + setError(e); + setLoading(false); + throw e; }); - }); + } + const [loading, setLoading] = useState(true); + const [result, setResult] = useState(undefined); + const [error, setError] = useState(undefined); + const [promise, setPromise] = useState(init); + const retry = () => { + setLoading(true); + setResult(undefined); + setError(undefined); + setPromise(init); + } - return { loading, result, error, promise }; + return { loading, result, error, promise, retry }; +} + +/** + * A hook that returns a promise and its state. + */ +export function usePromiseLazy(factory: (...args: Args) => Promise) { + const init = (promise: Promise) => { + if (!promise || typeof promise.then !== "function") { + throw new Error("The factory function must return a promise."); + } + return promise + .then(r => { + setResult(r); + setLoading(false); + return r; + }) + .catch(e => { + setError(e); + setLoading(false); + throw e; + }); + } + const [loading, setLoading] = useState(false); + const [result, setResult] = useState(undefined); + const [error, setError] = useState(undefined); + const [promise, setPromise] = useState | undefined>(undefined); + const execute = (...args: Args) => { + setLoading(true); + setResult(undefined); + setError(undefined); + setPromise(init(factory(...args))); + } + + return [execute, { loading, result, error, promise }] as const; } diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index 0e112f9..62eef60 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -1,41 +1,105 @@ +import { ErrorContent } from 'components/ErrorContent'; import { Loading } from 'components/Loading'; -import { usePromise } from 'hooks/usePromise'; -import React from 'react' +import { usePromise, usePromiseLazy } from 'hooks/usePromise'; +import React, { useState } from 'react' import { useTranslation } from 'react-i18next'; import { AiOutlineLeft } from 'react-icons/ai'; import { useNavigate } from 'react-router-dom'; -import { getConfig } from 'services/config'; +import { Config, getConfig, getProfile, Profile, setConfig, setProfile } from 'services/config'; +import { composeLoadable } from 'utils/composeLoadable'; +import classNames from 'classnames'; -export const Settings: React.FC = () => { - const { loading, result, error } = usePromise(getConfig); - const navigate = useNavigate(); +const Page: React.FC<{ children?: React.ReactNode }> = ({ children }) => { const { t } = useTranslation(); - const onSave = async () => { - } + const navigate = useNavigate(); + return
+

{t('配置')}

+ {children} +
+} - if (loading) { - return
- } +type FormData = { + config: Config, + profile: Profile, +} + +const Form: React.FC<{ + oldValue: FormData, + onSaved?: () => void, +}> = ({ oldValue, onSaved }) => { + const { t } = useTranslation(); + const [value, setValue] = useState(oldValue); + + const changed = JSON.stringify(value) !== JSON.stringify(oldValue); + + const [onSave, { loading, error }] = usePromiseLazy(async () => { + await setProfile(0, value.profile); + await setConfig(value.config); + onSaved?.(); + }) return <> -
-

{t('配置')}

-
-
- - -
+
+
+ + setValue({ + ...value, + profile: { + ...value.profile, + state: { + ...value.profile.state, + statInkApiKey: e.target.value, + } + } + })} + />
- +
+ +
+ +
-} \ No newline at end of file +} + +export const Settings: React.FC = () => { + let { loading, error, retry, result } = composeLoadable({ + config: usePromise(getConfig), + profile: usePromise(() => getProfile(0)), + }); + + if (loading) { + return +
+
+ } + + if (error) { + return + + + } + + return + {result &&
} + +} diff --git a/gui/src/services/config.ts b/gui/src/services/config.ts index 4e9966b..0ab006b 100644 --- a/gui/src/services/config.ts +++ b/gui/src/services/config.ts @@ -12,6 +12,18 @@ export type Profile = { export type Config = { } +// TODO: import from state.ts. +const DEFAULT_STATE: State = { + cacheDir: "./cache", + fGen: "https://api.imink.app/f", + fileExportPath: "./export", + monitorInterval: 500, +}; + +const defaultProfile: Profile = { + state: DEFAULT_STATE, +} + const defaultConfig: Config = { } @@ -22,8 +34,8 @@ export async function initFiles() { initFiles().catch(console.error); export async function getConfig(): Promise { - const config = await fs.readTextFile(await configFile); try { + const config = await fs.readTextFile(await configFile); return JSON.parse(config); } catch (e) { return defaultConfig; @@ -33,3 +45,16 @@ export async function getConfig(): Promise { export async function setConfig(config: Config) { await fs.writeTextFile(await configFile, JSON.stringify(config)); } + +export async function getProfile(index: number): Promise { + try { + const profile = await fs.readTextFile(await profileDir.then(c => join(c, `${index}.json`))); + return JSON.parse(profile); + } catch (e) { + return defaultProfile; + } +} + +export async function setProfile(index: number, profile: Profile) { + await fs.writeTextFile(await profileDir.then(c => join(c, `${index}.json`)), JSON.stringify(profile)); +} diff --git a/gui/src/utils/composeLoadable.ts b/gui/src/utils/composeLoadable.ts new file mode 100644 index 0000000..40e0a04 --- /dev/null +++ b/gui/src/utils/composeLoadable.ts @@ -0,0 +1,19 @@ +export type Loadable = { + loading: boolean; + result?: T; + error?: any; + retry?: () => void; +} + +export function composeLoadable>>(map: T): Loadable<{ + [P in keyof T]: T[P] extends Loadable ? R : never +}> { + const values = Object.values(map) + + const loading = values.some(v => v.loading); + const error = values.find(v => v.error)?.error; + const result = loading || error ? undefined : Object.fromEntries(Object.entries(map).map(([k, v]) => [k, v.result])) as any; + const retry = values.some(i => !!i.retry) ? () => Object.values(map).forEach(v => v.retry?.()) : undefined; + + return { loading, result, error, retry }; +} diff --git a/gui/src/utils/sleep.ts b/gui/src/utils/sleep.ts new file mode 100644 index 0000000..8a73cf4 --- /dev/null +++ b/gui/src/utils/sleep.ts @@ -0,0 +1,3 @@ +export function sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} From 27729dacc65988757a203e1ad25655608e552494 Mon Sep 17 00:00:00 2001 From: imspace Date: Tue, 7 Mar 2023 04:04:00 +0800 Subject: [PATCH 24/49] feat: add sesionToken field in settings --- gui/src/main.css | 6 ++++ gui/src/pages/Home.tsx | 21 ++++++++++++++ gui/src/pages/Settings.tsx | 57 +++++++++++++++++++++++++++++++++----- 3 files changed, 77 insertions(+), 7 deletions(-) diff --git a/gui/src/main.css b/gui/src/main.css index 0a64731..c485c46 100644 --- a/gui/src/main.css +++ b/gui/src/main.css @@ -34,3 +34,9 @@ body { background-color: #2f2f2f; } } + +/* custom classes */ + +.flex-auto-all > * { + @apply flex-auto; +} diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 179157d..8419323 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,10 +1,31 @@ +import { ErrorContent } from 'components/ErrorContent'; +import { Loading } from 'components/Loading'; +import { usePromise } from 'hooks/usePromise'; import React from 'react' import { useTranslation } from 'react-i18next'; import { Link } from "react-router-dom"; +import { getConfig, getProfile } from 'services/config'; +import { composeLoadable } from 'utils/composeLoadable'; export const Home: React.FC = () => { + let { loading, error, retry, result } = composeLoadable({ + config: usePromise(getConfig), + profile: usePromise(() => getProfile(0)), + }); const { t } = useTranslation(); + if (loading) { + return <> +
+ + } + + if (error) { + return <> + + + } + return <>
{t('欢迎!')} diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index 62eef60..f678525 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -8,6 +8,7 @@ import { useNavigate } from 'react-router-dom'; import { Config, getConfig, getProfile, Profile, setConfig, setProfile } from 'services/config'; import { composeLoadable } from 'utils/composeLoadable'; import classNames from 'classnames'; +import { useLogin } from 'services/s3si'; const Page: React.FC<{ children?: React.ReactNode }> = ({ children }) => { const { t } = useTranslation(); @@ -27,20 +28,60 @@ const Form: React.FC<{ oldValue: FormData, onSaved?: () => void, }> = ({ oldValue, onSaved }) => { + const { login } = useLogin(); const { t } = useTranslation(); const [value, setValue] = useState(oldValue); const changed = JSON.stringify(value) !== JSON.stringify(oldValue); + const setSessionToken = (t: string) => setValue({ + ...value, + profile: { + ...value.profile, + state: { + ...value.profile.state, + loginState: { + ...value.profile.state.loginState, + sessionToken: t, + }, + } + } + }) + const [onSave, { loading, error }] = usePromiseLazy(async () => { await setProfile(0, value.profile); await setConfig(value.config); onSaved?.(); }) + const [onLogin, loginState] = usePromiseLazy(async () => { + const result = await login(); + if (!result) { + return; + } + setSessionToken(result.sessionToken); + }) return <>
-
+
+ + setSessionToken(e.target.value)} + /> +
+
-
- - +
+
From 90aeaefae795ad71f8398cbffd885241e8db51d6 Mon Sep 17 00:00:00 2001 From: imspace Date: Tue, 7 Mar 2023 04:27:48 +0800 Subject: [PATCH 25/49] feat: better window size --- gui/package.json | 3 +- gui/pnpm-lock.yaml | 319 ++++++++++++++++++++++++++++++-- gui/src-tauri/Cargo.lock | 7 + gui/src-tauri/Cargo.toml | 1 + gui/src-tauri/src/main.rs | 20 +- gui/src-tauri/tauri.conf.json | 2 + gui/src/App.tsx | 13 +- gui/src/hooks/useShowWindow.ts | 20 ++ gui/src/pages/RedirectLogin.tsx | 25 +++ gui/src/pages/Settings.tsx | 1 + 10 files changed, 379 insertions(+), 32 deletions(-) create mode 100644 gui/src/hooks/useShowWindow.ts create mode 100644 gui/src/pages/RedirectLogin.tsx diff --git a/gui/package.json b/gui/package.json index 4086458..56f5706 100644 --- a/gui/package.json +++ b/gui/package.json @@ -20,7 +20,8 @@ "react-dom": "^18.2.0", "react-i18next": "^12.2.0", "react-icons": "^4.8.0", - "react-router-dom": "^6.8.2" + "react-router-dom": "^6.8.2", + "react-use": "^17.4.0" }, "devDependencies": { "@tauri-apps/cli": "^1.2.3", diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index ced6f7e..e275001 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -22,6 +22,7 @@ specifiers: react-i18next: ^12.2.0 react-icons: ^4.8.0 react-router-dom: ^6.8.2 + react-use: ^17.4.0 tailwindcss: ^3.2.7 typescript: ^4.9.5 vite: ^4.1.4 @@ -39,6 +40,7 @@ dependencies: react-i18next: 12.2.0_3yopsigl4h4eb2nqrqfsy65uwi react-icons: 4.8.0_react@18.2.0 react-router-dom: 6.8.2_biqbaboplfbrettd7655fr4n2y + react-use: registry.npmmirror.com/react-use/17.4.0_biqbaboplfbrettd7655fr4n2y devDependencies: '@tauri-apps/cli': 1.2.3 @@ -1379,7 +1381,8 @@ packages: resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 + dev: false /@babel/template/7.20.7: resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} @@ -1804,7 +1807,7 @@ packages: /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: - fast-deep-equal: 3.1.3 + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 @@ -1934,7 +1937,7 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': 7.21.0 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 cosmiconfig: 7.1.0 resolve: 1.22.1 dev: true @@ -1996,7 +1999,7 @@ packages: '@babel/preset-env': 7.20.2_@babel+core@7.21.0 '@babel/preset-react': 7.18.6_@babel+core@7.21.0 '@babel/preset-typescript': 7.21.0_@babel+core@7.21.0 - '@babel/runtime': 7.21.0 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 babel-plugin-macros: 3.1.0 babel-plugin-transform-react-remove-prop-types: 0.4.24 transitivePeerDependencies: @@ -2574,7 +2577,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.21.0 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 aria-query: 5.1.3 array-includes: 3.1.6 array.prototype.flatmap: 1.3.1 @@ -3729,13 +3732,10 @@ packages: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /regenerator-runtime/0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - /regenerator-transform/0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: - '@babel/runtime': 7.21.0 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 dev: true /regexp.prototype.flags/1.4.3: @@ -4030,17 +4030,13 @@ packages: strip-bom: 3.0.0 dev: true - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - /tsutils/3.21.0_typescript@4.9.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: - tslib: 1.14.1 + tslib: registry.npmmirror.com/tslib/1.14.1 typescript: 4.9.5 dev: true @@ -4253,6 +4249,14 @@ packages: engines: {node: '>=10'} dev: true + registry.npmmirror.com/@babel/runtime/7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz} + name: '@babel/runtime' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 + registry.npmmirror.com/@esbuild/android-arm/0.16.17: resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz} name: '@esbuild/android-arm' @@ -4598,12 +4602,87 @@ packages: dev: true optional: true + registry.npmmirror.com/@types/js-cookie/2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz} + name: '@types/js-cookie' + version: 2.2.7 + dev: false + + registry.npmmirror.com/@xobotyi/scrollbar-width/1.9.5: + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz} + name: '@xobotyi/scrollbar-width' + version: 1.9.5 + dev: false + registry.npmmirror.com/classnames/2.3.2: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz} name: classnames version: 2.3.2 dev: false + registry.npmmirror.com/copy-to-clipboard/3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz} + name: copy-to-clipboard + version: 3.3.3 + dependencies: + toggle-selection: registry.npmmirror.com/toggle-selection/1.0.6 + dev: false + + registry.npmmirror.com/css-in-js-utils/3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz} + name: css-in-js-utils + version: 3.1.0 + dependencies: + hyphenate-style-name: registry.npmmirror.com/hyphenate-style-name/1.0.4 + dev: false + + registry.npmmirror.com/css-tree/1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz} + name: css-tree + version: 1.1.3 + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data/2.0.14 + source-map: registry.npmmirror.com/source-map/0.6.1 + dev: false + + registry.npmmirror.com/csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.1.tgz} + name: csstype + version: 3.1.1 + dev: false + + registry.npmmirror.com/error-stack-parser/2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz} + name: error-stack-parser + version: 2.1.4 + dependencies: + stackframe: registry.npmmirror.com/stackframe/1.3.4 + dev: false + + registry.npmmirror.com/fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + + registry.npmmirror.com/fast-loops/1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-loops/-/fast-loops-1.1.3.tgz} + name: fast-loops + version: 1.1.3 + dev: false + + registry.npmmirror.com/fast-shallow-equal/1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz} + name: fast-shallow-equal + version: 1.0.0 + dev: false + + registry.npmmirror.com/fastest-stable-stringify/2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz} + name: fastest-stable-stringify + version: 2.0.2 + dev: false + registry.npmmirror.com/fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} name: fsevents @@ -4613,6 +4692,54 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/hyphenate-style-name/1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz} + name: hyphenate-style-name + version: 1.0.4 + dev: false + + registry.npmmirror.com/inline-style-prefixer/6.0.4: + resolution: {integrity: sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz} + name: inline-style-prefixer + version: 6.0.4 + dependencies: + css-in-js-utils: registry.npmmirror.com/css-in-js-utils/3.1.0 + fast-loops: registry.npmmirror.com/fast-loops/1.1.3 + dev: false + + registry.npmmirror.com/js-cookie/2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz} + name: js-cookie + version: 2.2.1 + dev: false + + registry.npmmirror.com/mdn-data/2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz} + name: mdn-data + version: 2.0.14 + dev: false + + registry.npmmirror.com/nano-css/5.3.5_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-vSB9X12bbNu4ALBu7nigJgRViZ6ja3OU7CeuiV1zMIbXOdmkLahgtPmh3GBOlDxbKY0CitqlPdOReGlBLSp+yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nano-css/-/nano-css-5.3.5.tgz} + id: registry.npmmirror.com/nano-css/5.3.5 + name: nano-css + version: 5.3.5 + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + css-tree: registry.npmmirror.com/css-tree/1.1.3 + csstype: registry.npmmirror.com/csstype/3.1.1 + fastest-stable-stringify: registry.npmmirror.com/fastest-stable-stringify/2.0.2 + inline-style-prefixer: registry.npmmirror.com/inline-style-prefixer/6.0.4 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + rtl-css-js: registry.npmmirror.com/rtl-css-js/1.16.1 + sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8 + stacktrace-js: registry.npmmirror.com/stacktrace-js/2.0.2 + stylis: registry.npmmirror.com/stylis/4.1.3 + dev: false + registry.npmmirror.com/nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} name: nanoid @@ -4635,8 +4762,172 @@ packages: picocolors: registry.npmmirror.com/picocolors/1.0.0 source-map-js: registry.npmmirror.com/source-map-js/1.0.2 + registry.npmmirror.com/react-universal-interface/0.6.2_react@18.2.0+tslib@2.5.0: + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz} + id: registry.npmmirror.com/react-universal-interface/0.6.2 + name: react-universal-interface + version: 0.6.2 + peerDependencies: + react: '*' + tslib: '*' + dependencies: + react: 18.2.0 + tslib: registry.npmmirror.com/tslib/2.5.0 + dev: false + + registry.npmmirror.com/react-use/17.4.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-TgbNTCA33Wl7xzIJegn1HndB4qTS9u03QUwyNycUnXaweZkE4Kq2SB+Yoxx8qbshkZGYBDvUXbXWRUmQDcZZ/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-use/-/react-use-17.4.0.tgz} + id: registry.npmmirror.com/react-use/17.4.0 + name: react-use + version: 17.4.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@types/js-cookie': registry.npmmirror.com/@types/js-cookie/2.2.7 + '@xobotyi/scrollbar-width': registry.npmmirror.com/@xobotyi/scrollbar-width/1.9.5 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard/3.3.3 + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + fast-shallow-equal: registry.npmmirror.com/fast-shallow-equal/1.0.0 + js-cookie: registry.npmmirror.com/js-cookie/2.2.1 + nano-css: registry.npmmirror.com/nano-css/5.3.5_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-universal-interface: registry.npmmirror.com/react-universal-interface/0.6.2_react@18.2.0+tslib@2.5.0 + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill/1.5.1 + screenfull: registry.npmmirror.com/screenfull/5.2.0 + set-harmonic-interval: registry.npmmirror.com/set-harmonic-interval/1.0.1 + throttle-debounce: registry.npmmirror.com/throttle-debounce/3.0.1 + ts-easing: registry.npmmirror.com/ts-easing/0.2.0 + tslib: registry.npmmirror.com/tslib/2.5.0 + dev: false + + registry.npmmirror.com/regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + name: regenerator-runtime + version: 0.13.11 + + registry.npmmirror.com/resize-observer-polyfill/1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz} + name: resize-observer-polyfill + version: 1.5.1 + dev: false + + registry.npmmirror.com/rtl-css-js/1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rtl-css-js/-/rtl-css-js-1.16.1.tgz} + name: rtl-css-js + version: 1.16.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 + dev: false + + registry.npmmirror.com/screenfull/5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz} + name: screenfull + version: 5.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/set-harmonic-interval/1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz} + name: set-harmonic-interval + version: 1.0.1 + engines: {node: '>=6.9'} + dev: false + registry.npmmirror.com/source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} name: source-map-js version: 1.0.2 engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map/0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz} + name: source-map + version: 0.5.6 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + name: sourcemap-codec + version: 1.4.8 + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: false + + registry.npmmirror.com/stack-generator/2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stack-generator/-/stack-generator-2.0.10.tgz} + name: stack-generator + version: 2.0.10 + dependencies: + stackframe: registry.npmmirror.com/stackframe/1.3.4 + dev: false + + registry.npmmirror.com/stackframe/1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz} + name: stackframe + version: 1.3.4 + dev: false + + registry.npmmirror.com/stacktrace-gps/3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz} + name: stacktrace-gps + version: 3.1.2 + dependencies: + source-map: registry.npmmirror.com/source-map/0.5.6 + stackframe: registry.npmmirror.com/stackframe/1.3.4 + dev: false + + registry.npmmirror.com/stacktrace-js/2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz} + name: stacktrace-js + version: 2.0.2 + dependencies: + error-stack-parser: registry.npmmirror.com/error-stack-parser/2.1.4 + stack-generator: registry.npmmirror.com/stack-generator/2.0.10 + stacktrace-gps: registry.npmmirror.com/stacktrace-gps/3.1.2 + dev: false + + registry.npmmirror.com/stylis/4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.1.3.tgz} + name: stylis + version: 4.1.3 + dev: false + + registry.npmmirror.com/throttle-debounce/3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz} + name: throttle-debounce + version: 3.0.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/toggle-selection/1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} + name: toggle-selection + version: 1.0.6 + dev: false + + registry.npmmirror.com/ts-easing/0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-easing/-/ts-easing-0.2.0.tgz} + name: ts-easing + version: 0.2.0 + dev: false + + registry.npmmirror.com/tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: true + + registry.npmmirror.com/tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz} + name: tslib + version: 2.5.0 + dev: false diff --git a/gui/src-tauri/Cargo.lock b/gui/src-tauri/Cargo.lock index aee54d7..e2a7557 100644 --- a/gui/src-tauri/Cargo.lock +++ b/gui/src-tauri/Cargo.lock @@ -2006,6 +2006,7 @@ dependencies = [ "tauri", "tauri-build", "tokio", + "urlencoding", ] [[package]] @@ -2835,6 +2836,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" + [[package]] name = "utf-8" version = "0.7.6" diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index 2941aa6..d4dfdb2 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -17,6 +17,7 @@ tauri = { version = "1.2", features = ["fs-all", "path-all", "shell-execute", "s serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { version = "1.0", features = ["time"] } +urlencoding = "2.1.2" [features] # this feature is used for production builds or when `devPath` points to the filesystem diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index 0376617..d08cb05 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -38,11 +38,18 @@ detectAndInject(); // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command #[tauri::command] async fn open_login_window(app: tauri::AppHandle, url: String) -> Option { - let window = WindowBuilder::new(&app, "login", tauri::WindowUrl::App("/".into())) - .title("Login") - .initialization_script(INIT_SCRIPT) - .build() - .ok()?; + let encoded = urlencoding::encode(&url); + let window = WindowBuilder::new( + &app, + "login", + tauri::WindowUrl::App(format!("/redirect?url={encoded}").into()), + ) + .title("Login") + .center() + .inner_size(1040.0, 960.0) + .initialization_script(INIT_SCRIPT) + .build() + .ok()?; let result: Arc>> = Arc::new(Mutex::new(None)); let r2 = result.clone(); let r3 = result.clone(); @@ -59,9 +66,6 @@ async fn open_login_window(app: tauri::AppHandle, url: String) -> Option } } }); - window - .eval(&format!("window.location.href = '{}'", url)) - .ok()?; loop { sleep(Duration::from_millis(100)).await; diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index d1a4f6c..58bb55a 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -77,6 +77,8 @@ "title": "s3si.ts", "width": 400, "height": 300, + "minWidth": 320, + "minHeight": 300, "visible": false } ] diff --git a/gui/src/App.tsx b/gui/src/App.tsx index 93133c3..7efa47e 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,26 +1,21 @@ import 'i18n/config'; -import { useEffect } from "react"; -import { getCurrent } from "@tauri-apps/api/window"; import { Routes, Route } from "react-router-dom"; import { Layout } from "components/Layout"; import { Home } from "pages/Home"; import { Settings } from "pages/Settings"; import { Guide } from 'pages/Guide'; +import { RedirectLogin } from 'pages/RedirectLogin'; +import { useShowWindow } from 'hooks/useShowWindow'; function App() { - useEffect(() => { - try { - getCurrent().show().catch(e => console.error(e)) - } catch (e) { - console.error(e) - } - }, []) + useShowWindow(); return ( }> } /> } /> } /> + } /> ); diff --git a/gui/src/hooks/useShowWindow.ts b/gui/src/hooks/useShowWindow.ts new file mode 100644 index 0000000..8036329 --- /dev/null +++ b/gui/src/hooks/useShowWindow.ts @@ -0,0 +1,20 @@ +import { useCallback, useEffect } from "react"; +import { getCurrent } from "@tauri-apps/api/window"; + +export const useShowWindow = () => { + const show = useCallback(() => { + if (window.location.pathname === '/hide') { + return; + } + try { + getCurrent().show().catch(e => console.error(e)) + } catch (e) { + console.error(e) + } + }, []) + useEffect(() => { + show(); + }, [show]) + + return show; +} diff --git a/gui/src/pages/RedirectLogin.tsx b/gui/src/pages/RedirectLogin.tsx new file mode 100644 index 0000000..62ff328 --- /dev/null +++ b/gui/src/pages/RedirectLogin.tsx @@ -0,0 +1,25 @@ +import { Loading } from 'components/Loading'; +import React, { useEffect } from 'react' +import { useTranslation } from 'react-i18next'; +import { useLocation } from 'react-use'; + +export const RedirectLogin: React.FC = () => { + const { t } = useTranslation(); + const state = useLocation(); + + useEffect(() => { + const search = state.search ?? ''; + + const index = search.indexOf('url='); + if (index === -1) { + return; + } + const url = decodeURIComponent(search.substring(index + 4)); + + window.location.href = url; + }, [state]) + + return
+ {t('正在跳转到登录页面...')} +
+} diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index f678525..9dc0be4 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -71,6 +71,7 @@ const Form: React.FC<{ loading: loginState.loading, })} onClick={onLogin} + disabled={loginState.loading} >{t('网页登录')} Date: Tue, 7 Mar 2023 04:32:09 +0800 Subject: [PATCH 26/49] feat: add stat.ink link, extract constant --- gui/src/constant/index.ts | 4 ++++ gui/src/pages/Home.tsx | 10 +++++++--- gui/src/pages/Settings.tsx | 3 ++- 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 gui/src/constant/index.ts diff --git a/gui/src/constant/index.ts b/gui/src/constant/index.ts new file mode 100644 index 0000000..d9ea00a --- /dev/null +++ b/gui/src/constant/index.ts @@ -0,0 +1,4 @@ +/** + * https://stat.ink + */ +export const STAT_INK = 'https://stat.ink' diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 8419323..aed01bf 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,5 +1,6 @@ import { ErrorContent } from 'components/ErrorContent'; import { Loading } from 'components/Loading'; +import { STAT_INK } from 'constant'; import { usePromise } from 'hooks/usePromise'; import React from 'react' import { useTranslation } from 'react-i18next'; @@ -8,7 +9,7 @@ import { getConfig, getProfile } from 'services/config'; import { composeLoadable } from 'utils/composeLoadable'; export const Home: React.FC = () => { - let { loading, error, retry, result } = composeLoadable({ + let { loading, error, retry } = composeLoadable({ config: usePromise(getConfig), profile: usePromise(() => getProfile(0)), }); @@ -28,8 +29,11 @@ export const Home: React.FC = () => { return <>
- {t('欢迎!')} - {t('配置')} +

{t('欢迎!')}

+
+ {t('配置')} + {t('前往 stat.ink')} +
} diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index 9dc0be4..402a6fc 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -9,6 +9,7 @@ import { Config, getConfig, getProfile, Profile, setConfig, setProfile } from 's import { composeLoadable } from 'utils/composeLoadable'; import classNames from 'classnames'; import { useLogin } from 'services/s3si'; +import { STAT_INK } from 'constant'; const Page: React.FC<{ children?: React.ReactNode }> = ({ children }) => { const { t } = useTranslation(); @@ -89,7 +90,7 @@ const Form: React.FC<{ className='underline' target='_blank' rel='noopener noreferrer' - href='https://stat.ink/profile' + href={`${STAT_INK}/profile`} title={t('打开 stat.ink') ?? undefined} >{t('stat.ink')} From 3b36a6b7d8b9cd624351c4100b699c95192f6cca Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Wed, 8 Mar 2023 18:32:45 +0800 Subject: [PATCH 27/49] build: add release actions --- .github/workflows/ci.yaml | 4 + .github/workflows/release.yaml | 74 ++++++++ gui/package.json | 2 +- gui/src-tauri/Cargo.lock | 321 +++++++++++++++++++++++++++++++++ gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/tauri.conf.json | 11 +- 6 files changed, 409 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 27fd0f7..696628d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,6 +12,10 @@ jobs: - uses: denoland/setup-deno@v1 with: deno-version: ${{ matrix.deno }} + - uses: actions/cache@v2 + with: + path: ~/.deno + key: ${{ runner.os }}-${{ matrix.platform }}-deno-${{ hashFiles('deno.lock') }} - name: Check fmt run: deno fmt --check - name: Run lint diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..5f38c3a --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,74 @@ +name: Release +on: + push: + tags: + - "gui-v*" + workflow_dispatch: + +jobs: + release: + permissions: + contents: write + strategy: + matrix: + platform: [macos-latest, ubuntu-20.04, windows-latest] + runs-on: ${{ matrix.platform }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-20.04' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev + + - uses: denoland/setup-deno@v1 + with: + deno-version: 1.x + + - uses: actions/cache@v2 + with: + path: ~/.deno + key: ${{ runner.os }}-${{ matrix.platform }}-deno-${{ hashFiles('deno.lock') }} + + - name: Rust setup + uses: dtolnay/rust-toolchain@stable + + - name: Rust cache + uses: swatinem/rust-cache@v2 + with: + workspaces: "./gui/src-tauri -> target" + + - uses: pnpm/action-setup@v2 + with: + version: 7.29.1 + + - name: Sync node version and setup cache + uses: actions/setup-node@v3 + with: + node-version: "lts/*" + cache: "pnpm" + cache-dependency-path: gui/pnpm-lock.yaml + + - name: Compile s3si.ts + run: deno run -A ./scripts/compile.ts + + - name: Install app dependencies + working-directory: ./gui + run: pnpm i + + - name: Build the app + uses: tauri-apps/tauri-action@v0 + + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + with: + tagName: ${{ github.ref_name }} + releaseName: "s3si.ts v__VERSION__" + releaseBody: "See the assets to download and install this version." + releaseDraft: true + prerelease: false + projectPath: ./gui diff --git a/gui/package.json b/gui/package.json index 56f5706..8c5a034 100644 --- a/gui/package.json +++ b/gui/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "build": "tsc && vite build", + "build": "vite build", "preview": "vite preview", "tauri": "tauri", "lint": "eslint --max-warnings=0 src" diff --git a/gui/src-tauri/Cargo.lock b/gui/src-tauri/Cargo.lock index e2a7557..ddeb793 100644 --- a/gui/src-tauri/Cargo.lock +++ b/gui/src-tauri/Cargo.lock @@ -62,6 +62,22 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "attohttpc" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" +dependencies = [ + "flate2", + "http", + "log", + "native-tls", + "serde", + "serde_json", + "serde_urlencoded", + "url", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -132,6 +148,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bumpalo" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" + [[package]] name = "bytemuck" version = "1.13.1" @@ -1197,6 +1219,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "js-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "json-patch" version = "0.2.7" @@ -1340,6 +1371,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "minisign-verify" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" + [[package]] name = "miniz_oxide" version = "0.6.2" @@ -1349,6 +1386,24 @@ dependencies = [ "adler", ] +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "ndk" version = "0.6.0" @@ -1470,6 +1525,17 @@ dependencies = [ "objc_exception", ] +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -1504,6 +1570,51 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "openssl" +version = "0.10.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "os_pipe" version = "1.1.3" @@ -1953,6 +2064,30 @@ version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + [[package]] name = "rustc_version" version = "0.3.3" @@ -2024,6 +2159,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +dependencies = [ + "windows-sys 0.42.0", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2036,6 +2180,29 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "security-framework" +version = "2.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "selectors" version = "0.22.0" @@ -2125,6 +2292,18 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.5", + "ryu", + "serde", +] + [[package]] name = "serde_with" version = "1.14.0" @@ -2406,6 +2585,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe7e0f1d535e7cbbbab43c82be4fc992b84f9156c16c160955617e0260ebc449" dependencies = [ "anyhow", + "attohttpc", + "base64 0.13.1", "cocoa", "dirs-next", "embed_plist", @@ -2418,6 +2599,7 @@ dependencies = [ "heck 0.4.1", "http", "ignore", + "minisign-verify", "objc", "once_cell", "open", @@ -2426,6 +2608,7 @@ dependencies = [ "rand 0.8.5", "raw-window-handle", "regex", + "rfd", "semver 1.0.16", "serde", "serde_json", @@ -2440,12 +2623,14 @@ dependencies = [ "tauri-utils", "tempfile", "thiserror", + "time", "tokio", "url", "uuid 1.3.0", "webkit2gtk", "webview2-com", "windows 0.39.0", + "zip", ] [[package]] @@ -2869,6 +3054,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version-compare" version = "0.0.11" @@ -2910,6 +3101,82 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasm-bindgen" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + +[[package]] +name = "web-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "webkit2gtk" version = "0.18.2" @@ -3026,6 +3293,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + [[package]] name = "windows" version = "0.39.0" @@ -3126,6 +3406,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + [[package]] name = "windows_aarch64_msvc" version = "0.39.0" @@ -3138,6 +3424,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + [[package]] name = "windows_i686_gnu" version = "0.39.0" @@ -3150,6 +3442,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + [[package]] name = "windows_i686_msvc" version = "0.39.0" @@ -3162,6 +3460,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + [[package]] name = "windows_x86_64_gnu" version = "0.39.0" @@ -3180,6 +3484,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + [[package]] name = "windows_x86_64_msvc" version = "0.39.0" @@ -3277,3 +3587,14 @@ checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" dependencies = [ "libc", ] + +[[package]] +name = "zip" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" +dependencies = [ + "byteorder", + "crc32fast", + "crossbeam-utils", +] diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index d4dfdb2..f4ca631 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" tauri-build = { version = "1.2", features = [] } [dependencies] -tauri = { version = "1.2", features = ["fs-all", "path-all", "shell-execute", "shell-open", "shell-sidecar", "window-all"] } +tauri = { version = "1.2", features = ["fs-all", "path-all", "shell-execute", "shell-open", "shell-sidecar", "updater", "window-all"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { version = "1.0", features = ["time"] } diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 58bb55a..0dfdc57 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -8,7 +8,7 @@ }, "package": { "productName": "s3si-ts", - "version": "0.1.0" + "version": "0.3.3" }, "tauri": { "allowlist": { @@ -68,7 +68,12 @@ "csp": null }, "updater": { - "active": false + "active": true, + "endpoints": [ + "https://gist.githubusercontent.com/spacemeowx2/a67078487d3450b75927953f6edc14e2/raw/update-request.json" + ], + "dialog": true, + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IERBMzkzNjFEQ0ZCMjc5QjAKUldTd2ViTFBIVFk1MmdubFh6UTc0NndsZnBQV2hnR3NNSThTYlNudENWYm5yZ0JBRDM0MlloRjAK" }, "windows": [ { @@ -83,4 +88,4 @@ } ] } -} \ No newline at end of file +} From 8a913e35aa10ea7048a6a4f1f5edcc8c3ea63f5f Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Wed, 8 Mar 2023 22:21:25 +0800 Subject: [PATCH 28/49] feat: add CheckUpdate --- gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/tauri.conf.json | 6 +++++- gui/src/components/CheckUpdate.tsx | 16 ++++++++++++++++ gui/src/pages/Home.tsx | 2 ++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 gui/src/components/CheckUpdate.tsx diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index f4ca631..81aef71 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" tauri-build = { version = "1.2", features = [] } [dependencies] -tauri = { version = "1.2", features = ["fs-all", "path-all", "shell-execute", "shell-open", "shell-sidecar", "updater", "window-all"] } +tauri = { version = "1.2", features = ["fs-all", "path-all", "process-relaunch", "shell-execute", "shell-open", "shell-sidecar", "updater", "window-all"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { version = "1.0", features = ["time"] } diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 0dfdc57..a45fc1c 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -8,7 +8,7 @@ }, "package": { "productName": "s3si-ts", - "version": "0.3.3" + "version": "0.3.2" }, "tauri": { "allowlist": { @@ -47,6 +47,10 @@ }, "path": { "all": true + }, + "process": { + "all": false, + "relaunch": true } }, "bundle": { diff --git a/gui/src/components/CheckUpdate.tsx b/gui/src/components/CheckUpdate.tsx new file mode 100644 index 0000000..f60c4fb --- /dev/null +++ b/gui/src/components/CheckUpdate.tsx @@ -0,0 +1,16 @@ +import { ReactNode } from "react"; +import { checkUpdate } from '@tauri-apps/api/updater' + +export const CheckUpdate: React.FC<{ className?: string, children?: ReactNode }> = ({ className, children }) => { + const onClick = async () => { + try { + await checkUpdate() + } catch (error) { + console.log(error) + } + } + + return <> + + ; +} diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index aed01bf..d4b9197 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,3 +1,4 @@ +import { CheckUpdate } from 'components/CheckUpdate'; import { ErrorContent } from 'components/ErrorContent'; import { Loading } from 'components/Loading'; import { STAT_INK } from 'constant'; @@ -33,6 +34,7 @@ export const Home: React.FC = () => {
{t('配置')} {t('前往 stat.ink')} + {t('检查更新')}
From 3c06216f34fabf0541d60eee9eb7adce75ef9a88 Mon Sep 17 00:00:00 2001 From: imspace Date: Wed, 8 Mar 2023 22:53:11 +0800 Subject: [PATCH 29/49] feat: add i18n-backend --- gui/scripts/deno.json | 5 ++ gui/scripts/deno.lock | 122 ++++++++++++++++++++++++++++++++++++ gui/scripts/i18n-backend.ts | 46 ++++++++++++++ 3 files changed, 173 insertions(+) create mode 100644 gui/scripts/deno.json create mode 100644 gui/scripts/deno.lock create mode 100644 gui/scripts/i18n-backend.ts diff --git a/gui/scripts/deno.json b/gui/scripts/deno.json new file mode 100644 index 0000000..3475acb --- /dev/null +++ b/gui/scripts/deno.json @@ -0,0 +1,5 @@ +{ + "tasks": { + "i18n-backend": "deno run -A ./i18n-backend.ts" + } +} \ No newline at end of file diff --git a/gui/scripts/deno.lock b/gui/scripts/deno.lock new file mode 100644 index 0000000..e4d7150 --- /dev/null +++ b/gui/scripts/deno.lock @@ -0,0 +1,122 @@ +{ + "version": "2", + "remote": { + "https://deno.land/std@0.178.0/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462", + "https://deno.land/std@0.178.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.178.0/async/deferred.ts": "42790112f36a75a57db4a96d33974a936deb7b04d25c6084a9fa8a49f135def8", + "https://deno.land/std@0.178.0/bytes/bytes_list.ts": "b4cbdfd2c263a13e8a904b12d082f6177ea97d9297274a4be134e989450dfa6a", + "https://deno.land/std@0.178.0/bytes/concat.ts": "d26d6f3d7922e6d663dacfcd357563b7bf4a380ce5b9c2bbe0c8586662f25ce2", + "https://deno.land/std@0.178.0/bytes/copy.ts": "939d89e302a9761dcf1d9c937c7711174ed74c59eef40a1e4569a05c9de88219", + "https://deno.land/std@0.178.0/bytes/ends_with.ts": "4228811ebc71615d27f065c54b5e815ec1972538772b0f413c0efe05245b472e", + "https://deno.land/std@0.178.0/bytes/equals.ts": "b87494ce5442dc786db46f91378100028c402f83a14a2f7bbff6bda7810aefe3", + "https://deno.land/std@0.178.0/bytes/includes_needle.ts": "76a8163126fb2f8bf86fd7f22192c3bb04bf6a20b987a095127c2ca08adf3ba6", + "https://deno.land/std@0.178.0/bytes/index_of_needle.ts": "65c939607df609374c4415598fa4dad04a2f14c4d98cd15775216f0aaf597f24", + "https://deno.land/std@0.178.0/bytes/last_index_of_needle.ts": "7181072883cb4908c6ce8f7a5bb1d96787eef2c2ab3aa94fe4268ab326a53cbf", + "https://deno.land/std@0.178.0/bytes/mod.ts": "e869bba1e7a2e3a9cc6c2d55471888429a544e70a840c087672e656e7ba21815", + "https://deno.land/std@0.178.0/bytes/repeat.ts": "6f5e490d8d72bcbf8d84a6bb04690b9b3eb5822c5a11687bca73a2318a842294", + "https://deno.land/std@0.178.0/bytes/starts_with.ts": "3e607a70c9c09f5140b7a7f17a695221abcc7244d20af3eb47ccbb63f5885135", + "https://deno.land/std@0.178.0/crypto/keystack.ts": "877ab0f19eb7d37ad6495190d3c3e39f58e9c52e0b6a966f82fd6df67ca55f90", + "https://deno.land/std@0.178.0/crypto/timing_safe_equal.ts": "29a3e05afa48277ab4d9588c0b61f4afe542529302af180c866a4f2a09524169", + "https://deno.land/std@0.178.0/encoding/base64.ts": "7de04c2f8aeeb41453b09b186480be90f2ff357613b988e99fabb91d2eeceba1", + "https://deno.land/std@0.178.0/encoding/base64url.ts": "3f1178f6446834457b16bfde8b559c1cd3481727fe384d3385e4a9995dc2d851", + "https://deno.land/std@0.178.0/http/_negotiation/common.ts": "14d1a52427ab258a4b7161cd80e1d8a207b7cc64b46e911780f57ead5f4323c6", + "https://deno.land/std@0.178.0/http/_negotiation/encoding.ts": "ff747d107277c88cb7a6a62a08eeb8d56dad91564cbcccb30694d5dc126dcc53", + "https://deno.land/std@0.178.0/http/_negotiation/language.ts": "7bcddd8db3330bdb7ce4fc00a213c5547c1968139864201efd67ef2d0d51887d", + "https://deno.land/std@0.178.0/http/_negotiation/media_type.ts": "58847517cd549384ad677c0fe89e0a4815be36fe7a303ea63cee5f6a1d7e1692", + "https://deno.land/std@0.178.0/http/cookie_map.ts": "8cf428c03ef17c197196a5c382495cd4adecbfb597f6f8f3cd7e1775c3e79ffd", + "https://deno.land/std@0.178.0/http/http_errors.ts": "57169d9bdf4cda1982a3742693c146ab1bf2cbc88df003b40ac905a30013d4cb", + "https://deno.land/std@0.178.0/http/http_status.ts": "8a7bcfe3ac025199ad804075385e57f63d055b2aed539d943ccc277616d6f932", + "https://deno.land/std@0.178.0/http/negotiation.ts": "32761c921afa7847cf767fe81c81785721abccc0db0fc51c7ec2a45868b4ee4a", + "https://deno.land/std@0.178.0/io/buf_reader.ts": "90a7adcb3638d8e1361695cdf844d58bcd97c41711dc6f9f8acc0626ebe097f5", + "https://deno.land/std@0.178.0/io/buf_writer.ts": "2fcaadd9f157970fede6e79c8ea9a58556d8cf3c8a686c3fcaaf3875460092cc", + "https://deno.land/std@0.178.0/io/buffer.ts": "e2b7564f684dad625cab08f5106f33572d325705d19a36822b3272fbdfb8f726", + "https://deno.land/std@0.178.0/io/copy_n.ts": "c498021ce291576a68b5bae9f9d3a27f97644f4af6c1047fb1cff054af19e436", + "https://deno.land/std@0.178.0/io/limited_reader.ts": "d709b5b3113d4cbf934415ba242596e0ecb130e8868fb47197217e09dbb59558", + "https://deno.land/std@0.178.0/io/mod.ts": "2665bcccc1fd6e8627cca167c3e92aaecbd9897556b6f69e6d258070ef63fd9b", + "https://deno.land/std@0.178.0/io/multi_reader.ts": "5f7ef6e987486322b38c72e206b8fbc8916d55a87fbcdc97a8b2596386c28d44", + "https://deno.land/std@0.178.0/io/read_delim.ts": "7e102c66f00a118fa1e1ccd4abb080496f43766686907fd8b9522fdf85443586", + "https://deno.land/std@0.178.0/io/read_int.ts": "7cb8bcdfaf1107586c3bacc583d11c64c060196cb070bb13ae8c2061404f911f", + "https://deno.land/std@0.178.0/io/read_lines.ts": "baee9e35034f2fdfccf63bc24b7e3cb45aa1c1c5de26d178f7bcbc572e87772f", + "https://deno.land/std@0.178.0/io/read_long.ts": "f0aaa420e3da1261c5d33c5e729f09922f3d9fa49f046258d4ff7a00d800c71e", + "https://deno.land/std@0.178.0/io/read_range.ts": "28152daf32e43dd9f7d41d8466852b0d18ad766cd5c4334c91fef6e1b3a74eb5", + "https://deno.land/std@0.178.0/io/read_short.ts": "805cb329574b850b84bf14a92c052c59b5977a492cd780c41df8ad40826c1a20", + "https://deno.land/std@0.178.0/io/read_string_delim.ts": "46eb0c9db3547caf8c759631effa200bbe48924f9b34f41edc627bde36cee52d", + "https://deno.land/std@0.178.0/io/slice_long_to_bytes.ts": "b096472afa3a0dd90fa84584dde7706ed29fc16d48009a581c49368f09fe70f4", + "https://deno.land/std@0.178.0/io/string_reader.ts": "ad9cbecb8509732afcf3d73bb72fa551ec0ccc34f9b8127826247f0190753a65", + "https://deno.land/std@0.178.0/io/string_writer.ts": "8a03c5858c24965a54c6538bed15f32a7c72f5704a12bda56f83a40e28e5433e", + "https://deno.land/std@0.178.0/media_types/_db.ts": "7606d83e31f23ce1a7968cbaee852810c2cf477903a095696cdc62eaab7ce570", + "https://deno.land/std@0.178.0/media_types/_util.ts": "916efbd30b6148a716f110e67a4db29d6949bf4048997b754415dd7e42c52378", + "https://deno.land/std@0.178.0/media_types/content_type.ts": "c682589a0aeb016bfed355cc1ed6fbb3ead2ea48fc0000ac5de6a5730613ad1c", + "https://deno.land/std@0.178.0/media_types/extension.ts": "7a4ef2813d7182f724a941f38161525996e4a67abc3cf6a0f9bc2168d73a0f0e", + "https://deno.land/std@0.178.0/media_types/extensions_by_type.ts": "4358023feac696e6e9d49c0f1e76a859f03ca254df57812f31f8536890c3a443", + "https://deno.land/std@0.178.0/media_types/format_media_type.ts": "1e35e16562e5c417401ffc388a9f8f421f97f0ee06259cbe990c51bae4e6c7a8", + "https://deno.land/std@0.178.0/media_types/get_charset.ts": "8be15a1fd31a545736b91ace56d0e4c66ea0d7b3fdc5c90760e8202e7b4b1fad", + "https://deno.land/std@0.178.0/media_types/mod.ts": "d3f0b99f85053bc0b98ecc24eaa3546dfa09b856dc0bbaf60d8956d2cdd710c8", + "https://deno.land/std@0.178.0/media_types/parse_media_type.ts": "bed260d868ea271445ae41d748e7afed9b5a7f407d2777ead08cecf73e9278de", + "https://deno.land/std@0.178.0/media_types/type_by_extension.ts": "6076a7fc63181d70f92ec582fdea2c927eb2cfc7f9c9bee9d6add2aca86f2355", + "https://deno.land/std@0.178.0/media_types/vendor/mime-db.v1.52.0.ts": "6925bbcae81ca37241e3f55908d0505724358cda3384eaea707773b2c7e99586", + "https://deno.land/std@0.178.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.178.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.178.0/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", + "https://deno.land/std@0.178.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.178.0/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", + "https://deno.land/std@0.178.0/path/mod.ts": "4b83694ac500d7d31b0cdafc927080a53dc0c3027eb2895790fb155082b0d232", + "https://deno.land/std@0.178.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", + "https://deno.land/std@0.178.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", + "https://deno.land/std@0.178.0/path/win32.ts": "d186344e5583bcbf8b18af416d13d82b35a317116e6460a5a3953508c3de5bba", + "https://deno.land/std@0.178.0/streams/_common.ts": "f45cba84f0d813de3326466095539602364a9ba521f804cc758f7a475cda692d", + "https://deno.land/std@0.178.0/streams/buffer.ts": "7e7676c29e0e72f6821c3b5fede2540886a216bb91c849bb5db20bb82a01d8a1", + "https://deno.land/std@0.178.0/streams/byte_slice_stream.ts": "cf5785b0d9223ebb51fcf6679d881dfaf614c3b288fb4577b511b6f7801a01aa", + "https://deno.land/std@0.178.0/streams/copy.ts": "de0de21701d8cceba84ca01d9731c77f4b3597bb9de6a1b08f32250353feeae8", + "https://deno.land/std@0.178.0/streams/delimiter_stream.ts": "de8f822a1c394cdb805a97e364400955cd1757cc282d932b4040a0f78fba3b5f", + "https://deno.land/std@0.178.0/streams/early_zip_readable_streams.ts": "64828085be5812ec5f4896c10b59f14e5a322b2c0439be9331dde332ae9c91de", + "https://deno.land/std@0.178.0/streams/iterate_reader.ts": "06491ed8f1bb1c619abbfa04c10b173ff95a93e51fe5037b7c1ad0b5cc01fc7d", + "https://deno.land/std@0.178.0/streams/limited_bytes_transform_stream.ts": "3bc04143b8b91a923f5ee81a3c618b6606ac7da66ccbcde62a67aaa0375cbc71", + "https://deno.land/std@0.178.0/streams/limited_transform_stream.ts": "b336f5d649a06e35e2692849e3682a673bb32531738443eb2ce9f57538722f75", + "https://deno.land/std@0.178.0/streams/merge_readable_streams.ts": "5d6302888f4bb0616dafb5768771be0aec9bedc05fbae6b3d726d05ffbec5b15", + "https://deno.land/std@0.178.0/streams/mod.ts": "c07ec010e700b9ea887dc36ca08729828bc7912f711e4054e24d33fd46282252", + "https://deno.land/std@0.178.0/streams/read_all.ts": "bfa220b0e1d06fa4d0cb5178baba8f8b466019a7411511982bfa2320ca292815", + "https://deno.land/std@0.178.0/streams/readable_stream_from_iterable.ts": "cae337ddafd2abc5e3df699ef2af888ac04091f12732ae658448fba2c7b187e8", + "https://deno.land/std@0.178.0/streams/readable_stream_from_reader.ts": "9aceaeefa9e04b08f56b2d07272baedc3b6432840b66198d72fa2ada3e6608ea", + "https://deno.land/std@0.178.0/streams/reader_from_iterable.ts": "05f7759b9336fd4c233d9daadf92aec9a7d2c07a05986da466a935cec2dd79d9", + "https://deno.land/std@0.178.0/streams/reader_from_stream_reader.ts": "3fda9390ec8520c8a9ea2aba2579208b18880a7663d7a9feec8f193b7af14e41", + "https://deno.land/std@0.178.0/streams/text_delimiter_stream.ts": "ee216316360366c3744197f5665a066a25e6baa8cfe836fbe9a0033e079e089e", + "https://deno.land/std@0.178.0/streams/text_line_stream.ts": "a9dd2636c6b90e626e19df26c97034c5f638bdd957cbd5c531d6278fe1d08e90", + "https://deno.land/std@0.178.0/streams/to_transform_stream.ts": "31c8cce967a2f602be5f164973a5c6cedd4c76e1d2fbc22ae0081b084f73fb0e", + "https://deno.land/std@0.178.0/streams/writable_stream_from_writer.ts": "0320b759aa343f9f4f58b014fe301d9a7abcbfb8413d260502a885995e6a0776", + "https://deno.land/std@0.178.0/streams/write_all.ts": "3b2e1ce44913f966348ce353d02fa5369e94115181037cd8b602510853ec3033", + "https://deno.land/std@0.178.0/streams/writer_from_stream_writer.ts": "31126a6bf2e678c5a718011d4831dbe75dbdbd885965d3dbd5dd105e6f20f976", + "https://deno.land/std@0.178.0/streams/zip_readable_streams.ts": "9eb82070d83055fe6f077192fb204dc7612695a4b330148e9aa376df1a65e708", + "https://deno.land/std@0.178.0/types.d.ts": "220ed56662a0bd393ba5d124aa6ae2ad36a00d2fcbc0e8666a65f4606aaa9784", + "https://deno.land/x/oak@v12.1.0/application.ts": "641c071bf14b476d603be18a984573e8a7c0da9c1bfc141ae44dad8012f2c5d6", + "https://deno.land/x/oak@v12.1.0/body.ts": "c7392f1dae04a360838f43b9cdd2f83d29c1eff4e6071d5f0cf1f3999b1602bc", + "https://deno.land/x/oak@v12.1.0/buf_reader.ts": "7cf96aa0ac670b75098113cf88a291a68332cc45efa8a9698f064ac5b8098a0f", + "https://deno.land/x/oak@v12.1.0/content_disposition.ts": "8b8c3cb2fba7138cd5b7f82fc3b5ea39b33db924a824b28261659db7e164621e", + "https://deno.land/x/oak@v12.1.0/context.ts": "81b97dab6b35ab872d5b2ff5221b4bc71b425f7069ce1a1dcc1d20c50a09865f", + "https://deno.land/x/oak@v12.1.0/deps.ts": "29134b39303d85527915650d6f11909c1e29c4cd208dd2ad9887ce2537167b42", + "https://deno.land/x/oak@v12.1.0/etag.ts": "19918f5e1964e3fe6c9fe524a88ffbf9900ce1dfe4146b187b2a86256bb6b663", + "https://deno.land/x/oak@v12.1.0/headers.ts": "f50fb05614432bda971021633129aa2e8737e0844e0f01c27a937997b4d8dd4f", + "https://deno.land/x/oak@v12.1.0/helpers.ts": "42212afa07a560b2958359cc19577417e89d9574d6579551a0af36ff7f00cc6e", + "https://deno.land/x/oak@v12.1.0/http_request.ts": "9f2cc5f4b9e72c5156dd4710875d9f54f992d69ca1a8ad5e0915a773f0e26e8b", + "https://deno.land/x/oak@v12.1.0/http_server_flash.ts": "6afeb6bfe77a08d99b205ebf09d18c98b4050ce9cbc66e24be1fba6e46bc7a4f", + "https://deno.land/x/oak@v12.1.0/http_server_native.ts": "0141e1339ed9a33bc26ce537ddab5adbb3542b35916d92de286aed4937e4a6d6", + "https://deno.land/x/oak@v12.1.0/http_server_native_request.ts": "be315d476550e149c58d7ccd2812be30f373ceedc9c323c300eef03b7c071aa9", + "https://deno.land/x/oak@v12.1.0/isMediaType.ts": "62d638abcf837ece3a8f07a4b7ca59794135cb0d4b73194c7d5837efd4161005", + "https://deno.land/x/oak@v12.1.0/mediaTyper.ts": "042b853fc8e9c3f6c628dd389e03ef481552bf07242efc3f8a1af042102a6105", + "https://deno.land/x/oak@v12.1.0/middleware.ts": "de14f045a2ddfe845d89b5d3140ff52cbcc6f3b3965391106ce04480f9786737", + "https://deno.land/x/oak@v12.1.0/middleware/proxy.ts": "b927232f97ec18af4185d7912e45b1191e3ffe24a9c875262ad524211b1274c9", + "https://deno.land/x/oak@v12.1.0/mod.ts": "210619d431e41c763486467b0498ef50de79119d750abc57331f76e36f642fc1", + "https://deno.land/x/oak@v12.1.0/multipart.ts": "98fe9f226de8c26a16d067027b69fb1e34ad8c4055767dd157907d06cea36f9a", + "https://deno.land/x/oak@v12.1.0/range.ts": "68a6df7ab3b868843e33f52deb94c3d4cab25cb9ef369691990c2ac15b04fafb", + "https://deno.land/x/oak@v12.1.0/request.ts": "5852ad36389b48e0428a6f3c90854d01f10d1b15949b56001e1e75c2a00ef0f9", + "https://deno.land/x/oak@v12.1.0/response.ts": "867d81f7eb0c65c7b8e0e0e9e145ededd5b6daa9ad922e6adc6a36a525f439a6", + "https://deno.land/x/oak@v12.1.0/router.ts": "5b266091e55f634c9130e6de5dd331ddfc4c190ee7916a25e0a0f75502edbc32", + "https://deno.land/x/oak@v12.1.0/send.ts": "c592a6782c82442d011923297a724c2cba8de14c4a9384c6eb9cebb766817e92", + "https://deno.land/x/oak@v12.1.0/server_sent_event.ts": "948b0fe4cb3fe38c7db15e476eb3b7671ef20e566d130e9f701d7c0146aa47dd", + "https://deno.land/x/oak@v12.1.0/structured_clone.ts": "9c2d21c62f616400305a60cbd29eb06764ee97edc423223424b6cf55df0e8be2", + "https://deno.land/x/oak@v12.1.0/testing.ts": "a0be5c84981afde666de29630f34b09d944ca1a2fe6a5185644b60ad95e16d18", + "https://deno.land/x/oak@v12.1.0/types.d.ts": "41951a18c3bfdb11e40707cab75da078ba8a4907cd7d4e11d8536bc2db0dde05", + "https://deno.land/x/oak@v12.1.0/util.ts": "3af8c4ed04c6cc2bedbe66e562a77fc59c72df31c55a902a63885861ca1639d6", + "https://deno.land/x/path_to_regexp@v6.2.1/index.ts": "894060567837bae8fc9c5cbd4d0a05e9024672083d5883b525c031eea940e556" + } +} diff --git a/gui/scripts/i18n-backend.ts b/gui/scripts/i18n-backend.ts new file mode 100644 index 0000000..df69cef --- /dev/null +++ b/gui/scripts/i18n-backend.ts @@ -0,0 +1,46 @@ +import { Application, Router } from 'https://deno.land/x/oak@v12.1.0/mod.ts'; +import * as path from "https://deno.land/std@0.178.0/path/mod.ts"; + +const PORT = 1421; +const __dirname = path.dirname(path.fromFileUrl(import.meta.url)); +const app = new Application(); +const router = new Router(); + +router.post('/locales/add/:lng/:ns', async (context) => { + try { + // ns is ignored + const { lng } = context.params; + const body: Record = await context.request.body({ type: 'json' }).value; + const keys = Object.keys(body); + + const translationPath = path.join(__dirname, `../src/i18n/translation/${lng}.json`); + + let translations: Record = {}; + try { + translations = JSON.parse(await Deno.readTextFile(translationPath)); + } catch (error) {} + + translations = Object.fromEntries( + [...Object.entries(translations), ...keys.map(i => [i, i] as const)].sort(([a], [b]) => a.localeCompare(b)), + ); + + await Deno.writeTextFile( + translationPath, + JSON.stringify(translations, null, 2), + ); + + console.log('Add keys:', keys); + + context.response.status = 200; + context.response.body = { message: 'Translation updated.' }; + } catch (error) { + context.response.status = 500; + context.response.body = { message: error.message }; + } +}); + +app.use(router.routes()); +app.use(router.allowedMethods()); + +console.log(`Listening on port ${PORT}...`) +await app.listen({ port: PORT }); From f5c565396d02e195ebb777216661572794143d90 Mon Sep 17 00:00:00 2001 From: imspace Date: Wed, 8 Mar 2023 22:54:46 +0800 Subject: [PATCH 30/49] feat: add i18next http backend --- gui/package.json | 1 + gui/pnpm-lock.yaml | 57 ++++++++++++++++++++++++++++++++++++++++++ gui/src/i18n/config.ts | 20 ++++++++++----- gui/vite.config.ts | 3 +++ 4 files changed, 75 insertions(+), 6 deletions(-) diff --git a/gui/package.json b/gui/package.json index 8c5a034..b20582b 100644 --- a/gui/package.json +++ b/gui/package.json @@ -32,6 +32,7 @@ "autoprefixer": "^10.4.13", "eslint": "^8.35.0", "eslint-config-react-app": "^7.0.1", + "i18next-http-backend": "^2.1.1", "postcss": "^8.4.21", "tailwindcss": "^3.2.7", "typescript": "^4.9.5", diff --git a/gui/pnpm-lock.yaml b/gui/pnpm-lock.yaml index e275001..2a1191c 100644 --- a/gui/pnpm-lock.yaml +++ b/gui/pnpm-lock.yaml @@ -16,6 +16,7 @@ specifiers: eslint-config-react-app: ^7.0.1 i18next: ^22.4.10 i18next-browser-languagedetector: ^7.0.1 + i18next-http-backend: ^2.1.1 postcss: ^8.4.21 react: ^18.2.0 react-dom: ^18.2.0 @@ -51,6 +52,7 @@ devDependencies: autoprefixer: 10.4.13_postcss@8.4.21 eslint: 8.35.0 eslint-config-react-app: 7.0.1_ycpbpc6yetojsgtrx3mwntkhsu + i18next-http-backend: registry.npmmirror.com/i18next-http-backend/2.1.1 postcss: 8.4.21 tailwindcss: 3.2.7 typescript: 4.9.5 @@ -4628,6 +4630,16 @@ packages: toggle-selection: registry.npmmirror.com/toggle-selection/1.0.6 dev: false + registry.npmmirror.com/cross-fetch/3.1.5: + resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.1.5.tgz} + name: cross-fetch + version: 3.1.5 + dependencies: + node-fetch: registry.npmmirror.com/node-fetch/2.6.7 + transitivePeerDependencies: + - encoding + dev: true + registry.npmmirror.com/css-in-js-utils/3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz} name: css-in-js-utils @@ -4698,6 +4710,16 @@ packages: version: 1.0.4 dev: false + registry.npmmirror.com/i18next-http-backend/2.1.1: + resolution: {integrity: sha512-jByfUCDVgQ8+/Wens7queQhYYvMcGTW/lR4IJJNEDDXnmqjLrwi8ubXKpmp76/JIWEZHffNdWqnxFJcTVGeaOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/i18next-http-backend/-/i18next-http-backend-2.1.1.tgz} + name: i18next-http-backend + version: 2.1.1 + dependencies: + cross-fetch: registry.npmmirror.com/cross-fetch/3.1.5 + transitivePeerDependencies: + - encoding + dev: true + registry.npmmirror.com/inline-style-prefixer/6.0.4: resolution: {integrity: sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz} name: inline-style-prefixer @@ -4747,6 +4769,20 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + registry.npmmirror.com/node-fetch/2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz} + name: node-fetch + version: 2.6.7 + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: registry.npmmirror.com/whatwg-url/5.0.0 + dev: true + registry.npmmirror.com/picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} name: picocolors @@ -4914,6 +4950,12 @@ packages: version: 1.0.6 dev: false + registry.npmmirror.com/tr46/0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz} + name: tr46 + version: 0.0.3 + dev: true + registry.npmmirror.com/ts-easing/0.2.0: resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-easing/-/ts-easing-0.2.0.tgz} name: ts-easing @@ -4931,3 +4973,18 @@ packages: name: tslib version: 2.5.0 dev: false + + registry.npmmirror.com/webidl-conversions/3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz} + name: webidl-conversions + version: 3.0.1 + dev: true + + registry.npmmirror.com/whatwg-url/5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz} + name: whatwg-url + version: 5.0.0 + dependencies: + tr46: registry.npmmirror.com/tr46/0.0.3 + webidl-conversions: registry.npmmirror.com/webidl-conversions/3.0.1 + dev: true diff --git a/gui/src/i18n/config.ts b/gui/src/i18n/config.ts index dd5b07c..bc4663f 100644 --- a/gui/src/i18n/config.ts +++ b/gui/src/i18n/config.ts @@ -2,6 +2,7 @@ import i18next from 'i18next'; import LanguageDetector from 'i18next-browser-languagedetector'; import { initReactI18next } from 'react-i18next'; import translation from './translation/en.json'; +import HttpBackend from 'i18next-http-backend' export const resources = { en: { @@ -9,10 +10,17 @@ export const resources = { } }; -i18next +const instance = i18next .use(initReactI18next) - .use(LanguageDetector) - .init({ - debug: import.meta.env.DEV, - resources, - }); + .use(LanguageDetector); + +if (import.meta.env.DEV) { + instance.use(HttpBackend); +} + +instance.init({ + debug: import.meta.env.DEV, + resources, + saveMissing: true, + fallbackLng: 'en' +}); diff --git a/gui/vite.config.ts b/gui/vite.config.ts index cb16e10..cfd87b6 100644 --- a/gui/vite.config.ts +++ b/gui/vite.config.ts @@ -18,6 +18,9 @@ export default defineConfig({ server: { port: 1420, strictPort: true, + proxy: { + '/locales/': 'http://127.0.0.1:1421' + } }, // to make use of `TAURI_DEBUG` and other env variables // https://tauri.studio/v1/api/config#buildconfig.beforedevcommand From 7532fde754f55a1ee859047346896a0cdd64697b Mon Sep 17 00:00:00 2001 From: imspace Date: Wed, 8 Mar 2023 22:55:23 +0800 Subject: [PATCH 31/49] refactor: extract components --- gui/src/components/Header.tsx | 14 ++++++++++++++ gui/src/main.css | 4 ++++ gui/src/pages/Home.tsx | 2 +- gui/src/pages/Settings.tsx | 8 +++----- 4 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 gui/src/components/Header.tsx diff --git a/gui/src/components/Header.tsx b/gui/src/components/Header.tsx new file mode 100644 index 0000000..77ff659 --- /dev/null +++ b/gui/src/components/Header.tsx @@ -0,0 +1,14 @@ +import React from 'react' +import { AiOutlineLeft } from 'react-icons/ai'; +import { useNavigate } from 'react-router-dom'; + +type HeaderProps = { + title?: React.ReactNode +} + +export const Header: React.FC = ({ title }) => { + const navigate = useNavigate(); + return <> +

{title}

+ +} diff --git a/gui/src/main.css b/gui/src/main.css index c485c46..50fd673 100644 --- a/gui/src/main.css +++ b/gui/src/main.css @@ -40,3 +40,7 @@ body { .flex-auto-all > * { @apply flex-auto; } + +.full-card { + @apply card m-2 h-full; +} diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index d4b9197..225f52a 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -29,7 +29,7 @@ export const Home: React.FC = () => { } return <> -
+

{t('欢迎!')}

{t('配置')} diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index 402a6fc..e080b6e 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -3,19 +3,17 @@ import { Loading } from 'components/Loading'; import { usePromise, usePromiseLazy } from 'hooks/usePromise'; import React, { useState } from 'react' import { useTranslation } from 'react-i18next'; -import { AiOutlineLeft } from 'react-icons/ai'; -import { useNavigate } from 'react-router-dom'; import { Config, getConfig, getProfile, Profile, setConfig, setProfile } from 'services/config'; import { composeLoadable } from 'utils/composeLoadable'; import classNames from 'classnames'; import { useLogin } from 'services/s3si'; import { STAT_INK } from 'constant'; +import { Header } from 'components/Header'; const Page: React.FC<{ children?: React.ReactNode }> = ({ children }) => { const { t } = useTranslation(); - const navigate = useNavigate(); - return
-

{t('配置')}

+ return
+
{children}
} From 16a454671019d89afa12f8660bf1fdca7357c9e4 Mon Sep 17 00:00:00 2001 From: imspace Date: Wed, 8 Mar 2023 23:25:48 +0800 Subject: [PATCH 32/49] fix: i18n-backend --- gui/scripts/i18n-backend.ts | 37 ++++++++++++++++++++++------- gui/src/i18n/config.ts | 11 +++++---- gui/src/i18n/translation/en.json | 8 +------ gui/src/i18n/translation/zh-CN.json | 1 + 4 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 gui/src/i18n/translation/zh-CN.json diff --git a/gui/scripts/i18n-backend.ts b/gui/scripts/i18n-backend.ts index df69cef..c5c36b8 100644 --- a/gui/scripts/i18n-backend.ts +++ b/gui/scripts/i18n-backend.ts @@ -6,33 +6,52 @@ const __dirname = path.dirname(path.fromFileUrl(import.meta.url)); const app = new Application(); const router = new Router(); -router.post('/locales/add/:lng/:ns', async (context) => { - try { - // ns is ignored - const { lng } = context.params; - const body: Record = await context.request.body({ type: 'json' }).value; - const keys = Object.keys(body); +const keys: Set = new Set(); +async function updateFile() { + delayId = null; + for (const lng of ['en', 'zh-CN']) { const translationPath = path.join(__dirname, `../src/i18n/translation/${lng}.json`); let translations: Record = {}; try { translations = JSON.parse(await Deno.readTextFile(translationPath)); } catch (error) {} + const toAdd = [...keys].filter(k => !Object.keys(translations).includes(k)); translations = Object.fromEntries( - [...Object.entries(translations), ...keys.map(i => [i, i] as const)].sort(([a], [b]) => a.localeCompare(b)), + [ + ...Object.entries(translations), + ...toAdd + .map(i => [i, i] as const)] + .sort(([a], [b]) => a.localeCompare(b)), ); + console.log('Add keys:', toAdd, 'for', lng); await Deno.writeTextFile( translationPath, JSON.stringify(translations, null, 2), ); + } + keys.clear(); +} +let delayId: number|null = null; - console.log('Add keys:', keys); +router.post('/locales/add/:lng/:ns', async (context) => { + try { + // ns, lng is ignored + const body: Record = await context.request.body({ type: 'json' }).value; + for (const key of Object.keys(body)) { + keys.add(key); + } + + if (delayId !== null) { + clearTimeout(delayId); + } + delayId = setTimeout(updateFile, 1000); context.response.status = 200; - context.response.body = { message: 'Translation updated.' }; + context.response.body = { message: 'Translation added.' }; } catch (error) { context.response.status = 500; context.response.body = { message: error.message }; diff --git a/gui/src/i18n/config.ts b/gui/src/i18n/config.ts index bc4663f..e574100 100644 --- a/gui/src/i18n/config.ts +++ b/gui/src/i18n/config.ts @@ -1,12 +1,16 @@ import i18next from 'i18next'; import LanguageDetector from 'i18next-browser-languagedetector'; import { initReactI18next } from 'react-i18next'; -import translation from './translation/en.json'; +import en from './translation/en.json'; +import zhCN from './translation/zh-CN.json'; import HttpBackend from 'i18next-http-backend' export const resources = { en: { - translation, + translation: en, + }, + 'zh-CN': { + translation: zhCN, } }; @@ -21,6 +25,5 @@ if (import.meta.env.DEV) { instance.init({ debug: import.meta.env.DEV, resources, - saveMissing: true, - fallbackLng: 'en' + // saveMissing: true, }); diff --git a/gui/src/i18n/translation/en.json b/gui/src/i18n/translation/en.json index 30a2bf7..9e26dfe 100644 --- a/gui/src/i18n/translation/en.json +++ b/gui/src/i18n/translation/en.json @@ -1,7 +1 @@ -{ - "title": "Welcome {{name}}, to react using react-i18next fully type-safe", - "description": { - "part1": "This is a simple example.", - "part2": "😉" - } -} \ No newline at end of file +{} \ No newline at end of file diff --git a/gui/src/i18n/translation/zh-CN.json b/gui/src/i18n/translation/zh-CN.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/gui/src/i18n/translation/zh-CN.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 77c621b49978adf82f069591ce3333b6990db465 Mon Sep 17 00:00:00 2001 From: imspace Date: Thu, 9 Mar 2023 01:03:57 +0800 Subject: [PATCH 33/49] feat: add basic export --- gui/src-tauri/tauri.conf.json | 6 +-- gui/src/components/Checkbox.tsx | 16 +++++++ gui/src/components/RunPanel.tsx | 54 +++++++++++++++++++++++ gui/src/jsonrpc/types.ts | 2 +- gui/src/pages/Guide.tsx | 76 ++++++++++++++++++++++++++++++++- gui/src/pages/Home.tsx | 6 +-- gui/src/services/config.ts | 4 ++ gui/src/services/s3si.ts | 37 ++++++++++++++++ src/daemon.ts | 45 +++++++++++++------ src/jsonrpc/channel.ts | 4 +- src/jsonrpc/types.ts | 47 ++++++++++++++++++++ 11 files changed, 272 insertions(+), 25 deletions(-) create mode 100644 gui/src/components/Checkbox.tsx create mode 100644 gui/src/components/RunPanel.tsx diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index a45fc1c..a36a35f 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -85,11 +85,11 @@ "resizable": true, "title": "s3si.ts", "width": 400, - "height": 300, + "height": 400, "minWidth": 320, - "minHeight": 300, + "minHeight": 400, "visible": false } ] } -} +} \ No newline at end of file diff --git a/gui/src/components/Checkbox.tsx b/gui/src/components/Checkbox.tsx new file mode 100644 index 0000000..ee99e70 --- /dev/null +++ b/gui/src/components/Checkbox.tsx @@ -0,0 +1,16 @@ +import React from 'react' + +type CheckboxProps = { + children?: React.ReactNode + value?: boolean + onChange?: (value: boolean) => void +} + +export const Checkbox: React.FC = ({ value, onChange, children }) => { + return
+ +
+} diff --git a/gui/src/components/RunPanel.tsx b/gui/src/components/RunPanel.tsx new file mode 100644 index 0000000..ac991b8 --- /dev/null +++ b/gui/src/components/RunPanel.tsx @@ -0,0 +1,54 @@ +import classNames from 'classnames'; +import { usePromise } from 'hooks/usePromise'; +import React, { useState } from 'react' +import { useTranslation } from 'react-i18next'; +import { canExport, getProfile, setProfile } from 'services/config'; +import { run } from 'services/s3si'; +import { Checkbox } from './Checkbox'; +import { Loading } from './Loading'; + +type RunPanelProps = { +} + +export const RunPanel: React.FC = () => { + const { t } = useTranslation(); + const { result } = usePromise(() => getProfile(0)); + const [exportBattle, setExportBattle] = useState(true); + const [exportCoop, setExportCoop] = useState(true); + const [loading, setLoading] = useState(false); + + if (!result) { + return + } + + const onClick = async () => { + setLoading(true); + try { + const { state } = result; + const newState = await run(state, { + exporter: "stat.ink,file", + monitor: false, + withSummary: false, + skipMode: exportBattle === false ? 'vs' : exportCoop === false ? 'coop' : undefined, + }); + await setProfile(0, { + ...result, + state: newState, + }) + } finally { + setLoading(false); + } + } + + return <> + {t('导出对战数据')} + {t('导出打工数据')} + + +} diff --git a/gui/src/jsonrpc/types.ts b/gui/src/jsonrpc/types.ts index bbd45ba..7388171 100644 --- a/gui/src/jsonrpc/types.ts +++ b/gui/src/jsonrpc/types.ts @@ -1 +1 @@ -export * from '../../../src/jsonrpc/types'; +export type * from '../../../src/jsonrpc/types'; diff --git a/gui/src/pages/Guide.tsx b/gui/src/pages/Guide.tsx index 8a61a62..78bfe31 100644 --- a/gui/src/pages/Guide.tsx +++ b/gui/src/pages/Guide.tsx @@ -1,3 +1,75 @@ +import classNames from 'classnames'; +import { Header } from 'components/Header'; +import { useState } from 'react'; +import { useTranslation } from 'react-i18next'; + +type StepState = { + next: boolean, + prev: boolean, +} + +type Step = { + title: string, + element: React.FC<{ onChange: (v: StepState) => void }>, +} + +const Steps: React.FC<{ steps: Step[], className?: string }> = ({ className, steps }) => { + const { t } = useTranslation(); + const [step, setStep] = useState(0); + const [state, setState] = useState({ next: true, prev: true }); + const hasPrev = step > 0; + const hasNext = step < steps.length - 1; + + const Content = steps[step].element; + return
+ {/*
    + {steps.map(({ title }, i) =>
  • {title}
  • )} +
*/} + {Content && } +
+ + +
+
+} + +const LoginNintendoAccount: React.FC<{ onChange: (v: StepState) => void }> = ({ onChange }) => { + const { t } = useTranslation(); + + return
+ +
+} + export const Guide: React.FC = () => { - return <> -} \ No newline at end of file + const { t } = useTranslation(); + + + const steps: Step[] = [{ + title: t('登录任天堂帐号'), + element: LoginNintendoAccount, + }, { + title: t('填写stat.ink API密钥'), + element: () => <>, + }, { + title: t('完成'), + element: () => <>, + }] + + return
+
+ +
+} diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 225f52a..f27dc69 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,6 +1,6 @@ -import { CheckUpdate } from 'components/CheckUpdate'; import { ErrorContent } from 'components/ErrorContent'; import { Loading } from 'components/Loading'; +import { RunPanel } from 'components/RunPanel'; import { STAT_INK } from 'constant'; import { usePromise } from 'hooks/usePromise'; import React from 'react' @@ -32,9 +32,9 @@ export const Home: React.FC = () => {

{t('欢迎!')}

- {t('配置')} + + {t('配置')} {t('前往 stat.ink')} - {t('检查更新')}
diff --git a/gui/src/services/config.ts b/gui/src/services/config.ts index 0ab006b..3d8ed76 100644 --- a/gui/src/services/config.ts +++ b/gui/src/services/config.ts @@ -58,3 +58,7 @@ export async function getProfile(index: number): Promise { export async function setProfile(index: number, profile: Profile) { await fs.writeTextFile(await profileDir.then(c => join(c, `${index}.json`)), JSON.stringify(profile)); } + +export function canExport(profile: Profile): boolean { + return !!profile.state.loginState?.sessionToken +} diff --git a/gui/src/services/s3si.ts b/gui/src/services/s3si.ts index eedee76..6520740 100644 --- a/gui/src/services/s3si.ts +++ b/gui/src/services/s3si.ts @@ -1,11 +1,40 @@ import { invoke } from "@tauri-apps/api"; import { JSONRPCClient, S3SIService, StdioTransport } from "jsonrpc"; +import { ExportOpts, State } from "jsonrpc/types"; import { useCallback } from "react"; const client = new JSONRPCClient({ transport: new StdioTransport() }).getProxy(); +async function getLogs() { + while (true) { + const r = await client.getLogs() + + if (r.error) { + throw new Error(r.error.message); + } + + for (const { level, msg } of r.result) { + switch (level) { + case 'debug': + console.debug(...msg); + break; + case 'log': + console.log(...msg); + break; + case 'warn': + console.warn(...msg); + break; + case 'error': + console.error(...msg); + break; + } + } + } +} +getLogs() + export const useLogin = () => { const login = useCallback(async () => { const result = await client.loginSteps(); @@ -35,3 +64,11 @@ export const useLogin = () => { login } } + +export async function run(state: State, opts: ExportOpts) { + const r = await client.run(state, opts); + if (r.error) { + throw new Error(r.error.message); + } + return r.result; +} diff --git a/src/daemon.ts b/src/daemon.ts index 8df4af8..8b9e3d1 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -8,20 +8,17 @@ import { DenoIO } from "./jsonrpc/deno.ts"; import { loginSteps } from "./iksm.ts"; import { DEFAULT_ENV, Env } from "./env.ts"; import { Queue } from "./jsonrpc/channel.ts"; - -enum LoggerLevel { - Debug = "debug", - Log = "log", - Warn = "warn", - Error = "error", -} +import { ExportOpts, Log } from "./jsonrpc/types.ts"; +import { App } from "./app.ts"; +import { InMemoryStateBackend, State } from "./state.ts"; +import { MemoryCache } from "./cache.ts"; class S3SIServiceImplement implements S3SIService, Service { loginMap: Map void; promise: Promise; }> = new Map(); - loggerQueue: Queue<{ level: LoggerLevel; msg: unknown[] }> = new Queue(); + loggerQueue: Queue = new Queue(); env: Env = { prompts: { promptLogin: () => { @@ -32,12 +29,10 @@ class S3SIServiceImplement implements S3SIService, Service { }, }, logger: { - debug: (...msg) => - this.loggerQueue.push({ level: LoggerLevel.Debug, msg }), - log: (...msg) => this.loggerQueue.push({ level: LoggerLevel.Log, msg }), - warn: (...msg) => this.loggerQueue.push({ level: LoggerLevel.Warn, msg }), - error: (...msg) => - this.loggerQueue.push({ level: LoggerLevel.Error, msg }), + debug: (...msg) => this.loggerQueue.push({ level: "debug", msg }), + log: (...msg) => this.loggerQueue.push({ level: "log", msg }), + warn: (...msg) => this.loggerQueue.push({ level: "warn", msg }), + error: (...msg) => this.loggerQueue.push({ level: "error", msg }), }, newFetcher: DEFAULT_ENV.newFetcher, }; @@ -76,6 +71,28 @@ class S3SIServiceImplement implements S3SIService, Service { result: await loginSteps(this.env, step2), }; } + async getLogs(): Promise> { + const log = await this.loggerQueue.pop(); + return { + result: log ? [log] : [], + }; + } + async run(state: State, opts: ExportOpts): Promise> { + const stateBackend = new InMemoryStateBackend(state); + const app = new App({ + ...opts, + noProgress: true, + env: this.env, + profilePath: "", + stateBackend, + cache: new MemoryCache(), + }); + await app.run(); + + return { + result: stateBackend.state, + }; + } // deno-lint-ignore no-explicit-any [key: string]: any; } diff --git a/src/jsonrpc/channel.ts b/src/jsonrpc/channel.ts index d1ef783..63e3153 100644 --- a/src/jsonrpc/channel.ts +++ b/src/jsonrpc/channel.ts @@ -1,6 +1,6 @@ export class Queue { - queue: T[] = []; - waiting: ((value: T | undefined) => void)[] = []; + private queue: T[] = []; + private waiting: ((value: T | undefined) => void)[] = []; pop = (): Promise => { return new Promise((resolve) => { diff --git a/src/jsonrpc/types.ts b/src/jsonrpc/types.ts index e6c310b..c47cded 100644 --- a/src/jsonrpc/types.ts +++ b/src/jsonrpc/types.ts @@ -1,3 +1,34 @@ +export type LoginState = { + sessionToken?: string; + gToken?: string; + bulletToken?: string; +}; +export type RankState = { + // generated by gameId(battle.id) + gameId: string; + // extract from battle.id + timestamp?: number; + // C-, B, A+, S, S+0, S+12 + rank: string; + rankPoint: number; +}; +export type State = { + loginState?: LoginState; + fGen: string; + appUserAgent?: string; + userLang?: string; + userCountry?: string; + + rankState?: RankState; + + cacheDir: string; + + // Exporter config + statInkApiKey?: string; + fileExportPath: string; + monitorInterval: number; +}; + export type ID = string | number | null; // deno-lint-ignore no-explicit-any @@ -68,6 +99,20 @@ export const ERROR_INTERNAL_ERROR: ResponseError<-32603> = { message: "Internal error", }; +export type LoggerLevel = "debug" | "log" | "warn" | "error"; + +export type Log = { + level: LoggerLevel; + msg: unknown[]; +}; + +export type ExportOpts = { + exporter: string; + monitor: boolean; + withSummary: boolean; + skipMode?: string; +}; + export interface S3SIService { loginSteps(): Promise< RPCResult< @@ -87,6 +132,8 @@ export interface S3SIService { } > >; + getLogs(): Promise>; + run(state: State, opts: ExportOpts): Promise>; // deno-lint-ignore no-explicit-any [key: string]: any; } From 043bcb3ae407c9ac7f9061191ee9ce430c0cf546 Mon Sep 17 00:00:00 2001 From: imspace Date: Thu, 9 Mar 2023 05:36:14 +0800 Subject: [PATCH 34/49] feat: add log display --- gui/src/components/Checkbox.tsx | 5 ++- gui/src/components/RunPanel.tsx | 46 +++++++++++++++++------ gui/src/main.css | 3 +- gui/src/main.tsx | 11 ++++-- gui/src/pages/Home.tsx | 11 +++--- gui/src/services/config.ts | 2 +- gui/src/services/{s3si.ts => s3si.tsx} | 52 +++++++++++++++++++++++++- 7 files changed, 104 insertions(+), 26 deletions(-) rename gui/src/services/{s3si.ts => s3si.tsx} (58%) diff --git a/gui/src/components/Checkbox.tsx b/gui/src/components/Checkbox.tsx index ee99e70..adcfc42 100644 --- a/gui/src/components/Checkbox.tsx +++ b/gui/src/components/Checkbox.tsx @@ -1,16 +1,17 @@ import React from 'react' type CheckboxProps = { + disabled?: boolean children?: React.ReactNode value?: boolean onChange?: (value: boolean) => void } -export const Checkbox: React.FC = ({ value, onChange, children }) => { +export const Checkbox: React.FC = ({ disabled, value, onChange, children }) => { return
} diff --git a/gui/src/components/RunPanel.tsx b/gui/src/components/RunPanel.tsx index ac991b8..1fa1fc1 100644 --- a/gui/src/components/RunPanel.tsx +++ b/gui/src/components/RunPanel.tsx @@ -1,9 +1,9 @@ import classNames from 'classnames'; import { usePromise } from 'hooks/usePromise'; -import React, { useState } from 'react' +import React, { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next'; import { canExport, getProfile, setProfile } from 'services/config'; -import { run } from 'services/s3si'; +import { run, useLog } from 'services/s3si'; import { Checkbox } from './Checkbox'; import { Loading } from './Loading'; @@ -39,16 +39,40 @@ export const RunPanel: React.FC = () => { setLoading(false); } } + const disabled = !canExport(result); return <> - {t('导出对战数据')} - {t('导出打工数据')} - +
+ {t('导出对战数据')} + {t('导出打工数据')} + +
} + +export type LogPanelProps = { + className?: string +} + +export const LogPanel: React.FC = ({ className }) => { + const { renderedLogs } = useLog(); + const div = useRef(null); + const { t } = useTranslation(); + + useEffect(() => { + if (div.current) { + div.current.scrollTop = div.current.scrollHeight; + } + }, [renderedLogs]) + + return
+ {renderedLogs.length === 0 &&
{t('欢迎! 请点击"导出"按钮开始使用.')}
} + {renderedLogs.map((line, i) =>
{line}
)} +
+} diff --git a/gui/src/main.css b/gui/src/main.css index 50fd673..cd96134 100644 --- a/gui/src/main.css +++ b/gui/src/main.css @@ -26,6 +26,7 @@ body { #root { height: 100vh; + overflow: hidden } @media (prefers-color-scheme: dark) { @@ -42,5 +43,5 @@ body { } .full-card { - @apply card m-2 h-full; + @apply card p-2 h-full; } diff --git a/gui/src/main.tsx b/gui/src/main.tsx index c67c01e..6fb17db 100644 --- a/gui/src/main.tsx +++ b/gui/src/main.tsx @@ -1,12 +1,15 @@ import React from "react"; import ReactDOM from "react-dom/client"; import { BrowserRouter } from "react-router-dom"; +import { LogProvider } from "services/s3si"; import App from "./App"; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( - - - - + + + + + + ); diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index f27dc69..911306d 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,6 +1,6 @@ import { ErrorContent } from 'components/ErrorContent'; import { Loading } from 'components/Loading'; -import { RunPanel } from 'components/RunPanel'; +import { LogPanel, RunPanel } from 'components/RunPanel'; import { STAT_INK } from 'constant'; import { usePromise } from 'hooks/usePromise'; import React from 'react' @@ -28,14 +28,15 @@ export const Home: React.FC = () => { } - return <> -
-

{t('欢迎!')}

+ return
+
+ {t('配置')} {t('前往 stat.ink')}
- + +
} diff --git a/gui/src/services/config.ts b/gui/src/services/config.ts index 3d8ed76..0022ab9 100644 --- a/gui/src/services/config.ts +++ b/gui/src/services/config.ts @@ -60,5 +60,5 @@ export async function setProfile(index: number, profile: Profile) { } export function canExport(profile: Profile): boolean { - return !!profile.state.loginState?.sessionToken + return !!(profile.state.loginState?.sessionToken && profile.state.statInkApiKey) } diff --git a/gui/src/services/s3si.ts b/gui/src/services/s3si.tsx similarity index 58% rename from gui/src/services/s3si.ts rename to gui/src/services/s3si.tsx index 6520740..7ba9dc8 100644 --- a/gui/src/services/s3si.ts +++ b/gui/src/services/s3si.tsx @@ -1,11 +1,12 @@ import { invoke } from "@tauri-apps/api"; import { JSONRPCClient, S3SIService, StdioTransport } from "jsonrpc"; -import { ExportOpts, State } from "jsonrpc/types"; -import { useCallback } from "react"; +import { ExportOpts, Log, State } from "jsonrpc/types"; +import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react"; const client = new JSONRPCClient({ transport: new StdioTransport() }).getProxy(); +const LOG_SUB = new Set<(logs: Log[]) => void>(); async function getLogs() { while (true) { @@ -31,10 +32,57 @@ async function getLogs() { break; } } + for (const cb of LOG_SUB) { + cb(r.result); + } } } getLogs() +const LOG_CONTEXT = createContext<{ + logs: Log[], + renderedLogs: React.ReactNode[] +}>({ + logs: [], + renderedLogs: [], +}); + +export const useLog = () => { + return useContext(LOG_CONTEXT); +} + +function renderLevel(log: Log) { + return `[${log.level.toUpperCase()}]`.padEnd(7) +} + +function renderLog(log: Log) { + return `${renderLevel(log)} ${log.msg.map(String).join(' ')}` +} + +export const LogProvider: React.FC<{ limit?: number, children?: React.ReactNode }> = ({ children, limit = 10 }) => { + const [logs, setLogs] = useState([]); + + useEffect(() => { + const cb = (logs: Log[]) => { + setLogs(old => [...old, ...logs].slice(-limit)); + } + LOG_SUB.add(cb); + return () => { + LOG_SUB.delete(cb); + } + }, [limit]) + + + const renderedLogs = useMemo(() => logs.map(renderLog), [logs]) + + return + {children} + +} + export const useLogin = () => { const login = useCallback(async () => { const result = await client.loginSteps(); From e3fea3f8151bc23b14525fa851e314451b80c4cc Mon Sep 17 00:00:00 2001 From: imspace Date: Thu, 9 Mar 2023 05:53:17 +0800 Subject: [PATCH 35/49] build: gui 0.1.0 --- gui/src-tauri/tauri.conf.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index a36a35f..a28e758 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -7,8 +7,8 @@ "withGlobalTauri": false }, "package": { - "productName": "s3si-ts", - "version": "0.3.2" + "productName": "s3si.ts", + "version": "0.1.0" }, "tauri": { "allowlist": { From 989fd4b30b2d550fa294ef493afeb575139bb10f Mon Sep 17 00:00:00 2001 From: imspace Date: Thu, 9 Mar 2023 06:38:39 +0800 Subject: [PATCH 36/49] feat: add useSubField hook --- gui/src/components/Header.tsx | 2 +- gui/src/components/RunPanel.tsx | 18 ++++++- gui/src/hooks/useSubField.ts | 86 +++++++++++++++++++++++++++++++++ gui/src/jsonrpc/client.ts | 12 +++-- gui/src/pages/Guide.tsx | 4 +- gui/src/pages/Home.tsx | 2 +- gui/src/pages/Settings.tsx | 64 +++++++++++------------- gui/src/services/s3si.tsx | 26 ++++++++-- src/jsonrpc/server.ts | 35 ++++++++++---- 9 files changed, 191 insertions(+), 58 deletions(-) create mode 100644 gui/src/hooks/useSubField.ts diff --git a/gui/src/components/Header.tsx b/gui/src/components/Header.tsx index 77ff659..3ddab8e 100644 --- a/gui/src/components/Header.tsx +++ b/gui/src/components/Header.tsx @@ -9,6 +9,6 @@ type HeaderProps = { export const Header: React.FC = ({ title }) => { const navigate = useNavigate(); return <> -

{title}

+

{title}

} diff --git a/gui/src/components/RunPanel.tsx b/gui/src/components/RunPanel.tsx index 1fa1fc1..1cd818a 100644 --- a/gui/src/components/RunPanel.tsx +++ b/gui/src/components/RunPanel.tsx @@ -3,7 +3,7 @@ import { usePromise } from 'hooks/usePromise'; import React, { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next'; import { canExport, getProfile, setProfile } from 'services/config'; -import { run, useLog } from 'services/s3si'; +import { addLog, run, useLog } from 'services/s3si'; import { Checkbox } from './Checkbox'; import { Loading } from './Loading'; @@ -24,6 +24,10 @@ export const RunPanel: React.FC = () => { const onClick = async () => { setLoading(true); try { + addLog({ + level: 'log', + msg: ['Export started at', new Date().toLocaleString()], + }) const { state } = result; const newState = await run(state, { exporter: "stat.ink,file", @@ -35,14 +39,24 @@ export const RunPanel: React.FC = () => { ...result, state: newState, }) + } catch (e) { + console.error(e) + addLog({ + level: 'error', + msg: [e], + }) } finally { + addLog({ + level: 'log', + msg: ['Export ended at', new Date().toLocaleString()], + }) setLoading(false); } } const disabled = !canExport(result); return <> -
+
{t('导出对战数据')} {t('导出打工数据')}
diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index e080b6e..379e656 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -9,11 +9,15 @@ import classNames from 'classnames'; import { useLogin } from 'services/s3si'; import { STAT_INK } from 'constant'; import { Header } from 'components/Header'; +import { useSubField } from 'hooks/useSubField'; +import { useNavigate } from 'react-router-dom'; + +const STAT_INK_KEY_LENGTH = 43; const Page: React.FC<{ children?: React.ReactNode }> = ({ children }) => { const { t } = useTranslation(); return
-
+
{children}
} @@ -30,22 +34,12 @@ const Form: React.FC<{ const { login } = useLogin(); const { t } = useTranslation(); const [value, setValue] = useState(oldValue); + const { subField } = useSubField({ value, onChange: setValue }); const changed = JSON.stringify(value) !== JSON.stringify(oldValue); - const setSessionToken = (t: string) => setValue({ - ...value, - profile: { - ...value.profile, - state: { - ...value.profile.state, - loginState: { - ...value.profile.state.loginState, - sessionToken: t, - }, - } - } - }) + const sessionToken = subField('profile.state.loginState.sessionToken') + const statInkApiKey = subField('profile.state.statInkApiKey') const [onSave, { loading, error }] = usePromiseLazy(async () => { await setProfile(0, value.profile); @@ -57,9 +51,11 @@ const Form: React.FC<{ if (!result) { return; } - setSessionToken(result.sessionToken); + sessionToken.onChange(result.sessionToken); }) + const statInkKeyError = (statInkApiKey.value?.length ?? STAT_INK_KEY_LENGTH) !== STAT_INK_KEY_LENGTH; + return <>
@@ -77,8 +73,8 @@ const Form: React.FC<{ className="input input-bordered w-full" type="text" placeholder={t('请点击右上角的登录填入') ?? undefined} - value={value.profile.state.loginState?.sessionToken ?? ''} - onChange={e => setSessionToken(e.target.value)} + value={sessionToken.value ?? ''} + onChange={e => sessionToken.onChange(e.target.value)} />
@@ -90,24 +86,19 @@ const Form: React.FC<{ rel='noopener noreferrer' href={`${STAT_INK}/profile`} title={t('打开 stat.ink') ?? undefined} - >{t('stat.ink')} + >{t('查看API密钥')} - setValue({ - ...value, - profile: { - ...value.profile, - state: { - ...value.profile.state, - statInkApiKey: e.target.value, - } - } - })} - /> +
+ statInkApiKey.onChange(e.target.value)} + /> +
@@ -115,7 +106,7 @@ const Form: React.FC<{
+ })} onClick={onSave} disabled={!changed || statInkKeyError}>{t('保存')}
From 85a3241b66be09b00dd2d3017cdf85c17275d0f2 Mon Sep 17 00:00:00 2001 From: imspace Date: Thu, 9 Mar 2023 18:53:42 +0800 Subject: [PATCH 39/49] feat: add make-update script --- gui/scripts/deno.lock | 147 +++++++++++++++++++++++++++++++++++++ gui/scripts/make-update.ts | 97 ++++++++++++++++++++++++ 2 files changed, 244 insertions(+) create mode 100644 gui/scripts/make-update.ts diff --git a/gui/scripts/deno.lock b/gui/scripts/deno.lock index e4d7150..810a16a 100644 --- a/gui/scripts/deno.lock +++ b/gui/scripts/deno.lock @@ -118,5 +118,152 @@ "https://deno.land/x/oak@v12.1.0/types.d.ts": "41951a18c3bfdb11e40707cab75da078ba8a4907cd7d4e11d8536bc2db0dde05", "https://deno.land/x/oak@v12.1.0/util.ts": "3af8c4ed04c6cc2bedbe66e562a77fc59c72df31c55a902a63885861ca1639d6", "https://deno.land/x/path_to_regexp@v6.2.1/index.ts": "894060567837bae8fc9c5cbd4d0a05e9024672083d5883b525c031eea940e556" + }, + "npm": { + "specifiers": { + "@octokit/rest@19.0.7": "@octokit/rest@19.0.7_@octokit+core@4.2.0" + }, + "packages": { + "@octokit/auth-token@3.0.3": { + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", + "dependencies": { + "@octokit/types": "@octokit/types@9.0.0" + } + }, + "@octokit/core@4.2.0": { + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", + "dependencies": { + "@octokit/auth-token": "@octokit/auth-token@3.0.3", + "@octokit/graphql": "@octokit/graphql@5.0.5", + "@octokit/request": "@octokit/request@6.2.3", + "@octokit/request-error": "@octokit/request-error@3.0.3", + "@octokit/types": "@octokit/types@9.0.0", + "before-after-hook": "before-after-hook@2.2.3", + "universal-user-agent": "universal-user-agent@6.0.0" + } + }, + "@octokit/endpoint@7.0.5": { + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", + "dependencies": { + "@octokit/types": "@octokit/types@9.0.0", + "is-plain-object": "is-plain-object@5.0.0", + "universal-user-agent": "universal-user-agent@6.0.0" + } + }, + "@octokit/graphql@5.0.5": { + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", + "dependencies": { + "@octokit/request": "@octokit/request@6.2.3", + "@octokit/types": "@octokit/types@9.0.0", + "universal-user-agent": "universal-user-agent@6.0.0" + } + }, + "@octokit/openapi-types@16.0.0": { + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", + "dependencies": {} + }, + "@octokit/plugin-paginate-rest@6.0.0_@octokit+core@4.2.0": { + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", + "dependencies": { + "@octokit/core": "@octokit/core@4.2.0", + "@octokit/types": "@octokit/types@9.0.0" + } + }, + "@octokit/plugin-request-log@1.0.4_@octokit+core@4.2.0": { + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dependencies": { + "@octokit/core": "@octokit/core@4.2.0" + } + }, + "@octokit/plugin-rest-endpoint-methods@7.0.1_@octokit+core@4.2.0": { + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", + "dependencies": { + "@octokit/core": "@octokit/core@4.2.0", + "@octokit/types": "@octokit/types@9.0.0", + "deprecation": "deprecation@2.3.1" + } + }, + "@octokit/request-error@3.0.3": { + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "@octokit/types@9.0.0", + "deprecation": "deprecation@2.3.1", + "once": "once@1.4.0" + } + }, + "@octokit/request@6.2.3": { + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", + "dependencies": { + "@octokit/endpoint": "@octokit/endpoint@7.0.5", + "@octokit/request-error": "@octokit/request-error@3.0.3", + "@octokit/types": "@octokit/types@9.0.0", + "is-plain-object": "is-plain-object@5.0.0", + "node-fetch": "node-fetch@2.6.9", + "universal-user-agent": "universal-user-agent@6.0.0" + } + }, + "@octokit/rest@19.0.7_@octokit+core@4.2.0": { + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", + "dependencies": { + "@octokit/core": "@octokit/core@4.2.0", + "@octokit/plugin-paginate-rest": "@octokit/plugin-paginate-rest@6.0.0_@octokit+core@4.2.0", + "@octokit/plugin-request-log": "@octokit/plugin-request-log@1.0.4_@octokit+core@4.2.0", + "@octokit/plugin-rest-endpoint-methods": "@octokit/plugin-rest-endpoint-methods@7.0.1_@octokit+core@4.2.0" + } + }, + "@octokit/types@9.0.0": { + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", + "dependencies": { + "@octokit/openapi-types": "@octokit/openapi-types@16.0.0" + } + }, + "before-after-hook@2.2.3": { + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dependencies": {} + }, + "deprecation@2.3.1": { + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dependencies": {} + }, + "is-plain-object@5.0.0": { + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dependencies": {} + }, + "node-fetch@2.6.9": { + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "whatwg-url@5.0.0" + } + }, + "once@1.4.0": { + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "wrappy@1.0.2" + } + }, + "tr46@0.0.3": { + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dependencies": {} + }, + "universal-user-agent@6.0.0": { + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dependencies": {} + }, + "webidl-conversions@3.0.1": { + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dependencies": {} + }, + "whatwg-url@5.0.0": { + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "tr46@0.0.3", + "webidl-conversions": "webidl-conversions@3.0.1" + } + }, + "wrappy@1.0.2": { + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dependencies": {} + } + } } } diff --git a/gui/scripts/make-update.ts b/gui/scripts/make-update.ts new file mode 100644 index 0000000..262f8b2 --- /dev/null +++ b/gui/scripts/make-update.ts @@ -0,0 +1,97 @@ +import { Octokit } from 'npm:@octokit/rest@19.0.7'; + +const TAG_PREFIX = 'gui-' + +type Platform = 'darwin-x86_64' | 'darwin-aarch64' | 'linux-x86_64' | 'windows-x86_64' +const PLATFORMS: Platform[] = ['darwin-x86_64', 'darwin-aarch64', 'linux-x86_64', 'windows-x86_64'] + +const PlatformSuffix: Record = { + 'darwin-x86_64': '.app.tar.gz', + 'darwin-aarch64': '.app.tar.gz', + 'linux-x86_64': '.AppImage.tar.gz', + 'windows-x86_64': '.msi.zip', +} + +type File = { + signature: string + url: string +} + +type UpdateJson = { + version: string + notes: string + pub_date: string + platforms: Record +} + +const REPO = { + owner: 'spacemeowx2', + repo: 's3si.ts', +} + +const octokit = new Octokit({ + auth: Deno.env.get('GITHUB_TOKEN'), +}); + +async function findFirstGuiRelease() { + let page = 1; + while (true) { + const { data: list } = await octokit.repos.listReleases({ + ...REPO, + page, + }) + + if (list.length === 0) { + return undefined + } + + for (const release of list) { + if (release.tag_name.startsWith(TAG_PREFIX)) { + return release + } + } + + page += 1; + } +} + +const release = await findFirstGuiRelease(); + +const version = release?.tag_name.slice(TAG_PREFIX.length) ?? 'unknown'; +const notes = release?.body ?? 'unknown'; +const pub_date = release?.published_at ?? 'unknown'; + +async function makePlatforms(r: typeof release) { + const assets = r?.assets ?? []; + const platforms = Object.fromEntries(PLATFORMS.map(p => { + const asset = assets.find(i => i.name.endsWith(PlatformSuffix[p])); + + if (!asset) { + throw new Error(`Asset not found for ${p}`) + } + + return [p, { + signature: asset.browser_download_url + '.sig', + url: asset.browser_download_url, + }] + })) as Record; + + + return platforms +} + +const updateJson: UpdateJson = { + version, + notes, + pub_date, + platforms: await makePlatforms(release), +} + +// fetch signatures +for (const platform of PLATFORMS) { + const file = updateJson.platforms[platform]; + const res = await fetch(file.signature); + file.signature = await res.text(); +} + +console.log(JSON.stringify(updateJson, null, 2)); From fb14cf5d710ac8fa06a2319f1f85782852f28982 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Thu, 9 Mar 2023 19:33:32 +0800 Subject: [PATCH 40/49] fix(gui): color and layout, disable file export --- gui/src-tauri/src/main.rs | 2 +- gui/src-tauri/tauri.conf.json | 10 +++++----- gui/src/components/RunPanel.tsx | 4 ++-- gui/src/pages/Home.tsx | 12 +++++++----- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index df0d19a..260cada 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -44,7 +44,7 @@ async fn open_splatnet(app: tauri::AppHandle, gtoken: String) -> Option<()> { ) .title("Splatnet3") .center() - .inner_size(1040.0, 960.0) + .inner_size(400.0, 700.0) .initialization_script(&format!( r##" const gtoken = "_gtoken={gtoken}"; diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index a640476..8dab183 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -84,12 +84,12 @@ "fullscreen": false, "resizable": true, "title": "s3si.ts", - "width": 400, - "height": 400, - "minWidth": 320, - "minHeight": 400, + "width": 500, + "height": 600, + "minWidth": 400, + "minHeight": 500, "visible": false } ] } -} \ No newline at end of file +} diff --git a/gui/src/components/RunPanel.tsx b/gui/src/components/RunPanel.tsx index 1cd818a..df37c49 100644 --- a/gui/src/components/RunPanel.tsx +++ b/gui/src/components/RunPanel.tsx @@ -30,7 +30,7 @@ export const RunPanel: React.FC = () => { }) const { state } = result; const newState = await run(state, { - exporter: "stat.ink,file", + exporter: "stat.ink", monitor: false, withSummary: false, skipMode: exportBattle === false ? 'vs' : exportCoop === false ? 'coop' : undefined, @@ -85,7 +85,7 @@ export const LogPanel: React.FC = ({ className }) => { } }, [renderedLogs]) - return
+ return
{renderedLogs.length === 0 &&
{t('欢迎! 请点击"导出"按钮开始使用.')}
} {renderedLogs.map((line, i) =>
{line}
)}
diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index 9e666e5..eab2ac0 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -37,13 +37,15 @@ export const Home: React.FC = () => { return
-
-
- +
+
+ {t('设置')} - {t('前往 stat.ink')} - +
+ + {t('前往 stat.ink')} +
From 4c458861c6a8e92b7b972a2b1de2291bf4290066 Mon Sep 17 00:00:00 2001 From: imspace Date: Thu, 9 Mar 2023 20:49:37 +0800 Subject: [PATCH 41/49] feat: css patch for splatnet3 --- gui/src-tauri/src/main.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index 260cada..a6aded6 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -52,6 +52,17 @@ if (!document.cookie.includes(gtoken)) {{ document.cookie = gtoken; window.location.reload(); }} +document.addEventListener("DOMContentLoaded", () => {{ + // insert css + const style = document.createElement('style'); + style.innerHTML = ` + [class^="App_App_"] , [class^="InAppContent_children_"] , [class^="SwipableView_swipableViewItem_"] , + [class^="MainWrapper_wrapper_"] {{ + overflow: auto; + }} + `; + document.head.appendChild(style); +}}); "## )) .build() From 3fdc66c384503b9e9c25ac704aceb79d69bb68c9 Mon Sep 17 00:00:00 2001 From: imspace Date: Thu, 9 Mar 2023 22:08:42 +0800 Subject: [PATCH 42/49] feat: refetch token before open splatnet --- gui/src-tauri/src/main.rs | 2 +- gui/src/components/OpenSplatnet.tsx | 59 +++++++++++++++++++++++++++++ gui/src/pages/Home.tsx | 32 +--------------- gui/src/services/s3si.tsx | 8 ++++ src/daemon.ts | 22 ++++++++++- src/jsonrpc/types.ts | 1 + src/splatnet3.ts | 2 +- 7 files changed, 93 insertions(+), 33 deletions(-) create mode 100644 gui/src/components/OpenSplatnet.tsx diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index a6aded6..22e50d3 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -57,7 +57,7 @@ document.addEventListener("DOMContentLoaded", () => {{ const style = document.createElement('style'); style.innerHTML = ` [class^="App_App_"] , [class^="InAppContent_children_"] , [class^="SwipableView_swipableViewItem_"] , - [class^="MainWrapper_wrapper_"] {{ + [class^="MainWrapper_wrapper_"] , [class^="FriendList_wrapper_"] {{ overflow: auto; }} `; diff --git a/gui/src/components/OpenSplatnet.tsx b/gui/src/components/OpenSplatnet.tsx new file mode 100644 index 0000000..89c999a --- /dev/null +++ b/gui/src/components/OpenSplatnet.tsx @@ -0,0 +1,59 @@ +import { invoke } from '@tauri-apps/api'; +import classNames from 'classnames'; +import { usePromise } from 'hooks/usePromise'; +import React, { useState } from 'react' +import { getConfig, getProfile, setProfile } from 'services/config'; +import { ensureTokenValid } from 'services/s3si'; +import { composeLoadable } from 'utils/composeLoadable'; +import { ErrorContent } from './ErrorContent'; + +type OpenSplatnetProps = { + children?: React.ReactNode +} + +export const OpenSplatnet: React.FC = ({ children }) => { + let { loading, error, retry, result } = composeLoadable({ + config: usePromise(getConfig), + profile: usePromise(() => getProfile(0)), + }); + const [doing, setDoing] = useState(false); + const [err, setError] = useState(); + + const onClick = async () => { + setDoing(true); + try { + if (!result) { + return; + } + const state = result.profile.state; + const newState = await ensureTokenValid(state); + await setProfile(0, { + ...result.profile, + state: newState, + }); + retry?.(); + const gtoken = newState.loginState?.gToken; + await invoke('open_splatnet', { + gtoken, + }); + } catch (e) { + setError(e); + } finally { + setDoing(false); + } + }; + + + if (error || err) { + return <> + + + } + + return <> + + +} diff --git a/gui/src/pages/Home.tsx b/gui/src/pages/Home.tsx index eab2ac0..922c107 100644 --- a/gui/src/pages/Home.tsx +++ b/gui/src/pages/Home.tsx @@ -1,41 +1,13 @@ -import { invoke } from '@tauri-apps/api'; -import { ErrorContent } from 'components/ErrorContent'; -import { Loading } from 'components/Loading'; +import { OpenSplatnet } from 'components/OpenSplatnet'; import { LogPanel, RunPanel } from 'components/RunPanel'; import { STAT_INK } from 'constant'; -import { usePromise } from 'hooks/usePromise'; import React from 'react' import { useTranslation } from 'react-i18next'; import { Link } from "react-router-dom"; -import { getConfig, getProfile } from 'services/config'; -import { composeLoadable } from 'utils/composeLoadable'; export const Home: React.FC = () => { - let { loading, error, retry, result } = composeLoadable({ - config: usePromise(getConfig), - profile: usePromise(() => getProfile(0)), - }); const { t } = useTranslation(); - if (loading) { - return <> -
- - } - - if (error) { - return <> - - - } - const gtoken = result?.profile.state.loginState?.gToken - const onOpenSplatnet3 = async () => { - await invoke('open_splatnet', { - gtoken, - }) - }; - - return
@@ -43,7 +15,7 @@ export const Home: React.FC = () => { {t('设置')}
- + {t('打开鱿鱼圈3')} {t('前往 stat.ink')}
diff --git a/gui/src/services/s3si.tsx b/gui/src/services/s3si.tsx index 510146b..7b8b24a 100644 --- a/gui/src/services/s3si.tsx +++ b/gui/src/services/s3si.tsx @@ -140,3 +140,11 @@ export async function run(state: State, opts: ExportOpts) { } return r.result; } + +export async function ensureTokenValid(state: State) { + const r = await client.ensureTokenValid(state); + if (r.error) { + throw new Error(r.error.message); + } + return r.result; +} diff --git a/src/daemon.ts b/src/daemon.ts index 8b9e3d1..c4a5930 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -10,8 +10,9 @@ import { DEFAULT_ENV, Env } from "./env.ts"; import { Queue } from "./jsonrpc/channel.ts"; import { ExportOpts, Log } from "./jsonrpc/types.ts"; import { App } from "./app.ts"; -import { InMemoryStateBackend, State } from "./state.ts"; +import { InMemoryStateBackend, Profile, State } from "./state.ts"; import { MemoryCache } from "./cache.ts"; +import { Splatnet3 } from "./splatnet3.ts"; class S3SIServiceImplement implements S3SIService, Service { loginMap: Map + > { + const stateBackend = new InMemoryStateBackend(state); + const profile = new Profile({ stateBackend, env: this.env }); + await profile.readState(); + const splatnet3 = new Splatnet3({ profile, env: this.env }); + if (!await splatnet3.checkToken()) { + return { + error: { + code: 101, + message: "SessionToken is invalid", + }, + }; + } + return { + result: stateBackend.state, + }; + } async getLogs(): Promise> { const log = await this.loggerQueue.pop(); return { diff --git a/src/jsonrpc/types.ts b/src/jsonrpc/types.ts index c47cded..7205dac 100644 --- a/src/jsonrpc/types.ts +++ b/src/jsonrpc/types.ts @@ -132,6 +132,7 @@ export interface S3SIService { } > >; + ensureTokenValid(state: State): Promise>; getLogs(): Promise>; run(state: State, opts: ExportOpts): Promise>; // deno-lint-ignore no-explicit-any diff --git a/src/splatnet3.ts b/src/splatnet3.ts index 2eeaf87..080c8fa 100644 --- a/src/splatnet3.ts +++ b/src/splatnet3.ts @@ -155,7 +155,7 @@ export class Splatnet3 { } try { - await this.request(Queries.HomeQuery); + await this.request(Queries.ConfigureAnalyticsQuery); return true; } catch (_e) { return false; From 63635cda0752c57a3dc45d3a685f4fe50b6a93e4 Mon Sep 17 00:00:00 2001 From: imspace Date: Fri, 10 Mar 2023 05:04:28 +0800 Subject: [PATCH 43/49] ci: add gui check when push (#63) * build: regenerate deno.lock * build: add gui check when push also disabled fail-fast * build: fix pnpm * style: fmt json * env * ci: change exp * ci: change key * build: compile current platform * ci: build * ci: add privkey * feat: compile with sha256 * ci: cache on failure --- .github/workflows/ci.yaml | 5 +- .github/workflows/{release.yaml => gui.yaml} | 43 +++++---- deno.lock | 16 ---- scripts/compile.ts | 96 +++++++++++++++----- scripts/deno.json | 1 + scripts/deno.lock | 88 ++++++++++++++++++ src/daemon.ts | 5 + src/jsonrpc/types.ts | 1 + 8 files changed, 191 insertions(+), 64 deletions(-) rename .github/workflows/{release.yaml => gui.yaml} (76%) create mode 100644 scripts/deno.json create mode 100644 scripts/deno.lock diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 696628d..9fe24a9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,6 +4,7 @@ jobs: build: runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] deno: [1.x, "1.31.x", canary] @@ -12,10 +13,6 @@ jobs: - uses: denoland/setup-deno@v1 with: deno-version: ${{ matrix.deno }} - - uses: actions/cache@v2 - with: - path: ~/.deno - key: ${{ runner.os }}-${{ matrix.platform }}-deno-${{ hashFiles('deno.lock') }} - name: Check fmt run: deno fmt --check - name: Run lint diff --git a/.github/workflows/release.yaml b/.github/workflows/gui.yaml similarity index 76% rename from .github/workflows/release.yaml rename to .github/workflows/gui.yaml index 5f38c3a..58fda5f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/gui.yaml @@ -1,15 +1,12 @@ -name: Release -on: - push: - tags: - - "gui-v*" - workflow_dispatch: +name: GUI +on: [push, pull_request, workflow_dispatch] jobs: - release: + build: permissions: contents: write strategy: + fail-fast: false matrix: platform: [macos-latest, ubuntu-20.04, windows-latest] runs-on: ${{ matrix.platform }} @@ -23,22 +20,12 @@ jobs: sudo apt-get update sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev - - uses: denoland/setup-deno@v1 - with: - deno-version: 1.x - - - uses: actions/cache@v2 - with: - path: ~/.deno - key: ${{ runner.os }}-${{ matrix.platform }}-deno-${{ hashFiles('deno.lock') }} - - name: Rust setup uses: dtolnay/rust-toolchain@stable - - name: Rust cache - uses: swatinem/rust-cache@v2 + - uses: denoland/setup-deno@v1 with: - workspaces: "./gui/src-tauri -> target" + deno-version: 1.x - uses: pnpm/action-setup@v2 with: @@ -51,6 +38,12 @@ jobs: cache: "pnpm" cache-dependency-path: gui/pnpm-lock.yaml + - name: Rust cache + uses: swatinem/rust-cache@v2 + with: + workspaces: "./gui/src-tauri -> target" + cache-on-failure: true + - name: Compile s3si.ts run: deno run -A ./scripts/compile.ts @@ -60,6 +53,18 @@ jobs: - name: Build the app uses: tauri-apps/tauri-action@v0 + if: ${{ !startsWith(github.ref, 'refs/tags/gui-v') }} + + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + with: + projectPath: ./gui + + - name: Release the app + uses: tauri-apps/tauri-action@v0 + if: ${{ startsWith(github.ref, 'refs/tags/gui-v') }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/deno.lock b/deno.lock index 42a5e38..a625e82 100644 --- a/deno.lock +++ b/deno.lock @@ -16,7 +16,6 @@ "https://deno.land/std@0.160.0/bytes/mod.ts": "b2e342fd3669176a27a4e15061e9d588b89c1aaf5008ab71766e23669565d179", "https://deno.land/std@0.160.0/encoding/base64.ts": "c57868ca7fa2fbe919f57f88a623ad34e3d970d675bdc1ff3a9d02bba7409db2", "https://deno.land/std@0.160.0/flags/mod.ts": "686b6b36e14b00f11c9e26cecf439021158436a6e34f60eeb0d927f0b169ae20", - "https://deno.land/std@0.160.0/fmt/colors.ts": "9e36a716611dcd2e4865adea9c4bec916b5c60caad4cdcdc630d4974e6bb8bd4", "https://deno.land/std@0.160.0/io/buffer.ts": "fae02290f52301c4e0188670e730cd902f9307fb732d79c4aa14ebdc82497289", "https://deno.land/std@0.160.0/io/mod.ts": "6e781ebafd5cdccf9ab4afa1f499b08c513602d023cb08ceebc58758501f78bd", "https://deno.land/std@0.160.0/io/readers.ts": "45847ad404afd2f605eae1cff193f223462bc55eeb9ae313c2f3db28aada0fd6", @@ -33,25 +32,11 @@ "https://deno.land/std@0.160.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", "https://deno.land/std@0.160.0/path/win32.ts": "ee8826dce087d31c5c81cd414714e677eb68febc40308de87a2ce4b40e10fb8d", "https://deno.land/std@0.160.0/streams/conversion.ts": "328afbedee0a7e0c330ac4c7b4c1af569ee53974f970230f6a78f545b93abb9b", - "https://deno.land/std@0.160.0/testing/_diff.ts": "a23e7fc2b4d8daa3e158fa06856bedf5334ce2a2831e8bf9e509717f455adb2c", - "https://deno.land/std@0.160.0/testing/_format.ts": "cd11136e1797791045e639e9f0f4640d5b4166148796cad37e6ef75f7d7f3832", - "https://deno.land/std@0.160.0/testing/asserts.ts": "1e340c589853e82e0807629ba31a43c84ebdcdeca910c4a9705715dfdb0f5ce8", "https://deno.land/std@0.160.0/uuid/_common.ts": "76e1fdfb03aecf733f7b3a5edc900f5734f2433b359fdb1535f8de72873bdb3f", "https://deno.land/std@0.160.0/uuid/mod.ts": "e57ba10200d75f2b17570f13eba19faa6734b1be2da5091e2c01039df41274a5", "https://deno.land/std@0.160.0/uuid/v1.ts": "7123410ef9ce980a4f2e54a586ccde5ed7063f6f119a70d86eebd92f8e100295", "https://deno.land/std@0.160.0/uuid/v4.ts": "3e983c6ac895ea2a7ba03da927a2438fe1c26ac43fb38dc44f2f8aa50c23cb53", "https://deno.land/std@0.160.0/uuid/v5.ts": "43973aeda44ad212f2ec9b8d6c042b74d5cef4ce583d6aa6fc4cdb339344c74c", - "https://deno.land/std@0.178.0/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462", - "https://deno.land/std@0.178.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", - "https://deno.land/std@0.178.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.178.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.178.0/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", - "https://deno.land/std@0.178.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.178.0/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", - "https://deno.land/std@0.178.0/path/mod.ts": "4b83694ac500d7d31b0cdafc927080a53dc0c3027eb2895790fb155082b0d232", - "https://deno.land/std@0.178.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", - "https://deno.land/std@0.178.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", - "https://deno.land/std@0.178.0/path/win32.ts": "d186344e5583bcbf8b18af416d13d82b35a317116e6460a5a3953508c3de5bba", "https://deno.land/x/another_cookiejar@v4.1.4/cookie.ts": "72d6a6633ea13dd2f13b53d9726735b194996353a958024072c4d6b077c97baf", "https://deno.land/x/another_cookiejar@v4.1.4/cookie_jar.ts": "9accd36e76929f2f06fa710d2165fb544703617245fa36ac63560b9fa2a22a25", "https://deno.land/x/another_cookiejar@v4.1.4/fetch_wrapper.ts": "d8918c0776413b2d4a675415727973390b4401a026f6dfdcffedce3296b5e0dc", @@ -72,7 +57,6 @@ "https://deno.land/x/msgpack@v1.4/utils/stream.ts": "1315e29af5c1a40d97bfa6f1c4f7f73d26067b912236f56851981f2f049500b8", "https://deno.land/x/msgpack@v1.4/utils/typedArrays.ts": "bb819c2f28cf7f85ed50b2e57f108462715555cc61ce315e8134cf1eef2ae662", "https://deno.land/x/msgpack@v1.4/utils/utf8.ts": "93183055a7a41986080eeb711e83d553e7c8b121642da4379a5adf253b7beefd", - "https://deno.land/x/murmurhash@v1.0.0/mod.ts": "13fd2c5534dfd22ffbfcd4255ea13e47a2f2b99e9c90a83dc43e814a0e278829", "https://deno.land/x/progress@v1.2.8/deps.ts": "e0abdc972a0c152508b28ced5ae9c4be26a5773f0aa4a3caa72371c84d2e28a2", "https://deno.land/x/progress@v1.2.8/mod.ts": "5ef7c7ff079d71effed5055666af81cc58a566bc98e2df8473526bd6457976c5", "https://deno.land/x/progress@v1.2.8/multi.ts": "392553552243204539d83ee53cadda990db20b1b421520411318ff9bd0320646", diff --git a/scripts/compile.ts b/scripts/compile.ts index 3964a73..f51edd2 100644 --- a/scripts/compile.ts +++ b/scripts/compile.ts @@ -1,4 +1,5 @@ import * as path from "https://deno.land/std@0.178.0/path/mod.ts"; +import { assertEquals } from "../dev_deps.ts"; if (import.meta.main) { const __dirname = path.dirname(path.fromFileUrl(import.meta.url)); @@ -8,31 +9,76 @@ if (import.meta.main) { "x86_64-apple-darwin", "aarch64-apple-darwin", ]; + const rustInfo = new TextDecoder().decode( + await Deno.run({ + cmd: ["rustc", "-Vv"], + stdout: "piped", + }).output(), + ); + const target = /host: (\S+)/g.exec(rustInfo)?.[1] ?? "?"; - for (const target of TARGETS) { - //deno compile --target=$target -o ./binaries/s3si-$target -A ../s3si.ts - const p = Deno.run({ - cmd: [ - "deno", - "compile", - "--target", - target, - "-o", - `../gui/binaries/s3si-${target}`, - "-A", - "../src/daemon.ts", - ], - cwd: __dirname, - }); - const status = await p.status(); - if (!status.success) { - console.error( - "Failed to run deno compile for target", - target, - "code:", - status.code, - ); - Deno.exit(status.code); - } + if (!TARGETS.includes(target)) { + console.error(`Unsupported target: ${target}`); + Deno.exit(1); } + + const p = Deno.run({ + cmd: [ + "deno", + "compile", + "--target", + target, + "-o", + `../gui/binaries/s3si-${target}`, + "-A", + "../src/daemon.ts", + ], + cwd: __dirname, + }); + const status = await p.status(); + if (!status.success) { + console.error( + "Failed to run deno compile for target", + target, + "code:", + status.code, + ); + Deno.exit(status.code); + } + + const binPath = `${__dirname}/../gui/binaries/s3si-${target}${ + Deno.build.os === "windows" ? ".exe" : "" + }`; + console.log("Test the binary"); + const s3si = Deno.run({ + cmd: [binPath], + stdin: "piped", + stdout: "piped", + }); + await s3si.stdin?.write( + new TextEncoder().encode( + '{"jsonrpc":"2.0","method":"hello","params":[],"id":1}\n', + ), + ); + s3si.stdin?.close(); + const output = new TextDecoder().decode(await s3si.output()); + + assertEquals( + output, + '{"jsonrpc":"2.0","id":1,"result":{"result":"world"}}\n', + ); + console.log("Test passed"); + + const hashBuffer = await crypto.subtle.digest( + "SHA-256", + await Deno.readFile(binPath), + ); + const hashArray = Array.from(new Uint8Array(hashBuffer)); + + // 将 Uint8Array 转换为十六进制字符串形式的散列值 + const hashHex = hashArray.map((b) => b.toString(16).padStart(2, "0")).join( + "", + ); + + console.log("Hash:", hashHex); } diff --git a/scripts/deno.json b/scripts/deno.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/scripts/deno.json @@ -0,0 +1 @@ +{} diff --git a/scripts/deno.lock b/scripts/deno.lock new file mode 100644 index 0000000..42a5e38 --- /dev/null +++ b/scripts/deno.lock @@ -0,0 +1,88 @@ +{ + "version": "2", + "remote": { + "https://deno.land/std@0.141.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", + "https://deno.land/std@0.141.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", + "https://deno.land/std@0.141.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", + "https://deno.land/std@0.141.0/bytes/mod.ts": "763f97d33051cc3f28af1a688dfe2830841192a9fea0cbaa55f927b49d49d0bf", + "https://deno.land/std@0.141.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", + "https://deno.land/std@0.141.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", + "https://deno.land/std@0.141.0/io/types.d.ts": "01f60ae7ec02675b5dbed150d258fc184a78dfe5c209ef53ba4422b46b58822c", + "https://deno.land/std@0.141.0/streams/conversion.ts": "8268f3f1a43324953dd8e9e4e31adb42e3caddb4502433bde03c279e43d70a3b", + "https://deno.land/std@0.160.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", + "https://deno.land/std@0.160.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934", + "https://deno.land/std@0.160.0/bytes/bytes_list.ts": "aba5e2369e77d426b10af1de0dcc4531acecec27f9b9056f4f7bfbf8ac147ab4", + "https://deno.land/std@0.160.0/bytes/equals.ts": "3c3558c3ae85526f84510aa2b48ab2ad7bdd899e2e0f5b7a8ffc85acb3a6043a", + "https://deno.land/std@0.160.0/bytes/mod.ts": "b2e342fd3669176a27a4e15061e9d588b89c1aaf5008ab71766e23669565d179", + "https://deno.land/std@0.160.0/encoding/base64.ts": "c57868ca7fa2fbe919f57f88a623ad34e3d970d675bdc1ff3a9d02bba7409db2", + "https://deno.land/std@0.160.0/flags/mod.ts": "686b6b36e14b00f11c9e26cecf439021158436a6e34f60eeb0d927f0b169ae20", + "https://deno.land/std@0.160.0/fmt/colors.ts": "9e36a716611dcd2e4865adea9c4bec916b5c60caad4cdcdc630d4974e6bb8bd4", + "https://deno.land/std@0.160.0/io/buffer.ts": "fae02290f52301c4e0188670e730cd902f9307fb732d79c4aa14ebdc82497289", + "https://deno.land/std@0.160.0/io/mod.ts": "6e781ebafd5cdccf9ab4afa1f499b08c513602d023cb08ceebc58758501f78bd", + "https://deno.land/std@0.160.0/io/readers.ts": "45847ad404afd2f605eae1cff193f223462bc55eeb9ae313c2f3db28aada0fd6", + "https://deno.land/std@0.160.0/io/types.d.ts": "107e1e64834c5ba917c783f446b407d33432c5d612c4b3430df64fc2b4ecf091", + "https://deno.land/std@0.160.0/io/util.ts": "23e706b4b6a3ebb34af00ad74d7549d906f3211fc98c1fba1185a36e017fb727", + "https://deno.land/std@0.160.0/io/writers.ts": "2e1c63ffd0cfba411b1fd8374609abff9ea86187c9d4d885d42e6fc20325ef0e", + "https://deno.land/std@0.160.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", + "https://deno.land/std@0.160.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", + "https://deno.land/std@0.160.0/path/_util.ts": "d16be2a16e1204b65f9d0dfc54a9bc472cafe5f4a190b3c8471ec2016ccd1677", + "https://deno.land/std@0.160.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", + "https://deno.land/std@0.160.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", + "https://deno.land/std@0.160.0/path/mod.ts": "56fec03ad0ebd61b6ab39ddb9b0ddb4c4a5c9f2f4f632e09dd37ec9ebfd722ac", + "https://deno.land/std@0.160.0/path/posix.ts": "6b63de7097e68c8663c84ccedc0fd977656eb134432d818ecd3a4e122638ac24", + "https://deno.land/std@0.160.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", + "https://deno.land/std@0.160.0/path/win32.ts": "ee8826dce087d31c5c81cd414714e677eb68febc40308de87a2ce4b40e10fb8d", + "https://deno.land/std@0.160.0/streams/conversion.ts": "328afbedee0a7e0c330ac4c7b4c1af569ee53974f970230f6a78f545b93abb9b", + "https://deno.land/std@0.160.0/testing/_diff.ts": "a23e7fc2b4d8daa3e158fa06856bedf5334ce2a2831e8bf9e509717f455adb2c", + "https://deno.land/std@0.160.0/testing/_format.ts": "cd11136e1797791045e639e9f0f4640d5b4166148796cad37e6ef75f7d7f3832", + "https://deno.land/std@0.160.0/testing/asserts.ts": "1e340c589853e82e0807629ba31a43c84ebdcdeca910c4a9705715dfdb0f5ce8", + "https://deno.land/std@0.160.0/uuid/_common.ts": "76e1fdfb03aecf733f7b3a5edc900f5734f2433b359fdb1535f8de72873bdb3f", + "https://deno.land/std@0.160.0/uuid/mod.ts": "e57ba10200d75f2b17570f13eba19faa6734b1be2da5091e2c01039df41274a5", + "https://deno.land/std@0.160.0/uuid/v1.ts": "7123410ef9ce980a4f2e54a586ccde5ed7063f6f119a70d86eebd92f8e100295", + "https://deno.land/std@0.160.0/uuid/v4.ts": "3e983c6ac895ea2a7ba03da927a2438fe1c26ac43fb38dc44f2f8aa50c23cb53", + "https://deno.land/std@0.160.0/uuid/v5.ts": "43973aeda44ad212f2ec9b8d6c042b74d5cef4ce583d6aa6fc4cdb339344c74c", + "https://deno.land/std@0.178.0/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462", + "https://deno.land/std@0.178.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.178.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.178.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.178.0/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", + "https://deno.land/std@0.178.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.178.0/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", + "https://deno.land/std@0.178.0/path/mod.ts": "4b83694ac500d7d31b0cdafc927080a53dc0c3027eb2895790fb155082b0d232", + "https://deno.land/std@0.178.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", + "https://deno.land/std@0.178.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", + "https://deno.land/std@0.178.0/path/win32.ts": "d186344e5583bcbf8b18af416d13d82b35a317116e6460a5a3953508c3de5bba", + "https://deno.land/x/another_cookiejar@v4.1.4/cookie.ts": "72d6a6633ea13dd2f13b53d9726735b194996353a958024072c4d6b077c97baf", + "https://deno.land/x/another_cookiejar@v4.1.4/cookie_jar.ts": "9accd36e76929f2f06fa710d2165fb544703617245fa36ac63560b9fa2a22a25", + "https://deno.land/x/another_cookiejar@v4.1.4/fetch_wrapper.ts": "d8918c0776413b2d4a675415727973390b4401a026f6dfdcffedce3296b5e0dc", + "https://deno.land/x/another_cookiejar@v4.1.4/mod.ts": "eff949014965771f2cd447fe78625a1ad28b59333afa40640f02c0922534d89a", + "https://deno.land/x/msgpack@v1.4/CachedKeyDecoder.ts": "c39b6f1572902ae08c0e4971f639e81031ac59403957fc43c6fb3c7fe69d99a1", + "https://deno.land/x/msgpack@v1.4/Decoder.ts": "bdb68309cd51da2b9a897f269784c6d636796258838a97f25b0e1b399c6f369b", + "https://deno.land/x/msgpack@v1.4/Encoder.ts": "4852bbacb30cd66eb2bd61a9e20476802458b991e13aacb5eb984d0348247ffe", + "https://deno.land/x/msgpack@v1.4/ExtData.ts": "8d97fe43568e119a1eeb93e1ef1c431e0a24e392fb0c6ffed775aac1e579f244", + "https://deno.land/x/msgpack@v1.4/ExtensionCodec.ts": "e8a24eb1786156239f589cc3058c8ff3d79ed393f420c40fdf7a93df943c91f2", + "https://deno.land/x/msgpack@v1.4/context.ts": "6228de10854dbadf6aef096960af0115214078ec3784eca4565587769fde3d1c", + "https://deno.land/x/msgpack@v1.4/decode.ts": "c808aeec46f6d0e5b28d0bbacd40e78d0a3614b229368c70db2e53c03f7555ca", + "https://deno.land/x/msgpack@v1.4/decodeAsync.ts": "19e4f33ba0cc8d200b857deb9721bace863c0e89f7bff73e2b04379e4ee85bad", + "https://deno.land/x/msgpack@v1.4/encode.ts": "c5598f8eec9efcbd0ef07f246ade049a8f4906703cdb601baf03b2774b293916", + "https://deno.land/x/msgpack@v1.4/mod.ts": "c28290db26b1ea027e1798085fd6c8055685ea086f1418d54a33542b285633c9", + "https://deno.land/x/msgpack@v1.4/timestamp.ts": "5169949efe39bc24f58cd5dcaae682cdf5353c762a54abf9ae6e18c8d9feb648", + "https://deno.land/x/msgpack@v1.4/utils/int.ts": "b08743982f954d2dd7f4f11d868019576b63cb8147d8acc1bce3843f39398188", + "https://deno.land/x/msgpack@v1.4/utils/prettyByte.ts": "35c8104d57ba2a727056beaf1063bbe941d512cdd23ce6b04d7c5b44dafcd46e", + "https://deno.land/x/msgpack@v1.4/utils/stream.ts": "1315e29af5c1a40d97bfa6f1c4f7f73d26067b912236f56851981f2f049500b8", + "https://deno.land/x/msgpack@v1.4/utils/typedArrays.ts": "bb819c2f28cf7f85ed50b2e57f108462715555cc61ce315e8134cf1eef2ae662", + "https://deno.land/x/msgpack@v1.4/utils/utf8.ts": "93183055a7a41986080eeb711e83d553e7c8b121642da4379a5adf253b7beefd", + "https://deno.land/x/murmurhash@v1.0.0/mod.ts": "13fd2c5534dfd22ffbfcd4255ea13e47a2f2b99e9c90a83dc43e814a0e278829", + "https://deno.land/x/progress@v1.2.8/deps.ts": "e0abdc972a0c152508b28ced5ae9c4be26a5773f0aa4a3caa72371c84d2e28a2", + "https://deno.land/x/progress@v1.2.8/mod.ts": "5ef7c7ff079d71effed5055666af81cc58a566bc98e2df8473526bd6457976c5", + "https://deno.land/x/progress@v1.2.8/multi.ts": "392553552243204539d83ee53cadda990db20b1b421520411318ff9bd0320646", + "https://deno.land/x/semaphore@v1.1.1/mod.ts": "431abb51927a16c537cec1cfb05bf2de6a8f3916331f1ec3f9f13ad7ad6a4ea5", + "https://deno.land/x/semaphore@v1.1.1/mutex.ts": "2cc6490481f0fdfe97c6b326a2073819d76b76eac3877864a8ada6a2127492f2", + "https://deno.land/x/semaphore@v1.1.1/semaphore.ts": "0acf1159d635fa3b9198a4ad4acac9e877d79196601aa80544ac0db5a71c646d", + "https://deno.land/x/ts_essentials@v9.1.2/lib/functions.ts": "20681c98ce82d503dba56f5ef9313c196f18a2317ce7c0c331cc3fdea0d56688", + "https://deno.land/x/ts_essentials@v9.1.2/lib/literal-types/mod.ts": "c1b9e16a7e49814e9509bed8a5dec25b717761a37d0ef1589d411bd6130dd2e5", + "https://deno.land/x/ts_essentials@v9.1.2/lib/mod.ts": "d7e44a25aa621425ffd118a0210a492c5c354411018e2db648a68614d5901f5b", + "https://deno.land/x/ts_essentials@v9.1.2/lib/types.ts": "7ee99797a880948c07020e90d569ca3c5d465c378949262110283aa7856f5603", + "https://deno.land/x/ts_essentials@v9.1.2/mod.ts": "ffae461c16d4a1bf24c2179582ab8d5c81ad0df61e4ae2fba51ef5e5bdf90345" + } +} diff --git a/src/daemon.ts b/src/daemon.ts index c4a5930..f098cb9 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -38,6 +38,11 @@ class S3SIServiceImplement implements S3SIService, Service { newFetcher: DEFAULT_ENV.newFetcher, }; + hello(): Promise> { + return Promise.resolve({ + result: "world", + }); + } loginSteps(): Promise< RPCResult<{ authCodeVerifier: string; diff --git a/src/jsonrpc/types.ts b/src/jsonrpc/types.ts index 7205dac..45c5b04 100644 --- a/src/jsonrpc/types.ts +++ b/src/jsonrpc/types.ts @@ -114,6 +114,7 @@ export type ExportOpts = { }; export interface S3SIService { + hello(): Promise>; loginSteps(): Promise< RPCResult< { From 772af8da0d51cc507695653453c8b487a890d371 Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 13 Mar 2023 11:19:53 +0800 Subject: [PATCH 44/49] style: fmt scripts --- gui/scripts/i18n-backend.ts | 32 +++++++++------ gui/scripts/make-update.ts | 78 ++++++++++++++++++++----------------- scripts/deno.lock | 2 +- 3 files changed, 64 insertions(+), 48 deletions(-) diff --git a/gui/scripts/i18n-backend.ts b/gui/scripts/i18n-backend.ts index c5c36b8..4471c51 100644 --- a/gui/scripts/i18n-backend.ts +++ b/gui/scripts/i18n-backend.ts @@ -1,4 +1,4 @@ -import { Application, Router } from 'https://deno.land/x/oak@v12.1.0/mod.ts'; +import { Application, Router } from "https://deno.land/x/oak@v12.1.0/mod.ts"; import * as path from "https://deno.land/std@0.178.0/path/mod.ts"; const PORT = 1421; @@ -10,23 +10,29 @@ const keys: Set = new Set(); async function updateFile() { delayId = null; - for (const lng of ['en', 'zh-CN']) { - const translationPath = path.join(__dirname, `../src/i18n/translation/${lng}.json`); + for (const lng of ["en", "zh-CN"]) { + const translationPath = path.join( + __dirname, + `../src/i18n/translation/${lng}.json`, + ); let translations: Record = {}; try { translations = JSON.parse(await Deno.readTextFile(translationPath)); } catch (error) {} - const toAdd = [...keys].filter(k => !Object.keys(translations).includes(k)); + const toAdd = [...keys].filter((k) => + !Object.keys(translations).includes(k) + ); translations = Object.fromEntries( [ ...Object.entries(translations), ...toAdd - .map(i => [i, i] as const)] - .sort(([a], [b]) => a.localeCompare(b)), + .map((i) => [i, i] as const), + ] + .sort(([a], [b]) => a.localeCompare(b)), ); - console.log('Add keys:', toAdd, 'for', lng); + console.log("Add keys:", toAdd, "for", lng); await Deno.writeTextFile( translationPath, @@ -35,12 +41,14 @@ async function updateFile() { } keys.clear(); } -let delayId: number|null = null; +let delayId: number | null = null; -router.post('/locales/add/:lng/:ns', async (context) => { +router.post("/locales/add/:lng/:ns", async (context) => { try { // ns, lng is ignored - const body: Record = await context.request.body({ type: 'json' }).value; + const body: Record = await context.request.body({ + type: "json", + }).value; for (const key of Object.keys(body)) { keys.add(key); } @@ -51,7 +59,7 @@ router.post('/locales/add/:lng/:ns', async (context) => { delayId = setTimeout(updateFile, 1000); context.response.status = 200; - context.response.body = { message: 'Translation added.' }; + context.response.body = { message: "Translation added." }; } catch (error) { context.response.status = 500; context.response.body = { message: error.message }; @@ -61,5 +69,5 @@ router.post('/locales/add/:lng/:ns', async (context) => { app.use(router.routes()); app.use(router.allowedMethods()); -console.log(`Listening on port ${PORT}...`) +console.log(`Listening on port ${PORT}...`); await app.listen({ port: PORT }); diff --git a/gui/scripts/make-update.ts b/gui/scripts/make-update.ts index 262f8b2..81d33fd 100644 --- a/gui/scripts/make-update.ts +++ b/gui/scripts/make-update.ts @@ -1,36 +1,45 @@ -import { Octokit } from 'npm:@octokit/rest@19.0.7'; +import { Octokit } from "npm:@octokit/rest@19.0.7"; -const TAG_PREFIX = 'gui-' +const TAG_PREFIX = "gui-"; -type Platform = 'darwin-x86_64' | 'darwin-aarch64' | 'linux-x86_64' | 'windows-x86_64' -const PLATFORMS: Platform[] = ['darwin-x86_64', 'darwin-aarch64', 'linux-x86_64', 'windows-x86_64'] +type Platform = + | "darwin-x86_64" + | "darwin-aarch64" + | "linux-x86_64" + | "windows-x86_64"; +const PLATFORMS: Platform[] = [ + "darwin-x86_64", + "darwin-aarch64", + "linux-x86_64", + "windows-x86_64", +]; const PlatformSuffix: Record = { - 'darwin-x86_64': '.app.tar.gz', - 'darwin-aarch64': '.app.tar.gz', - 'linux-x86_64': '.AppImage.tar.gz', - 'windows-x86_64': '.msi.zip', -} + "darwin-x86_64": ".app.tar.gz", + "darwin-aarch64": ".app.tar.gz", + "linux-x86_64": ".AppImage.tar.gz", + "windows-x86_64": ".msi.zip", +}; type File = { - signature: string - url: string -} + signature: string; + url: string; +}; type UpdateJson = { - version: string - notes: string - pub_date: string - platforms: Record -} + version: string; + notes: string; + pub_date: string; + platforms: Record; +}; const REPO = { - owner: 'spacemeowx2', - repo: 's3si.ts', -} + owner: "spacemeowx2", + repo: "s3si.ts", +}; const octokit = new Octokit({ - auth: Deno.env.get('GITHUB_TOKEN'), + auth: Deno.env.get("GITHUB_TOKEN"), }); async function findFirstGuiRelease() { @@ -39,15 +48,15 @@ async function findFirstGuiRelease() { const { data: list } = await octokit.repos.listReleases({ ...REPO, page, - }) + }); if (list.length === 0) { - return undefined + return undefined; } for (const release of list) { if (release.tag_name.startsWith(TAG_PREFIX)) { - return release + return release; } } @@ -57,27 +66,26 @@ async function findFirstGuiRelease() { const release = await findFirstGuiRelease(); -const version = release?.tag_name.slice(TAG_PREFIX.length) ?? 'unknown'; -const notes = release?.body ?? 'unknown'; -const pub_date = release?.published_at ?? 'unknown'; +const version = release?.tag_name.slice(TAG_PREFIX.length) ?? "unknown"; +const notes = release?.body ?? "unknown"; +const pub_date = release?.published_at ?? "unknown"; async function makePlatforms(r: typeof release) { const assets = r?.assets ?? []; - const platforms = Object.fromEntries(PLATFORMS.map(p => { - const asset = assets.find(i => i.name.endsWith(PlatformSuffix[p])); + const platforms = Object.fromEntries(PLATFORMS.map((p) => { + const asset = assets.find((i) => i.name.endsWith(PlatformSuffix[p])); if (!asset) { - throw new Error(`Asset not found for ${p}`) + throw new Error(`Asset not found for ${p}`); } return [p, { - signature: asset.browser_download_url + '.sig', + signature: asset.browser_download_url + ".sig", url: asset.browser_download_url, - }] + }]; })) as Record; - - return platforms + return platforms; } const updateJson: UpdateJson = { @@ -85,7 +93,7 @@ const updateJson: UpdateJson = { notes, pub_date, platforms: await makePlatforms(release), -} +}; // fetch signatures for (const platform of PLATFORMS) { diff --git a/scripts/deno.lock b/scripts/deno.lock index 42a5e38..df6de4a 100644 --- a/scripts/deno.lock +++ b/scripts/deno.lock @@ -85,4 +85,4 @@ "https://deno.land/x/ts_essentials@v9.1.2/lib/types.ts": "7ee99797a880948c07020e90d569ca3c5d465c378949262110283aa7856f5603", "https://deno.land/x/ts_essentials@v9.1.2/mod.ts": "ffae461c16d4a1bf24c2179582ab8d5c81ad0df61e4ae2fba51ef5e5bdf90345" } -} +} \ No newline at end of file From afa239df64c25b0a10d05b33c3b604890e01a452 Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 13 Mar 2023 12:00:01 +0800 Subject: [PATCH 45/49] feat: add languages --- gui/scripts/i18n-backend.ts | 2 +- gui/src-tauri/src/main.rs | 5 +-- gui/src/components/OpenSplatnet.tsx | 1 + gui/src/i18n/config.ts | 5 +++ gui/src/i18n/translation/en.json | 24 ++++++++++++++- gui/src/i18n/translation/ja.json | 23 ++++++++++++++ gui/src/i18n/translation/zh-CN.json | 24 ++++++++++++++- gui/src/pages/Settings.tsx | 47 ++++++++++++++++++++++++++++- 8 files changed, 125 insertions(+), 6 deletions(-) create mode 100644 gui/src/i18n/translation/ja.json diff --git a/gui/scripts/i18n-backend.ts b/gui/scripts/i18n-backend.ts index 4471c51..d6584a2 100644 --- a/gui/scripts/i18n-backend.ts +++ b/gui/scripts/i18n-backend.ts @@ -10,7 +10,7 @@ const keys: Set = new Set(); async function updateFile() { delayId = null; - for (const lng of ["en", "zh-CN"]) { + for (const lng of ["en", 'ja', "zh-CN"]) { const translationPath = path.join( __dirname, `../src/i18n/translation/${lng}.json`, diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index 22e50d3..9424797 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -36,11 +36,12 @@ detectAndInject(); "#; #[tauri::command] -async fn open_splatnet(app: tauri::AppHandle, gtoken: String) -> Option<()> { +async fn open_splatnet(app: tauri::AppHandle, gtoken: String, lang: Option) -> Option<()> { + let ui_lang = lang.unwrap_or_else(|| "en-US".to_string()); let _window = WindowBuilder::new( &app, "splatnet3", - tauri::WindowUrl::App("https://api.lp1.av5ja.srv.nintendo.net/".into()), + tauri::WindowUrl::App(format!("https://api.lp1.av5ja.srv.nintendo.net/?lang={ui_lang}").into()), ) .title("Splatnet3") .center() diff --git a/gui/src/components/OpenSplatnet.tsx b/gui/src/components/OpenSplatnet.tsx index 89c999a..5155e0e 100644 --- a/gui/src/components/OpenSplatnet.tsx +++ b/gui/src/components/OpenSplatnet.tsx @@ -35,6 +35,7 @@ export const OpenSplatnet: React.FC = ({ children }) => { const gtoken = newState.loginState?.gToken; await invoke('open_splatnet', { gtoken, + lang: result.profile.state.userLang, }); } catch (e) { setError(e); diff --git a/gui/src/i18n/config.ts b/gui/src/i18n/config.ts index e574100..ea430c1 100644 --- a/gui/src/i18n/config.ts +++ b/gui/src/i18n/config.ts @@ -3,6 +3,7 @@ import LanguageDetector from 'i18next-browser-languagedetector'; import { initReactI18next } from 'react-i18next'; import en from './translation/en.json'; import zhCN from './translation/zh-CN.json'; +import ja from './translation/ja.json'; import HttpBackend from 'i18next-http-backend' export const resources = { @@ -11,6 +12,9 @@ export const resources = { }, 'zh-CN': { translation: zhCN, + }, + ja: { + translation: ja, } }; @@ -25,5 +29,6 @@ if (import.meta.env.DEV) { instance.init({ debug: import.meta.env.DEV, resources, + fallbackLng: 'en', // saveMissing: true, }); diff --git a/gui/src/i18n/translation/en.json b/gui/src/i18n/translation/en.json index 9e26dfe..a0cabf2 100644 --- a/gui/src/i18n/translation/en.json +++ b/gui/src/i18n/translation/en.json @@ -1 +1,23 @@ -{} \ No newline at end of file +{ + "保存": "Save", + "查看API密钥": "View API Key", + "打开 stat.ink": "Open stat.ink", + "打开鱿鱼圈3": "Open Splatnet3", + "导出": "Export", + "导出打工数据": "Export Salmon Run", + "导出对战数据": "Export VS", + "欢迎! 请点击\"导出\"按钮开始使用.": "Welcome! Please click \"Export\" button to start using.", + "界面语言": "Interface Language", + "没有更改": "No changes made", + "密钥的长度应该为{{length}}, 请检查": "The length of the key should be {{length}}, please check", + "前往 stat.ink": "Go to stat.ink", + "请从stat.ink中获取API密钥": "Please obtain the API key from stat.ink", + "请点击右上角的登录填入": "Please click the top right corner to log in", + "请先在设置中完成Nintendo Account登录和stat.ink的API密钥": "Please complete Nintendo Account login and stat.ink API key setup in settings first", + "设置": "Settings", + "网页登录": "Web Login", + "鱿鱼圈3语言偏好": "Splatnet3 Language", + "重置": "Reset", + "Nintendo Account 会话令牌": "Nintendo Account Session Token", + "stat.ink API密钥": "stat.ink API Key" +} \ No newline at end of file diff --git a/gui/src/i18n/translation/ja.json b/gui/src/i18n/translation/ja.json new file mode 100644 index 0000000..fbd8142 --- /dev/null +++ b/gui/src/i18n/translation/ja.json @@ -0,0 +1,23 @@ +{ + "保存": "保存", + "查看API密钥": "APIキーを表示する", + "打开 stat.ink": "stat.inkを開く", + "打开鱿鱼圈3": "イカリング3を開く", + "导出": "エクスポートする", + "导出打工数据": "勤務データをエクスポートする", + "导出对战数据": "対戦データをエクスポートする", + "欢迎! 请点击\"导出\"按钮开始使用.": "ようこそ!「エクスポート」ボタンをクリックして使い始めてください。", + "界面语言": "インターフェース言語", + "没有更改": "変更はありません", + "密钥的长度应该为{{length}}, 请检查": "キーの長さは{{length}}でなければなりません。確認してください。", + "前往 stat.ink": "stat.inkに移動する", + "请从stat.ink中获取API密钥": "stat.inkからAPIキーを取得してください", + "请点击右上角的登录填入": "右上隅のログインをクリックして入力してください", + "请先在设置中完成Nintendo Account登录和stat.ink的API密钥": "Nintendoアカウントのログインとstat.inkのAPIキー設定を先に設定してください", + "设置": "設定", + "网页登录": "ウェブサイトにログインする", + "鱿鱼圈3语言偏好": "イカリング3言語設定", + "重置": "リセット", + "Nintendo Account 会话令牌": "Nintendo Accountセッショントークン", + "stat.ink API密钥": "stat.ink APIキー" +} \ No newline at end of file diff --git a/gui/src/i18n/translation/zh-CN.json b/gui/src/i18n/translation/zh-CN.json index 9e26dfe..cb57b2b 100644 --- a/gui/src/i18n/translation/zh-CN.json +++ b/gui/src/i18n/translation/zh-CN.json @@ -1 +1,23 @@ -{} \ No newline at end of file +{ + "保存": "保存", + "查看API密钥": "查看API密钥", + "打开 stat.ink": "打开 stat.ink", + "打开鱿鱼圈3": "打开鱿鱼圈3", + "导出": "导出", + "导出打工数据": "导出打工数据", + "导出对战数据": "导出对战数据", + "欢迎! 请点击\"导出\"按钮开始使用.": "欢迎! 请点击\"导出\"按钮开始使用.", + "界面语言": "界面语言", + "没有更改": "没有更改", + "密钥的长度应该为{{length}}, 请检查": "密钥的长度应该为{{length}}, 请检查", + "前往 stat.ink": "前往 stat.ink", + "请从stat.ink中获取API密钥": "请从stat.ink中获取API密钥", + "请点击右上角的登录填入": "请点击右上角的登录填入", + "请先在设置中完成Nintendo Account登录和stat.ink的API密钥": "请先在设置中完成Nintendo Account登录和stat.ink的API密钥", + "设置": "设置", + "网页登录": "网页登录", + "鱿鱼圈3语言偏好": "鱿鱼圈3语言偏好", + "重置": "重置", + "Nintendo Account 会话令牌": "Nintendo Account 会话令牌", + "stat.ink API密钥": "stat.ink API密钥" +} \ No newline at end of file diff --git a/gui/src/pages/Settings.tsx b/gui/src/pages/Settings.tsx index 379e656..2c94cbe 100644 --- a/gui/src/pages/Settings.tsx +++ b/gui/src/pages/Settings.tsx @@ -27,12 +27,34 @@ type FormData = { profile: Profile, } +const SPLATNET3_LANGS = { + "de-DE": "German", + "en-GB": "English (UK/Australia)", + "en-US": "English (US)", + "es-ES": "Spanish (Spain)", + "es-MX": "Spanish (Latin America)", + "fr-CA": "French (Canada)", + "fr-FR": "French (France)", + "it-IT": "Italian", + "ja-JP": "Japanese", + "ko-KR": "Korean", + "nl-NL": "Dutch", + "ru-RU": "Russian", + "zh-CN": "Chinese (China)", + "zh-TW": "Chinese (Taiwan)" +} +const UI_LANGS = { + "en": "English", + "zh-CN": "简体中文", + "ja": "日本語", +}; + const Form: React.FC<{ oldValue: FormData, onSaved?: () => void, }> = ({ oldValue, onSaved }) => { const { login } = useLogin(); - const { t } = useTranslation(); + const { t, i18n } = useTranslation(); const [value, setValue] = useState(oldValue); const { subField } = useSubField({ value, onChange: setValue }); @@ -40,6 +62,7 @@ const Form: React.FC<{ const sessionToken = subField('profile.state.loginState.sessionToken') const statInkApiKey = subField('profile.state.statInkApiKey') + const splatnet3Lang = subField('profile.state.userLang') const [onSave, { loading, error }] = usePromiseLazy(async () => { await setProfile(0, value.profile); @@ -100,6 +123,28 @@ const Form: React.FC<{ />
+
+ + +
+
+ + +
From 8f62e777eca9c79135fe173603904e1ff1540dd0 Mon Sep 17 00:00:00 2001 From: imspace Date: Mon, 13 Mar 2023 12:19:40 +0800 Subject: [PATCH 46/49] build: bump version --- gui/src-tauri/tauri.conf.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 8dab183..ac9a680 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -8,7 +8,7 @@ }, "package": { "productName": "s3si-ts", - "version": "0.1.0" + "version": "0.2.0" }, "tauri": { "allowlist": { @@ -92,4 +92,4 @@ } ] } -} +} \ No newline at end of file From ccd24394209f415bf8f4202f86cb87622325bf03 Mon Sep 17 00:00:00 2001 From: imspace Date: Wed, 22 Mar 2023 16:39:28 +0800 Subject: [PATCH 47/49] feat: update wvv --- src/constant.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constant.ts b/src/constant.ts index 8f8964e..b146c6a 100644 --- a/src/constant.ts +++ b/src/constant.ts @@ -3,7 +3,7 @@ import type { StatInkPostBody, VsHistoryDetail } from "./types.ts"; export const AGENT_NAME = "s3si.ts"; export const S3SI_VERSION = "0.3.1"; export const NSOAPP_VERSION = "2.5.0"; -export const WEB_VIEW_VERSION = "3.0.0-2857bc50"; +export const WEB_VIEW_VERSION = "3.0.0-6049221b"; export const S3SI_LINK = "https://github.com/spacemeowx2/s3si.ts"; export const USERAGENT = `${AGENT_NAME}/${S3SI_VERSION} (${S3SI_LINK})`; From 1c833682576d9aafba85d044f3cc3c5147f87965 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 24 Mar 2023 23:27:16 +0800 Subject: [PATCH 48/49] feat: update `WEB_VIEW_VERSION` and query hashes --- CHANGELOG.md | 4 ++++ src/constant.ts | 4 ++-- src/types.ts | 58 ++++++++++++++++++++++++------------------------- 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 754a55e..7eb22a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.2 + +feat: update `WEB_VIEW_VERSION` and query hashes + ## 0.3.1 feat: use ID for uniform(https://stat.ink/api-info/salmon-uniform3) diff --git a/src/constant.ts b/src/constant.ts index b146c6a..4671d25 100644 --- a/src/constant.ts +++ b/src/constant.ts @@ -1,9 +1,9 @@ import type { StatInkPostBody, VsHistoryDetail } from "./types.ts"; export const AGENT_NAME = "s3si.ts"; -export const S3SI_VERSION = "0.3.1"; +export const S3SI_VERSION = "0.3.2"; export const NSOAPP_VERSION = "2.5.0"; -export const WEB_VIEW_VERSION = "3.0.0-6049221b"; +export const WEB_VIEW_VERSION = "3.0.0-0742bda0"; export const S3SI_LINK = "https://github.com/spacemeowx2/s3si.ts"; export const USERAGENT = `${AGENT_NAME}/${S3SI_VERSION} (${S3SI_LINK})`; diff --git a/src/types.ts b/src/types.ts index 23acd88..f493f9c 100644 --- a/src/types.ts +++ b/src/types.ts @@ -2,18 +2,18 @@ import { RankState } from "./state.ts"; export enum Queries { HomeQuery = "22e2fa8294168003c21b00c333c35384", - LatestBattleHistoriesQuery = "4f5f26e64bca394b45345a65a2f383bd", - RegularBattleHistoriesQuery = "d5b795d09e67ce153e622a184b7e7dfa", - BankaraBattleHistoriesQuery = "de4754588109b77dbcb90fbe44b612ee", - XBattleHistoriesQuery = "45c74fefb45a49073207229ca65f0a62", - PrivateBattleHistoriesQuery = "1d6ed57dc8b801863126ad4f351dfb9a", + LatestBattleHistoriesQuery = "0176a47218d830ee447e10af4a287b3f", + RegularBattleHistoriesQuery = "3baef04b095ad8975ea679d722bc17de", + BankaraBattleHistoriesQuery = "0438ea6978ae8bd77c5d1250f4f84803", + XBattleHistoriesQuery = "6796e3cd5dc3ebd51864dc709d899fc5", + PrivateBattleHistoriesQuery = "8e5ae78b194264a6c230e262d069bd28", VsHistoryDetailQuery = "291295ad311b99a6288fc95a5c4cb2d2", - CoopHistoryQuery = "6ed02537e4a65bbb5e7f4f23092f6154", + CoopHistoryQuery = "91b917becd2fa415890f5b47e15ffb15", CoopHistoryDetailQuery = "379f0d9b78b531be53044bcac031b34b", myOutfitCommonDataFilteringConditionQuery = - "d02ab22c9dccc440076055c8baa0fa7a", + "d02ab22c9dccc440076055c8baa0fa7a", myOutfitCommonDataEquipmentsQuery = "d29cd0c2b5e6bac90dd5b817914832f8", - HistoryRecordQuery = "32b6771f94083d8f04848109b7300af5", + HistoryRecordQuery = "f09da9d24d888797fdfb2f060dbdf4ed", ConfigureAnalyticsQuery = "f8ae00773cc412a50dd41a6d9a159ddd", } export type VarsMap = { @@ -682,14 +682,14 @@ export type StatInkCoopPlayer = { number: string; splashtag_title: string | null; uniform?: - | string - | "orange" - | "green" - | "yellow" - | "pink" - | "blue" - | "black" - | "white"; + | string + | "orange" + | "green" + | "yellow" + | "pink" + | "blue" + | "black" + | "white"; special?: string; weapons: (string | null)[]; golden_eggs: number; @@ -754,13 +754,13 @@ export type StatInkPostBody = { test?: "yes" | "no"; uuid: string; lobby: - | "regular" - | "bankara_challenge" - | "bankara_open" - | "xmatch" - | "splatfest_challenge" - | "splatfest_open" - | "private"; + | "regular" + | "bankara_challenge" + | "bankara_open" + | "xmatch" + | "splatfest_challenge" + | "splatfest_open" + | "private"; rule: "nawabari" | "area" | "hoko" | "yagura" | "asari" | "tricolor"; stage: string; weapon: string; @@ -808,12 +808,12 @@ export type StatInkPostBody = { x_power_after?: number | null; fest_power?: number; // Splatfest Power (Pro) fest_dragon?: - | "10x" - | "decuple" - | "100x" - | "dragon" - | "333x" - | "double_dragon"; + | "10x" + | "decuple" + | "100x" + | "dragon" + | "333x" + | "double_dragon"; clout_before?: number; // Splatfest Clout, before the battle clout_after?: number; // Splatfest Clout, after the battle clout_change?: number; // Splatfest Clout, equals to clout_after - clout_before if you know them From 147524e44e3ec8c895d7b5d633ddd7c087ec90af Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Sat, 25 Mar 2023 00:49:50 +0800 Subject: [PATCH 49/49] style: deno fmt --- src/types.ts | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/types.ts b/src/types.ts index f493f9c..2e9d758 100644 --- a/src/types.ts +++ b/src/types.ts @@ -11,7 +11,7 @@ export enum Queries { CoopHistoryQuery = "91b917becd2fa415890f5b47e15ffb15", CoopHistoryDetailQuery = "379f0d9b78b531be53044bcac031b34b", myOutfitCommonDataFilteringConditionQuery = - "d02ab22c9dccc440076055c8baa0fa7a", + "d02ab22c9dccc440076055c8baa0fa7a", myOutfitCommonDataEquipmentsQuery = "d29cd0c2b5e6bac90dd5b817914832f8", HistoryRecordQuery = "f09da9d24d888797fdfb2f060dbdf4ed", ConfigureAnalyticsQuery = "f8ae00773cc412a50dd41a6d9a159ddd", @@ -682,14 +682,14 @@ export type StatInkCoopPlayer = { number: string; splashtag_title: string | null; uniform?: - | string - | "orange" - | "green" - | "yellow" - | "pink" - | "blue" - | "black" - | "white"; + | string + | "orange" + | "green" + | "yellow" + | "pink" + | "blue" + | "black" + | "white"; special?: string; weapons: (string | null)[]; golden_eggs: number; @@ -754,13 +754,13 @@ export type StatInkPostBody = { test?: "yes" | "no"; uuid: string; lobby: - | "regular" - | "bankara_challenge" - | "bankara_open" - | "xmatch" - | "splatfest_challenge" - | "splatfest_open" - | "private"; + | "regular" + | "bankara_challenge" + | "bankara_open" + | "xmatch" + | "splatfest_challenge" + | "splatfest_open" + | "private"; rule: "nawabari" | "area" | "hoko" | "yagura" | "asari" | "tricolor"; stage: string; weapon: string; @@ -808,12 +808,12 @@ export type StatInkPostBody = { x_power_after?: number | null; fest_power?: number; // Splatfest Power (Pro) fest_dragon?: - | "10x" - | "decuple" - | "100x" - | "dragon" - | "333x" - | "double_dragon"; + | "10x" + | "decuple" + | "100x" + | "dragon" + | "333x" + | "double_dragon"; clout_before?: number; // Splatfest Clout, before the battle clout_after?: number; // Splatfest Clout, after the battle clout_change?: number; // Splatfest Clout, equals to clout_after - clout_before if you know them