From ba83bf138a71d7a378bb04f46791b20d17670f47 Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> Date: Wed, 10 May 2023 00:49:09 +0530 Subject: [PATCH] =?UTF-8?q?chore:=20init=206=20=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> --- .browserslistrc | 1 + .editorconfig | 13 + .env.example | 1 + .eslintrc.cjs | 32 + .gitattributes | 2 + .github/dependabot.yml | 46 + .github/images/averageHeatmap.png | Bin 0 -> 47889 bytes .github/images/densityHeatmap.png | Bin 0 -> 319802 bytes .github/workflows/automerger.yml | 36 + .github/workflows/ci.yml | 57 + .github/workflows/codeql.yml | 43 + .github/workflows/demo.yml | 40 + .github/workflows/lint-pr.yml | 28 + .github/workflows/shipjs-trigger.yml | 40 + .gitignore | 130 + .husky/commit-msg | 21 + .husky/pre-commit | 4 + .npmrc | 2 + .nvmrc | 1 + CODE_OF_CONDUCT.md | 76 + LICENSE | 21 + README.md | 199 + commitlint.config.cjs | 3 + example/.gitignore | 24 + example/index.html | 13 + example/package-lock.json | 848 +++ example/package.json | 20 + example/public/vite.svg | 1 + example/src/main.ts | 65 + example/src/style.css | 41 + example/src/vite-env.d.ts | 1 + example/tsconfig.json | 19 + example/vite.config.ts | 5 + lint-staged.config.cjs | 3 + package-lock.json | 8458 ++++++++++++++++++++++++++ package.json | 96 + prettier.config.cjs | 13 + ship.config.cjs | 3 + src/index.ts | 4 + src/layer.ts | 491 ++ tsconfig.json | 33 + vite.config.ts | 56 + 42 files changed, 10990 insertions(+) create mode 100644 .browserslistrc create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .eslintrc.cjs create mode 100644 .gitattributes create mode 100644 .github/dependabot.yml create mode 100644 .github/images/averageHeatmap.png create mode 100644 .github/images/densityHeatmap.png create mode 100644 .github/workflows/automerger.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/demo.yml create mode 100644 .github/workflows/lint-pr.yml create mode 100644 .github/workflows/shipjs-trigger.yml create mode 100644 .gitignore create mode 100755 .husky/commit-msg create mode 100755 .husky/pre-commit create mode 100644 .npmrc create mode 100644 .nvmrc create mode 100644 CODE_OF_CONDUCT.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 commitlint.config.cjs create mode 100644 example/.gitignore create mode 100644 example/index.html create mode 100644 example/package-lock.json create mode 100644 example/package.json create mode 100644 example/public/vite.svg create mode 100644 example/src/main.ts create mode 100644 example/src/style.css create mode 100644 example/src/vite-env.d.ts create mode 100644 example/tsconfig.json create mode 100644 example/vite.config.ts create mode 100644 lint-staged.config.cjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 prettier.config.cjs create mode 100644 ship.config.cjs create mode 100644 src/index.ts create mode 100644 src/layer.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..0bcb931 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1 @@ +defaults, not IE 11, maintained node versions diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5d12634 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..3b926cd --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +GITHUB_TOKEN= diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..4b536a4 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,32 @@ +module.exports = { + root: true, + env: { + browser: true, + node: true, + es6: true, + }, + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 2022, + sourceType: 'module', + lib: ['es2022'], + ecmaFeatures: { + jsx: false, + }, + }, + plugins: ['jsdoc', 'prettier', 'security', 'import', '@typescript-eslint'], + extends: [ + 'plugin:prettier/recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:jsdoc/recommended', + 'plugin:security/recommended', + 'plugin:import/recommended', + 'plugin:import/typescript', + 'prettier', + ], + // add your custom rules here + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + }, +}; diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1711b6b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,46 @@ +version: 2 +updates: + # Fetch and update latest `npm` packages + - package-ecosystem: npm + versioning-strategy: increase + directory: '/' + schedule: + interval: daily + time: '00:00' + reviewers: + - vinayakkulkarni + assignees: + - vinayakkulkarni + commit-message: + prefix: fix + prefix-development: chore + include: scope + # Fetch and update latest `npm` packages + - package-ecosystem: npm + versioning-strategy: increase + directory: '/example' + schedule: + interval: daily + time: '00:00' + reviewers: + - vinayakkulkarni + assignees: + - vinayakkulkarni + commit-message: + prefix: fix + prefix-development: chore + include: scope + # Fetch and update latest `github-actions` pkgs + - package-ecosystem: github-actions + directory: '/' + schedule: + interval: daily + time: '00:00' + reviewers: + - vinayakkulkarni + assignees: + - vinayakkulkarni + commit-message: + prefix: fix + prefix-development: chore + include: scope diff --git a/.github/images/averageHeatmap.png b/.github/images/averageHeatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..7635b8ac4bf6f7c4aa72698c32b8d3bccec69b2c GIT binary patch literal 47889 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 z zEuMVnHwehcML6Bz=vWE7^EyUMa9&6$`O z`N&L|^sf7}Dcc6&hhdp*v79hvVrmeU;tO%95}12mprslD;C<(2?^4pf#kYS2MDM1!8oL2P|; z#Au81JEH{VW9uV86K?N@*RB9S;Td^3k0oRj%RKQ52=x_Ik-*?n4gOD#l8n3n`+!Xh zA6&?Rw0Cecy2_Q40#L^H`qJ7wnBeaR<5ZT{&7@vWo%jAX^RT?;7dGAKPoFbC(r{Q#Cco{}kV9+b& zw`T8#p}_BjW;$ncA@He4ElX*aD@p!jMGFqs-Mnr>H@lOwwh@h2DZ<4ZSlqbxO7Ni~ z(i_o%Teyv)A$*bhwp0pGQG7k9BhkcaLE@xV$}K=j5VsuTR6bb>Ek-TR)zwWdxVBb7 zgX?C?29R)W>{REvwLToI9NzW9)tZ#OBuRn<+JWdRy}w;N`MCX~ziE8%$ZTx+%f0*y zP!5*N|KR7^L;Dg4^~~}_S{^Cmh*SYSY>%Lmk01X!0hs()2q6}ZqpS{3-V>#M`z%rlOfVK(67ChrOluHvPz$IO>_{ZN=#7j@|H z&6koPVp7djbj6aI{Xex#71vbE9(bBRd!V;D1pP@Msr|sq`E)2V9L*TOT@+d@^g*5T zw)DgaIw8f~N_svQT0VB$Tzwt35MUoauhA%dRNU@5#><*A`c*qgk(>BrqzFQ$Nc+Jv zXm384;^t+ozbACjs@;sYWhyLoQ+UEq&(QnMz@l2$uHkD~5NqmSbFKXtK_X4T%b{O% z7HrUtPxRx_AWg`wL7PK|ESqPi#g4XZEo^_Nb5XakHfCfyYAl%4P9Hg0xs{N55R?wf zXks})iMSoz28f8QW9e=ymMalS9U2ik0{6=N>lB*5maUr}zmiPtky6jCTD)0fO9bF0 z@Y2)QmuGZEu@}C@ynsxD#r6B+VC$i2{AI0nSJQ#&$;9q;=F&`z!J0}J+-l)S$W2)Q zjEeI6dgB%lIeWW%K=5aZ_ax*~Z=9L0*^vgnbTpmXUQzh{&oa3OMS_l+rzqz}uticdu_rZXDV{=j#x2NbR1^!X#nK=KJf$aGQe4QvkU0 zbDLWPcssP|N7lnTI~BR_H1KxZiWx!Mz&?HRx^e`7Q%7M!`!bvR;ltm&d58u3e41{; z7(YMTQ`Ag+v)XP`-~ah$o^k7bx;kunSVDc1+sDsM=bM%z9zK1aJZ79yuZ|3r7&Jw+ z5?u}?R`sgGaI)ZfGe{9a$4+f`bW7L!ALC^HD2Y2g`{s(8b~HAh6|e2&uguki@*gZJ z8F3UyQZI?9;o0-c~&Ey)1XhFHZ}R5dwfzXRXgCwZNmLy6TS%K zun8nuPG*S@M519w)^^<1MS?FWxhLYf)jmd}hr!XVSP(yFPmKKw07CK$295+dS2({7 zMZ1sjXM`tQ8}ao)PeCz)*%(?aJVtAP_N=`zE)&I{WTp|mVCE_$UAd}{XOcX}46irQ z{$?_mP{|d7#M%S!z9(qIZ(FUF&1>hsU;YK27+mMKn)3q7Yz~Vy%W+;AAY&ohpIg#b zF2fQ5&B?vBkPK^s`!l$`2QCHC;elfS!|m^PrmVyV5m)#F3`;tO z(W~^tO6>k?L24S5t?bj?1zeo|dn5dddS$SXvaEOdzX`DNfE%;>?z>@ literal 0 HcmV?d00001 diff --git a/.github/images/densityHeatmap.png b/.github/images/densityHeatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4840b228b92a3212620d6252c24dc9cca8aed3 GIT binary patch literal 319802 zcmYg&1yGw^v@Ntif#U9NL5o{(cXu!D5?qTFcXx`rQyhvr6biv<(ctd-^51vg%wx!8 zzT^utIcJ}>*WPPwqEwY-P?3p{VPIfTF|BO*Xwp)32h2YrGAiOXps zLVx@bEh3@Ugzi$h?i$Wk?p|hYmN3>%&W@HWAagfMODB+xv-|nSK4BOb3K%&_F-`B> zlODZ9+7+L__ks$nUX`s~)z!W^0SzhtP}pf~2E^ERc~zT?agxa_gxBH|B~nAsVp1y` zHcJu*)x&OK066J~sthy_!#r}LRIqNpP=8^B_M3joLiqAW;dG;QleP^MPtI`-u02}q zNp14E)|wY zfh#_7d%KNy;mcsjyLia7$ z1je*>54+$2F6jOIJ>YHBzj3zi(`BGUKr?@VPCj2%~i2M?55dRMjp_UA7cSdW6vLu>8MAhx;+EFhA!+kdJ*B z@d|T)!h6WersK_m(!wI~7xw9FGIQ3R#@8@5JJQ2J-$0+vwh3x4V@9kw6 zZ!?*^GL|tsl=j_Z=$e>7*xt5T!Z7^zIYox)g)fo7OG}S~^+9=%f}ngzeo%hB|K5FM zainoQ`Y&SVZZVS4|F(e-g0O>OPTKb}*{7IHQ&UrOG2_*z(6uq3Kl<>%C-U4ed%0L2 zm_{S_unrNHDW3a>-uLEFlKQfs^3IjPX0$Ex{uV@sEI~)lc4-0)jH~}{zPgx*d- zNVtXGd-o}}WewubRe(0|MUqi!{=DG7MbIb?B!e#N=A8pUSs)ml?Q=szOBg$z&LNJI zY&~E7TQD%A)>svd+7poy&7ahYRK_*|qv#|PF-n!F^rI$5(EuXpa79IM{MWPD>7+7% zzWwIwn;#E~Jg(wpza1YJUL#Flx;2J$SnbUywXUFC7_ z;0~g4^Y!Pc88(+7r~L5YQf%9D$W4bZXB-HPcJJqPpMBryw}?I4``dh+To9a?XtpJe zPkd`SmlD#Ti^2QFR_G@f|0|7x)w_FnfVA}L8vVU%%NonT7n)g6opDdJdi3-Cnd|G5 zM=Ds?zO5GW)N0@TGOu9R;T9fudn+``B}Sl*1230cm|9Xm182s^Rd+!WhH;hE(JM4d zcMsVQuDyJ{=y7OkbbdXlcz5!(LtaMy+Ue@Jj~RSjbJ_D3TXNzm*fq#0aCT<9K|O#Z zo@is=aDz2?0ahS3Q7kO_Ybu&3BHRaS)SOq=ptsYu$dGR>Ut}xw4A%bHo4gD3JyrL~ zLnAcLYtzitHOZ+@CEL>Av}%agd?Ml^qwmG??FkBbFC)$`2tN7OxAg(28aOY1P2M1NbRQ4+ z{k!eUtlDfQeP6p8Ial2v*7Va(&mAVj%Jyrcf6LBcga{w5|8->Y9b?R!{LMdIwu9jS z&UF}AFT9~;esRSNrC@Lv6c6Un>go$RExt~6HjEs(U z_}#Pq4Z1ffVxXD4qCSg)eBmQ;im*AkG^9Ct_Id?Ek<04BpZqN#GjBFtz`Qu{y?bba zh)qAA;p+3bk!*P9F zqDK*L0!qk*Hc^ltLjshT3A|!LzA6Cm>C}i)8Log`@nN1S-mr7p%l;G z=KhezO{{yyEsY6|JYmG&aXi#XR!xNS?nthk%GPHRczu0}LEKwgpP0Bt%#e$ox^f42*v-y*BIm8;N6bck^H5vSV>RWw?IMdb zUSqf7KZiZiqYR^%1VQ1~Udar(h~cZb`A(AX*2@bJ1OoXV{VA{lfv$gf5S!byt{L|D zrcF;P1-?Oo$RH%V&YKpVo}Lu?MD~y1w%%c;`tE@^V%~=>^q_{WL`FED{Nh%+XsRY= z+IaIT;C;YvYKo)Fyiri_N~HwqyI)`GrP*CJ+?onRfTi2UCuHHPrBZ!*V zDdaC0NNwTxpZh0PSAQxALR@^lgMK@3HGt8KKiKdPcb(}FAgujG3?W4~7sCjXpfc4e z&_HxSi(n$Zn=z{u<6CwtY0J^&fALE$L;OBJ7>cpsz)AGU&@P-yDdX#*aJ7hWS@SZy zsd?|TkjYF`n;rx1Isono+1q(nvjo_C)Td$p6S}J86aH|z~2Hgn_oY?sIt2gwZNNplc z%_sUHh7XzQW zAGQ@<{(U+}ZCd`hTBU1bWCjAI@Cx7agL!${eRdGed+y2R%Ol8%>UDfsIXt58hy&6N($6Pqj;)r&B>%CGsCOfhM~w`a>QcD zbAoLsQ%ABwYTBYS&02H)YrYN-COLeLQ9z`8_>WOn*Y{4e^}RYmzoIkDZ>Ls-TTygl zNV+VbMf#}0AKnZwr60o$ud5NA<`d7tkvrbsE@Q=Q=G@N_|CPhMUq6?7nTqzjrg45! zZ&@*`bKUBwRE6{Px=pXIZG5|Ha{cMW!zthmVQ$n!qUV7Sd_!=rgT=!O20W2EY>sAi zE1C)Y^YK}?=}S5IMrO!#>#}s>IzM>7UGeNm0{XFmj7Of%Jc%Lxn~d-WD6)lec6=xI zI;k%I^VFMDU%oXqC7ivzeNBBm=>1J-p3B_VH+welu9=G%wfA{Oa4lWLCb4mi=CJu6 z)oV@DQpbkg>=a!XMn0Gm@x$3>&)|lj*H6M? zDK);xve;t8ZxkpGZ(ZkTo1a6z1&VBSIrkYkw)M|%Qz^v6$O3GJE(?vzQbWF=JpOyV zpLG0WiKkzTnF1j^fBh$v>tR!C!<`dBCgXFVR+;~KS`RS_qISO=ldgi;B^8ku2E$#k z#_rM&9;0BG_70gC*S8N_&`sfF_sJ^z-VujeqS-ER`sB*0s3RZVcQwp*W#4ya5A!ln z|AO52cH9T0?aw^Z(mO8b29)xR>WAu@wMEie%c8@mCCCkBzi|0yc9(&JV{npM6`T5D zAL%D}PU*Cr@K@xosUXY)`VQ$yUQ2q%5N4+`APKp-cmn6$VZqMg8G?>5&-iY60loht zX9YyK-_0dzm}>iN6?uH(gH&IP+!OSV>J9GT&H*5+Fs}_0F@(VHj{?-%_z^arEtlJ3$c% zXX|EGR!|1+s;#Y!FnNwk%HGy6)_Pc-upn{+>;ircp-uh!;|mJX;6>7G3pl|dtTlUD zCjE1W`fn1tc&f;sY)du{Y9FjfdX0^|OTk9m!4tp$BE&$jIskp__H-?9c+u)}oH>3ke+C4A$lo!RuT# z^D#TwgzKh>F62!=VRs8C6@;C#ShUwaXG)*cEcL~gq1t_qaAN0)Z(`o3C<-yb_;ICB0&Rjf0E6uj77VpdX9Vk=FZMBSU zhpr3ObJk-Xk8umo9PQ5|Fs&WcY4Pl5Gile?Dn?FZPBOfnt@e9gqXn*Ij4rb zVN+a$AP$ICr=XolduDDD7MI_aHbf>8ClTiC;<;c)NGZ3-<4%qMjZtjJ`{LHpWZ7QM z?{Xz6=yAecS0jOrjjWcQn3-Ar81%~gY>XaHX7tzqa$EpsL~od5y@0ebaX;afbxo}O zzkblb!I5e_Z!+!%5_bEwLyADlNW8Pn<4(34)YQ~6#xkU~dPKxmQwuyd-oRPJ-mcS2 zpcXWNkTil()kp4+P{5p9qu8A5=?7M*GdP(*v74^tZqYqGfWGz!&kT;mMjS^RzluxQ zFFg&^xe@w~!Ra|_xBW347xm9~u!I*rJ)6?Xw;oG;N{hr4$3v>ddFKJc5r zp!`LfDK0$Mb7;e1rPnht7|eVPSD2OC@+-=ZiD3t;==%I*=inH48rjdEZB{P-_$y5z zg;~VVXZJb}krLsxtN-cccK_0w6%nlGyn1j6w1h4Y(m#s1-9`j@iNj51SXS^en&HCel^SVu zz<*(bRscO~Tx(RRK8c@~i58am)0frjIho=zs7*5hkNb>1)@e1(($Kg3&BJS&qo-5E z0;cjHH(x@3Z^YkARdIV559|e=>@f%F*0eg*)UylljI16-;}aHvsHU*AQ5^>9_wLRSL?PNBc}QsEgny@=;+u7X1JC@~^OsLZ-7 zNj{W0&dVWb>k0)q3cFPnIa1$$Il2ihI591>ePOYaT5~~s*wMXMsG{I7S897Ky2MR} z+)WHW@g`y0$*~`ang2$>a>&w)wDqTAkk3!|FA3SQxT)Ms*El(}nZSN4+ehPc(-?my zw-gq!8f8H;;e3^*i>nf(80-F>%+I(|V%DIPxkgv;(jB>>FImET&GAZ?u+S{pj9yTj z-?u@LnB&g$&)3(X!t=%_xxkutmN330-#=u~6>vkW*YgFc5E{4mi}Nukb?-Mw3roBY zzz(E^=C!Oz9ZVR^ zrhjmKV5^u`Fb}PmnwlA<)c0I_TLxyy>qhLjw-SFsh-_A>U*K6YwjM~PGXC1(!=^7R zhq8pZYA^k)nM(yX4 zMqQc%3|!vGBE(!;UW6+WCUImYS&&4sg+-4A#e|jIJHdB^A}*LJyKl&~3Sye}C9L6U z_Q-~6C`ZBI_n(V>{g`l+dCFdE+1FI{Z4Dl)o}9D-Qyn6wpDt&3a!2m&R%idLwh7%; z{yldNxXWBSyMK<2jm45;xAz#@(<7O*My%yl!%2fo?{s{F6N?1I_Kg&{(v6Jh>KTYE zH09*v80M^CQF|e$a4&ftdVvGf&S}n|Sc0rBUvojL4a}#{+j?64FMP7{O!!tba|KvB zo&XN8W0Xn_@-SYOjQpW`71Us390MzUbz5WKTXPEzDiT6^o48_P$5rf%B(;=o2HB+y zIUVxEI<^$R^g}B`4thp|ExCcknojKp&EjyU*ure;FlzH5>f*3CJh26uc`V{#K6?zl z5*Ca{hN=V1OtNq{z7!1$K;0srXv;baW$&s8qs)x}ys>Oz(?USn2NoA)ozdS;q>};g zl|4ga8*kDl*DJQo27>5+(MoYf2vXJgAa{VUfYhDFTi(5=1at3ZkY56k7-{$GAQV~U zn->LgF;gM345iRQ39^AQ%a19=ZtMG^j;8W4P8u6R5?A87snpQ`CnlS3{fW&x-mrsX zSjOv&#BRm7UdC@s%%2zbs_?B$1vSW%|MD_&6tvl1PMtEnlhFJmlt~%=#B0_85BZ1>eT7o=L zUTGw0x`9;l4|cAFq*dlk=Bwe zsmSK2YB*aY7At|3OEPQP7;rYV353D!o<)}FrHgNVkbytH_;sX>{POwf=;(BfgqBGk zZOig$?k78HoMz-%rT(@dL9VEN=5*#)nC&VYi_ z4!?q@oia3}LNLW0uvzVgI|BR4&T0f8?IOHEVe#Q>w@ZU9#|>zyM z!uiqx%L4J?_E_lSiFNIvh4=G&Kjw_YI)egSO?@qCkJ+>1aZNou6kD0Y5~rqT^1L{K zD*Qgi4V_KmY9#b_?+)z&&v(KFPFVzCcY!<(+NSK9+pne8y!-q3cPHE4_ujKoVv%C* zQBZF8AC7PhIDOr8ifrYKXT?NG(jS^s&& z$yQ>>|FMB1K%zr$6H>Pzz>ZVFh%=$e&MflS6Mzaj+hB_n9k#Yi2ZS1W`0Cf(R%2yO z&D}c$DX%#2(TBRWXgO{kEdmyDIT7;BHnW+D7fZ59AWvGM8Wb7Z%-j(%ux@d>cX?ik*iHz>gaSH&ymLzvk_cCT&? zbV<{{mSV_ifqPTs)985hsXZb;f2Sg;(zM5wf_8lhg`~OMqP*R*50fGxBg9i&%u3DD z)UkvK=Gw%tKhoXjL(Yb@LiPz5BNcRRihjv=lq33+ZC^MQ?U`kW9D3%0xi#DP<*B#=o zx$w@Hyqny7mFa4z2rxS2iGn|=wyNEkdR!7-jNhoVT{DxSf z$$(4c9@&CGY1u;yqq!_9qvXCW-6kEG<2XVLo3Td8(yTn`nKVz;7|BP+@?m8ATOs%N zXkyE-a`jSEA17N_i6oz|OtXG`>gQA`G_7(YTcGvh<6}|C)2RI_C8mLg!SM|i<)`yB zd~OEoMu`y}<8CMc&oBRI&!RpaiVu{DUtKzOaN^+SM}oF3CFDg+?{i6RMgL@wUgUl% zWAtm}gt4gCuYvF)KtJZ^s=6Y^rf&>$cSe&Ncqu_SM7`E4EHwNw|1lT9FfUB~qonN( z142S~m~!tItD>~??Q9T!J`Oj!1lr3Hm*;r`V4Lrh9(&qeeg~o9N{)RIM+|0hYho@= z!GrQ^X=3(&vX+u2BQ@pm(0He3Verk#WbV)UU_TA^olRc#Fq98dEu|2Aae@D(wJ(ZR zGt3YA=}5wL>t4jt2B*-_TH!Tz2eWqMdipcA^$rG9`nob{V|USuAzO(lPu(Idk19{? z{%rwPoH2KN^0;QK(I>tc{wD*prdXkG6V8UROmCt|EAM>8B1okrCy>yUA2!I9ZgcSY# zkrLmuI@vLA2b(w+c{|iFKdYyN%=0ItyDe&3qXA)SJ-z>)aPd2ixOV(em3-(Dh1O%B z&u<2eD3%$bF9-@NVEq;$d*$b4SwKRo$#bg$BR5W-AMj4U?PEz|sVJf37=>gwCWiyX zAOYbB1L@Z$VLF8d+mP|+OfIoVl+ZQ00Y6}V%4oTtk8*SoL*&kg28%w}Fgq721&oZ2 zd~^GY@!>XeR$=zfbi+kEC!=Gz3qMJ%_Pem*UpF?`Yl`dq4XUlX)w)p-hC1SjD!E_1 za6o-QVL;0x_T)?yrU(d04S^D%Wh68+Af{ zIoaPtGQ2WLW^hfhEnIR5(=Dc@1=oc+bC~Ste(;k$v1v{t`fS#mEDTRM%QXqj@H3f= z6aOwM#}lLirotJHS*n_>%2BAG>d{~YPWOO1A~vI_jZowePAFrP^=t|w%!!uCAr3De zAG*4|Cc%#)x+-@0-}w||ed6YB-yg2Hi=wI}i&NmJci=7&1)QitFe-043RDsx+dK4d zKzfOMh^z;D5#}+{JaE?Mau|O+CWJT5bC5FLniH~&koT#jp zl?pzgR8TVxOBdniA4M6&JSic!EvB3R-9yV#idBPhS?n6Xgsil6_2AV3JKrI(xlvb> zB9acY!rHdLpwd$P*{`MiXC_3}HC$9T1_L2tLm&aymBd-0Rk-nI{+2}l>ZrmrL3}&O zLbv~v$5~_P5y`~W>K{r*C(IV|k@L#X+Ja?Ow$UHl-uZFwCh z5;$l!S%ex`cyO7^_h!GxF9$U>%;{$&MX9i>r>mv?eLY*7nljwEE_jCzyeVE|W@Gzv zeh>A7P|~P7DfufnYi?CSX-|SWmOXh-|5^Hc+nR?4TiX&hH&k>vwze8OvF;-Zhx#xC zIJ`xu^97m|5XIDRa7G@E4@p*hPLAcGVjk94I-F;HcMr@^n?1LsCd)}EEpXH5vrGcV zZjYBR*$0{YkT-ORy4EJ9ukKtpLv5%w8ArAN^{5ZzA&%c zX9>aiQUhmJJ!B%eFI zJGkxK9o8;T1?vf@qXhoN;#N`q?LNaU*mt3b{x6^8=e^ufu%#a7i~kc7zS^&gT(tjn z$JDln3B^~|?>)UzAgZb-pEt$gv#S*3rI7k5=^H{NpM(5cq|BXsdno1Gi`2(SL9XOh zs3w*r{Q`0<<3Iouf42WIll4IdM{7D^6k9ng(V!?-)e`PU4Hf;TGS1}53^vgDrVw5R z9;Wk262R-?TvY1slJbh zimS!Ep76MBUtZCq=KF8Db~ikd)1;DHX%&O8bu3B&(cFG#_dAI03I0e@hmpo*VHs8| z0(M0?#RvO{jCPKTjqX2V$!aBe4R9i<1_?#^Fg%y0M*l>2*4$gy$xml>2zYECi%cbv z)wOB9*N`52nLv=dYN`?Om%o zXR<>*jdDC^2{0j4r^#MmSGv)GLgi{`n;4o{rS+AfxBXErm5C_f%m|87sb)c&LGJ;^ z-dj?s^HWobe;j^7D-Iet@wTYB=V~mCYQ&l1RFsvd6(21 zu##%vWF5HFGj_TXzCkDAi8~aw%%k5vRjJcsY|`P^azTUELlhlkb7 ztRiqEpwFMX-&XCRULLBjVdUT;Qw&8V6>S7T$`teBOz*G;A$@6mo>fctqO-(%0a-_O z_eP&ABByzr6nD9$^vTs=#$WpYp4kSU5V_~w9@OYF1S#j{*p`-`ir6CX{Wj$}+Z5b} zX``}m&~sHp>DG}br;iUlBB!IK36oeNoa9*=51^?HIBYYwsiPh0|u0Q zV|3G#VxJqM&DL>d_c_I5Gq$@LKg4w6VZk2$pp^0(Y_2#JI~V`4CE0&WAu}+--6KiT z{ugDz>MHFlC{?{wuK=>JO!x{S z3*GA>8AIPCOi;ffN!U7`#*yN;THYf9jsYjGy-_}UM7YKVYJUKtnHzdyHh`aGC#_Q$ z17y;Qek{N;M$f5zB;`#K_+^)7;>5mG_|c?_Yu^IO z>y4}rx8(H-IHKoV4NFT5=9!CyION&n5V)BwX+4oi3qvq)hsUII8o1?w0%9e!wvO^2 zX^8a*h3q~n&eNaQX}B*{QPpYXA=>{+ODYB9Ei*GwGhd_FM~lU&ET75$Oc{+at?7-u zWyeC+)S6Y7sc47FFBn|XOh0O23`{k@O=D>inWv7(YDG_mK9!6*%$U0o@u~u7!NQw` zCCW+ljbP!Qeh;2-6xAG`kSirZ?g%dT2+L%s@^c*AiVxd!>%VleD>MQp7a<~1o(Obw za&8iAOb15U(z9_C9=gf|x}jgztbJxD#y595mLFu1X2*Yo{u`nn$j1qxpg;@}+Yf0? z3oZg#*h**90KG3v*FbXiO4WLJCVYas{9-9gqgaV0fH*ETZS6N~ zcycDNRJJpdYB;M&nBHT0W|gp8ep=eTrdbvS;3^fI=!CJM%P6yU--9>kSx?M=GGLr@ z@(XO*Ay75r7!~J1)LU&Ag-6Jv!Y;6q-suc&C+}KH)-)RchPqlB_gmBlk2RzI;LgXl zopmY++WR4xd0!3GEk|cc$yyL#hOx(q&ZFV}n2vOe)-xCZ8j2caQxZ92cE);^*nTI% z)j4>0Mh*@b3dmT3oE#h)T3UueKcPSTyE}CxBoTQVSAm|xf5Z63 zg&R)STQcOX&=eDfK_eHUj$C`o$zCYv=qcTc_8G||V6GgV-0_efMNq2#nDbAmSWW9} zDuw6fe=;Rgr*E6z{GXd1^12LP0@ka5({=)$S(bd#A)!UUDGxX`K99YKTIM3oX21jXAt0(M`7d@FHON{hr0Q=1>MK#Ci_ zNxkhV7~Ji`xPO#1+(>^%Dx_o=vWx$=!5(rHXF*DnL>4QAOR_5*jLaWrw@oN&3zmD* zO)>)+NNZ;oJ#j1ysCpP0>Xw##b_gJWsj0A&nh@g}o;m2*i1#w8ZpL%2Jn|MlG-YuK zy+!TKh1RtF*(3(L%gn>FsNk=)u=Z6pzex-h06T*-+iPp=%*%NQgPe)wY4Sn2w`b41 zGkFfa2R!{vjDv;Z;FIM9)q|lg| zo9D&Fq3-YRk6*{$#!a6dBh)Dyi6QpCY-2H1SJ%|k6}9e%|L2T;nheVFyFa@ey#H(M z_LZde)n%^&1s&s9?83#)c%!f4)3`Ct9gvAD2i2-h8FfP4TRFjO&h>$edaoG4Bm$Sa zfXD0{S|Uh%_N4DIQJL_*qB$CQGXA9zvyAn-ipyS)U$gp)w9NE;zn?DGXXLRz9JB`V z`}i3XG0XZ^b;kU=R$h``-zgdGiilae%XZ_Y2ZD)|e3k z%B1jLNSq6-7&F_;Mh)wD<9rwlixigLrqY^@lUf5VxPzUv%37lG;p&#|6@X&K zW8d7&BCN~^$w|?bWI z(UGjkFpN|XJ*1h4N(p5L3YmjNZ+ljh8fy4G}r3*}qG2Z`_#dkQoUrZcoM@!asb^dASPS*O)gM049`LSNOsl!Cmmw}Sj!;C`xP^eeNmjwAN&QUw zYDJ5j{lUNjdVY|iSeiHn=ET++;D4KWDtyK-;u6BD@|Dwy&Zs)kTmz2c5kk$U$)zs( zWGeQGhh#<;nar@1lUyzar4jf(SprU198dF$1AC7IiiSDDc?=4L6PY3uRbB};LuTJ+ z=gf+D6LPOu8UIv1b!H#~;N<0T5W@Q{0j!599v~uH@(kLF-$n2?0JWx zXyULmLM068WuOF~Og^n_shU6uYvWkdjQ#EV4s?fKX`*DX0 z&-S%Xr%!V|g(k}rQeseeI`KWP(=R>bXOoGSFUf^8h;7*ZQ#%Vb~>!q-9!}WgWZ5?<~fze@LHRzOU zg|jawr6&M^)(BiX3>!_8`tevPmWV6WB&nq0whl>Z762Xvxu&pBATPkYaK@<2<1W33 z7y-h1mtO)Do6+o`;{edozi)Q<450`xV-{Cy$8Ke5@gvp!8L5f`q9(u$-^Wnq64EYY z937*thJ&C{qAJD6NZZCy1&~swg$quWg>BS^?y0+9EQN}y&v%#74pi}?>>W7sj7VuZ zRo5=87nB)&C{fijqA@a}Fwzr+gO#ceZL#$2Xh0yj`NP8QQvJPD91gZ>j>;wh`{(Ff zZKIn=wxc^RBr(}xhjQgfVm|H@&c^&hB=fKplCFld?gwb}O^DZ#&^+%+VCZ5$0HZ6q-f749kZ+s*TEFpf$eAv=0_no0c+Udh$vO|Bh2i6aulJq*z= z=7Mm1(0=v!c|l#@6wyWf$KYBW=-h*|d90Xy&-wMGUiL*!UXDn^uHv*5kQIEN0vr|n z_q<#_ZWcD`+cAjjF-T=utMTiPhshdS)s1VN3@xpdj7cfp-Z98E^0reP7kgygI)u(Xz#IQ5!N*K&Ox-?^yk)ClG}XH2~llVES0Un)V2D z_SCY@+nOF9%u~Cl`qhABj3IbmyDn!`7s{H^B!j2b=WjpV;GKU<+#OaZ>9A~F`Uf5& zz@BDWH#z3)>K%D)6~3+}?F5Mw^|>cN{T)nKwXzB?qRTt{wl5SzpyY*DxLHqS^F*5( zsZX$W3^5gdkLQj(8y7{re0{%%hx@d!m+1YJVMw5e6~96I_~Y{=EM&W=T%tnR+nA3Tt)!IVO{Gr?n$| zSVGDOoEzry*shi?I16q56nvdv^T-NhUQZuvsWz+%*IZ`wSko5IWasCpkG0RGo&^cN zTuA))SUu%wbK2Z(E_h{bZf;)h@k)q`ixacETOZh_PpIkEsua?Qdv8iemp16xA`0Oz3zpFX-Eclfi27vzCR8epv{FQ2bMgo^hZY(_9tGEi-CF zm}cq4ssm;VUF1kTmPtM(QP+Shrxh2N0idV8B!*lw-r%DiJ@KgRUdkz&@4P5i6F)85 zU86owS;RaW-JD;U{B^SXU>6LiV%T~0*_8&$+GC@TYz<$Wr!H9}rFdx{ve+tSCpy<9 zDsFr|o8We0^MVS?=v{=>d0}s%dQa#OS#s9I8s!CjQ|OK;`Wa@&!O>s{&s z+^u6IQ;{TgISo8KyoV|4!05+E{&}uJfk~)4f7$lDx1~ik-3sHoO+e%9Up0g<`m`d* zr6C*|r}hPqOfYnUw;ijCO`d!tUtgmk^$PR!Xe&@AT{FG;2D-=+MK=QZ21)>+Nb z#u4o|T5dsmWkCp;?d%S6#;6dzAJT7V*-=$lbdd}Hc?Qvewt>$cQ(T)$PV0W2z>3vm z6-&8h#q;{WU7-6ul>A~7J@8i=laBY}UIrm4>E33K-+Gr<0@TL)ff>FT1d=7yMgS_+ zZM28Cd~f+fy%YeQ?HY_M`b(X_i$v^5C#_$@woXl!M?suN6H8U&L7)*`^RGdGN+(%U z|EZ(2eEOFhi76+`fu&`DJS7cd>||%UnWUhmA+f!SBiH__?v!r#>(v>4x^$uH2jQmr zf6*jiLpc0$eWAaJP_!^A2a$MX&FeM>w3aDsT9IVfFcVBHyK&j)5DAarAZ<6aws(a`*Nu(=#$)+kLL- z3Z7RAhIJ=<{O+@I3dl24pvGUs{`FTu%TsyM^s`j~Q60dRKy=58cuuKc8^A&|>4xFS zD8wpVg&KEG6-LhoAx*O;q>ctiEBB%m7S5(bz1_p~ciKN!)+ zOqotps7+Kj#V~5E&oD?%Lb`eSs5me29ag-O!@IdtFZBbhgIq?dONZ7DR($?|i@FCx zE@%yzw15k|O1+3&Z5?sv2SetVXGv3sS-$#NF_*C z=W;(sl}C_r8FzWcLGKSJ6gE~)mzptz0u0DEwQu^)fX$@f)9&2&% z{J%m|CQ%UI$RB!1kyNf^XhOaVzLOhyNaVk@8c9R&4H zIJV>(eNBP*63I8g zqxh^bMZX9n)H22BV%hiCr6xx^AWAAK*Nr+Rd(iQbmq*^d@p9o?fYWC8c-P-|VYy_I z?htxJa@Re6Wc8=s0jXa>5S8>T-ya@%zqdG;{%AbM8%ei~B#C|e z;hxpYG!5>rKDHcd`dNx1;l5CaDXX9Km1{nB7`FI_=vRU`?pj%F8On_cJ?T?`(W0|^ zsE#c`bBy;b!R%ZLNyDrbZ}qj6lNsjsBZsM(*^hhEExpDG>oZlGcBDc~gBZB2zvJjS z+4cDc+7boC?|1-DIhL=)kS}`VIhLi9e)-xSuHO~?>_UGC46HaRF?cu5@9;amcuj#g z5CP%s}iRaqiX`2`$nLde|oVFV+ zEyKyfs#H}8o9fLq;^k>#n9k!=!t>0IbrFX$%y>47{Y*;4Nl%JWsGvZA9Pr3QNl4|& z3)qUaMMhdm?tU$CleJWxDf+T2u7Ma{8|Mc%)+yvcQ(klTQ7!E!vlN3F3Y`i=XHJPd zx-K+TCt{hC+L|3&^}o+<=D_Q@?Lh+iKyF=rjz)`GMm=9g3$0;LtiE%G>J3u@=6)nv z01g@e(eW2KCL}+sg$|UQJ^5ZvSj5o)G5jI45e=m1--JPEC z{(t`x0bKX;e`vbOsHnQH{|E?3H%NE4bV@f!!%)&Wbhm_b!vNALNOy;%Fh~jrLw9%Q zdwtjX^MS>h4|lEMoV(B2`&VyKX0>m1tX4WRebfSXUth&Ync7TF>n5*kYpSsLbR&gS z+$U9%i})L9M1!(<*nOjGI-fP?`9j(`jmI z`kxQ(GM4Zme;*!Mn`%p!^6>Z12KH*aPQ{>sQ_r$f9>qV^YR_Fv&)QHN$h6Vv8iplHi||;ffZMw>`DvkuDDTM8Q(rvN z!Dl}q$pzt4G)oV$5hWe=f23Po`{|Yf&vx znx#8r{yWl$tKOaTU|p0@E+SMfZ@*H0V~R$A0%de4iVT-wb-)|>ZzdTInrwUMbCE_T zcPlE^0P$s;bdmo9#^Fh?gN(AilfcrQhBzZBq3jTg#l&HBr3v=!pt!U|UHFwT8s3g5 zi$-ERN?mfMd;NhIXA#D@Q6H(F9poe_MxnxC`CjLWuhGx7>G-Q0)lY@Y3y}vR*X=Xs_B6LQ(Lq zQ}s!icKeFIgDChDl75!GpVKScmGBpCf@vN&(e;N zz25&6UfTYhf#LxanyNIy$5ge~D4aTK`8DDza!By(thNKJ^wSw~QAPnM&aoz9^-zOZ zm(iQN!rmTF#0z@6&pB9LgtoTOYwmbKllILIxS2itRGY3(;knbmZxNC-wMgC=z?Zet zW=|E3t`4_Wf*ewNFfte$*~ZJ0PK*dPk!}=p!~SCx zuDST}g#lNB+AK$AT*~aqk+!dx5>4`-vi6_w_Fr!b`b~i7tg)_P53H${5H@9vVb>^N zI+B@}x7m;Bg!`2WlG+*{W2xZVJuy9v11M?$v0(_M1*f44>=YihD}+(qaqaEMakP!- zVqp=so97o#iRSY<-%~oXe`HUl$n+0pmz9(CJ|{TUm z)$xKvZIe+RCkt`XE8?6Oh@c-eE=P;GqiNmgYbttb6PJ8JtwUDKCSeLCNloMxN@bIu zJXBI9oHkQ`7;l;Rwt+Fnj90_uFsr z7QYjiJS96pZ)ngkxaw-_RAMEt-bHZE*}x}PmT}wLt7-I!*2weAtNe<4Q#DD{N4XWT z8k8wav1)#@E^6G${WE+@eWmr9DwocCdp7-U_E>lzFk+{w3 zGJ(E&)~DQwro(xlp{RJ)f7srp1I|z|<$LAVHNbgcBIw17!)v6A8MY4~sWt1U^URvy8H9=(IcZ(h~~s{f7n#U(2Ir&bVR^!_IqagmM! z0yIWDp*~$pk`WyFbvUY>O{+%guWCpdWdr}@v&GrW(C2y^cHTUiJHS#(Qycn56Mv;A$1wx;`1EFT{7w31OiC!xTpuy9XE~$nogp^n*twlKF zDxH6?c$=XWP?eoJ&!HCYAu?3xk0awg(E5z5tj)zH`^u^+I&*c{NsvAy4r~Dbx^j1U zaDV~~I&93H$#y6E{l7*;_?)!ueo}OKya9ubfdbOd+BH#`J>XGw!^SAW* zAZ8qR*}=cYN$W~#>bV(1hmFV}kB~XyKsWrJZa7J^4J_QNNoH!rnPF@=C<`T6*jB|F zM}pe;`I;l}YfpRRp`M7xrVvNh9b8iZ)we~<@?*_YnZ^*JRm@0u3c!-3z6J43xa1c{ zVK_8dqOd8zP^4(V!ofWZ>C&r}^FpLaF*D>{Il<_Ee@M_rw^7}7cU(%W9NZC@=x{eT zSy{(4&rldkS_7XE8yY@z-d5Z);>9TVHOO1Bpc$;PiYv%7%{Ui6za=}``a(5>GP-=b z&^}QdZSKBR)Q90xqry*Ggs+E3s!)v1CSHm=V4D?$gnt($ZcDFmQuO?|?!f&^ynM8> z^MHF-L5@`8e&8y&=F$_s@+ZlQd4=kPAm0XKU-g`-?}wY;Ytpm82OPr{V148XI^_QD z;cbRIf8{P?q_vH~7-cn+()mNK50{Bn4N-V-!=ANZd+3}KtbWgZQ4ca$Q4=VtLXePh zbD;;m6GZO&GMtQXLBgNAv0$CInW82(WD|GT?sqe|q+nAyYbWx$E}a~3Bo_~Vj#Pb zMU}|d20A5?frl+g$$Cs*zkabsn^ zB?gRzDlA`z{UU#6U{Ym3=JQF6+7z?d#)eF-XsTwPt08%8?7H_`i^=tto@;zi6$U1R z*s#?xQjrfzmY1d~-$giup-n9tPUcQ(8r$bVs*G1$LsbsLmNk#Caut$jHd)XmGW;hTm9Yd+E9{P@u>dTH;E>%nSYO`&%oUOAKbnmo zHi)iHZDm};@vL2%S)I4Te(D0{jb0er%yHLRaV^(%U=Qrn zCLHCAPyJM+qeA%L=BBK+%|EJ!v+Rg8e~sKP2d|`x3s6~~&4b)5yHZ`}RWljLp!H`< zaednW(myjZBjSITX!80Hupuy%JaWkjU95ZHs%U>&3pEkH$oNPrwF>Tr_kTJ!VmJD> zGppM(ehh0l3;l22rIxkADW`bmbYZszFJy2#jm-&*B@N}Dp1&FFcDv~z!Dr5r^pIZ| zH}}mX=cWm0U{WFWt3YzkI$=8a#SBMDKxO60T-ATa;MH)>^RSe-D>6O zcQgd;#GN>(EcX8Xr<&cJufZkTmZ0U}{3hAIdh`ygxE@&p5+Csp^(3*JY*3ZLsu@vy z4$8mpd3I>ASP~GX6OoV=7&6zj*8Z|9`Vv>#RX^}M-Ppp%GQ92HC)ek}*2;>!FijHq zC(sH>N%59`=Wx3|&>rG2T#Mo89`H!%O}EYqfM~Rhg`*M@k&*O!7>PY!trWCiOHh|J zEgm*(4|7Q!x3at7otDdV>Qr69vOL@O^dSTF;6ld58^O#xI!Vfs@T+L~;r@D~;!R30 z(k9+V(7@>Ap3GgGW#0pesb5?xjP|5iJ&*+d;jnL;y{1T~N^H7NyF$k^;5cG%&F35D zo?EU~^dQa)*H@W8KW4uirsOZ!kv&*DjE|T$mKv7h+`T9`jW!?6VK^!%lxT>RRta{= zGbQbB-7hVX#%}`4DaS(s7-zM{hwiqKEcUk0kZcMy#~lj@G{>0>1D|gGP4M?Z1PwP} z<@*+?0vE#Vbd!Ra{Yl4`sA;<~J*HF*BJ(nxim~4upM}}g@xU4Gtm#kyhf7gPXFuNu z#;T83nonQMd2v~gY7{=WT_(iJV1%4LE(M(hyOs|)`5ziw`RD0WT>piNvI6H!U3{JE zI6;Y-t=bnYK|w)S!~8^YKlAhm3)=*?9F@)yh?rG6xsM60`l{7sllb+q=Q)A%9B;c0 z)nDDD;6Pu*ZJXL%*G4SkrzRJ(R%H{7Z=ALe)XlqY;_eq#(JXgfz&V|1&G6RXyRbL5 zJan6z?@0_$ejxDZSR;p~BUAr2`#{_3huPEi^`z;XG$!0LIGMc}OjB6wi;)vvo`DYE zGsZC0OdBT~3bgs%6yH$ zr>rDsdTB;xmiU|}G1XSCtJ_V>*fOCFCvv}UaC|hUdN7L6z%oISrt~6)3fGs@_ABBF z>EFDCj^_EI{$10qqP$P;4fi6y1K8cxrU-s6Wu1SvSP{Dq>rIi_NntGspL=ZJ7R2zh zJO3S6(>NZWt63inkkTZ=1-$L79U%MBtxNKBAylg5xFrl985{h7Mi*QGY>syymwKeY|~S z+tjTwT%S9JHDXHOiK1O>idh?6OdMoq(`++VceUAMy6ss=Mt-C$4o~HiMUgBi=QrrQ zm_}V{?}==hGxskZ(wx!Uo8zufLVdd1PLE1OWZJ)idub7WP*aYZyL;}rG^uNE57}+^ z&K-We5`X0YJZ+!?xzNiAvHm!F-G}bPnxJQTryu_n@q$=+dU*n-Um!mxNHJn1^g~8qu9_-0H(B1>*IMjdy@%^`CpnpTlcfE<+OF`&MsG zA9}O}KHnFEwCM1?Sy)&MyZyrfh_?X#H*osqFh-Zn&u3(`%D2Gi(E8E$*M>6WKtpd( z25~sL@2F!?Q7fw*m)TSA8BnNHck{uVqJf05@hGLW+UA9dG+~m`&}&Yk>j>0*)JXQ_P}i<|*aYC3qOhlm6jNK1E*s>Y=Y*-(Fys zoNKN!qLVQ{1*Y{X>XC)a-Op!1@BZvnkvt>cK#ud)lU%XW?kC^wAXaFfhiEY#L;EW! zOcq6gNapEbzQ@Yl9d8vA8Lo%IZo!5=Ee5#!y0$47O?|epiCizBva+()2Z0uA$8rWn zi~OsGh{RewVhReVj9(V#^^6QQixR|y>aUL@GTVGOOHVcZKLKWh51T#$f=(CN{nUB2 z6C*yP@pjY>46cAJ3>SY-?;q?t5-<~^WmPLA9NZB+*z?-Zv*GnRbnAW0GO_+QdAr1t z+&?hl=7N=w!$?+6j3VfU?ijiIx{2`qAkKE>d5`?{H18$kR_yLSrnR2e{@1Vb-RHzT z{+D3mz-?`@hb_$&?@KVy-+ABLa{!K#SA?u=>=)PRJ<;l1Usn6ywfk?E+dsvK-z!0~ zjEuXvM=?!0MqbaIUWs&3+)0Bqh^m^w`g}ucfBBS@lu{Mx4(#ovUB&>js`yQ;aH_Wx z{Y3r0esQ`rG<4ps_~}6`{5Poot#f}r4RF_fa$u^t60l2_8vRAOap_2* z(PziEOvl{C)D(J5ipPqyuq4}jPw(q!N>#qLMHKrW^BUAqKc5v)V&=PyF}sLWWo3TI z@IF+6Cb9hEdz?pb?`QW^+WA`{>0{pFV;m3IKvyxH$Vu}jQ^HwHN6_u?5~{w8Jq49U z9!uTJ>5F->P9|cK^apGxH4W7Qb1x4caDSR>M*2 z^JZY!-TJ!^^3gJ1F>DmEX6)*SSPNWufj6Wqme%8g81z=5&0NXeV>$&4XbqaxAGmtB zW~cYuXus^eJ}Kn}tN$Stc{UK2MgF48_^J92R&!_~ zPVqp+pV}_C#Nt4q+z2eVD!d;vW`#Q%6%e2OQ2|+|V$P*jZgilm`t1ow9}*Q^#Y?7w zVg5G@-~C_it>vj)$g;dv1NZ~R4s`9h&!POBL?RRYE)E1cyZU+=NbuVlQ4`{?*?zZT zGKyd3h+*|i_%Z)Af>d6%zKahMNfoSd2@Cfx9XT90X%);kUIMr>+GnMjAIAf-=4g;q zWffx!E63cn`?q0u%Br--hoCIy--^6GBOjUJ_XPWZM>mAW4ghoL*X*jORi1@z=FcvNniVg^wm1 zIX!U#YgYtgMl;1=JTdpSHa^s~@{N@sgX9{LUUOXZX39z``qu2FH3b!dG4Uj_h}nmA zA96+ekk5~tWxx3&!)gSSY$>Gae_m>1J6xE_j;ni6(!>R+EHSmZdA;pn{7ir7?sA zzo;bPjLpoJs`xD=E!M97z@RF5lcs8b7xaCw(Cl*(%%p7owr(%t&3pMdI*W~Srj%j+ z$TsGxr&+`=@&UjJi{3Yn6Bf*!cAW(O1e{lt}GF3jfVu&{%~$lTYpITlcu~EcUUwm`fiyb zAj0oMgFpG)dkA)a8Zn5ZI9fl@JI~tq9x*OKyth@`8KI)0!hiFy#x*D~D&deA>Ulpk ziR{>?uYoDHxA-BgO8}#V_?1@3|j^}&F;9E-`rsQ z!N<>d;WzGBGZ-bjubOE%(iJrEa7;@!<=tn$nP^_Zy@+m0(#c$nxV%{`nV#&!;VR{Vv5 zOqJLi+UU^8MMUL&-nM&x!eV0T>K<7hgBzQm=6pJTN_mJHc5TTXu#GQUTCGm2gc>k95wHQ2VO_9Tf7{d ztTf-y)7K&XR(I3LmcZ*bO?GJ%0f+d;tzy6JO#-kDP)_`x-c@hr_wz`I;1)NZH!bZq z<;wh+MQOUKSg;e<*!I!#&XvQHkpsQQ|N5q>pde1+EDM{~cH=*N{Gur$b52l6NC{j~ zGWfUjxabNcEk7N1okAi31YrXUX=S0Uo)M3ds}EX zW52vSu;U=#hRNcfA-zQ8d(@&n^xF98DXg)!69=OEA1qw*t+7ea#uZ0FVzW*J;gtqU8T1E8}uGa!g(Q}5zqKAYKc?gA4{#MgKwgbpn| zqK&4ZbUAwMGXDx_@OdRc8KiDLo?NM_a*|3rf0%e4-3Ux`sbAV+BAIV7BAR^&3m)9C zBg>42Kn}ThdE?}(Fp7^I^di)w1@;Pk$+RYAkh%tLJ`O%Zt^-aBx*XibaffxN5V9)Z z^1>!F)|0S-iw#5l$?_t1g2)oiyJ-eFdz@ZS9>WhVX??VK7 zr6s0cvcBdz>{<){(qVWo9xZiCVw6xk#A1P$epscKz&H!Y(@;Ml9fQx39=YxbdSZi4 z|4gw{vK21>tiQGx_r0zYPLWnZd-`17?@x-N8h%Y)sL;>=c8CSsPiG#W0$Jzf3^e3~ zG}qtsH7wDy4~)E}wRm(m8}dH0qV;1XWS^i1F>xX?ZBwZ=Z;OnOYB7?KlUw<0d&{J4 z7S7t8rw3i@{=;sCd!AwbcT;k}=xS|pzQL!^W)hxn*Wb-BZ6tIUM6V;3odcB_&BnFv z+3o!YmnBd{bSD940udF$biKZw@#gflZSgi`7aYVuy8Uf2xM)+Fb&9#K3>hCWgHbx- z%{QAa95_KPF)fWQ=k3I`Vvh1qE;U}dY~WX>CZ~!=9#A(f1nw~GO~GP*xogU zW*C2$`D;jJSH1ohBVL!*p$5AtixIbo8u5oL#cMI_h|S$IeDr!UBe3t9{sF&5A9hs- z27%sZ>bylYEs@|0g+Y-01BuitW@e2K$_+?`z#y|@8!&xW98feh z_jy}v!f1K)n^=XXm$^e&vt1nB^+gIY z?X(Mk{OXlZvDU~>HMM?XS>I1gF5yxSV@*wFRzqw4PmZY2I6dgT<`w<*mf{)Pr0t%! z`|{y7!=(K3vd4z$&;PgpJ$Dm-mk~`mge0oADA5M`WLpQND`R;UiBjbUb@2-~w4Bic zwD!z5IG>|6Og$1FRU_HNy>rnt3b-3kY8}EXX~4qRla)tab6+8LQ?IKht?^2D;Yf=? zg?Y_62!G{=2VD)rHmM!HztXV@ySkJdEe zl=PZ)ZQ0sr{9@e!cI~<@?mpGGib?*+djiVcefg(t-w=@Y;ZHjJKe_8)WE@X6DNwaYg9Lv=xoJ0293eY%ze>m#WW5n~ksTHN-c7hsWiNP34 z%5>~I5R105)c}8%X?y3#Ix&0uCSpnCZ&h|W4;68a}*vM5;IGQG6KJ?CG}eH=S-hGjF)|KZKz~{ymumHt_pb)WRn_9xKGD6 zKkb=v#sE`DD6#M}9F|}T*EqkSeiU1{F65A=)&pToyOzbpYLImNnhcL=-8Su9L^+s~Ml7`^?Mj8J+_;aA`6CNA;eH-esn1dmd6P1_y&EJBv z@>?*ASgkhyUbTiXj0_kW1nGstM@l8QJZ(4D%deY0eM+Q1Me`|qAm%t z=v%%p3XB&qhTXD-!+XNTOOq!F*B9nO|=lXvK?P|a!^KR$OSCqB zY|%3W8eMNmcS}jw|Q!st^Ba9hu%J|Ku4}z;^47mL`^mTP6*MB-psjiOB zzw5`e#A0ZAO!0<}92L&wb1iWkr`$R+9bpsFE+oR;a2~RJiIBpKA@X zIM1*p>CN&+sM|2d9gj&D1R)OJ!y8E*Y9fsoHOt~Yr^_W)$GD>)v)IBXl%zQ{OhrYM zG(Ohw+M^Oment!p3HytMmFjl0u!Pv1!m;>gFy=YP=|(v_Gi!A|*sL~Hcm>?Q-6RCLMo$-1MUnn(f+t{Z>Q44Y{?Q+ZAd&C1$3Gbd*| zoX~j9ucl|b3f59Sf5_0KFQ`U(PsG50)I86HM!P-$bH-UuZnN{^dRE^M2rZP2A`~R>zye$6Vjs7}26rLg7QYFwmMWG?y@~ zmxIn54ZrgHMfdr71m0u>cN1mSrIp$8u{oVR0~+qXlpyOy5Eu;+7;)f<2raYIqbHT8 zLK8$*Z{hnGk6u~BdfkjjhXosk`_!>zsG16hk1wa%vKr9kJaS0M-usxrd*Afu2zxQ6 zLp!ggmF~L8TO3!#rv9sBFpJHb*)3ijKk^<8y>}g_X5cl={ny2gefgAlN1zBTT{+?8 z<%`m01ZXp@X{IQ-QZ*F4W|J;qN6lD}m_}|c&5+4MZIi5DlD=UI(n|POksauLR_}r= zut*u=u8$(a6c(E}#I$!JR-gG^H&&nJUgXvQXmq>g^`XY+?i~EG zj%i|kv^b+zM2MY6)tHEkmdg{HX2e`ws@wRET7@Rk1w4}7`V|F7O(|AZ?u|>$a!nu1 ztz-@N>#xO3Bg}noy>OhBGlcNgX4>eRSbh^(EsRS>oDsO2iV|NJ#tT~b_v8K z64^4OrE=RgsV(-QgXjuNP}<9S<>VxA!b(!W1RBA=K$kPu7|Iy=__8cv^eWQgLBkjN zrnP45kGBeA#$rs_1U_KSk^r}Dds%u}t5Yxf5C>I~<##3IT~YI(52B*KfD~G_z9e~h1@jWj1#NNu1Ea6HRb8rARTa z8Js0q_iOCvD2es8a%$h*8;B^$04Rn0uS2VA0PwsX!_gy>1QwJp@gLs@2IIIYXX6P) z*)wBfOQf*4GPU}C212$8y39$c#A(InSJGn5-iuM7;L=SL?16$KxOiiA_BiD=;*I#R zLDPJ*;Q47MgV`wAVl%D3GzY*w2sL7D5O4_xP5pGE)%^-ht%R$NceacKn-z0Kx@Pt~ zd%cnikUMo>^LdHi;hU#XzwS9bCkCAfix&zBMlnL(g)7Cz^{!<^P8CKlC*FaGrC1`9 zK31Yl{iRj^{v}@0tS69;L zA*{C!0ZhBYjDAqFl2n;1YYmojp&qnjUk%f(01AA2Y6Yav%kf zJFqP)AiT%pZ812ZLH>Dl#lswb5AAti!3rraFV|{ZB8Jv;_8yF)&=eKN5Jm0tw2k-)AK ztJA$t(tf0hWYuR8)e>)-y5r+t)hc|e1VJ#w_TZs2`y_Z_j# zf=gD7U<&51(HJyz=|472vxuNJwBM%xc)UPgA1E#i#P8qbG+CC)DjIfk#%|+9hS3rb zDC#Mcl)M=pI8-?-@7834NxOV;EVg+tN4VxnU8S;{$8OHi0->a=6p424u4htTE2ct1 zw|(`D-+ku^wdi7&PM(aHNNiz;fuz;)_cX_u8%YT^G zxbq3RKyzrLKU9vkiLSObH>6?mySV*R#2Zg51i}CiZdZH_ZJ5$i9@rWCw`Eala)Jz(RZjWW|(zVm;%3-C5n} z`%46cD*43RSzRdPyN#%$KoT3j2D$H!Csl8p-R=AbrBp8C^eKtU&KCtJ0d#G3qyh-(N-2HVBA3L<$ksAQ{9X(T!-0|{=(BO)Ah2lR+B$NUFD4uuUSmbL4>OI1n?Po6G3spnQW@sI%aheXKmobDe zfN2w3MF-ki+)rd2E;X8(Q2#rgZ^bSUMtWWqVZpuaH^L;h>LHC7QH5eJ3=xV)u zo6r9Wv_!w~+j>N;j*ulrs*Z)*mI%)%jFnbM*J&8+{SJ zi8sFDH*kW&u5&jV`Oa;G2^G(cso|!-j*eJ4mODqP3|elUyd;q~0Qe#tyeliNAj81u9zC%(}zA+~urAufJ%{0oR?7`ggG z3rt~p^-tr4i9W!Gq^5G$2>jlM;aQU2c!=V%ngE77VOW0-?f)El_;!&?m$OChie7ky znF~2%VGt?(iBQ1i@`$d$96XZjHRhBR3X8~7ZShNL7CCw_NId_P%H}GyQ zJ_5z!k;y8`{7}W#mD8i0&48#Qqk-gkqHHoLKkc6inZ{DshR9u@+(r%XUnPW|A`0*MW#n#?}qM;n1}EP}@UX82GRYB0ljtFmT)cq)-C6&Vtgjj{`;SvTKAHv8+{ z8jO}o!Ok4DbFp9Wn;W$SeApA>-nn4R{94gfb2|`TWNvN_gmfG|I!)-;{OlII%)1x# z+bMgi6pU(a4ur8-%XQ~=)$2NKZ~o;s;OeREed>do5Pf77zx#;^F!T9XhFKqW{=KI< z2ZpKyYM7wk#kZ!C$UtseYidh$o-pvo4G%045g*Qn?94FQt&B(_JjY$lE-9o|)( z);{y`{#d$Eiy8m%MrSasYT`52!YZ80B#lG$TB`lua1@=oSR+P;f{%kJss&4gY;sUX zYQxgi2$Z)d)I+>cNLCt_ZN|3c;U7)0?WFj%+@-=P>{C~z1_OzmajIJIo%&TN9J8z$ z#~0&be{F2dXxTwMaMi1{21(j`ZAMHx54iNNAMlfhJ~G6Xd(jY}V*GXmRsri#L0*$! zul88zarVn2R+MJVsC1)pzq{5_%}SaC2e?i(UJjrgG15j$_BoQwyL_rv;=iIWcOnZL z3(}w+*^Q6bhMb8Y%_p})2I`WZXPGSvOO^>)!c!FtTD77ut(X~M;Ti|$nOeWh-0R76 z!i@I?sBxVe6vwh>J7Xl!TcXRK-`K@eV#gCkM4mi}`Q7 z6c%lQN4qFWZUi4OLru4`@CVm%_{Ta60Y-p#CfndcT{WJSBO6G`nH0D7%Vrv7UT1=lJC#Kd(<6$LHLp$GPlb2GpP>RHRHp z{voVz?D#|H<3;Ti|4S7IsFi78Zd;pv_f1m`ome_`+iMdz%d8v$@mt&jM7#HX@3IrX z4P~*J@fXPh@0n(FooH+C5;8VqG}6=U zz$m$_Df*N)YIgd%HXCkwR9o z5|Gg|lUpty>(&w@#M^(+@GR$rCje$g2EDE#8-evtAFIZ7I@W{JAVajaS0I+g_~htO z;IefhK0L5*t}g%gaN2R+g)Js&9eeS&P#}j`@560FN!H&HzLiU$M`PMmX&7crX$^I^dN>|mv3UZcNWB9pE~Zwceb`f%9nax=`>SP z47)t5UWIKHx?e*nYFlf2A5VK$U!VVmqdsjh^n@R_1D1dv#Kq<6KII#-UlvikB$_-Q z=mP8#LlQn~w-9dYAkuVsFH?uuw)>QFy|KSB&TfkcP_)(C`$Mmlbzroy`nqy^w*lq2 zKO(BonP@ok(23fNTwgamxPAZ#Uv=Di@4IT8d$Jj#E2RLRf=akPMoHU2C61-7@f=|Q z%r-)*LJwRs*Vi$V+5&0);AK^sc5G5VnDTQg(YjcYTJFnk2w=)!PN72>-Vg ze9Kay0JlT|pQ0iA_mN)SDD=Bu0Q=QuD_JX3rAcv#Vjc&YSyFj*SKivfK&IT46l7aDm)OW zi*FL$-0DC~={UHyTY1TrF0IXU!)sBTui1Ma=>p+HabI>HBXD`ws!_7w#g;5A{JiGP zV}p;|bO^9(m=)t;#(OjNEQ)V2y=*d!Yn1T5Ce*!pE__bW3OhJ@de=U%OmAwQ_EmGh z!@(Ca(3Fx{s`_2!k7K^?@<7T5v?=B$&R=05{37jGEh-yS8ahd9vAl&g+iAE79&F>t z;x5C{z+eK&{F!L$nOitAfj~FcaiV*dEFk9XwC9#w(N<)B8=yr2JhJ?>zIxgrA|TyI zDO;QNeQVI`%hw(gJ-t0Y&<}x~P=glaeojJG1##X>vUBMMil5WX#}@}7!b=QST46Y`!w%e`zjlCdRI$B`!V!J z1c^fP@E5vjvEY~nz9cs_%{?;*B(Y1KOdkuh)V5j|Tu=_nkq%3%4{Sqq0gRf57+qvu zX+ASD8DhyLBBESk2v7mBWD-_lhFz2^@tEVew$dQG#3{b;b{g8S-m&LL!*98=!=@WW z>0fh*s*>kU8jpE!OU68Z;E{+@AO($251@ZGOF~e$iBm_xmK&=Y|GdDiUJ}MdEUwH< zRdV{``yL}Bqy;k+)GlXi?DtPL*Fi<(p~atTQKB-+SDGPNm66@Md^Ke z$CqU?k*~*8)kw_sPGMy3TX;|6Nrg0`A)$nt+jYrLS_xTMbB&JR)_E$s*?qPNPF?18 zy%6JK#7c4WW%={`m7=;%`A;U42YgX}w(=>9_jidGl>GkX8Kro{iAl6K!nT7kLn!V0 zZqvI!?1VjoC!$1fyrzWOaO2_|NNOq+A0?bR$CIQAvxk>Oa2QY0zy=@tu`94Ftrl$d zJ@^#AHoI7xPR{^{#VL5=V>VR7m}gd<-MF4}A`5@socd)EWM48ppLF8Jl+-tbjLInw zHC7`}=U!l7HqMKbPgvcW{QWi`cr&qtG5?IiYbY*O(I4yJDxo;QsN&6cb{j|t6zV>G z4s;|4)+mqU`g(ug_QD;8m8v-SWx{besC!dj_~n}_iBJ}iFWksr`tv&o;m{BfIk~KD zjxq*uC>ZvfB}XOwI`qk2g>-o2G!}U1XbBD`xtPdkdIOE0PmP+n!JXP*AO2IAzEDJ-MXH9hODr8*uI~X;aVo&+AiV2NFo!))Bs{ZDc#@XV zf4@6wm~bYw2BsesmQD=DF#^9>KJ%n$;2YTW>4=`sE5DT-@r`Qu$Z(xy)(f3R76Jre zSz3DRjs75L!(BxK!Zlst4RB?ZK@y{npO*Tfc-ravJYIH@?s+D*YBN8|+Y= zd~^B1+26BS->a*}g0U5#O#ngXuhf-;4#@#{+={NU-Xc!-c1id8yFk02ti~AF@G|Jk#J_Sg?Te(u z7p(BVztmV6>1lC+WRR;K*tQT;R9Vrq&`{s>$?9FrK-pj_@#eM#o3$Ll2Lf=|p^9J} zEkMDwl`X@E8k42j%LeVMuY8%v?5!vBiN2FXfMcp+p!VU#EiU~||9BjNX}ufILwUf{ zp!;Rq!>E+QsP8u5B;aAcdyY#F{qj#7iTkw0pUoWwJk}2(lt2jTswJQZobP!wIuZBo z{r>2mcLVjo>dvM8C%~!DZN1&!f7dI7QGb?mv?@3pp}EbgB@_YR#Pk4U;0f_Z>sK`S9|HU>!A`?En;Bh*bzm7h8OAD~ z^>D(JW@je;ScL{D)$$BLGyz^V|d@d`JbyQVLuWYD!h zAceGVmNX6w*zAvNy@_2|Ds$8pSbGEJZZi=B`#9|AL|>*5$s(|5XWtZHT|ulkLAbX< zjX#Q_K4+jTFkijX**(+U!JVp~mwX#2t{?b)bAa^BYJw=|s z_=f$m)TI^14EP{^9X|7`;3`R;HNVVmzLI7s8$Uba1lVK(pA1?Q z7*vLVcoLz~o9*96GM`~;pZaYrZEd5(AMYo8cJ{vm_*UQm008`BojzmUj_kjm*gZ<4 zJbO>p@n3cx^TK|)0zfgHe3)YI&EAx-{k{77_!@k>@`xYwG#nH=_01{p(BSDO#nYSD zt-Pgz`D0Uk0uA~U14X8K5p8JmOuP_!X#J3^pvvpQ; zC@O?Yoz(650UZJ%*moDg6LFd;_O4%caNztYmu3_yAXcxk>oKQ_X^ z#qwbjhJY6kg9<(&Jlv9ReDuEfZtaNGHO2V2tIvZ*A+A-`R_I|0!Swl=VOFxe`n7{> zG`qHv<{wc*Tp;x#ERN2h)=05B++Kk-)6wr>e!eCUHaN_!0B-KBPi#)1{YE&d7tTF> zKHXz<%cd2`f9`RG>m)ZOJJIW~vw4N?tkK4df3LL{nkaoNI~`bw@A5q}I&kE0%2XZz z-EFGr!GGb?zH~$(b(F-Mc9z2rm(RgB7rOTQ*;3lhPy7h;!d~)QW(PQ|1M148PB~(k zk@J}h7IyCwMG_qsA6}@QgE?uz%R}6ow{9DE^Dq&CCV40A7<%4Qc+}Na~}~2a|5Hkv#0tzNM-`g60#dYG%jQv zn%|9bEN00~>91NvSGQJNBkm`}t&WRYYytyW%6ntsw3zdAX>%M2mFOE17Ht#&TF(5G2+#8S$LSkXA7t*sDP-tk44r9CbW(R)WaQDll9u*Yj{F zB|va36et9h7bi$foKl6;#!3PYlfW|5C#ciV8ZCLL2OaapALlm~uKAGsSaHQrT_MkP zBen5phV?g)Tq&20Iez{y-v9g2>V{g60QD_B1H=A}um8meLqga1R1!8|x$yWGy1?Ow z&zeUIR7Kk!%cp}hmVcr-N@NW1{caQYeI+j9n_0zhtHXRF9qWjr&b)T-^C;n-36vos zKwu3F1D-B}UM7+xsU2c&1Fy+n_b8sJ2-#z2jy><Kk)jHwE9-T*=m{Q^CcfwF!U( zYGFevIYJtW4$zJ9oCJXH{tF1|Bs*EUkF2XhjZH}S04US|-YilTFT`@a&9TQ)jF8QZ zFIh*^(dL+}j8xd6K6B{^PUr*w#CADT>fB$FCoEiXg?(>42ZfQQGJMjnA_@{7jQi}l z7*S!NY^2n-=4h!#s1p!9eSND3;>QBvP?M|?P~UMenPL0eYz_1dkuZbzeHWu>h^HBh zlt(<8Nlv1ih`6Dg-(Tn%E=_n`q&+clo8~!X3#jveT+x`$AzJddWj>b{g(Z9Q`ex@Q zx3q04umkAlHyvZ*(5VDkZZH#H+CBhMIUwKfC+cB*+zcofyXBa{)Ie!I`@N?Oszh8@?7rtX|Q~_7Ho() zHO1mwGJNCC()f9Z|9-@6(=cwQZ0srI=Jk@|Zf(_H+TO8??6_^!Cwl(n2J`-brDr76 zKK*WckhzC3^<5V9A5K`4rt>ws(xyChr(-oBCuH~hQv6j=J(cJKU|lF)3i!GXk@QI0 z$DKZQx?j@IPd9D>QjLF^+Q7ijcJOz)qwD=B{!7r!ipa0(!|uz+Y`2z{o|Q?K|3U^N z6aSM@NM%$krL}9)UfEU{`rt`tu4`v#sq4eMtstnNZK$abr};vYrYHgwR0U>sKknwV zK@vLqB2RT%nP@Bp*0{8fUhsR*;M--t3Bmi#rP~MINJQd~HG7Y2d>!YIj$FS}!PU#> zfSy&~eL9e7jJaHb%i5Ym_xW{AQPcWa5)G-KD}r8~Yer`7P7_5B;zv?Bk%zzLq{5!D zPJx$Mw2JFOb06Hjy~C_?eZI~c2c(hkSAP%?_$4QP!(|LSQc1+zS|SEeTXdem{R=+S zt?5=0qhb4C@s}5?+%?C-?=%WCL>L`(8+}j~dW{8vhlfYIx^)BFMbEWYaLvh@m{0)T zZkV0feuKuetiq9nkrX{ILQ+yv{#R|gt-i;^DJdzKol9NrRYw*}2~{!`vxSD`NAIRD zn*XkEPDfyO@6wdeq8S)bX=V=qeN*%xHJtbBjM`;djsJT<`ZV^>Or`rF!DM~yr`&zj z>I1m@arsoEO6UGL=(^@^Q~afc$b9ecba(&z>I5J#ySuU$lPWjdfpT>JA5B*sP51x* z8Ph$+N5|D2(`MSeCZ{H+U43<%j&U{9GcLn)w`se>boX?3&+onOIlsf7IPQJF?&}$k z8eC&ix*>mBm)>q&d8F;rihjByd`kFd2Eqs?`CAtBSeXH+d>?MlAI1Um99WXe?fT;! zGtiU^H*h_$O8cNGiI=r;NbJnMP=Ng!rV`QD|Ga&&#srAALeIBZiLs1k0|eynxGL$vfG+C_?5I?|ABLk|P1RIVu; zQu^`Tk}I?&Oq+^k;r${RUEh=mqXYqs=|t~coM)Sg4t0`{9TeMb+Z(~42K$^A7P-U5 zJSUDbEm2{Iro5PfN2>UtmlD~cq!J1OWA!AMSIZY@n))!+V-bzZ6m=AJ!~D84zIUsz zl4ytYroH#V4suLw5O*p*WRi`bg{iJ%iiIWA6?p2+*=ofPnRHKmpjTUfPusG}{v<;_ zEAd~Hecq_SutS%Bwv+6?enPKa#~S_jbo6$l^PZsm_ByQwD00t70ym%0-5t`o0nQe| zf~PV?=>+`uTWsB@S~`wY^{}sDnBBiS0wi5eh*MY5zE7V&V6KpR64#ua;2ENZHk;~gIS%wdl$Usq6!o{xeE_>}Kr7yAbNo}n>`P~m z3Yz!yzGegY{J=l#Aza&O> zbo*fLub!hq^%5ELnYAY^f5XOMyxM)>U5!0WWB+v>zyD1S-BzkzV6RB$DZb?BzscYQ ztD5WPnN^CG|E`KD;Dj6uSjYul*#yD=_4nIzHqyV4yiZZ-9k=-1p1r}3_x}W)4*&Ti zofJPEt>mYy1FO-n{lR-2!`O|_Ah4+GAGYHTzwmEMELg5y{tb7zfQ1v#$lYB?D6_Z9 zZyM0<{|C)jYtW!_;(IcA>Wn@eyZ$D69Ut%NxF!CgfT^8Po!lZ@3t$Cwf2RE^|IWZPlk3^v?&~?Iareg zql{X>P2TiLrQ>oX=(6Jeaj)|UTfLEl;PHrvwg39Of0d0QG-ke`Fd&jXhLM0ytozq5 zJS8}-F~WDu;2lpoU~votR20-(15j{>9a;IS@oK_u#eyF|2b__cYf|qpdj4(3zHWgy zo?0Be-{pKu)wTJf|7-Omkanp~X)4Y(E2~&lkTf~3iT>1F+{S0%TyG2jZ9}auifyb6 z=P>Y$#U4i_s9(E=0dPc8ulM`eAv7kYKtYG+?tA?8RAYuOJElQ<5mI?xqQKFG;}O1N zd)e%JxfkH0R}n6o|0WyMdwS?-D@?i1%;jajGxE3&G&F5~DnmEzx!d2l{B1rw-OL8~ zRM}bRf6gm5C|?ZCdpsJrnYF$4U9tapcNhVYVy78UfDW&A(F5AAX$S{++8P%Rh+AYt zta=3WBo>|!;k(2hX3KM>f4kwRpyU;`?CTc1wuKv!KTe>8~$6pgAaC38G zvnuOy?TAlcET?X5e2iZI92|@q(q-f7D$Y!I+(A768w7)s*oJk^~%R#X;(k zCnO;{e-OI~Vl<;lD&ucsJcw}Pyq?JtGQp9xIa(c$9a zLJd<&#%C0KQPmRUe4Djl(5ZB+U>rlX;%J;h$s)~Xs?Rud!i#Wp7~c9yK38P#_MF!| z63gX$U9u<`tcSs{iugt8%$E|s(~)kb#Za=^Vb(} zT&c&N83)&oRi9;!GZBY+eFKxNKhZCYTKs*cd?iNLPI}gwj)f#x7u~uPS^nVSk`OO>&jl#^vzJgh$MFm!O==!Zh8j=Dh>NT%1O+79 zij`Fcv91qgDH@_SKK}?t1va}kHctpc>gDLQ>(RgMwH8a)rt;*;gZhR!;MdomHfAzf1Oj*0#XP1RA0MR<-OP- z!=MXD>YgpQNo8m=r&Hr`)^VeGwM8?iG?!A0W$W7!+=x=o8Nu!OKtqaQm4_?Oqb(7?%R2UZf=I5#CccBp=uF!m^RmwIrOj)Y5&j7p1jE9KZ5JvjeexLFP^@!o$5AkOd-S|FS>5$^95F=)0slOzcW~HA z9;bvMg*yS4wWi#G-@kviOjp(`V*R^8n_(Lm|BR3^Uc7iA-^gaoW8BgU6yQjJLPGGB z&HCvtn*5<~GyMlo&$LHOf-e(aD)0y+4zR3ealXILss8lauX7jgg0)}qy7$eM+T(n6 zHGjXNQnUN*SrN!j0ucAN2vNqh2Hl{-c*8bL*l;^v04W1E(~X^~*&zR|i9Bmd%i4o# z0SAy%j(<}Rtz|pz)XWlK~1^dLwA?($P@CvUa47oYddI-{G0Cm zn=W7>M0fW)l7fO_wRt;tW3joGeid*W*xJauK?jVCQaH&14?md}c2>s!`wNfv*XO4| z^1;qn!NZ;Oqep*#|1=&`JIz-%7R{KAfxK1V_iYiU6GW54Z&(fot60QE?)=WNcDWI$ z$}FDbhV*|N2>7@=q^1Cp@^w@AvNCzO6~o3zk;s!v!Ct| z5>CT^W_a?yc5d$+nla=CH%gbGEGuNr?P0HeyleB`oHlyDtPd#oui&}v?Tet4Biz*H^4GQ@IIcwh+LdOWr3Q@V|QGkkmzl0-XCDD zSP3x30k@9<{ULvw^XDp>@s*X)sWQD4LAO~4p?}0Z@2feRlJcG~DK!!dOicEdp8%zv zfPi?+SSIk!yKPb9V6M@}9`U@%M4g2T3Rxjcf;!RpVnYf!69>3y~78#hGWdql|O2a37am0!O?It_)d#W z!6_knrUBsqc=~tq_<^8e|7@?UQb1Zn$uvkhoyT|`sNaAM=@X7#h0z-C-}O0d(kWku9j9mpKla+?amf4PXKMCJ8^FO1}4_P{wZef9Rp4UbyU{ll5aJl%ng!Omv zu|#VgzU(%xk+)Ody*o5pzHcqoo)7fs6Lgb%X462!^5~3qZIMo$Y+b9i(na(M_tTPq z!|t|AXo!xEFX}j9LSRLfP`OS>jGR1ah%Qzt$BP+y@8jDh&j3jUk+DTsK%17dIy~h> zy?xN@DcxD>q~qyEy|X)#<5BV|m{)*LU@XUd2S06|r!JFw*$2?On@BP3`0&hBm{_^H zr{wwk^@-&NQgmI97T-&*7;Z8Y)o%fwMzL{mn&rC3EhB6(vq7sUNaX(*!nWoA?Hq64 zZs*y2a7j>HBFW3y4}h5^P86%Vt@mQ1tc#ifmIM$)_e{r?4q)m+BzrP98kqKYPk6GG zB|W5!#OyuloUxw8uX@b-t^pNUQ`=nKu&}u480}L@{~mwIV*cU7$Ho;On-^&gM6v=M zP}EF6OmNaka^6E2(3-t|$R`A9tH(%oz_GU+z?Qt+kF_fO<=7`5FU|BltZf-LQMWur z5V0BXWyTuRv&0bAU)`6T`HX;Sc=fRJcc+??3oy~@8ayaBr^SPU(+ zY5f!_F@#7In`MP7*gMx$3WuH8r>mW=7t1 zcKkidJbv0OYdaZC&+xw5j=G~;JNuA$oB#L?B%{Cp3ka5nQ01EYLckJ*1=A&%)>Kn= zL?USie&CR4oa8%;{x~b`S@}N4SS=~={M-j$GGR@U`suDefmrzELc@y5{`qex`mX#- z(NpC`VN^>SV;n?KJO5a4l291yrEc5kIj>W3ga2_cO7I0*Obgh3jk_Cx8GmQu>y<%e zdN16=D*eOTlz8{Ku*T2N*9qZHd_evM!fc~9SnB*}gqK&cN^@9&x$>FT36yQMzI z#r1!rTG?4ozU_(tkz)$y_V0CP z9*;n)k|di`J<4E$nP8O`agv$H2X1CFgqE4VLoBeEEjp4hZr1%cw)7jgZZGfOmUO(h z3W0b^@JUOLHg=xV5YUMC+DM=O_wPj%Ib+XE%zwubXco6x&{X_$@EQbuTR^7uYrDbk zo#%6b@T77K*!ml0m%gn2Z zo6OSs`{lY=6s`$@o&9iDGN)x~TZv$N&4h**B3yR74L{p#-D_dsl# z_U6S7gLbQekzwztt8no9GTM-ajs0(91`IkOaJeL1nq8mIAT=-&#LO+X-cJIaeKX(~ ztHuXGl-4JG&iZ~TR4B|8?3*RW^JCbu$zfNUe3#be%z7CtT z)oDTXSu$TcETd}J$@?p9bMsJ{XVG>>4bPJ^BT{5a@ zo5BTvuD4S>%J7@J3gESuQ%5XopkO|!sNe|dhvZ*!)3BJOrgcOsZ&`nq@;V;+MBeEU z9xNwqd2{kka$fqU#u)1!UA~mGBhn917goY&?A#3xf!N0BRx`6KiOb?>x5lYqbCr{5 zPqIL#G|bRw>Rat33WnR$QKS!M;TOC2^n!2qUlJ9LW!u7dKc{Nhdph4!P4r5*Ch z+N5927kKI*<5fAAc~AEYhFTE1-CI)kPsn0nwIQ>V{D3Wwe(Ar@;CZ$8nII^|=oLMc zhLt|xuQmCi!G$WS^f&`P0dUbx1RB)zp#Y4;<|Kch>zTHN{yI438_Zj8z zRzzx^^CZfJ?qVrL8<}7I5+}m@d{|`n_;@>%?tva~xS!87NvC0CWpZmEXg}0q4=_dU zq^#MY3sBXTcb7Z*u;|3v*dfcqr!y66!DVD;;k^FA76b58pocgcSK+O$Yx{LW8Mdjo z6j>(>B#-i>TbP?mSGJuo8O^j8*PUR>C>mHdF-=eLLjpL$iLeHe(xwLl;*)vTQ}0j8 z?oS{AOI0Kc=p1l9Nd9^P=sVLwuIg=SjLwg%-CAW|+KyMN0^ z#b;|wc@uvqre8&CyX%DOW9yM0kur+V4rqHR12$T0q`bKZv+=Nw(fl z7g~~JsP)C!Yv-zn!`92gA77E(PDO>Z>@f@+0%r=__&7$fIj?n6C%M?GsRxC=r8KJT zXJ7v8<{Xc>@W(0bI|wkLvNt=rtUb7YAAN#mNm7u5B_Q31CqX0-&~VV_XBSc4)3c`Y zc(U&KHx-@&07J=aeHpbjdUL^x1hP?nXOTvnM1`S%ahB6!Tl3N8lA|$IIN5#jRKVjU z(N`}VVPE~~s;aIzK^sxuKUmJW;vNg57Y(8I?Nu!jcL2>+Bo!fs5ZvHo0C2DMV-2QT5O9_A?$%^MNeX8v5n zw0npQ79u&0oU??@G)lvr1Ne+*l5*h|(ZpyhU=7&YI?2%*He%{0diB5SWB2oUp`)s+ zG?I{sp;}UwIs<&ek@BzZMCL7KvdYo!i|(CgO}8W_)pp=nSLr}2qDt)_!wUf#;CCatorZ2RZ8d~79 z9jeI3Ym}Sj5O8>ow>mh?8~)SfxQPa)4{W0!P6tY+>;M6JC0L)*;xh%6mAS)3MVQsG zFR**_&5hh|vFA8H3R7EAz!_U=818!fCJby-55df9aakg}`}>CJEo@9&jRZOS*D_>- zm%ecYO2Q3vk9=R;$}2fH7<-D|*aMz}fUlnC)c&aCc`S`-5v#ReE*UI|h?O6c@ZS<8 z5eR>f95qx(auOCmSVfSA`ew z{T@S&koHY-Iia7)inz6YTPLbA{yo3Iw$E>T_K{q+5ITnHq|wVxdWu8VCQH_+ujq?f zs>2F>MfBCF@m-(oKydEa`yYzSTu8dw1%`!p`V3AEd?o5Vp;gbaiU*3yH3!o5Ayn_O$13aGwdf+fJFbw zSnoS#(?_b!4-P6x@W{4YWy)9#`Wp&5NDJ>9AQQ~UV&~F^GV#3n%X{-vl7L~YpnfZ7 zqIjlFWYNCFqjG)6bHAPJ@$qq=Lm~1Id&=jx$8zR!8#$kt*w7f0(sD9-CpmaA=VP4Y zk%2vBoH)WY!?(P_47qfuzyCV@vblj^9G0N3G3?-=u!>! zdN@M~w4&EB&^?VI^IuVdhC)bU;fXMZskGf|1xT3kOy9Q@B7XhOLD9l?_vE2DjDf2- zmz~~$+rgk)9^OZ>6NQw_otiz-U!sf;}@-{%F+Bdsq#^SY52|#+vRd>xLM1KezZ<*CZ1@$P8__# z7)(_iMc}squwegu<$|%DyIMwslr%@Rr4>mfXuv)v$uFzQ*dRX{>*LkBYM{SIG@5!q zjQZa!r2qa(+f7&5O_y`FJe_yQ+#J>bGJlb1;9RqWa^5!hch2zKo%|`@f4&T1zkc=z zI*0>^Ob+G@Ay&wjtS<52E2F?l1TYTcs+5sjBpe%487Xhf6A|U>ifb*5a86U&%;9TS zWAu<}${E=1c{V{q{yqD+WETpjlMXZ#kUXzhe6)>Z$lWJK2ljlIpDbu~-75~Gt2Kdb zVx`@=VZh2f64+B4@c==fhc^`)CmF$x|IY=0-U1~|i{qt;>LtYhzkxmQCr1DkNnDC6 z(x1yOF)_`LmZn?lLNY<2QQmj&4&TpBpoOzAlR^b)J+48sHhbnWFuL|9#yh-}nF}an zF=W8UvAJu&i@90=G|m+LyxXxDv8wCHZam5{;2xVGu<4`q>OD0v_b}}59pehGHwcr^ z^=6{;$N9O)&C%0Cfy8k>ssF`wZvM@~sNjlM6x4Y2=elb59Q!=7ws)9Pe3zZ@n3|kD zF&CfIHH6VAKUS||JstD3EVMyeSM*~8^q)XSR(_!#qJkjW+N7oUj=7Ci z$<$*!hCQK)ZB`J$`5fMWZMQpzn#iFXcjTLqsrF3jJLQhU zYD((ulF=t&rH*@oWYbpn73Axy+IaqxTV9tXs&(tyxQlbqz$m-MmOWeLgV%d%-ei(o zj{HoW0+xeSFSD0~POpdn%TU+bXJ!-vuV2FIVQFz(mK0 z$N~DlF0olJkpw;t(`^GGEC9RXmd#;BW?^nI@bCGE7_41)WC7Q%txAuTMi;N{$vwsp zek}3DVGnQ0U^9V_`nob0^h)z9aT6Pv{#U`l4fN;PM#xf9<1!~91Ex?(rv#-tF`#JD zG-gyP8D-mR(9RCzk3LY2az(UVb$0qJEG=I5(yKrG1mj4bpZ~(A-H7OnZ{*>1@#v5d zl~AY?QW-DJ->}7hWyDI>o*aAR9<5tOP(PrqJg0M8xZ+#o=C<#PK&y!)-MbMgLR_)n z&qy8Qhgbz?-~{06hyr#hgUBF6+BQ9F%87L^&EldTR$ zG^GKbhsM9`$)@+o_a+y;#nMrtH|Y4qZ@$Wg{FRYl`|+U;pK=`hOkAc+NJi@N>ELnc z(J%drp6VEtR)X2Kg-CrZUMo2ZC*cb5;O6GP@t!*6jfE1s%C>u+yr;!&-Ndx(((d6ZH?!FMhBo;U z{ja))%SXd=x^0o!zjA}A;Pw*}Z)3|l2vtoxgSG6Y0{Rk@64wIQ5WfwW5TW}{?%~@w zN%CVeGfLI^0PH2wN;|v|99y>-T7|t#!cMa#efWs%x5<7e2eIGCIT+#?$+7P zx2RM9!n^?xKZ;YuhaNvypSGVwikvTdK6B!7W=xbg|(B!YLr zKtDc&ul6eOMXI?@QEj_fM&$5WL-l2)1LWk=ZJRR}H8J&p20{JIS>#9-Bq12m|-+1AKp&firuDnfy!GlxS}_e2By zG6_uSqc4_~5~h1%qEGoN)KqPBv8Xu>Ibjx@xAeV%KMLDPR1&y}U6j5AajdhrFOJy{Foz-CXkf#Fbl=85PX;F880`JLJbP>?}l% zQ6__gX{4gLp&9Z!AjMK4e>U)UL}=aaE~W3_MVw66@vPvoMACTR;gI2}5(c}f2nf{mP5p{{G|3a_7O&m&)Lzms;WAeK)S9ydW>W$G&edkFErEf^}S=VRC=CK${mh2{+_*9op(!TB-uWS+u7z|NypW5G8=A#ts>3r zDMeWRN)f@lCXULW*-u|5Ynw`ux{(7eevHBUb1eE1GBhgHc`mw7@73oh{vSL z^m71e^^uo4w5ViD5+AS-#E#36|7!wdDTQJZxB%fQ$4$l%Xq^fB?&98`CA{l+-*Uxf zBQq$>tX0HH$*gj5LYOkgZ^PjFQ;w^Vs(8n*&9gAGro)ZG19b#S6JF3hOpkO+E}+NJl2~ zu5CfQ!x@38+N!Kcg%6qz69*lSlwp`y==sA5X`UaFYA z<$i11pD9m8L?1xcr~w2y_d#S(`U_|D(8wAN>S+)&hOPDDzxPq+x2&avoDEIVQp1lq z4#Mvt5jnxu1z>=6#m>at_?(9Dw7gAvB@VRD%u9H%60a2#de5rir=7zb{>J&_c8;LN zb?YuCd1X{p?W_dwvjI{E@CfleO=k=W>W`9AO9xoG&Qj-y{2S@P=If$AfA$JW68W+= zc;fK;u)60~HXFhD@EV!<+sNl=+~R+fa^*O!Hv1LRHLc7b0w+xtGn*seSi8n3e@VP4i(9TT@p;f`&=N+KZ4qi%jyBwa?$I-d`X9!<{VvYb@0o=ul^EO)PA%CW=S(j*wd-&K> zhgl5kYp@(fn1B)+nq9PIHF52%T{TfZSED&);#V@x%tS_L39 zENq{6=4BKWu6%vp#j#bG5onq+howBUVNK>5PX%7oGN|3_ple)96&G8zXgsK<7f~Lf z#>yf!$^_pyT+YUmz`7q8uzf{!)1h8sq{tk@hX+n-pHl0mrT@I`xjC`$YOvE#x{IO* z=(smFHtI6*QBtOD5#>a(SQr=>0O$=c?LOj?j{wThyws>;0U)=hG~f{gmQ7kZ7hGiW zq%y-U1FKZM&|HWH?tGOU&G(Sq)h1e}jyDyPN)^sgvQK;_z}&;OMvfFF{>Rz^<|55n zxO;#*Nilo3{ws4>0b>&h-+Z_vt>#|R92W53 z{c?T}(+<0sS7NTS$`Y>CqWSYq$tY8ru1dW18z1e~a2zVoAqIFtMNV@*t?;n0r8rnt zqD9`H(0$TX2CjR4Bv_O4-}ktWV>l!WX8pF56XeR>7{mMN@2ROb76+O9oozp_C8?V- zD5cmkPJtkM@;^)2Q-#?qG=37Xt7fy6ML0!L6eL#IEZB5df-kk`!n=CBn33iD2DmdY zawn48=E+E%{I4&+E_J)6LibkN`QElS;I{YQaZXzG>s!rknl%6CNtHQ_(QFhrkeCKe z`jV26l2Y zo+MpXEM^w=6ajX z4oL8UA8n;mds%m(s07+Am~4o?#YS=(d(^u>>a3|bb$m?bT*pwz_Q$T&2M1VkiZ+{z zl;>UyM9BFlOGjS#LsB`WvXxAKFdc)psCe9#MO6Z6*OX(clWD;g8HIAC_W0MbrPmnd z2sa_nFh`>p!O$6|bgKs3Ox)iP#gPJ6WCih*&aQ|HEvc9o` z0p<12oO%_jEd&75oK%IG$E5A!whtRZ>|&bm2)iD;E7?B3IHl2p5?EBtBY7eN%TM$|h4Gg?`!y6J|X zw&87WbBC0Y-3*B{WX`2}T`kET3GeG#&*7kPuXN(Ih^zrIsOjb2K6i-(%CT=fs zZ2)r;W`C(7M0xq|wrfSt@mq9abUXDyVIJqbeqIEnV44b95o7U5Q zTl7(w=vCS&qA2AY%dq6BVA}mfiUe{TCy9crUO5vfA86KBpoNt{QrBQLUycE`RcZDh zMf93dF@V63Z&))-*f@1(Vg|sS&Frm3kM0fc@?wS)0mK_7tvb$75U~2Od(pTjOi{eS z4!wZvd5$JF-Jc44AT@|Sf)N`aK#q7?v!G2-0|;@HkP02TZTS$dst4V@6P01U)YOLqu8mFR97AAE3=vdn^be6GQ%JWY1Iz{6-AQ_7#Cfoy)#i5q|B=JV zV;#ixx591T(JH+U7d-){bIJ#()%R&%rW_J^Nx#k5Ewr;6W1&Y9&@iTt0&e@Ntu)on zwsh*!k3#7@CVzl71Le=T51dA#A3;#fh_3$n7F2H#=Nxozh{YfZ5Y3afM_>~#TatK5 zZ@MsFqjWX9*_=wnC$p-1rZ?-%;#+Q(+cqxzIrGVk>-Tj23GeQmWt%Co(Z%1XR2_8( z@8%FSO=KNN1UzCuN^};caO9RHJ#a=nqLahy5V1_mx%+FPH7dHCh;K9d=rSK6q=v`~ zn^~;71qPW4!jIFtY^^u~`U(MZkZKAK{GA4lZii zhP^PLhRva5`C}KnT046tWDgiE4hW-Lzk-#N*B~kCAR31Wg>!FO&ME3!EPw8RF0&lw zR$vm`GY!ZCwl@lyz1+rmzWK5v$$umV$hEY}U zZV3wUH|lZt#q=!R)N8hfL4lA|~K&n$ck9d4P6G;4x5 zHnWWT7m+c;D215i?yXCebv3D`zB4^a$`+w&%F-JXvZHrjy5Lwn)6=@5xjUmpQ^@Pc zjvSBh{95kpm>)t#nh;1p?WOSF1pZO;u&`&;REm*@>vKQ+Kai$o#&JRyNxI$5?^1GZ z(M|76+_(y(hT^qiW4*j8} z!Z@G>@iTEVPXF7%0k1%uYyv*4BHRGE8)x@x9env?sFE!ex zNzilr53-#;#=LHfS~@WMUGcJfk;RWgc}0UGW_P3{cXd%R#S}rb0si8hfUG!3Q<+3K zx`zee5F_3%deTfe%@Ji;GJmwO%4jKjc&Dj6Udj+w#k^urNo2>dd-vL)a;T|{psw_7 zS?-<@sccJAILYOQl(y|vF%rEN<^-7b7y7=c!`}Q>t*d8Q;aoD_AZhW^ZJ&`!1dkJX)ts#^0a<|mXeb8Z=eXMUntZ&F z40CS{YuR}2efvx;KO})iY&4&uN&B1!xGZYQpyX(oiAB@8TrW9AZ@=QFyS6*|9kak! zFhXcwecONUyr4yA(oEMm3&6$tjDl>8#-j!@TqDFSwDcM^*p7b2IH`r{Ya<;m1ssH? z&3gsiKg7z2pB>Tts^Y2Zei`m>Hjs*I(&3*mKtN{=NNxXtuggttIIft*YB}qJiA=wK zyajRmhg~Nh-0Q5q3>J#%@h)!s~e{Lj+_%{p&3p=#2(`cw|cu?1d94@BU-4 zBr+*|&drr&kK4CqUN;ObdpCjg!5nRnsr(hNX4Yz!ZBM(MwAPP|O^z@J)PQF^up`2xXP&P69qUEBE(uZkor|kNAr(ChX8Ba8u_gOZfzDnItEBncEl2?Qn=5!)OF{x1!*7^G3~t$kYtrogwD0fZ|L{S_fFlIG0hT?R-<(<&xMlHB93+j`v3pPL*1? zhqz0*<`$ARU2JljWlS)jg_9u7e#uTS977CbXa~;AFN5nkoP|Ml_=UP8-7vtBm5THf z5`Z3Xk5$Ul)F)t49SdNc-eTEvB;%KkS$b(8VFM53npgOqXivnC<@nkc9kj7=u@2WP zl0pD36dwG8M#(^!5+8_dQkT310rdmDqqE}pRhBBCs8`SNw;LY)rzqWIqPxWcKqv|e zpcpJ>=O|$PxY^liRSr-q?nh7mDi%LM`G>M*eELjc`=)=&r!rzM(eGlat1MWNc-@bTiq);t*o#7Co~ z(kc^$iyCvSMOSrmGXZ$R8fjy@FNqlC{|g<1mG;*Kx`{`Zm%_1fA02+fn(-t z->Jx~wacct6STY=fpV}NS>Y^LvzGd6su8eWCih`z)U(p6Y8csaPv zSkv^;Fxz5|&WwTlU1{TxpHFPMO$BlFY-~y63xnteT_RZ6^w83^Ay#2>#KR4$N&eg0 zMAmPTSEO>7v=%|8@E;+gZ^mrCtiC&;8Cjv;dN|-8SlLxFFD^LJPCB45kU z0hCd$2=ch3Y;8Ha1e}aOBBDdS=Sy?7Ha;u&%LDe6?Y>GRHRJ~NYB}P4tkSnbuR>)3 z9RzHx`+2UnNAoqP!AB%&b;_?#_+~LfQj)YhKFWvPG&3?`V!+&( z+x)SMHDtwkzy z0><+*lQ)wD@Afey^1o~};P=NYdZcX@Iz>UltMob}E1`zYcYRm!9!^VA!z zSE9eAM^4wwOt>-IUiydim2Csd8|7k|#pT<`9~ zm5|M;o=E8B2U7#%43Sn6?lVB}E{n6y#u781;kwTd{#J^2du!`IU@u})R#2}9nPZmn zjc!=l32)5M$9_fJ_;COC^g}Pg%*UtXo_D|lMngW}F}Qs$T9IX~Y)g_#q(p2$mD180 zpdFF($$mm`3A?revBbm5^&>5uvs~2Yj9o1+5VOi+{*VV3$Y4=D;HR)4vNfcE$c{T9 zXrrsS(NrgV!Z$whv*~?JrchewJy0akWc%auu%jsy@Qy|p|o4~1E6Tes&5|JHd`5nPee%{@!{3aVta+jKR5 z^=#4qze>rES&i(gUuov)xvZu}!TL(|2cXbBbV~+4gMwHF=v0*b`L1OM(x@~HZt4{F z^#5FdRI_R_!Ih}b_KI9H_VV>UN&O@ob}}<7=L7?M`1b(&$*DxP!uj)BX#CmVM;*1a z7yaG#QB>*CmDz~XBhckOK8EQHdi?8K{@&owNv6I+$q=|f9k~>I*##4Hk8P%cuGcYl? zExd4Z;;Dj{dx4n$v|Vu`%d4wDLd&L??CQtwkG6hDf@WIAGIh%Ub@sEaYqSs}xGO>y zFtj?1VzZMbz0dry>_x-=FE_g@7!8Q;YgRE>hEohG|EeD|JbU~y`wc9a3i?*pNmVo> z^l?KJVA<~bHsyZWXi{cSPGO9;NP%cT62JH0O7~oSl}lNfzw-1m*$qR)>W_f2|eohqV{#j#01Fw zDYL>*>UUAmdC;O$>v*O`B9TPF2c~)vX-ix)E+@Q{q`_Kc0$0=M9ZJ{I>WlEkV&KOh zanwQ}zWyfxnkVXyQHGjZ{hnW3cXM|ptaW66wTFIPh&bnPV(P}|hH;twX;L28=P=!v z768E2pl%FtJ1=C9YAN5+TUTqQc9uAPW%gtJ*VRjiwRS>;L~5(o>iz363`3GdUUbHs zk1mP1@fU91eGp0q!H-xmgM~SFzlwBmWPzYmd9xY2H^n$6`DEZ)#S|7VFWDw{Aqd6w zJ3OPbo-kcUejT*YWTAJsXk;tRIz{MZ%-p!%00s4lDE@+6)FAb3*hHP_Eyrc!%Gw_1 zySGoh7!c~_<<-QeNj_hJfz!l5Mnp-xr0nBf^N}!428OMbMMoqpBPXFL`S(F-ss|?! z`m+HKGt898)`}iLBTV$sh-g)mAouw6XIW)o<)#bu5U?F-^4?{H*M*WGNO?OS zUn^0wmi@&KQ6cAbJzalpIL(2+&B7`sA~t92RWSFb%=D3C3gVOc%&p+G%4A=2^5}}e zXr}K{vNRyz1HD6JuV!5-wRF!>XbJ%=iGD&0M%6Dj6M5=n_L@q@T+Oue$J6L?R=lyH!^dAo(`FpNUmb%HW2 z(o=;W>tI3OMS(LuTg9!vPLZadLYW~v2Z}V-svWYfEo-%}TwH#+Z@kqL=Y1={SkTNClMjgtyUsdp{6b-uib*R#DOcGfR66~M6cErvy z+S2x+iXb*4Ehvn_C>70yz&0rj4m?UEk#G6cw+5hcf$X1zmf#wM@oH-^xl9XoQVegA9?)6U9ZF(|Q$4T~mtd@6&3$*Fg%o=9Xb( zsHmt~?CzQ$+{4ko@`3g|iOZwnQb~;G*-IF;qhd%xbR(;3mFueBP8u@CkbHeZjF|*V zVPmd-8S_&E`lIRhL>?E-I|S3)+_ksw%K+6M?a{@Tg$GCJ(iSwC4Jb5DuT|%H(FuBu zVE=tM#}nGKcP~58O_U39VEGE7k$3@q0X}UR?8z(m=0A5wIMAH80p6S4U=15~Pt@00 zAC17@p_faNy$BxNgx+gnuj6OEN^&HcAo z>Cn0CK$3Adsm%B(#EPN#hl$cStvOtb79|sVCA&&eU(|*$V7*lj1n#~X6OXn?5?wxP zbZV^Kd|Egx2Nh_=gyl$2?0b5#5{7+QI6UfHb8`R^3d>*lq%nkn@X*9_cw{J&Z2mLQ z^TK<~+Srj{H%+W<*iz}mq@tRbxmt)kkT*ZFkr=-J?q=8koCFImyM;rzg~To>-201V zd40oG_hM-ksqF6~_Z?5a*ntAf$rdqdm_+wkqIa(A@BPbW*G&PfK_(^r?(91MgSBtb zDhzGMRL}Iv*lBKvK1JyF+%}@v{2xtc8C2I6q|pS25ZoPtOOOPD6Wrb1-Q6L$T_m`> zyN2NI?gaOXJ6xPOZ>FaBi4;ZcbLidu^;+^dxBWt6&+=NkR9AW}*oI?RB~UKEl}s^5 zT>>Y?mU}THv)saj5I~9HWIq?ASQgG78@JvNz0OigcZH7Pr_@!?pgm@nWRk9=vFdIP_~X(u7j%}j2)gp?*^ zgdm|SZG#}NNqO>GxJpLB{YW1a!-xWuAbuU+af61Nk=@Np4sY03QMcgS$Xq3w|e}vB2`iH5T%{Q|h zQN)oT^o@@1NMQK;rv9;`<@VoZlTs-e4nbT@8IGQR7$xk*!*PPYl9ASr(f0UcIPyR* zdupN)T_pvDa@Swm)vbRUTA2n^V2(9s?t9glw8o(a_vcZ#V7u|=Y7lO8S_XRYqWP40~&72fMy z(wfQ2@odP#`JBabXNHZ{`V0p>q^KVWT-R4t=xO9KO>Av#kAJ(@K;{J3Vo`5=7to~J z&?UiB+5fJyzlkSix=ym<$67Xn`}Y;Q<%0LW2&?rru62}4ac5P7y<>(cP8kmh_jhA7 zg{EYS-2bN4W`?%6x;!F*r?T!SQ_R2f^_WJ>6D%gFBPHvFP!;wjhM-2WCdrey!&R{N zxd>IPQ=i{Y*DGob!c=`Vw2#o^F{{JISTHdyq?AIebk%@2HKhd^t5}JJFur4k~x3}j=NsF&{YFQ$pRIsb143k~=NEq%(PX&u0?7vqFfi91i zTlY1X;wBBV(x|hh>Qj`3Dirf%eYuWF&3huWJgprAwde6`n^i7&vVi^h7zQr!h}yLa z*Eq1IE`^`RaoB41bJ~SEZAfIB$fvQ!n4BW-^H*N){IQ{IjlB^TV>A+bbBk$)&7 zF|J2cAC-C`Gy*^C{DPF|FFdtz6tMXdOGanP1jGebgqvv&DMZ!zOwfS)w3680!n5Zf zUSV_0K%c!DcjMY}kwc8lFd0I9)JzO=Y&L{&XvxFxZfumglK7iz1P&%h!gZ|06`vC4 zMDi%&jOOIsC)N1XJXEB`P?1oRO}uU$6Wepn;nNYdg+n(tB{MxLFYe0AOUok>jRAh+ zZyFZpBHGbFiYZcQidVw`rT89$?wcw9Up>>9N)5iwc%h89&$rLMk@b6ksSr|S>n^jt z5n50A1B+vRSmn@i6y_cnu z!8Uf|W+$^Tv#)Q$gZzA!hJ!z4BdY#tuu;Q0PRv*~qDrW8lvRm5u|JusnBI37G}8nw zL>(BeNB*ao+x9nHk+uFSsysK}lVrCL1ErFYlnxSE1*4{{28ZePfI*1UF7^HvwO9Ri zQnG45lUaFVCP~7w8!u0GB>c9ur9&@8BQrK`e!m(!7yh6Gu^`@;d^~Jg6FiFGm0}8O z1T$!}Z)k%HJ>s(It!T3;+l&3CyT(YruoVQr+}jodBY#w`gG3egw5h$s18Un-F1m)D zxwFoz3->$hx)j^b516=BCl*Z?%NNLxNxyLU#q83^U%!lel@Fle{}FNnoUDP7c5LU7?^*T+^Rb-UyV3!q!GLASyReCZ>E1$H2> zMZYb;EHbf8QYGjf)7SqJ@aD$JC{W9l4*yahfXI)`i#BV-@0rt!C!AcQT+>b)Y0Atrnr)MgblV`SZmNCGlopIpQ2mO_|s6JVxb0?)k5L8ta zQ9S$?{Do6*Tyl)-K0+(ysNFyRt8^je+^w}PPAMA=qq7QHZWOX|;W9?Vr#}=$>4pS^h9O1A{}3O&_i(`3bw(npuH; zcOC4o_(+Cb=GdDu<3%y{k^j)7VQR%!x68=F%X9kyJK3bJ>RMUCi{w#@^ z2x#u#6p2tL-H9dByW|TNeazIsY0MvSqhSY%W6Kw?|BOyQhFkp|OcICh8)tzfE4yJDLVCudG5(ljpO||erO*#0DCdvB$C@~SibmDxFzro?BaY8xc;J| z)zI473ic(!@d+=!oGY>Q-Po^Kih*%_EX`v?s$>ONunl#c_sg4IkWZ+Yl~_g2O`SAv=tD8zM zWbJBkc15Flh?%<^Om>9U*qZH=7(f$$IdU{gkmw*m1jnQ5r(vx~FEW5gQJJt(fTt3U zWUQcu= zrKEz# z1SJJ5XQH5c&ndWx^Wu|fn2G|uv_Jo=+Ceci4=DA|EK-wTMm(a5^dmx}i}({$d8~Y& zf(ZA6#WZw;CS!l~8zkL%^4a2mZoxyM(=WPNUAeP)jry2(AdU1DYNo;7X(wUR^m=g> zWG};cQ}RxE{Uv9&Mm?Go84#pJO5QSFp{ZaUhqui}-h|F|HoBOAox! z&!lQFf~A+X0Nz+CPOyfS)}Da>K7-G}x18;T8sF$1 zaC=sR|=SANTMB^-F3p;TiAl2i7zJ^AlO=$>P{ zw#sKx#Hl_tJILfPVkcg9{@*)n!G-%o-l6HfWbWCN-j4&QH<$ufm@?EyjV3<6#@)C; z>N&nzMq-6Hv$}n=XhDG?hoDRJB1Ds=(=(}j_^>TeI;AVNHni*ZQQmobA_~-ysYF=l znz$0L7Ak2;8^)m0=URS6uwe2_PF!!ovRuoO?v<|+i*{g0;Eh!ez-l~{yuZAQgw9as zkt34@X!DUZ@7B%@5Km&3#ZV(5l6MH?AycR%=EkE4mc$~*mxXEPV&yONnjk)UWPJ#$ zmXs!kUDQy)B2VC8v%z%nE-gLlU@L&Z?-leYOO9o&bSAtX zeCHhF@;@6!Ll1>fLW7UYonLkVWg%M^*~!w1BRcv7`c)ndeguwQc}GB`Rya#~e2x&k zya60J{T1DIhugRkk4YYOeOxf(A7LY^5&E&(Y0%Rc%vrX&t=N@IS8oKqHd53aHh0di zxZ$Soii?iErGyW@b^(&__^kpC@#k~Q&eutZLqozGIN5t%E`jRI@*b}%;n8FE-&*cD z_8rz~vI%#qaAUT%c!qk6-}o**Pvp<~IB^a2{ZeZKXxK7?#^vQ+(-WQ++m%#P->%n| zev2!L;Dz3L@wpVyMF!S0k{tQn+MTi97s%P;grvW@{&13~8;CF-v-!K7Y~FI_>x38F zsEr6PBn%w^o229z4_&G|Pgui{gY{9z-guev4J(+$5M)?eC+Kg8P6W?CmAZ>yP+pyQ zM7`Jy=|lW8BxQBf3V|r{qCNyXkU>C4k)LIya$;~F4W&Q7x(jm0}-;5;BwpK_7NP&CP~y$Q`njN96;VhIx{;&v`Lo^<)spzd?u$~C zaaCN=Bx~}jxdjtLXBXRcRTB0_XWishmHqD;Ju3YUDK4!$HLS_rcHWmdL9BuBZ2g~g zi*iZ!+I}@d;YWP5$6IwP_uX0zyWn(D{2bzaNda?nto>@m-wnH+#4 zo9-Rm&P&htQFs%bIo|Kj_|Zca#?ynd7m#zmO>KVjIHh&B%{xQmjGGo;!inC+WZ$Jf z-{*Xl{ngvfR^K~YE{dnHn>QgbL+c{gc3pCI>kyp|uiEevms1xuGh^RZ!5`q?!pdUV za@4d%2)%J{y%a(S*Nnm^$3JsMPzZRao}jjfz$iUk5IY-oH>*CIP0!bZ(HN@5&za7Q z%uEzTMgZRm$d#;Sa{iIQ5_RY86eDg;xtT_bXzOrKwphFHyeooalrNlZuF3&X-;B0C zt|0^CEW2iLG?>Dpy-Cva-8{i>=D14p!KPdOX3vOVjsbl*w8^NSZnbTz&weNVCC^-5 zH^p3*Ttj@l`twI7LU>}pWBH%H?;Nevf)|VKFzWL+h>G?mFCz53nxAg zzTg(GmYucdoP0(GJ^$U$qvb*pl5I(s0pM(5ZRym;W08Fn$9Ft2Zwk9~AG;=XvxSfR z8s0-_>96rA-dDc2R%2QLW>xmFixTFD!Cw-g)Uhp$X=$KuO+=DP_{l_1R{ZPfBGzRP z#l7UEYZifbZ)@i~?@_)Mad4bUZ_42@g*aRtD(ozOW65w7A9|~M(2Rpb&8E4p?OAv8 z`j%hl%burPCZ&m`m&Nn)qn49$jhgxA;^FCC*U@Og%G(tkd{xFqT(0LA@egrlU+Wh{ z8{5J+Fc`|GT9YeHvAGEiuaUJ?T{#m;MF=Ud@?JVYVua#`jGm^F(9&3VJ7i=`pRPxh zl9M1(Rq5U~_Z#VTSq_5?MGVs|l-g~PAmhsFR1^7W%ci5j0LTF{rFs|_Lq!FMxkJ?L zRW~vZ@~26Zl_|wR++izg*CDrwT3Xqrf#pxuFDUuxDMq62UG^BiviDZro=?4tDRHX( zrmYc}ju=o*QJ$-XPwm<+))5;2`L_L=T5r8rMUQbZ+pMBIc$&aA;gdU;yKcpoj?IGD z+IH9*{~ncv*sdRRW?3+5a6||nam2Rat8?Ib0Z+@Tr`vL~tJ{jN#>vm+qem+}=gIB8 z#kxfDKACJy5}*6|Dajf_0_VaL?-tWx%u6zJc5l(lFlh}v4D(fwAPVOYA&b6ACIQ3+Mn^xG4p0Al{mnDe}5-r}$g^?n8xm`dq-F?~C;f1?(72oe|;=f760 z-uxSb1T~q-6^-^5%IkiOm$K=N`hg0DBWK#)_3DUJaXpl z5dTdd0ukmI_c3P+8#*9 zT}fGCIU=T~7`-%eG#%!2WJGYfmu~H%MQ+z)p?^jO?ZCZPh~|R{3$hh#=Q4EYVi4XTxf=iy2&2|x<|Lw+6D}EE#i4l373Ebth&VJoXujLFlG=Kl1KeVlBMi&*_~Ij`{`~cWW-jk) zH)XAj$%2Nfy|sv+oZe6KnI^nKc(LL@=De$`+krFnjSpGa>otVir$UHO_UZ#z#QF4N z?^I1Od5hu>_~?vZuq{f3e8OjByVf*DZs^b_SUSU8Re28Q+1sgUQAw46j;g%O<=^i7 z(RETqW}CdBsPpVKy0CKVe4I=}YaCA*+y&03Pf;&-`Y$KHa_5d5o^CDQwgq0of(5(5 z{18pQef2lg|LnVOTd3K4%;P@p;1bgAm%s znRklFOKBXsDhdv(cRez(QNS5*UiocBD7QbJEukx2@#w$tb-qp5&&GUtgS?;l@6VUb zxp?b>>VSj(hQTKF@X7yJ`Id*c*Dcm#8|DxFG;rf_Hc5J3h-B--;^M5i?naca{Z0?! zGx%}0uSa56mcl6N~E?6a) zhLtGr+DMcg-na53&yvFA`DzEYBPR5EXQlecaOq?fyZV=OfuP}NS~K-Ex)CK!D^bVk zka3sbeEiu>U0oLve(jPM59j`oN4v{i35IZ*vziL(B_vO7tEQ}A(DpnPnxtBfUJX*$ z=_P9v{7{ws7DYd)NxG=&?UcOhnprinbVpdqA~?Wgg7qaR&WblT9l3OnaAWDuu!HJ0 zF7ZL|zA-$Q#361)I6Nzn-T4$%a`qZim=B`e4h$rs7{`DwK>vvss^RQ`c$QM5(_t#; z!|`z7HZ?BZ6S?hoo6(^c3ow5#!~7q@+RmF5{m{22(Tjo2+dEC8T{XqEMNI%n| zEno-&-+G}6w$Z>uXL4cDcTL>E?73aFz!WN$Q$!d2i0QA8${NMtZG@M!$hxTsmThtf z4~u7HTmYD%9I4V0^vA*OA~VD}rk;^?@e&|^+#F=sQy56;ZJ;t7}h6 zj)^1W(?Q!Ql~^U0JsyXEx6ZvN{P$N}C+#3jFmOR1{V(C)nLns%Uf&Ni(?!MWHIH5G z4z>8ba!b(x`A7f}RlIZoz3~Z?EYdhwg?2$FCgyMRq3=y0Sv*-eNO?%!ac7>cGKf=7 zgD^%>F&KK#QVg$oxFYcT7y#169FkYC43cSW#EErwHXax1inY3HpRFJN?HL-udt`n+ zo#4GSW>|F870qn{oEHhDH7Orz*r0JXuUp_vlxc{K-d30?C1PV`oBkQOdJ=UHMx)8G)j+T zERd!(o@-uV>xrFNw!WSZ`VOkr7a*|{q@sCUb^CEg0kR)_j6u_2wZ>KSJSFMCisyMe}prndH%7>Ymxf2{4-!v>&( zAdE6oD9s)~DELbSi7u!NW0bu!yh*>n*01Z+<7JFP%u?qalgiduTTxuFVmRRIf)PYh z+Izf(TbBDPfsKZ+pY#i%F!HAc%tlvTIx?sK0Ss6!XD4>^0i`7&Q@}a&Cz25Ga7vNi z9uzLru#{QS0-^^pO2G=@dLJBfU&{(6Cz&L}dc=K;ET={kp}ed9sbZ^>bM?&T&2d94 zbhysjHd>@e-mZZJku7LRABni`9fpgTTSP~*h&7poD1#1h)ti*SqsFc!Z2rY1 z%{clBqJainUXvQ*6r)&<$O?Pau)Ww!N+|+a3>aYrJA|6+I_3U&g&5TeCB*>ch4MaU zg?aS^G3qR7$jlo_ToR2mda9SB*gQG)#OQA0-Wu^6JNM9xh_O7&&>Jfa;yKEh8@QWM zmc$*nSSPHM8^plJ)(;;sGb-RvS#opTcHSL-^@~`Ac+=8%Sz69^?2^5H?RuQBzwZ6S zd|4*%7r*pXhituIKhE_$`R02?C^v1>o?-ddjQcLKh@l~Od$QcWXu1)jrE8Ntk zmfRQmvE2P;>=_E#?TLaK>SBKs9lhr&x(-}bIE6~5&5;o_r;hrw&3~F|Dp^iEZ$O|; zG)Dn$XGHHM&gNQ{L)*`)wt=j{R4&U$v;s-*Wco`1!Elg~3KnLtUWbM2{)AT3eQ;7W znrcKI%&ryd>_^^k1cbzL%s3_&(7!V1xzs!zRR#nw?{uz~#Tll_J zFdNDldDw`#Sko??26l;0y?R2*)T5Rc52qI&iNhQNnpYr&$60gD&8>;Z{GXTS`wWzh z<5zMrdLYlYH2Js`Y{6M-E+opm%{^%ol*}hYcv0;97Q+N*eeUB2u~k8G9Hx6v zpl-7w1l~-O z-|SCMGu4k4gNvlNgC*gUTsl^kEXrMi8e zmkIQam5XYyD-X1r-;1{L;SQG<<^rC@-AFD&uAx^EJkiphin1h~<-ZEx=%}g+2cDj` zL#`(31QJapTmFb;QZh1rRZI$#)+4aCCx1MrYVy)whHmkQYMovP(B(<|o5SPmH8ryC z-g{EhH95OOk@N5{1b}|o0QJS9uD!Kdv?ufC?kV~vo#%^QExz9m(p3nQu4-jXO~Wgf zhV_I{JTQ7Gh$%MuQ*DtzU&-(l(*$eD*;{}{$uJlhN(AkJz94Ptd|)uDPKs%}rnf!OX*$z$FXU7FH^?~;^Ch%W6AoLKp9rXsCMKIR{WSGt!$WB^ z*)&5Ze;t0oRfdlA_&Juy@ceMv$dLx*u!6a>yhI`O&i=M?sd!5ANaG89#YCCG-Hri)<{R0(TRHU;wvmwZ9PC}B|H5FCP5nTMh) z3q48PWiO9_uzfc@0}e)JpD8X_n=hJ+V z;kYVnxua~ZLIQ?g`xZe~jdDpS?K!5qZLKLMmQprI`u87Jsc|!k=Wm=YxeoTX-DA17 z+x%U)0RfI6pmk(RquC;n#PXE;4F-ZGJ3APnigBh#e0TUfWoYhS7*T_etyem8BAU^R z)Y)h5cexHZYV2(;y#Y-F@AGMc&r_1R$5}5doVUh&7qJ=Q_-lC~k;5B5+UO0&Ra?&_ z#5CCy#xT74U}H=i-F1CchAj3P+pbAA6DdI}bDP1!7XNvvD5npR&S8%K5ZFN|>VRDZ zaN0l*|DZQy31NN%aZGbfepA!&;Pl^P!f_u05Ha`6XS+U{6~gL~GVW;8p_H4Mh3EkW@ zY5SVYe0NqGwCNi(au;q_i$19$A}CR@p3nHH{`5oz`KVa<>(=Nm9JuQPzww2 z#Ii1#g{w7{dqjom8ub*5Y2;TnQsktPY}%=gUMB(!Q`am9fgvLJu%dm_#iawOs@MFh zhW7PBpO`9(rd5P~raxbuPf3;NTi4H%Z&$fuzQ$ALEu6;{CA4`JugG1V?Zqz31fw!g zz1WSWL)f^wNVj>j~utwjxcD@c0!v9%+y?>3)zpYJJ0~^owkRb?ZRV^|V?K%^E zmcXXi?Jo%(V#*KMZIt5`Jn6@5l+PA#;#MY)bWXNv6m+}ctItRow$sT^w=o!lQufSC zM@8?%)*_6o&s{pXT63QIkLmay$(dr0ALq^d;`v!rXEG@n^^4WcXo`(kX@5md{svSP z@Z)h}6BvnU5VR8$fLURFCNkZSaK8m{cf#jZC~pXT5$(z?uL6Ci=`>QHfs_$JmE?}c ziQ#-9w1v1TAuxLjNz0&m}MnUeFhHHx&Elv&c z!=zN?LqQFT59G5~)F&7rg+lxlP41{qB3Yun8yHtRlE9hO(9pQNXP=v+LxW08r2WWt z89)kkk%CWyn5CeIO{bZ@G2@_r0xgH0h4H&-&zqXquVS|H?cFvfOAM@`uO|092-@%d*ST{Ht|K5iRgrX8>&SncRhNju0v=6W-7TKh9`_vVfrS#vs+D82 z81IloC~ws4ZRa)pJ;sW(o?Jt4Vc^P8I;}{aY7zrMSKP|3D?hpJF?W6o!3b< zm$!h1sRdv}19h2!>HbDg_kH>YUcSyYg^CT^wgcn24&jqXmQ#U4v$eo1p$|n^!G^(T zfxBbUsJW^TQWSmsh&nwOrA1GeqhC(*f=Q1mCI^*w`Q?=;oa{x-QO<5-?fyI<)>IXir%d8tu-#C^gcJNU4ynfbouM zU1@t116Mu!R|OIaHk_y-1cR@e4I2MhF5Won96p}`nr}3YWLi;{)%ahjDNXaTJ z>iGd98@m+h=nCj*-(Rtq7`s0I+Op_S;S}MYur|PR78j;1d=W2kby?E{pW%Vo7zf89 zq$%rJRz|Ds2b-M4NN+Di!boa4<8P%|eGMRSqJ+RIyNJVfxd%{F`fYRYHqS8{pJB2{ z1S|A6gYKl#?x?ne;6xMy7c-6*X^~iEaajw_?>=%8Xsa%>L4s_OjK{`lR!*$aFW1qM z=RRcn?$Dx7Iupr`_nF+swlSglWX>Gj<4rBl!y^P_m8|fqgzpC1dsFQ40pgYxMW}bkO^PJ>A3?V89yHt@V3c2#X9)Vj$~lWlAG1L(y$}x+4j+zG<|8U&E$Vk>qrkdNCyG1E_dreE7 zA=R*^$6u?G%v7&$ZZEmqel5$S#&^Dali=>pg4K$mIV2Jo>TNOC;P#8>i~~JI$#AGi zY7?7m`JTFDD}sK+Ng19*`J2t0zU5K>%xuEbWox}g>02OtdB}NF%=W(5)bqVl^?TNT zBlz(CI`#5>{jYfWiVpFf4)K8w$(|0W* z{MukXIT|-oCA^#23P$nM!ZBK-SMVACe+>*hG7E^Agh*FCjcT~UM>}=ckP5CL?w3Kl z$}$dHm~trXy|+#V=Sz}$kh{L z6~>G2%vi;Ad_fStJ$%!IBmQ2!{x^Wt-LIOjw0@|e1a&BOuzZqaqABufX6X>(X z{pxUcTs7MCYSeb@R8qLrN1fzug}J7W+9Cc~Rde>}{yeR*aWOwSue_Yj5j%uj5be}M zwo%KrP)Xv*c215+AjUODt|EkWLu~Re@&`~rBws8Zj>fhK{w!HFW=lh(b*)_hiNiMi z8aqZpT&570Z#Ruxpkf1YoNXPSM$;236&1)nGa0*8nmJD@CSwm00OC8-|G44QyR42x z_H}ow%qa9WHZ`dU$*B0nqov&KVj--6glb-wOp{j(vZt9Gle6c-T#PNn;WQA+9T53~ z6f&tCIr0H}P)~KAs8?%EFTeO##Zry)!F-wTAI;P9pVsqQs%mUnZ6mSo%ixEc_k&HC zt*Q4%fhp$K+4tV1w=w_i0f9&3OfK(G!UFOigRnn_sD6auCs^Bm>%2#KH2ADrsKW7AJM( zM_tTh7Fpx_lwVnH;o@}BT#*#BUy{ZCNLDb?4bc@YxkeEKg{L{v7xiSA1FGSIcKn^Wc)uGwkNQNxr$q+gC zqp5{Ilby4wuJsaVoOP>l{kasV<^XNT`CRP%Kx#{f<3UfF2%0%-m$qMmj9<|jO=_KE zPZT=WPz5-9XjtO|?>$@`JR6(w=M?B)?4fccQBBE4ooKFm0fU4S@6D`=^Nw|qype#QR#+dt22+kf|Rn`KSOEDAD%UqTC5!BaWr z9@AVO#6L`Om4ZVX{$Pux9Qp(z2YUITY&od5q~R-IH|^)-*xTkbr5@mA9)tb@uY~4(a z3hJ?nuEVkALoA8zn?LGVR9WUW^wP?2nUXuPgMZ56meBumI#=ULymuuma4W36aWfO^ z7rgmUwYl9pz)(5%^+a>PON*5VWmvsBZnIs4OJl&q*hZDry8wyqRbF<7tUaY<`|F^!l1FKtT}tAy~zAB<+Q_@M|-}nVb!I4G}e!fLDykksj@vE zHmte(O5IeQ6i-!r`9}9=ytb9(Ls7G4Hvy=Le_q^XLz+4xw}DlazXz-A-A2{BLMEy8 zd^)kU+53T83bT;w9Q9!H;f+Om@mmheIkBqhZ#g9#9Nd2zn>n^4M9o6h6HhDjS#~L< zOF8hOM2^9VBC6~BM24IHqtg8F}wV~q8kE$cbfTH4Qv{nz`r+w=9x`o)!IEF7z-F`jF@G>v|iuE54q6Y9+ z>c8yZJ{AZ(eF=`ced2rKyIAe2>kM^{X()lvc&s3P`t&O9k>?=BV)9BP9lrLyPB7jG zHHn$BXjM}?uc}Mj;#}*b`lzs1lI<1AI|XcOBPrrxgl;o2Eh7T+zXtQEKs24!TapgD zl<%@!zE8+XQou~|yDn(tI&;6sw3p>S9tBVqpan9H{kM52i1yG0dB*ab1X}3$HZ}^$ zREu14S-g^}svxm1k@Z{sSD4!23vCQWIlDc5+k87f-xWi7Pvu{*5gX-%l30kDhQ(lr zS^T5Zr4^ePIE`la6cqgME4tLZk15E%V37?@HKon}u0ntPI@#W5moU7r?~Z=2?Z;5N zvu#Kcq;u+_<04+qJHzLdVBcfCf|1avPHr?=FdTux1dF^623>^Hx_!mvZ?6NVLG7R3 zr_s-g_Ijos`xO78A+$^O3bLW86cy4s70)~M9U}JE~;URNa-8^NjCKh9Iub+1`+J!b=9cz+j+$%ln`GxVuyPa6M{HXs7GRfO{h}xKE;7+QKa=kG2Ha;)6l$y*#abL2fuCB}6jO$?o zHWFnuDrxC481GDl3CH)m!t|BZQ`j3nQwEgP_}#&1!k0<^mspoJUH-cf`B}SWR8xT) z^V%>>&16=R&x(TG*Vn8oXZN>UfEJM6*5j=O?6DI;1L!v~hhmj2Yd*|tC79s@pnIhM z1+I4i#?ru?_s1M?v)@Vc1CKxW;xZ4_H$0zFQHqt|Gk&Z%yjPZp;;lt;=#qmgS~=v; z?Y(v}qt$uwTbX~esGhd7DyMlnnxz@aMW(QIkO~GJRo`|T?e$ygGvc}<=cK?DOwQAM ziH43&ekFZA=RpDKGu{*cw27Gzg{k^HCGgHm`gkag*ozjGx)Q@g$};5cP?3eCddW<93C^Ay8Zhowe@8zPE4U|AP1)JA;bX#l1Y!=lN0xMbSrSv%Sz>4~(?2*} zVkj35v-Br_JK9n`QZ_K3A3>FB;_=P~Q|&m9*YObC^(iuJ`rs+xz$zg;eTqW$ZAov! zsro#Km$P@~vsspynf!L9a-IZ+UDSjLq(y@0*e#MVBaO@8jZ(_u4}a!fCy|1+&^;eFeGFFnB8=(Dp62+8)x+V2*%;agwf+4aVAz~{t+c(WtHE^OqMO~6H2L_$zA zxv|oi?cTYXRv}STP7jNbDeK@FU|uh#=e+*Q*-!C*O!0i&PkGe#Ke4~6=z6Mn8LfFi z(tqg1eQ5KCT(A)#TQ<4j5UqUzcwW-6e^r+|y4joJaLl{8(FV0$Y*}sHZPfm)r0=q#=a{Qc|X975``iAq)^LfCNO$QntJ?F-cAuPaLrTc4PxPdsC1{=MFL@!_N- zJ4`wr&(qmeSEK(~38%;{3&BtV#vVWiUl}mH0t0{+H(PU9ckZ;yHvPAHQil759j=%U zK0b{Fa%pTUm~f^slS7HSpRWyL$t;yAiLZN*9vz~M+PATlJR_?=Yu9~y3-MlV;QY1I zrY+U~N*sX}s5T2l{($;^<^BkH-*#6p6nS4p6f(s3yEysPok%5zn@YW{rQV69s{Y1V zC;~H1%Oq@)N(N*{#W*WwL_@~JIF)79zuNrHivrTjR@Y`A+dz@@_@^+u)def@yi6}< z3#t*mu#3~Zgt|Fv@Abv|!p8MKc}-@ubzHwYz67A|X$}HIH=s$eAC#8rl_(b>)zz?q z-fiG|1f3H66HG^)^I$EIV^EK!Tzok0U1($3fVN!TTZ)Vy-1)MG2dX~)Kof)%Wa+hj z|Iy{go~NHYYF7i;vTbvpC>HlXIjwEzl|#i}W$T$puzA&(cjJ9$Me%f5>OvNyoE?^r>4h_*#Pfku= zHZI=zr}&>4bNu$PftzYTkAXw(^WRO*@rzwYk!;hwe`mPlURi%?;H;bf(Mkh$N66J6 zq5UP~{cW>k!RqQiPf6En^E-zC#91JW70wuyrt~ZF7qO>9MhhaO;y~0WXE;OHLvC-Q z8`;&3wtuA7wjVZgxQT|6V-=IBDk`jXe83duQ`x&`&70H_kd(pB`ug59z|Z0Kf(Muz zkb$J@zx-t#J)OPNe+_${lTT0F^1N3t>eag9qaX6-zbA+yM1Xd*biQ~1@<7k+5L^xW zO1D3*0YV7bK0Am8=a!EOz3g>dlSWNqDfn!k(dk7*nR4E&ndt2lV>oyXxkwa{m*{A| z)JRp9SG~b|dwk%^4CDWS9Savwi0fwQ-o{CTkRMDdmpe`?o7K1`k(ZIkXl-@9u%(%1 zJETPOMcLbrTUU0juIekFVM56v#lQhw@hGb(|J}ZEtJl?Kd~#dT5()LW$l)2bWW~hF z@#q_W!CL!Vc;*v&*a~t9Y87Y6Ia2dpPS71OGhVh&9u%{!1_bp0gPJ=N;U- zNu#RNugKp!D(ga zYbB6(V0v); zuR<;6y@ZG2z5YK70H(Y;`$P^fqV|uQtXC5gtKHmIUOHRXzsmF7VOd*SS5{Y(9I~!4 zp=8kV$Up&Joz1=Dg^KovZPbR&&dKIYkKOJ+ufSp$S2|`|7`!#I^~s3@`NJEeYYLwK z@}uADl7H5e|J%(=1@Opu07J?D)I7hH^7qzhlrG?k0$0rldE+f?R)1;huG;%!Qdu#_W8$=uOlFVH|PRzI~8~)RQ zRjAk0|LL3*7q~{(s=`r&E&cnsw?fnu4c#qy7{2o}LxnXFfTsfI`1=j*0$ypL`bGNh zN=-x16{y8tbYoK3ZGI$Kjpw%IVPi zNa;)$ZuJhGmq_#FbEgiXyp|D1M0}`mSqy^KKhi-}?aC-!3E-||bT2H;>~ z%Bxw`Y}m{jh2c|N(-u7PpNF)Afaw#Xy|~?3VLj(4RUa^$X$V28{i?@lTRKO|rn_0Q^em@$+5)G(JCPSdDh^LgSU5p3A4iY4%Bx`Evhb2TGmL zSt7<2V@ZhCM{>B;vTL~~;HTzKU% zo?+j4MAIgc8(E6g%_+242u5IezI=zV{97Zre}{ z49}RbL{z6({ST!KEcWVLZUPR+{fsIL4kY33qD?Qi=p_R!*+Qfl@23 zENsKH9 zrq~m*IHDsY(#8aF@U^m5tTIR>v9KV+pPxQI2H6^j7$AGRjC_GM?yi*`gSIq?HX$HL zkabJI8lleUP;*sxS9f<^%1(O5@otBlcie1u;^MccnwkM0rUQcF>LMont2-Uf=X{Wt zsWO|Tr4fs1HK!U?5Q6r|D$w7s9OgKHzqk$^xNk>RTR2!(Anv*D7`}s$ z77x|EwMEu-Z{1}Fz4$9FP4n&I{Uzu3?B#0LE6+=bz>B<2n_JfA)7j<$aK{2g6ZhQs z06ja|&Z}tq%P8PTT|9x(aO^V$7F~_uK#BSHSnPeCY(BFuec1 zc1o*x+w~tOeV-w9ygSA&{PK9L-ZknEjL;pQAroK!fYcf!Y1N+N?(a}5zcA8Jmn?cp zlk#{aMv?l|+NCu&6s2Zl82=yl4esd~Qe^UCCoJwxc=YEq*>?yiC(|-B_a4F7#+Hu1 zHO^$|F8sCx5BrMz`syMb3x(ql0eON!w=3~lzm>7TR_oUeKE9VjaRI0;bs)3J>3z?5 z(E%aRe_mPo3&fBIgbcNlNwh`dMjAUf?86fG1VDRDi|Mp=+8-6@2VMCJu^NSVG#?`5 zdBqD9!FNmgLx)LLjW!%XV4T$SHBXk6(^KTlxBF%Qd&_$>{_PCXN4qm)JOofB=dE1P zSa^O6&0MkCjq8x96a18bN0SgBJH!{E28W}?M~qkkvAmuLOf|(8dNnmExoloom!xC} zyA4LIsz^j|a1XKgj~E~{ggi!cXi0pl zk|~q0njiq3%?ekA&AooH?B=90-*{X<9iP~$DvvP6&2959-n*!>_a>JpgE&87o(F*> zc~wytE)BVgm@;$|C98)wOCom8kF;Q7xWT2CI;7vV!qbiKi zvOaULe-z`6p4ve--LTJZP@`85&#*?&q&1Hi6Pj31kMN~Xn=8Bd#NsT`VG~8LLz@Fm zmk4?7Vxtd&RFTLFZ{Y;?6RA?8N}1Ab>ic-PyGmc^0%)B(2h=-XOgo<_?|O$Gu|)-<#4*pDwo4Q@uTzVbE1;Y)1|QA z)3LlGQ5duTW(mgfQ&cXRSvsTgQFla&yT_%gQ`22F}hOtgEMyKZe1F1Fh);CA8ffJOcesPrAYp zHqG+NjAp`yd;i>YKqd?qsN79khcb^k8R<4e8n3sB-wJKyC4T`WBiBas@_zKV9H9rMl4gegP(&{JaeV%6gwG`Zq4MPKQougM83NFDOBwqKbQvd- zaH)cB;P1g__YK+dLPfj2I`6~yG;E%bArg_`RT+By?rDv(c#Es61x^EdJG%Yx<S6S`ySkr?Qg8MH@G*h_REJ)#qatJ#hxpSy}$SR!|UIdXdIjSh%9p zoZ^9D4O}~1d-I&YP?%`%zSV5Dz3evM4%*<$dwa@DYtZ zy3x_u0sYH6UE9M81ah)+o|_}|_j3QH)keU@IS?u%_OOo~FM2B=g$Se;ik9TM!lnk# zPuuVTEGnMeKV~kovr`PX1ke{69OOn_M@r~bNWPl((=D>Iu$-U0tafe9L6P9je+!?T z4^ziegcNI(Pt4E5BtKt^Gav?`syAe28z}z3iec&-M+0yNN;*1x65g_;Thy;3Uq2Pfl zpWnH@AzmG6+3$rP^+d+E%EX^7A6t)pdVsEWiR~BebcNOLf&GKJ_+zJL?+y1a78Y*z z(|2}F-G*mx=I!-1mNcSQy1$8%U->>=ug0rE;X{oRM}2b0pZ3jS=5Q~+=nn04+^uZ^ z-`4hu=?(4UMqj_Nd#W1IsVqt{<&rPAr$j_|H9hc^GWJQ!igm}4Gzvx zg5qQq8y6>8X@}; zZVThc_N{9`KS}%6+2A)l#kTd4vlUkIvrS1EuTye2gPM-8nvOc}4nm!E>`-RTyd#5r)o%{MHhY~jETf+FkbCIqmmu+XA zL;kO4ujKC>bn(Zp5;UCtc_v=gUkwD@Pf5nigLT=OYrpO@dCKBHewe=kd&b-ITyXO7 z4er3w=Y8GFl4$8Piqkzk9YKn@#YCYfIFyQ4ytV*{tXiMmt-Y?{HmA)im&+sr}+?K=rB_8mgkg3%! z)YS(v)80YRa`!g9$vXE=j%vTBz^-p^)!EpcPX@=dx}J?r>j|J2BLA|f|E;N$7Cb<6 z9ftT*0`RLwlIcBPeHBkXbjE9B!qUZeKjl5(=I%`;!|fi!Wl(6R12Nuy%S?2k3D_GR z^7C>+Y|lj|e?^1gO5Q%@N`mC#numNKp(LKip1nJskR8F^9l@xQP8$3EI7Z*~zPrzP z26|JMnBBiKe_*CaDSA^z&)EIO#yfFRsh83{er{Uz6FpFhrzL54dX#Vb_3 zrLpdqX)1K_KqaCz52BiS1Uk^+RaYQRMF(DjH$YlMUjU83np73S=gXDvzqFaT>9~Jn z^%35@RM|U~)Yx)!{CZq`U4s&>a`StG?A@uT&D5>03mef#T$z7X`JE!gbZzZ#2ymjJ zALCZxYnsZGn8puz5uo_wQbrGV8GiFaMIdW#cz9G8<^>F z(s4Vy&ybv)Tp2NtqT51TcK}@d02qcrW7MjXe7YlT>DerQMrsW^k_!+2{Onups7=3& zss%btedpWZ3$$A!Gt$zl=5GJ}h=C=GC50&Ve4u(Yr(=H++I2fG;C#yh z{0iXQr?{_qhX3=fKK(v>LVvx^d*L44G4s217KhP`U625p##dqxBY@elU)(O+Umd9W zhXEC(X~g_?4%@?6ReBwx^Ib2l#nkg(e2x(s=2+O-jf9qRgYAxLh$jZsSa2EBVLZgj zTtFAlPhgBF(%;K*U!z3iy1q_v(8Hf^?BA42XFFM!%}k{)W&NfIMWU8IHlF1e>930V z>;w{GHn;EVaZ!Nv1)9d=z2>;=Y|fwEJM#l^QAzkj|$S z5~b372~x*W$6eIpAu7OKqPq#;%MU#vp!Z9oa#^bLFySdIN@-X2IHk_;UT~myT>__s z4ie~&zwZ+oPZBnww}N$O586o~27<6RgD5^8@s)cLGkq4OV~CMo3TfPPUseQHFS<__ zG`Rc=1M~rkNYj}&c0d9dEGplMlf%h`8j_K?kS-;q5xupRXo` z4DP3g>Q^Fsw)SX^sOd7*tF3f{-N75cquYb<1O-scgOihzva)cKA+pWJ&j!m=b#EJ{ zlvI>22H1Tg`PV#x&-~B4iT(8D73gr(s%I0VobI>c?-9E0v%U+^C6AoCb=a3{3%dY{)v|DI%3v4K=r`ajh@LmEir_37$qUi^`J7k@V+Gkcr(^@MoFiWeyJ zzK5-!|`TylL3 z{`gey|1y4G|N8Ki=ddkHu!a;U3ZL}zBTzVO1m-4AqWdPDX}q{CA25T!s^yehkhkkyu6}@<0WRWMR{< ztzG0a7DthgBNI)V*<_>SmJMoM`~s+I@BxSI06`39T075Nvnpb1g{~j1l63Xc@<3?| zX?a~*!b(i{3bJDcY}bP4aCxmWCn*+z^#|e{c^NQ{sM@cW7VqTPYcP|gWf`q@MsNEw zVx=UdS4D4m$+LG~9M^I~wg`Z3_yd{Y1-Uk?DMdO$Y+hass!!vPAsP9jz{t5dRWM^p z-D_!Q8=bmpv*N;ZMhhA}!KspioeR2~SGHScv)*xthpwXTsmrQf@jh8wPT?ok>4D%6 ziAq$@8{{vP{ujYrhCVhVLyjIBq4u1P&hN&rJOCEx-+sJMYXXe?2tY`7wVFO#QOai4 z`V(EO*L%u8I_&Kdt?k)L41IY|BmM;t=%xVr>%o!1UZNa%$>Ki2IkLwQl>bE9jBEZ> zzz+MAqSfPq>h;jznLJy_GfK98ELJ+q=@_m&zZis;lFT3%VQo zsc$6v?H(ZD%2~Y}o{qg@B!pm*Ra>C?`lyBG2j-jHqov3f^mN*x#FK73TOJJ%>iOrF zQG3@|SDMzZcKvOn=bf$;$8v z7cWw{F%7$Y|IsmdR1;`LM>)&{`tbt(G0G>E-f+B`+go=!H?1MmB)xL+E}J4ciw+fhDf$*eBJNsmw`K!I(lp$L0bHv?$cb*9VB_95# zK9~IXP`oq!mIR-1^eSMw1{U`b=dZJHNk>Z@g9qh|rF8TMHhaG7a-g1B>(8y3e`{7V zTg>Knyk`!1*Ti1=5QSULjP3Iq%`F`R6E}>);1S9-nNpbXq6VmDL80Izmd+-@;bp12p_t}aR zFE5V4G-P5EhMQ{+Ztk(A7yBg?u0e{>ZDxaeWODx}&gza^B4C4&BlpE+{9vCaK5p=O zsKZ&E0;xWDOTMKCLR=arTJ8F**5i zR+cnJ(89|*u&~c?cbEcNZjdUFC{kaak((jt6J3^<-^a6F4cGX_Ak|1T$Mnl0WUEoJ z4=aBQQLDNT;(BCKzL|PBul)0JRoD|>r#Bb1@Wbu9WbjC6iu`yZQx!#Y@`z4JiFG6f zj@*7t+>fuARS1#I;n+c1v2Gyn8@^0LaPhYj3>$e1msZ!EEC?j*4I&TcdK z0MGjZ`T6gF{)$a*i+X*$d1#Be4DaE0^VIL^9~%$%Yb-msbd)1{`;)-|amk9_p=!3x zZy7I^56W75Tsu<(VRnBTPp{kbHl4gJaE|qk5zD>yY94}4=uboE=U1ghXNqjj!ahK( zQ#6nYte0CFWgj(0Z~IFyd$Hr1DM|16;R~b3&U?biHy_1XZPI+$4k23Xy^y7i~t6p#Q`;g!Vth0mFV)pmE0U0 z0eoTL`asMeucAO|(uc>#$ij$$5*d;Cfji%ZKwUn?607O#t9y~$BTjK~Rk6I~x!MKg z_+cQhxmI&YYf7W~zT>W5+?n7^PfGrGo`2T3@2RtH%Q^b=r|E3bN5p@f6_4w$VnN&O zXzwtC7^0Fw&P0ruX_7}APNB^$UMEaICOK{1IAw^TlT#9q%q(_Ou6kkrdh$8|Y%PmQ zY207OFUeo}y6Df}BZpG4`y71`Yrm!(A{SCAP+Lg%or7?T3eP8c*;XGV7D%FE$~az* z@IF7xzApcHp7me;!`fZy>Rkovox*+-D_f+8G$Cj?PwConb#!Chanc0!O@(CJY}2AP zI4ho#Dp4`KO_4--%c`h-C?F-keCJ3RLd#lIiY6WRF^k_gg;ul;1Y!-7 z2zVMvWJep)+m9%@_zL+JDwHG;Ml99RyhN}?S}Vq7@mZaR4s%3Bi9 z?W!Wu&w7}z|KL3!KFA_IgfZeOZu^FNegDp{BRwnAd&uPoRnpXv0>k=mxEw3vtY#=~ zx?)0im||;-i{(?7j0avMi><7aL$G?x-3Z&tTNV!L_^vcg(xUCjS4|puT}p*i$9~xz zI2(?SJSHX_ZLU$rnH=80Lu*1ch~z+A8K{dkr6=PbzFd%Y$1Pu2QD9@NZi>|sB%r}V=(8${4$JQ{Dx8A`$o%dr9ChTZ`^lNP*zUvehy{* z9ZTRjxBmhA#c3#t5V$nyQ@{Ac785^m2PjK_DBj(OeD?m_2G<&Cf zk-ka3e}EjhcMN{gjxAmrsnsXObV9;K9j)z!{o&5A3zrI8jQ5cT0!idA=Lo167#9Hb z^SYv9;(sB$zA;sT0pOhc>psC<7yK_kWU4?<*FC>~_x;u0eQfm;JUg&7`J4k&>%;oJ zaEMW~dA&@D#=vd)#!73m$IHDcm!Ke0_kHvF?&8;6BV*$rfjE!5RrmYN^iJu@SsK)j zqiynb?o`jKb4_SD)!rbP%t$BiHj69NN-}J@s`k^96BEzHq?7@TM6V8`PxDuvy)~h8 zP2#3W`5m(u^)J4Sym^DM&9*mg@RAZx@Oz2T*kx4{)T!3yXKrG6TN&!6KfkqmGNyIM zW&;{uG!!VD3hQ)hUzZ58$O?qC=mA!jGb1A~qmTs+-#LN&WdtNWvcAgS7FmJw#T@;T9Fx^ENJpE1O{0 zv5;LZzC3XjjfhK8&pgAPp_GZWGUG~pD|kF(`Mgp1CMp9_)7bl89mv69|LSH}MOxGFsn~WIjK~8_t$%+J0v`>9*X}oR z@uY3g9bmK17IaQCuOES}KeLIJU;`Q9A|@s#zkdBrIQe_5@>u9C`IO3xM<(WMKA-M= zHD~&GKUqut2ubq)2I}i+iiH2`|GKRT;1ZqX6zc!41psQs{=-j4?E5d*x^WkX^xXrZ zVFjiv9}(`ZuhlB&J)Rrq2}nq2vS1oe@P#hWbQ?xZ%ieLVr~fhuLxj^n?tENL_t>Eq z@3DwI@&qW-*VKPo+xDd(Qz~-jUVTG*gLN8l&Ynvd>+s}-<3Ev9#VivPi~>MlQ`jCk zA-S~YaF&opS`6W-%GkwAZ))ly7B;pi8$QOHYlo{{jb~qdNO^&I>4vn8|L351IFqUESAtu4M$%wGp>Yw>Vh!<6gGf4h5bodwN{gTcoJ4YR+ke_{w99wR4u zM9>5ZNHx88;vn{D&x|7sNU4cA-ZQK4;(;e^wqca;4q$T#B2nQBC*D3+3?}j3R>&n_ zz5HvDXjK2p!2{*_)Dv>nF}gB92v1IIcKw%H#OVnO(jljPcxKi^y0xj4it$zPmu4o* z_==ROekmTaF||6VNHZh~FYY>#D|qW`f*;VmHo*yzu^?R>Z)BOQC`w!Xt&AAjnDZ9; zSqNK4e5P4^e9Elkt=gEm^X!=yJ$V(I5M|OQ0m>WFa341RYW_nB>L{wqP^!Gwr#&Pc zR#XQ-yY^4PvdIAXToH|#E##Z2%O*!ML!`ig zBgN@vGb)t&wP$nhUcV@TEGd>(wrDe9v-GBc0rjMnMWXVXmna?Llc`{sS4R_5al@=t z6SN%A)}KGORkUyn=BF5YxtaailOM_8#^4qaN&22rcE5q)FVP;4qs?!(Vru8tX{$Q5 z{7I_#SxH-~w`1c-w10meYuEg1!sZ*A5c?11yyqA0fuzK@%Mo+q0xJy%j8P zer*+bZ0Os{I!z-|^*hXWE(;At_}9WSgqez2 zQvWXJwyDMDJ`XVhx6-O(8kSHOn~1oEKp`4#A1d1Y29>FG+}p6C2@u7H{RvF^uu+K2 z_nJs~bL>!;gsSl5F|2D;tZQ_2BC%0tId2cQVKbKYFzQu1&pKe`@bR{%`@G9B8DK+2#XRA~8iKuZ~|X>z`ea zfFwL==txm0auzUsB)UX2$TA!SThip;4L+I)ca6I}YqsrdTGtvs*XlXlOUjT8k%)_d zNQQjwyw^XLf0HU0-k!nLh*0js0oEbUD=0tVKKY+L{|$TsBBDa@vS-#aMLzL)b5Mis zDImtUuDHwdfARchrb(GQ>4`YIpK-Zc5!#nW`hJ3%-z>a9Mn=@@NCGUq%{Lt`dL~&7 zUx{spmL9{wQP!WUooDN^^YAudp^Ux@@zb!Fm}f=t)SI-5rd7c(^Pz}3vf4$^`I*q*zLnP=M# z35}Eq^Y*lC|52Pd-v?%77|)F`+IS)tB_ow|L9jX}msP>4 zmoTYri&(F#V-Sht8Ro!7k;qKm*2o6xQ0DxkeP{oy`0LyBPG7UWvG$i_q^eibAnq=g z=%Uvx);Qk>e9q7!+#u{KTxqM2@8Cfsr;yxmwD(RI(Y}8}_1lfbfr-|NSIy}CY(-J# z&8^sBODKAlq0;6yH8>IZz`n52?lJ6iM{t^uYBsV19YN?9P=nKU7q|=r{dMTmr^7A) zt7ttyJs7HNJ^9!+kdm!$+vaL0@ z350b$n+~PcE3rnsRI>s#igcLc%~GSSZ5F4n;(u%V!s%>!n+qQ?IJvn^f(1?kv>A0q zt$zeLnwo}iL}}~m11`zJ#@*DDO5LT*rR*;)e%ENEG{!7B>{w=1UaJ*|w+di=hDPSF4PE zAK!6RujI2WWY!NV*us>ud}cC}YAW9TSQ!|nL(nLtO;preVztkd))WrKPS;UBKMmQt z=MfeP&M~VG$8t|)7~3si&HC{x$$P3cN`7AEr`VJtS=?8&gvL56Gd!I>Q@lpBl)z#* zADI#J7|BY4gMnLkDw?=0%8>ps+;i_R0+zodM`Kg??37jQeZTGu7E@}D`%CN%D3{aC zOt%S2rbVSYVe*`YrBlWQ?ubJu4qSrmx=46@Bd9TngaT5vGaoq}%H^WGiV-W#dJn0_ z7PI8%Ps^|?x?A`+J%;xYg2fzIq&9Er}A)%3lMZ`b1%RiTS zq)u~F`wzBS7jHyLtUJfYx@CZYQlk6w5A%~)p1uThD`g4e&DA=LwCW_QFy&RPen%zh zRs&(6H%OqN7c-C|d1S(hmsLHKA{l8Z&y_UXhA)~gtY+4Ve&=UZ@ZMvKLe#P3AjHYG z&35qb0s;9NC8H1Z3eYeR!LWR+Pc*>!&rSgaM{kmXzK3G6u(3F7ZY#u*i>s)rV$iGR zY_h*>K32+mLdU|o3{>se=~c700f~|OwL7^u*Uuu2$1yd=bjJUpA7vqHj6J^931J;8 zXFHpBD4POws2>|Rx34|`DD%kP6;RpvPf-McrqMF(bWk$Q0{}CbJeVm9R@=hizlRZo zmqTKFjAO|NCO9Zg)RQ4`^{Q~akSOvcqX{G;h@HTu4xv?@a&lPR2&{>nHm@X$)w7Ao zA*&zjOor`!(XX?#%^_ntxcXg}+V`MiD?3vqIu{K%*d-(?FV{dnaWbmUCDUTEYVxGuL!BUqFkZJnI)(L* z%=3PlmhvqInqzT_Q3Jt5`qdY^K^A_gG-AR3h~EF&1yRs4*66(8_6^xRcCgS>5n~N(CMu`bX0a1Levex?(lcdDDM#lj`OoNcf5Nnh% z;D{PHA4atAyr%>H_o^ayB&ncK=Fe=?>*C#gUw;GJBz}1cEZg%h>igi}_S?fs0+a7r z)+EAiF&7t(KsB_LRaE7Cm62|2bCr#gzk_fcONV<&@r=qyxkjx#fZH{DFGH|lZyLQw zV+z{aL*~MaYZp|`lqVG~&4L2%*gNC51Vk?Pi~803m-oi&TWaJBES3jBX0A#rONIq6 zfp6_rT55M}*I1{jb;~E#*Vk1N)@*HxT~?H*Tv_=JKa#@R!yb{;NpP9~+JyuV2J-;Y z@QsHX>$#yEP4$Cj#XO96At^xbCnh`nL@q5dRVQZP8F4ApU+xIHV z>IdlEWQN6XZpObVTx}3`M+8k9Zl)9!V0h#qCs^rvHss!pdJmndByw5kr?;@LU%P6O z(INDXmN5m3HozL-sF&{33AA|e5V`h(zxh!+IDhRe5QHqlD4{z*7wJg3LI{^Y2kq2fMO}pnJ9KtY8B%$u--4`Jre@EMC(j}6LL_19GP!QL62nS7#&J< zw1CFM^m5-nmI>e)U10-YF2d5;o$p6e z-Co^|{CZwi_kHu;Fr~u)8G_GvT9>+i#iy1Ao$Vcn!EPgHoz1aT9EkD(6HHA{_bt}P zJDjcvLdJFjX_!96kQ17s~A{6nqFvN_Nc?MIuBR0{FZEB+pt zUQRE;Z3(F@T_Gvs^Tj*($|+m0^dsTIgjH;LO}yeZV>zj3JgkY2$FQ`FNsn85}ky^4`4={`l-@S^e*C z@T7un6>TlaP=VTTwb!_-Uev&>^rmco;a;o9+F;*dW1c}}ieB5(b3b@={S4mv42w9` z@+{2CrJka7tf?q^6_AvN7!7xKzZr@X?FVG&k>E@U#JNUC1SFi~Pkj64$_9`6)QDWm z$Q6x5Nqxd(3)E8@H183!7?}0Qhi-n9Wp2^YMw1x=;tOP*eF14XETNmv(-#Gz`*%3E z5BxQzZb??hUh?9>$s?P81-CPcS)jN-zsM<6zL}O?d_!);QrS8t+56M?h+<~B-|LaO zd`Y>Q&H zlI7CP!O1(DAz@Mcxg^Acd1=-<05mN+m)XriL>`(7ztx^F-43G>`r)X5-N-2o|&v0oz!;mHVT`aTBoMu+`{Qx)E&d$u8{U}&?vq84jfTI z_fyv56u3Zt)uqZ4pf+d1DB2nGVS4#gjwHZ#P4QUB(h}h$Ey76`gFkC%Z1> z^WzlHZ|27XCPQwRjG$68-!XZu_CxwLu?So}%yruq-ju(acVsO%`2hX^-XDOaI|Pa3 zkP702hs>I7LIgeglIU*l^*q{2`jb;moFI&(#P6hkB9)$8ebuzVGl!6a*yo-tzSn24 z+@RNAsMMYQDW#9rdi{}N2rC|Q#*DLlOi(elGz>1BxHVErnzKE=0u$IBJXxMyF&VGc zh7=#+D5kHyP;Qo#%y#xDc(WvPkWmQ6^U}qAPJzinZLG_@JXcFIXhcvdYi5?bjGBo0 z$C#j(B3F%+cC6kpxZZ?-%N*nNvMq(4S(DD%8o!A$_hGZhRQyr#mq&0)4wbX=cOE=I zX(E?!MKcg1XE4{tPnjF(5Tj)jouZ4E-#|H6dSbN5men$L(TTq|3u!D%xopx;Wt?oq z+Guslz`#ZguVP%|n+gb9ejbBVb?*tQA^`u-$?ChAdrb2LQlK<8+5jk&y00$< zMEmcBy$qYXW5lKym`F8*gbg@c71|6nz!&sP(d4r~^`1x3#dHyD=b< zD@<9NdqJY)qakaP-d-!h3zJrt2F6*@4&Qd~4N{T=phYvzxyC;1z%)i9%EwQ}%olSh z1 zOrW?@Ln9R1Z^F0{iaH7F2ts0jKiiO|5hdP{4j50a*r6xH+ zn_M#+5N@m$DEQS&TFIzRaOv`9AzupRBHVt~SzHONI=fUlkRTik+h(9t54vrQ8Zuu5*;~jgtVo+6r_|71wvna1L~fIe48DI{uE@Sji(BkmgYSSfz`95 z4P~I}dhJ@rprUf#rgwJJH*9X^<(llSwkpRv*-^lf{jb!${9f?O$$T>{zXpVQ4eLS` zO7Kj&D_DKQb7K_k2YWuF>Eckw!b4dykO`!-YGxRFGU44D<6#|rvStU?9ZbUF?rl3Z znsk2OU?2H{{}`rRtyr&A73GBSyTpION5Er>V`OJf9NXPLBF~2~;;atQZdDy|@r%cw zJpw_8*Vnk}1eXWnK4Al)A1YFjTXo&^{2Ag*P~qoYTYT=h;*K~3c%*C9x-FDTG-!uS z0aQ;@i7jh&`gwsxV8`t)BWESZ%iFuv>EsjdLg7W0D8r%y`r#!E06? z-)njiN=|(j_Vo?Z6=1372pK71-iuTj8sx1nSX`pdaH0B7QW%m2LqtShqXhuET7kfr zbZD4CnmJNp{pi9B-#fISf7UUvDtyb#(OKpx_bu16+<8<-&ME$X-DamAJm_M zbSmTCB%Rnvh3{2tQIKG4+za>xIJBdGD3c_L#b)K9(5Ndr>icPHTHmTHEW3OXav~@= z&Gs5L%R4|S$zQch#|$M6`#Mg2V5n)@SF}lhgA${b_WFrJ+RN@htKTfDv44)q-|&D! zj~{7%WNZ7R-9B#S4FMJthYi_d(=7rInoq_YMUn#mt=E1B1SOtedHVh<%X z+zi14ZOW$3O_9WA5G%n8`p9uXj^(b!e(keA1Ho1PA%nuzPCE$mtv7Qn-g$ApZZY9v z!Yb$c&ZcCqG@sTmo2A9~>{uqFcnhXNYH3MD8HazOm&C})@?R)NSR3p9uxjXtMNHvi zXe?~drF7uu4_&waK}*^U(slEzQq+ZftD3otlb`N0OK({DWU3cLN~NCJ!vJ3D5@TYyLiM}||K061G+2XJOU!z_Rg?g1W4P3F}8-<0Ff5gmc5 zXg*Hy*DLYyrza6$=^M;F8#2EeUe%;7fg3U+bs#s@95ss?*v$2eT+7Thw!xutNjyyny9H_|Y5E*Oabqt3xFW!q*CqGoM z;pw)^fsCb&65LOO??#;LD<`$^16ido_*aWHo=sr`Zg1MOke$DX-AusQO%?K z)U=QclWS4^;=AilA}_~}*{zpiH#*$gQ;<}w_F`=+9rk8_q?!DxlJp)_x8@oP|e33bL%eCA| z>WHL6y=yP0Tk0=#7uT5)6Y|{M6ZQI54N~(&u)%TP$o5i6Jwb3BB;>S?wmON% zSyQQE?J&2na6aGVg*=*^qpS5P;q$*==V-%xd<^+GWv#CkAQ~8H{rgRCJZ== zXf8-JW`3`UL(bx}`Jrqaw%=lwC&w4@3p*WbRuk8vG~KPI2!yl+WGyjXqi>}@NFs`e zQ>YBL*3?O8e(AS}jrte^{toU_K~@Niq<-|nE!g@mmwI@Yi(p-Hp9I3FSvbW5X~x53 z(qaQ4r%rU9ZFrJZZPnCpj32MC zysLc2M3ZYR`Nx@+vFLXd64#2YMaRopJwBXjxuz9)FxxFYz?5s0yX;|{Vw$+i-*&Fv z^Z1#j=p=vgrbEfdt}FK0^Q~1hv_psTLctMJQQTk2jeriK`_?Za^VEn>!t8(EY~`1? z1G=O(v?C149|7n2Cqs4{RSGbk2q{EMMW0|)V7fA3NF*1LI;*XZAt&A2=n=uVF$0i8 zQ_I9@USnNk6IxwHivjwGL#>7=q$9jc#riao!z9VasNd_KZQGbr(zW)?iX z#k5cE7s8DS!!y(qX)C1~>_!rb&B|6mx)%g18}eES$JRt}+shRB`8)yZ!XfF*v=uBm zph_Jy2NDhJt8}yfnOm}{P?91v^K?)2scyj$j@Bp7hy*4~=W&WSKg;A%70f$BP9^^QHG)wbN`znsOPU)tdj9(x96!zUFFK>{l@|Ov!gA zC`Mbo2$cZfc&~ik3N3oOg}Vt#Sz-?GP6l0o@H-kd#ptWZO)e`{`Qc*aH|=uS6#uUU z2;TbHbo^0XcRp=E7^(FL6pAzVUDY7C#8b0U(sf&aKOMf6N5`a{zRzR)P2WA1Q;z`r zq@M+)1*V#9D1+@eX{A~%2=D0YL7Q8zlx1uZdgA$nJXMM1VCKj@eDkO>9gNj{5C6NW zUJ0jja7|qRx{h0(<_cX12KGU7#<*FOFe96N*@O=!XdssJF*CqRoJtE_No73$=2i;* z=Yo(6_RqP2(?T$G(~As{%GBU#RNJ$zoapyCW@{a^qVwgK;b;J2B*Rtj&Mr=*Kb~ZO zbgIq`&9beQFUOPHX4l`7e!Ff_nZB`Y!TVUN_bLb1T1UOXH7)Jz`e_N(`VlSb!-I>F zLI($`I^^o_ma2oZanR)@cITe$5}4G*C07At9T!I`$nk6j#f__Xt@v#S-eV`>TIrZ_ zN*&4!CpNus`VeGH-rA%7Fr@0#&JLsQlaXzY$cE(SA8xzkXbZ^ON6Z=K4tPm>9t#*j zl}sG}8yeSE6)<68lx==;JFD$vadWX@QO~6{;)R$rH1wBfoFHrT-v&8=!5JwXP48us zaCfEOS}s-anMCH({4p&teP)Y*%_L9Mt_8&94UFMmDEgW{$eknmGI#nTU6{nkhARUz z)&i6=Mp8ajJ-j(_fz=dv2M`DWevt3#s%_Q1>Afwg+|ZEV<1qCG43|S58J!athn=sJoy>1 zgGynk$bo0mLVxBz?RmCf1uoJO-@(^vgs|$A-2CDmzuYKMR8m&q;t_~AJDWxwC6kE2 z^KPw~HFoj}o7^by{;AAZw|LyN^l6qAW1WOi{lKFWZFK~1h3Uq)=|f}^h2JHC6dn$T`Q<3L-LUJG+taT9b(uUKK%?&Z)@63h(;tgXiE zQ#V-p0hrjNv}RECN!hb_ zc-SzUSVySHAR2?nHDc<(m+cjixRk$f{YdXZW)NxYsw8Gm2}zI5o`xCr)}8}6Y%WI1 z^8U<>0Paan$%L`D3iqysTs&SUesrcC+Uh7<0`ioAD2X48WcedXTV8kEte_569Zsk> zIfx=lvhte%@+9aJdwOJ_c_G`J%|Rh3^}JV16H#j5TTQ6b5df+fnY|@6b*%re8N#7e zG{jjd|J#`X4qeW>-c&1CU<*4k!0U%)NR+m+UHKfkLNFqCSj&E|TZfar>viIUKXZI1#jy@0CL?avUnERH9p|%`}<0tj{}h zQZo-{?6tl$;(M$THCDCc^udt?CyX-p>}uwds`KfS=kDGfAsJEsGW*CKnIw(L6E1?0 zKY+rt`s8{+fu4fiv@ZHk34tWv8lg4U;`yzUs@9z3G%1Rb;3EV9$^Y1ssrL!3RTT08F8}6t}T%6C7IMuI?gGaB>jP!QyBdP zfP$z3w_v+XZoWM(e^%cZF4k0Sh;hB_%8!C9*G(`fW!3~p@#+^-DEOz(J_XbAQOd}k z7PiV1MTJ(vnh2tTZZ(~Mv%#c#@Z2Vgx+~J^k7YG9yy^rj_m#2h-4q(}=H{|`l27!s z^#!zFXQQSxnmzKPxXE1zC4r1jmEH9Mzee;q{Q0+u(-?RM+)02r5Q~Pds+`-(Z%*a zM8-cVNY0$FG#`xV2k8r>e=^A0Z1^wgKvObb-7nH`U%=#}>nR!Q)$i%P?2EP-na|(N z(6F@%nH8nEXqZwXWaNjK{%d25T_}vD9YxJ>8xI?>8HVL;F0aQe+LDHk^4Va0sLs_c|gbIlj0 zi>3Z;R)zIGG5sZmDHiHT9Hv?1GvBj##|xeH!buB5=qf=^^MlB`Tg2Jz=5={;$Awxc zZ|>d+p%E$ETVSbTfoXrsTX!LLsTS9+ynBw`Z}wVElZWZ6MQg~5yO5>LQZfyxv^1Ox zk8`{2l6(zQ%&z!A!ptbO+FMV^#mYcl2-vfuyGeOCueonraa+aU8=~ZX(;Rrjz!B`JsZC_39#bR*>%qS?i}{M|h>U)Pvcl zWnA%$%L7WQk!H~gl7{&oxATzZVnJ`4w6`U7vMXYPWPXT+lGXl@Lw+tP$ZNg zFs^zs$d3lKv!wnXO=kgARrmE_MWm&>yF)@c1Zku$NQbnvbazQNyu_uiNOyO4cju); zxO9HU|I9bTz>Fg^Fzj>o-fOMj^T@y3cEm$KNdO0-qLR*ro#SuwQ^(L0&k;jFX|5$6 zKZ1~Mgrb(7U;vk(>w1~ibvtdthKJu_!)N8v;L(NChTH5q$RQb3JTftOYYU6q^8n89 z^KP_xu)QzgdJPYE4& zpE;w8cyvWAfMo1e&^8sr*BK4dF#G|xMw(cRJ9swsrfp#}SkuYV(|=^j8dGVaR&pmN z#$Yp5wk%3S0{4xGTKmxbe0PFIYQ!KeTd+U95o86Po@9i^<0SR>BTFk`$7Fu?d^l1h)Z21kK8k}G;CF1mm6QX%X*^fZrAYVp{}OD{iJS`sC&d_`6Cm!jpCCh z0fN+S(@n{Tg5@|X1-=1ggnu~M-&y=XYYF&o0ASI6dCS>0U^Ni5OnFQ4UrkxD`N_TXo-3#guG&XZ z4=&iKv1G!IiEhs717I?;)waQrWoj_nxWS2Nn%n~p>bVH)8v6HC21OEDML6hW`NEEw zTL}YI5feX`3U^x)Q<0^p;XqZH1SCUoDW#lqHkFfdhwS4CwfJ%^WX>sji5o$DQ^HzW z8fgNt({DIRcdbUSo*o#t29ZOLzT9P*s%APurnUEe4f9AmPgL*KX54j5ogPvqnw#R?rf4xmNg;^oz z0dEq`4tkT3grs!SaU}Jt?MBGlavO!;*gA`SU2IuH7spJvR-}&T>TXY4#q0VS0uI2f z-MD+}mQ5^W9nFDP@%mT$2#QJd-Px4z=S!jqO^==@^t}?et*~$nt@u-MJ_D62iW+KC zvCCfme;<*MrtyE*^!~jQSl83)M3qM}-4Ky5)OI)cxyJIrjkZ}y(DW3c$gul*NU4e` zDXcG#B&K!7VL_YZAoCX=%jpNna^LlOYt|*9gQ3oBhz03j;6i6<|6{KtFHW!)KCr^UgC3yJcTKN^04XAB7a$Cq! z@eLS7?Hyvvl@8nItPvKoE00+tN*nlV3_y>neL1Gyj~_7)Pd-fZK;~>z%I0KKQ*J!n z5EkD6N!3Qz(`AG6{(vsmLW|pcb@q+<8yWC{5UXrLFs)+ILKqBU*h$C1*Cy)kVm%L3FYx9iiiMk#i`w17pbz`!^_8+ zzik%WovslwE1;kj?vT0BGF1v{9#?!2pdxInqz`sR-kQcrc>negJMxoKQyNuN=qQuG zV>n5MnZSMZ*Jhj9`&pNqEVXGS87)r;$}~r=yqT$r>z1Il{Jf>$h8Wn`(N7%gEVrUy z3dR=<_eA*`wbTHtFU*w9ubE*oF=etC8_Ki+YW{*9vTw>hob&skV@f)VLah^9ch=6K z$rNq9larW{(eyf=jL@m9w5_Y5M7`z*UW>E#fwpWH@`|*fx`F-#)6iw`z6T6(!^qP& zKJ2`O#Kg$lH$WkgTRk?r>%bH*cX6W~HvKbSyzoEuycSz*sH`fuzuZrqQ%5kk@Qm65PSI&3=SQm=xZ> zRE<;>Bey=QKSX>a`j zYpiHQGO~vDlupJN%3Lo_I-w-N`l>7+eCc#;L(~E4E14|{jtNE=7SANgJNjs8jf^Ka z4f6CY|IR93L8qZrxO(+PT}vV)h7>nT;eejuoAavp0NIr#UniZ1x$j``Ui4Y5=ndTDpS(8 zhdrKR@gG%Z=~$Cxx7{}~Ihfurl~o?a z-U~g8M}!vHckj!E9~IZ#4;7tL;*nw>!21`abhdmc;XfOzEcbm=v_2wL+oAr5#$d=p#LE8P8)bm$D~I>_l5eR~V>7O<-L69%BSlB-uI< zNLs&ANJo_Ir|+vsdC zZq>BSl5MTP@%g^|Wciz%AS!PLq{+?C@6*!y+QL6h$u-~lVqLqLNK5TX2rgowuy-3~ z)=Tzd&sx0(xj`wV!r`oyIC6zL-Je;e#|W!UPF&9sAaYlgOpCFwAT zwSA@YwM$BQo1Dd-pj?C0vL#zs4w{6LE4dHd$}~(x{1-vW1&d3dW3pAwpH$r31j(Y@ z#2?#^AMn)U#18}uB`mdr!?ZFGKfV7`8K_w#v<+ekzQoGH=#Seg*&65O(p0&*pKKDt zuZ7CP?P{Fn6=oj2Ka<_RZ%D61V{tcnfB0Std?P>MlJb3q5ZwD8?GaWguY!JB^N=HI zkT}U2(sCI-aG;Gh8IVm#Vm!)gs7!AG{}tx&o0ONYqpD1~K-~CZdBT&dwolk`PBotW z$MMBIx$+3M@!Ix^=f4VmZ}#DJ)9-OZb)K@)*)%PT+$-?Vb<{=(GNmX0d&$nnf;hL3 zrGp7ydj-Z{pG35*Ehh{no(U_k#}u!o4+5!l$y8A&8OEsTeGZo*0yX?O*}IBniQ zf|=UTdw8MNcFu=m`cs`MM9;PYc&*Wlfr{sj{A*YD2}N9^?%6O+W#sPLbc5;mA<)Um zN#Hgpq(o6_?WmspY%S9Bh}U}VerNQ?_wN(zO(v08T@{QLlP z%k9766E{Su9~$}s?lpBt>RFX+3iYhM-en^iR|=ef_-KQ*){yb6H-P?l>*$y&&K(cAQuG8)l;^5@o|G2ykJW59XX1!N@e*y3lLDjZ)6YVsXgc+4g_ zwA|ZR@nmGS9hd7rwzl2qIBOk-f9| zl`=6+z-zet_M_3A+QIAVZ9Y3UH=XboHoNP(KCyPW!mBq=Ls8>{+w2Y{0R-bSS#9I1 zlbphzV%{?c$RwFMt9{{{sojq1laAb*#nVwswVY7G{yLZ_xWPCy_=jG283#qzeg=qO;^0-jR6=nR&|0vK1riQppo7>r$e}c5vPsJX78Q| zzU#NhF2XZx9Eh8MD2SJ@ToIFHMSnf|a9>st_Tb*S_zezuu0+K|>Uh6#ibBp5uJ2}zy-C8i@t0;8De?wCo&iKDk;R79TIb?5L1gLuY#GPN&t16 zEDrjJP%AAP9XBFQEb*Vg4qir_n2hS~u%FX}Qjy-zq{|U^NCXY5bnn>`7iB$Cjj?%a>Ckv&M7S1Z4xUYolc9yG&G$Alrz0X zIYv#&psP(znL=*msRdwjqJIS@*X_$QV$blEj1$JPI`=H)hMA=z{gp{kB+@R6g#TEr znm4T9f%0~K?cQ1bmQl(p80?^J$DWml1x_EKMai^Z(ho&=G z&e?x`0++Gc$1E#xYO}ssy%H9@RNdvk(TW z&>N&fMDFoHNb4u-QVarp&NbalCN4^|{r_3@f8{gzt@Gh`Iwy>KrnaI(&TE@3p)YN< z*+_u2ea{=`-eBN@6-X&q0- zhbPMK?xw+iRv;^FYt$8RV2*#A+z!rm(5St*7T|4Ph4 zGgk9~0ORr9Rm5Yp3aA2Nmtm;28AS0!nOdQ@1u*e52}$UX0;A9WJ5U&4gmV|(&>l-3 z{sSVb0696uwfocvelbUu?jN~vY`bh&vsRNpl80bt;r=MoeDW=t+8hx3`!)ripve)6 z;vDa=ifXB^!Rq2~`&DxV zd4*fQpdqg6Kap3&Z5X}8(|@GgE_e)7s84GhLDh28I@DI9SfB8J;qS`|DLSX;%oK23 zxO~(8`$j0TTWEqXHI7V%_EhR)`PWu_=4sa;Q-?|~w6p)81wh!k2MWmAE#lLbg4K`} z2^oExl-(0K!+|1{aCc;m(c~1PB_@s@?D_v%aT}6LINp^`$xb9!qZ|**>rYqFnCs!! zyl=_k_ab_4q@6UPL!~#}M3Ey;r(P7QS+t`WdT~4uH$0M@4HRZp?&0>pZFMoEa*6*{ zRdN3F^fk0!vjLb@_mipt_suTEw9L%j+ch@40Zzl$<%L1#{@9M!0RguOk*|u%*LH*V zO#`qdQ7D0QGGpD8G^ndx>KETaQ=HYEO zs%lm&>o=sZe#Q^6AXJgzcIxr3FA%wA+wFU%ynDI4CZ+_4cIgl@9~fFs?C_Gj3mxlE z=B-d&Z=DbB+%rg*CXvx72W6~9tZp23{Z@0>F9}DcjpWuU!;(w=aYK9>?odu4)&n!y z0Uj9hBrLYE1lBQZ4&d`RHrsd{>sTBwf#g#%5z zoNs^O;ZRmJkUzXbt7M<1H8S$e0#Flw|00!XIQ8v1`{LKC@eSJExPo-@Z0AKn7;p6=%`;5_l)4xdc04W zW8#Vif67QgVzUFex784m6X#XcHeSX7-gjysR}J{XYK6oYlrQHq?6*D0D_)?6##P?C zG!&3EJ6O=ZpMO$bwwvzqw&#(cE^ ztnUA^;=y{!zI1eS9Z~AVGD&iwaZvKlwJQmOAOK) z_Gs(aWh=P|2FCaNP&Td@;soBMIEjhD;{N*{Ji2A;*2y4s&E&`pG+?Omblo6% zO9z%11eC?U*@V}^dq&76njxi4Dhn;H9)p-el=MEwD$zL4(nSjuthw4>+Id>mhr!?} z&=!Rahi=L(@C5=nj(IAz1LbIf)erdl3*upk3JGT0eMhZ5Tv|I%%wJQC6MogMNIX#C zM@C7gpIL_2jgN4g89VPy9|U1?Ai+c@KBrti9evI6*Ly-;N-ti0881xLTP>vjy#@b6~-DoDx}lUsE!H$jH`+X|IbBCjrIj-$a~x; zYa#{a$V^5@Mg1LjYeV%1=yDW4rX9-=SEPl;D3K0bZ-#nvDN&*g|pXDy?Y1eMy-Zq`_&9=w&Jgt`qm8qBILGt1q`8$8$D z+A8XJ38Y&-lE?R&sv>64Vh$+TQZ&T-5+yq8Pby(w<4b={Z+uk7_2o;*!(8`ROJ`${ zp^(OXo>HY{k6qk46T-#$Q?kHN-$!wtv;C2U3|+8xTuVMD-848-B5I_1_qK%%eIbm`f;;&r48RTvW;CpuV`R~{`-B`2h~KSNZ_?<_tA2s8?NTnrh6L6S0dafA5jprJT}H^dEJ0`J>pxJT+8?Cmhx zZdN)TEc73S)`3fMA4@&Ab^=473?Z07_ZDe{=hpND*2pT%pc${2 zLH2V!s&TcZkLtLTOfMVLB!OK+w)#(W#Ik7_=GNm`<}UNBL8Hmg_s&(#nx} zEM5k7w@stA4Gp$fYN93wwDA$&&VN^4k8MZ)=V-yQ`i{sgc1$hZT_FcHlUWJhjt9f6u7$SUkcMtBkFipRk;&zFM=b9hQDQ%r8>a7BHv9-VvEM`+4EWvS> zz&z2njvB8J6uBAR`jwyKyZ#i}aJdnV6&lanI`+FD;CnhnNZyoQHZvfztm}`!O$=o39}{HYDw8VYdo^Nt&Bw_IFY-3#+bOCJI;O?WM$ zw9NI)1T*pd{0 zG}hHyUIe#j(jwMiwaBu*qg&bTxy0R8(v_m(S{e(}-IoLiFiG-F=|#3~6~9!9aRWH2 zmfX!z6%gbFp>v((wb`{}L)BBI1)vQ6cznov+EwTEvEL^eJ`u+YU`Pc2BnQhaFzqHR zGIe-HeBbAswraQomsRK7T+=^40>V3xLM&5BkL5`(*K?XJ_yc`ve!!Jsm zk(rwWAmeDd$n<+F<5oTL^2m^k48*sq=v%cK%qvRWI+2_yprT#|-z^;P8>j5!A{xy$ zOzThD>5XBozlTcA8+EoA{4N>pXT+Xk0paIcO4{MuHGv!9f=eo8@rEYDn4ttSze(29 z~Rwt&Vz_oDAJ~{3tGeI9$7cd_+t_0{CR^J9fFV@6pE06AkZ^ z4FN-4{C<{C3h?_o0I>ASikG=_So^I=_ev`JMTXxaAApvBn(=#3_PCmoxvv9Qi+5r# zTVj$(T{N-6-RA(tJ?=NtKObx(a3cmFbJzfhDQC&%a?IX0F+Lv4cZbh6=pR3HbaeEu zHK1w&fG4oI3Lo3kpGv$M_Lq|(sMf`-3*G%sMUlfi(Q|efJmuiw*5T1_IgmDa?pvRE zHKVhTVeHM_iyhY0UX-p|A9{NFA0qd(W9BAimW?5)29DJEW|90|kdf3T=ljd_b3hmJ zgVk2WOj~OLnyJ(A5rGtuAwpmRCC2u=s@eE2Fg<1)$!M2Rdy>n5L9gtN&kECd&)Jvt zY4|N~WMI_-;eWk~SJC5f(@uxR)A1>cAu1?LFu!Na3iZAU zG@71j7P?#SV8<*%K{*wJ;FMvyWXp_=QR|cO;*7OAxkAiO+DFTPTa2g6larE^N~iSY z>OF*iF7?sh3evsX>r!se6qtl<^1+A@`%bi<5O9=_0(q#){!K(t0uF=GA@rd0d*R2E z8ot%W{vV-7F6-_vprZ#uZPk3a)E$Ln)2@YJmL zNbbJNE}e03(|+JmKb`2@51V>}^VW$lBW*k=l9ZW-{jFqqjtfHW(UWGOjS~Dm;p*ARhc> z)_UW2wc4u=p58sr4zs6r2QD~jGrB1Dg1~^{2L=v< zf~g+>@Wneo)6grL!0-VJ$d}8IdjxO10Ddn(I1AK;|1O%uI&9xLylH=ZKL4K}Ddw*E zy#4X+OidY@ZPw@tM=Q)blP*@`Spa{paY~_N=jcA_DFHBXNMJ^|K8U{>BF>(v4q*BPL@G?(dXufJ$u zgtk$ZmDbV9eZ>q$i$zPMXF^3q9S@TEoNft_VpT2sLHXiZm!Q$lF+e7E}S9S zIE&qkyqw|M?cd$JBl00sy)!1$2$_8o_Ray9)6pi0KW6H|KU%RKiAf^{>~>6kJAlzNrQYaFSD=5_*d&tIAbzW4NDhrORO zY)#stuoD}&O)v$Fm_Smhr$5ThXjZ;X_}X$9Es@c=L3Hwg`b+Ktiezj7AW!Kv$l4fr z{)z79k(@Se`&`>UG-_v@(IB-td{n4~xr8nS^;|TVuJ$J@<)RR^x%9k|=TWmMu1X7D z1dkxt9gLU{rMydO@sMT&5Q?7MFj`lv;vJ`DO_6{IybQ{;z-PK7&a??xaY9`mWyYw z8P)SA%kB1R_(Xw?6axt^6H>{n7i*%@EclS z_f1uP*6iq2DTAALJiIh}S<8Ov5Ps>pg_!`j8p{MwQBsp96ybF=A$? zu-+r~2LBlV_jR2{3Gf#C+Vc{#Z~1)If%_;T6p0ylcxbtPKkjzZ?+f6rjU63NVM~Y3 zfKd|YTL6jT31IO8+{_=md{0f>+}!HSc$#w-qs`e3s(A+hHyP=>uaVK(f=wx@H`^|B ziyC8`XL<<%KP7-wbG@9=!k}ltkB{o|BLp0J{zxkq#Tg2yC)Kg7^)cQqpI z^ftHdu(v#Fi9ZzJQquam{3=)xhg<$3J#gMxpwx7>`^`?Mq@kj^sbfMbvURm=e{ei5 zC5)JQzd<9FmLOs}e=5KpZNw~HgTKa(g;t`41j8D$DE0zWFz=yVIPUYx6*ctC{&oHl z{HZziswtPeRpu9pYN?9s;47X-+++kMRX+Is+NxtN;Pxm+LN=T~?lxk~-XVh}TznOJ__yQfMr?DJphLFB2PS^2v&cx*NP%!t za%=S26ur{$C+-*bHwfawh&b9QM$r&;W{N?nxs@)v^+E|GLGXA=y@*XPojvp#UTD?~H_sqfE*6QLtkUHNf^gAm2w+8{C%#MrW zj`6E29sp?_2DrXoHtg@+DVl!<>>Ijo{jO*_-FMx1TH2$|Yu{dR;pV(Snb%2hNh)6n z*C`tZl~?oh|Lw(5jx#6Pcpi6)16|^XU2v{@!W8N0%Q;d*S@!qs129@&9f0VThqV=u z`{>>gyCH9XY_m```b6M>EITNG0WBS!A9-A))JXLp*fs57cHtvvM<{?wQ>BcEh72l1 zpt@{)5dZR9W}Zyl=G?Tk5^brp3DuXSeTX zPpT4Rm<5YZCZ?K*;j8KP{ zr{~tEVHTu~FYa$OE%pe@7cfDW8-THfv!!xST}DmF2}5(A_-R|&*T3ohJs=q7cw#iR zX;dm%+C3BMPt*DHv1M`l>X17Jx5f#kRRql5I=AQtQs&Gor4wILG7{asvuw_;oP$+u zRKUc0=Z?d?s=c_;0^QNs1;OZbI;VqiDPC27DznEaO?$jNH%P~?0+E~enb%5fmn)v zQgNXUn2`603B?W|=mM10FFX^Xx2q{JZcnpJI%V?_6KmRwFNf0+hUbO%b+~Yl*)l_S z5`cF>tEe%W8l03V;*~NKj?8Y@6u1vf(o-c`u9-r`1mz}$C86LY#naOx!KsiNm<@X9 z-AHmLP-A)t1ewAb(>xpQp6yt!5euLQliBmM1rmE(oFP+1Y@;ep*yEgpBph!=uq%C7 z*qe4FCL}d14tPQfB2Rc=cyK{z3I~lrG1Sh}QZlyH$S7jsH=;Pk^ zBUxM`eTuowOWU013r>(adPVNiIz~F=AWSNF?UakHSnpsbVEq8@ZUhswj%(dlZhzEr z6p7EqScEK}na>2=Vw8cuhsQ?CdKaSaiN5gjFde(%_~o3vU+h%EcJCl2#p8vH`&O7( z0k(T)(c{4)4bnTtz_wsXPf@{eCisiWD!DG5{X6qssBas+43S;eCT~5(osJzzjIs9J z8$^nEVuUEzc=zoy8xtF1d*jL%E_+jP-k2S{_3*F{{e;V4^fkL)K!)i+?!Ngp%VUq| zpPA4&e+m}*6!b|w>0i4N;MIxvFmdciv8W|V7b@9E-(zgWl_V7A`xEX&4? zXK6*AJTQ>+TzO;ZA6BWO9735zsl57YLJ;%DNG%SDU)KxxY!O{ee@-fYyut2=(b`jC zIi!ANc4MC*+R_@Z~+j&7Ap>if^(#$DYY{_rdKzF+G=$z@jhogVsd(-7AfU^g7m z2b2WZ1}=o(SAjJ-m*_#P>1;mGyd~|;EX26#THQM8?x4HEFlN<@toyj zp9BP4SZsS`}s^X zbtPqTfld){SC&hlgme=sV#43Gcbq;7cfQf>stX^YSzC|dJZ7FmT->OfKa1#CQVqog z%o;bId^aC>6OP&lP(OzWuriHs=+?fHxT8$c%S8?f-q;wcQQZe(to@{r)!6AkoP?^vaPc zk zp$g$LP;nIJ(h=H_vIa)Pl#IWo=Kz@$$knfCAKH+0Zlo!NBUiK45y&c+q0~q1h+jgq zIzlu{tWt&HEEE%X3H0H}A`|i8=eWLNN&icQGr{CzcL=iqBvgewjo?aywe%BVK9)AG zmiC5O=Sy~*bXJO9YZ*#!tEkR&d9D4u^!?J(T+0aCij{=ah!9Up+B(pgS7immFF z&_r7&BDoL8Lb={v_^sIR&u3r!LI(HKG<(i%qV>BeSnDwu0|ydXA$CnFSQ=;bg)f2% z5h4wEUz2wZcsR28GU~G+ecveDWi1%3vLePDXcmfJAoG zF3q_mRGgLaZuq3E*A5>QjCCFr%%F#hE#QUXf)|FZ!5buaZ`6?xl(C%$yW zVd!PV)lpBNvC$!LIx)O>{C95#RO}Cv(HZ2x;e*5XP$2{GCJJ{z5`Nk2d;aIxRQ-Fn zx-(MjiHhQG6A|{;Fbud+sRo}o7m@4wp6Y6rU*62Z&2{cy-0J02(q?pA(pwgW%psc$ z#NH};+zi40$oNRfW*;a~mmm1%@Vz?}#mF`|hgYIVH0tt;jJkRFBi~s=d`0$^Ij9(u%nLN7r%1+-}1+x*+gFT2W_WRh8b*pp?n$}d+j47ZyI45i`e zT0wYha4)CXVsiJhU_cIG(8?2C(GvAQj;guw-PaDTLSW?Cgh8cn+}OJZLeQZ+L(xqk zI&`3)e%^5d*Syk?s&Fv4f9rdGi}|?;6l$yY$u_~ThiY|F&@7*LCIxNUN3eOb0PU4Ad+eekTTQl{SM zdCly$>cKD&L$)&%NnlUOhOyH5sL{A)?L9lbpp?6j^Ze(lHv+#fVcfV7>IRIrY+J|) z{voa|kj*vk{9k*xAE!4g6rIkJDOo~(2oOAtg^4|Ft)FN6+$?>FeU}7U1;C(g_MMMT z6&FV(6?UE(`B$s!MVqa_EO&ZoSvBiN0f8X^;Ru~gxgSZO-CH~NXG(ZYdW^7Da>t@qx^?eYdP@*Pbc33P1W_uoO(TgxW)%xwQFA5)cX)REviBj)_V zKT%nE!k*Y-rEzrnz>q)+kknukd_j{ya>lxmuuEnfoiei25XYsv0X3_TihV|)8bp*w;otg?uBDWixnN^L5 zxQk^jE?F>7T?XDv2R6g1=b3z;nq~YnN+fz2pS@Y(cZGFkoOK1YkX!$%G7yv7->+)I z5XW$~>-lk9q0Iko6wMxSg9;)HR%oc0~p`1|8vrwPn5kH^ynrVy(B?t>~5;n!}|uS$9V z7W5Lhm8h{N&#z`b&zrmA>hjOixW%|)aot7;T78r@8J!Y3>j@OUeC+?}6PabMi`;gg zTq1J9INW!e&I1gs0zotu31f6rVTkN>(uCg&?2U->$hqis5;tD+P~%4=xU-H|UnNqp zaqEhXaljSUr@wss))j7ErvT*6zv6!?*#t6kF!CMiFw+j@MWA~BPx9T<)59XE25}?; zTb6!8I-Wj=p8s$5Ju;sTTj~5kyFm!n7b zCt8I_M9SyM&T7XEOZ})|4d1dsaoG}!ZyyX&u_#a_A(Qbau9PCIqT`-z>#SGWbnFI7 zw9J}Xq3+`EiBd={51S@Q-;l|~K^A$W3mueL@psMkgh`^hJVVqu7)W5pA)s>MRuvtM zqq{kyz|2}_lo8y--ao)WMKz1HJY{ARanXU$+EM>_{d-~0w|N=~-s0xf(Z@6EZaU>2 zCgFe(XWvdBlnDP8A$;G9)xa-AFFH#JOA{i1fLEdgw+nvV}J0-O9IzDKgfY!LM;?-)e>pC3IR%k@bIl)f>-gJc6c5#cRU z5+FnpC}&iA2+|676k5c1h5`z> z8E$T`HWH!0@FL4jkyo)>3qOQX=g+CuwGHx+?&tjpZXTZAe=A0Tqpj9UsC9&2ekYIL zQEpWn6Bss01v7NOc;y(EG zcZ%;?&W;aMOK6p;5fkNmdS}L~xq&Y6RCy&?Z@>X?lSEffPKR zq>6ONrzk8|JrA&#a`tBSQ=*>)COmK{eQ5z?Rvt%>9Di%hg(D5g^0+i4=49fovD9sm zRLc`kvhDKZ>bgvuuvZR*tH3@kx(ZBk)4>3p74TpMfFghwM}x87Hasva;4Da1JclBI zw0w%5y6&6dbi3LERRH8cKcOTy>U(?xpXK;F-w4G*1KQP6QB4ig9I~lIm4+B194o$U z1zY?1?YP>VIF+2P-i}m=+-0{_oz6d;yjYyEtmcAi(~ zIH#op3pad%w-{gTdVS{bbz3`)tSaG5>3CT1eOvi70Cc{dVqa%oJ8!eSV(k6AOe{Me z-)HS(4O{^E#Wy6KK*UMR^B$VfZr+hV!uLg$m;-`3gV*PiMKNO4U2Ra|^m-2qhG188 z+z?N6{OvA3JGaX_fW<@<6Ma68vIB;uN*BWFAzbsfZ7yvlBhYJtqR%SKsgCiQ{#RcL zDDncaxmb5X@T~F~R-LHM5~OUUm9t!%DCE%QsYCRB^YQ)y)UiH(Vi>X`pC}_vAW(yY-A1 zGJ@EPYu;w9j(E^iPw2K*?kGch$TC zok+-|{Yt4JY&idV0=;d2o^X}S@wa_A`H)$0`gGEMDm+1h)?=&Ch!3~^`f>}~_j}0( zvaiHIU>wRNcC99M{aSOo*A=gK3*O&v6F%yndP97WXj846F!r0VO3qVKzMh9FvRt$AQAd)NIeo{&lcaB9~;X5ha?LQVe_Xb1v60Rcz|H&&K)fvjZTCubo#t%8u#J zk@(fTNrs%#{NiaF=J&kd7k#cdwcNXMbf?MXyK!RdW9wIpFHTIxh#8Mqhxho%7SiWV zJs!5hA3Rbj-xd$*T}XEpRIJj{J2o#ByuLpac6M{A@|qwAWbh(hG2uf)KS-9o+p9#H zTkllKut;9lV~-JY>!v8WJ9TaL)xC-O<%|sZNc{`O`xQ4XS3;dIJW(}%Tb3i-<_fMh zUNVhbVTLDZKK#d0)@%=qJL)U5TRd0eO?||{BFXMGT3p!JzG70^gjMn=s-#mh5+JuZI_HPQi}kJ^j0Dd~ z9xfsGdT#BF`*Ow;M=BE7D{RS0;xJk+Aq|96m(;umenQt=5}}0;DbYVgGW8J8Da2yV zAFpLc++xXhav8+r>r8}bETsm{;H1*JBRiP6deY*l7k)FVOIP3|6{^l*Gyk=dkN$Y^ zWTSzpcXW|?{ygH*xKcj`xX{Hhf13P2dW(ksp~_{2S6W)S5*$J?1eM1PXtICxt+(9( zER~zxA*k+IVY-Zy0P21xR_x#27OXSxUleV5@peJFpemt}(|j!g-3XHsQlQ6P;i87E z@ykpb7llj_hwbgZ(w^^bm|w8iQ@&U)(oiDB6DHp_?l;J%6f@Z0T*M*MYP~kckjPYa z<0vXXn*BEjBe$-<+EheJID3LyfC!UWiZ>P78Ssw3z9%G-;NS9p1DJ|9TF%z`{?`US zq&E8F{&dk36&+J$3;Yf;G6F9DN7PqEW!bdhekw>xcStGSNS7krymWV$bc4zZ(%mWD z-Q6G{-Hmj2=N|sO_S&9#pe~6C^z##4BkQS!$=o4Bmc4_JsgpKGT>&Dbr- z6E^F)=J-I!6Yb2GTo1NXO_#BSB@rL7py3c-EK=jiA2c7*R5N(^e{iz<>!yW4uxo_q zrp~sOd+~S>{c?{KyJ5L3b~BtQ!&7Nijd;r)U=Qj$>r(s4QkAsusA$8oUZYkgF|=n* zJ^akf7dh%djZI<+`o>H?DN9C0-o(a5;dJt&IrPStdQg`4%afG{ENl4ONG zJECkX8BTtkcf#6^ZRe_N0;c?A*&&LAnc^0_u|0>g!i7cQe{&h?wY}5|kY#y(O$Q+z zw+%{-_{6{TnKrdu+afH!_VC#u8TT5oIncsQOVuAZ(pxlY_=mtKcbh`YU}tWWv=$q! zWTW+E>d12C>#wI2&4$w(Ml9vZNr#HrYbpF3FIE2Vf06pt5KswhlAG7S!WUvaCyswe zhy2y5Pv6}lD6k)asP7B>4`X#u?2uZ}FVRW5`r;AccL|f`2{l&7d(*Rq%*NK^#BJ7q zIVbI`t-@n%%7X~YgXm@wBmzbIixtdpNpFE8Nn_vOspwY69du9^Vhn zd$(MXxFjbU?1r_iwD}0;jijhgUal~18`6w*czJngH9H3G?k3KL^CMm$`gjkp`D>P!}_Yr11h_xoJ zQ^-q*E<#vi`4w9qszTqI;dfU5&-k6mtubNbu%TlWc^V7@dHm4wso?Jkj|=^{Av_%CaWRv6|LqJkXfjQ;mc4^ra~CQAGP< zB=ed*mvPG;Ct5K&L@tCP=R^A7wBM{`L-!QqQ$}&lf-Tnkxy~HkB&GPw+g}ecp{ zrv__eO*$vdh_^y;iqV)d3)|PaZhio53IZ_QYi1A9lZUasvxh z;Di(q8>WCOez>xI#sS&6Ox~xswsWSSp+>Dgz0!lxZDYn?gP2crK(T= zSe6*K_W@V>?QZ(k?RGlcYFXRq%nP|OktcT=DEB}O-c5^9PhlDr{+kg)MsWTg(c>B~c`K$Ybv@a3 z)h^yW{;?gmqZpB25xd8ZiGG`fAUOe}gTCo@S-!1NxJ~SV_VuDXz|R;#fhGOM)KKgx zK>^!duvGGBhJ-89Y<_;*tYDF^980MBuaN@XJNu`Y1(h~cm1I%766>OYG}LD*2=Kc(p8I%N-4i+tPg|%s7t5MzA z86DF(VcTh2xzj!eC@MXUuva|QQalInuKjBJ4|f=Y8jX+fLu5JK=X}{{($XO-l_P=u z5-%mC01a>b4j~vhzu8l5lT=m3&C1GBgRpXN^llA#&BpmnCqWvBL>_Ua?0&b8KZRkN z`dN)`D>i{5rM4qT7cN6}U!tO+;X0q^&YP4LS6I4XJPg*W;8=z19F#XoDfj^-ux1Zu+c_W(8_}i@WKjjiqdcrLBIK?lj+E7gFHH5(l>N4mVUBYPJj=x1aQhuDm z_gtZ03NbkWii3WeSq!{qElTfpw`fDWr%w^*crvCDhOW`9VzG>9HlspUW`b(azRznq z2J!z0JRsOhi?bo%P3`J;ijvCPm7Y^#2rc_GC9f!BDzV8+TD<1L=Bh{m)rs8OfX~sQ z>e{6rxE^i&byk#b5xBQOJ=Kr?bC*SFaa+`{W{co4Z$cqQVB~!3^1YuXg|_A;QL)tX z1oWLBi@&As*L}wMtUWioAXjpYQaIXJd&MjUI5@bM+R&E)rZ1d$drXW3mNa_E{^msg zY2D`m^#vP$NjO~bx>hJqV(wk#VQf8C{DYg2l9W;<_X-eS@bz&x&W9Lnprg1`$8q0rkff z|3e}|^C?+(Hg;ed>sb#wPe|rW7g`qJ-vY}ugp>#JEx5xhbY0uI(h(kqX0(fReo2+^ zv_+bAOvEyyF4Woln_nGm#AK|Qo~;Y~E^8(j6ZEh{K^VU2#>_zuT_x0g=CK(_jdtHx z&GHg_y1@iOnzQcpa5g^H&hBm)UteF(yNPrYPlKQLF2`FXb<4%JrpN~iZRzRv4e9GS zxVqhVU0baJFU-n|XW09o&pTu}?frY7H3abc8tgg}l{f+&is&H-J;RD1gWFRHWF5T0BG4-4r?5d&MdlkOif zH?0elEfD2TVd>Fga)gT_enUE)A^D@>nchEXf2eja$^MJaRhY8itFQ^bI8n~(7^%W( z2ttE?S0bAa7e-i(-=ivboC z6;;o#3K70@8I9FYW|mY#9BZM<#>QT+Br+nhORW4@YM6lx9YFh|Ry>V}t)!q6`J0Qo z$-w%P2Hoh}FGFyuVmd-KJCfMLmo5!~$%@_E=V;bc|1hS5pUuz3DXR{@X7w4bj~s^S zmT<^yNUC`hdK)QM9-PzYfo8^nei|5Nc79mOq)AyI^*L$+P|w!2&-3-|Dx9FW+z4eW zP^oTIszb3JPDvioN!$-u{%gG*vdvuENd?+sP`}yLA5C@JCHU|L zS0bBfLQ0C!@iM>XHm}b}({ZzJ%umi`S6|X6O? z1U~}y>5GdG*(>bGPHXJ=%q03hKbw@kLm|sCl6u~XWjA<(fxWCV*YBXnm@_`_ejPXX z5s^4GTV^ZnAiN`k&~macmaNulsj{b3d4&O|A+lz#6a2|Es88Vy9OzCX!J5p>@U2*l?TI?tF>smJy=e zg5`Wf)n+KD*;IA02~m12!Yv=;B~n4a>a~uz*>N88mPx+Vu0cnu$Yfu>$u@Ls?6A1A z@wjBHjw#ovs%-NR(rvluxm0uJG`qKZ;1Vsv-x3lYTI$4x5hrf_!T(j>}#fEL?nlPmPEofC53OVq>q8%eMXd^t*OtnrjwzmW(fZA<5j6n zQ*GvBar~13Ln2d@?Qt5v^vK`EHFItcVuad@>y;rBj#yq1CPXqckk1azZz?PfRQ@|M z#&;;|TRh^%m6ydNWY#gdl+;6Lak=mV6Ar8}HHg#7@_$7$tBO2&;z*a0-4pOgEFr-v zqM)r)F*@3Tk0TkqrwQjnWSmR;WRaX=+20MqP(&{wrb6o6%VMTXMBmwU^1XV;l)}Zm z=ze8e-IBuGX*_gdIsHs(8fbBug~(V*#kLXNFg9KMRIh))K%=?!qu_p&Ga9}A;mBw5 zi{e*rL&ENr-bq>tS;NPWO(x0jx=&`K`2HE;2odS8AGk?*s#akb>8APjPGL#PW}Yv$ zXJK>REZ%t;JIZj(S&O8x1F0{RefyTnYwK_G zv2FZqPpTPK<2JSpH1J85Y)l9^iDgu;DQU?RY9luP&SMv#ksauG2qv0OH;CHm3f*}BQ(EUSpf;N7ss!r3_!fktjws*2Uy&VaER2`Rf zhY-b!KE9t4SeKpgCVyMEuY+ji8Y{^k#gM_@kBjJ7#8*?u31b8}5+D?E6YH$JH;#QiR(&#oSw7n$c!Q)$VpN6$>Nu8ug? z>l|n9MWe;$SAD0Zg4OUI=9NY=SBb~fW6cUvi;tGNj|J~AL+~rhz~g&R=;J==%^MvM zhlK9&fgm8n+3z#d{%9lLBt#?l!JMtEyXkf`yjz^u=>W~;;IG6l^Sbr;a>vY1(LIU8 zWwqbj@2>%_X3GwgsQvnkD^|26`%sYizcn#JeA+ zGwg`?n3=yxX>b*X!w>r9^BbC+pCLnj9;-?;pzxIT%O}^F8F-MFnCvr7R(;1|jEO3D z3}MMEoICwP5w52mb-nC`O2a_Ef5f;q8@B|B zjQcMK5^2RDR>3t`|R(sg<&ddybMglkIPP9;HB|a;esj|3Sh{vb^pZ& zLpSl2YC=%>9Px$&>us)X%AEO^Bofk?=IdfhyP(iZ;VkAkyvKwJ08*@i=-c6m;ZjqW{b2fu7>wQ1z_sy%8HLE3JU-JK)14LM9qi# z1gD zOTOM-(4XVbZ>WwEtl0$(!JyNPgXov@2Xuz`fIzBIp@aq=&5J>H3+1M$Y%5zOjhsO( z>Un#X1zT!pKqmFNxa4kb1)E#3BV$mZ zW-`8b@O*x}KJ{vQZ|(;ETgJHprTkNSh;)@ypF(> zzED^9AJXKy13i033{0hRYeJ|WN+ESw2uk5tg0kPcI6FcsoALoXOm&G%t39%GCUDJN zA2k0ORApS@D4eRas^$O#++BZttN%;0Q#dJxP)@ahK3k9)2|j*Dk z(^**o!9TEil{Xq1eb_B)T0X8`tn@)|x|urkY`;&vD5AX#f@2Oo*BA4o@=uru@jBeJ zCOCI^#J4arZ=+Yk|!5#YVD(77|6xysmYRhu_6Qk)lD5l9;KCRP^E3B6ir+h2CS z4;`~SVyeeuO+-#pRlf;EV35Ik%jK+JlKdkk%8_U2Wsn<>Z~fFaQ5i9^a%nbdLVr=f z+-;YV8xRKqQIM^co7Wz#%tA8q>f%8)E)OrF5i5Q%P5`S85;A3>;g4P@8EFCmp~>~* zHF`{LyUS>pZ^YQ^W|Rm2!heW{QR0JBAc0aP=_@dp)fB1XzsKLI==#;*db-x^F0H#_ z;(a;T7PO!1dRQ~#dNgO+;B##QjF#!0mEGKnpN_rb0B@qJ%LFj>0lKnp zPY-Sa&$lDzK0rGO3P{BS?-XjS7kYi3qMtqcoDs?3AEy6S)_>b&owKSf$y&r5v-h1C zjy`te@sj!x3cYGK3yqXI{-ml{FI~?jq%k}9+L^ zF(03268Yb#@x>(9QL7kUg$KT!yX&)PpahfNJW^sIjI_s??@~V6rUz69LAyjxh(z%m zVSG>uRrjcSPc|*iAxwl^tMO5a*Ah;1{I!KA9YjUGo zgOefyq53CND%wv+9@y8Vz$+R{7hgdiEF@4zDdJjdyTsbps?QD857=*vk))H$m@MR{ zS}FNCo-{m+ax~WvT~VPxZ*HyDff3O6AAvrMC=~t!k5b4A9{I-%NRnvogxz#Rkk^c9 z7ClSj$Ggx=D9hMvyWUHR%uVl1+we^{SKD2Y?$*omadV&~82XsZdH$k(zPPwJ>Ct@< z(ed8>2re72?qShXvgM}70s@b_at<4R(4lCcBK&Eo?cU{Jw&H(Y$A3OgdCyomSl3G~ zBrh3|k*J>EP17HbeqQ?@axomvX)?y+r&oQ5NpWz#vT z4b*eQ4IGJegc#ksM6J~RTD;<4Y&!npefTALlC!llIQ{XxA=1H?*z=5!_|<7RTdfmG zUZ;Q#A7^hqTD}ErZr?imAT3WqvWepT3Pe5RTSJWH?$$NsjQ)N`O)kX7T7gdAO^H7o zTwh|QxIKx9`Tq$8|7&E_$NTWu$wP*WU3-Y;Z%N2)sE#uy?XPrTj-ZgU4aD_s4o@Kc zJ=()sWJgVJ_wW#;Mpf0z6do*3<7K)d&66^qiL!Cn`^uzhYb7O-#*hzSF!SIrDEp== zL=h}og^Zb%%(Z&)#u>A4eS#jV(!>uQEY-!=g*ST*a)8g2t(KCZMjIuWv$K1sZ)5~b zy*>ck)rKKgnD0kp{*MoT6JPugJ>>Dmm4bP`zvQNxBqHI>iS35 zVw(eRy610_XBTfjl862Zk;AoCt4@{{E38$Ur8+B0wHrFaxoMBk=d`*hsRVKIs2PHsPrHsu1_vE<3&j|Zd-8-1d(;yPX1${Rb50|&%U&MH zd3A6LcI1(jI?VQu9_sEov7|cf{n-=LIVbBs9ZL6?E724fRpn3D40vKGmGreolaC+k zvbIcbXAOV#Z`ym_4(h(m^xg@iO4}%@3;XLO=+O65!3S3GGI3;dVF4rqdZ$bCu$gvb z>3CA%q~%~W-w*ThT}~?U@qOxUaM&i7`!|`oK%XO01IzZ=Hf=<@+I(e!K&~Cio{^eG zKe6lhxB}kygto&|I5?R9?A^>ta4#n7qrb%vT{nHr`jz9TXaskpzkOxRS6h|L-+`^8 zmaV5waUrDhR8n?c@q7p4)!>U&6jWjF$RtIa`Bm_$N{RE`YgOhi8lS&QXEMy72L5e+ z0x5*26)b1BuL~TLz|+L~xWkGA*DZYN4kN+q2+Z@*v%jC`SLGkQkB;}X&%7Acl^#_> zD#g{_gBCfjrUjT5dk0&2cWccP_p)OoYKyD=WJqV%&$}41KjuZ5?5CH zXIeXkkKT{hZlvxW#+0UY%H+TYo!;6Qyh_^?mgR82UkcpdkruDN#|mc4hR`%}Udq!B z|3#03qG9pyfbT_nvfpV`auSY)p^pF!pba7a-PDvEvrnG=VY3mhBz_}3vESshumo2> zvfMKUF)N@Ds;MTy0n|uUX)Scw#C>ZeKOu;Q$So}`fDgnPjM_hQA+Z)pbJIxo4lMY6kT15c&%S3qsicH4Ab?I0Wwd-=NbWs z)5?aj@YYs=u-5DM1+e5egkzEpAf$sDbj%AlG%^;;$;yg)NB=@OowpQRH5Is5Z@nzB zeWd_X!=580i*x9_cCz&la^<1gmUU^Cz^VP zNX0YhYfk^X7R%A11UO+zqWZ;39RXLE6i@Uk|U!IAHuvqU0o$UI(f3k-4;C_AMIkW6}EK}MwP0Ia-Fxa9d==gpEiFmg5Yk^XCtu?@z zVx)T9$Tw_`Wp>msN`&OU-Hm^|I-L6o?tx8+ox)gjX>z8LG^A^Wuw*B79wd`NB=ge_A9& zLQJHxjIr|-%XKbHsoL5pTz0S595+Fp`84{^UnuX5?(WZnz1bl&@!)IOtvp^=?Js-m zlHjeb`5}SA=Cj*H3<2414>v5b&Cdb}f7WryMm5fx+U{-TB{O2yHsf_c&weHx@o<7q)lWm9tFaMIj#4G$eR%K9IPM5E0@m2IA9x%+OW^byZw%0VIcani6TuktWdTA+n zuM7k~eLL$$cxdmdAhx%Qsq<%1GE z6@#+5h^;LX*dqa4mBmZ->Rh&4Ttk)gSBFbdy1FEJvgunu^;?75vE06#jys%g+BclK z=(6(Y;+c+3lH~xz2%{aoW7pfmks6s?-c9+^MPwf3y`I5jVTL1tpQ`DDr59^&uTqDN zPMZ-&_|B10`A+_OzPk2Cr6~~!o=j6Eiym5@5|JLP{Ihwk_gg6?@%-9miM2cvHdiI{ z(LEoUTcJbskDX$vNv4QoM8na7PPib*ztCE0bL)IzudhWLU5L~QmshiW$i=}{my_u! zo$1phTWOnvZ=mfH{&oF(*%#r?kJJHDdS2SsST#_S0foAKLY&61C`(4N45w4Cbf9aX z?CndU47j+w`Ua}49xP%#Gu~Wtyw_?y9;wikP!ojl{+y8oEaFvm6h$^&l4-ta+clS` zi-5{S6}TbwYH7K!UH+RVa7pttXZu8{ovKaE?qgKTLeS@QyEx(`YbXp-NeE@30KFn;wZ~3 zM1LXf$2-Bdd~RznO)keeqg!N~x%HmF<$!0uIe-n6XkiZ5Ynw4IGLGClQ;@7;m!;Iii04KMd zcDyvDlz=X2{9v@K=^vx2Y&I|!D$x4vH;x(juIs7ej912CXMoK@Oq^;|#SQ-Li3!Dh zN^DO7@Q`{pT+@-k-P?sg2uIdEFA~7pv+nm5z7fI-uD}yk<|K#65e$oQH>3A*1u0@2B2l_F@UFhNaewb)d+_CM)m@_}o4} zAql}}$NW$1A#ha@e!Bg9IfDKL4Z&B^_dh8~p`1U)4n&?e`mK+Lw(D-nfE5||METw~ zU}q)iw>lhgoGVsb5;vh!0Z?;Vr{;=a`o8Qq7q^8EUF^>kB~ObUf~X2az=MrW2{WF ztZV)Jw%nT1CS&uGteFr|c!?aXdFJ&n;c96$)y~Z&jIyH-?jP3XI`Oi`Og6`uLuuCg zD{NVXNUd?HQoCpzD~qTGcW6CBP}mdK;1hbWH613}hT7_I&gzR>Oj{4PEamJUOZdqp z(B#xUX693;Tk*(HCU4%Yk~T{M!Z2OlD-)r`zMx>112^ zot+JkN|Sy9u94@HKsnE!Ky38lwYJ~+_v>~(-Rm&yuo;~B0;O}c#{ZRI-+HEvjiG;M zmv~3g$P$vlk;`gDthUJK$PP28-Q-+hd#ody%F_cM32yzb^{t@!YHX=rvAPE3T3?+^zR5LPV*u_C+2xwXYZw`WeSWkUq zx)SWOd~e}Vj;L@fsd1VYr6vbB5VJ9qbT;$%pLnp_QX*MBokr!$eKUY%Mo zkjsJcU1|R#8UB#)lIdu>$2H|5wcrZ}D=!%MFFnEJ_V4^bgjIwbFvC6Ura#f#3Z=a$ zYe0T2?aIRzC$I~muG}rOZJx!_y(E7AJNei3Fh=r7CIkcqYuZuU>b|&Qgml zyVE7f_0H%{oxg-*Y0%J1P1o^yTpcjL9)ejML^25NPvJ{h5~~ODgDL(}eC_`Osm#ZC z%g#hWJvAi{Eog%^?L`R3zF#>?&g%;r!p%g@FybNa`Ak2my_CdiZ7~$!l*GFbt3GPV{QOt-t}V9ZB;O54g`m!o$x2b83IG z`UPk}Ka$ceg7An?te;t8;b%v@$E3nBD)(&ZkMy=}j~qY?@dlaXrX38*H_S{eSk`no zMy_160bKn2L$kAZSHzyLw+Yv+<{D!Gfd&j#<=Od_Ip3<(8u6fLPWlk|En!^_#qvdP z#@$~XuFp>uor|gryV+tGBYdWe-Wu4H`Y(He28yQD=3Vl{8$gdqNkxSwq^Hg(1P|H8 zQZ3UewS^mVdykJF)~cIBt&5+h-uC=-f77ZPUd?B}@#hdpwMNLNQj*^IRfe*J@E~;B zb%)9d?5MjM8_~|!lM`s!enyvnQ)TdeJ0||t0Qg5179OUUW^ZJC5#HS5u)+jF)dy4N ze>NcY2y=ZMTwINfO*F%Qf5*yZGH{|Pk5I&qU`orBI4K^{g4I*0_8L03$(hV*n8v^i zRU9vHG{XJ;&Myq5vVjPUWch6jv64gT>X>%WT-_2NW{Wi}p~gB}thdV&piE3j`JI*J zyTCArP*Htx1l*SqG5crpmSyCAR_+$ARo&=@NhIpr%*^erUiWzT@3;JLb<~(!IMC@$ zE4B-qeX7FuJg4f37yR8a3*$9JJPQEUnl}M1nJ6Z&T`31X2Bg~u2ERO_nU7`$1TIDL zO(Zj2L{u-wK$uF=xSLoTm zD}@3$)O9Z(sGj@Jfr}43#nV);U8ELep@W-av|f@zof-;^@%eYkm2+Ajbh6oA-jni@ z`u%gAh=i~?mqBUq`gj~7)wAO(ZEIe|$Y0U?&2r}Id;~!l*Jt<+psz?%{kIPwG`!hn zH#Sax+f|;b%rF**B5x$J@@yk3tB@hDGgu|0%{*iqJo`dTH zv4d)HB4p{wZSdj7=*3mrSMC9&R)A5!#7JsqK&?ya`}I9(MW*B;-YkSo>+7jK1IeGk z%MI~*4?JX^e2lof(>zgpM3u6}?1t?xg+BMzKi9bQa{^F2L&hq;HCT{%Sn{fnYS~Qg zH^g=?hq}GR(0GOI|5sWra@dG^1L=R$(6|OC-9JXX@1W7UlR0IAB&oh}zhq@**$|Dq z5XCaT%x**_a%<~}{mR+K)2EBG_wRrP<$OQGeL$r8aiu>JmN!RNk+`xsM*8RR{Kka+)?sP(?^S2c##`U}%3UdOW)zW2v%=@epN%>4ZP zrn;(SsLNww_7%k{BFC|#Rpyvr|98pc+;mu$DX0tA-1&L3W6r~Y>E47jdvWe|aA+)( z9a8XVLNVH<$lS$G1wWZH7z`ldW*kl(ki|1E!wWU-X012>D(#r7C=CXA5R`Ri@O%;Z zIwi5p-AuB@k7+&sZo#=X{JT&{#UrDZ&1}Y?L?+0jw~fcB;px1$7p@PbRhu@${%3!v z8BsoVN{bC>9SwSl5Bir0DR@-zgIP71kb+_-ha*Hf?ELWptYl7G8;IqRz`CI!V6iIC z(>(sGcReNl-zU4d!3(o?06EUUulocgxyvBwtfWu#IpUU0;|pZ*FMB#A0X^X16H`+| zz?nAnmP|$iC!R@r3-x&w^#+dQiCG`-4DNYX&~Cl=oqYq5>2OLxaJ$cCyidOv2y@vz zKHdh41-6=kq@hIMK9BSWR%BdH#@AoWz1`TUw#GRlM=Bv(dwY8ZE6Xh~`hPr*Tl(7D z+cRMXKM;F9l0oZBJ4^-QDUh+TN4~;G2t^Hw1hWCEovG}fDnZaGRvzRvO9$)Hk(_{UgxclBV~Cx`_LN`?t&~L# z8An2fWrZ=O*#VpCnc-`tBF`8<)5y&r2P6g+?M*5pI)hQoXOF6`oA+gtx|jj(3Y0V- zC22rD=ukm4Ro05sk98jS)$trDt$J6mC%?B>GSJgi;+5yX^nC-~7}?&1>8pKZTF=9g zR)4hDeYN0_UTu52OosLwP2%4^)%N9yWv#9k*Ok8)lIc( z4IWn@?E`B7Ps43@X2f5p#HdERRBkPWq1~Vm87DGT#Avy&ysU#l%+n2KKk&D=qrQI6 z?HEvcWTWH0+jDpS(7p}8S0Ex?_Sz;U>g&M!TA^fceZ+sT*uchE$^I7vV#-S@lq$_u znKCWZ*@{W_hZ1sfdF@U9Tt8F^akqIJXqG51M`n%%(;`wV{&5kC25(N0<5x}(HKw44 z+vOU&hGcdzGk#*d&rybl;vKwk@a2@8=6$jto_( zrxm_67Vg(S>1CFC9+W%lY-zfhfDD6L%&zRk#Z{&0v5t=0rm=kk zU(->O?eGHwGWMKw92iuGMpt8$afR({kNWyV=rT6%$8*ZacI z{mHzNIYGU3smDD^rt;C?6e+kgA{eSAr-vsC>5=-rXrPSSMam)$%1|s~K{TjW`k=~6 z@}ZvhYw~v1(g*+GT)q~oTYeE0=PomM?W9$xqX{7Q-k!ytd?-Zz9>&xm-u+4c^NvXL z(JoRSy!UCa)om~*zNhV`Ih@>cRo78zTgPv)>L^fAu?rHrOP@mM4lzU-W#J3=A;aYjz)U7sCwY|!Acj-|}= z*3gCRk*VHboaRvh=}E)(vNl$*h}DA0`PL9f*8@kC;Q~Ba0u4?g2wuBeb+Q^1g5UFN zvS@2^Kco#itX6V7UwXN1XIYu+?sSSo)ThZm^N(0I)J~zlju0OVf*r&fm(kCuoZTf- z;qk4u0&3JlRkXBF3=CL!Lo`V;G`xyCKQRo2e@6~gB^^RDc88BLfwjf=zj{?*EBszT zMAv?^kQ$UJzagjXc!P!z@cB2^1a8>*_DuRew&&wE<7Yab-t)H88fm~|I{lL{T3 zNHOt@+G`*jM)RW8Mix~LW)LcB)u*oDgZ1{+3>@6c%csT53$&|*F;pylXYrS(skL1h zzOrBt+ZCB&i zCZ#F4uA5jrbb0cvxTxiqDOi_KXiw#-|2Kq^kZomZM@MG%hF01rO8UPS7g(v| zj1-yfDo_T1TieviDuxu9Wu8=+aPr;^1DwsHtU@XakbMfje59}A&J_^5Y-7ssXa-U( zT%!w#8XdfY6}7!ttQ6W{H$i@{Cp+%x~yVU&OmQE^@81c&?&!(kg|N87EjbiqH7 zf&z`%ab6eCH=l47ujL!>tZBRA^JT-(R0bpE&Es&)n>DbzF_XIN-$o!H?8BC@_kK5C zup0}#>b!o_PP&H05s)R?$(&@R&MIq&d1^_3#uX-m=bymEt}LmZj-{cZQ!MLxQ~g!RFc`xF z2-9d67{}d2i<7 zdEDT)Iypy;Pff)1{W{GPQ_wLUODhe$nMzxH_iDmw)%#-xJ578LAmRqBDK*}H`3x@1 z4F_)EmV+8Dzu#Q~R_`MNXuP{Twbiat#|{VVN}yhfJ7b74(El(MPi&acYb>zfGP?aVfg! zu3_x*6vr5QLjTJE4(xjI!7mc{xDGfKt_`DZX2meX&svtjED4QQb4lA1c+tq@N9~e0 zs1{Qleh~_ncS;1jv0cMB-;kE-iI=$i-XBP(fnh2(51|D^-`Kz1{*ye^I82bo(YHn0_Xm9g-Gh|^7NDiQZT9U)KK(un)a&xz{uXfU@61{ zsB|h10>25w8`>wvA@pZ%YDqVjr;KbTCeo}mGKN)E7I;-KIyz(TQQG;7_GI(ft36w z5DogiMEQfk@{c6fm7_Id@Uws?++tCVhCv4F)H9Cv_E+C5Pq`aM`;qoTZhD+_ z8j|o8N13!q9YM#w{sFrBb80q-;0L4MX>Eg7!pW9$YDuopl1;WX`Zt$^d=e$KESZ!! zbh8@?k08r1TnZbzmqi0T&J=!-jTy0Lkm`0haK?>$#V`4od}0pi=)bE{{#n$mNLd0O zcjV_wg@bEu}1}p-g8g2kecG z&!bbRcGJL*H>lr$($Qh>f+mCmc%P~~u5GmXjP>;X>$BTAKJLQ{U2hCQMm1b;{;-Ju z!e9XLfz?WdZwBGleMmJ_ygn^0DYvR9xxYWqOyS#`=zgQPL$dhno8g`W>TX~r2Q`V2 zbZCT@2F6t|gJ2*>5x78mVHCRqF=ghq4aCXqFmZy>UV9~XrU!4Dbc{M_Yt6K*b8tRi zIp^x{I^NZ`(QTXuTj)|8>a+upYlfFSvNEmFs_(sv^M@36tk!Z!qFQzU-A(Cl(q0He zD_Mia?HzLhH4iIeVb)iYO=Yz4Fi1}hOje|G&~H8wwIoXVk>AaTje8=?KQxB!Zl{E$ z6`%Dv3L(?oqxI!M)ms6-6%=AcGYW8M@-X!C->L0hG6{bO6T5C8ye+_KlyJIQbH0k& zT@r0{K}z*|eH$|*%^_7$iQwZNvZwUcJTD^dtFmMS4khv^?OEL?+G5;277dZHN^fjs z#x=rnW;1icoZNBji;%QM~5J}~b*BUF*;#61@(lBJhQe;u^ovivgI=M_tEDVA;o)?n>@@wFzwy-EX za%m{Y`vuN=UfZ^zr#EooIpfqhd#&30q0GqC*ru5Q^}D+@HnNJdwZ?k=k-S3iw1ds4 zQPhK)W2Y?rMyz9x>x=624a5LiPogvdH_FSB0T^TPe1x-S#EAuczy*hHK{a1OjVJh! zj;N0ec{<#>PpJ5VP%Ad@qdLjTtVTh|t>6ajDpIiGl7q;ft3~_PrvGdpKPEShv3`c5 zJkx=G3`FF_#aAyxn=9=!W@sEU^F#3z?WO!?4|`W9qTE@77+D)!h=oAcLrpwGm+@1) z`jaT9biHYC`Xu^)m5h91Q|X8K1djB=zTNqx^SXGymEmb&I(M{^Vo`~bY9tLq=1$&> z<~~2#k%0&Yg;(!^2W@EmW%({6kLH9-&QaWX?Ju^pdB#zI-Bd!1b+=K0w!xTeqnQ5( z!W$*|9vFc_mETk+9e7$Zl<;0B?K=_eP#A*jbwGq=`(4pdm;F4W%eVO0$k_EC5--Li z=M8(rs8-a)2~?#U?<*b@XgtuWZC^#*rajjDp&yKrmXlK~P?kH=+l;U zfI0|3tPmR96;u%73w=DfGSP9}}C$ zz{*@o6B*Owgg`{Bx1UXqhYabPj_!v?xLv$7t+ki5TOwp4$z{f}jjY3rq^{KLiMXqK z!`^&=C!(@@EAf36fmzlhz?KHJ1)d#(ly&VL<;I{<`F8nfNK(``u=J&~Y< zJoX<_VeG{7lR-AeSp9+5MT^{O+g}<=-~4-|v-C5Tk@Q1n4T{wN8DId7nXUY`5fvkk zKyO1itr5T1fN8wO`$Y?pEW!ZtzBL*RUW_L!GETo}TVjwR`@AnPeeatit$s#4YpQ=W zxdajXYnsTvY$wEDi&BMVl(;kL%avb=1W>2&Xj;DOMUy}<3#u_Tid9s>hM%MUx%4O! zdc>ACi<_Z$O^3CIEzMJeDb3u`(({cgd&+`%_EnS={0uxRfkM=Bvs2RPzg<^mByo@l!mb z?v|Y3bwiWRvZ$5wRh^K^biM8|4JOy(?ya>8k6EfK**iUk+}ggX-=Q8`>PVt=oWr#^ zSv7>~Y7>jeA;ijI+{WdE4syagyuT34-AKN!#;B6Rr*^W+!cU;sxdi?|hoph$GPJ z6r>MLzpwf{}jq4IK3;J2)re)nc}?=UyzO6^A64KglZSBLS{ zn5`jmv1UOxLUR8%O9=(5Mi9A~&-W-e$WX?xN#(`d=xI`ZkUm0@vS6~1DwPF_!mk37 z2!lp$Q;Ek4zUVKWtDIOQ%l)YCO zCPz7nV!`c&F@Ai1jtGT_Buw8saxHaB-(mISZn-%5^x!U^r zIr9Rf-)+r+p`ukwBWRNg`FnoSx^XB-jX71>ot!-M+IsjpV;Eii6$*|}Y-Xo}_HK=? zPB}n6B;o2uPz@a6!QE4NW#!dq>&95(NHWLGATiK4nOa&ZHUl{G?+yFW+*fdba8876 z3{?BuAI(yJsnR0;2frg4jVCNI6nMS=0j@jd{O$F;XyrHuEDT!j6hwE=rlgIg$Jy1_ zvZm-4ptSL&2vb#4Te@{4qZ&!Kd)*@agL@9N9HRJ*sC=~{x~9`?@nCMYq$Q8S-=5y3 zc4^0b|C<0v;#Hn6$1aHoonXu0avagJx!f}wY(6}U$p{v`@+#i>f%TK$H!1eB_*J+q zn%*ya6V|nw-ZIeG16=7I6X%WPoeL)eW5=zoSm{>#dr#hFRt>8UE#X8Pjrm&Or1Eka zwiWXJGrgPpQoQSyg)Y-JvNcsL0cJAH>3wy}XKjL)6zDgvwdhh$GhDMHvfFt8ttS)E*=-SWQA&R-q$@8PA>de7nCj0O+QHn2#Fr_r|uGt<= z@acCo3c8oS5xtWBn9jtg&9li^RE$KSc9YIO1liOS*V?bhyR*0<@JFn*Qh{BsreLRM z^P%$6gCHVQ_S81#$pd;NWYrNq7<=Yb4t);*t#KDPjhKc|`6gx=q8;OZ`_$F<1)hVD zAE7+aafMb0q>m(|=TnW4^FtS|T;T6V8oM}xi2fi#&VQuOOwfd}EWT>^I(hsOhA4W0 z1QBR(#6k&Zg;sv~Far8vgiLT#3N6!`gpA$sZ2dm@m&2A(s7$h*64LExE#8Bd~U&rjM z#GK~Q%a7szwV>-A`|ow`S3u>a5QxXvA*MFKZ6^?fp)%P^U>RT~q$O(RL>QUL)nQC)5rj<_!u#MCWt=03j)zyDy08Ko6iI}ZCDxMVu* zog3yV^uV)JdsFMEcbe1Q=Fpj1lFxo}Xz(8i zww!%8EZWeq2qC%XhTuYjIB3bHfL1MR~U2D$koFA#|p7GWW=&`o>j9a)Y{%e8l`xKg_-DI%;%nrQeLs8|;IZTlOsy z*{|D1MB;tD)P@jF#X959QydsO@2ppT?VmFu~ptz+aaAF1R6_42P|l@|QbmFUi1o{H z;Go@dqN?v~wP6K%LlWBZG&+Jt7R8o6r3eYvjtvnkrcPpPVr1l!Dd)jqv9Cb4nb6O(k`y2gf0Hhp#r+NM3=7Lsa^cmp zx{4#qca5a;y!G`%N@}Xw+Xq6>=Z_h82<)mG+;JqE{~9|26XJ?G-kx0BD1ILPYfS4@ zF&cW;fa40eA9mttXz3lcfn`HhOt;p->x^c>YgoTJBtIXviH@OklZ}4}X(`{ODayiT ziaLQJ5CS-{ttLV&e*#^GgX_fo4nK^z@6zmmBy2K~dE?9D#~$_2AHD$r(23(n^iqsG zcAKjpV#peYC3xIwQ*r`ut!6xVfr^m66l=j zR}@k)<$oi%&as&6pPfhI>dd^8C;zNTnK?B~Nl`B}h@fStT|p+YNj$Gly{pjE?lxAk zvkYDFS#Oyz1nuidp2dXZHrzMapkW3g%NsZit?t_d$pBbUd-FhLQU!1df#qy8CQp6Ct*hq3Tpo#`(;)UDp3TA&vX!f$z=aza<06Z@yG&& zN>z@etTpv+G6xZi5sJQ12)uwH3L!&YEwV+dUcelh5D&UpjR@!5Y0&YQ&83#${Semv z%{Kyo!4B6AvOwymz-KRH0EhOvC`H^-*^%|`(&-y4ja61!EG*bo=hPc}d1V2PN`^&v zc;oZv17cKN-50-4U7wTbS`~VNWiyGQa-F0HKs|s*1H7K!|EG4^_Nj z?WuTcJCK9WZgih{vcqt-$WA8=_%&l) zf&r>i+W!7W-y?t9$%eRiKR)jWyiFj$xRFpN6&FzN<*jktjGcSrC6al&cIy1zyt~2a znf7)j>g}j8(iCrU1>_#brvhOB6PXk!=xum;srV~1(n-FUU0fQryGshBeL?@85_VsK z67(9Tix;1YI`N9kY)5aaNV{%@h+X)Q<)nec5y-*^&#PX$az@R?psls<%5HaGfMes; z3kvm3pu=PjgO5)D-tLEE(}yxs;sUup6nZIzPvC0xD?~v>VjA}%f3g2rQ3L^C)sx_G zFBSQ+7N4|37O)m%o1O7s899$0W&9U;m$YJL!P#`e2n~>yK21iZq2ed20Q<;e!L&xGdE09iaQ@i$kQ8hNrO>N%baPo*?dp1xLYmS1(iBae&&TDfnxqDrzRHpiRFY77Y%l7N?7G34NAUy1P2pw*+i==}8M@04v_vxg3L zQp`qnW01|H`W8T_ewxKM5B-F?)zK_I^yi@(=o&`!_?L%owf^?F(CIY-UrHk0AXO|4 zH!>!l?1<0l7y>j%blg22k6n75wr=dg0uUcSH0m#_YHuJuM)dPB$#Mn0eD}cSv`}-8 z(Yyv2Jil9sj-#n+p{Avk!^RSbVUNF*f0CVUkNeSs3qzPcBOgQfP;59d(OCZIMJ;g~ zBH}g|jju58AECrk5w{n0N=(unsmNDdtxC&!5f##9cU9#caII|=)iK-d=J*I*(TdE_ zZ|pp#J+cc!3sAE9d3wJb_Uy2_@7{2|=u>dED+8QG&B?Dj15cVou`L843{*0!+;NP{ zS)9Yoc*iK7?$Kv?H*qm#%G%+WeZkUKrrqIBs_jt~R0%^FVKdaLD3C0USpkKP-pr-; z9bS>*SGVK4{$Xpk%Ju#FJGUlLHsX%+R&$_o1rYdG84`=8U;rwdFXix$*@T#KZVpm$!IK=r~9xMU=HK z2o~>+rhB5+@)D*MyZw>a(m(vKN)}k==jY`lVvVrYKJE6*gT^ztM!LHpquZ}DGx)rL z#UnLs1}-k3in4a_eB)OlEzty%y4gsepwz`50yuwK)VY38-8@A_O+RbNF;h$c|Br%% zM(o-Ey&o9Ozj!KGgyji51U%D7T3N+WK7KGu1FoJ6Scu4?U55$2jQ|2`q1Ls%tHhNe zuq@n&24L{5p3r1ErvuGL25TE1{XghDUM2sBT%E#yK<#*_u&HTl^B6eh1bSSf`Ci%S zGkMz!t{cEo!=3n+h!O?uv z>(fe(SYN%YjfDHsCaViV$*1jhj{f@GTrNLWGQx$Ps>* zKY?g_7ByLZtEY$vWjgqhBDvZcNnK)+*ywl1%GCuYAun8vod8N>s5;Nqq3iSmdfitU z#yK-CQrFnLT3++NaFAsZZ2Zisg3#aZ#8MLQr7v{<9?g}t-7Z^rY}|QnNPBa&RR4L$ zJwsgO{so{S(dnIicB9d6_tC9b9u^#)kKg%0y8nt#izP1G&%KiIA2;#$c820JI&HHk z!tO7Ey#b1(D=;Q*EWhBc602HhiKR}xg4ki&kRS!BgjSIHL9?YSNPKkp_z15SGBeB>kG@NcrSdBFOt2s=xc0GKtR-f7vTK@1iJ?=(}H`Gw-fKp zPOm*?AhbVnOhpfLdq3cNKO{fQ7V!#uTkVeoScp*q11cOe@Iv+;#DDI>|CL~Vl)ST8 zpH@hjDHCknIMRd6Gkaoy(nOW>cx{%(O315zT=-THY0bTPJcPm4g`n%nvFkt8%;R+e z0*vcMYfpS0hdm^~<=o=|2q7aQBkvHm74-pNKl2@XEy-qm0YJKLt=XD=G5ib~Dc(A8 zZxKtrca8tBkjCia`ZDTJ1S-hGr!ln(*$&A6G^}cv@g1_bdX4yK)CVJ__D=#w3)N)c zb*^&1uF}vD`arYoCDCfoIVjsOB_UY0+M+tExA$ON!Qpg~ZSS;%=6GY9&9A~u+uDW4Ha%F)N=Ad+941FG2u5%FZh-~w`k&8TfYi6V2ib-dc|tupyf`fi4jzgk!%KL zB|Vrol>+Dd?u}1e-{{pqhQut`(LkUFVPCRyn5dskeOO0tqy~eBoK=u-y`wbivaUy@DYD@h{{U zdJ)5qN-su!y{Ey|)2I6Zh)wji7cE)t!88;9eX9yEfXi!mgx=wBnzXdku_GSxy$Sd| z@a?qmyFbyXs+{H;!1Cs}db5KVK%WolRt(kpQ`y!{&(u`DR$Ud)d%{ChtVXSS2M}TOMAkTL4*WGq1-Y?;v0o>=n_Z4f&M*xtsn109e0uJv5G^ zL-TKcSE3C37k{C~y5r)t--w0u_~}8VXbQn5e5a*jd`9 z-M(<@Y+A1n!6=4hYh)Lz-6&Z!lap9jr%wCm|DlYUy6v(bdnd5$Gt)d#yR>wqfoOEZ zBkere;1mmeV1OJN)3P!lsX~*j_+by-@oD{h%LSaNHWWz1y=_x4cGbr-gM?+f>RjL6 ziJReaZvoBX({!VSMTBCX8;sT8^PziBM86mUq-Ohvt0bl9p3Rsl?mL`!9hUFbfUm!? zrC8roW@L(wb$8BPu+( zO4m1kPVZ=v`$g}pM@7-EPI@+#EG>;c2O}TroM%rRv5{^V%9Rd-Ga_`42?v*Mt$M{Ong}b>ls<-@TAAO{=t5 z$n2hO3uwJsX|&f!Us|YDrqhv!z|ndI;u1sEN;?H)Ro`8WK`9)ia6H}Gp(BO8N%_XHQ@WAO?fFy5cTMUsC7Upv=RTdC zRSg@vvlBI-y|(D*QOWs!qt`WCx}k#VhV%zE)88x>0qqaW^H)IAmF?!UD@{~yLO;83 z>)%2^|Xu^b3s%ajlC5!k-Kmq-7l31skZTZb3 zZ|vR~kIq1-`u-*>(WfpVBOeSj)E_7T#NCdTaX$uYI-)kTzxpxOCYHc222m7voes&; z<5U|Pin9=j9$$PqO)U7B)7BTo=QXchNu#~ez;p@(E_beWN7{fcU}HT!-((#x*O>`i z4*LL;EUz?RY5X)PyBS?d;)Q$>NyZFo?bYAi=S2yxBk|N0T_~=!6!baRvCtT6kF=H! zJzC$d_>@ZGg(Q+CZLSLiD~LwBb6o0Mi+emoIXlDYzt=+^8C&$DTHA`@Jwi$&9~K!s zED?Bh@EP;^dF{7yh0hC|)$N3{Taiq!hg>+e=wcEXP5aJY`J5w<7zbH1yUh(iul&l)B^ zQ6^Adf*<|_X6~et>t)2%-qKZ|$7?|hQz)6y+sc8Hws*nU8ylbCC}ZtS+6yz(RUKX{ zsG;Qpkcg=)n(pV*2O0JjFVP1{0x3w51PwFLWXIx0>0(B43+C)X8#s^iu0Bv5EB1$v zBmbtV0dKBMr;yV`Ea$}Jg$Arxl{LE~55+2$TS;&qK@eKe4$lS@^c4>`Ubk?svu83V^AJ^kL?B$BsnN&<}hY| z$?6oMU$16#Z0sH8NL)bh&uF&u^6mK}15vT}$p9}P`2a|g@wUs4Z+BI1oQjHy&+VOe zckgePzM~@q{Kv`Q`_$|QYCztOZC>Kwy?dB&xZD!gy{b5f4)cdplO~PNc!U za`Dy5U)s;FyPeM)AG$W)VBdV2m(-{V|yiOP7!1d#7iWV^Q)wQ)( zw@*!?R9TN|Hni561vhy9_AJQyDm;;&_|>vh-Tb-9vTKY;YlQ7=*+^7_Aab zBzC@K{V1TZJeJZy ziYMw20{ae!WptDNg7EZO+kB%6spY*MeKs42$kMXUGqG8936-ef%ViTTNN_#q^iVO(N)B{d9ShXvng8GOU{sylJhQ5yM*?uxq?1i(FH&)!io_^+Q5golHG>9B=5qZYqZKU&f0h7pnmOCCz{l@|%Jy1Z z`CbrVjMGR`BLZPacQw}Je8H&6c-#29 zTk7!dK>qcR?%St`2d<6H-XU}h;jZCf1OQpv*+*T~ zCY4tBJpA@d&3)-9YkRiJf#?2D-V12IPwcY@e;&(zN~gim_yZcb<9Q%)`2G7i{p}hU zSNFbpA140<^o;0JeF(c)W>#nEUARa%MO4RQ%~e`;H*oB+rX`+)4eYHf{Ht+DT# zOVYU^2WZD1t#h~W_`_P5P9Sb@`wjw8{AeaZHF)YKFk|feBG!JBGX!l`%l=jD6GkC2 zoZNx5>|I%xyya&Z0M6t-$}1-d_Hra{;NdDGO~2{a?*{#|9>PILfZ}t^eU?Fu*|1Wm7r9zizZ>Hkc`7BSdL$n5>g_NGU$Ow(B zS-XPS76f1^p$u)?gs2?lHREJedTfikyZm-Qn_3oQzj*W8L-mCDR@&Y#IV8z30{W82 z5v3j$M^+(BtisWDof2}bNIc3x^X%~&gVyw2gF7fawKCc}zv}NR6v!J?tIpWv4R8h- z0ty!AHzZRJC|G@}$J~2{80b!gsYj0N)6(p#k!sYCkAcRtD&@nJQg$Kc)eUKf?!pFjyMv834V#t#sahRke87)p<4Q zxV@?RkNnL2xR}TNl$^b5q4PxbK3Ls(-MP5F+$^|mg_7SdWxp&1AyHjr=)57n`6?F4 zTuQzjB;T*@^GyKX?)$Ng=V&0kCMB>PW@)w6wn$jeG<4cPT)?ICN$X1#Ekx1)o_hkoWRBhEfb0TJ_UJo0C%N6l zD)REUiVQ%EbaY>GA?YqvnLhK}eUQP?_zPSjPku^^Jo;|lILGkLpViH_NXW3)xu(%X z=p638X<&J0b^aU*uQMGSDWx)#6{b6`Bh*`yl}{M65M>Gd)CkY0e#YD6z4{rD*R_8{ zNMvNH44eLm#&xA=u@|i(Fo!F#%GLhT6lapd-`v%KQcKuS&J4a3+8u1fVxBjjVn3_ewWs&oOX ziY6tcQX3!>UtuSs@c#ij`6Zqq8O^&;vEdUatTqWO=?LsYi7LAllv~Xv%)f1%Eon9J zcDk!+w`(kxohG)*;qh|5R$@r_WJjRj=&&=fejpUVtCAPM5t|m94tsYNtxAZ*bD;d{ zPQBuyWDm~JoC`xadAjTNp*%c7qO(arR)SXa^5_S7R_(`3Q0GQw_5BH?>c$~7zcibp zkPNE7u&^vp#5rZ#id7cRFQgOY8 zJrQ>v_dL%Rz$26*EMz;h+rCrJ+&pbAahL0{65^vj;hJ{irMQy%bspbU9`L+4!GB|9 zII3Eu`p|f*kJFgSI)9PueWmsv=Bvp2ikzZ?B5dmmHj|r(B;`V^W8vrUr4VU6tUGKy z_@DGrU1zflR`}%BIW4Orp%H60eJgJPfHdN-5avAHQM6LMG2C-%HQXaSh7RBMXLL6y zrSy+n&c~4u0tgy4ZMU+j4`5zLy^$Uk{00wyCT!L@6IkEs0C=fv5Evii>DKq5&EG39v@&se_}M+8&a78X|w%C=^!Q#xM&%;%w7xPTc6ie3LO^R zgmp#HO%V9BFsQyJe;~u?ICO3ysbnFULgWy}sDq%L&DQzz)-Ql#P<-=p^z5E-b}S_ zXB!WzaRq(}lbXNhdj0cRO~-eQGS6-4FFh+dAh5t@luENRRCNkdk!Gter9)MR<2<5~ zHx`TP<@v(Vjt2EGzEDKtvA>8WUIuOEUoRhsM}J{mUF+A>(iFg&^9BqGKnT)l@69%eVD73 zO*HBt>HNaE_T;%i1-u!w4WRU}gzWP05^he~umVd#8-$bdL=3!#hcY3Oh|2!9!(}Zb zhMt1Bidtt7VYy916UI-rVPZuhPUb>@?xU{tF6^EOtP)wu0>_I*mH)Hy+A;SZWlWJo zF%TjWRtfFp`4jjQ*XA%DCX($^`L%uy)4WNf+5Qt&9|#;dyf6ZpiJVbo#Os)ie^tVAX-n??%7F)f_p4WS|PEJb;InpPY>}vQJLws!HlYq(;Aub^P z4W@4U4{B1sT&d6Z?W6H|O&(Rm15JO1sh|1sCQhQc6obp6t*+C{r(3k5>5ild-Gz?t0;h$=G@e zhz%XuWbW<1&2MbAZg@t9f2F(H#0P5NfjyKtY87_3e}jb^*qfc-=ooc3!eI zIlpiMdl?=#W%L(wU$y_5ybkMZ0<>-Nu-tycoBnCEs*Wp!w;o_=>L09skYl34dq>V? zO|;Q-p7(RKe5n9jSGf19ejZ$<-4AFkmrn+Fvaa{W#XQ3FKum5SprC&KDJI=XtH7<< zonI9%fp-wN+xp6yTo_1>e+j_3=rr?qL>AWr&cz2TVMjOWQ5??ED*|G3r%-i3@&|!) z%chOcF;d@3gt4{roqY<^-j7}`on4Z)7FK_NSvZ3kVEzb!SfMPFkF;{aRukz17YMnVVhDI=f%h=W@RHfv=Kbp4XkD2r2qj-h%cMORmT-I>eH#Yzt1N z{*>ur$lu%hPeJfGjahRl{YY_pdeEQV?xW>zhiw+xD~JsIe%F{zXD1cNUpE10lbXl z^ON`6`3r%iXDb$x2pChuA}klcIb{Q!i|gcU&!p^E06w*{@yaSG$>sz6m>q$1baaq_ zqWy}>cXJ|px$wHIv)}hsCx1g{rA*69moR`Jg2<16KwJTmk}?dkf~98@qP?NT;25DB zMT3&}1v`81Vv`s+Zg#-(R8mrMNG?jX$0HlBw0FgMX>s{3aDsHUkLH9+fdSR~g^vM* z1m_>a_w<`@`+Xn>@|i|PPKlDqbda`tqgbEuc}LYZV9qKkZr~w@Y~IFgn7Nq4ks$Hh zPZ)WhH<6ov@a8=6Q_X`E3YW{q4E>xkt$@Sj_59cJ^h0pW2fd6Ij3RbIb0@K)y|iosnfJJqgJYti zvEcA4!me&$ZKpuuCsBV}u0mb&S`z2|t=1LTg%y~yRn~|iGPm|OZ6MxoG&Y^ZAvK#$ zn#L)#m`R+)D}+Lh@g8BRRIJp>Q`gEJek>j(#n-6taQm4~U`^aJ==yX1aHU1aNKk3r zMWUYx9~Cd10_*(CZwCh&dfMpOMgdMzGdb8SXoKETa?`pM?d|v&n|f(%{0ny{#dYVV zX{a!EAm-v@$-esU+@(}?jpm`^*8Wp>h@)|qqg&Se2{&Rix6Jvb3*+@97YAdeeQ`Pi z4Tir0GsW7uUQ*u2G9`b^^2!vB8xrKPx}T<%V^i8&3jLDO%4W)leM{JaUnV-chEr$C zGd*E4k>wsBGLbV~$~KanTO)7%Z(9XUKb`b68G;^S=)Qtx7sZstXN@{WF~XP*{r=plRM!7z z0YLlb*g=HqW}QfajVpN@=fqHGpO4&L2g6G1nztZDTbfb|; zjI{TpkQ<~l{X24WiyD8nyK}f_moJk{M3!5Mp*mN*RROIx`N2UJeKx1#K2_+#PQnrC zfMzQaIX7876CpHz6aOLRjno4o7KAe}TqZmNPG%Y@!hCXJ%Mwf^CF1_+FBT;_@e$MZ ztl8q|GAhm5iwcZnE+6B0z)Oeb71mUh`&GdYiUb>UNoD0*i;aqlAAcA)tD72|9s3eq zT}h&q3aS38Lm7|n)y<$wN4QrdmD9FXBl;4Hwp2Rv0J_Q0|yR(|XF0_uW z`;J1gRq_o)RH*Wytki)8m@ukOpNHp2Yb|7^^dh>I0u=*(x+5B#b#SkqGc+`Gvwg|? zk<#+QK9Qs@ZB_xpgZG`4QgkT<7hbwGIK`BaY*7-9a6WOt8kW^QbW%WK8d!5EGa*~l zV)s)8WMl`4;fh~mP;7{;CGm#?yw43I%Mv>}FWkJq!UW%wO6I_kBz=4DSD=QS3^ZJ^ z$13Um!@AoU|0}oy_mDm7fERD44nK6*PU5RV!V`&R%_v+JC;&HjuM9we{;JwuTN)$>t z`z~(+d~(PB&0<84*8lY2+!1q1JbeB}Wgb5gpwR!X`^%nKvR95Or$^jJ!Tbgbk3MaWOz?|v&5wa7LPN+bxQR>9{fuHQFdiq% zdL~lvV}X83zoFu9XuAkHgk*$z`%D6vwqYir$6|Lb5q&iS&7r(0pY_=B9+|O@H5PH* zoLB)^LLvnCTmacwfD0obPvon_pwf?`GOm8Yf>W^ILQ#>sE04Yw{XXILgkE!J%l7Wh^aJLsdFtma=xI{oq_> zWCIMvOxAf*CM<{`f>RVBN=385ZY2rXDyBqQg|^#$Xhny*BIK#`EaF%g*Em~Cs@2)n&pA3rn! zjP{sP($c?c+X8BmtcxVUV8bO_mF4vCvBg%q^QP`*k+ec!JuWX{Z_Hs|WTj!w%cp|c z(vC`k)e!zC>Ix8=YV17m3<3t@U=)ELr&=KB^&&>H2#wwxlFy`xu@naKz9eGmdB3vi zq*sqPZ`+j3T-B;CKVXP}ivgn^riDgxQAjWdcQx2T@$3xBv97W@kvU2DBS}tve1H@= zp&do4gkY`A==TOl%Pz7`y$A?QBeK=ef2BJ)iPLUJ#C>Xmr3Nnn0@jGzqjQ z!K{478)$DavAi*Ev$59KPW3>Cnktrl;rq;H@bXwCkh*iQ z7KpXz*O9Tz=+Y7)h1OyL2LSBLWK~zADzqJMR)N@9W5l1(E2KOXMq)++uc4(hPaa}m zh|>In5vlu8w;aktHtqke2#|ILYCz(E>Gh4p4kz9Siw|Jr%4Qjnh_{)EUqIh|8C znT2NSx~aMq&wlvuC;t;KC?zeekRnV(tGTvTDz0!8ms7~QLRS8yd}CKzn%5F1zFwX7 z^Vk?83(r{O@d6f7ux7KpQSf}j?^|asw9+;~Ao%6(R}+64Dv8BDGfN;50x6EhKCNIT zj;Wga$E~(jIH4|NnzeL|Gy+WsgxU`;09RK!2@bpw-=4FLqyqh{o&Gsj(3~gIjE{#l z9zEe_n}sCOO7JNUH;2N{hdse@+b7joXd%GVV5+}X*?b*=V;Rm}32q@!&yApU*)DwGaWs?&Y^0OKbSaYi%D+lG8^rf06Zok}DR1HU4_S zoknE_yML5F{_Fw^c>IwIp{5C0$?Kd0-Iv=t)SiBWseC%>&EwBG96}&2jWF&W431?` z9ow7Bo^r>tI<=)5NrZnym?T>qL#sB{6O@Y z;i@M3TeoS|xN_S~KbA=|3iSGd#KruPlT3yOT;|QxE{YZ=g~8PFgTWT&2B@g+yOGQ< zYJoCSVJmg{A3(UQmy#ccOZYd2Zh#GEH))!Tt!}l>xytq;pKLjB?cgZ1c>Q(hxW*l> zwM#^0jX~lD-C^&Fz1z9<3ZaQ>s@lzt>%Nl0??GkBR+4jeO)^*@{4}lB= zg|c5c%;F$ozLLKCe3KHF^;O~Nj z%)}h)f*X?b9#A;(#SVOu2&OS(e+gG$sirG6m*COq z{NEjd7{udE381C|4(lGjnHP0t3(i36seZmAWSi{QcHC$U{h44$O+wQn=VJV|afRf> z$I0Q?UL#)CoUN$#m=ETQqDD}Tyg$AQN*E0$6rvGI2n{-aMJ0#ZFg~((p@h!C7^J|e zC#P(mp7uilS&;c(dq(-Y;HT>Py&zMPnxz5FtyLGuKvAJ3H|D97n57^~4h~Fcf<{t!xyQQsH?W5UvA7x>tSlUcTSO0X@{Z zQB_s-kGiDC<9GGr&`%+vafM=phj$Csm!Yv*s$g(A4gHjPbHZhPJ-F2BV*!jFP_-mn z5>|k{!1glw5T2YS744r??a5~#pne9Qp*i|3l1|c*Hy@`mj#kUy^a!Rq{}WCgF05f9 zp-P%ZwMb2aP=jM6)v-YZshB!RJJxdWmjfJ5k;OCM0j0F$0~p@r>wnb4sSry6=vWY( z1!{j&@1?ujOcnO?icOCjq-Z&DZ9ejPs5>*sZ_xuB_k;mtm;1jx%o&EE&HAB>N-14b z#?@hB%ToAm2}_EiAq9WyJi_K)zx72@@37J3UGd6WgaIiuOBYmrz=yx%vORVz+4fDxPQy=yqP7O&j<`yF{%p)%8uVz{G<4>O7~6B%U+6U32J;*cmC7V{4vmzT727x# z_H0d(D6&k>aQS>tA^oW_>5T@>8T$ILu_V=YhsIZ3yR9#(6BJtR$WnA+?PBH@(78b< z0x^Z~a7{lqA#K{7qMTcy7~nUTifns#abD_KN{?P;(K@lYDRwu}PZ&S{@w|Mjx6o{N zgE2sQuWFJ%s6`vD-P#PsFQkzyugB3)1>70LI}uyxx5I z3tMtWSX@4-ZrMuREWGPi^n4?JeB%mkE`>fjj%AvJHhO|UNTGt&mDD=l`{xV-F@&>S zB~j_&PgyEacRq{{71NeXG!Q;Df>L7rH4Izq@gotri!*uz_;WRRWoHhK28@s^>*#W& z1b@u#{J=_yQp-erQsIw!=-U1ru#wggnifd9+;(=YKQN~f;N5qDx5IY8uQ}4AvDi@@ zqsI$IJigUkc4{0o&-g7aoq|pe+;;oSt~o+GHvJ=F{QX`7{J*d=S%#`ul_Z4Wp^`#0 z3rQiIS#>8;gho5VhCOhEf>r;1>t=o}oW)dD0$mtRWG08&@bRcec%WExD>fZV-2cER zZ!*w7(=I86&a=PZOra7}hqgmR?UP2}Zc_S=zIQ+b3!RSF{z#}2U#kLHE|IAX(;i~eVMbvqxPW#Z@=r|>BOduwS2 zJr)y=GC8#kSdByjXz$Fc)2J@MNhEQeA$RtJcShhxnY6CgRA**j<{G#f9yYYClhvy* zGI9+~UE;9T>~yYTGtt=w?%hV?I6U4iHyl1YKXh^#TSqkim|s%e-2o!y}VGJXY`E8PvB( z)2FSAt47(s?f}z1yB^SuPMXehf2{W95HdW#(NKT(2<66D+&J1cKly6VaWMAe+tLEx zK;MLSeB!l5d4>+D4jqcZg_jZg?2-MwVX(`%ONgL~8yMHV;9TA$t(sYyD-HZ#l|V z0D&2L1Lq(+?lqH>S0R-HbNoCgVCuV&hC}MmloYORfTPhQ;AHi~U%SKZx3_pDIkB|~ zHQxNGtJf*BwNeCYvfq&*2crHJ@ThbudWiD$<1Yd9B{T_skeC1^gR;Y!NPk~q#&f@s zn+%Q~Ai-%HP%!<^O%WIeu7Ug~IywBiM{;=UW(r0P(sTI4BL;1Z z0xcywQC-(o=kWTP!{-f3-~d$W?R3fYsD~>jV%I*QAmve&Zhq@25cXs5rwC-}fL4P8 zqN^$S0pi$L0YW8+%?G4}Yu||y{C+&YowTb}8xDA`Ka7n2p7&blh}4Eafq;jECPgE$ zlFt_wPqJFnb0@<2Mo%mpk&WwRzgXLk>KxE>8_+Fl5LKY!P9my`H?my=SQT+bYFlI> zC}QD|KP-Fak55}?-R4I#f=3m>Uk^UE_-fO&91ChHZL}1Pr#Z>&C2zbvK`Z=NJ7l!F zgPX>{6hXB4gRBtdu@<}{){<^u2r_U!q*%)Ud0I?ud0VT{Al{I2*UdsmfqoLRLwD!*dH!)A|=BkrtzZ%Ne*JS1Y}@> z-^g~xi$7GD|Hy1J;sqlROCL{;I$y&Z7mve9@0~Z6tF4y(c}G={H=_Nrq4KtRMSG=w z+$7pK*2>quUUR}#x%8yDK+79taOtVDsY-yLg|%5)cl*FNzec0h#Kj6Q}L*!Cy&3fKlUX9Sl?{chJBl`>)N)@ej#0T4I z5Cr^MIcCPe(@&CY!On?8$oSfUO!I~Rz~j2&e>9y1OdVajg^Ly|Qrz8(ySux)ySr;~ z*Mk(7LveTiu;OmTi@O)MJN=WJ5CVY!hs>VYd%bHt%fnOceRu@#Br8HLbMoh&k0h|2 zM4Ug~la|oRvqD;00%p$X$!T>XP&`4`MNDUU?x?k!8Tx4H%dwa?Pa^euy(H;y9g>(_ z5A%(l*B~~=K5Wvm*ooxK4oT=jdMl3A07YqagC`~%1+-u0pF5FW@CUzB)P8AHP1VTi znv+MaNkVy`DK$GG^P-r}`PO!wHyAFL!Q-<-*ZA(lXITo;Q=RbHiQ>Usd=x{d@)T## z?F`00?;@?9HD;iTT0iVMVYEeoo zpI-t>i-@s`ueTM;aFAlfhGr3LU+;vZ<|ILS*!<~XBMC<;Yn`oIh7 zsiYn(L+UUcbRx?*#fjS3IA%7@t4*tft+NLr7YwMYxix-kndJ6Atiglt9#2(-l(7?C z4l6^Du?e9%&=5bolH>zbKI)lc%Esn4N)z3=(?L60lpRP41^_Daz=Tq!&j>DEQVX*U!-gX>}}UY!&hp%Bjd3wlQx83@VP{3=R^U znSFb@D~TJ0{_J0;d$o0D9j-TQK~L6Kw2ro=k^fFYC|~~;jUXmmFb=7fmf0b!UXslK zTz}``u7xQ5@Z=#)VqNuOT`dX?fyC#jD9#6aoG1=WPa~4q=$3GYhUOoBwQRgX?I#u- zX@x}7aQ5-y=rrFkYScHEIDURB14Czj^=2ZXg?1qz2V@I_Ke3A(ieKo~eHakMHU3oC zF!U(CZmj+0o7!)7RL}eCII_mbIy^KccH)!rj_%^8kKU% zE%4w1oC~$-Uq|*ajBF2YOYw8A_3`}EBemNCjq-S%7F%zxTSrLy@p-rJ#__XP&K$xz z+doBUIZ%vrOkm8|AI@{MH_Q_FG&2qbTx!|3+s~J}UH|jK8_xVvdz$6s|8|ODagF>= ztDyFenNBrND`{8N-1WX{r{Ce7Od&JU5QlB#e|;qXWPt22LB{SfMGYs8+IBM61O#}$ zwsb&O_l)ORKh$>=Wf7<OvK30uaKiinmiTK)X4PYCaCkxDyzYPwBkhQQ#$s&8BEhA|! zlJKsIy1a|oQ&!eLOw#?&!M( zl~)g2cv_hk-HLA6itH$P<+&{xHU4BC&NRf;e7n>vEI_CR%OWaWwFGUGNRnTuM`)g@ ztcYA@IZ!fpcflz4kdi%vwWV}u#xbM4ov@38@}Fkgn>FNdRlw!ndCUtWFz6`l z>%D->^!kcsK-5~?u3t}D3IP$(C&bD`n6n+Hzy_gdwi|viS((xe%cGCYb9cuz!7Uki zYBRtxrlCVrz6zofmxTW}Ng+hNTZ;D86Yu^~w8{IEkrvrY#U)0$aF?vgL(|U!`R6@3 zq6kI=NW#Uu6Oh>ar&$L2jnKhKQVYq;P~GZ7i=b#Isf7%nmSTMkyx#@xRFUD_i`GW6 z7Z|m!7GX!BJw4_pCH%gVW*`bvM)G$srqks|g}4@G5hF{{4P_UsS=M)d^2EH4>B}to zG>0yx>T)#El%eRLUMgwcBeG&f))Us^EX9!sKhS)#+A7EX_N~X*Q$2&>{+xo?1ZH7^ zHfHP~<5`!P0Mqncj5OxZ2#I7E3tbEwH8C`kTM*+2RHMzS5 z20Dd<`YP2)O|pGnq1$tDj*i{+f0D6@xkn8))KwZ{3;WC5{`(&HhCJTOSN8bHjwBGHth2fk}ti)(vb2D1CA z*#Il&{A&}h__?4+r`*g1c__4+MFRA_c^wkDZAsacs`s{Pi-d)6rWx+sd`?91`5e7M zypHnWq?d=I%pchii_8wr)Fu@mV1RCpL7wF3T2M1%5kVuyj8|BaPvY&gbC&K)zj<)D z{327|sJZK?5s^yWGHVerMXlcR#${qEN(XArob%Dy%L@{Wqr) zuY>L=zr?1Tj3VASF$tD2`bIn$EwuxFri~i8;k}oyCU)zINnbH31!;!U&Ld=ENfZsD zqJmvH3&*I`=j+uZuy}rc>pBGA%IL%WIUx5_%0!5(L2E8zLpjHr(G^RQZBS4|dH%`~D#IcbHB9f;LU5zDm|zql5LLLsTOA!O0!!n^xA@ zLMojjnkQ`7IgyE#aFS;N&4xJ+AAa^*~kLO`I3a^n~v?74P=Y zmztZx#EaET*Y?ohSi^e;biI7kQK0^nHV3k`iX9kRv>ykM*>u@sS^99zeag_` zz5H>o%+jk^^HxsfKQhfK(e1IbNoC@cTh=Rr+FAx|T{u17i5gkON$BF*0@u2(sa zjZ*{h<`6KosQBXUYm*ED(Qzd~yP2x8akJ8Dq0NIXNK11FWK|pqUG_EGHxJta59guz zy{DurSu5+U_|`$c;XCk29TNw9FFB>Jr}`!k9;h}A`&;_2LqI7caGFF-%iqmx#M}|< zibyoIx8KC<6mTR!8UgB6#S81ta!;r`6v#4A5+u+%t0F@T<~bz)=s|f~pAJ=OE3+yp zfUzElbCBK0fS!ytr*+ggrjF08%XD(On?{Lx88ex*ZkSCrvrX|1G^Y4w=&WB0CQrxM zti;6_;h_jMhp23kW=7qjOX!nkBp^rHdPT1W2qz`hBoSXEe|bm(_7_>o-%&=(1-uq0 ztk<3j0xkl|?G6VbOTIb^Tc2dnO)H!1iJ21ASB%dkYfBvP%7!L!u-svy+Wh8m4ZE zfa@EkbtoAn44{u>chp%0eiI1*riaigq6f|LsJ z@*NCiNcp1lwK~6G?RZWJYEC$Lkws^Px{_TdJ^9i|lrkfU&Rurs$4ktzpfZe-AaOP; zd(Z_$6)3Z!V5&4&?Yvz``=bc>_s3;?D(#!c#k(ZCI<3GsSVUSW0?5&2C#jZU|rfBnrLe-hQX?VxXpW2*z9* zaqY;sS#;B)DQ|m+(=&n;>0Y;sQ{(;fGcEl(LDkgVMyO|JC~C;4_f7?mKp03-8nZ19 z5|^^9Nr8Y)w-Brz(xwh_2|-E;ha3O=rl~RM&inHl!aWKyDmRO47FBC}oqlp!E7k*! z%`tj~e@7hxSwD~>y+HT)JZLkV?ArszC5YCtP^<7ikge}l%C3?r29bxN)i zCjI4%dO4-&<_JrYuhlosYC4dW?5a@CfYFUAh8~}*q>uKX-CgPsMmiS2JY_A-Nznh% zw&>-!ftKjws zM9+n|HjZ72ez7^{|L?hAngkvmbQ_8U7WSb`LGRVMS#_mMI+HuTZ*{fhQPap|9ng)J zDNite*BiY+ zvGp0-+oQY0dpvgq|CmPKiTcrYoFO%%a_VoVnMcBAv|Yq*wX>4xB31$u7$k1eM8=@S z9pV?BBfzMgEbR3;>r?-z`Go#|LCFM-KlYKC@N-H z83pADl6AF1a*adk-zB(tMw3-CdA@}9{CL_@^s(b4x@_)`5r5ezb_XW+W@*m;Mw z2?}+uld-E4q4q4*9DXum7dc|A3zSm8afkgpaW;Bo< zyvja8|I#AUI^EDM_(xsHqL>g(TI48N4u0X6D!!P*w?UKXooc)KCYiPLEn{tu+Z?WAMFUuUurjO^#tp!Z|OYhM(O-=YqA z;=o%?zHt?=KHQRbBb?7gf0WxmoT?t(xq1p~97`G?9W>{~eM6K2ALD&nc)~E4n9;Zx zl_Rd$3t)X)3CiF+6pKv&*YJ@^M<_1R%NMU>$c_G zrChD%0D79>ET6n?g7SHF^4}#Jha7OwGkMi{j%6d^tdiJ{a0+w`canPZcD2cr-ay>! zDHC(|71U*Nn^Lq|Z#0eP@M-k8W9_sj*TDkGwm276QvBFl?rpRdXF_b&s;;eBdE6cR zj+&OIQAdN{r%HOQ8$&EmbKy+7EHt>9v0;OpJ)%WOXi59o>NB)nsq$JWe2bDvN4C6r zY`HB<|>p~sh!x1 z=PEEu9K12$GYxsMa|-$F%`M`)x{_LWEz_L2M=J!E=lWt-iCxiJ(H}f>HLWL8b z<<}xf0)1yME`VPg`$MVWUgk<}Z}ePUhZFtFFC4F#;ZLQPd_Lk1Pg7qJl>R=qSh&Y? z)|{uUDlfoRLpGJs+KH7gtnNff<-?T~g)JFFky2<>N2f5tfgpue!BElI_hahncL1K=6f!)&w>sxLZwmXm zi-h%)8(Xm}5BDR9Z|m1~awXDoShShODt?M_Ii@3ga!^cKj*!KV*o9w7yWNZIWW*-V zE*Q`0_{Q?Sucic_Nf`bnyQAyb6!faM=ds1@e)7 zzU5n?lJnL;qMK*;&<~L@MJ`M7v?g~+YrCc-YqTO68jBGVh>TL0&RwG2qP(>OT(e|V zRM~CmdSTV22%VB2?w`Y|IYkJH{kgx)m11{l@9lRR+!Uz071`w}Gh&Ykkm@5~|1xfp zls*>yUIdL>I+!cCfo=u--a@w>_EYL<=MUZ3Mmt)oWxc;?A}Z+G@lCJ{qEiknKJRmx zhl^$;`(5&z7(5*l%7uu3RBW=#=1cP(vs!uP=A?*y>vB0G|KYztKwHQ zxPnWxm~{m`~8QR!llFTDFY(RZ0L~TlQJ~-lgK+p5R@wpL^tQc2s z&Mf21U>hG&>3gr*bJldpOjBR=?gw7wG5Q};HjbhRl3D{h`i8*88o5d>TqK%sHZ8B`!uyJ%_9~T~0O8R2>K1i+7Mr_>j$AP(%v`C>?q@OcDvU zmK{nfI!45cRjaiXu}F_HHtYVhF!5lqoxAjC?fMEQZ%63mlmoe-Odb~?b-4U&afpQ= zNm7xbJMo{cxJEJ5{u@6OY8z*|LO^E91BFAsU(NS5l_|PJ86WS^18@A=@yc)C>1UUJ zcetXXt|~7^sNy%l&2Sc65dv}W$Z*ssW^oBx4;HbCBpMYsOkPp8{DRO=q|nXH%J6Z` zaK-h@(q11Vxsj(&XD*inMyEIlFM+jn!nYgRCNRO@vS&{pR78SnPWig|0A0DUTJwbv zzKOo-6T$V4-u9B&UDxZCm|xxwT)MbcOU=v>$QF+YlKB)NcbdlcG_wMXV_3+&Uc$d# zLO`rMO_j+iB{K}q|Mqv@|2ozvr}kZM>lq7jIBmfrUVUs|!PnIT2Cjq3&a|LCBLZ_nV?F05$1RGWkc7YS`xparGd~4>+6w1u57?7>cXa1?q zg1&gr6Bs%A9Q;=Gv+RqH1C4F`{dTJ=95}dYPChnRC5u^xZ;F1N+KUTZ+$`lZ*iVlU zt`D}RHQHeawcchqgh$y8H3_RprX!K(4LfI4sT5nKk-7Z9S+f(EswwgJ?;I}|XPe15 z#!!>eK0(ksh-y;!>X@2?r@RnR<;O~mq|g5*v{RI#}p(9Lxnz}IXAz)_X?iH{5euKSlBpFDR<&8$-_g!e`Mk= z!9l316rrxBC833_7B*||=%8|dYxH)a1#ys<{tucZ9mM?S`wQ{Ej(Ex#Q7}kdWAxVn z)-N2O5iyPO`}B)YOQO&-kWbOyzPY$~ef#$bkcqgVuhoC(XyN2qSzX;}Kg|CSesSm8 zsi9_&NL@OUs}AL+w0)3%&USB|b~OSLH`T}}Ee!aJjBl?9`<2ryPkn9}ouA933&~(i z!cMB^1zzAzt%yu8zTk*EjBx{bWwz|3G&~0b8!($?I0Z=jyST(`m%ZN9Th(Any7iR$ zqwo z)-oor@Pu7H{SjO=QePrxuG#J3Dfp6lq<)n@CCBz(}$-%aarZKdLrNL}delrVc)R_o3W6ZQ1 z7W80smWJL7xION^U$kU4XgU7D^dkB6eXv39E)#m6|6S|^UDsqon=m1o%Wq)9{;5y2 zlrA(j!w}ywK)=d)#X>CF7BoUN_Pq4`2Ej)7FgKzQk{{K!%bJiyN4}KG{}b2DdlNE!}m+&!To-`g*r2 zIviJhK|08sBA^C_pvguEISrC#^6}+z?myHP7#d{RDv{<@i+7T2ek3nP%(daF)?FB4 z{VD^;$9y%aUF3YWXIJ zqx@~-JbPuWB(UM?a)nC1PAAgHIMAxzbCX)fu%%+m>&t@797wZr(w^5M$Vq~zmw26i zf7>#RC{S)zn+;rz<&&yKrOvrkAogdN}Fxm`@! zB_wmFbN0248>n<$2Hp87;3$BFgWr3N|C;e}W2BsC$J5?8@Ntjw4$=D<+dJZw7m&`3 zaYjsV)B8Fx-O$-NPG8&OtCnznoBzSDf^i+&`&aH$&icysVbJ^G)9}Y5@zzWSCl}XK zcF?WUjT?~qt9_1k8Zc1OWt2B4QR+Ph)C_BUv>> z`>=$Y6Bs3>=x@k+|n~$XMSS@GJ~g+NnrV;fwp3C+H=^EmapB zf0}bjS^>M1fyX3#u>0KAXwuFV>%cbr6k!X`h7mdPlD5zjb76Hsrimp`*};On> z%{3|yaSjJkYoy0U$L_{cy^h4Jh6gJQV|>m~aT%*YRqs#&yl6TST<~q&W9{sWzljrQ zB03jVkPPHEyhd=Oerj<@ro*8>!b8;Ra>jBFxGGO@z`}C*zB{rjTM5nt4IifSo1VW0 zc_A&cIrBOW?jv+LsXby|7y?$5RoP=tKahopMmi(z;tMMLtTrjr2L4;Y^fwJ19J8c& zQKHjmF*a(L4RA;85)0n(x$D_$K&N*e;|5pyW#o8td91~@?Zd#X>!r**NU`)Z)ebvq zCsT8^sDkePp+hNd_z9BFg^gxO#`+E4F=X)uBi@)~OTWweWL+=d&@tYfy>y4D4 z7tVkU1`L$CEF zdfwK$p4L7>wcbzdF1cH}GmvrkufFAeCMv;qte;J2V`ac?c`2iTA!YH9$W=mcNOsE`>VgT>S=>kDeLJq|Onae}l zh9ugs!Nt?sJ~ggIwu5eGT^J=V0qzh##)BO#JaIEdXGD@ZQ>2gZQ4kikWb0vb$DSvSxrt7ofLDG*C0EERP&u42OJuRb3;p* zOD8ZUv`_#Nr{x9E(C4bznp&n=k0`2I$(D3U3o-Pgpcuu8uj%BbyUa8`^?fTQg)~3xLOc~K?r*zhLYsSRCb`Ayvg-HE zv8&w5i)V+8RY)my&~l^xE?05iQi3oOGE?W=YXdmTo=tbnvNd-G0SdV>W%Mf8^n+|@ zyM~o}6^qG9PrGgh zsyx<-^5WOtZ6_pg2z)Fs5l6m%NLEex$q>A@Q~sNx_<5`5#m$MDJ&~{BTk*!ljH6cq z#qXaoW7h2Y<+_fL2|@I2e9Ysl&u@Z>{I75TQgwq~>+$`eS4l@R%;dkRXhOmJqvHR0 z>_^!CeR!6`-M8Fx&+$q3oHPGz!pa*!muD(ct80X_q$}~i!?(1wj#{z-d{>M6hX?Cs z-PX6qlM1pk_ru<`hq46S?Z*KeF%2#E4g;#)Vsxq4dP#x&FgMB_%p!y&iKF4n5`3#? zgn4!upYyxr%s5G5HO#B2_eE>=9RQ1eSo?9;JN5Cz^s%q;a2c)SAM!8jw6S3jcxh*3 z=4TiCkCgH8AoNBZ$KrnzP0bB(UVGouYCm0-5Wlc|3Owxn@cOjL>y=;y1m*wnw?D3k z-=U12=Q18kKmO)J)-b)dPY0&|Bm4v8Vpn%m?Z^`thXU#dF%Y(5>7ozeTe z)A=>sX*kv>AZ@lCo|rA-9((ym1xWvwwHb~jW@l>1_7K;PGu}B?{0kMu2=yoXWWjEB zW^6%#R)r>#gWBTPw4^w*(GKMMBadpF7+^-Z_w@?DSd`HEvwBi%HWddu5;)r?-6#v0 zSFV-_`KO-o^$yz^`J^xRydP*JQu9stoF3ou|2>Lz?|5k3w4GNHWAuCmJYCY*pyJzd zdMPc^NG(NYMqZgR3JC|m(b^4`Ft@7;?$#OVt1`{hh`Y^l^%v$5a7Xyh^yCe8LqQr& zBv&apH3{;2oGGJ2-a#6TFg$nXW(lFFy)2oYDH=fqW9_9PkI>jkHrC!iK*ceR+94b% zdfUHOA-EjG~}v_FrO-p-6-8;+d|V#md+~aj3S3kH3aVCN=|>Jh?%=`K_#jR zG@OnxT`4Df-fy%qm_xX7WfA$`Cur3UsgAh^;=MzfT$Y{ajf>GyAPQvtAL=F3reg$X z(2UyUK&06>O-(^k8_|O^yVi&fM%z8Fc>D(n=Z(cfyISk9{Q*>1L;KtpJIAZ-EoelU z(i$X4b5wHjOS#_^D_j*{h>gYf(}*Sch-BCCRILaaBj|NH zyVv|X8~*wlSE~t!^!=IpjYtYG8Q~{lp*x|d&IRcl`4WHF?@?1)e%sm#VHQ5cqYcZh zxK1U}w7axw7cc9T)AM2Kzp+Hl!`EoIdRhO?0rzqF^UdetM*C|9J%LyiAOL$~x6K5P z2_0&+{Q#C3*yc29$F)Sf*QZVE!0f`@ZT44z`hWS4=s_v7&LcnrO5Z>tzi0{tpjcd@ zM>tydwzPQexmA0gc8PkR!5r9y8M)Jl1KLzhAMlamU9w=2^(TkmU5TX~@! z2orNMSXydF)mMdLoY~1Oy5Q<1KB_&uxjCGNRrSB{q_cDJK8Kh(y5!K%UpZl+JX<(b zME(OnUO33LQ@gL7K@XRY{|YUxih*6N(Z?^YgxB*}qesY~ZKhWk01FnB5lI}F`ET7C zy_Oj5{EP2S&npQ{w%;B;sRf-VUH>*qyxs~t^a9*p|68K3g?1Li|L+CJ|F})Q15&0& z+r)3hL4&|;p>yl)Lf_&^=xx7u;!yB`r{`(X=?2gh69BkZT+sDCQ)6S}fYGyDP_$Fv zZ8pFH9u|6c=>d{>5Cx!}()Yjl2eC%4WJd2d8BTMUkIuV{)C>YXqqN%J`~NC)0{6b`B<2X~idlS%)R}xAYQ-_|4n5v? zn?Pn%i@O&n+#4In{*>|LpaUo68IDFL3l!lU8;4Ha({i>b*3BjWNl7rY%AYa0SlLvq zspXjvt*^XuHxnc!rIAQ60yo(C`(yLd2B~%S&hMSrJbo7%x`~s&kE-U04=Ab=fV5uU zx|%39kMR!!-%z>e+o}orNnLtyenb@|sVJN$HIH9oN@x|C(0a-L%nbtVEV&taov!xL zv}`9o2D9)AF;ZI%cbaJ=^~OyM*`)tz{eg23q~2y;W2c|l7~@=jYB4HXnPpIEYA`nQ zozEzVwydJ@ZG>rpqrxOtzJ?hmMIbe1DS|V>4y8#*WaglvTiT8ZmJ$>sI@b(IV2UFG zygQ)1T0#-V-rvsiS6ma{;CRjjO)3s5avhj6nUMEUwmhh5-54x@-V~}9GXY4XnTBtQ zcgP~go&8?RJc#dfH97ls@HXPpy^zLn7eO~Qbv(-97vGo3`I9tJ*knZ07`+i17m5n! zZ7%K8spu;NSTkobX~Z2YAG_zfH7}KY1E%!RI=wuinhX8UXB!LYPSl))C{_piq8^-m z3z!<5KM4#;m2@xsuu98F`n{PniVa4+#Oe?+jnmxy&CfMJa88|dbvo7y>9L(Vv!~9L zwXv|-|7sH9K_Sn%;qbQ9H|uh1bCboO0lv-P{X0>b%F>giC7wm0g@<{WVw?C+6> z_D}S;2-fLKuN4Kg;yK+r34sQqe{huIZPaoM6ropU*={%O+FG*^dD+pWC9K-sd%W7N zX9R2}gB|L?9qOZpXZg}pKG!bY^%tUGPs< z`jr2XOuSuQnzu7<^v(*rypFy`f3F>2#RUwsY-UX2$ZHhE<}}QKn)?voZ=fbD5w-ma zl@H2VbY{+?6htCwA}psBtmWCJe$RN z3Nso#d!LVq%iMUpqsuUO^OX}kM?JT8Ofl5##!bG?E3FHTw z$WDyN3|i!eGOEv@RIyBgg4>BnSWe4p-Qw{O-h5Vij#N>$F*{uq2|OxsI%D1a8Vvp5 z81xX$=@LdcnVAbhQjz*4A0LdN9B>Y`Sw{HnI(zfOM;TV3NPNcrmy9}u!+gB33yzp* z-)z8xuyX+`QksaA(_3*RA~|%$x(_(1w=pZOA&N-VaJG^&KQn5_!rRr_d!55JU!fz59ZH#dgxAp15N>N(p-atRv&kPzduFj-SLPIF zR~L2B4fd;wOR`ifQl^lSMRhTV2E##yfilUwY!CXMX7Dz`1Q!hpeGg|*Gw3;HS^8t7 z47UZ0ofdvsgyZ+S^A;|;#*8mQ_fHO-EP3)7tEjdMsvD4l3o7V9s)FEgpkeM%=))(N z{L<(Pq(}h}WhM;=*VuguA+cs{cI2yQAcG^YX+P;)H^51h{OcPKw*;KFi=AKN9k|Ea z87)M#A;B)DYo?q?Vs{A*cw`dcbASy|fy6qsvqb8~wSd*=BZ;0nF~&)d*tL#P}a zb7mapQS`*f0n#Pi=eHg{?A>b(X!MZY8?E=4T~fzTiHS%UFCH8Ccq{N-SZ0mf30dhF z)!yAFu|MN_TU)Ek7sRN!{1SOJESiKm(4!ui^%?f&O_OnB0FJ0hqG*Yh`pJrttu@I^eT#yYwqk{1HC~UIX zRe||2Y8@9X?xg`mr+9TnEFtiAz* zu=gHd)XTh}sBF;MK#eBhl^Sh^fN%wkZ?FO&2lqC;|%6-{Yt+$L$l-=v7zExgJ_6|?p zu3WXWF1?`Vh0$E{-uzDI>xyw)v&S@}C(OWY?7;8XhTh-DGnn{lCo6VZ15aDM-@~y{ zMS+wjaLpSt<6N-`-LjosUf!NHPT#!VPTv9v?c_e=|A4cUo58ToGKcPIJD2_5KsCS< zJg_42JtBR70yy6M?~l8$i@ncUPeSiQy=`{GrCcF?!A*a;4D46}|EnI4qsvycEp6F_ znrNsIn4$hHIH2s=#$3+LHPOyKhMO0ZcD>(9^D7c#7ph_KZUNT-CIK!DQR+zB2VZ^1?$ z3ml()3pwu_MC!#s|9nHu%zm6c9Dv7BK!!(QL~Z&kzZQVJ77(VYz6*6|#v@pOciFjj zb^JT>@+f?`=z|r{z@%RK6w)$gKtR~IBE+?6_?t~}3a7}NE3L@@J;s1R%mDq7za-!# zo4fBC6#PPYEOc3dD>6T8Z}f{gxL$y zVt_o8o67y`^I9gESO(iSECYZ898-fOJKpZJ?|L=ydKa*M7WSze)#M0n(KEx_A$w^m z^skb@h$S@{sD=<$wkUpI|BB>A6qx4oWw6+?padC)ssBbdB_N47o^C!m82q>p(;=RoEm1upN1F1jer&<8wk^u zNl`{y%^F#-CS@7%>1Yy1*O4oOj>&5FmF^`nVS4|>wqD#B7}EC(x!smU#i8FYU%HtE zHpX{8ZPdza!5RfEjPa@J9@_pKE{iu?Ss`Mt7)r7a)}1%_TR^#pCS{e?Dum`(6qX8bI;8OE9?*GqDo1g3Z^}G`{xi`;%RLhP zWS1Rtk0Q11#9%`Ir)29DVu?E8vx~4_=g=Sf#FxM$=)S49kqf*MWt?rVgd@bxRWM>q@HItcSkO^&m zSRJtr?BN=h-{P_=CU0lja++o?pDD<-@S;I8#8ESRnM<{P=dy#ZqGF{qZIko3_`KkU z4NpZr;V$1)FIL+sK`F|)1~oMdBXi`>mW^?K0Lk75fbf9;gstn*$P$S$j->P@*J^b9 zZ6ma9AsI4-ECS@Qdh=30xavn5#60sL-nr^}sBw?L+HYd^cVe#ax`qEL*v@Kcca@BsVcaBPWwJT?WXM*P!yT5zRA~SPy zmvfowZXrDFhwXd+lW)~EE0TOjUtqWy+Azhq402vQbqyZnCX`Amz7%mvI#7I%a zNweM)2fwJMcIc%I)v{rdl=bK~;MxN5?Qqzt|uaP^u51ms#4 z_ierl7H=n6&ePM$8Qh#2ec+kV2?P1t>Fm@|{^YexpxI{!+l|s9Wl+D}H@y2TU}<>? zkk;0`9MQv-G>^;FwG$r{AH02{r;)2UcCRx%O9zgirQ5x>{1SoYhW9n{hc8RI@3nxe zcMx>wGxc!`DCQrRL9dC;0n^(JA5WL>3B4~bz4;$+4_hCCTOW}@kArvJ*9X~MPk>sV ze0P3+c^mZc5~PF*EwwNc^zn9i3w+~y^7O}cuGgc``(*Erp!Z1N&T}gCJj+&W8id;O z2rhBsKKZMsR(Kod%1S{@$V^8Ufk)Nwo!2dyEvVsr27YJjQOn5UE$G<@Cnq4hvJbYm z(>aWEvM<(x;r+g{XCQi-Iv%qz?52s0ANR#PuQb})5 zXGLw;rbIPN#3LGERSrB*B|m)^U9i|~Y_bm%#=@n_S1ymTyZ=eaB?Z%hsfH_O zQK`EDSFJsZ1Vw>4rZHIa-`R$^Q_#qtF^G*@u`~Cu$zNfINY#r`GD&lam@+u1;^kXE zS51u%a(Q2JH3TISQ`?;?;4lJ6gE?1uLBS+R;A9k~7!Zn1j2KhCz=-U#n$T|1d^)wc z2An8S!@Q$s4snLRRiBoItT`%~#u)=F9)oUuQ3jpne3Gy%B>ZCa{}Y`$^!F_K zWx?^_-PjG0d_%H_sE_UST@}c$xX{olXQ4kJhjQPOCL66@w^+F;=1<*UaCvObMTHd{ ze3)Cuw6FBLv)%I@#?5%JfMy>w$uh9W@3WLVpM-liql5iPtc>Ms`zBM~@088BV`=(l zH4Up#-f9Rn={%}Wqv3S;p#&t~?(Pm(G!edu1t*B|Tlz&&<_Tg*K#0!RH)qBvVVB=a zgdhy49TH|y0Z*^k-ajvQlU1l8wI5IUKpnUTP*_uu3`Tmq_v#t&yX^7XQjQvqPrWKO z+%W`%HJk__6H2v@ZgZl#sLfG&_p99`a9&@Cg-lscz ztYD11=jO8E04LoK1T{<0JlfDz@T~KHo93xDjeTPWFq|LmyM@x@m#>#bR(C<~TWw1| zKj%B}71^K}x#2Vd$3b?(P(j?jfbSk?!tJsga>Ux}+qA5RiUu zf6w}}*1Tg4ytwZBI_KtAXuzvOZ^nX}diwm$0!6F)i4dyzN0ASJH55sK z-FIQa#GAVgjknuJljb$WP3RUM88J0S3-yy_1>kLvAq*>dIV3$nk!!H?6pYWlAKoQ9 zqCsa*>r#+FdHghLaApKhfElQ4iLV>#{*zKN;gR3w$t5R6;E;W^8h0G0R$Gq}jKN!#Rx6&2%`4bqF3tD;n1>SF+$vci zEhkOn`=&vs04Z|6Z3v^NXa=XJcqfV;HF_730&#CPO1pZ(R;X;_d|}PaTSJrp&6Xzz zQJy1D89A+pnP*BH0y$}=jV~aD<;;Ic@!&(pDNn#omk38J#8^Z5P3Wz%`t}B7l99gr zk`^gdiXq;tzieFVNuCAz^Ymdl$`{^f-(_3^d5VE?SdVe zdD~{Q;dCq^AU*5qn5sV$JKv9j9fLBSCuqv@ zz;RRW{um2UKEUw0RLcHRFt z=_rw=bbi&~&mTIJ;?Y{aCLyborZWE44{V1(I9fq3!&34Si6?~Il3j;Y&p}l#Y$EHh zBj6TP=ecSqIPUG%JNWe^_o8_SKk@XXl&)F0X`)9`y z6?cwGx=1k_&mw^44DQ2#=O!J28SV*wTkkT^VE5WgAZy04O*Z*gw2Hj{>^BMNe3mtj=ucx! zuOdDra`OGJzZQoTghVV?QonRdW?ywiL1_9iy=i43onfiX9aTfPZ>)GJPPWXv4B1nO z|LpPTo804@+>_n?-FUt8YYH0tur{l=*_m=Z`vTrLbBJvd zHDB!ygVK49$BJlv5cwVVTPSKMrKXL!(mr&OFisPT7HyXCs)`N|n?9(xS5{xZ2Biqm z22CqTt;Shh^TW(2Co9?qUj~ObbT|<)$)%FgVLBl}#PF#5y*w1MGo=pq8M>{0Igr4& zNg2;MnA*_X&cO<$``hFbY@nWm{M5eGbwPsLKh5sH@?;wIyf2y zCF9tmOq@!fH-z7Yqx@ZnD<#@Cq>=1mJfUmO0*Aw{j0)P?u>vU5UOLe_Y_kv7uMrg#M&GFrlWFoAluHnajBhA8J-7?K>S*!B<~evb^!O2G#lSl9y7e4h9U{rR(kz zQm|A?hoWoPRdGt zBe#YuUsJWUNogrRrmq-dXgq^4{=w2uQ1Q+yD>o>l_n49IfiRDoT6?Zsn~AK9vsrEg zL~8|Y4IFLlIx~Ck0w0dAfmB#G-Q~HNP}+ zr-$Ub78Ga_Y^&&KtLWzz1sOQgQG$lHRiIknx6k2vQc{>ZlFogJ6G>`oWJz;6BXJ5} zx4Xm#heS2`HlHLlHMc~&GAo4Ez7RpGqriG;?_&$gIWg+@mUAPmzNgi^8Y`xWDihTL zmLvKm@`BelDIs(YXA=A>Mzk(WaV!dCq?(q%DV&=#XC~OIh!r67B>z7zz;HMmI(?P7 zvOfNv$fAdomStuWElVw&O?=k28;{GeTwpzRp1Km!FF(O``+6*f2~C~r;x*7X6QngP zb{47?6ZWy{7&ArXsSTRE8#3z(z&`=q#<#tlk z)1R*olw4J|YT8@x?sz&My@VP=RuwsfsaT2$2x&&7q^4Mj4L%?z;~J#v<}Gjb?&p?x zjGEf;V!SI9YGZvj*6AyOAO=NI;J9nSGoA=A98|{$?-W0M^5@YKcV=FdYf-hu!sc0Z zpKHRV(5LT@^^7cqEs>~+k)4#l7bqG=>F@WEY!^85pEN*R%Vmxa=2M?X1 zr^Ct}7Pfa>e}%Kz>3F4G3LI|Xc#94c(KkRTFt3BtQ%1QoNME>r2#9_MJeN)UB!@yy z7Ed&!ALX)>X&Huh8qgDcJ(v}S`+s_Wk%j2@?k$SE5y(l#xb18X8W`IE8?Q=_p41q< z;McY`KOL9yHQc8jDVT(~XRKiOomOhSGzjj;<@ohH-V(3-K4w_HZJ)q!PI-T>YK21v zWEO0Rq>NaX@nSpIJv5d{91Y;4c-;#;e9Bujpu7Bm6B8C}?j0=eT$qe>2^~Xg7yYH| zl2Xk?Onru@xhnSkeUWP6Z_SgH?}gmyFHoMz=Z{Sr)wpllXHs?w=dJ>G2%Wz$cp;bE zMOUW`h0)VG-bCq4Cp#OG>w$oX`Pr!6Lu#m7cdtw$_kTfqwWWwQ4OVct@20rlo#^!> zF3QtY$l<8uYp#GlyGD{bGdr>&swsljsZ4~2Hz)NT^uj%zUM$_e)?~~$yZD?VMoWH^ z9w$F?^|L>+$?mzb+S1i{`;Nh|v`1cDHkW^>f;2h3>mtT5ueenvCu-6=ytFNUU||%v z189~b?DPu95UPIQgeZUDH+Y0!#ZfJtg3qhbc_ac!t3>>ITtjpl(z>HT@)4+CZHKB6 zLA(!9Q*y{ONKSoAt#+dQUHrEDS9KwgK~Gd{y-%Djy*En%Iyh>$36Qj{{nOIZeCJ_gB~q{Q_F|Bj$U+;cPayz{}HC%li@BJ(VW*{ zbFb#7vX&tiGmIisQI4%NiS&J4g)A~PIn|EmeyrZS_He6h{ZPa4qsamBi%9h6-OM-o zAOiyv0z*A@?erc_O?5StaJ5D{mOSa@db}Eu58|Xd+>tS<=_9JrFKvgi?f) z$5Vyk{ISM`ygW)_ja^1l%dxpVke8Nh9Pj4tZ=1f(i#CjKeYJ^dDd}@t%A_n$hSPgR ze|CVmm#$H1WA|=SJLDDj&KCAQ2+e`ov=Y|1eeRZ`L^u1s-)sn;_Fbz0AL0l;k&?-B zAc~9;@THQjO|{Z7zaJ&4xIi2da{IY;{56ZH3SFs_SOWPfi?aEa1}y~_?-7%XCy2VD zLmczFNR&jlETL%}1=)GZ4Qxi+d#Hx__lWazFt)OnE*UGBPP0@h0tLwWm=l!TJEhU? z{wUB`lt(YnI0WZL;40atisRRL7sjkml5GmUD8&EzlKw6=xEbjkvV&{aNV@b#u)7$R zOq3W)OWs{k>|?iOyH0eMgW@t<;_-){IjKDjOTQd#!vEvDdu)+#6?8vEbC2+m)>{Gj zoZ#7U@X}-80l1ka6Kh5lgS5W)5cuMEjBDRMZ`!zPlh)PJ6$sneWgWcnT`$j$@10Zs z5Q*~RJQFf}_&8%$jY{zj^P81eW6(R2Oh@_6^N+M*#9<8XF=78EVk)jGksW#$lc96i z+r4lPuRRSIH_{)pPA++GGbmwiroQ!dG}ZPfN4;s~VPos;Y95bjVC8aCe5Q%;Yom z2bfU&mU{3RNYFikRL~Jiy^;A(i>0jX=J>^1mfz-Vy?*&9x2Q=`Axv3P9!pJDsdxi{ zf?isR2Dg)Sw)yI!YKXA@iHBc9=q^-ssJ@_NJjYVm{J& z?V!HjiIW6z&dwyHbq@u6irz=}-3xHHt zJtG4EOUe-efF^@6ME`EfX5V6~kl{bJ?^BW4lg^ki-Pb*eBe8wdtr!>E))h+|WF<z@u8NW>3fq!jW|85i z1OT9Gi7*!`$wjl{E*eg@bk~g+DsaLz-|5tLlrI=zI+-C~w8g5=Ep$771Ff%jEzD@z zjQMFh`o}zEz^yE0MnO^p*@Pxay=j99nb6cDp5a$!)e3)X$%F|_Cu`7+veFvJ zHU^p&dhSPwpW1_-ms1N=DK}4U4qmr5HfZc4Wf@jBHxGb_R3exD=QbBF3i_*1QJ{r$ zUAlq_!Z0Js{Tl2YwpKNwv&tEMB*3XCI|!V8Ipa8?LyWymA+S{_j;%B_pZ$T@jpEl~H1snEUfPmgM@jQ9;K!HF#8I?9#Yy{~J~w+M}8Bu?Jg zJXn3uBQgu#aBNyxCHG_@63<}Yv}7~f$?FZpxTQt&s!N8s0PrS`?+bVD=zIbLQPb@q z^IugNlDTPOC(-M!zFaVcITbk;(2F^V6x{UV~h*(i``H%pz!}>T#y!tfrJov5k~f3 z{Fjr<*ywnRD`wSCE=q!V==FUMjH15J=>JVUKBZrJ|9FJ;Ps`VjIn?)#T5_5R5e1sd z-yV)$t@@fr?I9YGeuS~mS@r7zt^<3ohNY%{uR}Q(D7FepKEvD`6AP2nzFhL>bsPT^ zMsZvVkBK87u94`TJt<8l3h|4~n|7HuUe3lAu6tCY?SLJlR~dBfw`f)xKzOxxQLazl zoB!TP+DPW?wWnIc%hU~-u2;vf*87U@fF^AcC1xhWxf+vVQDUO=k8z@pjFw`jo6Y2b z{POEkc11RmPzY83kw!=YNJ{2Fz&jh=zg&V5?y2VmS;5?You!(1-Q?B*BF zeM%mD=Z$3-{f<`Sk|EY5{0s~L<7Z^06NYp!l|k9}$8Oz;8k`_X?~AI)Ma=@OK}n7tZM9h&SE(^O9W*lMu3dk5N{&2PJG^-Xod z`XE4{b9_zvLNfMaHtdp5v(Yl69Jk;eD^i zq&(4_LrIBQPC^@yIy!cX|> zwt`xrZhNDizz#u&$1!%Val+2GpwA`y$x?zGQf`W0CTX$L`9((DB$`(&g$On93sj6c zN1DTJVu1gHy-c}}bxcyGz0QJBX>$uWq6p5OOR@sh)V)0a(RzK!-0YnA1?62CWW7HM z_U}*u5iRUPM*T8{&sWa75lGMZR59UWuP1sW#PW8Tz`1YlG`U27=pTEOIL?E%w9`g4 zvmJ_oi#8vmk1wL3HW5CJ0>UUuGLyoj9jBKrHMa99`*^)BKdEhgbj0zIi<0C#bQZBX zgItfw#3k8I(kj24=nm!1Sv{itnS5RkoWyU9;K{*eC+vu})9#)hX@;SoY6E!}&4r|9 zO@L?K#8LKx;n7dgtDf_B9hN7boS%b7a-wpLY;mv*?o3Sq95wlOfnjzD`h7W4qu@mF z6uMdUr=O?Tt-vgUS5Albh?e3^7mHDj;IDXd8~Pq|X`?J$cq5wol%-G+0jX<4x8$xo z%m#G#wk3C6cg?40dEtzYDzrM;UO=KMs`Kr)Ysjje-pdb(Z_1ftpb|81K(e~u4!h$R z1;lQb{u}(Dzr(Ou{S<1BCH=rZ#mg{v`p1CsRP!0wH4yxPps&+n@9x7uBl>zj{h#u} z*wN2zeCP&I`Qbq&y7}kG0NS=&ggW`q)y)A!)M|GytD9EzB2hJyO2u*tF=Yj$-(j)U z-b2?K6p)L%0m~d=xw-&B{l-Sg$(H&U=b^1D%;YIN$ZVm?M2Nf09Qoxn!#81PSB( zcnkaJVoZhoaqNP3T3Q?==*PF(1ZWQ`acp~bVXO*6^!l4ZWH`#Z@)of>y?2{?X*$Mc zPnC8sbc?g-1cZ#Sq1&u-*ceb4^^VCej-B~S zx$PU}vfA~~>gv7s?(3ElRUrHj;dp~qH7g#`sPi=&6)eO#@AH=!JxDNkco!|-1N1pX z7boMv^&6w57-+p(p$kW|8Cctl_c$X-xnV&fK3sA9E)_zp4Nwb$aWQ2>P`ge+hmiAT z6!cF&ZwqPEyz(lVWvbid+2VBVz}yx*bU22!+cmK{)u84%_DLS=^>Tu<;&LjaXTd+_ zAf0Z~n>(Sv4!zLkH;&=6G?Y2sH0MT6!c^>s;Qx0N8lzNr|?9gP|Ii4kI2yB%~V`EBq8NDMuzOAf|%!le2(HP1K!W%_tKq zjcYxjA@^pP&gXQ!_v77Kx{Cf?@;5#lEHb zG7jnFbH`BDr^IBG?7MB3bUjq-)Hk)Yjg~58koJ5N^!>QN^~j2-=HXu$2ibhI#FU<; z)0JTv!&Kqg~XV67#`X^)(_jn}4eN#$t`eVKk_P)~UWB}p%x z#?9vn5+eM2K}P6GZI(Cu`HRZvl=^5uXDc%NKuUAjILAHMUO-BPDAn#OvvF|++Ny5s z%}8EqC}0Qzcm|bsCkpDCS^%b4s#hs_k;_ByBd-BR&RJ%hwiF)<$I?9}>0Zk4*GYBl z7d=#QA_f_^urDs*J5#|^ah{X2gR=o0wk4jNZ&5<^K+SZNwT+R*^KaBIWQ(5mhKhs- zji!NS)$o1S#STwRMP@{PoULPT@=w;zenx9oa( z8nK`92Wo`ujxQMUMG%=KMj6y>(kz|6ZjRy`y6C(oQ$rD3m|jE78v0x+o&}lmb{xZzDMRTcmc9`AT1To@w-`Bn7~;TAPteB> zoOTfi**j`>o>#v)-eJ>$z};dOkS!5BJR@XJrMF)+q*u++my(M8$IKzAr3LH(mK9WO z8|<37CT~3ExbzL0yx#Qx9Z81C6pNS71BEATN_4&HT=q??r@T?J%}OH!dj{gf1UZ_h z_)QN9U#>l(cyQiIIExsvc=47afdA~kExd&IoBq!c(t zyChFvck@QnfVV7gc*y4e%-N)Vl*?M#4J%aVb@O(9Ls$N6JN|rD%@lHuAz0W7!B}uI z^rO<>OKJ!*kPb=Y=uwi9)TM#^y#?^TqLqI0RKmXMAFEFI252xQ^(A~Er=T*vW@iEd zmle$Lh8U5@t=6A-%HPliAN{7e!zFQkZ&-2A|F0nF>zlj5U!_}H?sMwM{jcE{_{3Ur z-^}5U>1lBswI0TVgx3~g-uA0l5@1O&nEAzdJPX;ZaR91Mc4Lu|-zekpds2CeEa%+f zqphpW?(eu9YOQDBn_F}`Pwz!=so2so82g`C5I+mzM6UcTA}t$T`-rabi{Hrf>Kg1i&$n8>~xj4^0g=Ah>?lO+;Rtx?eq#&`V4M&ei#zz zhnbTGU5Mgh*_+kt&o!=4j;SV}0wU>Itp2_4`;+R$o*>xtkSbQh&VZ@MYU*b~dk-}Ji6q6>Z_|Q7e-VJ@P{4>u>= zb6|F~`=$2&sWq4WDdqH!TcgbNR&=5Ka+!*wcYTf2rOGTt^hL9dJGqjT|5>2vI~1`? z$WM3+6=gD~ohtYT3gwj0{BTh=D&<%*w+f%(f|pvT67pa5{>a!!P;*g|rcW37HpR5L z4T}?Shl{UQJQL}t)}o8AOVKEW@=I4>8XSl;$Uag#!D){A_D`w;Q@1FG(o(bmQbrcy zCd*Q+IR#0eIz-Ot72qx(s9-2kcgLd(*&>A%5>gdqiuvqvBU4FXF8!ugu|>fPzCrn^ zuY@Tc%+fTBnIx|PQb<&(Y{C*JDBPp<2~6+7QUiegeT5~MV4#1Zq6yIVUKk*h{CPTK z>!s%ec5I=9dTF$&+iFRw=U7MulHF7P@$>1?S{#RO2TG*Ku?CX zUY`*vhKbb=-`?<;9oNv*L7dPhAY(#_IgbrXmR3rd)3l^LpUlE5AUU;IVy$9CB3U8j zVnVXEK1I5k215wr3VhezxX6c?OX{Gn3q+Ofp(TUdCj2&vo_~cjh){RvFf^qSOQg>5 zd~3m6XPNIdz+bQd%V;M_$o{VUWJkr%oR;y`YR&spQ-R#KH~eZi>8&xhV4{lK0nfgL z?o4$nz}sbi@($EK)F87=eO5U1**WPV))X}SeB=tvvkwK4T=@lar|1IDT+Mb`Jxvd3`RTI6VUcN#w!JO;WQ8`qtZLtWf@Vk!Do;Y%ARp*<{2+ zlHu9J*2P6C2(I*??dhVxK9BB@pz}S+d=9p=>aRmzR!#q)Pu-MWe6c{xDg05`R zA+_9(ZeXYet^L@;k-kA)>0mWaZNl9h@Vojd}(ii@EV@$nBn5Af$yi0c9J?V@bfAM&Z= zVKh(qBhtqr;8M-}j$7*bA#EB;WLK^5TEt|5%Z=4+?w;$s%i_j_g z&|`|d%XifR9PI-jJMZf3d$M2mUq=kdPD?RN8AP?PhTb82BHyoIDa=lWMwV!!5D)y1 z4|mS!?`~I_z$tJ7@`;Q!0ggsWy7{gMJ5Fy5_rvO|j(=vvPrna1{3@(%b@|Nx&b5me z60&<7j=8JJ^qA}31H|PyIyzp=7rfy1ep_;fUIIcuV_zRsCGZMIWl0pVB-MY9cx!-Q z_@A?v8&bh2*}PIhk6JYW&^Mk5`F{FY2i$dU?XR{vJiXkxkog!mOqufkx<6$5ms(St zDxevU|3;_YcptF#jS)aBISZFh;DCU4T@!+PWdR&+lILfgK(|uD&@5$DIUT@a~Yf02^(O{ zksm*^hY)d3^lYb^A>S>Kw_X@m+Js-OV5088U6z@gW&~XI?8}Nu5|ZHj8eF_IRRVZs zY^D)IHxLv+;yz%^ zqtm{_@$j>Y>haQe?s&oYC_Ff;OV77JqtV-OML*41@l5d8gsauOk>tFQZ{ycN!#6C3 zRXO=8bIKg@#&rffzDTNDS{mPugnabMm>+M0g(J2rRU&l0bra6_bfAWJVuR2iNL5bJwifuW;yCb2vavv6KYO7k;SPwyb}ccUnut7ct#gPYgL zN9+vqblRZQzqmsgn{H&&lheewS4R~#fa7B`)NJ_+$I1VB0l+cB;dC0#{^+6G<1b1oqc3G2WzT|c-lcrG zq{FO%f?|rcAtr(0B;Dk zmQ_U*QpWE^-l7=+EMh6OAFeY&CDXzXf`m^k`cB!k_$ikGLO1EU=2!{_sTSd>AsBz3 z5OWtmD`&TW^hD=;Oa=b7ah~`AC8%%(W27f}1i@uK*!jwp$ zqCbf#9usTvIZ1UqO8sH(atJr`!CDO5ocM7c?~Aw*KIwONyi)r%l(lMbE#A<-90DpO z?E2p^X*wZgFQC-qXS<2b5=%C%)6(}cYVZ=Kp7C7y^p}V_=o%rUXBxb#Xvs*>R@D#{ zbPR-$*1kU*+1NJRb=vyBCxYENCfS$KzM^g@&I~>J5K$bO38BBf*0jXFQ}Iw%2%Dh$ z$tg-by}t8fIo1#{9ua$LoZkiwD*p=Fi{_)dOh@**yXN{{pi6!6^qn_)Z&(kclc6nm zhls3j5F<-Ltv8D>5@PW-NNFi%WgWI$gJWSRVf% zT-;1~B;U!Oi<9TrJTv9Cb|nx$U_bjwIjr@dO7oPtcIcKEilIOD{PfADBj>L`EhB^` zez)b{=~c8k@(?iW^Uvz-6)s851-TvjC#9doQ2S81V7B1Rz5XAwnZlbr3j{pQ=G=(8fCX6lU9s<0m zBZevb{QT}VM1qw6UR@Gi5->`Wd>_FgaKM!K78-nMIjPhCpp{IWmC?M_0GvJ8Ho<;o)MkW_bppINFqnzYRT4IGBiV8~JpfAWhUc z%1P?jbSQbw_4&FGGCjQd)_fIAnWQ@~E2L?YR6LtDRiCU?B{BJ^B=it$Y2|tLatxyb z6Z3hIu63n*U+E^ND+m$Un}3o$4j^?XwOak%kSvqyG$ypHaIB3$#Cu&jEn#|cNVsn3 z%{ogtA{#_+UkTJG_!OO3#&&vZF0y!wmD`?OewgH1z%(CV`p~cpS!Xn~N-XG69oNmq zAn0FGm~}42>bd~>tN1oEQygvHNOi9|o@*FO4J%+f6d>O7h@K4(;*I$1Er!X5$vCv4 z1UNj4sO63n=343wREHpvSc{I*iBQlEM;b}DXf%=rsRi#`K5-DPpQ>G%1E_i z?BbiYDp%`5DLvM|2COAE5Ha!X`8cC}$U-Ilczl;Q#zfrrIonRL_4_OL0%mfDCg{Wd zM-|6lH`yimAT)5JN}~%mih=Mh6zOsjscKecw33Z11CG35$<#BN+1*g<;p(+(YJ}O+ zYN-r8k){n%&5sY&pgpAeWK5JQwzakP$4(&VX0m#f6#h7&ncq&;URdV_+PLj-oO>4~ z{Vw*;{?5udkOz^v4=Uon?5mZ>MjkwqoA`Aw_N%?Vcg6;0iZD%M);W>_q^$tw3OL|u@@lwm0Lkb2aQYh9!CA%e8+dpS5XZb&GH{_N&E0av zljgX~`Vo`+?-y?BgEsus(2;Tlz2e^iOpSj`fz#8|erj)Tl^413N(z0CIycVa&F6 z<>$}sf5fc2{#Ri@Zsrxo{E=2LN|36~f0(IU4%A5w|DNeV)8M7-e~%zwxCtqEeL9RC zwO}=Rz&3eYT_%W=0j{I!#q9P)pq~0WV|8stFz3i~Oh!Vow;9mJo~LNbozt@RQKon& zWiz)NeOlhP2*PQG;k{K>12^#5RmuU5Wg)8=4d9iZD?@Q1!l}E2nRw#@3%T^pY z3DDvbBbW4>j#C{4XprG|`3nJGL`h$t5ZYDIwo3n1`BBv_AWhIHVdsXi^ z-ZT8R@+SnvMo2oZcZd@(4zWKicnT4GTB{Q!XlQJ_{P{3NV|IUPCa2GOiR|jWU)UT0 z(800~*(^N8^)fz{7E-o?oVdyyB0BtIrf54HW0`vN69tZt#K0Uyx74XqtZiNqYBT1z zE%aJoT;qpY2zH7JyH&)j@dUq)>oI)He^`o%8U?r_DnYP14tLj73BYt9?bzTZ6-<*F zYF#q(KGHM3hx3=i;p}{p3OaQ3=s0sS?zx@6U)kUw(?2vZS)KbpF0yU1v1{NMzM7}( z&;G<`Yz`%2MJCC*_q@sc)bNoblzEc;$fae3;oSd|#gGvut$`I8z$J-sQ(yx`0PI};Yy)!Ui~V=9Lxn* zH=&eW?C%GQIyj@i-VjD&W5Chfy3=hg?R1Waw~knM=7OsH11 zHspc7O3n<+vWHHF9)Won_Z*x*#aiTTTK4fk0vbq}tL_B5{&z1cqC2~b~v$i7u80Q~cro(jy9w2OFksWej zY~}E|6s7J0sG9Y@fSkLnATqrzT_fOFH!h=D;@{*vXB%U)PO0stpy?(Lld1~x#( z{Ol*P%TZz%^3q>`WsY&wS)v(3E)?n=x2Z}S((a2YA0`+R}W6Qk9+*IavBeB?~oRmhX{rN zlF9;&T(S_i9ZEx6AN2QcMn30t@*HLF%kPk$+f|3BCmYcmHuu|8y(XbCf?+_*`3dl# zGhY8fEXY|B@)7iS_o17lCnv<~n??_ctZq;LySBJ{-WSnD)o|3@2y|49q|#{H=q^*f zr-{y);kEelDd-#EuxRxQ+i67@ZKpj_)Ud)6s1_4*?-jRTxkN7<3)~RJzBZlN0(qcT<-MNJC_FT`ja>K;DF?tP&8Q;nWV~5J% zdT*kS%S)EA_LC{icKBc-Y>4AC3Pbqe&rSh&w{1Rs9C6H!?{Ar^kT=5O?f9=iY&is){ zP&quhPhg_D_-oSxOY@4c8- zcBrZ>2Q+PIckUwyo7O zF`-k^*z|)510F&730Hng&Mbh)2-3-oF#9)(l|Y_svg9Tz3=Q6!iOwG` zx=~JZ&T*H{pRp*Mk-x&myxE&g$surc*Mkg;|I?04g9hVEs<`)(WEiAZ zZIgL3Gh#6wFt)rj^>IAA1_1Cr$ykraJ?FncDw}bi|CSX}7#wi3;vcp_FKdA~pd{Kh zm-Y2Q&{(*;!6)N>!9UI?KL~f}i#YEXl@oCIoX=eYPfnxjETZS5|200t!=QTf=1scU zr5I6z{d~nIU}d^_tD^~V3g!jfusCE)PUdVq(9YB9wbZ%OY!}WXZHe>YM*Bgw{dO25 zkY~GpfGzO0#|O@Fm>4NA3obUK+7}giUiW*o3HWhWvu12fOz!v|*xvkiXB}A`TP}&R zwR9IDN-+t`E1}~s@X&ynI^>fh=joDBOnuNal#WmDbt<5(U*Kn5OZ4OJ9ehF>jLq$) zULjdO%)53cN@%Bvoo;ee4xyz|mRu7|lc0O?oy;IE>)f!Y<2pJ*(t18#?Q?OK<;}L=%SC=e4%@Ku>{nah~FBj_p$Dweb!;LQ=mL9~d{_*J?XF7-5cG zCiz&85+qX(UJKP3b&oDq>y!uOBsQwc_uU^5XHU_R`Cq`vGfXxCMd$T#c>(7UMrO{5 z(Bg@^1s?mvf9PT=cz`axr!9@bk|u5Paa)HoTOTApLuCyDkwxtJBX z%QedyZ5M8I8oe}ivfu&2YB|cJ0AfHu)7w)4B*4|F@6hhk)v}UKC!MbE0jcy1$lHJ1SP|6-obr{<^ z(nmePwa{yD`t)Mp{PdUh_&lXHvTI@ec~Q7Xd!#h2K1!#KqPA96;VUbr2k(~?26r6~ z3tSnct3S8akeXQy19lBg2s^Si;fL%RZhEK2z6xZ?umNnTWH(_`P5KBQS>7P%%Jf)( zC8mVPXM0I4^DDHoa^&e8Y$FL&k0c9C-@54{ha<;LvOfro$6!=nXPVzPN`=+DV^XeOhK`dJ_ef*oY^E5HRqQ0Go_13Il->b zJ*~jDMR2()cXhZl14JB9I=NwDj##HS`V|{cYGzI`7Y-BqU<*Nk>{?kwS_0qgMZN$D z!&+lE#}uVPo>|lGgMDZQpOlfj%}%4vO5$Pn1d^qxxdUQ5o$j1=7WEzPG;jen+u>yP zZ?043J7?^XBnVFOioQYbQeQ)pvfjtAdCb^Hl*swjUK{Om7^?B+bU&st181Xl`7wb7 zntUaLn{BKcc!MyI^^N&Ma7SzF_p`NjGO9Ok!v_CwwU`WoD0nbJm$F|>gE`Xmu{Baq z@W-2TyS-qa&sKS|rw&3;&xV# zc6Q$XR7h1{@AgV?Zdd5upq0ZWibKj^GdXw!-~>PyLs6;@R%y6mD5Y=C{Zh@tlmwFe z<%5na;O_pXi;Lz24ZS|q;(!K_NhFA$HA^;|2M00O-AHgEu<{QJQ;X=YjxATzROOZA z#-QsYGC3A1zNuDn1Tu7#EO8vCjxN`?g0PE66_K6V_DzAO?~nO;w_d~~hra0vJ)@dF zSC9QT{r3+Jb;iB&`J&x!zr$M>3GME)&1LkVt`a|E99@4ckF*)ZKh%8`)Uf0%TQUCD zmx{?dY>||X2dkpBjJn;e?_&HBi<+LgtRVEG zD*E6lQ0OR0V6Cy0u6;=`<;NX|{m;S>?Bc2j{A?cf%SjhO* zxQwxCD+GD(H-fG?x?FvVl|Aj4D0Q?f%Za082UII#v^qcCYX4d(k^Xo)Uh*t8cZpJ$ z0owuQPM;LFtrb0uztu{k$~l;2Z5|+*dwn&%X61~+k}z)ox6*#i*m`3@0CVQp+!!Gm z9{LVJbbD{d{QT%O5g}Zoy|DUm?wnOXrBQp{(X&i`Wr8|PqbNJzHt+B?@q(FDkrpC! zJ`5}7%@3>V{B&6pJ+-{C8Q>e0A%HV=7eFfHJ@9WN25@mZf?h?syNy~n{CMtIko2bvRxRV80w`vig<6I?&{Aw^4hhp0UnxJqbjCK@gP3qQm_VT3Aw= zn5PLCi7qVbrl{n`bPx zC3nZN;xi(hl@LJx+@sjH%`mGwwx;o+D%sGZK5dE4-og3MNd~<7U+x8N9QrNJ*K=Zf zz@;)$hAv&nS#l6At-5cnCOxCscB7@axcj&aUE?TCSoT6AxE6@;R-5E3Jl%HUxZWfA z4zF!XO(4djvKTkJ+^S~RZ~;wi@3e%*rHb4lraGxR$Y9BH4i;2CnQHZs6{BN(|wb9z(z;O3gBJbSTkh<~BV zOp_#LhIWY%_nOoQyi49JE1a}RbtHsyOo{J;VCKIgu#e7s!n?1;X|Qgb^}jNX{!`wa{! z>Hq1ZcBMo{VsRL?^u0trRdsZzkqypprvt$<*Y;n&Z#J|PTTm+JO*)hsw0 zC#TEfo!bD6>-_wjH+_6px;P=wzcac%2>_v8o}c_2*V=}UjyN9uvw`F&>foH^!)a?? zeIui-bEr7HI|$_gh;XCUzz6a|C9~kb>az`p0}B>}$=P=J^n4Kcks{LaTn1#zBSLHe z;wFi<_SoLJZsF0q!D-_#Ipl=h99n#%M65G#kjuxF#M!*{PuyaCKM)7mRhHK8krBPA zn&wu-^A-1G8r5aK)P@*pDowja%!j#KMM-u>Ylgl%)VC`myNy@HT<;9XzP~=EO!;pA zlGW(4J58^Lf4yjxAR9%AXxQwV+I;Kfe-=+Ee%0}4I}pT8ht$NB;Ql5&sJ0LAJts8^TD3~`NIvtC+3 z{*%?-8=GyPAW^|-R_O@)r?Uje)4|r-n=nu$P>JYiDmxeMfF`1-{fMafS5brS{k>0; z0Rug+PhXS<{ZLPAtX%%+nc3!eieG_&PJ(7^61NJft!mFUnTAzr&SD8SHAck9)b0>@ zCyi`WkIh>CsE6+w?cA?TJu{^g-gMH6N!hUE0aU05q8+5EUPEXDRCYM6iq-TzrYbY6^xhR0zg5&R%EsjS@*`!I=&jm>2@y zO2rfsTkzpT=kIV`8foDFi{BctZ7y>B?OT7!&B~t7L^tZ<5A@!h9JLi`(c8-9~wIgD;aJfjQM;QCcRC%d*rOv-cYSxB}p8_tFx{%iOir?t^GH1jM}~ zbWKm=xwyFK+YQ%5tgf!w#Et_lxEDhNz$UqX5=lvAreF;%RG383gD>+Pk-5IU{@+Oc zwf{0SKLbDkXXis4n<{WUnIN|SXa6$%HF=)W3=qA%Y5{La_lqVEh}kWq7fDY~*Yfei zL3}|4ArN|@%r}v8z4e7KlHqj#J(!=L*EcXoFO|K26jNdbYA@gunXtXNGF0mK162S6 z1bkL097IN2uQ{+*5`8^5lC$&9TUY<<52o-y$xeCTeYkL(Yjv9&y+P1Cmq}8IA?Slg zrwB-=4i4-)xy`fWW9j%Fs7$}g5jVu2e%8R>F;3P60)Yesraxu9Yt|a0GhXSmmeZTJ+Gu@{ z;-k>KXi#W8=C zrJg9)J^Er6MOo&jq^z8a3DeY?rxD53xVe$ikza^S>LJPdH8LH4BSrNf3fX!(!@Cy4 z0($g%&L<%67E8=gfW+|LDJk>^6{Bw-pcVETE7tXUm3-R(3Kl zx_afv@vMO1cYA_I4vtQaHnGqz4mouYL60|_rK;k|rDNn8*x&vLC+i#)i}p#m;MH%< z7@8E3<7d`8cz5QV2{fE&Rj@+Qf?_-ZPB?%IaNyqRd)oi*pO+dAVu8&-{r&>*w#a94 ze%Zc{);rbnjpgmeO`f&_Br2D;W&$2AsHeF{ode(hMLBNTIyyKw=}$I^f%i*eO;?f| zZ=N>d1iF_2XxJtIBok=h$J3#K?S2Hk$~xv+uz3q;XlwwO>Sgiyiytc0R6cC-e7Er5 z%yH`r+4Ifk4_a@GT>b=5cp~C3KXIPn%`VA2E>GzvgD*>`7+A^%(?s7Ea!Am8`M|#S zhmEtgd;_pkUVc2!;?&h^5uwZvy;DD5N(QOIXf_4ploYez1u!l%d_XLD;uj74&L;I6%e8Xt#wgS~?${hgeju}QGwvL9TYwz4lG9gWrc4`}0ned$NL*6ClA zFLPB`Ti^5-haFX^iKfDOgadk(#G4hb-LuC7R>Y=AMyh)--A{Fttd+pk>VLoz5a|&O zC=hL}x2SL^Mp{zhOpT`gHQT|{t`H=QXntDaLrg$kQ#15QnCKJPZ zvhR@BY+=iqY}0>h1Yd&mgVcMcwz56!>7#bDLKr&C3n`HP{gs=m50T!PTeoj) z0+RbZ#JbKi!PaKKrCULO9rP#`<0=%meQ2?;tpHbpZ7 z*Fhy+G>Uiy_%jBdTIbT1Ue&v2r>nK{jaRrnI|BL{<1$?NSS@#hl}>YcM27m{Jf^~Z z2R>57?^;*Lk`hF6KsIr#l@{O0KfC-nN6|XYEcldTz4dG+`jmBuZq#IkNy^}Q5i(ZL zx7%hwHPlBG1Xt|wCTB*H)yNycL*(7N+`X1+ouezoAJ{4g?(SJJ41JG^y8Oy*E9@X) zKFT+9A4gla1I(VwrkpUH0ET(Rh1@p3<`Ig<$R~g=%r~9R>8U?f3G{YJ7E zp*)y&;B6Kks-B-#Ro;tL=Q%@b|K?;v^p4pkm-t_pKbU)np#N*KGp~e2zO8|Cgl?2} zoO^UzhW<4xcjeNM?Ujleni}k^=Dp!)^GwYh~zbqXvRpq7=Xr8?PoN4^>TuLR6Do!8~iHUw$fz@hKxInX7SLlu-k zTX|6}%WQS&GG+>#?2CJE^o1LTimp59PrH+kcz^&18=(Q)@#cQn#+cn(!Sq#6-^MrM za_TLFvXHf`wr4uxs7k!J0=d@JZ9uw1KuWrQ;VlZ*Nq0(%0vU@9uC{vIJRXZvhkbgw zt9(woz4e+uUK4dqod?_22LsidmHxNNAC4Si3YlNfXbs;xgk(Je$D^IOCU+4it>PR1 z_pcf`QJC*~PMoCfsM2fUUMQ9t-kNb_x%d}AMrvUBVE+6iQ!ow+-kt`&SgbX+Z-A2A zQRwk~Xk1LZ+|}zhi(1mmvN*wpt==IAF>$#;U#aNmFa_4t-!Tr9xr`83+lLV`#|Ua= zEjY8?Mm5GyeHO{7G^@kbm_9P$NELL{ zj!>8mqy%OOoe6afxw;?W7j|C+S^rT3!y>ktS0Jhl^aM>;o0xLhMSu(WD7s zeTtFFiO5Y(!f$5}lU!Jwoxx?HG*4hf!K zu&xU(L^KH`S21ak*vfE7f8s1$ME~Wh$f;xRPDnfp9-@*;LXsO{nK}3L{D4@LS?W*( ze>!0=ModP~($`zlwwwtpYR{v+BB{8Bvx~_Di;?#QANZ$Ik#V`*PdKavJo_axz8eHa z_w9){=gAX-t?kz*LBAw4KbwmrR`ZGvTCK0qk30J^d&19TC&u}9R_`KA^Vr@Za7GA@ z?VPbuBB?na9x}5=7nS;fC_YW|`dN!JBHlZlA2PhYRMbtMyl1}(H5SNRXwDI+GzL{$04AINAwdvKy2e^RveY&p$@-$&!dL<0=DHi(;_ zU%j$b8DBo40sH47bGVfwZuZ|M*k`-LSSS}b{dMx?&N0Jv(&KevD!cEGp!c-wR-WD} z<$u8D!F|O&1gn_tJ8zQz5DymAF@Khbo8`)<=zO3QmwTuFG_6yzSsUOJ1bsTh`fG9u zeOe9}PJg}-hkGP%-z@HVb>PK)stRYWQ9`p}Sw7NO7Or-*E9xp2s)XzhNvV3!$cY>;}BaPhI9g)wjdfaupRllO72evt-UL18hKms4?wH+DPlrX zTgmQ&V_4mT9szFA$4SnT_{ zG}R7JfP^^v&0muT<%Z6ugv-dvQ<3PSyGB&B{dD01&>My>qH!yewH!8#^2{-7%1o=< zwv(#BvxA{6`Cq+Oi9sy^4EI#^UHSV2QXfn4UID`wATwF9XqJR*+? z;M6$6tBe^@5deJufX5-yLVt@_kr^$pYDC_?=6^~L8JokQ`1e#$43Tw4sEaLQ-F-(X zj+9Db1<%+?d2RyD2_0+-hZ?b74Ng6MMrE<}Z~cCFWF~>xS5G4eNfM`RzQ6*1Fan#I z;FiN&6I}CrZ>W?Ew<{Oby*~#sqzvEuo0u5BLpT0FCZnH)w09{quoHSVi5)bbwz^6V zFx2_4ox8hB0C>vs0WY?1aIvwdyWG?2NAJs-6hLD0m|tiHWMV{z3ZwQiTz}|~#Y`J# zapKNvygv`x__bHo<3ZV4IjvI0YyO?Dn!V$($O-upAzF!Fm2egcs;Gz0&l?z z!e^)Z4i8M-3B=sj*B0Qg-e{6R{Xi)C6qLU2{?ADmU@iA5J6nCTRMZ`K1+WR zGB2&{xWxOgwBYh4n7lT(B}hn#mWr02j%0By4msxb{-XF$MxpXKLHZb z=(Asw(@E1)YN+14?mF6v>yQvB+drd%z|8grYpHm!?ZD#pi+~nyd_2AF{;2guiz=7j zt!Lt=v)KO{z!zElZ+gXHl}~%wuzN88TL+M9Jwd+-g!-12k+ZWiSFeEkjnIEWFd#;z z4d`-ox;?W1_6R_`mNVp%_ukaZ={t~+rS1X4Af`=0;F0|~?i4OLMvBXpAFni!1%KzUX6piTK)D96M)qLYV z>_Isx>JjT-$kh8EE`0<=h9kpO`14V~#$7<}?V3SAKU8nRsdCEc%5IBftUuUQXm9k3 z$q^)_m^nm(?4rsLH<^*TJVVu2D$F*5gX$ee??=`FSO&K;^PnHtX-ENt0DUx4z}{;7 z4|_cxQ4{Aj%Z@J6jzjDHo^ae0_Q}J4oIg)C5yfrrc;P?a%@Hg!fMi!F`9B?gkh?0TITTEJ&YQ-J&B3h)#QZCMMc{q@ z@O!Dj!tDW@Q%mpw`2)3Mme0Mrg$BWV)8X24(XMpnYU>-dod0~|9Oh+FGgejasN-D4 z&6q88ifM~%{|v8Za1%1z(-)`%CQi-@YC8wu^rwAk>p$B>fG?wkU&a{g0u9a?CU@$@ z1S9>#+SSN<9440aAe{!y@BJBQAR$YYZaVCzW33yX%2Z^MJk~? z_J*;&R_+RF5z;8C(GO2k`>*G~8qxcgSKsy2c+;*R9iKZ2r@U4Ml6N;uMx?i`4@|1wLQmu6^Z~3sM zzFju13FT3Q^X3M&o>#w3uv;j|SNQf5@ccvgx-t|_oP~KGjB>s3$}0<(kuS`u0PI7o zkwo8qw1K3e#Jm?d5GylVhG{qEkrd-MCh8n`YJ@+CXm;|kc>>fWdzAnfZ3bXdJmOb_ z)MOR)@`UIVADsMgEYY8cqk@QS1ba)~>*NtvmC8V9M>aUPQHc*7r=iT!)?Y&}8#&8~S)9(Lh4QI)=Vv&o$n`OBxPxk&c;(F;i-6$rjMH z2n$vzEQqv%xnyf6m= zK?moi0?{}AQ3`0<{i$(Q>=6F#usrvwuaDJepu2{hWn#iyc&!>8V znIxoGjw-WA-m~2(A2gE-dB&3l+1{c-hQ?|cD#E`kY=CjH-FO-7?;6ib7a46QTHxM zG?hpqg?c5k{X0YPX$N$=+C&PBZd;KxRGG%!_l9?YzJV;m_=g zlID2}5aA$FUwXfW@PUN`q0UWBkH)D=YrdJ|16YT2FCdD2-^qe&C&+GsR#m0v*|7`NGccX;;#1_<6Vj zN~MQc6PM{UTwys@afN3b6XUo_Z_f#k-l&`s2FhR-blkX+l%*AJn%}wYIP|`}6v&`N z62*lUMx(d4pAq3Cts53Y^oWHJX)5fFM%@ru_w0tV4e@M$@i#QNQR!|j_!P?xip_Bs znRj#7r#(cVtwe8)gOM^3>|G=(Ad{W^S20Giu;&q0UjMlaMp<3*g21|36K{4^l0HeP zJpRCJAdyK+O|ew^uKI6GnA8kZX;Usjc6!{*N4qLB>7WqF%Ol=-MOJ;JKzrBO+$84= zt_asxQpA^yeiVx`UwG07WOTBI6js|$1qB{S7FKEr%FMv#)2aV{Gy;wI57CF z&hU&RYUw)kKoWRv_?~d9RQe?Y#yJflt~GfuI<*O_tX-CsjK;+nH-d?n$gLJH*&BU* z!%seT=Ysao+V2T*0%6q>vF~jpM8EO)%&)FG(M4>5UL@$P%Bwy&J1 zZdaaOaig+uvr2kXC>acdFeIausGyR%5Q)^q%mt9!l(1s7o%k00i8ER^Q|i*5zoL}HGN|HR80PZUdIjzu?Q}y_ zai^mV$t1<3tY}^L7>M)w`8FZvyzeHQeiJ+8zO9`i&&PLX~`X@g(hX2OrG_f+Q#A-xn=Y3QRjsy6m%Mj7;ye^Y+!w4Ef6@u8=X`qN?cK+?-~2MU&TI`K`>usH6$g%F z3Ogwn6d)I$pM5ftNh+M(yIlBDCvqg}!AthBlAkEjSXK5@{?umyGE*QV*Z#1!&tL&` zOWyiLJd$ta+7ECmtgdFl-PywOa+nO!^vhNUtRvy~5kFq%2}mk=9UNyqs;<79*9CQY zMAs+6EQrNz4*U)4>BrDLEj_tkM3_Z^_yp1xPK!xkvv9IRh`yZ-65->ap6~gLfmO>I z%JX&S_F2H$`p439{8a}zQhwa5+9Fh8hz8U(lW~9!+odPeOUl<+&qhoZcSy%u5%lUBDvmjVb8zLJG+AQxUij)m1K~Kv{_;sh5 zM`Io0TK&rZ+dKLjr_ADd34oV8V8d-7H1xM2g7u?GAp`Q|tzu=t9cp{Ux+*#I4Kn4( zpNW=zw`x*a*E_{x-KH3ehRBq4jHzWIM0SeGkssc3@P22MOt8j?+@1=8y5&s*(lYYmPfi9G=jE64DRoxG#ycjEeJbBDjI0n_ zdg7)m_Cg5Fg z31j8_X+TzC5=7l_;Hi2j*tD(H=~$oM9=xyhc43g7&nm_2MbF40(4E$ges!>65ydp{ zjsAn+Rs|>MdFLth_cj0XKBM6s)b>J4*26y}XI|z;%oG=JBngO(o?x0q%A&%C-kX!f zZX=D2XXg7IiM$g=dzTkD=Nfdn{$wC_FYZ6kzJ3T&Y+1j$*?K-P`0YEhHLj6eFaG@Q z^CADOEr*%asfd5ODxUnTR5nCz=(Z4Q`1D`LZSX;vdQ4=)eM#dkTZJUX#R{GldEb zVX-RM+g0lq*AEpN8HUNFj|n8}@hg=7>?570$Cp1Zdkp)eC*)JGkbctMDBl>Y3(a;n zy{J2`pUGH)!KxfY4_s&vbwT-n$V%1G$hzGo~!@NFn_*l7cU7y9i3;Bd)~fs-Tpf$J~1=T37nA~sfj-Pk_@l@gh7{3Rw2V%W+x z44V5!()Dig&s8}JO}Ot)pZn#XXP~>Qdz4KnmCxG-wk}+(%64pRtN$t>Z?5m{ZnEeu z5WnN|N?}87eaosxEC`lF`W4XT^Mby4n`afOdD=C-WY$7<7Gq7mNeUmQU>N} z16bhdA^DwCCKLKk-(QS~t-T5McA2jC99|ybpZ>@~X!W|xFN|M7V?_lxbz>P==Ct2xNLw5>nf5ii36KUKkoir9LK5f}*9O9OU7%szpx{R)n2q#wO8I_G<$Z4b6| z!4dPtuHQ(oKjs~uf$EVfBr*(*JZMxf%GG}Pss5ExD4=W_8>#wXVu#z1T+CTsH65XE z(+?n4a{p#fMG;Jp*d3mRX(5)GH75-a8QGkWg=0Oxt{TQ9QMqr3(5l-fxc zB@V(fQ~w1X_a>Cr#s4zqFN~Y^VQ0uz^M)!7ns2`&jMW5aayxeLe)5^Xt>l0D0Ae0^ z*|fZmB8L5e^6O(oBhcZPVF02=MVMgEmPY*!_p*0%5Y?Tus@r%9LMi`UesZ~BQd?8g z10*5fHCKvN9X+wFl_f;0Xp$(Hb$gNxgel@q->Qzbr8RQRC>}1 zG}5z)rva>eM`EWWqAC_%c!5(yk#MiUJCO_%BQrnPT6hxP_zAlC%Zt{sskNg!B>bHu zfhqe|@t`AklfAs^>*0Z-vg5;#{zkmt931CU(=5Uj^n;2e2=P%4V$GOGGehR-Z zr2@CfhNns3LaM*n=RpeMu=MPQjMXnK>W13$z zp1-^g@RT1Haf}M1$Qq&mQ~xkH3zP(j;pm)p`Ini@i<<5dJnr@2ZO3Uf3ohqizUvre z)ut~TIjo-fezVKJ`@SAh8=6IqsIwabhlSw!XW-Cb<;^3w@L64otw-4mh($`^0Y)1_ zULmf?Ax1QjX-yZe+zA@mZS7>sDQVFr0QyF$_rp$)s)CT_FmKcfQ`CyGEK(4B23kti z?g<_2Ee1UVi)=-5R6?VOD6j#~_k@;8s(FP!J-Xr;v%^EQSl3}EgYf`L(xc}*b~Yzi z_MXNpy5wVu*^k4*WWLYR;ppP~)arW#PsFZTk2oB03C^5CbYg zSe|F~{Rt*jFrb#o6YwuR>+-J*zYy^i|0Dp)*Eq@>d#(!--&a@X;!-B*nNDcfg{ zdEw9thy#e2XX9Y|>gbgU6}txrg9)<;GXWAV608#OX$gwpSNk5vXT9S0JljI#Ny*8# zJN%v0sIQeEfNyKkw*Ka(v2*LtV{Kywu&r}jY}JnLR?O{1%y5;mq2>Ps1gJH;e*4qu3vKY_yj2COSdMplX*n2UdDYZWIHU6qm_-GTMT{md^u6~0eVnv z_ex?2kBP}sYxa~-K%z^gS5i8zhcE__QO-H;&661O=+xDWRfs?o?zG2ZbcedW9gYX# z%R^!*Owi=*zvmNHv3q|0sP-{~fPm!ifK#+g5C5UtZL-wZ7br=O?t7@!XsN*JmKwN1 zq8VhAtK{m6Es{My?G>0qmxxvpftDAnoAI6n-=>6^Ag%6epG7IJjSbOf`s+KvUBK9w zr3FqC=}!nD{Y%FEUg%&zKqDqohmi7sbM4ef*=L2S*yHDR5?b0h0r76$Yn5H(IbBxQ zq`cArAL=rd*|(cA{T!N92Oyje_lZe56UCGpvU~uX(Ig6$T8&LA8;_YJ3~r&T5$u?| z(cKtC%cYDbO!JDJ(hwzqsfMLz=eMTs91-?kakTLE$wtY3R7*(84|F|$vlwJhaQ#IS zKjdw!zJbNcc1q3Hg`X^3V6!^s5F>RWZF1MuHdLfRv)48GLqo8(D;p>G?Bv1Iatyzy z_}yEfV%IJ|l>dQB`y!x|axM){@~cV8A5-6T&yta&35k`UkwqfdIEnORWCj|7$mRX$ z{ALvig}RmPngtfMa|k(XN?|ks5hrMYF$KCVkz>0l8>U}#3^o-%Ds@vYhH5IMReV5j z%IP^R00?MA|1M7vq0{D%O1O-}CG*GlkTAd^K$x6_+7shL`eN|?9#Zoei0JZsXk|L_ zYw&280@t>*gmI~P5#NY`lAHi1)Jy3>_clYo$J&9Y76Z_ITkLXZAypm8xw zjl@OJ_%a2yn{0JylPu@p6VCopbv9qw*+D zqnLB9n3KM4K8?-zcmr-e8TN056hJU*Nuag}C8$9$bf~A0)?H?E1p+3Ap#;e-bCoP} z?eA0cy8DCZ7HXFgybg1TbAM9@eG`24+J=Q#HNgV)xmqYHY`0Nu3I4%)7GQ8`n-+D9 z{|*=~x)A8d=)P}-ncVD6xbSbSx@ul%E{J8)D~#lN7}>~uA9uMo5d3#4OxiXpnp=z_ zOiCt!J4YKy6IIIK;|%lGAt}DeW7H>)E^E6nYgVLJk;kiybx0H>=0>nK4Wz;$!z}wO zz2#3`L=l=f1OrTf@V+9G<(lXfoRe%O^us$o)6{>VM@AlnH2c@~NAm1Pb96Av52wUx zfg(_5p1qH^~)Q1+N!@^aRO0Am2ag!RtoE= z0b(}`L7hLrW)e6Vk+NR_1|}#URhfA!m1TE=L`w$(rxm5-ENT6j34SYXL(}*9VM_*G zh%|S4<6@9SHhnoIZ*7Sa0a{p-B z*5g0GDH>lOr&*?v)UO@s^+!|?Q`+_t*(-^Aj5|+2jLXI*qWfG;9sA}xGzbOzCLUYN z6cCgjW|9MjaW}Wb?8nFTx7zb3PHEI3Ic&;+R1a)(~O7elatAPR$qvnyR zo%DmfIPrT-eQcmm!&CzMhiPw&X;&RJ4qh~*Zu6t^(b3q^*ny#_pSGTk2f3G(;rd1> zCwJN1@4eqgrMna2ABR#W#)f_l{fyvzT7Ukjo(W9(Vci_l(WRIa`#+15y9h+MeH_=} zU<_S5?GmO)2wj(n;r6V7G71Cxt0Vt5RhLVXx5xIM&Sw)3{}Df40<|^pY@Wq6R!n9_ z`u21`Z~prOj*FptB-V9JR4583)ehT6|2XKoIs<{GoM%0edG72Fr(Jt-B~q1Gz0VNm zV908+GE?zv5X$=Eb;-aL^gu7kyPC7sspajVv`j4Rf#G(9Pjn1{)2`0z6DkShT%XmB zJn{`BHO0nkx^%3O=i0%Y>A?U~56lW2t<5lybMQXGRa20MMFKsrE zdyNHS>FTTN)jD_6GY-V-1FoNUqf z#1fOw7?>g^*H(IUlE-wLc7-IQ)B^4~jUe9VfOj*^#DfU2G$<8uE*6)yTIJSu|$e6gZ3uN)^isr~v? zCB4=vKfmn!7E3q3Y4{qk%%|D0z9M1kKfA6Mm)7L$#(`VOz;BnAZa`(y$X%u|5a$d^$`Er4qeAsOR(}TU z=86>qjh&AUn{*6N7ym824rRPS-)HrX=av08O>tDz8B$k>(n^YDtCm()_e1{6$M*Jt z^%=sgcYO;WJM2S}#WtTl4JVhj4=M3UE@aGPUZ4LP&LlPYdN-4OQdEDO$H9I=`aJjL zgz*_RWvEhka{yS=&pPk5)B@lRglT*u6U;T4!b4QfrNW{*|Hz|Me7LHjnz-m8+z}Wd zh63ZejfA(G*p6hL%m$Rlrb^O}vkdt@=5p5qD7KdBt;BW#)!$E$;I{m@PFN#ki{OGq zATsMOrjEo zYNH0F@&-WhI`SaFqTo0lfo6-Tr?{(aGpG>a6Mf=mwXv>l*g?g;CC10H`LpMSU0bHQ zLOZ%e0T=X*4CUWyYs99|{+S4*dRDsf&P6cko?q}n8o?mX;{)+()A(KVhhb!-tnje!2@^fjA0Qg+I+CE}U{)4#S^#ut1OVpeD+BUk7X}YXvOd1an zHH_a?M?~e8E2^>-dKnCZl7>g?UrgxFoW%bz#^FldT zvP*p}Ai#2ibtDku9jEi{2*Hc3X#R@O=`sT+a8&O%kkO;Q?t@K@_>R+PGhSUB0Enl5 zbeYMJbi4wkh$+}u;^Mc)cxMBUV;MeoF3CIk3e405QjYe^Npnt^SR65Bcak|H^ zPgI`O{XGd53kRBR*p^xX2VCv2IGx`jF{FQtMrbkcFj9%s zPi*mrn2JM(y!W34NKSz|)EUS6=0-PwNjnysm3tB?ULcK-XEfnkv2P%{xKELe%FJRZ z7U*)5B6YE*QM3{5L>@m?`QNz~B;zVzmhu%udE-lX~eA1`SYx z8FY?ovKK6Xdn)T=%yt~nBTLvi+ju9OJH0=8ifOi}D3fj%(+uJZLO!S{jrXbl?7j@l>Vy+$%W~+8S!y_(}WgaXvdq(LNh5f0fsdF)jNK)O#6HeGU?)G1gGpHzK~w znbXty$*KZ6V3I?QIBak|_Rsdm3yB|^kSP2t6K2k9+}I`42n2J>Fh#(WGn`}FobjPS z*sk*AbwOiMUEcvgmjY)ws%Eo%M2n7)ricOsv3Zv8j&FlK8;9D6X}z*>Ud4s zQ%u*crk@~AfCkOa_Im;09S{Y9CK4wx9mSrjQM}q}A5b&;)#YK*3TyrcTg08`sCQ-a zn)TW6pAt4VNCB@}h_G^^pG?qIepLXK3tMn{j;6j+m?m`)jtC{O9O`aua`b+~asqu1 zNidhbL2N9_O@*NC<{8!NuH^PF*g{Nxvsf^_IVJJI$D3{b4#nEVe<bZS_?E_gkZeWH!;bMP5K)Jb%8@&w$3c>f}Rf6BkO_Mc`LK;;?En{pw`+S5~k%| z#gk@HgXaFNH)l>YjBzVOAWsVJpC@^Uo%3`D836bF3zB$lsIL$csHA8!we)qNbB6)% z3_tzNu)H5XZh5;c8@=VisNkDW$-ROJuD0N8(O`hcg)^M|W|^M#vu;Li|!;qtj10KQX4 zCM}N2OSN>(M?u{+Ph}Ctn%B1n<>-8$3mH|%_Zh8~(^-s?4(nEf z-0|?#(}Oi4+%xc3helNX&mK6w zZH*xs!P%l1i6Z0!{u1pQr5~9>RvewZA;*4lVnfV4vVs~3Hi~~xL4YRc>yh1sOlGD= zbX}|L+IlzsA{&Qk=UtNYS~2+omJ!(?2W%E2R`Tb`>p&TthNNQlY}z;bh?j(N%;iq9 zQgVp^5!GL;%=Je$^6p;g2MfX3+ppSvE3lz%l;rjR-N&3`uX(7y#<5T0SM7L0M!+=Y z^aNxo1NoUjk^zOKPN|jvff8N6+;}_B`9!10E@=~KviguFmT##Iz!EY`y$)V#$TSUSYn1;mhehgL1- zc6cZ9yyG~%at`88PWQx1Xkaqe82D<=zs2*6uFLx1E7Lf13j2}1Tt;JN$&up65gzne zqEqG1h_N3x+Ex)vaewvr@{Q3+{H(2Y#gx2h_?5`9m?kSKMIkxG9{}ZU4cxQJ}XTal-*r0)a zVa%&|sr(t-!gADNmh=<)^Q7x#UbDg@9t%mX1MWp*X++#?WD}VEJ${W>h)d^X z@0|1iPL`Xp*s!%0A#{DJjlJR2a8gp^(8)I(ZR_b2h>6$6G=TB8$UA+p6iHtzv9k$} zD6#1G1%w5ayHo~lJ~GAe9}6iIRlQsmU3qG`kPLgWAF*sCwc?g87>$giVPtrQqzoUt zU2GprhD0R`=}{rCUboIy$OhDcqB7jN zUYN;zMb!WVupYbfB)jbfDs3^^tTGyj+KGa4qN@n!#gBM{r+z_`j93cT%1^4|`&8_3 z?4@x^Lufu71*L3N$DU{6;l?*s1J7g8j`Pgps+Jm|+Hc8_%^qMmb99_OysR1kzBf`~ z(0CHxo<0k>^=s?u`u6sW3zKjHfe7W9>os#=`Ezd_U#zt%ncIK(Yx2A=XyYX@#)xGs zW*C2-j}~X%&)ZA<{lc%UN$%qp+y-?GllGB0Ew>J@hH=ocyy^SzGBC5?9Adtyf%hYo zF^>Lhsr6=9pRJS#YxoHw(E|VLHVg0Q=3~_$vmZ>(Yak6Ar$BKHF(sU7+20nbC(&sJyz{KKDBIB1kM z@`IzhS3fFK$7ue=_5ia$&{e8DG$xS`7|4Ntoo~Pn# z&T{I1yw{pS2AV=Ls>sEssGQ`2XWXRuuVQ!I*|Oil@!01qeY=CV`}%**h0Kx2rrK| z=ud6P{VU^)zx+!-n-m`pbV%Nfn#lA>EM)tPD5HP3)0?!;P#0H@=uHmDT; zBZc)nCD|l}>->Y_sNd3mw^aLX_@kal7M-R1(Uqi*t8K%;p?t~0d-3Al!j1#70nIf( z2@tLPqlOIx0(D>eO_(%wU2-004~?B?{2xu{6qot;e*JGvlV`GRb22BpCfoL8Ta(Sn zb!XeQ-Q>wO?%ea4-}CyPbkJF~+xNBCwbpyZ3cSYYzsdL=3s~EhN>9<}7@j}a+HJLk z(8@6Cc17KhOIthNw`=WjPnzw5?7`}gw@zmuvM5qY1W z$vun^G#gG^- z(?4R*B%t;B5N!~UQ7C{f6f9$fBSD08HdP#xh^b*SjbRw~!Mwq;-bk7g87tuBFjrMx zGKdnlQV&x#gS2LA8&R~3p!pUxhN3oYNAFxIg|f`Nbo2C(Hn%XcYF_%1JNV0=9YfS^2&Xw5eF99WF(^ z$sxhA+I32a$r*}yuzbCT`|J_DUst9GQa4K3`)+e9;1ja*?Yz+mRkQ`*r`wr`*flz< z=})jn4$wTjJBT|@)~w3l@?!yMjicbC-@!E1*MdB)w^GG z&0Xj&b28gqUNGs(%K@J^j(WjL_2(#*ZZH!e+g5IIHDT>AFq|GWTW4&9E70t9MmVFojJql=`;E76L_*xUF6BiNF7{VU< zM`M|@Y5E~e0s@ajjU<*db<}rV|L6y=K0_bo%sulDKGm03RNC_`yEA3UBE#}+NvN&S z6bg?2ekfE=-z^h=A?^Y5EkqnVtge3ZyTGp|`rlQKE`P6@?1I>K=KF+V%42jh#CsQd znb7GJbLo2tZ0EXPIo%Iox`%UK-99*Z1pjp_7P z;aMhEz?3o-r8H*6Q6BkEJNZfjDx~SIK1xW9bqr%yxM1j$Gsh4*jT#2F?o{22+2r<% zZS1$3dZn?mdicrg?n@(&?naGA2-b+JL>@!q0InEGNOfd%Nulm}voxBUO-v8_NE^3L zBtFi^u-rW>gVEVva0}re5QfzD%rpn#&e-*GEQAelzcJqhJqi5Rl2@IY{wH6vkl%m1bGjd!F!3 zT4NpSv`Jka%xY@LcXtlVSjUZyyoJXZ7L`S|^+ATPI?pHAY0b&V0N#(mn#c@9Ma>As zK|POX_T;~gOs9@ozrNKI3ME@MsQ)4(B&RQKl~65>B-pV(!!FIh+@V1^TEuRc_{gtm}2ngx1u0tZOke@Q!BWfgWN6yY-8qW zW=XfER~o6~RzU^QV3=$mPYnS3-3CaSWTxOZR@J^C4|GjT@8XE+iWVY|0S^BIz@0X(Rn_F*d0ra&kyBw5 zwWnByr9|+>bUt<>SNwwh0_hol-bH}c1MwYo7{Fz*3~rw8{sNHG-OCb^Lg=CBAzpg0 zLiiGZ8=i6(ZW$)WxKdeev5Z60ngQ4ZL;O66;U)~){m5!sN&o_>>aZwcC_`E|6Vb7S zaRar#vFEgulPHF;fxtFm;HPA}OmqNJ2PQwzWQ}G<)u?dNN9U%^0;23~mZL+&#i%A+X8?T*C$vyqJk{mQpPcIo>W>cUBhX^0T z$9QPCaN^>&XBckEn30f&$^B@!`LEF>MkVuuGP#y{=u4WuWz58TuLsc9V=Dr4-abQ*C;Fxa+| ziLmADoV&qNPhXZ^*f%@f1MFX;yT`$5jE;vNZ=ZbMy>bK{<9*L=={^RT=AKVKP~P^N zHI~^qp20eB3h{Us|^(AuWT}+C$aIsw)ngul!24Bi>Cywa>;ste>uB>M6lpYC# zf+7MRBV)5>%Om@g_uDQR1w-nVp3$;>T;wlB%OiQ#p^&cWBVDWhiHmw>^r!$ujE@cH$_Ay=-`=j3A@T!SoZ}MAa!JhC9uQ z&zY8knU>oH%-?*B-yQT-_KuzqYQ?fL9Vby!6({NOmQW(f5w2c@%oC;1YuQH2 z=%NWK^isng8wOlAEfo)0j@QubzX2`UWTPFuUspDMIwmOSq8$y?R3V)ustUa?#^O6i zZo#N@O7GB=H8bmjS#Mhx>-(#s`Rarr&@Y&pHVMNN+Fr zNIQ?oBGNP|(-kvz&8!lh^w&I$hOE@Drtc*$ zWx?iKbMsRgWVL(#^QJKbmMT0uk((TcO!|5FVC>CjZoJ~@+j{G*ZO%=e{`T&>oSzrJKfYpp zObw$i3mQF+V%c=~rLwAaTrV>!emqp~bl>W7^qVf(CW0^TTGny^?^WAK?HCQiHJ>PG z9j))b1Cssu@r^Hb{}o4zmp~SZ9->KChuwMC*?mfmrWw|a=%o<8B-qsD@4p%3)O>%o z6nHw+$6qNMz^bm%g+{Ck1jdR9j6`9wke~VAAf&Zj>5@&CI#17f`m^h|&Cw(@aMb7O z%)zcEpet{Q3RQRx^`=j1aP-WTl5Lj7P0u|^ki8y$qKH1S7dM=dLmaNMoIC#BxkbY6`as(W!L6GW;^2KO zRy*!cJoG+3a z;QO^=GKufh;hhb%#Vqd|`j*Ov)B!nUE4g>pH(UaVU+{51t<+Y}+ zl?)m6C3ss-bNC&)L}<^^arC%C!L9h>!c1Pb-QvnzjAVj4YZM8}n-!YvE( zX=j(dbL3&)ugf;xwYWXwb3)6|FHX(8gSP(e=(kN)f-mq#+dRw}e^3Jj9IdP-AQEM0 zW1alM#uQ<^w!{PnztoOqIhJ*Y7nU3@>lPpX3Uo;BN#%+Wwqp3Z_-tj-BUYzxH)1i0 zVxWP>Z(>!76m1j8t+CP~V^TSe3#JKd*ujKB6((^o&Q@@cB8Gq*LaZLDgp-u5H4eU^ zDHbikco83b2pCR9v?j`_bP^oUvjbI}Z7Bv~QGyRuLs4#oc!A2xepnop=@k4q##CsCu6kGkNH_^|H36Xf9?oXI|aMoVry7mRRe3$pmMORPmWwx zJj!u!s>Oh!wBGyT%gHjwHLk5_L3Bm)HKu(1`Qi%hA)=!y$`ef+eWp^&n7L0v&r9yW zzHf&t>TT|)@qW}ar^WrZl}@LLYgWU_QSOIeZ_K-ecurE}!Q+dZa}y8DRG@ zF$VAVu<2D%T@4U4FRz9gt-bHAC5Af=U_`LRq7sHQ*6>Jk(SB@XY$V_FbyFDXfBCyOu`3%^gABlN*sVc@IH2ilW ztp^g3YV9K3%RazeP~3al#WM>p5#U+SOU|F|9=eNt7;MH$uQ6Ccz6URoGSTAbR}I)A}KS?p6VEU;2d?Y#$fvD1nE-#M7i=K%%Qi5tkR z1>v|}^As~Ta$pLXz~e@>HX+xiIk&XL)o_IBamGbYvaeeoO3?_Yj``&GC}uls>PV^Am5!HPP1IlGn$fQ*|Jg z`{Vc_OG~06yCDFz2Q-eSG3t z^K&Z}j*NEdXeS9BaKsG768aF-(B52g5Zvg7s}QN69Ir zEZTn3AH^T{DY07CO(_#U#MyV3oZT|~qraopJlJaXTkDW7+Wrl{T9uW*90DqN3d*{q{F?Z_c$IZ<-6vqbZXiiT64b0Qho;N!{1jhXThe)@So zhM}gW4zxp<8yZ6V?8XxM+a9_#3bh3WHnzY_`x;@A;;VYLt>!-qpJfiq0%a}PycB0R z;NlW(*yWF2wLGVSxzNi+b!wMzxhW0=1!Q$gwiLbifcT>nj2+Qc$o<+?D-=7 zd7D{jJV=i>pE@IXVxkrXB>#Br9{g(;J0N%Dc2_SsHFP73K%OZlZ^Lf>5^Qd=ofO=# zL>SS*C%xks!<`NDzt83v{vD;fx+qqHwjU20X|t6IPkd#04TfpUt!)b=U(i+&;2gX@ zgXK9#;A{ifLPrkRAanLXzYq`*D()%QFQC^;J4am$c5&NO0~lD7oF_NLt(jq_w|QyL zsOZ7a*2#ve*v|2Q`CP*|&1U^?eWiU(T<|X^bB|qhzu#`}{oQ|eKMv~;wZb?*I?Ioi zP}SN4F>Dz?wek+7_}8iX6#Fd-o9&11&}&t}R0QYynioW{(&1Np=87?>9i{B8b!3sm zqQulx5WzrjU$%}=VYggefxjOYaBqy=Ip`L{Mp zRsv*d+j*DIiV=;6l!_1RUJB!37uvpy(*mmX0zMvdC@BCa=F@A7{2wiHs~l3BoQ##4 zBB%p4y6GwUQPmWS`{SaC^4vEP9=ui`)q^8Gr(r!FVe?&DNMM&YeWttUrm`PHNS=Br zbaU#k)}b%==y*P(JhzxEa!gu~iAV#zX2L6H2TlP}Hji1#C7+QfyqAd?A>mPO2JME< z^`zT;VAyfE8coyNeVSrt_|F`Y0ir4VcxpfaF&&bKc-PXv{^)k}LE7#ggUbE-X@TAI z<}GL-G4OsJ)!>b--F5|;d^^T`;Olri|1vWtaC4r7LGOgZ(x`PjY z%5;< z>}jGWP0Q#^sRI8epa0!tgCV9` zdh#YtMu}+Yfg|Vxd-bNY+sfb!HZ1LiU4N~kU76lCMgaLV=1>g}z5I*S&!qhlA>@xW zE#`dhYDMr+pjsMV!2+&sp}*dcV8vUbcLOXW3+b zxw~JIqh?HvR>mAm(?G(&cI+<6@&|%)mEjWuDK)Gx95kurk|cn;Nf$Qz_lTe`Ta? zfi?%JQUG$`P=)WnW?Nqc{YMeoXzayY6O3joQA+D1Vt-7(F%ouB8|*UN)e$S}-FFjQ zBJIW}p|u3y*FNVDV(biJ^evG}RSNOnNI^C$sDLt6S2bsf$6!GO0oG#^jqYFDRXI!} z#*~}|gbqu|K(~mxCSDO^wCy*h+olPcu38WV6PsOdIs?7WQ>G_*v7p}M!NrILP7{z> z8kTn#`@zG5zq56;;|?jcbG-VXD3j@ZER;lLg?C1s^Xevgc73<_b7m4pXbd&k z(Y%Dt@`Lz@g4H`Oe?DB9m5Tvnp!Rtn2P2Tu5(Sjo(#zky3w)KNQ9KznxhxMfE1$G* zpDV!0COTA8Z>g{4CW9{CGjelF6)zY~9#5@Zs#`l}C5)ynb2{i<7W{%_rkJhE?erHs z$ug{H0L+69-ZhxYG%d(=V~gb~`W_Li&Frol8307tsLbU(|~WI9P8z#tEHD5V5asg#l)y|arBtHUC z+bnsGwLB?pipQ?F$;VocxtDb0CX-xV$750eBlKmxb6wf3im;YqLv1*RJ+1D$xv{k1 zcTa)c`_uI(ql!kvxdfe7#6L8>-AfATHr_&;oni9BN2D&ZaI5iW`WX1++GrP4WJu51 zLG+g{^hXY8c)-Yb<1i~GzG4#`dGJ4?fXX`J0%wz#Bn#t$M6sGtI zNYH29Rjt$+wC}^Wio5^LHoaxdX-?;sydAyACEuP`FA?voiUWqY=C*%+$bYtuZn@Gj&^HK)ERh# zn>g5@cHV4%0;e!(&tvMIse1tXo7bDrkaP7swrxz}|Mpk4y^x3M(=7oB8)RQYoX0w6 zQX3Nelhs7)*G)^$`YL17z26~tiFC|w&9(3BzWzvGZC>d9yUtYk^L;~=XY1V*v+MqJ zfl;?`CWR>4H^5>2KaxyRS^{-i*7cE-62B;OT5gFS(p&6&UW#W)VL~mJPIPN>ri1K@ z#@r`~7dA6r$f}k_nx-;$CNJN=_-U5&|4PKV?%d%SuaTev;^@kmr96Diiz>#R(BLj*mZ0^ zk~Hq;w@LtmaL zQ!cIEP_S_J!u{*ZYdQ;sGu<37lXUS?B`X)pP!@ujbavbDii0zGje)Kx<{DaAWTGKnS2~fcDGl?Jy$8 z-JvfDv;zGWa@A}6G{5gO_B>*gBE;*ZvQ3$|q4)pRXaN2)Lm>n#Jrf2>nc0=MUAgTi z?COfDWkSGEaYo6wrbGv}DDyTipm|=~+prxQ?U73;o8$NMKLs6n1RIKW*Li9GkEi;( zGVBbjh_8&fZ|%&$%@xH0sQKu_dsKJW-g=@AQHNf#&{TX0+n)`rQ2c&uSX5H1f!pUT znjV*!ULgg6dYu*Puiq|sk6Ig>x*T>WM-LuPjQ;=qEN|G-)z#aIa0rHG6egwhlH!Fc zIfb+3_it2?-1>mff1kywc>B3q8`*hVAb0UqzKLbivQi^NIdc0L>5GF71+Q*N_Rc(tXq66MvQa{p+M-0wg7;PS)i4$`Y9@-F zS;P)*l4&s*#q;J!#QYGLs*D#KeiRL$;|!L>;(~u1|LQ^00F6-YhQS^e5Yuls?nTuk z2}#B^z^+D$R#F6dt^pwQ>2oA&9R#nMpb?3qy6@@%M?={3NcevBEmRP5r3|`eC1ebz zd55s$GX*$LqFv;4?82}T711y;|I>%1>8DRt9sV^t|S9|br6Ssc| za;XHT)OxH#iTn~+iOp)Buxb{Ii81}hbSe%mv3nqt5GD+fzAcYgrck$uNrZ8N9Ki?Z z$38EZ&GuV;iKx@J$ijfrZ*=GYT1mREhbn?}OzHYo!8e8ldiwTPAM&)5F;K9(wyxJ6 zjgH!#f`6;VkE3P%+zC`#M2aJ4%AS^GSrL|xkXpwtwNV!v=~sMhxe+@y1Q;wHB@Q_q zr1UNvRX5{cO1$xFfA1O*?i2MwQ^n*Z{vpdcqpRye*n;ajY%iXAwWF79bUt;AH$h?2 z!YQyHFwX42+Ev5!8S8unkYsFkmJ4XB?x%Hc1J7 z(CEKkC&G=t{dqS@jeQ3TZfh4$Ic{V5hRGnnd9+GzuJx@w&XqpUV{jXD$$D)o*D{^P z)0AQixl8po3NG`yJFqIN8|lRS;J&7=1nMa`*)Jx4@sy)~G;IjieD{6+GWEXLJ?WM* z?F0sY#O1ut=MY&mM%AS`M_t$|+gHS81P_3b{TV4SEL+Wywv_#NP{o17CK2vU}Ww*-%@l(so%M6+$|zu2^0RL0D(OOr%SUer1>oMsO^M3dzZ z!eacrkWpqJVJ)$$KDKPGs4jp8NAb|aq`q1j|Mnk__ysmAZb7C|e~Dw!bB}a|`*ZYE zo!2PgSVEt6B|ifk{m=hECe-=$H9bF>xdP627K3lXln5&R z&kNw3uwpT06E#I8o7fH!hpHS6jyhzejb@yEN;6u>icgt$$YrEt6sN#5j;J7|XIBXf zU7eGSe?F_FT62rPT5po(=qT!1d;ziWg#xpM> zyF|ZdW6aGb_A2^pGaZXib4C`uZuzeEc(HIGQpJ;eGiteTKy<2$x1)4Xf|s?u|(0c!$y@l3S+PquL}l}(Q$Nq3t(x){Hvv* z@nE*7Ht_fbUa<6U?jx7srn^GIgvWX?ZVHXnClU@d_8*29QfxZ^I}QszSGL1jm3fpZ zA0u-NUT*MED#uq&NK7u4p$L(PHX4TFi60r0$)Ipb{073TS^{m(K&RLKCQ&)HP7 zLyqQ8^qq~Tg{L_MH%UG4Nyr+NS#_~Kx?8TEc3c=$?Ko*aVxUdl2-@CRK~3nZ2{a;q zrJ5u@Z!{2}+9};N>rfuIT*8iz)+llAslIrLX~;7y&%cdq$9S>OrSR;%qoE#ihm@5> z*uS;}3qv^>I3@wvFNL?bdi;b0}$k=4QV zo+gi%_W)hIl=eeeklp@U%&r7#oPu_BYKVkS?6g-E--S0X+`uTl(*(<~1M##|6iWkd zObh*ZfjSQX2H*4=9@!b5;`zRQ;N{E0E-W2|2hUK6Pp#adi(+az9vSA7O};Y^Hvtu# z5He}-cWXJtvt+8J(`ZeOt=%}#aYbpTpgp1=EoCAcLZnPJx}|0{=LiB;|5cmu{lrZL z*P&FzxP1BOwBS>4Bo^b04F`~1m=dYx20Ut!2nbPBXi#>JdGrW3^u>a>vzE;xk@&o9 zX)yTYx2W0NF{uALo*|8@zF%>5_ttgW1Jv!&TvK${ScsW(;hi($U6I_-s%u^!JMq|< z-nEA&twlY0c6K29L8^1-?9Mz6_1)=VajMKMOZ6-IoZ?O-I{=JhAD*M|4i?hSOfkdA z3@as@%rJq+w^QWL88QcEc#0YTNkC?*N)ROpsVyNDF)vj{2@NN6D3rj7f!k@TPZ(zJ zTcWYblh~6Xhu*Rp<6Ulj3ThNNPiz-l+p%sID0sNA-_}%K3D>=jWt@u`Q8l0^{kaxE zv_tj9s(3n{UY}f3K%sJ0Tr-jpV<;(&9)#^e1Fbu@&9TolTt<^us;g(9H(8h3T2Jx& zSoWnL*>Z~2ZoTJ^zape!sqsqcZ*Gc2e3W9^`~CjlrCHO1@N|OBNYsuNp#`mf2CVVa zuA#cF0KxF7&zq=MH4i` z$?O6V$C}v7+K4;9wEk|(^iCBTbacu$b;@sU2!je%a;B&NQx5KGjymX3r*K}y5C>|6 z+I4ILP}FpYEu3NT2wt_U&5YHLM^;v;M1t?k;vt$y>yc1*{FqxP!Zn}besbrS)-L~S zyKHf+{o0mc;=yCs`r#l*@~_)xV88sk#)bZaqPdyxB8xiYq=QZxkr&k`Q_VS`KV!uP zB^V;{dUWD%qSC|;{Yf;mmUXe&0BOZw{xwwLE{dd7<;oDOT*`jcekUn!w9=ot9<`Xz zV=nR-W558*bp-SsY#al=HyW`_@^67)OX{0U(&?P%Htu!%?>y;%+fXlDDVsVXPKlL} zQ2x&ituZjV;!fr04q6PlC;aP&1RA)5SVBRAVz`r(K;GtGiCGYYW(vPEA#OAaO~uyHRPmGU2+qsY0EfO&S1giN9|Y zo2gVN?l0Asz9rPg8M4gyl!z>*Y+KCJO^G#~myN#o6#uy;jBxbQ@#+OoJ%UU)EPg3^ zW6CcD{alB4>k39Tjf&4nLrQA<XmaPspl2e=2`8OQkRs`NjDW(=6^W}Xd%Nu%%C{$pw4B^;oRTh#j z2(?Lmv8l|{D>ttFCR5#*0#N_k>j4yZm{#S`1s}|12(cU$Jw2m9!mnpqA!(`3S?_Zv zdZG{-hbQvJee`=R;dt|o`-9(rZjg2Fvc#E9IQ-DERqg>djV}@X&-YrpGY5)%4FX`b zD;wwe(T4kHnq3{8Q$WSlw;><%>p1KRTAHCSGWy;xO+#-{PUdRArZSB?bLtkNeqpJ@ zY03P3imAvvAcZ%dWht^^8#ZVZvz#0|f$x4l?Vb{R4g07^i1uSnl>K3f?Yq zh=&k-Zn~pf-XLH3vk0etJ<38%AW@hFaK9;in?ToffQCTVNW$8o_|j1beA0yj3X^c` zA8_2#PTrsQyA{ScH^J3|Xy>RX9fwHPrAAqEOVbSpD?S?j4rbC4?i+S)pO|F%Ai79) zc}_BT&}cH~N2p=dcmJuB5ijsMu^Prv#~8~PRWd=Bb8MTp(ZQb2mXVmA7Mq2l!-UZT z!B%SJ6ZYc9EJ}(|3Omi)e@ycKy4aRzQr27mvoaUa0e!MAA9^-`T_^|+gCl>0 zuO?vk!z1o?pSd*&sq4aJx*^jzX15nbesj{nBrR$>fFpZR`QjCSx(`Xt+(PE(Y&)s!A96dxG>?UAa+md4&pXIC|@t68TCVg#(0; z5fx_OfbdWMm95okaC;^N(bT!GJ@mJr^j@2^V?R}eZjb6zub0g(@cPFS6DE(j!cC>% z3$EY{K}J72Y2`}VE%ype9t0fqdTV8jL9ZvhYMB74|aL_MR(4MzhW$U*knQ2I0qwK4#7H|Vt=#> zS1sn{Ay*gULaZdK5P?f+H6b|rw<^;CwfGCm%Aa`iIVRf%G0R3y*kk%>VeGTufwnUU z2`Oq_lmPM~;Xcc#jz67lrO_ler{5ckaRs7;m!-3 zn8)ae`^NuCEWx|YHG7SYZKy+8<1-b9jJr*Q{x~ogWA2mrWP%)&1WNXdq6+qk9et;U z!uD(HSdCrBvxrVFA$mx$h?hjvVApYpLo*uM@mEhE=DzwqFmW?R#g{vQ8ZvZ_nV$uih_Gq zUXt+Nv&9v;nk5CE{|3leEwrXIV`WKTQw`NMqnmvP zdSeA;d9bfGIlJV#7L9wy5WWuA3(33inK(aVTLbjiC9Yj_B7yH(6<0e*z5~Zuwh<0v z+n>t4&yG--Lpis+gD$%taJ8(z67h`qfHz{5J{QYp85#S0A|dbUJ}e}M>bpgrlX#Bt zzNT{tw2A}<7&5rhP=P$E>%tzbnW1>!(m4~;P;+cmgy#U-`~btJnwk|FTJb3sz3U-4kJIDMvMi4;G3uM*R1HPVUauc|HRSAzXWPU=GICs z=;Wfjuo>r=?J3{q?YvkZjA_sYkSk}%;@l*QXc&+1Sht68YjKkzyVk=-JNbU9>V4Ci zPRe!)(4KmgV{#pbNJs+duCV*a2!4Nr5cV{^P+GaDS|m(RkkcPeNpUG~WVOXM%a9!^ zBppJ-HD%9cw;&l69UzvGLf92PmKmh+a>SV?F&>Y!O07OZAEtCuGmR3$#2G?D5emKI zbB;%Qgw*xFgS_&txP^X*30aQKxBv@$22;Yr5vImT)mGd>+q;HQG~7+)dX= zo|BzvC@J4`6m&FFIQkJeVW$N@_`0tat8WnW-#iHUJeek?CF7$xuEL_S(foV@q0;cUTVZ#ct=cMt}C?BbM+**~$mU7+g z01z$`qv+ZA^33#`m)_f^|}j-?)s=k%CN%UVXf3)Q`oB4{&# z(wJf~0CCR+9PwZdsyZAD#}g$M^=r*C3HoJW09xCa+&_R&E?W7y&uX5%RAIp}+i&W> zeV>zbr08%*rL)$N4FYs2!Jlh1u-C81IHDuWL)8mci2wy%?oS$3Ni$qo6*};pxLP{t z1mFMWejk`<6|jiOYhj1B8rkqE;lz*qs*Q59f4uu9R@PwM!|2F~{d;wHtNLq32}32r zc+?GgR?LrGLck!8+xh~S$m)UWc;Q7bieWI8`c(q1Z)13L`7h}W(+ZB%Us|_N_oL6M z@eX_pfo&PKjwFpoAsmz3f|A=eLSo$h_mJL-O;s`hRK&2xg_nRQxbVL{)$ow2p*qLo zqrh0gs^#39*Rwg^_+K5U69QRu1A7{bZ#RzwZN?7Bt!Yur;-QL99~PdOm;gK_@R&tE z35_^0(o}lzmAkd8ncJ?}c=i03P`5(%VZ*8u=c1KXHRq9w8+NROiRN=&_yE1!v5h?o zq2JxOz8#i^HFj*MN_it5xJVdi+OWnM4CkTe{NYMw2 zeeuqjdf)&==44ZKuKJF;zSWib7>&;n!VXt|h2*pOMgxLi6ty-IjB{^QO!WO z`|k&20R+F?;PQKa4l91N$4)ra<4tOJu-MfJ($-FF_Yk+!^5`b=vi69A1 z)K7c6fd{FerbR0`M^DNZfWg_SR)Op$TqJfRu?qR~%#xDDHwp&20BaZp;T%_rzcV_0 z?*ns;O_p}u{l7mR)@-^uedL;ZmtuMNN;$5}<$z$Rw9{Aiv$pgJ=}8(fJSR3G%wj7m1 zG8XAjt;E1I*6HYf*ser9ErAD1g>`Qjj7~^PkQW3IA}E}SB|gR_R;>CtWiI0#0)2e( z>l7vVj)}JHjR8N+6@LH|zJp~5b#jU$(zW|j@JSfSNpK5`lh<+s^$BWA_N4>&m+j`A z@4lhh`1?<)u;F(d`~wBNX2cXq&&sA93^IZ>jNT^Il|RlJad9EU4QAUlyIgULT-S_> zLZ2*%r&%jlfCaQ?C*cY7p$?^#aEj^P(>+zF9ePAxG;avN)i`Ed-6f3;MGY!ZD+kECw>t<-SK-5i1+x|j<}^acI?Ma*xS3nD zUFxvg%sWS)kZ!i#gSv-rnYtt9 zj0N8QqG&C`2T+wRp)S25Ygz}~m9RmLgPE?zV%@0gCRX$yKHV|zb?8g4bFWC41a2R@ zt!&vOlDl}m3D8B}dS51A-li)EPWfHuysL^AkgREIzrJ672mn1C03gQx^}t?U-`uXs z=VB1N;Gxz8_ghyrQ(7X*X_8nO7=)iQnB8QSa4?*QxI251*$EABZ(+C5-0fzFL%wV6 zN>&S{-g9zPkGpETsDC6)exVW+i$2tn$r@*So7Ucx)AucGE350L84d&8=)(#bWOlq+tWlY^=$rzp`}21(Yy zEv?dW&Z)!O>%L3Adyi(a;S!7(Z}{sF2AF$Z)@%^V@V5vJS24Vgx5xk6LPH;Ov?-rH z)|1}U6#3Fta*eDUr5i(@$k&8WeW`L!P0{BR)EQnkf?#BVzO8QMZWw$gB8p4`iiHj) zLQXPiyQ8v_4hMQw$%?%h{tn!wUJVC8+$BkZ}!^Zt#Cy%E_z)#g3OB1S<>O$PH27lt=2)<#*{;mhQM7 zn%L6;bu044yJO-J7hk-#m=Ujo;`H1OLpu+nzbjSF*)?)`J1p_0Hgx(5*x(U@8-}X6k7U%fi9Qs^stcfIRcZtpI|gJS0ohC zZEWq)BuFeX9QLwBOf-jv4k$gc>-|1_H@$D8wG$dL4eES_Vdb*~`rj9Q)Cumtjn`#v ziyQpovMMWDDRVAGVE>RK=?<2y3L~6 zYLNzqs!5Yy`}}#whG`-R#-(hhCIu*jaSx#*|K-1O8QP}18wzS?F&fi70hxXUl&4=B zR=)e?g5!q*FPcCc^|Gq+dO>-s4=^HX8M6^)758LNbC11Zs2W6|v!5lpH6N*4eV;EK zE*wa$iUZ})igyy!T|o0F)QXd>j=L+x(aKdJigST*hM0A_1yVAwKJLrCA2=x_4zM2I z(+R7+z$691HJ!rknBVljq$@y{#fL$`^A*CPV3R{@>V5WD0x(K^IPp+~$vtFW`Iq|J zj~g&)pn1^?2nTazSk{HUcpKQTWfV zABOPlZP&-I(Ws6IUIfHb<&MN4h7!O{nwL`~{#gw_3+s_3;iR?Y&!RL1eG;5^p;mI0 zzYdH=?nlxvLz-BWrO9?d@q*MbhzD$_B2}hR1AYQ0H1eOGkqEb?kGS9>c}LeHSY1 zv0O6e98w8AKCvdZsLK;0?aM{JZZ%74@Pw+!K_ap(Lz~Kzwe@I&6Z77_50mQMe4vBd z?}}!zu6lXEP1aT~-&G$lHJnBt!Z(kHWDia%CD z@ZDi)Y1xtum+#?mHZ|EfytaPz5mIQ@3J_s&*vr}wTFGIrDWBIQGka(VSgx62UKMU(fZot+!q|VmH0wKp~&?JkDKg zScLJ4PduOY)gP1fpD=vy9@g$)KKWi8`o>iIy-joboZNX>t8i>2s~Kj2N)%%|nt@+Z z)Y!CQv_>V(Gr^5-Sbldj`#91O>$HVw^ZW@(U`7fsRGgB^qpG*pLWWrI-P%t^5&!)xCcUIb&i^0SXLahD+)b z7cOx0M|trcd96)^zEe^Nf1MSU4Qi@%DT+hT`-@O3qxIZHMng5$&pZ@qB#OK%fzeSD z7-jTIO|zH`C)6nA^F$nJ3Vpck+Ba=qFK`R z{GaEpe;LM39$CaD{gCu!JLJynCsJv@qR?~;bxq^R+!P#STV8^09>By;7ufoqzVGs# z=Lw(#nrTAs?YP5)p$yB@)C?4(M3T~}vF|#VH8$ZB-nKVT!J<*2Cr$#4Sb0OS`qSZ-i;^ zI?~&Zkl`B)ADfXinevN5uXrfIun>qz(jZB_5^qLWtYDegz&Ww|sjvf0n%W>RGriI2 zBYQ9wN@9?aEu*;gjEdmH*MH>k*iPNd0vQ=@S;r#-*xxEyFKQ*WZT{rN4)fh&0OhLV zam`X0kkQI_{CiyI`2^m99PaVLp$PY9)YacM7PM!vp(TG-ew zBz|jh+N2l+=~=f${%bYadt_2@j4N2pLxPBOlxbdaFnXCQvbM%dNQ{b`+xFf(_litb z%u71DSgqdxXbT9bLaK zcL(D?1JA?#KED0JKU#Tkn$k6`r@1<;_wjd{5d)sn-Xm&59U3#%G6MSN`wME`D`k^x zCg)Q@A)Es1uGv?5_i)bqVIluB@!j&a@u&x^?k6Ar^K0|-0R1~^1^IKYW%V5P@t=*G zo=!L)AiL^kIM4B6ir&#Fz|kZcSJ%+kUH&@SCV>Re^|%#bTUy?>y{=y>t!wC`2m=g` z`FwTFZ~!7^*9N=chvmWoU8N{pgpxQu=8#(w)o-MD%4II=pp{Aa4p|J|k6{|V7v__; z=}s6GVA#k6QzDh3eV7?Kv?~fGq=l6@QMmnJf*)x#9>2rui7||4$i?zt+0XDP!Z1$r zL7ppLJXNvyLoi^-cu26S!+-{9O zMHPD?J}9s<6|@o>VjVTPlM%w>n&JHj|7PggH|8I{O+1aVIuFI(VL^GdA3VNSPdl4>C)G7wEnZadD_wGQ+;lkkB zo%o6!mV|j>@b9{ag!#}ugBa;2{kcC7E}0Gdw@1)-{yCQL+BPxG z=5mkE7mIOtI8gu({5~v~K@gpv-r2&A^YczoQle2)Sk)56eahVF-`LRaXcNr!gCC57 zio`%>{9nDoIyXNTUW2ZVD~yBi`YvN(Na;AE2GMeWsxLoB9W#~y(s=G02_N7G09)gf zses-QDVT8oHWl<~a~fc$0ai`6DHOBR^z{9n-oTD`Ui4FyjUAq~@xiXc!qe##qgy^- zZMUn|;IUi9${Aj) z8d|f|S57ithnjL+{Ag?$g$T0u@-cA#_UHI%cEuGPfo9oVzjdg$Y^Up%`~9u@9h|G1 z59m_(J%d2IZ`=p=^>&AE4RkqHi!;F*sJ~Z|3^f0M&Q``83NB(u9!UVikaxU1EL|#K zs=FFd135u*bRda05{*FF18^nE=C7rDPV9$HuF}U7p0INGK=>FJx43IyUbm8IT&owO zsxy?<(QKj8mD_WGp15Apru+AMa}#9H8aC#D3V83jR?uiQ$* znsBV1nL9-6#6}b!;Iu+KJ@?yvK!o-tfr#*wQ;1Dg`%zAjyrLN@{XXcQd%(~J%YG%Y z*ssq5q-L+od);MqDce-8a~ZQhE3--O&rRC9yL)!c_K`p-n(f7Wnq|t%b4x8;Gxr$7 z4g#TPLYT?6w|6HESmnfQv%kI`rLZ%O{Qc$A3RW!X51yUaqS0CW&+QrmhoO{euQ|(U zhnhkF|F(F(bv45NTnMty0toSNSOTD_{rvZq?+d&zUJkQnto#vP`|TGzAJ#rMUtNRd z_kpN15ZUU7RoPwX&$HPB8y^&wy+qe0NYmLXyKlCie`eR(BbTF@HUFDb!Bk5(9kSO8 z?6n{T8&%C_t~W14{_a8pX;E9|Gn=iom8Y-d?|_7t&|=h^*4+(@bpYa z&+^UEtPDpCxaBZ0+2+ggx|7g#`*fGh@y%YG&H4TWwBb zmS*WXuTVg)t5KKOr|I%t~xM-pU;vhRHT$+|Ca_2PlKeNQtJKnylVl%o6?Wg6e(MxIiUiP zK`Y*D#WM~}bPd|C$YnXAg3wt`GC9WJ`dUmQ?S#e^Yp@i-9p&Ijk-j4k0KWwMQ5p~X zX%>jqB>Zxe(E&AFk^nLUUM;;wNyr9nwE7tPPNtg1SN)frL?5#D{44wCZ1--x?-K|9 z7a)B7e8hR8r@g%!rK=uBm^+QZu+1{;aGx__T?>=6iUNwS^gw94O>WwYESQw~)JqAUu(#Pc@zGrVhL)w9WM=x=u%GUaGJHWqyocC$bE zdH%_DohDwSg#Db(JQ{E;_AlmqMZY@Qq4&y4lJf~3d_%~ePD;)T; zcb_fMg2F^*l?gGpp;T;-2}B`8QKTV^JPIP*ZLX#zgor$f=PfCEfV7|OcEK3k{e+h( z8_E$42?C^z#wdn==EPjL)6CkZFH$(={eW(trMJ><%?9mbuR%1Uu@# zR4tj{#wAvHEi;5A_Yf?EQSa=El-PgVk)og>N#6=-{Z*7FAzL5uI@R z@ILpZ&2gLzGm}f;xe>;S5L2&W)!{1~g_7|Pb-CiCgyM;@&s7-G2UsK%Kgb?SgTL=I zS(-zGoZED%BtWBmOT2+9r`^lh?W?$?(wgfp@zPuZt%CefsZHAv3%R@2TZqp!SJ(N= zm_hR6<+1+nC*3j;jD2WKvgJluR4S+f0!E|cdbo#jx!RXYGq=MpkB>V3^5U=M z@RBMBoW|9c_(wR z1@p*4?=gkdO-`J27cit5!H5>TPN$i^3BE~`y>(9H>YfpJS%)#&$ed;vU#p>8p!b8* zt+i$;v7gjx0JQn)z(j&VqY9wV^PW^Tu&tfzAoGZ~$TuG;i3-wh`z zCaVGhXbXL@Gf7dS$?^PUy|r13;zil12_mxc8IZoS_u?&!nVqeF)A*HM{5h(Gf2Onb zxyHEV{YsMk@@Cd@ZuSKpbGa?H1GPngM{rq1EZ228M7l&2*`>oFWqP@buTug{`oiJo z3l}tnVu;TJNnnHoxW%v#AK1zH?)mzaCLCC`UA0rY?N@t72)qMI+pkNc=_N^uJhul4 z`n1!0PZ!p5Khs}Yyje^`-x?o{cD$d!o83Er`s>df`<}S%ZIo1$dG>S zr9yjNM#_^Hf{C?0vlh(MIAAy6v?AdjHJeIQJR%B7d7Bqh(Jj1m&QQfZ(%9P^{wroQ zrhBl~Hk;$v*}>8+JhIq$O73e{Qc-x{@ir@J)3IRk#xzHB z1^tCVD6F=%cSk<1dUIDMlDL`_Ey7)`u!>Pp14%t2YSbWvLaFG1qA1HuyBT}y+0GYqzI+z@|CeXqV?h9!4*8?j9(D%$ICZ(v+cGGqduS( zobWF>Rf>E2iEc*XmUe#22rujA{k3|uS5akqnc)8uR z8DDHl-rhOB95jB@9V7Fu4;#1im!kj5G7se~D7<<6WvZ|3b%`sW?X%GQ&$*u@57r-6 zyWI*niKc1o3K;Gl9=pA`>b8;Ds=&fzy_s$A)t9^4A0+rjS=A0rsWY0>?*FiN?_eXa zDJDXWX!XWe;f4l66u^2}Nojef0gFojLu!{;b-SY$e)iJR(l-Ea&F=Foe8uaL*bmI- zTenY;pzNnzwY9fh$CySpSANLl4B>!38y4LAjwbz6w={qO5>qeKkc{&1VW!&?dL^?V zWp3~fTxh@LmN{Sl;jYl?IrD@a@qbYuEiV*{tV$2EQH4q51z%ZCH2D^T&a%N z{w5wU_YZaXk?rdTot2Kjt=s9ZN(lh%Go_O*NOaLAl!Pf~G^Z?f5pO@%L&w+AZNN73 zE}Cc`uu$A~&6eUj$`noC7lXeaN#LI@{<`{O`@YZLa+FSFBl2e?I9kf`rees5J)fy2 zyaz34sTl1=Jhyg95z@a7%>*{Msia33s(L{Vvw&`Ve zln^yjo+)R$rGjFD)d?&=<^++46u64V%ZkBQfs7{uaDlBP#;tg@+W&r+z_aoeP~5Y? zAms%A(l4exj*qA42Jzh0E$EDFTxKufvx{8oh4?LY59~w%2U)iwFwqKm%$o`W(wu`Q z2-NrtDTlDqIoJ4F3zaJe)q6(Z>JWgj`?A6yc7{Vw!9Zmf^OvW|E?h1%O8#_)*On&- z17T*LkPO!V@W>vCTy-6*c=M=5pSnUl($eZja-|$}OSB{h)+3BLbX}m)JvCEXhJKaoG_5Z!gQ68b)5VC`1jyw_Sc-GKp+{T07aP!m5rSpKwUt5w@2A^$Lq9-x#sy`5rU3qnq~qPA3!(l_q6J7OHQ%~ z_=x9Et-9%lm4C}1i`XT#=L`~&Rk7}eV*o(7ECd$}cRnE+!wM11afW3lQO?yVto}S7|_`YvMJVfPAwxZouWGiLx z4P~6&oc6=OG7Sv>5!=k-Kqps{WywUVoRB`ag{U(Y$rKwcSgY{C;ZM%*+LAYV9H4jqA;%xNx114 z?G3-jLat_hI8bC}VrRTyHZblA-QjFZ%GkgKlZ=#nNIz023cN%i+i)Q?k%|AA2(yoQBW*<~`H@e%N^=dQ&u|Qx zC$kkQSv$zB(mf60EV8Kz*S-Gb5zUbdAjv3$AYcxX?)pSu9Y6Ns3dn8(YfZ?3Mr*<* zlO~VkqU8%#TjvbDAjL{D{AUciAXA*pF4{c+;abj)0S6Hof^Gx3JSIb;79VtL(y&6l zNac?Yqzo7DqmUoiU124dl^Eckd5fM8-wp$fQcnw~T=N>iB-30abHRG?Xw&k@>w3xT zH)dzh&7H7+>o`MeQpoYgDK|hKTGY^gSz$~5nI#ks#amLL#({Vmwh{Kl67;;%reKn8 zbkhucDSlQ2r37xDt;f&r$Nc;sA5!#P;`5Ma+Uhzp+)YzmvshwSaLRl6zXFiIXDUpE zWipbN5e{3*7^4seLRv;CRTL7_j3LGE385RhlqLRDO-vq!sdzj{Su>%BHmd1b%{)~8 z!G%o}bl^E2$}n`d;xFuV>ic#5yypABuf1vJ{e5D4-E@065u-ar^1nvBrIR} zjAR9>EGCt((@6sLeqFa6XZT;H0YSf9n$X&%)xLX_^k{~DJn=Bh3q(@KAhu%6P-Wp5 z4(OXcuw4lG_~bN9LLB>3AQ!Pvw9yLGRtEt}xV-V^80|McpQlQJ$=8CPmnFpJCQ(_%+#gFo;!P1=^cL{|Qp}RB{SC&SCc<$6 zV#R9US0UxtrT*r{!vU5iBquIdn$YgBk+i~K2?*wp$$8s27^`OPJdy{GP}Cc6m`;jj zScS}tntf?ewx^1uTwk;Oxd8ZVt^I2ttwW7Icw*rD@V#6xbxaGLk|T8Ce+qjioyS4E0jF#IB_zP4U?%V#Z88gQs? z(qLE+*f{RT7MoYHVkX&}HCX?qN5b%$!98^_aX%A*U5H^c?`FBK=WABZo?7Y6FE=dh z=@6WIhj7Crkq`n*pUq5!3Hr+?PZEhF(|TukO!v=o6)LFw+1OokAds`DeSQ!F4ukxp z2IM!KzcXFMt-d(JS;A8@RMRpBxwBJpJVFyi+xo#rw32aA70n#hWri5LwV`(iu)Ul8 zUpLBBv$Wbzeo%<@cF>Ra+clk_bbcBoUpv1r6derA-frq1J(fp$g#GJ8?px8{WPXn$ z_bvhHe?%5xllaz*UsLBa{0pK`_@n@;+dLTQ(pyGtju>os0cmE8QoxlhZmwVY5-NoP zeAURa^WfE}b}0B0CclPh7%NzI_>ccJ6J6BN>Aslz;f?|u|E+u1o!l3=@29KJu_XT) z%-&Tt*DtRFpZ8!DQPSU>q%=}ejb^NTWh6A2g_~|jrSzkX_63Et2N=M1j;xT_vbO3U z=XA{}BJ){bW2#_^d2iAO%U+PjffAH=2Zbp3_ql8e+C!FOD=_vpRC7kWFVeZ(bZVPkmb!GI8$2YNLPpuo2ZQ5@_jAp(iL+op}yw zM4R1!P8tOLMicH(?s02#a_z7YbsYGr4CI^ zXK-5oGuNaPk$y%aTr%{5Ik=MT_f@stJn6QVW%>#*HX?htDVVtCow{tuvU?(#wh%r0 z_$i*H;rB-|GPfPW1F}-AC~)_`MjovgQ6WIcm8VUXPdEFddemMjU?wr=F!Z!^e0>JQ zZsmaI84DR4$p=yYy9r!=Caq{7A5-MW8|phy4gi)@HW zxCpdWUYyUCmqz2A2j<{b(SOpoA*nT@1F-0yMpc&g^1XMW=4yM1GH1skG7CQ%u2 z<>81|ghA11(GPdau$=l3^ucK9dT`5u#2BhXA{iyDC^7{MAcJA1EJv}FAgBkUpF`$% zqvnIBcR-93l zNPbU*(>1i07J`kH-Q~NTfOB`siS7BK&zWIJ_-!DNL7&FR0dog4ik?MNya2UIdsq`h z0TDY!9<9oNC)!-ikOibrr^#eTqM#OXJkcpV-nwjM@+!m1gA9q)rJ2&h5GIqNlI&2# zL@;JbDcm4MSJTW>nZb(v)Kev|)f+4;#+qj49yz3LY$QS_zAzSpq-*h^gR8L}FNgEO z@k#C<$7AKb+CwWXAH(!}Kg6wC48sGmhvu9FOh~I}vGDRhWu}Oyg~|8G*%Yg?4g#_l zpP@rdA}~?vf?6e&baXXH3)+Ao9zjKV3GpYKd>98z4rh_9{5is(ss@^DCS)$@s{(cb zmd?3u$A~GU?xckgwk2%9_x#e%x1S#V+x}*RlO@HmQWi@sTo%=?miBX9Y?bfDsKaP` z7>({)vY5Ex$3tVi$duhB1FZ@&$Z0Evp9D@1n3APFXYSrr1i}POqhxL!qs2!4$#BL+ zyhRc~w_Z9r z`hmZGc?AS@?cX9UE)%3?(HB%RvMyf zP6i@MaOXal-Yf1n%RBkszkiCEzY#@$h7jt#_My9-onFWOXM|hFaewwnMnB4kzxpo4 zhjlxJ|LJRoI_QD$Ij7L)iQhX>J@;f0X)HuWR8S*sa1%7t41|mdIgDfm^TYpS!i*b@ z)o#%u^oFMYw&6$y8ljW!+FD6@ISCmVdyI%dMh`(*wvzu&efg-_eoV1kk!6!*kiSOq zK$_IkPscfE<_nsc_ce&!8&9SFMup6bFg6$FXj!e)xUtGcF> z%{#J7&o6#BuV>ialr6J*klDyr?4l@oP7XW-P|7@bMA2V3-E9;l3sAJL)Mw$4$<8FB zzzbsCgt!6-{s3t&299xK?^H>HA1sFW)-*%v4UH&6OwiN>ycG^nM;KAFKZv@024Rb* zG6prr{TIELFL|rTs}8?i$`a7IF1p}JSVrgY$pOp%nXO^}H~ih7Z|OXBibk@|GkwBg zK!U)yhY|7aqT~o8!L>CpIJeE;Mj`Z{?Y9>~hpN3KMZ%E9WKVg}Ol3P_P)ucsF?I9Y z=)#PB#+1e;rlqKdA6rb^W~9w)BKau&kc2$ygK}&CuLbbwU^Tq#;j=*Sj`sX|P2Hc? z#!l&-&2CMP-Zr$h(zrG|_@J#A%i!L5H+lObEM4)&>{Y;k1z$RV8q(iOimxVt{Q8lF zojr&O5#3YAM=5T{FPn_B%U*Tb|dvc_)3pLRi5` zsy03Hlo>-h+QYCAYBU{P>ibVCanq9g!bdq?1+aB5bRRv~5m?<$Qm%>J@5YT`LNUjv zgy{_qR8FE`Iyico!v!cB?8+p$Px9KeQk{Y-*h-Ys0n!x{CSx+A5jJx&YVp)SV>D>h zcds=N+0rg2RqH?!rRW-(hShv|<>N9GDU)(R!iWIF71B+ zOmsjo%AJq&A^l%oIfxu|S*}=%{2+L|DRs`rUoN?K-pN{ipRlJc$Gg1j)jn^>jr-vK z1-v(uSLx`?~vta(Qui-jLFi^PD8%Y>$_qfoMbs!XXQ+7l(8PV{($XK;kc^8xFpP_bSVK#YqAS{nETnpDmT^6nhuR3#bdnRzQHL)zsZ&0fhsA$1a+`D-yFU1nI@EFaPiz z1NN2SM9DzB@MvrKLCr$ZWM?f=1uX{0Aj>CXA{tbXYR(}wLo4^=asq(~YutytAF+4M?W z{5(B>@KmsPF>>?LaX?{GGZl{dnZ~iP+^@92ot-uV} z=)oWiBehndg7Rmi_=cH-HF=aDT+=h|3Yvmrj{wkXp)d=8VxG8S0EbL&ZWl(Lfk(UG zgv~^c3+4%yKyAhe6pdUc(3qKope`U!k;3}4*-+JD{Gk);lK#^f?{#9@{^3~*SUKv9 z=Ps#NB4)*OJ3#s#A{I3YO;_6k{}E&eZs%4h_}1{NCl?Gnx5Pu(-Fw7Tdo;S=c5ZJd6J;#krinhvA#X8y*oqDC2BH`ABQB-zufS2 z3nk^Vi8WV-_ug?3sunaTWq)?Oz^-q9k|n7|R&p@f;_dqtzzG z8c?(h!Z#)A*A0Brdss!ceTEyjzXMYzMYuTq++!vQRDbVVQmRIBoC)TCu}MXX7WoZi zxG|;&hqwV8RXZ+4$Vo(e@ZOMYzXgouFlAA7&;K!^QUWv%ClBgwSoafO;F)gVL* z^?zLx+Pq;F52)qn8?J}h)*y_KG9THpSPdGUhK`9nqrs=+o4TfV($VfQ=WV8IHAl7` zNT%hhCFm!>a^?}QBksO_Gd|)zKRJ6#%j$(aQm3hbLG-i>BTZ@FqYaCv)p8m^76}oT zG#G~tEvzB33MGCoriBBTpCy{AQUhS)}VW)nk&!Vt!iomFP^ z)-WJ2dR3jpGM?&I!hTH1sKMHkP&>mdfkjnA5)8WGS&kcF76-?m7eM6%qq}TF43~a= z2&+LFC?^DX#;m5Z^Y{9&pSR2xC0IHdCgtm<)hTg}u9UAj(pfD=i-mKA%9rXDQtHdV zzDWLI&3Miz)!Dc%(by)K16smShVMiXwk?&1IHIgXGKnCPvf+LcYy`UBuv793qCq9| znK&ZI4B_nJ2U=hOEpfb}!dfF=iWX=U%TwzHR!wKCM4e-B@07~ihmO;nGwGGPPYxPx z@)(T!JX7a61R^^;#f3k=d8?T)zZ4;F!SOz|U=B%cJft>e6cU69ZWB#?v(eaeTB*L401i z77P7VLX#3zJ!Y>HejyAM86gX1ZFQ{Rp9k-tJMGv-Z+Q@YaUKw_4{Jh6hcyjlu#y(w ztxA@mOOT=A00UPJRv{ueEhB_R$#wc&zXB$^-X@ri%=9Gg6oM|1Fj7JAM+E74)5@u+ zwgvq2dp-Tl!SNS=*F6OK_3tma4!g*kQ@Odj3~~o<+L5=+K&Q3a-a8`@LXtbQ&#j+4 z8{!E;tF13u@yP}#K-Q_vi@OnQpij17cg*n%m>>gT4L=y*wr2=mvF+@3xOodn4@z27 zAb-03?TJseQPy`V`+E6P`X+~gke1xdjgba!1_bUvB3sZBVj4kgm#B+N%mCI5&BEA! z`Ya)tKt_G-dW-otlsrjV4IaTBRqM@YupGUNIE6sy6gh)TUI*Xk0(yO?8C~Ray4I|{1cRHJ|$>5sHEG#F5<8NLmg}S5>A_;-w zQ@qi2oXil?p*Va1#U;hK+Jh8Y1gpjXPH54PfTPz+P}tY!bTIn|`&V6nS%ktV7bJA< z30lqe_-{C-M{u2{c1*3z#Hl3}aIF-Hr)G&KSBkc`6DN7(JEMzzbv{9FGmIA*g8nkaO&HIJRJF87@qE{=_AK@8T2!wmQkh7gN`Km>8w1u(znR=TX!!uwGG7Y#ywfnQv zNYix4G}XBa;(IlN>`Zn==8A8$R_5y6F^=}Fek_bo&qtKGB~iXxfOcz=r>6BsSh|gE zO6X`9T{@awg*8N)5oJAJ*uU?aVUDDd$Yo^T+2vh~OfLxsjJlr0iKdZAvlflsNAgTl zjxlXBgr9Un7`XF>6BSc9oNT|Ck-0tWxZ@>RT<((6*oH|EJM-7L==_`iH*gqKld)qk z6x5KhlMA%m!u~bMM3}J+O_|k3bHwMaGa`ad3!K335?`lkUxwE1Vq*A@3wy~#r=aiC z)_YZW0YS;@h-8$ITY>1@q?3f^(NsS*WNn*(#}tJorART&B&XvM4UlT}U)N)0ZBy4( zE8D4RW@8gwIVnSx1Pyp$S{eo>CRjRc5EMdwh$sxq#VeJXSFUbtAO(=}k~xWk&7A&| zP?6{6?495Mpt7TW^H{Q8&UPPUbc@T~cDqz3yn|(%57H6fY*KU*I?Kkv>qmOoA8kVE zHXrGxY^7GUZA3m|5}u4<2|+eA!ZzeC0^JYM9cdN{Nh=vG(_G)oG#roym4N0nAF!1p zx3)oKeHq)>grl)~9sl%53687w$?N^BFrnxILzaLT-#%DB+&bTb zhgbIITfL*>RC5)Fcu=>Gh7qg*#)bnfJDw}1fK$3PzK4#_XXn$4Y}4hI;+T=COZ09~ zFGTC*o8!h^$dj#iXXx=4d^0Ur4x(hV29!e_Jyj+Vhpseb#9!C(e z(iU7e19J~tA*sSe6pjdP=e$bKo+q?%ol3gf=+flg^9sTM82Y*QEQY}$?-whsYpH=I zNq6Sba_yHG=WD*6Zktz*eQ}=s=cdx7Jcl!H%lN4+S2!4!aimaIks`^{>9bA4RWE|v zPMb{#olPY*z(K1x9FFQ&eMC_G_^# zg~$HNCBVCiFG4N7w_Nt;Bn>k7_p*)Q=(5_ITXeU_>WcfZuTL)5z~aw$%s!ya67-JC zs)$ALcCeNQ+2iPADKbcP(mh~!*yvb=WAT~dMC?PTK74M)&1%>3dAe{uZ`qvWj;`(A zE}O*6U2hGnXX%9iwSO++eBVR#=%f>Z3?Lv0H+=WN&4&ZDiJhI!B%b#M_kVq~2@8zN z7$<$oU--yJ$=xy-s)}%YmP1h$ffB)BB%~>OBj1mtBpYQAWuOn|-aW2woACL_6?lYJ zDYb3t{X()n?S;;aua%2TC-1w5(^$ygVm3F20$zQwVW?>DQS&6l-dCKuJ z#wTL))SYgEPDz7nR4BhskygJ63-K*{MNQc&7;$DC`c*@afBAvA*o!KXbP}!={>D

4z;dB{RJ~G8;Jy9y~W`CY?Y`zxJP1fB$ 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≪Q{__s?msPN23r;<%Rjb!X|fKy&hjf`rFj>axx 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 literal 0 HcmV?d00001 diff --git a/.github/workflows/automerger.yml b/.github/workflows/automerger.yml new file mode 100644 index 0000000..6cad143 --- /dev/null +++ b/.github/workflows/automerger.yml @@ -0,0 +1,36 @@ +name: 'Automerge Dependabot PRs' + +on: pull_request_target + +permissions: + pull-requests: write + contents: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - name: Dependabot metadata 🤖 + id: metadata + uses: dependabot/fetch-metadata@v1.4.0 + with: + alert-lookup: true + compat-lookup: true + github-token: ${{ secrets.DEPENDABOT_TOKEN }} + + - name: Authenticate CLI with PAT 🔐 + run: echo "${{ secrets.DEPENDABOT_TOKEN }}" | gh auth login --with-token + + - name: Approve Dependabot PRs 👍 + run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.DEPENDABOT_TOKEN }} + + - name: Auto-merge Dependabot PRs 🕺 + if: steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch' + run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.DEPENDABOT_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..164325d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,57 @@ +name: 'Continuous Integration' + +on: + push: + branches: + - main + pull_request: + branches: + - main + +permissions: + checks: write + contents: read + +jobs: + ci: + runs-on: ubuntu-latest + steps: + - name: Check out repository ✨ (non dependabot) + if: ${{ github.actor != 'dependabot[bot]' }} + uses: actions/checkout@v3 + + - name: Check out repository 🎉 (dependabot) + if: ${{ github.actor == 'dependabot[bot]' }} + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - name: Setup node env 📦 + uses: actions/setup-node@v3 + with: + node-version-file: 'package.json' + check-latest: true + cache: 'npm' + + - name: Install dependencies 🚀 + run: npm ci --prefer-offline --no-audit --omit=optional + + - name: Run linter(s) 👀 + uses: wearerequired/lint-action@v2 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + git_name: github-actions[bot] + git_email: github-actions[bot]@users.noreply.github.com + continue_on_error: false + neutral_check_on_warning: true + auto_fix: false + eslint: true + eslint_extensions: js,ts + prettier: true + prettier_extensions: js,ts + + - name: Perform tests 🧪 + run: npm run test + + - name: Run build 🏁 + run: npm run build diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..e4d98dd --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,43 @@ +name: 'CodeQL' + +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + - cron: '45 23 * * 2' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [javascript] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: '/language:${{ matrix.language }}' diff --git a/.github/workflows/demo.yml b/.github/workflows/demo.yml new file mode 100644 index 0000000..0150a8e --- /dev/null +++ b/.github/workflows/demo.yml @@ -0,0 +1,40 @@ +name: 'Deploy to Pages' + +on: + push: + branches: + - main + +jobs: + deploy-demo: + runs-on: ubuntu-latest + defaults: + run: + working-directory: './example/' + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v3 + with: + persist-credentials: false + + - name: Setup node env 📦 + uses: actions/setup-node@v3 + with: + node-version: 'current' + check-latest: true + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + + - name: Install dependencies 🚀 + run: npm ci --prefer-offline --no-audit --omit=optional + + - name: Run build 🏁 + run: npm run build + env: + VITE_WEATHER_API_KEY: ${{ secrets.WEATHER_API_KEY }} + + - name: Deploy to GitHub Pages 🚀 + uses: peaceiris/actions-gh-pages@v3.9.3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./example/dist diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml new file mode 100644 index 0000000..4f78ffe --- /dev/null +++ b/.github/workflows/lint-pr.yml @@ -0,0 +1,28 @@ +name: 'Lint PR' + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +jobs: + validate-pr-title: + name: Validate PR title + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5.2.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + check-sign-off: + if: startsWith(github.head_ref, 'releases/v') == false + name: Write comment if unsigned commits found + env: + FORCE_COLOR: 1 + runs-on: ubuntu-latest + steps: + - uses: live627/check-pr-signoff-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/shipjs-trigger.yml b/.github/workflows/shipjs-trigger.yml new file mode 100644 index 0000000..fbfb720 --- /dev/null +++ b/.github/workflows/shipjs-trigger.yml @@ -0,0 +1,40 @@ +name: Ship js trigger + +on: + pull_request: + types: + - closed + +jobs: + build: + name: Release + runs-on: ubuntu-latest + if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'releases/v') + steps: + - name: Checkout code 🛎 + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: main + + - name: Setup GitHub Actor + run: | + git config --global user.email "action@github.com" + git config --global user.name "GitHub Action" + + - name: Setup node environment 📦 + uses: actions/setup-node@v3 + with: + node-version-file: 'package.json' + check-latest: true + cache: 'npm' + + - name: Install dependencies 🚀 + run: npm ci --prefer-offline --no-audit --omit=optional + + - name: Trigger a release 🥳 + run: npx shipjs trigger + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} + SLACK_INCOMING_HOOK: ${{ secrets.SLACK_INCOMING_HOOK }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a83ad6e --- /dev/null +++ b/.gitignore @@ -0,0 +1,130 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# macOS +.DS_Store diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 0000000..ff455dc --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,21 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +NAME=$(git config user.name) +EMAIL=$(git config user.email) + +if [ -z "$NAME" ]; then + echo "empty git config user.name" + exit 1 +fi + +if [ -z "$EMAIL" ]; then + echo "empty git config user.email" + exit 1 +fi + +git interpret-trailers --if-exists doNothing --trailer \ + "Signed-off-by: $NAME <$EMAIL>" \ + --in-place "$1" + +npm exec --no -- commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..1aa95fe --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm exec --no -- lint-staged --no-stash diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..c9f871f --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +registry=https://registry.npmjs.org +@geoql:registry=https://registry.npmjs.org diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..209e3ef --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3e6ab7d --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at inbox.vinayak@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..83922aa --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019-current Vinayak Kulkarni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..51b0e9f --- /dev/null +++ b/README.md @@ -0,0 +1,199 @@ +# Mapbox :: Interpolated Heatmap(s) + +[![CI Workflow Status](https://img.shields.io/github/workflow/status/geoql/maplibre-gl-interpolate-heatmap/ci?logo=github-actions)](https://github.com/geoql/maplibre-gl-interpolate-heatmap/actions/workflows/ci.yml) +[![CodeQL Workflow Status](https://img.shields.io/github/workflow/status/geoql/maplibre-gl-interpolate-heatmap/codeql?logo=github-actions)](https://github.com/geoql/maplibre-gl-interpolate-heatmap/actions/workflows/codeql.yml) +[![Ship.js Workflow Status](https://img.shields.io/github/workflow/status/geoql/maplibre-gl-interpolate-heatmap/Ship%20js%20trigger?label=⛴%20Ship.js%20trigger)](https://github.com/geoql/maplibre-gl-interpolate-heatmap/actions/workflows/shipjs-trigger.yml) +[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/geoql/maplibre-gl-interpolate-heatmap?sort=semver&logo=github)](https://github.com/geoql/maplibre-gl-interpolate-heatmap/releases) +[![npm](https://img.shields.io/npm/v/maplibre-gl-interpolate-heatmap?logo=npm)](https://www.npmjs.com/package/maplibre-gl-interpolate-heatmap) +[![npm](https://img.shields.io/npm/dm/maplibre-gl-interpolate-heatmap?logo=npm)](http://npm-stat.com/charts.html?package=maplibre-gl-interpolate-heatmap) +[![npm bundle size (version)](https://img.shields.io/bundlephobia/min/maplibre-gl-interpolate-heatmap/latest)](https://bundlephobia.com/package/maplibre-gl-interpolate-heatmap@latest) +[![npm type definitions](https://img.shields.io/npm/types/maplibre-gl-interpolate-heatmap?logo=TypeScript)](https://github.com/geoql/maplibre-gl-interpolate-heatmap/blob/master/package.json) +[![DeepScan grade](https://deepscan.io/api/teams/9055/projects/19648/branches/513258/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=9055&pid=19648&bid=513258) +[![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/geoql/maplibre-gl-interpolate-heatmap)](https://snyk.io/test/github/geoql/maplibre-gl-interpolate-heatmap) +[![GitHub contributors](https://img.shields.io/github/contributors/geoql/maplibre-gl-interpolate-heatmap)](https://github.com/geoql/maplibre-gl-interpolate-heatmap/graphs/contributors) +[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fmaplibre-gl-interpolate-heatmap.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fmaplibre-gl-interpolate-heatmap?ref=badge_shield) + +[![eslint](https://img.shields.io/npm/dependency-version/maplibre-gl-interpolate-heatmap/dev/eslint?logo=eslint)](https://eslint.org/) +[![prettier](https://img.shields.io/npm/dependency-version/maplibre-gl-interpolate-heatmap/dev/prettier?logo=prettier)](https://prettier.io/) +[![vite](https://img.shields.io/npm/dependency-version/maplibre-gl-interpolate-heatmap/dev/vite?logo=vite)](https://vitejs.dev/) +[![typescript](https://img.shields.io/npm/dependency-version/maplibre-gl-interpolate-heatmap/dev/typescript?logo=TypeScript)](https://www.typescriptlang.org/) + +--- + +InterpolateHeatmapLayer is a minimalist JavaScript library for rendering temperature maps (or interpolate heatmaps) with [Mapbox GL JS](https://docs.mapbox.com/maplibre-gl-js/guides/). This library was greatly inspired by the [temperature-map-gl](https://github.com/ham-systems/temperature-map-gl) library, and depends on [Earcut](https://github.com/mapbox/earcut). + +Currently, Mapbox provides a heatmap layer that represent the **density** of points in an area, like on this picture: + +![Density heatmap](.github/images/densityHeatmap.png) + +This library aims at providing a heatmap that can define a color to any location by making an **average** of the values of the surroundings points, like on this picture: + +![Average heatmap](.github/images/averageHeatmap.png) + +Except a JavaScript pre-processing step, all computation is made with WebGL shaders. + +## Examples + +A live demo showing the global temperature is available [here](https://rylern.github.io/TemperatureMap/), described [here](https://github.com/Rylern/TemperatureMap). + +## Install + +- Browser: + + - Import the library before the script using it: + + ```html + +

+ + + + ``` + + - Create the Mapbox map and add the layer created by `interpolateHeatmapLayer.create()`: + + ```javascript + // map.js + + const map = new mapboxgl.Map({ + container: 'map', + style: 'mapbox://styles/mapbox/light-v10', + }); + + map.on('load', () => { + const layer = new MapboxInterpolateHeatmapLayer({ + // parameters here + }); + map.addLayer(layer); + }); + ``` + +- NPM: + + ```bash + npm install maplibre-gl-interpolate-heatmap + ``` + + ```javascript + import { MapboxInterpolateHeatmapLayer } from 'maplibre-gl-interpolate-heatmap'; + + const map = new mapboxgl.Map({ + container: 'map', + style: 'mapbox://styles/mapbox/light-v10', + }); + + map.on('load', () => { + const layer = new MapboxInterpolateHeatmapLayer({ + // parameters here + }); + map.addLayer(layer); + }); + ``` + +## Usage + +The `new MapboxInterpolateHeatmapLayer()` function has the following parameters: + +- `data`: An array of points, each point being an object containing a latitude `lat`, a longitude `lon`, and a value `val`. Example: + + ```javascript + data = [ + { + lat: 62.470663, + lon: 6.176846, + val: 16, + }, + { + lat: 48.094903, + lon: -1.371596, + val: 20, + }, + ]; + ``` + + Since Mapbox uses the Web Mercator projection that projects the poles at infinity, remember to define the latitude within -85° and 85°. Default value: `[]`. + +- `id`: unique [Mapbox layer](https://docs.mapbox.com/maplibre-gl-js/style-spec/layers/#id) name. Default value: `''`. + +- `opacity`: a number between 0 and 1 describing the transparency of the color. Default value: `0.5`. + +- `minValue`: define the value corresponding to the blue color. When it's not defined, the lowest value of `points` is represented by the blue color. If some value of `points` is lower than `minValue`, `minValue` takes this value. Default value: `Infinity`. + +- `maxValue` same, but for the red color. Default value: `-Infinity`. + +- `framebufferFactor`: number between 0 and 1. In short, if the framebuffer factor is around 0, the computation will be faster but less accurate. Take a look at the technical explanation part if you want to know what exactly this parameter is. Default value: `0.3`. + +- `p`: a factor affecting the computation of the color. A high value makes the color uniform around each point. Once again, take a look at the technical explanation part if you want to know more. Default value: `3`. + +- `aoi`: area of interest, the layer will only be displayed inside that area. It's a list of coordinates with the same format as `points` (without the `val` attribute). If the list is empty, the entire map is the region of interest. Default value: `[]`. + +- `valueToColor`: [GLSL](https://www.khronos.org/opengl/wiki/OpenGL_Shading_Language) function (passed as a string) that map a value to the heatmap color. By default, a low value is colored blue, a medium green and a high red. This parameter allows you to change this behavior. The function must be named `valueToColor` with a `float` parameter (which will take values between 0 and 1), and must return a ` vec3` (with each component between 0 and 1). Default value: + + ```glsl + vec3 valueToColor(float value) { + return vec3(max((value-0.5)*2.0, 0.0), 1.0 - 2.0*abs(value - 0.5), max((0.5-value)*2.0, 0.0)); + } + ``` + +- `valueToColor4`: Same as `valueToColor`, but with alpha channel support. The function name and signature must be defined as: + + `vec4 valueToColor4(float value, float defaultOpacity)` + + Default value: + + ```glsl + vec4 valueToColor4(float value, float defaultOpacity) { + return vec4(valueToColor(value), defaultOpacity); + } + ``` + +## Technical explanation + +The color is computed using the [Inverse Distance Weighting](https://en.wikipedia.org/wiki/Inverse_distance_weighting) (IDW) algorithm: + +Let: + +![equation](https://latex.codecogs.com/gif.latex?%5B%28x_1%2C%20u1%29%2C%20...%2C%20%28x_N%2C%20u_N%29%5D) + +be _N_ known data points. We want to find a continuous and once differentiable function: + +![equation](https://latex.codecogs.com/gif.latex?u%28x%29%3A%20x%20%5Crightarrow%20R) + +such as: + +![equation](https://latex.codecogs.com/gif.latex?%5Cforall%20i%20%5Cin%20%5B1%2C%20N%5D%2C%20u%28x_i%29%20%3D%20u_i) + +The basic form of the IDW is: + +![equation](https://latex.codecogs.com/gif.latex?u%28x%29%20%3D%20%5Cleft%5C%7B%20%5Cbegin%7Barray%7D%7Bll%7D%20%5Cfrac%7B%5Csum_%7Bi%3D1%7D%5E%7BN%7D%20%5Comega_i%20u_i%7D%7B%5Csum_%7Bi%3D1%7D%5E%7BN%7D%20%5Comega_i%7D%20%26%20%5Cmbox%7Bif%20%7D%20%5Cforall%20i%20%5Cin%20%5B1%2C%20N%5D%2C%20d%28x%2C%20x_i%29%20%5Cneq%200%20%5C%5C%20u_i%20%26%20%5Cmbox%7Belse.%7D%20%5Cend%7Barray%7D%20%5Cright.) + +where + +![equation](https://latex.codecogs.com/gif.latex?%5Comega_i%28x%29%20%3D%20%5Cfrac%7B1%7D%7Bd%28x%2C%20x_i%29%5Ep%7D) + +In WebGL: + +- First, we render _N_ textures. Each fragment of each texture contains _wi\*ui_ in its red channel, and _wi_ in its green channel. +- Then, we use blending with accumulator configuration on these _N_ textures. It creates one texture, containing the sum of the _N_ textures. Therefore, we can get u(x) for each fragment by dividing the red channel by the green channel. +- We pass this texture to the shader rendering the heatmap, convert u(x) to a color, and finally display this color. + +The size of the computation textures is the size of the rendering texture multiplied by the `framebufferFactor`. This factor can be below 0.5 without any real visual consequences. If the user has defined a region of interest and uses a `framebufferFactor` < 1, visual artifacts appear at the edge of the heatmap. To prevent this, the rendering texture takes the whole screen size if `framebufferFactor` < 1. + +## Contributing + +1. Create your feature branch from `dev` (`git checkout -b feat/new-feature`) +2. Commit your changes (`git commit -Sam 'feat: add feature'`) +3. Push to the branch (`git push origin feat/new-feature`) +4. Create a new [Pull Request](https://github.com/geoql/maplibre-gl-interpolate-heatmap/compare) + +_Note_: + +1. Please contribute using [GitHub Flow](https://web.archive.org/web/20191104103724/https://guides.github.com/introduction/flow/) +2. Commits & PRs will be allowed only if the commit messages & PR titles follow the [conventional commit standard](https://www.conventionalcommits.org/), _read more about it [here](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional#type-enum)_ +3. PS. Ensure your commits are signed. _[Read why](https://withblue.ink/2020/05/17/how-and-why-to-sign-git-commits.html)_ + +## License + +MIT © [GeoSpoc Dev Team](developers@geospoc.com) & Vinayak Kulkarni + +[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fmaplibre-gl-interpolate-heatmap.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fmaplibre-gl-interpolate-heatmap?ref=badge_large) diff --git a/commitlint.config.cjs b/commitlint.config.cjs new file mode 100644 index 0000000..84dcb12 --- /dev/null +++ b/commitlint.config.cjs @@ -0,0 +1,3 @@ +module.exports = { + extends: ['@commitlint/config-conventional'], +}; diff --git a/example/.gitignore b/example/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/example/.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/example/index.html b/example/index.html new file mode 100644 index 0000000..f183f78 --- /dev/null +++ b/example/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + TS + + +
+ + + diff --git a/example/package-lock.json b/example/package-lock.json new file mode 100644 index 0000000..36151a6 --- /dev/null +++ b/example/package-lock.json @@ -0,0 +1,848 @@ +{ + "name": "@geoql/maplibre-gl-interpolate-heatmap-example", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@geoql/maplibre-gl-interpolate-heatmap-example", + "version": "0.0.0", + "dependencies": { + "maplibre-gl": "^2.4.0" + }, + "devDependencies": { + "@types/node": "^20.1.1", + "typescript": "^5.0.4", + "vite": "^4.3.5" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz", + "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==" + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.10", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", + "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" + }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.2.tgz", + "integrity": "sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA==" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.0.tgz", + "integrity": "sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, + "node_modules/@types/node": { + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.1.tgz", + "integrity": "sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==", + "dev": true + }, + "node_modules/@types/pbf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.2.tgz", + "integrity": "sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ==" + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "node_modules/esbuild": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maplibre-gl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-2.4.0.tgz", + "integrity": "sha512-csNFylzntPmHWidczfgCZpvbTSmhaWvLRj9e1ezUDBEPizGgshgm3ea1T5TCNEEBq0roauu7BPuRZjA3wO4KqA==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^2.0.1", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.5", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.10", + "@types/mapbox__point-geometry": "^0.1.2", + "@types/mapbox__vector-tile": "^1.3.0", + "@types/pbf": "^3.0.2", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.4", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.2", + "quickselect": "^2.0.0", + "supercluster": "^7.1.5", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/rollup": { + "version": "3.21.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.5.tgz", + "integrity": "sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "dependencies": { + "kdbush": "^3.0.0" + } + }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/vite": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.5.tgz", + "integrity": "sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "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 + } + } + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + } + } +} diff --git a/example/package.json b/example/package.json new file mode 100644 index 0000000..90298b3 --- /dev/null +++ b/example/package.json @@ -0,0 +1,20 @@ +{ + "name": "@geoql/maplibre-gl-interpolate-heatmap-example", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "maplibre-gl": "^2.4.0", + "maplibre-gl-interpolate-heatmap": "^0.0.0" + }, + "devDependencies": { + "@types/node": "^20.1.1", + "typescript": "^5.0.4", + "vite": "^4.3.5" + } +} diff --git a/example/public/vite.svg b/example/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/example/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/example/src/main.ts b/example/src/main.ts new file mode 100644 index 0000000..56abf05 --- /dev/null +++ b/example/src/main.ts @@ -0,0 +1,65 @@ +import maplibregl from 'maplibre-gl'; +import { MaplibreInterpolateHeatmapLayer } from 'maplibre-gl-interpolate-heatmap'; +import './style.css'; + +const map = new maplibregl.Map({ + container: 'map', + style: 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json', + center: [-74.5, 40], + touchPitch: false, + pitchWithRotate: false, + zoom: 9, +}); + +map.dragRotate.disable(); +map.touchZoomRotate.disableRotation(); + +map.on('load', async () => { + map.addControl(new maplibregl.FullscreenControl(), 'top-right'); + map.addControl(new maplibregl.NavigationControl(), 'bottom-right'); + map.addControl(new maplibregl.ScaleControl(), 'bottom-left'); + const startingLatitude = -80; + const startingLongitude = -180; + const endingLatitude = 80; + const endingLongitude = 180; + const n = 10; + const points = []; + + for (let i = 0; i < n; i += 1) { + for (let j = 0; j < n; j += 1) { + points.push({ + lat: startingLatitude + (i * (endingLatitude - startingLatitude)) / n, + lon: + startingLongitude + (j * (endingLongitude - startingLongitude)) / n, + val: 0, + }); + } + } + + const baseUrl = + 'https://api.openweathermap.org/data/2.5/weather?units=metric'; + const apiKey = import.meta.env.VITE_WEATHER_API_KEY; + const urls = points.map( + ({ lat, lon }) => `${baseUrl}&lat=${lat}&lon=${lon}&appid=${apiKey}`, + ); + + const weathers = await Promise.all( + urls.map(async (url) => { + const response = await fetch(url); + return response.json(); + }), + ); + + points.forEach((point, index) => { + point.val = weathers.at(index).main.temp; + }); + + const options = { + id: 'temperature', + data: points, + }; + + const layer = new MaplibreInterpolateHeatmapLayer(options); + + map.addLayer(layer); +}); diff --git a/example/src/style.css b/example/src/style.css new file mode 100644 index 0000000..747fe3f --- /dev/null +++ b/example/src/style.css @@ -0,0 +1,41 @@ +@import 'mapbox-gl/dist/mapbox-gl.css'; + +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +canvas { + outline: none !important; +} + +.h-screen { + height: 100vh; +} +.h-full { + height: 100%; +} +.w-screen { + width: 100vw; +} +.w-full { + width: 100%; +} diff --git a/example/src/vite-env.d.ts b/example/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/example/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/example/tsconfig.json b/example/tsconfig.json new file mode 100644 index 0000000..eac16d1 --- /dev/null +++ b/example/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM"], + "moduleResolution": "Node", + "strict": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "skipLibCheck": true + }, + "include": ["src"] +} diff --git a/example/vite.config.ts b/example/vite.config.ts new file mode 100644 index 0000000..942849f --- /dev/null +++ b/example/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + base: '/mapbox-gl-interpolate-heatmap/', +}); diff --git a/lint-staged.config.cjs b/lint-staged.config.cjs new file mode 100644 index 0000000..566ff48 --- /dev/null +++ b/lint-staged.config.cjs @@ -0,0 +1,3 @@ +module.exports = { + '*.{js,ts}': 'npm run lint', +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..852845f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8458 @@ +{ + "name": "maplibre-gl-interpolate-heatmap", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "maplibre-gl-interpolate-heatmap", + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "earcut": "2.2.4" + }, + "devDependencies": { + "@commitlint/cli": "^17.6.3", + "@commitlint/config-conventional": "^17.6.3", + "@types/earcut": "^2.1.1", + "@types/node": "^20.1.1", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsdoc": "^44.0.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-security": "^1.7.1", + "husky": "^8.0.3", + "lint-staged": "^13.2.2", + "maplibre-gl": "^2.4.0", + "prettier": "^2.8.8", + "shipjs": "^0.26.3", + "typescript": "^5.0.4", + "vite": "^4.3.5", + "vite-plugin-dts": "^2.3.0" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=9.0.0" + }, + "peerDependencies": { + "earcut": "2.2.4", + "maplibre-gl": "2.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@commitlint/cli": { + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.6.3.tgz", + "integrity": "sha512-ItSz2fd4F+CujgIbQOfNNerDF1eFlsBGEfp9QcCb1kxTYMuKTYZzA6Nu1YRRrIaaWwe2E7awUGpIMrPoZkOG3A==", + "dev": true, + "dependencies": { + "@commitlint/format": "^17.4.4", + "@commitlint/lint": "^17.6.3", + "@commitlint/load": "^17.5.0", + "@commitlint/read": "^17.5.1", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.3.tgz", + "integrity": "sha512-bLyHEjjRWqlLQWIgYFHmUPbEFMOOLXeF3QbUinDIJev/u9e769tkoTH9YPknEywiuIrAgZaVo+OfzAIsJP0fsw==", + "dev": true, + "dependencies": { + "conventional-changelog-conventionalcommits": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.4.tgz", + "integrity": "sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/ensure": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.4.4.tgz", + "integrity": "sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", + "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", + "dev": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/format": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz", + "integrity": "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.3.tgz", + "integrity": "sha512-LQbNdnPbxrpbcrVKR5yf51SvquqktpyZJwqXx3lUMF6+nT9PHB8xn3wLy8pi2EQv5Zwba484JnUwDE1ygVYNQA==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "semver": "7.5.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/lint": { + "version": "17.6.3", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.6.3.tgz", + "integrity": "sha512-fBlXwt6SHJFgm3Tz+luuo3DkydAx9HNC5y4eBqcKuDuMVqHd2ugMNr+bQtx6riv9mXFiPoKp7nE4Xn/ls3iVDA==", + "dev": true, + "dependencies": { + "@commitlint/is-ignored": "^17.6.3", + "@commitlint/parse": "^17.4.4", + "@commitlint/rules": "^17.6.1", + "@commitlint/types": "^17.4.4" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load": { + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.5.0.tgz", + "integrity": "sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==", + "dev": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/message": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz", + "integrity": "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==", + "dev": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/parse": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.4.4.tgz", + "integrity": "sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "conventional-changelog-angular": "^5.0.11", + "conventional-commits-parser": "^3.2.2" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/read": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz", + "integrity": "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==", + "dev": true, + "dependencies": { + "@commitlint/top-level": "^17.4.0", + "@commitlint/types": "^17.4.4", + "fs-extra": "^11.0.0", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz", + "integrity": "sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==", + "dev": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/rules": { + "version": "17.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.6.1.tgz", + "integrity": "sha512-lUdHw6lYQ1RywExXDdLOKxhpp6857/4c95Dc/1BikrHgdysVUXz26yV0vp1GL7Gv+avx9WqZWTIVB7pNouxlfw==", + "dev": true, + "dependencies": { + "@commitlint/ensure": "^17.4.4", + "@commitlint/message": "^17.4.2", + "@commitlint/to-lines": "^17.4.0", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz", + "integrity": "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==", + "dev": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/top-level": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz", + "integrity": "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/types": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", + "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.38.0.tgz", + "integrity": "sha512-TFac4Bnv0ZYNkEeDnOWHQhaS1elWlvOCQxH06iHeu5iffs+hCaLVIZJwF+FqksQi68R4i66Pu+4DfFGvble+Uw==", + "dev": true, + "dependencies": { + "comment-parser": "1.3.1", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "dev": true, + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz", + "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==", + "dev": true + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "dev": true + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", + "dev": true + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "dev": true + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dev": true, + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.34.8", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.34.8.tgz", + "integrity": "sha512-2Eh1PlZ8wULtH3kyAWcj62gFtjGKRXrEplsCO54vMLjiav3qet454VpSBXwKkXBenBylZRMk3SMBcpcuJ8RnKQ==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor-model": "7.26.8", + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "3.58.0", + "@rushstack/rig-package": "0.3.18", + "@rushstack/ts-command-line": "4.13.2", + "colors": "~1.2.1", + "lodash": "~4.17.15", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "source-map": "~0.6.1", + "typescript": "~4.8.4" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.26.8.tgz", + "integrity": "sha512-ESj3bBJkiMg/8tS0PW4+2rUgTVwOEfy41idTnFgdbVX+O50bN6S99MV6FIPlCZWCnRDcBfwxRXLdAkOQQ0JqGw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "3.58.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", + "dev": true, + "peer": true, + "dependencies": { + "@octokit/types": "^9.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", + "dev": true, + "peer": true, + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/endpoint": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", + "dev": true, + "peer": true, + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/graphql": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", + "dev": true, + "peer": true, + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-17.1.1.tgz", + "integrity": "sha512-/X7Gh/qWiWaooJmUnYD48SYy72fyrk2ceisOSe89JojK7r0j8YrTwYpDi76kI+c6QiqX1KSgdoBTMJvktsDkYw==", + "dev": true, + "peer": true + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.40.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" + } + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", + "dev": true + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.17.0.tgz", + "integrity": "sha512-NFV3vq7GgoO2TrkyBRUOwflkfTYkFKS0tLAPym7RNpkwLCttqShaEGjthOsPEEL+7LFcYv3mU24+F2yVd3npmg==", + "dev": true, + "dependencies": { + "@octokit/types": "^4.1.6", + "deprecation": "^2.3.1" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-4.1.10.tgz", + "integrity": "sha512-/wbFy1cUIE5eICcg0wTKGXMlKSbaAxEr00qaBXzscLXpqhcwgXeS6P8O0pkysBhRfyjkKjJaYrvR1ExMO5eOXQ==", + "dev": true, + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", + "dev": true, + "peer": true, + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dev": true, + "peer": true, + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/rest": { + "version": "17.11.2", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.11.2.tgz", + "integrity": "sha512-4jTmn8WossTUaLfNDfXk4fVJgbz5JgZE8eCs4BvIb52lvIH8rpVMD1fgRCrHbSd6LRPE5JFZSfAEtszrOq3ZFQ==", + "dev": true, + "dependencies": { + "@octokit/core": "^2.4.3", + "@octokit/plugin-paginate-rest": "^2.2.0", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "3.17.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/auth-token/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/core": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-2.5.4.tgz", + "integrity": "sha512-HCp8yKQfTITYK+Nd09MHzAlP1v3Ii/oCohv0/TW9rhSLvzb98BOVs2QmVYuloE6a3l6LsfyGIwb6Pc4ycgWlIQ==", + "dev": true, + "dependencies": { + "@octokit/auth-token": "^2.4.0", + "@octokit/graphql": "^4.3.1", + "@octokit/request": "^5.4.0", + "@octokit/types": "^5.0.0", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^5.0.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/core/node_modules/universal-user-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz", + "integrity": "sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==", + "dev": true, + "dependencies": { + "os-name": "^3.1.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dev": true, + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", + "dev": true + }, + "node_modules/@octokit/rest/node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dev": true, + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/rest/node_modules/@octokit/types": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz", + "integrity": "sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ==", + "dev": true, + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@octokit/types": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.2.1.tgz", + "integrity": "sha512-Vx4keMiD/CAiwVFasLcH0xBSVbKIHebIZke9i7ZbUWGNN4vJFWSYH6Nvga7UY9NIJCGa6x3QG849XTbi5wYmkA==", + "dev": true, + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^17.1.1" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.58.0.tgz", + "integrity": "sha512-DHAZ3LTOEq2/EGURznpTJDnB3SNE2CKMDXuviQ6afhru6RykE3QoqXkeyjbpLb5ib5cpIRCPE/wykNe0xmQj3w==", + "dev": true, + "dependencies": { + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "z-schema": "~5.0.2" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.3.18.tgz", + "integrity": "sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==", + "dev": true, + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.13.2.tgz", + "integrity": "sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==", + "dev": true, + "dependencies": { + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "colors": "~1.2.1", + "string-argv": "~0.3.1" + } + }, + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@slack/types": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@slack/types/-/types-1.10.0.tgz", + "integrity": "sha512-tA7GG7Tj479vojfV3AoxbckalA48aK6giGjNtgH6ihpLwTyHE3fIgRrvt8TWfLwW8X8dyu7vgmAsGLRG7hWWOg==", + "dev": true, + "engines": { + "node": ">= 8.9.0", + "npm": ">= 5.5.1" + } + }, + "node_modules/@slack/webhook": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@slack/webhook/-/webhook-5.0.4.tgz", + "integrity": "sha512-IC1dpVSc2F/pmwCxOb0QzH2xnGKmyT7MofPGhNkeaoiMrLMU+Oc7xV/AxGnz40mURtCtaDchZSM3tDo9c9x6BA==", + "dev": true, + "dependencies": { + "@slack/types": "^1.2.1", + "@types/node": ">=8.9.0", + "axios": "^0.21.1" + }, + "engines": { + "node": ">= 8.9.0", + "npm": ">= 5.5.1" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.19.0.tgz", + "integrity": "sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.12", + "minimatch": "^7.4.3", + "mkdirp": "^2.1.6", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ts-morph/common/node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true + }, + "node_modules/@types/earcut": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.1.tgz", + "integrity": "sha512-w8oigUCDjElRHRRrMvn/spybSMyX8MTkKA5Dv+tS1IE/TgmNZPqUYtvYBXGY8cieSE66gm+szeK+bnbxC2xHTQ==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "node_modules/@types/geojson": { + "version": "7946.0.10", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", + "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.2.tgz", + "integrity": "sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA==", + "dev": true + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.0.tgz", + "integrity": "sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==", + "dev": true, + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.1.tgz", + "integrity": "sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/pbf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.2.tgz", + "integrity": "sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz", + "integrity": "sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/type-utils": "5.59.5", + "@typescript-eslint/utils": "5.59.5", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.5.tgz", + "integrity": "sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.5", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz", + "integrity": "sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/visitor-keys": "5.59.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz", + "integrity": "sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.59.5", + "@typescript-eslint/utils": "5.59.5", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.5.tgz", + "integrity": "sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz", + "integrity": "sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/visitor-keys": "5.59.5", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.5.tgz", + "integrity": "sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.5", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz", + "integrity": "sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.5", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.1.tgz", + "integrity": "sha512-qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.1", + "capital-case": "^1.0.3", + "constant-case": "^3.0.3", + "dot-case": "^3.0.3", + "header-case": "^2.0.3", + "no-case": "^3.0.3", + "param-case": "^3.0.3", + "pascal-case": "^3.1.1", + "path-case": "^3.0.3", + "sentence-case": "^3.0.3", + "snake-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/change-case/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/code-block-writer": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", + "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz", + "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/conventional-changelog-core/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/conventional-changelog-core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", + "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", + "dev": true + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.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.trim": "^1.2.7", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "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", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "dependencies": { + "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-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "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.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "44.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.0.2.tgz", + "integrity": "sha512-QgYuo/dd39eRrijoD0zGEMgP1y/cx3IHwdJue4PJQcBivItH0UGxu12MDajBBj1CxAlVdSl9lLOR5KQuu4kYHA==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.38.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.5.0", + "semver": "^7.5.0", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-security": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz", + "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==", + "dev": true, + "dependencies": { + "safe-regex": "^2.1.1" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/get-pkg-repo/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/get-pkg-repo/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/get-pkg-repo/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lint-staged": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz", + "integrity": "sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==", + "dev": true, + "dependencies": { + "chalk": "5.2.0", + "cli-truncate": "^3.1.0", + "commander": "^10.0.0", + "debug": "^4.3.4", + "execa": "^7.0.0", + "lilconfig": "2.1.0", + "listr2": "^5.0.7", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.3", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.2.2" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", + "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.19", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.8.0", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/macos-release": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/maplibre-gl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-2.4.0.tgz", + "integrity": "sha512-csNFylzntPmHWidczfgCZpvbTSmhaWvLRj9e1ezUDBEPizGgshgm3ea1T5TCNEEBq0roauu7BPuRZjA3wO4KqA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^2.0.1", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.5", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.10", + "@types/mapbox__point-geometry": "^0.1.2", + "@types/mapbox__vector-tile": "^1.3.0", + "@types/pbf": "^3.0.2", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.4", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.2", + "quickselect": "^2.0.0", + "supercluster": "^7.1.5", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "dev": true, + "dependencies": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-github-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", + "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", + "dev": true, + "bin": { + "parse-github-url": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "dev": true, + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dev": true, + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.21.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.5.tgz", + "integrity": "sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shipjs": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/shipjs/-/shipjs-0.26.3.tgz", + "integrity": "sha512-TA/JfbVegeHDUrf/GhyQ0VqxADh7btjfXr54U/9Om58V3MjR5jx47cmSWwQXx2Es2S0BMA3Oup4qzeKGSOXUdw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.6.3", + "@octokit/rest": "^17.11.0", + "@slack/webhook": "^5.0.1", + "add-stream": "^1.0.0", + "arg": "4.1.3", + "chalk": "4.0.0", + "change-case": "4.1.1", + "conventional-changelog-angular": "^5.0.6", + "conventional-changelog-core": "^4.1.4", + "conventional-changelog-preset-loader": "^2.3.0", + "deepmerge": "^4.2.2", + "dotenv": "^8.2.0", + "ejs": "^3.0.0", + "esm": "3.2.25", + "globby": "^10.0.1", + "inquirer": "7.1.0", + "mkdirp": "^1.0.0", + "open": "^7.0.0", + "prettier": "^2.0.0", + "serialize-javascript": "^3.0.0", + "shell-quote": "^1.7.2", + "shipjs-lib": "0.26.3", + "temp-write": "4.0.0", + "tempfile": "^3.0.0" + }, + "bin": { + "shipjs": "bin/shipjs" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shipjs-lib": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/shipjs-lib/-/shipjs-lib-0.26.3.tgz", + "integrity": "sha512-7fCZ64qiYGGOSn/8XIsteGq02TdwX0Y2clWIuxOUDjd+SxXyioD00xOvPcXSfoRgwncHq+xo6wxgHUf/q3v/Ow==", + "dev": true, + "dependencies": { + "deepmerge": "^4.2.2", + "dotenv": "^8.1.0", + "parse-github-url": "1.0.2", + "semver": "6.3.0", + "shelljs": "0.8.5" + } + }, + "node_modules/shipjs-lib/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shipjs/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/shipjs/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "dev": true, + "dependencies": { + "kdbush": "^3.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/temp-write": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", + "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempfile": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz", + "integrity": "sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==", + "dev": true, + "dependencies": { + "temp-dir": "^2.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempfile/node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-morph": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-18.0.0.tgz", + "integrity": "sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==", + "dev": true, + "dependencies": { + "@ts-morph/common": "~0.19.0", + "code-block-writer": "^12.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "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" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validator": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vite": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.5.tgz", + "integrity": "sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "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 + } + } + }, + "node_modules/vite-plugin-dts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-2.3.0.tgz", + "integrity": "sha512-WbJgGtsStgQhdm3EosYmIdTGbag5YQpZ3HXWUAPCDyoXI5qN6EY0V7NXq0lAmnv9hVQsvh0htbYcg0Or5Db9JQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.21.4", + "@microsoft/api-extractor": "^7.34.4", + "@rollup/pluginutils": "^5.0.2", + "@rushstack/node-core-library": "^3.55.2", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fs-extra": "^10.1.0", + "kolorist": "^1.7.0", + "magic-string": "^0.29.0", + "ts-morph": "18.0.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": ">=2.9.0" + } + }, + "node_modules/vite-plugin-dts/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "dev": true, + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/windows-release": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz", + "integrity": "sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==", + "dev": true, + "dependencies": { + "execa": "^1.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/windows-release/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/windows-release/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/windows-release/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/windows-release/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/windows-release/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/windows-release/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/windows-release/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/windows-release/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/z-schema": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", + "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", + "dev": true, + "dependencies": { + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "bin": { + "z-schema": "bin/z-schema" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "commander": "^9.4.1" + } + }, + "node_modules/z-schema/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..29c0e80 --- /dev/null +++ b/package.json @@ -0,0 +1,96 @@ +{ + "name": "maplibre-gl-interpolate-heatmap", + "description": "Mapbox layer for average/interpolation heatmaps", + "version": "0.0.0", + "main": "./dist/maplibre-gl-interpolate-heatmap.js", + "module": "./dist/maplibre-gl-interpolate-heatmap.js", + "umd": "./dist/maplibre-gl-interpolate-heatmap.umd.cjs", + "unpkg": "./dist/maplibre-gl-interpolate-heatmap.cjs", + "jsdelivr": "./dist/maplibre-gl-interpolate-heatmap.cjs", + "cdn": "./dist/maplibre-gl-interpolate-heatmap.min.js", + "exports": { + ".": { + "import": "./dist/maplibre-gl-interpolate-heatmap.js", + "require": "./dist/maplibre-gl-interpolate-heatmap.umd.cjs" + } + }, + "types": "./dist/maplibre-gl-interpolate-heatmap.d.ts", + "type": "module", + "files": [ + "dist" + ], + "scripts": { + "build": "rimraf dist && vite build && prettier --write dist/*{cjs,js,ts}", + "test": "echo 'test!'", + "prepare": "husky install", + "lint": "npm run lint:prettier && npm run lint:eslint", + "lintfix": "npm run lint:prettier:fix && npm run lint:eslint:fix", + "lint:js": "npm run lint:eslint && npm run lint:prettier", + "lint:eslint": "eslint \"{,!(node_modules|dist)/**/}*.{js,ts}\" --ignore-path .gitignore", + "lint:eslint:fix": "eslint --fix \"{,!(node_modules|dist)/**/}*.{js,ts}\" --ignore-path .gitignore", + "lint:prettier": "prettier --check \"{,!(node_modules|dist)/**/}*.{js,ts}\" --ignore-path .gitignore", + "lint:prettier:fix": "prettier --write \"{,!(node_modules|dist)/**/}*.{js,ts}\" --ignore-path .gitignore", + "lint-staged": "lint-staged", + "release": "shipjs prepare", + "release:auto": "shipjs prepare --yes", + "release:dry": "shipjs prepare --dry-run" + }, + "dependencies": { + "earcut": "2.2.4" + }, + "devDependencies": { + "@commitlint/cli": "^17.6.3", + "@commitlint/config-conventional": "^17.6.3", + "@types/earcut": "^2.1.1", + "@types/node": "^20.1.1", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsdoc": "^44.0.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-security": "^1.7.1", + "husky": "^8.0.3", + "lint-staged": "^13.2.2", + "maplibre-gl": "^2.4.0", + "prettier": "^2.8.8", + "shipjs": "^0.26.3", + "typescript": "^5.0.4", + "vite": "^4.3.5", + "vite-plugin-dts": "^2.3.0" + }, + "peerDependencies": { + "earcut": "2.2.4", + "maplibre-gl": "2.4.0" + }, + "keywords": [ + "mapbox", + "heatmap", + "layer", + "average", + "interpolation", + "temperature", + "map" + ], + "author": { + "name": "Vinayak Kulkarni", + "email": "inbox.vinayak@gmail.com", + "url": "https://geoql.dev" + }, + "contributors": [ + "Léo Leplat", + "Chris Santamaria" + ], + "license": "MIT", + "engines": { + "node": ">=18.0.0", + "npm": ">=9.0.0" + }, + "private": false, + "sideEffects": false, + "bugs": { + "url": "https://github.com/geoql/maplibre-gl-interpolate-heatmap/issues" + }, + "homepage": "https://github.com/geoql/maplibre-gl-interpolate-heatmap#readme" +} diff --git a/prettier.config.cjs b/prettier.config.cjs new file mode 100644 index 0000000..8d65ea2 --- /dev/null +++ b/prettier.config.cjs @@ -0,0 +1,13 @@ +module.exports = { + $schema: 'http://json.schemastore.org/prettierrc', + semi: true, + arrowParens: 'always', + singleQuote: true, + trailingComma: 'all', + bracketSpacing: true, + htmlWhitespaceSensitivity: 'css', + insertPragma: false, + tabWidth: 2, + useTabs: false, + endOfLine: 'lf', +}; diff --git a/ship.config.cjs b/ship.config.cjs new file mode 100644 index 0000000..2f50e83 --- /dev/null +++ b/ship.config.cjs @@ -0,0 +1,3 @@ +module.exports = { + installCommand: () => 'npm i --prefer-offline --no-audit --omit=optional', +}; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..38fc196 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,4 @@ +import { MaplibreInterpolateHeatmapLayer } from './layer'; + +export default MaplibreInterpolateHeatmapLayer; +export { MaplibreInterpolateHeatmapLayer }; diff --git a/src/layer.ts b/src/layer.ts new file mode 100644 index 0000000..718f8a5 --- /dev/null +++ b/src/layer.ts @@ -0,0 +1,491 @@ +import earcut from 'earcut'; +import maplibregl, { CustomLayerInterface } from 'maplibre-gl'; +import type { mat4 } from 'gl-matrix'; + +type MaplibreInterpolateHeatmapLayerOptions = { + id: string; + data: { lat: number; lon: number; val: number }[]; + framebufferFactor?: number; + maxValue?: number; + minValue?: number; + opacity?: number; + p?: number; + aoi?: { lat: number; lon: number }[]; + valueToColor?: string; + valueToColor4?: string; + textureCoverSameAreaAsROI?: boolean; +}; + +class MaplibreInterpolateHeatmapLayer implements CustomLayerInterface { + id: string; + data: { lat: number; lon: number; val: number }[]; + framebufferFactor: number; + maxValue: number; + minValue: number; + opacity: number; + p: number; + aoi?: { lat: number; lon: number }[]; + valueToColor?: string; + valueToColor4?: string; + textureCoverSameAreaAsROI: boolean; + points: number[][] = []; + // Custom Props + aPositionComputation?: number; + aPositionDraw?: number; + canvas?: HTMLCanvasElement; + computationFramebuffer: WebGLFramebuffer | null = null; + computationProgram: WebGLProgram | null = null; + computationTexture: WebGLTexture | null = null; + computationVerticesBuffer: WebGLBuffer | null = null; + drawingVerticesBuffer: WebGLBuffer | null = null; + drawProgram: WebGLProgram | null = null; + framebufferHeight?: number; + framebufferWidth?: number; + indicesBuffer: WebGLBuffer | null = null; + indicesNumber: number | null = null; + renderingMode: '2d' | '3d' = '2d'; + resizeFramebuffer?: () => void; + type: 'custom' = 'custom' as const; + uComputationTexture: WebGLUniformLocation | null = null; + uFramebufferSize: WebGLUniformLocation | null = null; + uMatrixComputation: WebGLUniformLocation | null = null; + uMatrixDraw: WebGLUniformLocation | null = null; + uOpacity: WebGLUniformLocation | null = null; + uP: WebGLUniformLocation | null = null; + uScreenSizeDraw: WebGLUniformLocation | null = null; + uUi: WebGLUniformLocation | null = null; + uXi: WebGLUniformLocation | null = null; + + constructor(options: MaplibreInterpolateHeatmapLayerOptions) { + this.id = options.id || ''; + this.data = options.data || []; + this.aoi = options.aoi || []; + this.valueToColor = + options.valueToColor || + ` + vec3 valueToColor(float value) { + return vec3(max((value-0.5)*2.0, 0.0), 1.0 - 2.0*abs(value - 0.5), max((0.5-value)*2.0, 0.0)); + } + `; + this.valueToColor4 = + options.valueToColor4 || + ` + vec4 valueToColor4(float value, float defaultOpacity) { + return vec4(valueToColor(value), defaultOpacity); + } + `; + this.opacity = options.opacity || 0.5; + this.minValue = options.minValue || Infinity; + this.maxValue = options.maxValue || -Infinity; + this.p = options.p || 3; + this.framebufferFactor = options.framebufferFactor || 0.3; + // Having a framebufferFactor < 1 and a texture that don't cover the entire map results in visual artifacts, so we prevent this situation + this.textureCoverSameAreaAsROI = this.framebufferFactor === 1; + } + + onAdd(map: maplibregl.Map, gl: WebGLRenderingContext): void { + if ( + !gl.getExtension('OES_texture_float') || + !gl.getExtension('WEBGL_color_buffer_float') || + !gl.getExtension('EXT_float_blend') + ) { + throw 'WebGL extension not supported'; + } + this.canvas = map.getCanvas(); + const vertexSource = ` + precision highp float; + attribute vec2 a_Position; + uniform mat4 u_Matrix; + void main() { + gl_Position = u_Matrix * vec4(a_Position, 0.0, 1.0); + } + `; + const fragmentSource = ` + precision highp float; + ${this.valueToColor} + ${this.valueToColor4} + uniform sampler2D u_ComputationTexture; + uniform vec2 u_ScreenSize; + uniform float u_Opacity; + void main(void) { + vec4 data = texture2D(u_ComputationTexture, vec2(gl_FragCoord.x/u_ScreenSize.x, gl_FragCoord.y/u_ScreenSize.y)); + float u = data.x/data.y; + u += u_Opacity*0.00000001; // force WebGL to use u_Opacity. This might not be the case depending on valueToColor4 + gl_FragColor = valueToColor4(u, u_Opacity); + } + `; + const computationVertexSource = ` + precision highp float; + uniform mat4 u_Matrix; + uniform vec2 xi; + varying vec2 xiNormalized; + attribute vec2 a_Position; + void main() { + vec4 xiProjected = u_Matrix * vec4(xi, 0.0, 1.0); + xiNormalized = vec2(xiProjected.x / xiProjected.w, xiProjected.y / xiProjected.w); + gl_Position = u_Matrix * vec4(a_Position, 0.0, 1.0); + } + `; + const computationFragmentSource = ` + precision highp float; + uniform float ui; + varying vec2 xiNormalized; + uniform float p; + uniform vec2 u_FramebufferSize; + void main() { + vec2 x = vec2(gl_FragCoord.x/u_FramebufferSize.x, gl_FragCoord.y/u_FramebufferSize.y); + vec2 xi = vec2((xiNormalized.x + 1.)/2., (xiNormalized.y + 1.)/2.); + float dist = distance(x, xi); + float wi = 1.0/pow(dist, p); + gl_FragColor = vec4(ui*wi, wi, 0.0, 1.0); + } + `; + const computationVertexShader = createVertexShader( + gl, + computationVertexSource, + ); + if (!computationVertexShader) + throw new Error('error: computation vertex shader not created'); + const computationFragmentShader = createFragmentShader( + gl, + computationFragmentSource, + ); + if (!computationFragmentShader) + throw new Error('error: computation fragment shader not created'); + this.computationProgram = createProgram( + gl, + computationVertexShader, + computationFragmentShader, + ); + if (!this.computationProgram) + throw new Error('error: computation fragment shader not created'); + this.aPositionComputation = gl.getAttribLocation( + this.computationProgram, + 'a_Position', + ); + this.uMatrixComputation = gl.getUniformLocation( + this.computationProgram, + 'u_Matrix', + ); + this.uUi = gl.getUniformLocation(this.computationProgram, 'ui'); + this.uXi = gl.getUniformLocation(this.computationProgram, 'xi'); + this.uP = gl.getUniformLocation(this.computationProgram, 'p'); + this.uFramebufferSize = gl.getUniformLocation( + this.computationProgram, + 'u_FramebufferSize', + ); + if ( + this.aPositionComputation < 0 || + !this.uMatrixComputation || + !this.uUi || + !this.uXi || + !this.uP || + !this.uFramebufferSize + ) { + throw 'WebGL error: Failed to get the storage location of computation variable'; + } + const drawingVertexShader = createVertexShader(gl, vertexSource); + if (!drawingVertexShader) + throw new Error('error: drawing vertex shader not created'); + const drawingFragmentShader = createFragmentShader(gl, fragmentSource); + if (!drawingFragmentShader) + throw new Error('error: drawing fragment shader not created'); + this.drawProgram = createProgram( + gl, + drawingVertexShader, + drawingFragmentShader, + ); + if (!this.drawProgram) + throw new Error('error: drawing program not created'); + this.aPositionDraw = gl.getAttribLocation(this.drawProgram, 'a_Position'); + this.uMatrixDraw = gl.getUniformLocation(this.drawProgram, 'u_Matrix'); + this.uComputationTexture = gl.getUniformLocation( + this.drawProgram, + 'u_ComputationTexture', + ); + this.uScreenSizeDraw = gl.getUniformLocation( + this.drawProgram, + 'u_ScreenSize', + ); + this.uOpacity = gl.getUniformLocation(this.drawProgram, 'u_Opacity'); + if ( + this.aPositionDraw < 0 || + !this.uMatrixDraw || + !this.uComputationTexture || + !this.uScreenSizeDraw || + !this.uOpacity + ) { + throw 'WebGL error: Failed to get the storage location of drawing variable'; + } + const drawingVertices = []; + if (this.aoi?.length === 0) { + drawingVertices.push(-1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0); + } else { + this.aoi?.forEach((aoi) => { + const coordinates = maplibregl.MercatorCoordinate.fromLngLat(aoi); + drawingVertices.push(coordinates.x, coordinates.y); + }); + } + this.drawingVerticesBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, this.drawingVerticesBuffer); + gl.bufferData( + gl.ARRAY_BUFFER, + new Float32Array(drawingVertices), + gl.STATIC_DRAW, + ); + const computationVertices = this.textureCoverSameAreaAsROI + ? drawingVertices + : [1.0, 1.0, -1.0, 1.0, 1.0, -1.0, -1.0, -1.0]; + this.computationVerticesBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, this.computationVerticesBuffer); + gl.bufferData( + gl.ARRAY_BUFFER, + new Float32Array(computationVertices), + gl.STATIC_DRAW, + ); + const indices = earcut(drawingVertices); + this.indicesBuffer = gl.createBuffer(); + if (!this.indicesBuffer) + throw new Error('error: indices buffer not created'); + this.indicesNumber = indices.length; + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.bufferData( + gl.ELEMENT_ARRAY_BUFFER, + new Uint8Array(indices), + gl.STATIC_DRAW, + ); + this.framebufferWidth = Math.ceil( + this.canvas.width * this.framebufferFactor, + ); + this.framebufferHeight = Math.ceil( + this.canvas.height * this.framebufferFactor, + ); + this.computationTexture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, this.computationTexture); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); + gl.texImage2D( + gl.TEXTURE_2D, + 0, + gl.RGBA, + this.framebufferWidth, + this.framebufferHeight, + 0, + gl.RGBA, + gl.FLOAT, + null, + ); + this.computationFramebuffer = gl.createFramebuffer(); + gl.bindFramebuffer(gl.FRAMEBUFFER, this.computationFramebuffer); + gl.framebufferTexture2D( + gl.FRAMEBUFFER, + gl.COLOR_ATTACHMENT0, + gl.TEXTURE_2D, + this.computationTexture, + 0, + ); + gl.bindTexture(gl.TEXTURE_2D, null); + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + this.points = []; + let minValue = Infinity; + let maxValue = -Infinity; + this.data.forEach((rawPoint) => { + const mercatorCoordinates = + maplibregl.MercatorCoordinate.fromLngLat(rawPoint); + this.points.push([ + mercatorCoordinates.x, + mercatorCoordinates.y, + rawPoint.val, + ]); + if (rawPoint.val < minValue) { + minValue = rawPoint.val; + } + if (rawPoint.val > maxValue) { + maxValue = rawPoint.val; + } + }); + minValue = minValue < this.minValue ? minValue : this.minValue; + maxValue = maxValue > this.maxValue ? maxValue : this.maxValue; + this.points.forEach((point) => { + point[2] = (point[2] - minValue) / (maxValue - minValue); + }); + this.resizeFramebuffer = () => { + if (!this.canvas || !this.canvas.width || !this.canvas.height) + throw new Error('error: required canvas `width` & `height`'); + this.framebufferWidth = Math.ceil( + this.canvas.width * this.framebufferFactor, + ); + this.framebufferHeight = Math.ceil( + this.canvas.height * this.framebufferFactor, + ); + gl.bindTexture(gl.TEXTURE_2D, this.computationTexture); + gl.texImage2D( + gl.TEXTURE_2D, + 0, + gl.RGBA, + this.framebufferWidth, + this.framebufferHeight, + 0, + gl.RGBA, + gl.FLOAT, + null, + ); + }; + map.on('resize', this.resizeFramebuffer); + } + onRemove(map: maplibregl.Map, gl: WebGLRenderingContext): void { + if (!this.resizeFramebuffer) + throw new Error('error: required resize frame buffer callback'); + map.off('resize', this.resizeFramebuffer); + gl.deleteTexture(this.computationTexture); + gl.deleteBuffer(this.drawingVerticesBuffer); + gl.deleteBuffer(this.computationVerticesBuffer); + gl.deleteBuffer(this.indicesBuffer); + gl.deleteFramebuffer(this.computationFramebuffer); + } + prerender(gl: WebGLRenderingContext, matrix: mat4): void { + if ( + !this.framebufferWidth || + !this.framebufferHeight || + this.aPositionComputation === undefined || + !this.indicesNumber || + !this.canvas || + !this.canvas.width || + !this.canvas.height + ) { + throw new Error('error: missing options for prerendering'); + } + gl.disable(gl.DEPTH_TEST); + gl.enable(gl.BLEND); + gl.blendEquation(gl.FUNC_ADD); + gl.blendFunc(gl.ONE, gl.ONE); + gl.clearColor(0.0, 0.0, 0.0, 1.0); + gl.useProgram(this.computationProgram); + gl.uniformMatrix4fv(this.uMatrixComputation, false, matrix); + gl.uniform1f(this.uP, this.p); + gl.uniform2f( + this.uFramebufferSize, + this.framebufferWidth, + this.framebufferHeight, + ); + gl.bindFramebuffer(gl.FRAMEBUFFER, this.computationFramebuffer); + gl.viewport(0, 0, this.framebufferWidth, this.framebufferHeight); + gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + for (let i = 0; i < this.points.length; i += 1) { + const point = this.points.at(i); + if (!point) throw new Error(`error: point not found at index: ${i}`); + gl.uniform1f(this.uUi, point[2]); + gl.uniform2f(this.uXi, point[0], point[1]); + gl.bindBuffer(gl.ARRAY_BUFFER, this.computationVerticesBuffer); + gl.enableVertexAttribArray(this.aPositionComputation); + gl.vertexAttribPointer( + this.aPositionComputation, + 2, + gl.FLOAT, + false, + 0, + 0, + ); + if (this.textureCoverSameAreaAsROI) { + gl.drawElements(gl.TRIANGLES, this.indicesNumber, gl.UNSIGNED_BYTE, 0); + } else { + gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); + } + } + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + gl.viewport(0, 0, this.canvas.width, this.canvas.height); + } + render(gl: WebGLRenderingContext, matrix: mat4): void { + if ( + this.aPositionDraw === undefined || + !this.canvas || + !this.canvas.width || + !this.canvas.height || + !this.indicesNumber + ) { + throw new Error('error: missing options for rendering'); + } + gl.useProgram(this.drawProgram); + gl.bindBuffer(gl.ARRAY_BUFFER, this.drawingVerticesBuffer); + gl.enableVertexAttribArray(this.aPositionDraw); + gl.vertexAttribPointer(this.aPositionDraw, 2, gl.FLOAT, false, 0, 0); + gl.uniformMatrix4fv(this.uMatrixDraw, false, matrix); + gl.activeTexture(gl.TEXTURE0); + gl.bindTexture(gl.TEXTURE_2D, this.computationTexture); + gl.uniform1i(this.uComputationTexture, 0); + gl.uniform2f(this.uScreenSizeDraw, this.canvas.width, this.canvas.height); + gl.uniform1f(this.uOpacity, this.opacity); + gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.drawElements(gl.TRIANGLES, this.indicesNumber, gl.UNSIGNED_BYTE, 0); + } +} +/** + * @param {WebGLRenderingContext} gl - WebGL context + * @param {string } source - source of the shader + * @returns {WebGLShader | undefined} - compiled shader + */ +function createVertexShader( + gl: WebGLRenderingContext, + source: string, +): WebGLShader | undefined { + const vertexShader = gl.createShader(gl.VERTEX_SHADER); + if (vertexShader) return compileShader(gl, vertexShader, source); +} +/** + * @param {WebGLRenderingContext} gl - WebGL context + * @param {string } source - source of the shader + * @returns {WebGLShader | undefined} - compiled shader + */ +function createFragmentShader( + gl: WebGLRenderingContext, + source: string, +): WebGLShader | undefined { + const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); + if (fragmentShader) return compileShader(gl, fragmentShader, source); +} +/** + * @param {WebGLRenderingContext} gl - WebGL context + * @param {WebGLShader} shader - shader to compile + * @param {string} source - source of the shader + * @returns {WebGLShader | undefined} - compiled shader + */ +function compileShader( + gl: WebGLRenderingContext, + shader: WebGLShader, + source: string, +): WebGLShader | undefined { + gl.shaderSource(shader, source); + gl.compileShader(shader); + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + throw gl.getShaderInfoLog(shader); + } + return shader; +} + +/** + * @param {WebGLRenderingContext} gl - WebGL context + * @param {WebGLShader} vertexShader - vertext shader + * @param {WebGLShader} fragmentShader - fragment shader + * @returns {WebGLProgram | null} - compiled program + */ +function createProgram( + gl: WebGLRenderingContext, + vertexShader: WebGLShader, + fragmentShader: WebGLShader, +): WebGLProgram | null { + const program = gl.createProgram(); + if (program) { + gl.attachShader(program, vertexShader); + gl.attachShader(program, fragmentShader); + gl.linkProgram(program); + if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { + throw gl.getProgramInfoLog(program); + } + } + return program; +} +export { MaplibreInterpolateHeatmapLayer }; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..3522e8b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "strict": true, + "importHelpers": true, + "moduleResolution": "node", + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "sourceMap": true, + "allowJs": true, + "noEmit": true, + "resolveJsonModule": true, + "experimentalDecorators": true, + "baseUrl": ".", + "outDir": "./dist", + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost", + "esnext.asynciterable" + ], + "paths": { + "~/*": ["./*"], + "@/*": ["src/*"] + } + }, + "types": ["@types/node", "@types/mapbox-gl", "@types/earcut"], + "include": ["src/**/*.ts"], + "exclude": ["dist", "node_modules"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..0c5d349 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,56 @@ +import { resolve } from 'path'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; +import pkg from './package.json'; + +const banner = `/*! + * ${pkg.name} v${pkg.version} + * ${pkg.description} + * (c) ${new Date().getFullYear()} ${pkg.author.name}<${pkg.author.email}> + * Released under the ${pkg.license} License + */ +`; + +export default defineConfig({ + build: { + target: 'esnext', + sourcemap: true, + reportCompressedSize: true, + lib: { + entry: resolve(__dirname, 'src/index.ts'), + name: 'MaplibreInterpolateHeatmapLayer', + formats: ['es', 'cjs', 'umd'], + fileName: pkg.name, + }, + commonjsOptions: { + extensions: ['.js', '.ts'], + strictRequires: true, + exclude: 'src/**', + include: 'node_modules/**', + }, + rollupOptions: { + // make sure to externalize deps that shouldn't be bundled + // into your library + external: ['maplibre-gl', 'earcut'], + output: { + banner, + exports: 'named', + strict: true, + sourcemap: true, + extend: true, + // Provide global variables to use in the UMD build + // for externalized deps + globals: { + earcut: 'earcut', + 'maplibre-gl': 'maplibregl', + }, + }, + }, + }, + plugins: [ + dts({ + outputDir: ['dist'], + insertTypesEntry: true, + }), + ], +});