From 37257958c28de332585f853f714593432ffd2e83 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 15 Nov 2023 12:13:52 +0800 Subject: [PATCH] Chore: say hello to bun --- .github/workflows/main.yml | 16 +- Build/build-internal-cdn-rules.js | 2 + Build/{index.js => index.ts} | 94 +- Build/lib/create-file.js | 30 +- Build/lib/fetch-remote-text-by-line.js | 53 +- bun.lockb | Bin 0 -> 101978 bytes eslint.config.js | 7 +- package.json | 16 +- pnpm-lock.yaml | 1772 ------------------------ tsconfig.json | 18 + 10 files changed, 113 insertions(+), 1895 deletions(-) rename Build/{index.js => index.ts} (57%) create mode 100755 bun.lockb delete mode 100644 pnpm-lock.yaml create mode 100644 tsconfig.json diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e48dd292..36222e93 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,19 +15,11 @@ jobs: uses: actions/checkout@v4 with: persist-credentials: false - - uses: pnpm/action-setup@v2 - name: Install pnpm - id: pnpm-install + - uses: oven-sh/setup-bun@v1 with: - version: latest - run_install: false - - name: Use Node.js - uses: actions/setup-node@v3 - with: - node-version-file: '.node-version' - cache: 'pnpm' - - run: pnpm i - - run: pnpm run build + bun-version: latest + - run: bun install + - run: bun run build - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: diff --git a/Build/build-internal-cdn-rules.js b/Build/build-internal-cdn-rules.js index 55c334e0..02627b51 100644 --- a/Build/build-internal-cdn-rules.js +++ b/Build/build-internal-cdn-rules.js @@ -35,6 +35,8 @@ const buildInternalCDNDomains = task(__filename, async () => { */ const processLocalDomainSet = async (domainSetPath) => { for await (const line of readFileByLine(domainSetPath)) { + // console.log({ line }); + const parsed = tldts.parse(line, { allowPrivateDomains: true, detectIp: false }); if (parsed.isIp) continue; if (parsed.isIcann || parsed.isPrivate) { diff --git a/Build/index.js b/Build/index.ts similarity index 57% rename from Build/index.js rename to Build/index.ts index 3a70fa6c..c88895e6 100644 --- a/Build/index.js +++ b/Build/index.ts @@ -1,56 +1,42 @@ -// @ts-check +import { downloadPreviousBuild, downloadPublicSuffixList } from './download-previous-build'; +import { buildCommon } from './build-common'; +import { buildAntiBogusDomain } from './build-anti-bogus-domain'; +import { buildAppleCdn } from './build-apple-cdn'; +import { buildCdnConf } from './build-cdn-conf'; +import { buildPhishingDomainSet } from './build-phishing-domainset'; +import { buildRejectDomainSet } from './build-reject-domainset'; +import { buildTelegramCIDR } from './build-telegram-cidr'; +import { buildChnCidr } from './build-chn-cidr'; +import { buildSpeedtestDomainSet } from './build-speedtest-domainset'; +import { buildInternalCDNDomains } from './build-internal-cdn-rules'; +import { buildInternalChnDomains } from './build-internal-chn-domains'; +import { buildDomesticRuleset } from './build-domestic-ruleset'; +import { buildStreamService } from './build-stream-service'; +import { buildRedirectModule } from './build-redirect-module'; +import { validate } from './validate-domainset'; -const { downloadPreviousBuild, downloadPublicSuffixList } = require('./download-previous-build'); -const { buildCommon } = require('./build-common'); -const { buildAntiBogusDomain } = require('./build-anti-bogus-domain'); -const { buildAppleCdn } = require('./build-apple-cdn'); -const { buildCdnConf } = require('./build-cdn-conf'); -const { buildPhishingDomainSet } = require('./build-phishing-domainset'); -const { buildRejectDomainSet } = require('./build-reject-domainset'); -const { buildTelegramCIDR } = require('./build-telegram-cidr'); -const { buildChnCidr } = require('./build-chn-cidr'); -const { buildSpeedtestDomainSet } = require('./build-speedtest-domainset'); -const { buildInternalCDNDomains } = require('./build-internal-cdn-rules'); -const { buildInternalChnDomains } = require('./build-internal-chn-domains'); -const { buildDomesticRuleset } = require('./build-domestic-ruleset'); -const { buildStreamService } = require('./build-stream-service'); -const { buildRedirectModule } = require('./build-redirect-module'); -const { validate } = require('./validate-domainset'); +import { buildPublicHtml } from './build-public'; -const { buildPublicHtml } = require('./build-public'); +import { Worker } from 'jest-worker'; -const { Worker } = require('jest-worker'); +type WithWorker = import('jest-worker').Worker & { __sukka_worker_name: string } & T -/** - * @template T - * @typedef {import('jest-worker').Worker & { __sukka_worker_name: string } & T} WithWorker - */ - -/** - * @template T - * @param {string} path - * @returns {WithWorker} - */ -const requireWorker = (path) => { - const _worker = /** @type {WithWorker} */ (new Worker( +const requireWorker = (path: string): WithWorker => { + const _worker = new Worker( require.resolve(path), { numWorkers: 1, maxRetries: 0, enableWorkerThreads: true } - )); + ) as WithWorker; _worker.getStderr().pipe(process.stderr); _worker.getStdout().pipe(process.stdout); _worker.__sukka_worker_name = path; return _worker; }; -/** - * @template T - * @param {WithWorker} worker - */ -const endWorker = async (worker) => { +const endWorker = async (worker: WithWorker) => { const { forceExited } = await worker.end(); if (forceExited && worker.__sukka_worker_name) { console.log(worker.__sukka_worker_name, 'forceExited'); @@ -58,57 +44,43 @@ const endWorker = async (worker) => { }; (async () => { - const buildInternalReverseChnCIDRWorker = /** @type {WithWorker} */ (requireWorker('./build-internal-reverse-chn-cidr')); + const buildInternalReverseChnCIDRWorker: WithWorker = requireWorker('./build-internal-reverse-chn-cidr'); const { buildInternalReverseChnCIDR } = buildInternalReverseChnCIDRWorker; - // download-previous-build const downloadPreviousBuildPromise = downloadPreviousBuild(); const downloadPublicSuffixListPromise = downloadPublicSuffixList(); - // build:common const buildCommonPromise = downloadPreviousBuildPromise.then(() => buildCommon()); - // build:anti-bogus-domain const buildAntiBogusDomainPromise = downloadPreviousBuildPromise.then(() => buildAntiBogusDomain()); - // build:apple-cdn const buildAppleCdnPromise = downloadPreviousBuildPromise.then(() => buildAppleCdn()); - // build:cdn-conf const buildCdnConfPromise = Promise.all([ downloadPreviousBuildPromise, downloadPublicSuffixListPromise ]).then(() => buildCdnConf()); - // build:phishing-domainset const buildPhilishingDomainsetPromise = Promise.all([ downloadPreviousBuildPromise, downloadPublicSuffixListPromise ]).then(() => buildPhishingDomainSet()); - // build:reject-domainset const buildRejectDomainSetPromise = Promise.all([ downloadPreviousBuildPromise, downloadPublicSuffixListPromise, buildPhilishingDomainsetPromise ]).then(() => buildRejectDomainSet()); - // build:telegram-cidr const buildTelegramCIDRPromise = downloadPreviousBuildPromise.then(() => buildTelegramCIDR()); - // build:chn-cidr const buildChnCidrPromise = downloadPreviousBuildPromise.then(() => buildChnCidr()); - // build:speedtest-domainset const buildSpeedtestDomainSetPromise = downloadPreviousBuildPromise.then(() => buildSpeedtestDomainSet()); - // build:internal-cdn-rules const buildInternalCDNDomainsPromise = Promise.all([ downloadPublicSuffixListPromise, buildCommonPromise, buildCdnConfPromise ]).then(() => buildInternalCDNDomains()); - // build:internal-reverse-chn-cidr const buildInternalReverseChnCIDRPromise = buildInternalReverseChnCIDR(); - // build:internal-chn-domains const buildInternalChnDomainsPromise = buildInternalChnDomains(); - // build:domestic-ruleset const buildDomesticRulesetPromise = downloadPreviousBuildPromise.then(() => buildDomesticRuleset()); const buildRedirectModulePromise = downloadPreviousBuildPromise.then(() => buildRedirectModule()); const buildStreamServicePromise = downloadPreviousBuildPromise.then(() => buildStreamService()); - const stats = await Promise.all([ + const stats: Array<{ start: number, end: number, taskName: string }> = await Promise.all([ downloadPreviousBuildPromise, downloadPublicSuffixListPromise, buildCommonPromise, @@ -137,20 +109,16 @@ const endWorker = async (worker) => { printStats(stats); })(); -/** - * @param {Array<{ start: number, end: number, taskName: string }>} stats - */ -function printStats(stats) { - // sort stats by start time +function printStats(stats: Array<{ start: number, end: number, taskName: string }>): void { stats.sort((a, b) => a.start - b.start); - const longestTaskName = Math.max(...stats.map(i => i.taskName.length)); - const realStart = Math.min(...stats.map(i => i.start)); - const realEnd = Math.max(...stats.map(i => i.end)); + const longestTaskName: number = Math.max(...stats.map(i => i.taskName.length)); + const realStart: number = Math.min(...stats.map(i => i.start)); + const realEnd: number = Math.max(...stats.map(i => i.end)); - const totalMs = realEnd - realStart; + const totalMs: number = realEnd - realStart; - const statsStep = (totalMs / 160) | 0; + const statsStep: number = (totalMs / 160) | 0; stats.forEach(stat => { console.log( diff --git a/Build/lib/create-file.js b/Build/lib/create-file.js index 9733e51a..7f6a4314 100644 --- a/Build/lib/create-file.js +++ b/Build/lib/create-file.js @@ -44,35 +44,21 @@ async function compareAndWriteFile(linesA, filePath) { } if (!isEqual) { - const stream = fs.createWriteStream(filePath, { encoding: 'utf-8' }); + const file = Bun.file(filePath); + const writer = file.writer(); for (let i = 0, len = linesA.length; i < len; i++) { - const p = writeToStream(stream, `${linesA[i]}\n`); - if (p) { - // eslint-disable-next-line no-await-in-loop -- backpressure, besides we only wait for drain - await p; - } + writer.write(`${linesA[i]}\n`); } - stream.end(); - } else { - console.log(`Same Content, bail out writing: ${filePath}`); + + await writer.end(); + return; } + + console.log(`Same Content, bail out writing: ${filePath}`); } module.exports.compareAndWriteFile = compareAndWriteFile; -/** - * @param {import('fs').WriteStream} stream - * @param {string} data - */ -function writeToStream(stream, data) { - if (!stream.write(data)) { - return /** @type {Promise} */(new Promise((resolve) => { - stream.once('drain', resolve); - })); - } - return null; -} - /** * @param {string} title * @param {string[]} description diff --git a/Build/lib/fetch-remote-text-by-line.js b/Build/lib/fetch-remote-text-by-line.js index 17be31f0..64a93f44 100644 --- a/Build/lib/fetch-remote-text-by-line.js +++ b/Build/lib/fetch-remote-text-by-line.js @@ -1,33 +1,60 @@ // @ts-check -const fs = require('fs'); const { fetchWithRetry } = require('./fetch-retry'); -const readline = require('readline'); -const { Readable } = require('stream'); +const decoder = new TextDecoder('utf-8'); /** * @param {string} path */ -module.exports.readFileByLine = (path) => { - return readline.createInterface({ - input: fs.createReadStream(path, { encoding: 'utf-8' }), - crlfDelay: Infinity - }); +module.exports.readFileByLine = async function *(path) { + let buf = ''; + + for await (const chunk of Bun.file(path).stream()) { + const chunkStr = decoder.decode(chunk).replaceAll('\r\n', '\n'); + for (let i = 0, len = chunkStr.length; i < len; i++) { + const char = chunkStr[i]; + if (char === '\n') { + yield buf; + buf = ''; + } else { + buf += char; + } + } + } + + if (buf) { + yield buf; + } }; /** * @param {import('undici').Response} resp */ -const createReadlineInterfaceFromResponse = (resp) => { +const createReadlineInterfaceFromResponse = async function *(resp) { if (!resp.body) { throw new Error('Failed to fetch remote text'); } if (resp.bodyUsed) { throw new Error('Body has already been consumed.'); } - return readline.createInterface({ - input: Readable.fromWeb(resp.body), - crlfDelay: Infinity - }); + + let buf = ''; + + for await (const chunk of resp.body) { + const chunkStr = decoder.decode(chunk).replaceAll('\r\n', '\n'); + for (let i = 0, len = chunkStr.length; i < len; i++) { + const char = chunkStr[i]; + if (char === '\n') { + yield buf; + buf = ''; + } else { + buf += char; + } + } + } + + if (buf) { + yield buf; + } }; module.exports.createReadlineInterfaceFromResponse = createReadlineInterfaceFromResponse; diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..604998da0b23c825a2098b8b257844cfc539b205 GIT binary patch literal 101978 zcmeEucRbf!|NjRcGO{8waAK)yH*zfB)UD$Nlzn&ig!{uh)5<@jmaj?u&1en6I~&n5~POn1h=i zkFBp8HMm4v-R+Jzy0|)sIJ$csweb=06Q?G{;c$f=SKKVbZU;Gbfi|wLF5W)4qetvrygYEYqb_bPL9Q;g5Itq@xX5uhR)9Gp8=2-;21y{ z7cXcBsl@Df1So}JJydVo+D#a&H> z!-4;WdpjKUa{zIpG6iS{>q$Xl*nSCkgIEN9&;fL|@fLA(wQY|Jex+=|vZAX85QGrU0q(>2zplgK_yHdF774UD>WZ`Ra`Le8 z@^%;n^{}0bw}_LgyDcsOOh6b{Kd6WOcX4ua_W~283zVTB*vQ7!8&?a0f#o(rJ4Y8c zdl6p`+%b>@$n!u5myV4O2-?-~BT{=8g{df7PQaLYk}{#S!~ zc;DU44tU4m{Jm^EJOXhz7dK}IFBczgFleqWPR>5XpdIvg#368b!tLW)DTA^1@o})n zIe7c}xPW*ayghv#yaI8%xmWx-czbv`0ObM@2S`zP6{v^(v9WXaf&-8N>S5mccvk99 zfHIt~_U?8*UM_A9_71kbPN3aUZ}0=yF>oKo;qUBX=M2g&-VOmUa24K_abe+GnGYT| zKF%T_ShPOSI(P`~!}((mbl`k41PJ@@XyfhU33R+1e7#*9193e3EAh?(gz?F5SG9MX18RnUUpz9#8qGJjW>M#keAO%1;Z*u{{e2fz2Z971y zdjrG*=N(!%S3nu+rUHa{yd=C*9w(sqHXIJP4EOPp-VU1J(m_4Ulb3@J7!4fmB)H)G z^9KmyR~KDrF9?tmls5u|@$3^@Sx1Tl93vn-;eNb04(^@d{s6($4_A~};gNv*bf7#g zvXa*pfFRZ3*8sxyN8Q272fhzUt+ZuG!2|GqeD#C&N%>9Uqy^WWnw}YR9n~%4bgN;3WLhRhN z(oZ1*D(qf~8?9qoFB>}t&@mdhm45FB2=kW@5XNug76_hycFvq24p_gA5D&~D%)1^y zCV)p3R^n>}2*;02ab;ZB0)%CAP!H$D4^W2f#|c=fv{Kdv_u+g<*t1gh0tl9RxW4j= zt{o`DJbO8KySw^1;BKklaNM9=4iJu49zYl$cn*LE9uD_eb;YkHsE6YlskWjo1Io}p zTF>mD4A%`>=bFF|EGvU}VE;okRuHaZnEIoxu5cRTe8DpW+I?^z>VsJYhaLAtb7j0> zdp{djoU6O92jq={dYFgh{oKLRwV%-LF+kWa5ZPsx3*`gl*F<}zy}r)M zI2Hkfe0hK{zqYPD%|Qn9LiPcnW|ov>Ay3$dyOa= zzXksl;bT{Jr8`rgI7>x^fQ=AF0JHIOc;lxy0 z%8_|jQpKijPbD&uybJE?hEI1LP2%Jo;;X0Py=g|0)vG>#(c_0JNx28F>gy7BiAvXL zyX;AOGoyaFdeuGFiW>Oh%$awRN;JD(Y9#B4HRQ3iH!|CLZkAV~q2KxRV9}GkpD%vM zua4~H*f6s9i+&27QlHkIt+e6I7Q&}b2rAf~+CfKdY0lA79U${_yeDSMPX+TBDz?_M zRQ=KA#onhhe^y@J930JH;p!Sil7-^__#nh1tNY>e^?N@U(^We-fSJnDj%d#9k*XlM6m>nE?|KIdDs2YcH)D95&F>9s!$3Rc*e_sxXN=+NY^ zZ)a@2?$m0Zmds=i*h5D1{qSTNUFW+9aUB+mSBQUB%q)IOmAovKyIk}5{*2pmo?PF9 zZ?IoYlhGY)-AS8OG#2i?b3m*yWSyL3b&c!u9~X9nZ8H!PK3^a-H9zb)aUtNCM63IE>jfpK{Muv?cV!(l6$h zkdo3*zc6li)65+E`mNE!rpx|Oj>Dq*zB1GohF(Xlc_$@CPif12wqktzKy%wGhl0Zo zOvUG^uN=nB?X?{U$^^;(mCy3yBpf)DK77hDf?rd}{A>c4`r{4)-5&q`$flPpzqAyeiaM$FsFuIsJTq4fTVpp2u5*{gxOr##uKEbUCfRyscs4?UOF@ zk<{&O=gZdq9OeBy@3TJrs34bZQHrhp)0}~>vTE+40HHyS;Q9w{FQvYW(pCsK9Fb3n z@qFIbQoyQqnB`84Gv zvwca(ye!e&$M}^i0S_e^zT^w3ZS~YI4ackda z;#+fXTjuNCMjN#J-fBG;*NeBL->hb+n7Ym4(OTUuv#J@vlWPRCb@Oi&?&j9C3QE$_ zjGip;*G}nu$EdiB zlz#S$wtwY~%`6dU-JHFWb5-?B`dogwVFk;((o<)?Ue3A2Np_r(ttoB8lbtUw3B8H+ z-7BcI%W>#cdR3IlFGgpbDE^;{Bu|_NZ?ImA9K3(hB6>DmqQb#DL%TVu+e)oo_*I4d z#9PsK5F1QknJFK4*-e$cywE59$!YtzYGaqa>}j-)>zQ9s+-e-* zmj6_Ly`4eE8GlgH@DW8(laQF^_XTt2xdq?FD5Hs_s@%|CS(OkklrNuM9#kB&t_{KlP>Wse>16IMS7=ehH~K0K@0YJ z2XCj4k6jHVd+`;*6!~7=!a-J{(q&Z7?2b1jT=vdqSJl5fwC>%;R@WDs708q*_Q(ze zSHxw}CN~#Jd%b-!yng$YTmgy8ogAaS^WW=tEOt2Tw~s7$=oFIGznOp7&o}U=Ij5## zEY&Hk!6%vN?d+aMYiZWg?KQJ=?%u^ErEW7Cl*&s}sn5xg?&^!yvqK!y?xcWtR;w8_ol zl~rPgHH{)-=w6apvwiBKFOfes>GUXO-30H%9YysMC(A|s?{9oO`RL9($_L7?I(yA! zuZ6l2g9(=H#(^$h8hi9580ow^C6%m1hgyQqZFwlKJ9MOsmIRzj{u_f|QJ`%GLg45e zP7Zzt=PjZQ@tpx*9`Ip#H8COnH9(RAeDE1#*}$2QC`0^7g8zTY7X(701pi2rm;g{) zTks2b#RvzVUsh#^p9g-C27Ht|Vs#MzCHQ40;KMT1K=r>12DPIjTj2x1!3*V)SiU-e z59iNn4EYZQd~n47BYt8v5dRL~!~CK0YWW`lUlQy6cFM3f&SqhxLW`5fDb;Y{jvZ4XODlrgZ#G; z;)i#)f(yn#j3GWP_$Y{;Uy!%j__YBajvx5uibG?t8vnI`uL}5J8ZM7LvGW+k{~hq* z_!Ap9iVg9l!KR@E_^6ET{|-@mAHaw6=b!ffG2p}Thk9rY{?0eNkNi`DkAX1%u>Y_Q zq=P6!d=0>d=RfEhEG421@k0O~o}ICiN1cS5M$HNc1C59bc5`yChFM{Pd=J{*5$ zQ1?&b-vK`M?g4zbZrH)K+Vv9v_~2XX^7w;CA<@rZ6#oyvhw}&gnPl0(w`iga@wLH6 zTTQ@UPhhQf|4s&ceZWUNV%HJ!{~hp+Fnpx*yG|hfe( z^b3$^Lwp0^6h40;5!DeRg4!lx_;CHKcKj&8!h`b<>8*DB_5r>)A$~abR=fYhg^&6V z`NSHE_YQ%N_O8|XUjTe95I^Ftw*Sgt;llkF#tk)y?E{KG0Pxib{)y#6Ux;4^`0)7y z#~t+n-v6B;{u&nWZ$SwDA%C^cA4kAP;|G004Pp%W&jWl_f`7Z_$QVNV?%NF0X};Ffc3;`AU^YkmHeS~j}U78ogw}~ zz(?`J_N(Qe2YfjGP!Gnw+W5NwAD&+Ub(u@-8bI-{V_P}D!{6+&Jh1Q;KTf(eGAq99T(n1?RJ4f z6C8hH&rL`d@lOCg`hJ1#5rc^TfWSxb6T^jV5T6u0^kM%0Y5cnYANC*ZpR4tM4Dhk@ zceVVRfDfO)sQ;^7KQtRx)*p-?<%F0RP+JYamnQTd@=*QnG*G)^fDfPl=={Ih{i7N1 zVgFIT5fba44jdez|9`rE6#yUhANfW7BG$hb;KTWcc*O1@sC^NEkNl%~K&=0_fDh*% z;{T3^?j!#^Tr2s5al&i!^#|*SeFsGRP68j5Q5>kB{|Qlh za`3_i{lmCdvxgwQ8sN(TKI9VX8^(nA5r7ZpAM7_A`_<;J4)EdkN9Y@l9kDSW|7&?x zo_{EQR1c*7)=)bao|V6!QG(X+?1<|BmW*ka#e>5sf%wt>v0DBIz=zN8)$|>>|07QB zO)KADiJkY53k}8T4)}2W6Px!H_P_XrfRDbvpfN;k{tl7<9>CuQ{KGN{xKRDyap67G zj+}R8{lff1Beoxi?+W-ZepE)dqV}JEqITK;#{bWZKi@(8CxEYx@&D&m|G9+te0(c^ zKOwf?ND=WJ03VG%%s;${F~q+B_+lV_xc0%P#N|C;HT+?~-v{`R1LyE+{cqol!&wmW zM=TfmLh&a7KK%X!xu_1_|DB<>Lx8V{;lq7|7(;w1{+0a)`Ujt~h&IG`1bnprLo&=E zF^2eAfUgGPhh-Q8IWc6=2JwFYz7nSYMAHA@>umYg_XDU&>^w&PlK>y)AC*@d|5Ly> zBE%14Cw2}Ye_OWVaQguta^dp>zDE&bh@VX0qw;F~zXyC7;2+LAfJ7Ve$0o2cey|LE zuQvYyfRCQvkiXjan+g7*Ut)cOrhm*IZo!rKiJkY53k~((8t|3>i}5c4eE9r^u@l>O ztpE3bzZdXf{NPV%L>r1 zKll_w^uNJC{DY!6oG#!~5FCO(M-XL*e;M#C0pFd#B6b}hJ}Edn$rJJiB^HSC{;yow z0KO`r|4@_IGX(N~nZQSG`Oq)FLB#*|Z+xEL@X&3sYU7Uv{N0%GTP?pH@ZtQ0Jebqf@@c`#j|+kSPu7ng;2ZoG`~kp+ z`v-jXp*aD5{jH(4Zh#EuKPvy0NN9lCKLvax0-xC2K?%fX1Rp=({)_g1R8Mg89|5)7 z1NiX!3$gnK5=8tEz=!7#xPKA5cS8-tuL1l$fX_^*BQ_4iUjTeKehe5*sQ)`dd~I-O z#pVy5V~H`uKL+?(z&|X*@gsH&5x)uW;rRiT(K!At2GpJg9De?r_h%Kr2TNf2`w{fH z+WdzCJ{j(o3{uL}5Z{Ls8xZT>?6A3J|n%YOj)@cako z9kE={^pE_rfQL66e^~cV_>O=N^9Q*or%>y6hT0|pKHNXx{6}@aZ3BUi@=pvG z%bx>$kizBp12tAV{_0@xAs@!`Pv&1Jfe*QG4HIjq|J8u6N{F9WE^LSR-w1qI{wL$F z4-P+Q|3;d`#DUtT13sL;F!!sOLx|rE_-Oq@zo`CqF`#zq!R86~PqhCMn*+qR24t9j zH2+r1F9Cco1b_JdUEJtC@;?mtX#PUqtDV1G;N=CzkGQLi-xlz(`_F3mIe>2n{Nq9F zkc-9v_47X=>i=iJhu^RMDL(=Pul!%|p8!6bKk(cG_Q6%hFAP3@!u=ohd$sR>o`8?u zKVYuVJcPghouT}d06up7P#k~9h4&DjLFr%r{{uJ%#2VsTDXqN!!7_Y@Al4ASUTMWY zS6is47H=%v$FpF>HNtB{QqYD%>e!(F#g1@Thu2Mf28uip5Lp{K>X)`uL1nS zGA9xz0uld+3JwR3V9Wal3*fEx{NDrkjs!jtZvSY4{41)itUoyR&{jKtj{&|Kq5rgi zk93yB{^kerUk~{3`Gd-TL;2G!)Sd)5S0?ly`bPDCYWx=k)J_HPl>i^kU)Xn4{}+@$ zRiSptfUimL|EC7ODIk6?;KTV3%fya7ltz3(u=&CFCpdRu-D=0r9Pq6GA5fQ{eefF; zF^2r#1blRUBX;beKH|>;z5&5M!RJ5JB!@qUG{iqi;3L1p?g5DZ2=HP4 zQS3uC->?nxe+lrh=O-E>1rUD# z@ZtKUCh$=G?_^LrHt_Kp%^#Qps^1a+&5tACW6vL}U$(zO=oc*8Wj>g`%LwMcvO$FW1K@)C z;Mu-x5Mdd-t1hF_a_#cJJy|Xr6UtcJ0_uVZ^$?-%aY7j)j3WwMP&XP}(Ebi#yA$Ao zyclpn`#Xf~Pc66lGs61Qg!;cj*e;gP4k9eafeZRi02effus)H1X9#!}AT)^ZeiFFg zyhvd=2+LOqSOgFnM5tE^E_lBTT+krG@-CYjDB)y@dM^pngo2)K!WyznM4h|oX$?;}COBCOv6>d65L z1B6YsfgiA56c+vsVLl{4J1BCr>B;0oa2n`~P|0to1Mac6Z z)MF7=`4Z|O!e9Le=ufEsD};WI5!wY4Fa#hCsE;9(PXUAm5%wdFP!H?=cdq!~xgrY8 z12{#Z;e-J8cL>}4?_9BxuN;^xU^&Y_|BNtCxrBO%aNS)Zlp(_VmkDKva33iI7p%Vm zE@%*8`G4mMn2kT5Ghjadcdl4Y%b(60Ffac*SFGd(d%l2q`QN!>Wk31?WOJko zy8ZSZb^qyw{&0s#BjGm5pu}E2YZ1QY#LQ#v(p_G`ZF0l<(HuA_*AD^ueqJY(r5hi1&4hS9{P$^u|0+-t?5T@?zG94YHvN! zr4zQ9%4pmDEIw+5>|r2;bm7?#8UF0E59j(*HN-u~w$2<#?)&t#FmryId$9SbGwu3= zuHz$4$-NoADr1>6-rjO)x=K-9i@CE?;x*Ftt$XLqSY5DrAV;DA@jnjlrhV}F_Sr6z z#9hsFx8EPLlj*;2nSGu1&Low(e$Dyv*~%vqew|NQ%4!0yl_k0@@Jkj~Gx*nEA4!{Z z2tEwI6`^?Hy9hG;z#8>aFTIMB?>~Rcx=r<_UUHHu?Z3a1mMiDI67`_^a%E05-{bhsfRFuSU+%_O%s(AjvTYB`<1cdKkP2`(*Q0O(zM~>t z_^yEr@4D7iquwY~p_102h3Qz$vxrZjRut2k_FC^=ek&gHuWeEdyzO&GFMh8Kg9qu> z1y7Mg!6;iFTb4DB3GYr@J@ErVNEg0qBg4~gh(FbLfZ^cQ z?e(^+V;=QN-pbKR`zb{%^`@dtuD{3gqzzi~5k&znC{Jc&Nu3}G142j_zWX4<_nE%4 z9m&1dvn%gYlsjL^{X*rnU%nLZT#UBf>g6c1adcX7?Pa4QJkgS))76=AB2QbgR0cg} zXI-kAy~(FU55xCgqzm6Akl{_{4(+_Ito=U7sJ-&WzA~2&Q9e&<@&-R_Zq&S9xTeQk zNmTf5x)qJW^}Y}FALjJT8uNk^DOt?UC+DXeJYg$U2ZWIBS|kb(?|OPmr9_~>Vaq%! z8vhrr1+(7C&n^~jJCQ23VZE`#ltd!lYw?B`-9^@tljMgKy3c&6!?*Q>UN&xR)m8EO zcrF5?ON-UDi~jMrs3G*lCW)c1>oN~$s#+Qrhh=Hl#!F>*9QrkXojQS8QMr>*Z$AZ& z`IPkY;M79-B-WFQg-fkec(a3B12DRDf6@(GFTbg;XwMPqvra0#(|ZGpZcQxadY``J zlsuMOd@X1PTc=X0@vY6QU7CZ1?u;kwt?xZMO*vWAc~iBbO2hCyMwcF|Tl99HmEp5} zwqLh}9oQcvXF{{#Z99AR27%Fv1DTKUUF8-`9XodG2>NaIZsYd;ac-}q0n5G6@twmz zE-;#97tZ)^9D?qak`Q^x47!|F;1 zyn56Wzmt}$o@A_3MdEUVdjs8#L=jz%;G;pOD<%@wQzt%Epql8OJyA27^@i8r5k3C4 zPrsDax+7FC4%kGEVsx3Xx>xGsLRqBWX{_f|*dhExt)2S(QI#h9+{ckOZofHVa4^Mu zE-SJB`@mqF<%ezk3@N)L*7N*0(lPvXxewegWfY}d!M;w3Td`aUe`^D zh49hn=O0)uRQHlAZHuw8Pgw_Ziq;zo5(S7?Vz+Yv(?QND##0U5{iU9=t}%`}5&>C)PN=migb;u&bxpvvVJ#OShOb$ur5`e@Ge zmzK*^Yw*5fyS#%Z?ntb`QiRx2rsvrZS--~omVv<;N#pE2VHy{;JEC$=%N9p?PQ8@h zg{QE>ZBxSN!fzAE@Cm(+YSX>yEjM3Hu<+D(xC9$tW!O>~z0m`|Bcf;~M(9+0VYloj zo!vTd!LKdpOM2NZbv^m1+gWov9RJPZ>M0E%gz~_KL;>Qjb5tdz(arNt*)eF<6+RE* z)_QbSe78?>TZo4KG^w*(!)TBJTa0GZoK)hAX+gdALvmYPMgyZ8%M(TR)n?t7!|0;F z!$5ib^o^7bk$Dx1toinRUE*6r`&hg6)utr5&5WvSUdx$T+Qu4Yb8XE&xu+#~KDOr* zt8mHZik2*)PU{lk*e#3w@L7rC<$!_&!{3cPwol&hi}SATux(MdwRg=c-JT&U7kisx zu4?GNW@+sOPa$2Vqqq>h3panponD=}tw(o_Q;op-t&uQflqj=aA}rVB8b%GTMrS?6cFZUlMiH zrA230KS$Q4GfQZ5?mw3xQoN(cU7POQ?TpTv*+(pfg{iB)`gsN3q`HexW>X zL32JwnM!|f?O3}s1;sFj`0jFTA$fVu#~O$Fet6g_EU~$)<>jHhQfmBY2Z?m>5Js09 ztNY@6PFYk(%CTD$JFCacnCN~G}n-?-J);x7}f?=QFP`{9t6D z{zkp2CVe=^ZOgrrt<{_3F}gfhT}e&lV!8Y4l4n|&cXze;xF5JQVpRFk>{XqC)L!+N zhrM*P-N!Pn*q*jeKX)%R2q*O+JN5B^N#v2EOuxD*80X=hi}Je(s~dlsd)s4`!|r}F zulvusj&sFz<;P{lzjUOoZwdH*)8tbxd6UkmE&Jzdw~&d-9=>vivebdYhSWbaXubZf z!}A~aV|013y0(grWG$Vi4$>Vs2Rb0d5$kddJxCcgeGgfy?!iBAR zr0D|FkAtc9ij3|5P~boNIpp()v%Z7(&({T&8d4uVQ!fx2aC?Jnc)8txZ>){k$rxX} z3Teyfq7IR+ssUND{~1rz67*`>z^UNlZ&*>Ts8IH%vTQ_f?3RrSqkjXMCT+ zsfxK*xzG1!a#J-Ye=0ch_TtrnrzF%HKi<3z&mw5twqSM7k$h~nFnXEC)1`iOvX(L^ z+?eOSt?OuSX=JP1ISW41f(@kGGXr&Pld5_WPmn)<@>JJG1AnFTP4lLL^3FHaE8m1x z-iNkgbpztQW;Fa_lKipHu!)uH9l0!*!=mVOeq7r*)AJYox$R%A6B^~?OjMR&^`;Q9 zwU)BjX1?%o3z@Sv@4z?vz4UM`pm+tax{|5*9d=jzUPv|1ok_c!wa@CQ%2{5n``5IZ z)Sqp+>z!hL(Do~30_midzIGE6{PU$K%RA4GV_rQNUHI%khG!C_(*GmFswM%$7PY7RSw*Ua=OuS@-~`)aCGu1Av&$@8_Mw7Vki zIj!HZZc#@b2%&g|kSIXB%k5uRMnvTockE{xpqEWIIMALkDR)+}GAm+6=td699p2DW zVSdqBK6GqFO=mu;9AUo7IZ?q~kl2y;we>*r)Br|T7^~Zv%OQBBwIKJjLH3RJIfjuU zmNf@+qe%~$%kbNK2$TIv>nS`&RcFgONZqBDD)!NNYU7Vv<735iNihuBA?gkAnTF!s zhSlZQoeJ=Ilwh;na8vZ-VL8U&23iaJ70!&=CCYmgNtFRg2hVaD^*g`7eSgBgYcWmL z(kJ$)u&5ZR-5DO^tIW(Re`{Wu490CbqYR=@*Khung(*k$B;chPpD~!6pianQzVs)kC)JD#`zx63n zez=)rG$GdP`@qIKTTJwrrC**Nm3^P%_Bp-xoIhueUTRF>`EdWwFQj_3>mF_1ut&Vm zIPvKd2}~Zuu(~-{d!sDQZVEEIIr%+?X-lhm?SK2^|zsnYKqc?$T{`8H|mJ1F0>wfyY z%wzW`d6F{oQ*5op{FG2H>D;~Wfw}?d?@}YLGZH8oEa`-JEbK!TCO%@%4={FQ_zPpa z>{IcyclUUjaU0#I7LSukL`1us? zxN?2d@V->NN1Mg&Mx8eeB)1TY3BHlEX@2OQ_Ik(hpp|dTEAv4Lt9#p*zC7mg!Th*B zYh|m~%^$B*o$vF=*-ZMw*KY9md8?(dmP*Rlxty*WvbD02m#&(5m&PA>u@q4I^yKIZ zhla=4_hayHS^qG++sO^uTx5I?hW*TEuN*d#@y?;_^4%iOBfVfll9<&;(Utr@ev;@)J68}(L>E?3TH z?5SW{k}~WDIw%jaNE9GGBf;)NSpKH;Q_AxZg75En?Gp_WGMc=?Yi<58e4AOOp{}h^ zR5xAqMg6JG=`GbVckKNcyb=!CJ+>nY%zJXLP!ppI|2+;e{KCP7Hz{%TnL7p9TYmL_ z-~X!&r`#H`&rxNkVzDtrw}xHY#~pe>T^|QnALr!$JjLesaGV_96ZR(0r{%%0=|>$P zgyP+eME{Qv>B6%+GW?Ecx0r=)TJ_o{lhp5r?x|T0?Qz#_9Nsw*Xm6T#+M-}>oxQE9 zxJYPbB6CG3ll3>pjb}ez$cr3FRo(k4LYwz65JI}}nS>0#V}|*3J?mN*IXR=wK@TY- zZl|M*sau0zZ6nXqIW0t!xp=y@@Wj31;o*c&(-VD6+_ld{gJW@1tS-hBSu{@T3V{&P zRY0Nu@ms{Nv}c6IUHwx1l$>d!P0*9m0hu9>8F)zNZ?5-z+qAoh)_u`=uZZ=_>ELy- zYD}C4)sL!^20V`39pvouQ9hJ_(N)CiuH~N|Jvnr>ZQIm#Ej!QI!r)s)=MR41HO;7s zqq~vC$edtl&ndZHo|nGU_Rd`6(&evGG3}hRgO5a9MQw6l$@yb+m9V;tm0xQ^@$auk zO>>X*PxNUoF{Gq6Tsj@p?oM|w+sfqHt;yX&X>+e#6vj6*h`hctkb7-Wi810N!`l`U zof;Pg?EB^(tge+wN^YlHy~B9CE31oY52@=z597d37a7Qo%(NH@kF47myS`O%h9+y@ zpnAIDfOg4vcafj@=JiW;F4NRA&#xTA#H)q{j5{Q$7hCVW+u80yRUD9EP;{W_YHRQL@TnIXLa#Wtbz{HNs$g|r#7y=G zKb+n1fsy+$y+2*T`g5}97C+LK&QPoNh?xYlFvXk-wK%ws!|`25oneoAUfj!b-5CXjK+t}ailQUA`=#qT@TWxD?wUAO5ur%;3Q zvuVxOvaYK2ZTx=Lixr>M5>sA;};6r-z#)s?kVnH{Y$ey;qL>&1lD#W0`L z-0KtbZ;tCzO5CiK+!G-f>F#s#nUC9K6y@{1$Jod-GwBZR4CJs3QVW;yZr0Jp=&ECN zx84eR!)!|`CnGH(-e`0?HuUEjUSV0go0fRoqYE!&8$QeRWj3S@n|$&akx=Ty%kSS7 zQj<5O_@)(FXrzs<03!p8DTzQb^`kz0QWXz_#Z+uL%rf{WP3tm z)C(1z$4<<1$UiGp8pnqo(Hm9QsLri6ekJ7V+3487{Jin{!N>xqN8Qu+C{orSluT@c2|9j>Z&EFo4!=w!z?8$@0O)1 ztF9ewbe{ZnZl>HTj?$TgL5}fTXV)7Ap#%A|QI!r#rD}?=4vcyo+MN&IF_A7DLu7dJ zm!lnH$0}(bv$;hlZqhJQSri@gN;G^w;PtM(l)YtJfAYXDeu3)S{+%!I1^x%(8_H65 z7Eq+n+?f<8F&6rUjTi3m$nXtWrWMbfo6enL*V;l(!Id&DC$-0(vp>-ncQ+MNjK9Y+?y;7nm8$W zk1;>|ibUaY0db%2N)fU~`TFEy@EL*P)yL{KjU70$sb!$x5L31BiG#Nyj_mYVUo?SmP!3Q;#+oOoCDIim;bD10SUBC0%c6$9Df zH&mo+fYn|1tUPD>(gWTf2d6zxpFgRae&8Y7?SqxydMn3imQvOF*9aZHBNLqM=6&$N zE|SsPA zWHX)q{FA@%(pr^I7b^Pb>>ZJVtkme&57 z9Vl>-4nNbc#;d#oz6&B<+ZA>)h$OUPuU;VM$AGpc zQ8&H1z0X?Myes<_*c{qbtD`yn%koIg@l*0rJVzI=4Ptanu(~syotE+*DK{D;i42}3rTEuzMj?j8-mevLz5NTLYl_v4`KmQG%;(PR_GU2Phok?x`;_8mb*@kg6j(l8 z+FkTivyasM;qJWS_Xh{%Kg|ajeyTp6*jMai7;JFSPJ^811)N(bzh+onk$k(V^(o|u zbq~3mm_B)U7OibJOiX@XXYak|g~Fe%_Jr*@U88d{YCKq@;N0k| z>o+p4-^A{d=2%_b$c(HuP6I?8orXF{`f9i;zGb;kwf&0>jET?6+HDv)2^qU zyu}%`FxF+D;WyORSD@oz;?|^R;$3_SKHE{e7FgX<(`|KakEou7Xo!|g?CjMykj~(yz2ON%9`t9kz6<STd7SxaVE8~b3HiMZF-jz#yN%N?aey-3VHYT@oO5N{k%&= zqmI`3ZiSS{(>>Vl;8s{&s*`w`YtdCr)S}Kd#al%#x49Nqk`J_N#h;zr@G42k>d2tE zvw%#7>%I?fHoj&g6VpG?!Xzv{+{YvO?VwGam^&s9)>vKsbSjB-+=l)7ijG2-shzHE zIutY#5A`WUAM=Yx|9Txy^F_(y^USL^3FWNxZ@(OWeYuIsoH{c$kn=%gKTT;e4@UP8 zRyWJg=ix2Gp70EfjRKUJ9b?)J+_q}1Mw<8V9pxv#cF~+n>DWwm&_=gMLDZP4a_nGD z?>E0CDf&a|>N(oqHdBAW=-Oa)NsK@CEBhULIX)5l%tcHoQ{&w+gV%HCny*Svru)C< zXIe8_!~C+nXWTra)@8MUP;thE4xcSzI}nS^J`4&t6NUbrFN&ecZF>o>1<}W z<-df{wZrPBMP2@g(%ht@{^IjheQgWF>ldbH z<`{OzNmSk6GgK?6^w~nghxG1brzb|&9;=(Y)a(+fXlq$b{V_l8 z$`!|nv9z#K-X0IV-%z%zX+|LJI!%o67uCsu?dD+_MOoAPpO}ZP&+3>p)d*YQUGqVb zG)!Rd275TCJAQU6;5)(%&%7uPE?C`xlIwJ#8k0k&%EpyHCHAJ@pw@kr1p;dtXVIkS|0EA>ONPA{0hSN)*BZmi`H zqDdh!4unv=N02B$ybWphfpn$%^Q3KEyFW%!bxW0wNvnJr8@1f_pJCeAzYEg=CvBWzrM7 zRjk<@w$|=^dBXmKph@)w8t%2>A6oJoLT7|*uf9#5h%LYeEPa*NyID@d6;U%G% zUv~r$LivS%D?*09@CetkE9}Vunr&*XnI|9BmzPWSx<@H*pYRbe{JhaEt;gw@>$7!} z_I6j93Z=FmyfDcdB584Qt|l!hle<59!#f~^bm1O^4DU1H*ERh?r&UGj!;kY^6xM@1 zrJ2h6k~@A;S?HB`UE|WcGev3pjK=Tv6E^D5xzGd8)~++QyZE_FIIb}#gu;Or2q9fB zBnl8O)cFTc&}mD-DaBW0obDii&nI{*9kyJLbyhGY?UJdDh8ET0*K z)KDt0wx@)JEL`Do5sAI_9GhQntghZ`3+W5pWODxO*S48%Y;!TrSAQgG!m#}i6{q{b z;ht0Uoe{T!$jQlgc3jMyVmM(HyeMm0#%y_`OgpXpOzMSjpoQY~!Roe&of#GxBLCS; zp%Eb9&OSA$D`TfFvOTJig5`if>!HV=%8bdRl+-K&-pRWdI~g9DQorDv7DMNJH_oyp zF}M*jH=uAr8`B{ zS{0s<^|&_CVeoDHe4YN&w!CwSD$j-aOV3xvJ-wIVtNP&XZ5cWBlh}CSH!o!PQw*J( zFVh>Us7yWW+}-}(b*!_HXD*_?smggQ&`vp0j79NqxA*#v+1;Df-t&)+-+$%yb6>{m z!gRQwZ#X^HVEh?jkKOzlj+8Mq9pXgu7X#m zp4Hc?j$w2|u)2xP@(JDJ<{T3v7bwJ-_TJ2J+4w@T?jnO=fl{pa z@y{;VoNh+S+ar=ru+=3?>~zq%L=nmJ7NZ-A)orS7;7(Jv(KGm1gFnHMJLwht(RbQB zsD#f?`r)ve;8#`7cH$ID4$J5NTx^jKDPz6Sdo3d8E2V-2gf zj!hm|;~3RYZFI!>nDxojSEnWU4jc6)-)2A1n{k0>ZrejAF6J}_$-~?XOBoM>>9vn% zT(xfyPyNL4ksA|lI9B)Z2TPU;s?&p!dsIjtQACdBef`)vQj{NTL+?RCQZS@-(&5hpmbu%6=#puF49vMF8P^bahA=6fdq_qMco$wrM z3UVcm_8p-6Qt;Z9ErWx+HD_J=g8kgH%J=m*qllUZ&YKv%e?E9e_6f<(?f1^?ojWG*>_dUx$ZY(b1XqSg zCA$1yCmXka+4G!Jeeq3`==+$%*ze$xSY3mjmQT$!A)Rl|Z1PRh?@~MpIar4kL zgS(}{8e4LU;3HF?-gF-y{krdMV?e?l4wu_MCncS$4931r(ctGgG4V!Wb?ZuNDN5%u z&puE-8ZRI;-{$c#{_%|7eWqxJk)#We!moXA z?FFLZtlwT^bfdAl!&d9tQi4aT!&2l-b-D7d+`}>JCOwJJ7XNXJq;^tdAK3$cn>F*& zY}#vEqbG+QmZWZ7XH2{&vAXJ- z`U)2+%5v(J=)cCja(diNPip>c$lr!H`}Ish09l3@U%6ZI29e38rJH@Y+rfifI|Su* zg*$zXUTn=M`nq!gqYJ+UBg4CMyfKLmzITq}tv|W0{Diy!8-83lX-E5WQ2`^Pz4ft? zhRiy&L7ifABsXUUyiiy;WJ&lX{O{@HQxdE8Z^&NAyI&MejXJ`o_1~N_1SBl z#*L_1kys}gr|})Xn{_?lGfi%0hjBtavn!%>eV+YHp%FI z!k%|dV|D$Ojt7QX({!7Jr~jz=uz0w8I07fN??aKc<;_87pUf+F>I;3J4tJmZq;+at zU6(`Nugx=e%3BKJw6E!SHcjxGW8#g)>I#Ln&-R6V(5v&5_gcqp(oIKCB_J*JVNUgU z=kf0w88*BrF*<&qa`F1D`5&g&uUb-V@Q9$1yD)mk>ymc%Nuh(?7~MFmZd=wgk9+{H(&7w<{x#L`e5YS@)LL z&1N4D1iJ=^bC71sPU?zpdv&F!B1tIV6&(}bVoZ2(sb|UkTxES*OH*0aoec1A@<=xk zi2}r5zW319VX~4+@;amE-1&Gub9Lq}N@m)bGrG;i5u#)!YU3nhza|D9i%B<}yLwNI zwx7N>|GGzAaUy?P&lHO!_IYsztII|kWy-$Kq;qs(t(sBHR&6#v)O#Z#0$?<$nc8wcBD-+4q~Z1 zGL+p1HK<6$W==3oR5QmW?PY!ubLDQ$aJ^%Es6sKf&aFk)Vc|Jx6^k0KT}`A<`Y%m0 z-QEV@1yLT7kSIVr^-R#-{)mpA<1%u7vAhWxr9StL=I=KYduF&b#m=j{2tR*OzE%GW zPO7)${_!((z8(b!BE6@7Txv6txG455AAb8ry2)7G?j_t%pYTHl$v`cJ@i?<6uY%Id z$*l66A=X)QKeY`mXU_8NlQYmZd6L3lNZ-w^YUBAlKO?B=m8q10)z^#l*mazO)ivEa zn!CSYNq@TD{oV%(gR$bXuUrR@45}rsJri@4cW&6p(EIqs0DR4mQCxuHbec)|mQU>U z&%|BW28<8$stI4i#G8uM)qOf1?(`$KJ9w|RTk{JN6K>jjuIOZz$Zh?K;=-h8L!vdebmHd0IJ z3KkOg6Uy~>h3*SG^h8!1c#P47YZ@8eJ7Ryx-g~|^EKXGlFAi6d;chVBtI6)qWTKV5 z|NTJc;LFQLc&n+BB2L}t>Ebl!J>GpSfT3bsvh&p=)%bkLsgFPiod>m7P9z zwOQ|4pWlv=(NAkA*q_}<>QH<7G3C1bcOKEYxe8^H$BfrvXv1{(oD#K9E$S3>f3o#X zc-p#mCq*+}>0@*=u)43#Y#mUgbQfKsu=%Lj>E z6iigkjmN%~)or2b_*QUppnxgFqC zB2+HpKL6p?@uMoqJy9K)crRdeEphw$5?Q(gxSnp!UAn@TsN3OYuVyyB?J?=yyzr~{ zj|-n*r~9O3U3`-Hte#5J-jBf}O;ztbQnQ2PBTv|EGKTMLC=c*&1IX|O{I(^plw`fi z6L{X7kYQ(kZJn$tE*+d_byM4Y*70D6<^p4`v-bVZ53lZ>#Z?Q$@dfPKv!i*S`Gz#L z@Vd#xd?18$FCtNZ_zX`^5?&Y1MGpMMumZ>J;$I(!k)Ns7kE_e|d3StUIoq{MBX?`s z^6-893txU_M4aF;7E%q|JuAn2_H5U7_2w-Y-5jj$H&3YtJoBT~pWTHd2ZP;)ZoE*@ zOCBB(W89iPwr6Zc#PRa1cxc~twu*%5_Mf#O}YjSlu4a z;|+D!kGLE)5Z)zXubU99FmzYpX5u^kSKW=pYXg(#PWHvrD#!@w;->w3M?tCf+=(ZqXC(rZZpe`JZzPV|@@}`}~&DNl6v1;Jx_uUQ;&gyPd0W+S>vOjtr_`08 zn&a_|Mt)*Hq7UDT8j%YNG`hpwl(sLWRJE#6O!<=_UBDW*e*gd1-g|&G^*sN=fT-92 z1yQhJuK}rI0Z|cq?-c_C2nGTPMGz4cd+*p41v?^G5V3dcy_hb?)#AMcRc6p?99&2&d$!3b0~jyg7>V&pUXU(sr{WFPi|5&#Z~v_lU?OvwL=oW zuJkZJzdT_2+LWCm9#t_JFl?Zqsgd`UjB%db&Rwx=(#<(J?fAk{GhKt<`cxk7wB4h5 zFZ-LngeS^@hteM6_@y9r9<$uT^4wHe|1aYl>P?%_zkZwMRxu}XXV!9znP4lSIltVWrAln3c^*vuyfbI*q$O|eNQ5y4gUayu#`F1(U*99;ZxeCAiriPTCLYc7nTOp{e}R!w4_lN>an&{Q{`R3=!wnVo?^-{qMdsAI zn{CELW;Fi&b^XF^M{Iw0-M;iCW8i6 z`-iQ3zUjZrzOPRjGylfi$GM+Pvu&EWzJJhW`K3g2yS=~O*UV|s!8N>A-LIXFow0I$ z@bcEfZ^tr{$2xsmHLYi@700e8gumg*yN%EH_1P@52SyD}1>EpRpX8g`b@BV;fwOma zzS23NRevA9A7R!fd|qxA+={Pvaf^4r#+7GwE#3OL*0NvU4|Fac{xYr{fBv?e&v$3? zww-S_jySn^UbT6NFBa5Hsa|^hu+Oh+ggmO$cJD5`4dp7zKx{p*xX%TEuC&+IVk zc-@#9b1M6<{yyu<@|evoJb9@Nl|S8XDHBZIbiTCy^X4zQC$||jJzt~xq4%Pz_t$+{ zJie1<)jdOXY;Iocn>4_1($R*OIt{vPyz|8CM%zc8{$aQH{{GY>31FmbH<~Lef4YzN zE_>MR&G2U@Hjc8$n4Pe=LwuiB>lYi0^gc7CY`YU_@|~Rr_U!+sPU^H}70MmU?(TfE z-_M!7z02(pjm&tuHdyN}7%BNu8OoooxqaJ6w_{-^S{g@WZ5g#=%IE1dON}lwrQ*n8 z{l6a4AG!YZ?n!nwi&GwzuKxGRAjc<`5fhSQT#rSb+1Bcgc8ArsDb`c+r7=nQ(|x;S zfVn|m`4BU2*Spy!l}&e_+gD}qfvt7Ei>Ej5eskP`N(s9+L{3|!d)t5f)>`J*+U%OK z?(OtuU)KL!mln|ErQ89GlzbDFOmWo}iXWY;X=V9$QPSR+h@64@okl!}`m?U_v)bP> z0=IrzeBtrgw_07D4jvd#dH=cAl1mL+9DOF?UyU$<7@%ZlM^ObJ5Fl>L| zZ}{~%=TS9=T5Osb(egt_t)sRbA{s5T&P;1qKCs6FqZuZPE#>iN$tggMqD zo;lX6UDkNC>6^g=X81knVco5iRL1WYd-;3~hV43h<@A-qZu`HT9^Ns#hFkpAXI8Dh zPC8`cVzF=8e80qQgDQ?N8F*+$IpOgQIabr^b?h7+spt8*ZkOovxXX>o^5ose=X-7W zsf$^)E4g=R5Y?#Xo<4Wlm7RMvEIB3XYew?k8&*11DwWH)_A~6X`Mvp}y|m)ZW_I~q zA-dGS9=ra$F<+H?TAx1;*w5!1A#tgHBr#DMn2_s{bim8fZ=RLylUg;ktW)b%ermq` ztj+qwBaY>Nx}NOR&HBcauXnXqb^dPGbwOyGztLTr9gO|XlQ)IW*Pw2n`$p{_OuFv; zc!}jN+tv%OUK`$hobQL&+hvEP&#ip-`MwPSqlRP}8ark_Y4RwlPREtDJH+)eFU*+v zbLjOgAtpS&2l#v!ciDcgbOXU({p;2I;`s?4-2cR6gIGEXtBw9N z3WRL#jxzmf_c(=I|tByMP zb5!l`a|b?aGpbRU$E5}7k50`_{F2S%o5tsBzFW`e;j>DsPJQwEJ#kBzSeBBk8`nfs z)1gCb-DzJPULC2Ic;jn}`d8oo{oPzEtGByUCva1b%+z7sJfh=)oCMlrr2qp{1j?-YHVc8ocLaj6DkTv*m?Ab z=-DE{CB9Wc!$D&v`11H3=JP!?GjzuDKacAz8UEUJ_RR*<8mC64FW+j}*~n}7%u52> zzF%8;8j9s}svexxJi1ZEfISV~PP(~r+>JFA;vAcF*=4qZ$M*=IZ^D{u8+)e*-i>d% zd)K6mfgS3NeY1OMw_&Y&Ty1v4ZEM^fpLcy?!q$IStlug0M4wifQ?gTDy8A6n`8j#C zufO~E$#nKZX%9#Fd^eA%KRTzW$wjLvFE4AixRP;t{fOaZ4bnR8el%p^@9Vc0=E`&H zMego0q2Epdz{aAb>au}fwE}(=a<9hr0!a@!NkR2e*BDer+?h;l+e1tLer-@M@OH^+&bC% zWGC0>jV)f)HV%^_g)cdKVD|D!dH;~qEdaCi8H!z<>+T8=2&r)soui=F&^k&}GB zALQ>gX|+4p#BJ}Zv`w?GoL)5SO{3}|OY0q4>3V*9>BJhdI?w;PQ+ws1m!r#`p7ni& z_4e&sTMp{+_lil*rIv!%P~y$m!N`@K@k!oa&- zeRQj7?^)Nl(cv~`P3>p*=y*_2#w=mmThsU_t14ao)nn`W(WOqc=kYzw=UeS}r!^hs z$1YyzC1^bR@va?B%63{PGt|B+FmHNb>YSDPt{tBeVm@^5XUnar{qd~5XSVz8 z<8`-$_U}FPN_q_*-!pu^%iJI3RFLiXk+#?2+REfZPqjvO*xm1b$oX0alMHqR9Bj~_ zo^Qxh-#OK5w{0DHz}VDa!l%@y{SCg_t-S42@9>6weE)Ek&-eGh;|bpncz1N&Z+UEJ zn8)ZT@ECr({>_ca@G^e)ROzmWo>Yb60JNc{j{p)OgRw!)uGH-I_D|aOa-C zV~rm1 z=8E9H)`N~%jl7?0=5T#-dr!ew)7~4}(ApN+uP(0Xe7-NuN==x!&T{`f?bi1ui{{7e z_B&qZ>bt%1Ez`Hv^h|vwc$ZeIdhL|b-)aqAvF6*;5k2Rx`0=op{cX|3^{Z``ReRKl z<4fOhq1avd(~W+%=hMB$AFBCpy_I=Lf7qi$+saK|Z+F_ZrdplI6UL9`hnYNku(j#o zH!0mRu1U>bX;uQhZ5#)g_PhW_%Kk?8%Aaob3(2#Ct%hHTO$^@pMKEoE zWvy-9U1vuP>fw0WcT05k>$lS0!FTZKgy5EaYfsLaysD$Cy;I2F7$+0=8OOVnZP@~h zlzcBLnc}MJd91SVRhv!i)}&{~hMYOr=Gce5No|J>SyE-r<1XLY?tEa?ziEv9h`TO* z((jx#?QNIz&cEw~>>go5bZs8KSb4+MjmP&ApYNPjg2o@KcG&0BxM`DdA(^8W$Jv@q zv%65OL9EY|xzW!8E)UQ(>UQUNtveg$IhI;BZgi)8&;6X%)O@kdR&UYAS%yt`d@u9) zYCSRUrnNS{-q54JkGcl#{<+k<_nYaZr^_WC-=05tkCOlwYQ6K^pA_~$QsIub--*?^ zpSRo8Z|(BA`2xu|vE?wDYb*6|h0j-dKK|RGeits@s?_4$H2?MW9c2^jkL`~)T6(O! z&d)|$8V#$a-{$hp)TKjz&mS4>=$Bh(;h!bOO+8P1S$rHUE5D?cZ@RULdVL^hx}W!~6NjGU zOxxeB{gWrZBEt9A+hgnc=gyd6G?R~V;kzTfsPxg2kRK8v7?q81WvR^w_CV>kJ@{&m$fL@b3Z{Aq7jNh<^>KOH zsh?Iw_w`YxX5!@gnG?+yo{bt^@nYFS4&$}Tntw|OdRwJo-4nAnUW-eM9|A^7{oYYB z#Z_0D*2m>(ttGQ2Tom)7^0yz)8=gJT zrIfA3{pD`bno~rV?`?g(a&4;FfSU2Ue$*e^Dy3z)R*AjN3_G}XSz>G-zWv@)GR0MQ z;^Kt|eMXi}T08sUjdx+|ez^HPwLQK3u-?`+Wjgk5GU&yTL6(9J%Nq30UF1IF+4mo> zd`b_k`=ILGF^Aetxo&@OUsdo>>LG*A_vOpW@BdabzH+!!qmBk<$L_5#HU5yiwe*rp zOV*}7?{QdK)hfNY-Lze0ww0DwN%O1tt>fvJPp0Zt&Q3XM{Yc)tOido&`+UBCTq~a( zbAE)?rLw7qkKb6*vESIeX9fnQyPbdj=WBiKO|mrSq|7rCJ;&LLp4kh!++6v4<}mG~ zCPyrC23-l(Ntn%F-+932JG*A6`|HgUnvFjc9TJ{fJD|y{gSBxwsKxI-S;=;~YiF<2 z>lrcO;_rl8tz9Z?3F&{oN;j`|F_E+MWannqD6_D8PoBIKQz?JC!=gSOxcs*2v8~y& zd)}E~(M;5G=F^0WneCs?s%gCFr69MV_l(UG!xpYPJ?Q+1wsopMdA-^zyLr3G+eV*k ze|pKbGPKvP)Gv+A%Af9+M}IfQ%BIh@>tc8);>OO~Pb>Ni2ua8sHS)uuQOj%m@eFC! z<*Al^J=-Ihe!Z7nX|X%9(wiP%u9;+so}~y{wy(PijFfyIE1BY|+o(}WgVv*l2llFW zaBr2G!F5(S{%zsz64JhR)5!=fYwIl^(ykva9eHbA)Qq9& z16=(s_|}_Wu59DA!}gRD#81mg?XazO$E+4VWgG9f%rfjSv)|3(6ZPE7^YrkX&o`;x z+FpXwo!U*vNO<33#lH9OPxna&KY5iiqD>jqkPkG-C5Ine*v$1($DRl^_c z(?7p{+?TEIUyIKi+edv@X%8>>eAmaVZP&s#?%~uW2TukWZtMe-H9?0W z%X&slukHADVa>aCLk*l(KE0QHa${Jno9}lX+pRjm zZN6(ebotItM{1ZGbv%5{tK#~|^#-#Vby;Lm);(!$^J5(@WIcLa`sUG1^V??clR0+k zVK5*eb~zX+<;_tt#Z~uEcfY0sv&~~h%B?5)m%H}8#>fLxv_Iuky6|z|ukg^RTR**D zu~oa3*Giqo-Qw2_s@ybF{CMP~v0$c=m|_t~m|2G>yD^VEOWD<`uF&z8Jf0LZwDK1d%xd zTJ@^B)}@@|@yfeQny(sEJ7e0LO-+W=SgF(lt%)mty1Sq4>+P7@vuf`O9$n?Wm&Qx> zdA@x(v5L{2eIrflZ>}lt-6?U?OlP+f9b4W#*XDG`y6tr`n_Rp0-so_2ckfB%d?_|n z@_nmhimR^JYh&H%cu#zxe(5@MI$vz{QMAiG!TMSB`BgPS_b&Ipx!*7{Dl0vpN^N_2 z>XdKk3pU=U*m(1;7G-BNZu;Sx{=8B=zVG;a^@e^DM%Bx7aGP1-$)(+W!#`giIo`W` z+`92;!8+A-cc1)}z3jZ-j|wiyZztJWm$?%@@w7|lK~>HPPZ|8Vb#QhtfBk{>e3d`l zp+mpUy72YRvJL(JPI`CQXvv$4udH)dUvnLBbhRk??xB7Sbid9FYB=tQML@cq-}xoI zt0pd7>lb?OuXeZd2mbc$`w@(kdibDZimUFU6^j7kkBmPbC{u`yjY^upDt16Fl?5aDxCXKrJk(vhF)^Y~I3%Af9} zW!HZ%=#;*6!%|-Tc=pLQS?Bspk4s^fdl4y>%~mq&o4eHnc}J&+dKK;)}d$3uVpSY&e(l#z>bNhmK_>i?bjTq zrh6g>ifpTk2G^F}dg&cre{l7gwkgY-_j@GoFjuno{))BYC5b1>fQM2KpZR=OKg@O) zXmyPBUY~sYOXjIgM{Azjvb%Jr#KW6g_iTN(Nqt?TSlja_embmg8sQ*v|KZM?U?%F(#>J|~wro^g9C>-=V?<&76JcCJTv z2m48`JifVnz6a+2{#vSnd3LwjpRo+Hw_Q>n18&qgA?QDxCCnbbn@Z*{{h@p1ici zto-R-?R@(BRR2M#Z>?NwG>#p)@55*JfFni9%|Tg+VDjFGR+26s)pH23WdpV_+4;~noEIhq=z_4Z)3 zL$5-YC51K$8Ip0+pl962reLI$_m`3>uDTcN>)DEiF1$Ci>tinqL8+VF+cxauJ?KXH z9T6Qryl6P&-Owhx29Ns@wdC;g?!%kc_+nqJQouFiV=Lm1%-hqdU-FqfJicUe%AfAX zFP9Ey+PzBLS@+_lv$IETOr99B#IN)|{luTuDmdN#^{Md^pF4BwCV0kFygBd1iq~y* zH~%iP{k+>)@75#t>Q-%W3XGKUl1`LA-C-L9S~>kn4KTc#Q+I1jcJ=l)L38yFpG#XQ z6#CdiguK6dxtX!m=~8R{49#hNu$JA2iN`zj@XHyNVD_WRWP|$i`F{Pck}0mbGd47- zG;QIE2VN&H2aWZJp5Wt=WRpGS=Yk&tswd6qaNGaz{xk32HHdCIzj2I1YrSVrPg=Km z`PII)?`XrYR-P}@XpKZEFK+UFy7MZS*<~dE2$j~T>-X?k!tm`MpY+{q9<$}}JqzcD z-8|*9$_W;vR<7lDvaCr}&t%8Bcl!uOu57pA>cPtGmM!U$V8G+6&F4F6{rh_)LWCzqPKsOQDSb{%?`dK2VsICs&eO(x?_Klk`} z@$&_%m&P;gd3<&FeC;-zzy79Si#tQIAB|0Z+JFDUTXnwaEv@__*)F5g-}Y8+4+kCV z75rqP>5Q=^&uhLb?Eb_MvI+(cT;M7>NGra^r30xI>(PZJFtdi+}-E($BY(@xIgf@^A49!cMjCt z)#T=Zqvgs+%dQOb8g6O6?aQ;d(>C(-K;I8n{&aOJJ)V?)%j4VbuNis^AD$RCWop)l z`B!ot^m_cQ_hA$BDI=U5tZdKd*L6JWet2_}o!6ss)0@2Q75YIpH{^`K%r=gAS!Q4PdS~W5Y|Gr$z_SnvT+bm4BCobfJ66 zWU_waS{BdeK6kzNY)WI3jXk4pXXUy{>Rgg#;*E!LO&`o3=F`-k$5SAZ0@E zJNxE0k_vr6i@oC3D)hNa!-}lH;9O!w274vshMXY*Lre-?y|r+8|}}#^uM# zY|MC2efcD@XKP~eAN+Jc8zk`zlH(eO`eJ?+^&hZfe;>hbtfyEOprsW9=Km?b|3sD& z+W&qHkp0O;ejy?m{$?MHrP6{e$qgkKh3j7aplkR0=Kbg==OUqsCZ{bS=XUXqB(g5jH=pmK)<2uHi{k_~M z-2T`6NWT8{6tT=mTn$V5+kZ{lln7Fyf&W$w=yHN7um2M{$>(@Ugou!|v^*r@l5s|j z@<>D8Ys~~i3UnEP@;hn4U}l0L<1!nDA7QP21+zgqJa_({Qp=3Te$BYc~(%I)GOak zF7vPu`^$rb5{ZRG>M_1@l!-)6=GHCE<>GLW)T@QLt+`Ml_V$;0;d3i_zdwH! zKT1&i4KsX8iNn$}y=z8LnoFZ^vQe?60Qi0f`zgNRr=T~ zMq#M(lp(HkTNcoSOQY|HQJH#xrd%3*ql<3K0iFTqN8i_?G^)>YO2Ci4jYVk{0Lt%} z(s!*Wts-D3fPVB%DoUd|45tMANUxNJ?`mkdQ38JSEhtK(@0*1JsNVD)CrZQj0JNL{ z^rN<*H2U6C0|4o;B9~SL_cZ|YtHh-l;l372L3vyn=`I@gq#pw=jdV8+_w+O5(oAsg z$fZ@rm1M%_K(y$d>TS&BtB(5<0IGLYF3lA82LV)X6E4jR_g!#Le5-M3ByTs|)2}+0 zM&G9H&ZU`hX;g<^xF=dOF0D51mjLKjgG;M}`(d~zzBRctbKDQXJ@Ku@rPam#QULL& z&85}D{R#l#>TqcbIO8`YrQlb-U9gR{6KuQ~Yo}afQ=}_u8?tB8Gua*48QB%t5$TWg zMfxE-pmwKrrgo)vq;{irqIO~W!j)`!93Tu34)6o`1EhceKp;Q{kOLY6$j-^GpMdr$ zfb5y<_XU8yOP2*8+sy&cw{7V=v~K`!0q+3s0UrSLJwp`8n}Az@ z+W`9h>|H=Q-~wPUUL zkOBe#fdCmG2oMYi0gMBL0m1>}0geFbJM97O0IdKHfQEoZfW`o_OR^WTF|r4;AyYtg zKqT}x5fBBK4449#3ZT9+3-}0JJpm#>I{@_;Cx8XO5N0h$7O06GF(0bKyL z01JR6pc!B=Z}|Yvji$Z7G1#2v%_UoH-vALN8h@nagc22 z4&XL`^hR|jy)OqW15kOSKk7qm0gV9-0p(qFSQSq z(Fj28+8jW(*#tl~OzlAFWV03k0iXqd$|5_WJl25L00)3Qfbx^A6OA396@YNmhKm7Y zb8`T*0W$&ArzZiT0Mv(wE))<92m;6ffdGGiA7CuN7eI9z1sDPt3>XL)03dtp2j~On z4IrED0dNL%2e<+{1DpV)M@InlQx`xdKnH*`pgn-n>6xxw0NnuO7pRZ0{(&o%GYl{k zFdQ%fFcL5tAO?5?+yG+$UH}om6F_pf1B3t%?w+nb00|%fAO%pp>0Sn)bONe>2p|Fw z4j2ar1B?fdUM2z}0o3NvfXRR6`6kObHbNCcz; z4ggXB`vHc4eE`Z&_hcgn0aba=hjD)dZ~{O!VF@?|@B)Yco&Z;XvVCvh{tDnS;3A+8 z-~!-0ARW*Ga0x)^R{_@m*8!A=a29|%-1QT#nScj?yMTLu`+y9|~5@D=bG@Qu6wf-B{vE2ZZG$g%## z5$5&xPrz~suT5rvbZN13)YQd56Zs?Ky{@$ zZ{fz49~9)^SH9f{Yx_~b4wwPj=f%WU`DcKQk*^9|U+A%#mtJ2?%hl5!ZEIm=(MsV_ zD+2Q>t-b5C>4_G4+Ey(sT3T2u+O8Zh<6nDUoKfXfJCcYnN6h4GVuAGnpJ-_{`stnDqVtfwQtJ}{4uO&>Y+!wM^46eMhvBndVq z4oo(Ax^pHlb`Zfv(dWwpvvAA$tu6~zd;|tUTUfy>iUneSFR50CQWbvrzE02w#uhb2 zeUea)0cgJT2;Gy^z+@6Dhv`81b;|<-qsH$t-0}?=2MaqJ5Rq+H2Tg`g?*UG_HEneC zjv=KUQpidw;5u)VpIEouQzy_^x3*{n8nPAAb(b%XL+ZR3UYnI;)7rw0MW#eE)o`Rl z60N-&7|09}SR70Bk%&2L$_vc}P7)O`Y6lw$d*>iprq|!Z;^%myq9B zBXu2kwT<5*VC*d%6c`!Op`|t}yhe4rx|m_85%Rtr?3%DD)FI+_S%!fCt+j&vJ;ffd zgozit+Ur^Cp+0sN)>Iu9Cz0M#ANWSr-V?Z#Nx)=#f|`=l7Nr`FY`CTQcojDfA8DvR zglK>2cA#@9L9B{qh>k*Uuih+QGB#JDqr&)!{lx)7xm;dm!32+(HsgS?Q?wjm!X;w& z)o&dRY7fe3!f04)E5BWQMMJx}}`nWvtmRUqyvJlP=iYNz7 zO*Ji^rg%*8+=Ra5vEXm|EYWwq-@OAQa6ma|xq7+^OWe3`N=A+9FS{|>Y^k4G0Ye(? z;MTs2?)FvhR8qGEhWhqziFRT@J(qh714}@R!O_&Jms$U4xq1hHu~(Ecm%|L#UY+5Z zyDk72(kLV_Dy?XR*Pg=%J!p5-1sIYII;agyHI%bMYPCo5)?+O&oOX&Yr*s(wx89b= zV@=af7=wn>wIMJh^;2u-3Tm(P-ez%_g_gtTHrnghT1UGXvrNoGfFY^FBb*#!e+(%_Gzu@a78q)|^Lp8hy7x}M zz;S~F+khc|-T8!v$Hm5iQe?=sj zZB>+G5A!WvHjE^av5@of(@8CRnvA@o;#P!@w_$^fRw`GHL-+Kz)~n3OhfvG4Mx+G{ z)pXF9*MEO35Pl^IfIhyp4DL;k>|^srjJYfU+)qsfIT}8bWJ%0z<8k zWLl@kF{Ao4Y9e+asf+OO6w;uzi`VsdaHGD^H&T*ze|IuTK+R)~azyUI-mv(2Q?zU| z&C*W;L%|qfq#i*svA<~6pr)>ZD<|Fp!+GUt;70y!-iD+>zb9NC#Aul9tOSNEan*_j zhkGsF{F#-*yjVOi)Y>l-!WIsB5}3=lp(M;hqGwqUIwk_QHh zWMNvjY`$bwN^T+o2A-E>6Ul>v#1gsIxMq)QL>xWo4-ENuV2bg|DCYnqfRRL5OOijO zU-t0^4L4?aiTynV!2w$OFU0z0d;7_O;i7_F6K6ghH@5{xSL=L8hV?2fQ6dWQCkJh#*RWT&o+D-f(-Km{ zMr)wis7?L9xBk}4w|@=B&7O4K7#ON)9i1nm`@MZjV?B+4z_bL0;y2p<*};&0H+qfwcrKG+SZ^E&4C(sZ+z9<@IyW&gA(@n;C6svw2xW4Sj=|fT zgO5L?UQbd3H4jq{qA9;7^Imk>r#1}3;@%V}javIym9}5pdM-K-40;@Ox?*e;8V!IO zr~Wgz-}&A`!#!s}Lwyb!9nWF9L>O&wAI&^0XV(D&Y)lG+M7Qg=D?2r8Iz>WUZv;l{ zCl1p3GOF*K-}3Zkz>vkm-U8rwsT|AAPDfu%b)UdwV-~NCL5}Kkrm0(0Xr`9|M}wY4 z-_8vZd1_r<|L8`-zB=0&hK<`}MPV$A{*zVjb8b-86~Ne9*pZDYzw5sBTe#%QydG{G zH%P!bDKzUfWbRwDVZA#8L*q7RwnGAvt@O*K_Wm&m6@ek|4;^6Ah;3G%psH~#j=y?x zZ9c{7>`W4Tuc$&T#4VvTjJhF zN1K|5IJU*25VgWs$0aiYuiqy-pjkC!Q-0O`Zti@~)b-D3bat?S7sXl_Xvp4TmN=ih zkutP8qhTXcF=Gh|D#*=H+tpkVOWenmxCxKfJ=G<~lzKglb10`s*_d}J9#j1I<0nUT z@!PcLf6p$AH}peqDR(C zy%CsDAF+oIxLxp@m%FjgM^_Gmnu_J3an#&fS`4{2ph^y{ZE!RuSmdFYuYC59TJ6`* z`N7Iz+=>|+!R-QQDB_B4f1^hCD`&f?xD_#%;l_pHXDsFzVvNA;V#QuJhVOmXRG|Y* zF|@pd@}NLmL!NZM-m>>xT3N8dSdW^@M8R^gSD2PTgU$onFKscBVNep*5W&q5+-7?& z*`0Rp+#}-Fk|r!#AAq5eX?oeFYkO@>+RSLIDDrk}q|j*FI$cMHFY4ZdVOSgz+E@|y zI?d=8``t}Ks~*G-Iw&#{VxF(aKF35TJ{BvI8?)YG;vMLq_?V*j$YB_kj!6d(_iZ=u z=pVNp^`UtQ>Qj6aP-K1BxGe%VYPmi;uZF(4ZA#GwH>WMrRAE)y>kf_mG4*c)rcq{9 zM!=8+ufMrJa5K`g1%~tF8-Src_o||~X@$uRDY7GnfSMNBgIRAZxGrX>J+YZ0u3phx z;a&b#_URej@K1Xtfem@sVss76CeV=IS@1P(eQK>zlMSi0?P=7^;V_j=Pc5&0#o-pX zaifgLA8TJ?fA8qIO9wuly6}LpA{K+xK{8v6>)0Xk%Dl5;Z*(Wjvrrq7pk)ii`sk)+ z4`&B=Yua5^Q<*3T5iDjDS9~5PRogX%#$XB*vBob@tn(Sp>TUBz}LMt-dx@8V9G%FY;im^EFFrU_UXjTAj+7^l^;KtKm2@fWPb8DT1F#v}A zL5ug(jr5Nv?`1Tt2~(59tnz$vZN9-~%)l_BV?4EWXbMa%&^(dE=5%>c`vuWpDg&G= zFjasV-T7$qJIS7}fMHRztyb|XbL}k^b2FQiQ<*Q;?)Oy9=lXJ(M#mNlOYd(!T7}8x zFgu+3wfwQ>?_3oo6fJ?kChBo(r>Hik2hg~HK2Pb^>Uc@z>*GP z?RvJ{w)_x{&J>d)wRl}uLA%muwts7*thrZ@U(jJ|(IC;P1&ls08zM7WcbXs@j8Rju zJc=2ZbgbAD(bdseqiVFbOr;T!1r9~nC=EYwZ(5#WFE3oQvc`qnnA>xv8Lfh{PNG$K zp2c-6t->=FB~9Ttq?KaYnD-s}ZS`Z*%3lsMB&p&0P;y~U!A%#mnsYkP39qzoRz1UD zg${_Oun!>#NION3fMAsO1%9_absE$=erq;qhjm~rd!UV>(UA|tl4&+Juu(2d)GF+e zIEPfknh+MEnFQUzje5QGYqKj6`*tP~H`Yn8+A8ywLz4Ngo@{Fs^_JotLZLzfK|@~5 z(ff*L#B^WyHwta3fyMwst?iYp^*kiIHeweVFh~bUz>t5NUV2fJjJ6pWTweg{ATT7s zIs3mGEIdVIiCohu|6;?tK~E(s+pZ7+LyALqcZ!psdhL!Q>P>129l%$y_yB+1Ay|y^ zsyB`n-dJzl7Z`5#E|Pl)B|=ZpFUg7Dy+({v#G_0J%`reyOtDM6{pJOu!zPRy8?)K~ zQyG|N5Bi-Ezo~^j$I3y|6|>%p`h;0I_(K3Kmyg;XpC1mQSsO_WPKEV0nkmj&4Yy)u zdMGCt{*^R3==$ph;Znn4Tup%~a>a}_Ly=N5y%k@M3q}Cy+c(y?&*_l)i=quq*K;{c z-3-gojYrpg$!f~D6)^+jB8TEh*_r0fxnvUUE^0$UjJ)vS4zxsc&aI)TMG*ELO}4Ey{6ftLP=3bM_4u-(O3s zUtG5@EF0_FpsCPK(d!*Q9o?O7Xh&^I{S=sfz>p8o9cn%BVwr8Hm{l>%MqtR|n^|`K z^=*XlM~((|P`IYb=&4AlS(_HQO3h|dbZU(}QsLdc;%PcMDP*fuSvy)@ZPFgdhCWX= z+5;FvaGMt=-)QF2Cr&XgpzCOj0EXg&F+)e19TmyFRTw{D$l@Cx(~J0UtoI-l<^(V_ zI)5KG<-^m4YfVv(gN3av7Evm;S74k*>!jUyr-#_T8Mz_+Oo5?t&Su;02u^(XT7}60 z#t4|^Wj4xgHxK9h8=1&&4m08XjpIAI=_aEbvIEqoc-achD4A?b2SvuP%o2-?@ENA~ z-IwB5sdqXn>Jw?3Q0|(?WU?Ld6zD%i)`!_a@#}Ae<7+2J#aLTBrtq3K+Q*KD&8{63 zvAJ{fqj3uk*$1)cmW{z4z|i<3dvfJPRr@U)n69m9t5^mM79^saN;#M5&^nW5U|bI_ zdj4Y#?Ei{Y%|kh42boo#);ue@i4mQm8nV&iTf0w3g^ec9SzT%I>1{NZL3~dZ;sJ~~ zxShRlDaWkuXba2=xDchV-jsV&Ma)ZRZUzyGSX<{jpIIk`Mn!Xs+Acbu?9NGm(ZUWG zs!xSIeQMQMAqi$0#V#05dI3YROI7`D!##X%w*dy7hb*KRUu9EN{DxLwR;B!VF-@%E zF4xEkrj>f6)3#NS*2}`%!a5kp$rOt#dA^OlA;DpPM$}?bV*=DtD-js-NK+C;mz%Zj zbAXl8lC+ZwOdVi;9c}gfyr>`M3y^^IAMAl)lOHv1KfBz_?vJl9ZVdC;Md2w{tw=Wu z^h>G0XjpxwbXNGP+BUAjtnj7vRNRVhpTaRLJOzuZil-^Qrp0O0R?R*}k^TT*nUy9sgf$bE(!{H~9&}3K38L zlmi_ULxWZ*h6b_?>7meptJ(fI*|)AaBo^g`)k4!Pg7jv(5mQN zU)F!zgT;~{yaUzff@81Du?dwRHO*z91IM0tB0&Zm2D5q#oL8!vBYE53*`hVn=og673ZK<^lveD>#;%*RSTf@c8F!8*yOeC<-r>R{RGt=zZ_zgvu2cE0w9c{hQlu_yD@ zDWTu=>St0oDca6eNQHCvI1g!6+;K=P{{X)>&i+zK7~Y?gSYlLi#%7X89wZBvh~%Om z3;Ecw7JgEZvqCchdGOe=LQ8)fsdEkr3lPaInK-XactID3pi!dkCOSp@-O0 zCJ2&BC2~QiQ10g~4)O_hZ{sbM`A`i4g54!z4|%Ycmv|g;!yl96P=bOeUsO{NDwUyl zKYx**)F0W|)`r|8SSAY#5PL{Hq!Ou2?h_OgAa7%7DHC}ki!96nO7oRlNM+uZii3Za z0`5kjIQC}|+2BCI}UK2Kmr^083RPlqwTSQ9US(jEW+z=gUg50k_jc68-bS%O!-v*WNW+mG)>@W0F=LS`o@)!{X91Cr-sJE>G{R9jOq@ZeKW9qqJ zAC?s28-kX_Q8+{_{ydJ0=b6|#zFxa3+j=JWTL=eG5occOzH2r1l%u#|f@$hH%EP;$Qr<$jG}BgJp&}#$iy~54Q)yC9QFRBqqLSHYpwY|bS1nl4 zu+398x+iUksjs6dR3Po-#SQ-?0WabpVmex(h(E~aIFE*7gm^HIh%l!YLhzqN7A)`( z!UR~r-;!Zy#J6U5EHYNp{K}CTj2$0Hxtt~Th(x(rfj~zpyfX@MQQ4fc{Nw6iL}615@oPta}96Wr@`nf@RC!PW4k$OB+JVK z&UyF$m#8m@D{#FKQ{siW|$ z2J!&;D67#F^?F^u9QHp2J|Q3Fhn zphqf98W1FwB8}=jE=a&Qs_9m$Ok`7e6l7K!M+8+-pjAD97B3x;0pR5mNiaONMD8p^ zje~=vavy{>K4MEOa(N2qv@@Bp0AV9OmqlSNUIq~PV}V74Q`*IcJ_WO)_<~9Q)Jy5r z1JKe1Ler22q1BYD5|)&eCpn|lG<>Rb0b11qVrp7cQ(tbe+5@XRO)^fJ{1W%-2I#mu z$gX)JS-`|VT_6Qz(>j^@TI5+Q==1K`Y(^2QQ}iSdjSHZ;w^Uv8v-2>joM2ZVg(fOo z7=#yzggCtKDPVmC9s?^zxDQa%%BoD@ta^Z^G%x4mFODS3S3U%zj-_5t{9Xbtqq(0h#ia^pmi&14#u;3^lzvg)jZ$uzs)%fsFJyWqoMucpy zjKW!s6W6@K2xNKp|I~v?4R|q+=oEJXoHn2{BxI4yA9`Ujq()JBdB7s?9u;NB8r54h zYZk?5%9YQJt!%MYQ=i}t^@5VSV~ev)Zp9l>Y%FHuv1lA(Om%Dgyju&|r1zki1-A!h2$7 zs!8mEp%GXVOj516(=lE}1f`}zs!YTyj{?=w9JeUmGy|RDhPen$21Mou3TA~gZ)MH_ z(InPEBxC~24B!WZ?sBOlI7po;3uXn|f=Mc`t40NM$P~16`KR8ic)1J|iW^pjrfMr+ zmIIaYmU(4O%S+1F?--rpO*~efruc-XQIPVU7_}xdqn8UoMi=x&ZV8VKbMDxF6{(vK z^KyX$?}=H5ra_1d5bryZ$cj5=hitP`O#^aox`B$jW2)6OXXW19W>oAQZm5QKn&3WZ zmt3*>uC`QVCdNYf05`%pa<#PdJ~^YK8v%QnoJwX#gD_1|H;XM|%EUNHuzw}sPo$tc z+H+Aq9^{n>9(nhy63nI*CkR!G&+LwEO;H@f2-MV*;qw?{c~bLY7k_f7sur6ovV|@t zl}IiVVJly*&OPMiVO+TUFz0`1ox*cg#-woaKMhsNla%10yk)&XQ#WMi_=t$Uf50Ty z7qrQJMD9XN+i7V*=Lq_*ct;fb9xKI!)Z$YOykX7vy zvQK6(PtRuMMb0zSXkL*&|863LDJmJkhvr#(@j`%W@knNjnp&`!g(OmZfwd)gY0Z&I z!F4JUP_bgg$Q8?cytOPWQsFya>c%yyUm#b{Krpf5h6*+M=Ux{E5qAeN&0BGN(K)dc z(sK_?oost6U(O&Q9pj)-9v}D;Nz{qO%SN*C9#y(!VJr^%z%2v`XUvTCuLn>Z?Ww^{bX(R$v{IwS=Z%qySU?Dk(VfA1QW+Nw7*5ppv@#iadh2 zP5pnbK|V5+mhYLVM5FYIffU^xAH<3NH)&Ycco zE`hUV2iM9NTJ*)p@`Ifa+G{Iz=r<_dTy9k%yb2c_U8_{v$GUx#N=lK zWB%hmjraM=1cQ9fD$~PjkrJ$WLyN_)(B|a-Z58%)ZB3s1!s2ll|@i2lNz0{XxgFXysU)T^7zvTnll4>NKzQ(kBZ*O&8X>n#KyA z{y@fiLf4{xuiiA6-a*H%Eh_C{o}&G>NP{8%;wa3-Tax!E@8p z5JB*eh0?JoD)RTlO1xYo!O((J%+4~AU$9&#we$`aVc!jQz_#-9lI4EzH2f#!i4+eX z94b?8r+eX)nHM%f(TcQvMsyEa^0W-vsa>AoF;(Q{m?|C=Of}8V@>vq-VP4^= z5}jlty(x{6CDUdq#!r=rvQ$rzGF_bx^D$D9C`(kOs0#mQcFOXV%#_b6R(bV6%%X0Y zAzwbQqwL_Kc{-Ix$hxOO5Qzk&|FDm#R89U44<7jw{*74y2Sxid1sn_*t9({rG!>(C zW9nLV@uG~Hf>>s7Wmh`I$a!gY7@3{1lXKn;2k<;` zEDaO!B=@wF8B|HF!Tl@u>0H`T~pA7}@A6eY4DOjY{R?xBa zf1228ases|TU5>AP5c41DFq`HbJ4TU5sral4`7Cb{ZIoc% z4A+jsC(0wtSP@_Yth!fx=&K{d5f>Ipv9Uu zY;Y+mnZ+ke78#a>q<-#U>L+QuT;RxiQuRH#&`TuHxOu|MMWU%_U|L)a*}ALHUn=&r z@KAdc+n;3u8^sM8Rda02Uq03pN9Ub9K@oZPtP5x|+yaM8Kwlt*8LlQSJf95?yeFE~ zD&|FSgP8fUmwUJqvm#G5U9+g{U|m!)0wt~tHT-;NgU5%00nM|7g4?2+dIEir3*70V zn!%}&MfuS$&?s+V5wukW_lFw7tb{mkM+?>X{x9YWGy>9-8lK8e)_|w-7A>dQ%9J0$ z0iE&|ve1El^#O5y!9blq0X#IH8pvN&@W`K_>ad(bSg@mMGF&Jx_!de7>whx?3NJ9x z0uSC%4Ky;Dk$MHOZbU0;iW{a7MuR~OFMeSsM_nMR$^;Io2j-YrXT<3S#qNhDPWdx} zTmA%YhEKoiqTUIx5xqg?Oc?SpA% z&C3k_yeCEX&=h6mE1wBSg20mKTUF{ib$(S*$w~oeoMW})S|dOb?2VZMWkG0we*{Vd zo3E&;WD&W!LJIJJ6XTY5)o@dm$`glGnVnDI3rXIVbJ-jXO~bL}!&a6xm%z`hDuJKM z#%WD%v!I4q)p zeyU2$f9957E|uOmw)xSjL6xfjeLaHq6au7(oE2ux=E$6_U@l2hAf}QO3{?+|R?{$)zs{h~pFl1_^XQ7#KBS@K2NgFU;@pTAzGOhJZBRU` zF4WJL4}9`HqaK=LExuKN0sj$wlFS4RtZZ@&p>$SW-G)lRtl(KN>7UxB2m=PIB2u9= z+Kf{__~bu)K3pYLo?B<5hNc)T zFE|2&yn9e`=R&B-*}A-%-kO&OEb{JIE3;{tVpP_+yht68W}58EY*&-$^vyC5&;|K5 zf4Kl(7(;gai`<$!Ctqxk@gFgoXr2S%y;!!egbR8S%40@~kFsDhin_K)CX>q8n@);b z>Uz|F1@t`!b{O7M6ohpJ4K(ZuqqWi4 zmGV^#l=+^S&(jpya9@@nQI)qWV9>O-!_zKEc~7V*cQjCqb_+BWI21@>`qJcj^1eI; z`n-EqzQ*^mxoEr4Hh|`J?fju21q3LaZMjph&Ab!m;5cWY?)9qtIW+}wnp|Ig(G)W! z2*;Z;Y2uJy9vVIiqzDvW#v}93j}gfQc$ow1m+Y%_++i9u7EmZJ$|{t`oB?xH`T43F zB@5&P+X5+I`ag{osd9yML5Y~!Y39Y1&sJTykM^n7H`v$X@Q-w`sJ~3?A|J*pnMnbY%#)c-A9#6+xIB|ZBC>FjR~D8>12x&D8$ CfCsw( literal 0 HcmV?d00001 diff --git a/eslint.config.js b/eslint.config.js index 7454d691..1de43423 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -2,7 +2,12 @@ module.exports = require('eslint-config-sukka').sukka({ js: { - disableNoConsoleInCLI: ['Build/**'] + disableNoConsoleInCLI: ['Build/**'], + env: { + customGlobals: { + 'Bun': 'readonly' + } + } }, node: true }, { diff --git a/package.json b/package.json index 71f29458..178d8bc6 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "url": "git+https://github.com/SukkaW/Surge.git" }, "scripts": { - "build": "node ./Build/index.js", + "build": "bun ./Build/index.ts", "lint": "eslint --format=sukka ." }, "author": "", @@ -35,21 +35,13 @@ "devDependencies": { "@eslint-sukka/node": "^4.1.7", "@types/mocha": "10.0.2", - "@types/node": "^20.9.0", + "bun-types": "^1.0.11", "chai": "4.3.10", "eslint-config-sukka": "4.1.7", "eslint-formatter-sukka": "4.1.7", "mocha": "^10.2.0" }, - "engines": { - "node": ">=18.0.0" - }, - "pnpm": { - "patchedDependencies": { - "@vercel/fetch-retry@5.1.3": "patches/@vercel__fetch-retry@5.1.3.patch" - }, - "overrides": { - "has": "npm:@nolyfill/has@latest" - } + "resolutions": { + "has": "npm:@nolyfill/has@latest" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index e9e5fd61..00000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,1772 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -overrides: - has: npm:@nolyfill/has@latest - -patchedDependencies: - '@vercel/fetch-retry@5.1.3': - hash: jczsp2gadg65vd4ekschpibzda - path: patches/@vercel__fetch-retry@5.1.3.patch - -dependencies: - '@cliqz/adblocker': - specifier: ^1.26.12 - version: 1.26.12 - '@sukka/listdir': - specifier: ^0.2.0 - version: 0.2.0 - '@vercel/fetch-retry': - specifier: ^5.1.3 - version: 5.1.3(patch_hash=jczsp2gadg65vd4ekschpibzda)(node-fetch@2.7.0) - async-sema: - specifier: ^3.1.1 - version: 3.1.1 - ci-info: - specifier: ^4.0.0 - version: 4.0.0 - cidr-tools-wasm: - specifier: ^0.0.11 - version: 0.0.11 - eslint: - specifier: ^8.53.0 - version: 8.53.0 - gorhill-publicsuffixlist: - specifier: github:gorhill/publicsuffixlist.js - version: github.com/gorhill/publicsuffixlist.js/3a1bc623073079184ff76933b88b7bf4f5d48978 - jest-worker: - specifier: ^29.7.0 - version: 29.7.0 - mnemonist: - specifier: ^0.39.5 - version: 0.39.5 - path-scurry: - specifier: ^1.10.1 - version: 1.10.1 - picocolors: - specifier: ^1.0.0 - version: 1.0.0 - punycode: - specifier: ^2.3.1 - version: 2.3.1 - table: - specifier: ^6.8.1 - version: 6.8.1 - tar: - specifier: ^6.2.0 - version: 6.2.0 - tldts: - specifier: ^6.0.19 - version: 6.0.19 - undici: - specifier: 5.27.0 - version: 5.27.0 - -devDependencies: - '@eslint-sukka/node': - specifier: ^4.1.7 - version: 4.1.7(eslint@8.53.0) - '@types/mocha': - specifier: 10.0.2 - version: 10.0.2 - '@types/node': - specifier: ^20.9.0 - version: 20.9.0 - chai: - specifier: 4.3.10 - version: 4.3.10 - eslint-config-sukka: - specifier: 4.1.7 - version: 4.1.7(eslint@8.53.0) - eslint-formatter-sukka: - specifier: 4.1.7 - version: 4.1.7 - mocha: - specifier: ^10.2.0 - version: 10.2.0 - -packages: - - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - - /@cliqz/adblocker-content@1.26.12: - resolution: {integrity: sha512-4LWW3kntWuTDo10u24uuk0GmTzegkw9cZ8eDBzzDvHOtRVRMUv4fuoaWCwnB6UpA1VH7iU5nCbRlXNvjnnUA2Q==} - dependencies: - '@cliqz/adblocker-extended-selectors': 1.26.12 - dev: false - - /@cliqz/adblocker-extended-selectors@1.26.12: - resolution: {integrity: sha512-Sbh9Fu1FzqD0p/UExKoTKcsbGL3wZdHcn/WTe0MvFbRYAjPVzVCyUxCBwCXOQ1XPFK3D7CarXMb6NZPct7q/rg==} - dev: false - - /@cliqz/adblocker@1.26.12: - resolution: {integrity: sha512-mnFxASJpHfkbBJ9/pmY2MPbOfwWQtk+MvqF044IssBmvpOe9t8miBNwl+PX+moGGIFYqRHk78TwUkZHUNkbGJg==} - dependencies: - '@cliqz/adblocker-content': 1.26.12 - '@cliqz/adblocker-extended-selectors': 1.26.12 - '@remusao/guess-url-type': 1.2.1 - '@remusao/small': 1.2.1 - '@remusao/smaz': 1.9.1 - '@types/chrome': 0.0.248 - '@types/firefox-webext-browser': 111.0.2 - tldts-experimental: 6.0.16 - dev: false - - /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.53.0 - eslint-visitor-keys: 3.4.3 - - /@eslint-community/regexpp@4.6.1: - resolution: {integrity: sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - /@eslint-sukka/js@4.1.7(eslint@8.53.0): - resolution: {integrity: sha512-trrQVAlB4MdfZ2FUMwPuyl8bRQY1ZDn1nxqhxYilhp1kpv3ygfcaqzn0qpUf1qBQv94ZnnWTT20z4VYO8w8G/g==} - dependencies: - '@eslint-sukka/json': 4.1.7(eslint@8.53.0) - '@eslint-sukka/shared': 4.1.7 - '@eslint/js': 8.52.0 - '@stylistic/eslint-plugin-js': 0.1.1(eslint@8.53.0) - eslint-plugin-i: 2.28.1(eslint@8.53.0) - eslint-plugin-sukka: 4.1.7 - eslint-plugin-unused-imports: 3.0.0(eslint@8.53.0) - globals: 13.23.0 - transitivePeerDependencies: - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' - - eslint - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /@eslint-sukka/json@4.1.7(eslint@8.53.0): - resolution: {integrity: sha512-ixx3YuynfSp7vYR2evcecCjrux4a7eAs/U/oszUEnouaCEx8fc39rtY5RAuodlLcEklmPJh+ighyyYkbBpFKTA==} - dependencies: - '@eslint-sukka/shared': 4.1.7 - eslint-plugin-jsonc: 2.10.0(eslint@8.53.0) - jsonc-eslint-parser: 2.3.0 - transitivePeerDependencies: - - eslint - dev: true - - /@eslint-sukka/node@4.1.7(eslint@8.53.0): - resolution: {integrity: sha512-RlbHCseyQhoBbKBSQkBqdLEy86G6bK9d6INpBCFC+p+uaAmQVf1BpeSbiIZaYWkH5jvtMux8LRlRArZ04KxKMg==} - dependencies: - '@eslint-sukka/shared': 4.1.7 - eslint-plugin-n: 16.2.0(eslint@8.53.0) - eslint-plugin-sukka: 4.1.7 - globals: 13.23.0 - transitivePeerDependencies: - - eslint - dev: true - - /@eslint-sukka/shared@4.1.7: - resolution: {integrity: sha512-sKq+KnnPHDMF4oTkQ4oQgvj65SXIuUcDNC7cl19vHINlz9qp7JqeuhpTHKav+iNrN7gwCTewTcdZu56WsKJPpQ==} - dependencies: - '@types/eslint': 8.44.6 - dev: true - - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.23.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - /@eslint/js@8.52.0: - resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /@fastify/busboy@2.0.0: - resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} - engines: {node: '>=14'} - dev: false - - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: false - - /@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 20.9.0 - '@types/yargs': 17.0.24 - chalk: 4.1.2 - dev: false - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 - - /@nolyfill/has@1.0.24: - resolution: {integrity: sha512-K4lhz7hkFuqZZ008F9xOy3zVywGN+YPVmNAxnaIkvoj3Z0z9FFVLk2awZv/RERdY3OqxDLpxFdVLl2AogMe1jg==} - engines: {node: '>=12.4.0'} - dependencies: - '@nolyfill/shared': 1.0.24 - dev: true - - /@nolyfill/shared@1.0.24: - resolution: {integrity: sha512-TGCpg3k5N7jj9AgU/1xFw9K1g4AC1vEE5ZFkW77oPNNLzprxT17PvFaNr/lr3BkkT5fJ5LNMntaTIq+pyWaeEA==} - dev: true - - /@remusao/guess-url-type@1.2.1: - resolution: {integrity: sha512-rbOqre2jW8STjheOsOaQHLgYBaBZ9Owbdt8NO7WvNZftJlaG3y/K9oOkl8ZUpuFBisIhmBuMEW6c+YrQl5inRA==} - dev: false - - /@remusao/small@1.2.1: - resolution: {integrity: sha512-7MjoGt0TJMVw1GPKgWq6SJPws1SLsUXQRa43Umht+nkyw2jnpy3WpiLNqGdwo5rHr5Wp9B2W/Pm5RQp656UJdw==} - dev: false - - /@remusao/smaz-compress@1.9.1: - resolution: {integrity: sha512-E2f48TwloQu3r6BdLOGF2aczeH7bJ/32oJGqvzT9SKur0cuUnLcZ7ZXP874E2fwmdE+cXzfC7bKzp79cDnmeyw==} - dependencies: - '@remusao/trie': 1.4.1 - dev: false - - /@remusao/smaz-decompress@1.9.1: - resolution: {integrity: sha512-TfjKKprYe3n47od8auhvJ/Ikj9kQTbDTe71ynKlxslrvvUhlIV3VQSuwYuMWMbdz1fIs0H/fxCN1Z8/H3km6/A==} - dev: false - - /@remusao/smaz@1.9.1: - resolution: {integrity: sha512-e6BLuP8oaXCZ9+v46Is4ilAZ/Vq6YLgmBP204Ixgk1qTjXmqvFYG7+AS7v9nsZdGOy96r9DWGFbbDVgMxwu1rA==} - dependencies: - '@remusao/smaz-compress': 1.9.1 - '@remusao/smaz-decompress': 1.9.1 - dev: false - - /@remusao/trie@1.4.1: - resolution: {integrity: sha512-yvwa+aCyYI/UjeD39BnpMypG8N06l86wIDW1/PAc6ihBRnodIfZDwccxQN3n1t74wduzaz74m4ZMHZnB06567Q==} - dev: false - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: false - - /@stylistic/eslint-plugin-js@0.1.1(eslint@8.53.0): - resolution: {integrity: sha512-gZbT/Sqz1viW+87YaGrzosjI54IIAwGuYE+5AgXO1C9zGMLpxDroyU+HpcqVSynN5Nihuaocp89UU49nCJh9KA==} - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - acorn: 8.10.0 - escape-string-regexp: 4.0.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esutils: 2.0.3 - graphemer: 1.4.0 - transitivePeerDependencies: - - eslint - dev: true - - /@sukka/listdir@0.2.0: - resolution: {integrity: sha512-UyVirNhAOXKwjiDehjUaGtpfk0QwNHyiXrlLb/FmWMtI+BGhaEvB9MypSfEAtiiMI3g6QTfG38ayNAorEuz5ow==} - dev: false - - /@types/chrome@0.0.248: - resolution: {integrity: sha512-qtBzxZD1v3eWZn8XxH1i07pAhzJDHnxJBBVy7bmntXxXKxjzNXYxD41teqa5yOcX/Yy8brRFGZESEzGoINvBDg==} - dependencies: - '@types/filesystem': 0.0.32 - '@types/har-format': 1.2.10 - dev: false - - /@types/eslint@8.44.6: - resolution: {integrity: sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==} - dependencies: - '@types/estree': 1.0.2 - '@types/json-schema': 7.0.13 - dev: true - - /@types/estree@1.0.2: - resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} - dev: true - - /@types/filesystem@0.0.32: - resolution: {integrity: sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==} - dependencies: - '@types/filewriter': 0.0.29 - dev: false - - /@types/filewriter@0.0.29: - resolution: {integrity: sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==} - dev: false - - /@types/firefox-webext-browser@111.0.2: - resolution: {integrity: sha512-NS7izfYOnQI/Opf3YdZSKkI5Ox89SqEffJHK2zfGY2BYEVuWuM6pSwDRglGl4W0SM84oUQfvLyYH4X6EQZAJ2w==} - dev: false - - /@types/har-format@1.2.10: - resolution: {integrity: sha512-o0J30wqycjF5miWDKYKKzzOU1ZTLuA42HZ4HE7/zqTOc/jTLdQ5NhYWvsRQo45Nfi1KHoRdNhteSI4BAxTF1Pg==} - dev: false - - /@types/istanbul-lib-coverage@2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: false - - /@types/istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - dev: false - - /@types/istanbul-reports@3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: false - - /@types/json-schema@7.0.13: - resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} - dev: true - - /@types/mocha@10.0.2: - resolution: {integrity: sha512-NaHL0+0lLNhX6d9rs+NSt97WH/gIlRHmszXbQ/8/MV/eVcFNdeJ/GYhrFuUc8K7WuPhRhTSdMkCp8VMzhUq85w==} - dev: true - - /@types/node@20.9.0: - resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} - dependencies: - undici-types: 5.26.5 - - /@types/yargs-parser@21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - dev: false - - /@types/yargs@17.0.24: - resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: false - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - /@vercel/fetch-retry@5.1.3(patch_hash=jczsp2gadg65vd4ekschpibzda)(node-fetch@2.7.0): - resolution: {integrity: sha512-UIbFc4VsEZHOr6dWuE+kxY4NxnOLXFMCWm0fSKRRHUEtrIzaJLzHpWk2QskCXTSzFgFvhkLAvSrBK2XZg7NSzg==} - peerDependencies: - node-fetch: ^2.6.7 - dependencies: - async-retry: 1.3.3 - debug: 4.3.4(supports-color@8.1.1) - node-fetch: 2.7.0 - transitivePeerDependencies: - - supports-color - dev: false - patched: true - - /acorn-jsx@5.3.2(acorn@8.10.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.10.0 - - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - /ajv@8.8.2: - resolution: {integrity: sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: false - - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /anymatch@3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true - - /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: false - - /async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - dependencies: - retry: 0.13.1 - dev: false - - /async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - dev: false - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true - - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - dependencies: - semver: 7.5.4 - dev: true - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.6 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.2 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: false - - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - /ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - dev: false - - /cidr-tools-wasm@0.0.11: - resolution: {integrity: sha512-WUnooVHC+0/uwG+/5QZT6auR2Gzga+BFkwyQiKki8uZnVHOCn3gEt+FVjHg/7pdXsCbzGsDSMGkZ31ZqIkUrrw==} - dev: false - - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: true - - /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - supports-color: 8.1.1 - - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true - - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - dependencies: - type-detect: 4.0.8 - dev: true - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true - - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - /eslint-compat-utils@0.1.2(eslint@8.53.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - eslint: 8.53.0 - dev: true - - /eslint-config-sukka@4.1.7(eslint@8.53.0): - resolution: {integrity: sha512-b7xPROMdlIp9zUiRnewljti8kL8cWFhdYAKmEaXrQDpf7/LiNo6mjjJszCppyQZQrRvZW6cpHxWYAdhKME1X5w==} - dependencies: - '@eslint-sukka/js': 4.1.7(eslint@8.53.0) - '@eslint-sukka/json': 4.1.7(eslint@8.53.0) - '@eslint-sukka/shared': 4.1.7 - ci-info: 3.9.0 - local-pkg: 0.5.0 - transitivePeerDependencies: - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' - - eslint - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-formatter-sukka@4.1.7: - resolution: {integrity: sha512-iwhqu+u0ZWMSYAsZCK7N1A6VaETjQ1EADGKggBkaabPc4X8gkciAXgzNB704ewAHIPiudO4SJSHDi6PSpbymVw==} - dependencies: - ci-info: 3.9.0 - picocolors: 1.0.0 - dev: true - - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} - dependencies: - debug: 3.2.7 - is-core-module: 2.12.1 - resolve: 1.22.3 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.7)(eslint@8.53.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - debug: 3.2.7 - eslint: 8.53.0 - eslint-import-resolver-node: 0.3.7 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-es-x@7.2.0(eslint@8.53.0): - resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@eslint-community/regexpp': 4.6.1 - eslint: 8.53.0 - dev: true - - /eslint-plugin-i@2.28.1(eslint@8.53.0): - resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==} - engines: {node: '>=12'} - peerDependencies: - eslint: ^7.2.0 || ^8 - dependencies: - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.53.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(eslint-import-resolver-node@0.3.7)(eslint@8.53.0) - get-tsconfig: 4.7.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - resolve: 1.22.3 - semver: 7.5.4 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-plugin-jsonc@2.10.0(eslint@8.53.0): - resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - eslint: 8.53.0 - eslint-compat-utils: 0.1.2(eslint@8.53.0) - jsonc-eslint-parser: 2.3.0 - natural-compare: 1.4.0 - dev: true - - /eslint-plugin-n@16.2.0(eslint@8.53.0): - resolution: {integrity: sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: '>=7.0.0' - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - builtins: 5.0.1 - eslint: 8.53.0 - eslint-plugin-es-x: 7.2.0(eslint@8.53.0) - get-tsconfig: 4.7.0 - ignore: 5.2.4 - is-core-module: 2.12.1 - minimatch: 3.1.2 - resolve: 1.22.3 - semver: 7.5.4 - dev: true - - /eslint-plugin-sukka@4.1.7: - resolution: {integrity: sha512-ikytGRa487imLhCmy0cYixsJ8FymosGRyYpKvQXbI7Zn5hhperJbSglJi+KibwaTgMr7/GGwREWdCrHwj+7kzA==} - dependencies: - '@eslint-sukka/shared': 4.1.7 - dev: true - - /eslint-plugin-unused-imports@3.0.0(eslint@8.53.0): - resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.0.0 - eslint: ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - dependencies: - eslint: 8.53.0 - eslint-rule-composer: 0.3.0 - dev: true - - /eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - dev: true - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@eslint-community/regexpp': 4.6.1 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 - '@humanwhocodes/config-array': 0.11.13 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.23.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - 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.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.3 - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - /fastq@1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} - dependencies: - reusify: 1.0.4 - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true - - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - - /get-tsconfig@4.7.0: - resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} - dependencies: - resolve-pkg-maps: 1.0.0 - dev: true - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - - /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: false - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - dependencies: - has: /@nolyfill/has@1.0.24 - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: true - - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - /jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.9.0 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.10 - picomatch: 2.3.1 - dev: false - - /jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 20.9.0 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: false - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: false - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - /jsonc-eslint-parser@2.3.0: - resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.10.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - semver: 7.5.4 - dev: true - - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.4.2 - pkg-types: 1.0.3 - dev: true - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - /lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - dev: false - - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} - engines: {node: 14 || >=16.14} - dev: false - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: false - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: false - - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: false - - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: false - - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} - dependencies: - acorn: 8.10.0 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.1 - dev: true - - /mnemonist@0.39.5: - resolution: {integrity: sha512-FPUtkhtJ0efmEFGpU14x7jGbTB+s18LrzRL2KgoWz9YvcY3cPomz8tih01GbHwnGk/OmkOKfqd/RAQoc8Lm7DQ==} - dependencies: - obliterator: 2.0.4 - dev: false - - /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} - engines: {node: '>= 14.0.0'} - hasBin: true - dependencies: - ansi-colors: 4.1.1 - browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - diff: 5.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 7.2.0 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 5.0.1 - ms: 2.1.3 - nanoid: 3.3.3 - serialize-javascript: 6.0.0 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 6.2.1 - yargs: 16.2.0 - yargs-parser: 20.2.4 - yargs-unparser: 2.0.0 - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true - - /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} - dev: false - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 10.0.1 - minipass: 5.0.0 - dev: false - - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true - - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 - dev: true - - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true - - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: false - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true - - /resolve@1.22.3: - resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} - hasBin: true - dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: false - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - dependencies: - randombytes: 2.1.0 - dev: true - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: false - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.8.2 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: false - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - /tldts-core@6.0.16: - resolution: {integrity: sha512-/ypKV6FdiDpXnVEUmPy9s5xfoSAyNPvj1r6V/3FqQBWi0ay3asObLX4Hn8eLwkHB0+VEr2bneu3CnX4uT3fO0w==} - dev: false - - /tldts-core@6.0.19: - resolution: {integrity: sha512-kdLllt2VRzBx6SfvUpPc89Gnm/fuH+DG0WgNFVhs6udnk9uadUPpmwtzczyXTUCE1Pmh8e0wtzRkyEn3WhdpXg==} - dev: false - - /tldts-experimental@6.0.16: - resolution: {integrity: sha512-4gmlrxa1Iwt983Xefsp0AJUu/9YdKzd+RU8irW4T5ZHQYNnE2bxTK7BGq1A4mUiSI7aOanXLQojLs1HUKUGjuA==} - dependencies: - tldts-core: 6.0.16 - dev: false - - /tldts@6.0.19: - resolution: {integrity: sha512-uVGeVYgntRF3E1XRJTEOy/O+SMBINhZddOqKnWVQMXBPP7WL2VSHXw/nuThhnjPKyIbUTH8kCVUswZwjCj6e5g==} - hasBin: true - dependencies: - tldts-core: 6.0.19 - dev: false - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - /ufo@1.3.1: - resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} - dev: true - - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - /undici@5.27.0: - resolution: {integrity: sha512-l3ydWhlhOJzMVOYkymLykcRRXqbUaQriERtR70B9LzNkZ4bX52Fc8wbTDneMiwo8T+AemZXvXaTx+9o5ROxrXg==} - engines: {node: '>=14.0'} - dependencies: - '@fastify/busboy': 2.0.0 - dev: false - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false - - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: false - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - dev: true - - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - dev: true - - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.4 - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - github.com/gorhill/publicsuffixlist.js/3a1bc623073079184ff76933b88b7bf4f5d48978: - resolution: {tarball: https://codeload.github.com/gorhill/publicsuffixlist.js/tar.gz/3a1bc623073079184ff76933b88b7bf4f5d48978} - name: '@gorhill/publicsuffixlist' - version: 3.0.1 - engines: {node: '>=14.0.0', npm: '>=6.14.4'} - dev: false diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..96ea9459 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "composite": true, + "target": "esnext", + "moduleDetection": "force", + "module": "esnext", + "moduleResolution": "bundler", + "types": ["bun-types"], + "allowImportingTsExtensions": true, + "allowJs": true, + "noEmit": true, + "downlevelIteration": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + } +}