diff --git a/.changeset/README.md b/.changeset/README.md
new file mode 100644
index 0000000..e5b6d8d
--- /dev/null
+++ b/.changeset/README.md
@@ -0,0 +1,8 @@
+# Changesets
+
+Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
+with multi-package repos, or single-package repos to help you version and publish your code. You can
+find the full documentation for it [in our repository](https://github.com/changesets/changesets)
+
+We have a quick list of common questions to get you started engaging with this project in
+[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
diff --git a/.changeset/config.json b/.changeset/config.json
new file mode 100644
index 0000000..a08f3ae
--- /dev/null
+++ b/.changeset/config.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
+ "changelog": ["@changesets/changelog-github", {"repo": "CasperDash/casperdash-utils"}],
+ "commit": false,
+ "fixed": [],
+ "linked": [],
+ "access": "public",
+ "baseBranch": "main",
+ "updateInternalDependencies": "patch",
+ "ignore": ["client-js"]
+}
diff --git a/examples/client-js/.gitignore b/examples/client-js/.gitignore
new file mode 100644
index 0000000..b790eea
--- /dev/null
+++ b/examples/client-js/.gitignore
@@ -0,0 +1,26 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+keys
\ No newline at end of file
diff --git a/examples/client-js/package.json b/examples/client-js/package.json
new file mode 100644
index 0000000..4065ef8
--- /dev/null
+++ b/examples/client-js/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "client-js",
+ "private": true,
+ "version": "0.0.0",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc"
+ },
+ "dependencies": {
+ "@casperdash/cep78-client": "workspace:*",
+ "casper-js-sdk": "2.15.0",
+ "axios": "1.5.0"
+ },
+ "devDependencies": {
+ "ts-node": "10.9.1",
+ "typescript": "^5.2.2"
+ }
+}
diff --git a/examples/client-js/public/vite.svg b/examples/client-js/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/examples/client-js/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/examples/client-js/src/cep78/cep78.ts b/examples/client-js/src/cep78/cep78.ts
new file mode 100644
index 0000000..4413c4b
--- /dev/null
+++ b/examples/client-js/src/cep78/cep78.ts
@@ -0,0 +1,64 @@
+import { CEP78Contract } from '@casperdash/cep78-client';
+import { CLPublicKey, Keys } from 'casper-js-sdk';
+import axios from 'axios';
+import path from 'path';
+import { DeployUtil } from 'casper-js-sdk';
+import { runDeployFlow } from '../utils/deploy';
+import TransferWasm from '../wasm/transfer_call.wasm';
+
+const MINTER = Keys.Ed25519.parseKeyFiles(
+ path.join(__dirname, `../keys/master_public.pem`),
+ path.join(__dirname, `../keys/master_private.pem`)
+);
+
+
+const transfer = async () => {
+ console.log('MINTER.publicKey: ', MINTER.publicKey.toHex());
+
+ const cep78Contract = new CEP78Contract(
+ 'casper-test',
+ 'hash-ce5ab65523312ed33b9f830dee1ec78de73e561caf1a58b5642e9e6a9210c417',
+ );
+
+ const clToPublicKey = CLPublicKey.fromHex('01ce62c06f9e6739d06c346cd1003ef80949a61d345c3e8293ea23e0f1d7f04035');
+
+ const registerDeployTwo = cep78Contract.register(
+ {
+ tokenOwner: clToPublicKey,
+ },
+ "1000000000",
+ MINTER.publicKey,
+ [MINTER],
+ );
+
+ console.log('TransferWasm: ', TransferWasm);
+
+ const transferDeploy = cep78Contract.transfer(
+ {
+ tokenId: "4",
+ source: MINTER.publicKey,
+ target: clToPublicKey,
+ },
+ { useSessionCode: true },
+ "20000000000",
+ MINTER.publicKey,
+ [],
+ TransferWasm
+ );
+
+
+
+ console.log('DeployUtil.deployToJson(transferDeploy as any): ', DeployUtil.deployToJson(transferDeploy as any));
+
+ // const response = await axios.post('http://localhost:3001/deploy', DeployUtil.deployToJson(transferDeploy as any));
+
+ // console.log('response: ', response);
+
+ // if (deploy.err) {
+ // throw Error('Deploy failed');
+ // }
+
+ await runDeployFlow(DeployUtil.signDeploy(transferDeploy, MINTER));
+}
+
+transfer();
\ No newline at end of file
diff --git a/examples/client-js/src/utils/deploy.ts b/examples/client-js/src/utils/deploy.ts
new file mode 100644
index 0000000..994f720
--- /dev/null
+++ b/examples/client-js/src/utils/deploy.ts
@@ -0,0 +1,50 @@
+import { CasperClient, DeployUtil} from 'casper-js-sdk';
+
+export const NODE_URL = 'http://76.91.193.251:7777/rpc';
+export const NETWORK_NAME = 'casper-test';
+
+export const sleep = (ms: number) => {
+ return new Promise((resolve) => setTimeout(resolve, ms));
+};
+
+export const getDeploy = async (nodeURL: string, deployHash: string) => {
+ const client = new CasperClient(nodeURL);
+ let i = 300;
+ while (i !== 0) {
+ const [deploy, raw] = await client.getDeploy(deployHash);
+ if (raw.execution_results.length !== 0) {
+ // @ts-ignore
+ if (raw.execution_results[0].result.Success) {
+ return deploy;
+ } else {
+ // @ts-ignore
+ throw Error(
+ "Contract execution: " +
+ // @ts-ignore
+ raw.execution_results[0].result.Failure.error_message
+ );
+ }
+ } else {
+ i--;
+ await sleep(1000);
+ continue;
+ }
+ }
+ throw Error("Timeout after " + i + "s. Something's wrong");
+};
+
+
+export const runDeployFlow = async (deploy: DeployUtil.Deploy, isWaitting = true) => {
+ console.log('deploy: ', deploy);
+
+ const deployHash = await deploy.send(NODE_URL!);
+
+ console.log("...... Deploy hash: ", deployHash);
+ console.log("...... Waiting for the deploy...");
+ if (isWaitting) {
+ await getDeploy(NODE_URL!, deployHash);
+ }
+
+
+ console.log(`...... Deploy ${deployHash} succedeed`);
+};
diff --git a/examples/client-js/src/wasm/transfer_call.wasm.ts b/examples/client-js/src/wasm/transfer_call.wasm.ts
new file mode 100644
index 0000000..62ea8ca
--- /dev/null
+++ b/examples/client-js/src/wasm/transfer_call.wasm.ts
@@ -0,0 +1,9 @@
+
+ /* Autogenerated file. Do not edit manually. */
+ /* eslint-disable eslint-comments/disable-enable-pair */
+ /* eslint-disable eslint-comments/no-unlimited-disable */
+ /* eslint-disable */
+ /* prettier-ignore */
+ const base64 = "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ACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhAwsgBSADaiIFIAEpAAA3AAAgBUEYaiAGKQAANwAAIAVBEGogBykAADcAACAFQQhqIAgpAAA3AABBACgC9IPAgAAhBEEAIAFBeGoiBTYC9IPAgAAgASAENgIAIAUgBSgCAEF+cTYCACACIANBIGo2AlAMCgsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sNACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhBgsgBSAGaiIBIAMpAAA3AAAgAUEYaiAHKQAANwAAIAFBEGogCCkAADcAACABQQhqIAkpAAA3AABBACgC9IPAgAAhBUEAIANBeGoiATYC9IPAgAAgAyAFNgIAIAEgASgCAEF+cTYCACACIAZBIGo2AlAMCQsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sNACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhBgsgBSAGaiIBIAMpAAA3AAAgAUEYaiAHKQAANwAAIAFBEGogCCkAADcAACABQQhqIAkpAAA3AABBACgC9IPAgAAhBUEAIANBeGoiATYC9IPAgAAgAyAFNgIAIAEgASgCAEF+cTYCACACIAZBIGo2AlAMCAsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sNACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhBgsgBSAGaiIBIAMpAAA3AAAgAUEYaiAHKQAANwAAIAFBEGogCCkAADcAACABQQhqIAkpAAA3AABBACgC9IPAgAAhBUEAIANBeGoiATYC9IPAgAAgAyAFNgIAIAEgASgCAEF+cTYCACACIAZBIGo2AlAMBwsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sN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AQsgAyADKAKwASIGKAIANgI4AkACQAJAQYAQQQQgA0E4akHQgsCAAEHogsCAABCIgICAACIBRQ0AIAYgAygCODYCAAwBCwJAAkBBAUAAIgFBf0cNACAGIAMoAjg2AgAMAQsgAUEQdCIBQQA2AgQgASADKAI4NgIIIAEgAUGCgARqNgIAIAMgATYCOEGAEEEEIANBOGpB0ILAgABB6ILAgAAQiICAgAAhASAGIAMoAjg2AgAgAQ0BC0EAIAMoAgg2AuCDwIAADAELIAFBADYCBCABIAMoAgg2AgggASABQYDAAGpBAnI2AgAgAyABNgIIQQNBASADQQhqIANBsAFqQdCCwIAAEIiAgIAAIQFBACADKAIINgLgg8CAACABDQELQQMQi4CAgAAQjICAgAAAC0EAIQYgA0EAOgBrIANBADsAaSADQQw6AGggA0EANgJwIAMgATYCbAJAIAMoAmhBA0sNACADQegAakEAQQQQjYCAgAAgAygCbCEBIAMoAnAhBgsgASAGakEINgAAQQQhASADIAZBBGoiBzYCcAJAIAMoAmgiCCAHa0EHSw0AIANB6ABqIAdBCBCNgICAACADKAJoIQggAygCcCEHCyADKAJsIgkgB2pC9OSF87bO2bLyADcAACACQQRqKAIAIQoCQAJAAkACQAJAIAJBCGooAgAiC0UNACALQShsIQUgCkEkaiEBQQAhBgNAIAYgAUFkaigCAGogAUFoahCOgICAAGogASgCAGpBCGohBiABQShqIQEgBUFYaiIFDQALAkAgBkEEaiIBDQBBASEGQQAhAQwDCyABQQBIDQELIAFBARCPgICAACIGDQELQQMhCwwBCyADIAE6AKABIAMgAUEYdjoAowEgAyABQQh2OwChAUEAIQEgA0EANgKoASADIAY2AqQBAkAgAygCoAFBA0sNACADQaABakEAQQQQjYCAgAAgAygCpAEhBiADKAKoASEBCyAGIAFqIAs2AAAgAyABQQRqIgw2AqgBAkACQAJAAkAgCw0AIAMoAqQBIQ0MAQsgC0EobCEOIApBIGohBiADQQhqQQFyIQ8gA0E4akEBciEQA0BBASEFAkAgBkFoaigCACILIAZBbGoiERCOgICAAGogBkEEaiISKAIAakEIaiIBRQ0AIAFBf0wNAyABQQEQj4CAgAAiBUUNBwsgA0EANgK4ASADIAU2ArQBIAMgAToAsAEgAyABQRh2OgCzASADIAFBCHY7ALEBIANB6ABqIAZBZGooAgAgCxCQgICAACADLQBoIQsCQAJAIAMoAmwiDUUNACADLwBpIAMtAGtBEHRyQQh0IAtyIRNBACEBAkAgAygCsAEgAygCcCILTw0AIANBsAFqQQAgCxCNgICAACADKAK0ASEFIAMoArgBIQELIAUgAWogDSALEK6AgIAAGiADIAEgC2oiCjYCuAECQCATRQ0AIA0gE0EBEJGAgIAACyADQThqIBEQkoCAgAAgBigCACELAkACQCASKAIAIgENAEEBIQ0MAQsgAUF/TA0FIAFBARCPgICAACINRQ0JCyANIAsgARCugICAACELIANB6ABqQQhqIANBOGpBCGopAwA3AwAgAyABNgKAASADIAs2AnwgAyABNgJ4IAMgAykDODcDaCADQThqIAsgARCQgICAAAJAIAFFDQAgCyABQQEQkYCAgAALIAMtADghCwJAIAMoAjwiAQ0AIANB6ABqEJOAgIAADAELIA8gEC8AADsAACAPQQJqIBBBAmotAAA6AAAgAyADKAJANgIQIAMgATYCDCADIAs6AAggA0HoAGogA0EIahCUgICAACADLQALIRMgAy8ACSERIAMoAhAhASADKAIMIQ0gAy0ACCELIANB6ABqEJOAgIAAIA0NAQsgAygCsAEiAUUNBCAFIAFBARCRgICAAAwECyARIBNBEHRyQQh0IAtyIQsCQCADKAKwASAKayABTw0AIANBsAFqIAogARCNgICAACADKAK0ASEFIAMoArgBIQoLIAUgCmogDSABEK6AgIAAGgJAIAtFDQAgDSALQQEQkYCAgAALIAMtALABIQsgAygCtAEiBUUNAyADLwCxASADLQCzAUEQdHJBCHQgC3IhCwJAIAMoAqABIAxrIAogAWoiAU8NACADQaABaiAMIAEQjYCAgAAgAygCqAEhDAsgAygCpAEiDSAMaiAFIAEQroCAgAAaIAMgDCABaiIMNgKoAQJAIAtFDQAgBSALQQEQkYCAgAALIAZBKGohBiAOQVhqIg4NAAsLIAMoAqABIgtBgH5xIQ8MAwsQlYCAgAAACyADKAKgASIBRQ0AIAMoAqQBIAFBARCRgICAAAtBACEPQQAhDQsgAkEEaigCACETAkAgAkEIaigCACIBRQ0AIBMgAUEobGohCiATIQEDQAJAIAEoAgAiBkUNACABQQRqKAIAIAZBARCRgICAAAsgAUEMaiIGEJaAgIAAAkAgAUEcaigCACIFRQ0AIAFBIGooAgAgBUEBEJGAgIAACyAGQRxqIgEgCkcNAAsLAkAgAigCACIBRQ0AIBMgAUEobEEEEJGAgIAACwJAAkACQAJAAkAgDUUNACAEQSAgCSAHQQhqIA0gDCADQegAahCAgICAABCXgICAACIBQf8BcUEsRw0BAkACQAJAAkAgAygCaCIBRQ0AIAFBf0wNBiABQQEQj4CAgAAiBkUNByAGIAEgA0E4ahCBgICAABCXgICAACIFQf8BcUEsRw0IIANB6ABqIAYgARCYgICAACADLQBoIQUCQCADKAJsIgpFDQAgAzUCcCEUIAMvAGkhDCADLQBrIRMgA0HoAGogAygCdCADKAJ4EJmAgIAAIAwgE0EQdHIhDCADKAJoIhNBDEcNAiAMQQh0IAVyIQsgAy0AbCEFIAtFDQAgCiALQQEQkYCAgAALIAYgAUEBEJGAgIAADAILQQAhBQwBCyADQThqQQhqIgIgA0H1AGopAAA3AwAgA0E4akEQaiADQf0AaikAADcDACADQThqQRhqIhAgA0HoAGpBHWopAAA3AwAgA0E4akEgaiIRIANB6ABqQSVqKQAANwMAIANBOGpBJ2oiEiADQZQBaigAADYAACADIAMpAG03AzggAygCnAFFDQECQCAMQQh0IAVyIgNFDQAgCiADQQEQkYCAgAALIAYgAUEBEJGAgIAAQQIhBQsgBRCLgICAABCMgICAAAALIAMtAGwhDiADQQhqQSdqIgcgEigAADYAACADQQhqQSBqIhIgESkDADcDACADQQhqQRhqIhEgECkDADcDACADQQhqQRBqIhAgA0E4akEQaikDADcDACADQQhqQQhqIhUgAikDADcDACADIAMpAzg3AwggBiABQQEQkYCAgAAgACAOOgAUIAAgEzYCECAAIBQ3AwggACAKNgIEIAAgDEEIdCAFcjYCACAAIAMpAwg3ABUgAEEdaiAVKQMANwAAIABBJWogECkDADcAACAAQS1qIBEpAwA3AAAgAEE1aiASKQMANwAAIABBPGogBygAADYAAAJAIA8gC0H/AXFyIgFFDQAgDSABQQEQkYCAgAALAkAgCEUNACAJIAhB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IAAoAgQQk4CAgAAgACgCBEEQQQQQkYCAgAAgAEEIaiIBKAIAEJOAgIAAIAEoAgBBEEEEEJGAgIAAIABBDGohAAsgACgCABCTgICAACAAKAIAQRBBBBCRgICAAAsL+wwBAn8DQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOFwABAgMEBQYHCAkKCwwNDg8QERITFBUWAAsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQA6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQE6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQI6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQM6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQQ6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQU6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQY6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQc6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQg6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQk6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQo6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQs6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQw6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQRY6AAAgASAAQQFqNgIIDwsgAEEEaiECQQ0hAyABKAIIIgAgASgCAEcNCQwICyAAQQRqIQJBDiEDIAEoAggiACABKAIARg0HDAgLAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASgCBCACakEPOgAAIAEgAkEBaiICNgIIIAAoAgQhAAJAIAEoAgAgAmtBA0sNACABIAJBBBCNgICAACABKAIIIQILIAEoAgQgAmogADYAACABIAJBBGo2AggPCyAAQQhqIQMCQCABKAIIIgIgASgCAEcNACABIAIQpoCAgAAgASgCCCECCyABIAJBAWo2AgggASgCBCACakEQOgAAIAAoAgQgARCUgICAACADKAIAIQAMBwsgAEEIaiEDAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASACQQFqNgIIIAEoAgQgAmpBEToAACAAKAIEIAEQlICAgAAgAygCACEADAYLIABBBGohAgJAIAEoAggiACABKAIARw0AIAEgABCmgICAACABKAIIIQALIAEgAEEBajYCCCABKAIEIABqQRI6AAAgAigCACEADAULAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASACQQFqNgIIIAEoAgQgAmpBEzoAACAAKAIEIAEQlICAgAAgAEEIaigCACEADAQLAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASACQQFqNgIIIAEoAgQgAmpBFDoAACAAKAIEIAEQlICAgAAgAEEIaigCACABEJSAgIAAIABBDGooAgAhAAwDCwJAIAEoAggiACABKAIARw0AIAEgABCmgICAACABKAIIIQALIAEoAgQgAGpBFToAACABIABBAWo2AggPCyABIAAQpoCAgAAgASgCCCEACyABKAIEIABqIAM6AAAgASAAQQFqNgIIIAIoAgAhAAwACwsJABCigICAAAALkAIBAX8CQAJAAkACQAJAAkACQAJAAkAgACgCAEFyag4IAAEIAgMEBQYICyAAQQRqIQAMBgsgAEEEaiEADAULIAAoAgQQloCAgAAgACgCBEEQQQQQkYCAgAAgAEEIaiEADAQLIAAoAgQQloCAgAAgACgCBEEQQQQQkYCAgAAgAEEIaiEADAMLIABBBGohAAwCCyAAKAIEEJaAgIAAIAAoAgRBEEEEEJGAgIAAIABBCGohAAwBCyAAKAIEEJaAgIAAIAAoAgRBEEEEEJGAgIAAIABBCGoiASgCABCWgICAACABKAIAQRBBBBCRgICAACAAQQxqIQALIAAoAgAQloCAgAAgACgCAEEQQQQQkYCAgAALC8AEAQR/QQAhAUEsIQJBACEDQQAhBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAADigpKAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJwtBASEEDCULQQIhBAwkC0EDIQQMIwtBBCEEDCILQQUhBAwhC0EGIQQMIAtBByEEDB8LQQghBAweC0EJIQQMHQtBCiEEDBwLQQshBAwbC0EMIQQMGgtBDSEEDBkLQQ4hBAwYC0EPIQQMFwtBECEEDBYLQREhBAwVC0ESIQQMFAtBEyEEDBMLQRQhBAwSC0EVIQQMEQtBFiEEDBALQRchBAwPC0EYIQQMDgtBGSEEDA0LQRohBAwMC0EbIQQMCwtBHCEEDAoLQR0hBAwJC0EeIQQMCAtBHyEEDAcLQSAhBAwGC0EhIQQMBQtBIiEEDAQLQSMhBAwDC0EkIQQMAgtBJSEEDAELQSYhBAtBACEDDAELAkACQAJAAkAgAEGAgHxxQYCABEYNACAAQYB+cSICQYD6A0YNAiACQYD8A0YNAUEqIQRBACEDIAAhASACQYD+A0YNBEEnQR4gAkGA+ANGIgIbIQRBACEDIABBACACGyEBDAQLIABBEHQhA0ErIQQMAwtBKSEEDAELQSghBAtBACEDIAAhAQsgBCADciABQQh0QYD+A3FyIQILIAILqwYBCn8CQAJAAkACQAJAIAJBBEkNACACQXxqIgMgASgAACIESQ0CIAFBBGohBSAEDQFBASEGDAQLIABBADYCBCAAQQA6AAAPCwJAIARBf0wNACAEQQEQj4CAgAAiBkUNAkEAIARBeWoiAiACIARLGyEHIAYgBSAEEK6AgIAAIgFBA2pBfHEgAWsiCEF/RiEJQQAhAgNAAkACQAJAAkACQAJAAkACQCABIAJqLQAAIgpBGHRBGHUiC0EASA0AIAkNASAIIAJrQQNxDQEgAiAHSQ0CDAYLAkACQCAKQc6AwIAAai0AAEF+ag4DBAEABQsgAkEBaiIMIARPDQQgASAMaiwAACEMAkACQAJAAkAgCkGQfmoOBQEAAAACAAsgC0EPakH/AXFBAksNByAMQUBIDQIMBwsgDEHwAGpB/wFxQTBJDQEMBgsgDEGPf0oNBQsgAkECaiIKIARPDQQgASAKaiwAAEG/f0oNBCACQQNqIgIgBE8NBCABIAJqLAAAQb9/Sg0EDAULIAJBAWoiDCAETw0DIAEgDGosAAAhDAJAAkACQAJAIApBoH5qDg4AAgICAgICAgICAgICAQILIAxBYHFBoH9GDQIMBgsgDEGgf0gNAQwFCwJAIAtBH2pB/wFxQQxJDQAgC0F+cUFuRw0FIAxBQEgNAQwFCyAMQb9/Sg0ECyACQQJqIgIgBE8NAyABIAJqLAAAQb9/TA0EDAMLIAJBAWohAgwFCwNAIAEgAmoiCigCAEGAgYKEeHENBCAKQQRqKAIAQYCBgoR4cQ0EIAJBCGoiAiAHTw0EDAALCyACQQFqIgIgBE8NACABIAJqLAAAQb9/TA0BCyABIARBARCRgICAACAAQQA2AgQgAEEBOgAADwsgAkEBaiECDAELIAIgBE8NAANAIAEgAmosAABBAEgNASAEIAJBAWoiAkYNBgwACwsgAiAETw0EDAALCxCVgICAAAALIABBADYCBCAAQQA6AAAPCwAACyAAIAMgBGs2AhAgACAFIARqNgIMIAAgBDYCCCAAIAY2AgQgACAEOgAAIABBA2ogBEEYdjoAACAAIARBCHY7AAELgAsBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJFDQAgAkF/aiEDIAEtAAAODAECAwQFBgcICQoLDQwLIABBDDYCACAAQQA6AAQPCwJAIANBIEkNACAAQQA2AgAgACABKQACNwAJIAAgAkFfajYCNCAAIAFBIWo2AjAgACABLQABOgAIIABBEWogAUEKaikAADcAACAAQRlqIAFBEmopAAA3AAAgAEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EgSQ0AIABBATYCACAAIAEpAAI3AAkgACACQV9qNgI0IAAgAUEhajYCMCAAIAEtAAE6AAggAEERaiABQQpqKQAANwAAIABBGWogAUESaikAADcAACAAQSBqIAFBGWopAAA3AAAPCyAAQQw2AgAgAEEAOgAEDwtBACEEAkAgA0EgSQ0AIANBIEYNAEEBIQQgAS0AISIDQQdLDQAgAS0AASEEIAAgAzoAKCAAIAQ6AAggAEECNgIAIAAgAUECaiIDKQAANwAJIAAgAkFeajYCNCAAIAFBImo2AjAgAEEgaiADQRdqKQAANwAAIABBGWogA0EQaikAADcAACAAQRFqIANBCGopAAA3AAAPCyAAQQw2AgAgACAEOgAEDwsCQCADQSBJDQAgAEEDNgIAIAAgASkAAjcACSAAIAJBX2o2AjQgACABQSFqNgIwIAAgAS0AAToACCAAQRFqIAFBCmopAAA3AAAgAEEZaiABQRJqKQAANwAAIABBIGogAUEZaikAADcAAA8LIABBDDYCACAAQQA6AAQPCwJAIANBIEkNACAAQQQ2AgAgACABKQACNwAJIAAgAkFfajYCNCAAIAFBIWo2AjAgACABLQABOgAIIABBEWogAUEKaikAADcAACAAQRlqIAFBEmopAAA3AAAgAEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EISQ0AIABBBTYCACAAIAJBd2o2AjQgACABQQlqNgIwIAAgASkAATcDCA8LIABBDDYCACAAQQA6AAQPCwJAIANBIEkNACAAQQY2AgAgACABKQACNwAJIAAgAkFfajYCNCAAIAFBIWo2AjAgACABLQABOgAIIABBEWogAUEKaikAADcAACAAQRlqIAFBEmopAAA3AAAgAEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EgSQ0AIABBBzYCACAAIAEpAAI3AAkgACACQV9qNgI0IAAgAUEhajYCMCAAIAEtAAE6AAggAEERaiABQQpqKQAANwAAIABBGWogAUESaikAADcAACAAQSBqIAFBGWopAAA3AAAPCyAAQQw2AgAgAEEAOgAEDwsCQCADQSBJDQAgAEEINgIAIAAgASkAAjcACSAAIAJBX2o2AjQgACABQSFqNgIwIAAgAS0AAToACCAAQRFqIAFBCmopAAA3AAAgAEEZaiABQRJqKQAANwAAIABBIGogAUEZaikAADcAAA8LIABBDDYCACAAQQA6AAQPCwJAIANBIEkNACAAQQk2AgAgACABKQACNwAJIAAgAkFfajYCNCAAIAFBIWo2AjAgACABLQABOgAIIABBEWogAUEKaikAADcAACAAQRlqIAFBEmopAAA3AAAgAEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EgSQ0AIABBCjYCACAAIAJBX2o2AjQgACABQSFqNgIwDwsgAEEMNgIAIABBADoABA8LIABBDDYCACAAQQE6AAQPCwJAIANBIEkNACAAQQs2AgAgACACQV9qNgI0IAAgAUEhajYCMA8LIABBDDYCACAAQQA6AAQLjQQBCH8jgICAgABB8ABrIgMkgICAgAAgA0EANgIIAkACQAJAAkACQCABIAIgA0EIahCCgICAABCXgICAACIEQf8BcSIFQSxGDQAgBUEBRw0BQQEQjICAgAAACwJAAkAgAygCCCIFRQ0AIAVBf0wNAyAFQQEQj4CAgAAiBEUNBCABIAIgBCAFEIOAgIAAEJeAgIAAIgJB/wFxQSxHDQUgA0EIaiAEIAUQmYCAgAACQCADKAIIIgJBDEYNACADQcgAaiIBIANBCGpBDWopAAA3AwAgA0HQAGoiBiADQQhqQRVqKQAANwMAIANB2ABqIgcgA0EIakEdaikAADcDACADQeAAaiIIIANBCGpBJWopAAA3AwAgA0HnAGoiCSADQQhqQSxqKAAANgAAIAMgAykADTcDQCADKAI8RQ0CIAQgBUEBEJGAgIAADAELIAQgBUEBEJGAgIAAC0ECEIyAgIAAAAsgAy0ADCEKIAAgAykDQDcABSAAQSxqIAkoAAA2AAAgAEElaiAIKQMANwAAIABBHWogBykDADcAACAAQRVqIAYpAwA3AAAgAEENaiABKQMANwAAIAQgBUEBEJGAgIAAIAAgCjoABCAAIAI2AgAgA0HwAGokgICAgAAPCyAEEIyAgIAAAAtBIhCMgICAAAALQRMQjICAgAAACyAEIAVBARCbgICAACACEIyAgIAAAAsOACAAIAEgAhCRgICAAAsKACAAEKOAgIAAC+IBAQJ/AkAC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m4DAgAAgAEHYAWoQhoCAgAAgACgCuAJBGEcNASACIABByABqQShqKQMANwMAIAEgAEHIAGpBIGopAwA3AwAgAyAAQcgAakEYaikDADcDACAEIABByABqQRBqKQMANwMAIAUgAEHIAGpBCGopAwA3AwAgACAAKQNINwPYASAAQbgCaiAAQagCakGRgMCAACAAQdgBahCGgICAACAAKAK4AkEYRw0CIABBmAJqQQhqIABBqAJqQQhqKAIANgIAIAAgACkDqAI3A5gCIABBuAJqQRhqIABBGGopAwA3AwAgAEG4AmpBEGogAEEQaikDADcDACAAQbgCakEIaiAAQQhqKQMANwMAIAAgACkDADcDuAIgAEHYAWogAEG4AmogAEGYAmoQioCAgAALIABBqAFqQQhqIgQgAEHYAWpBGGoiBSkDADcDACAAQagBakEQaiIGIABB2AFqQSBqIggpAwA3AwAgAEGoAWpBGGoiCSAAQdgBakEoaiIKKQMANwMAIABBqAFqQSBqIgsgAEGIAmopAwA3AwAgAEGoAWpBKGoiDCAAQZACaikDADcDACAAIAApA+gBNwOoASAAKALYASECIABB2AFqIAAoAtwBIg0gACgC4AEQkICAgAAgACgC3AEiAUUNAiAAKALgASEOIAAoAtgBIQMgCiAMKQMANwMAIAggCykDADcDACAFIAkpAwA3AwAgAEHYAWpBEGogBikDADcDACAAQdgBakEIaiAEKQMANwMAIAAgACkDqAE3A9gBIABBuAJqIABB2AFqEIeAgIAAIAAoArwCIgRFDQMgACgCuAIhBSABIA4gBCAAKALAAhCFgICAAAJAIAVFDQAgBCAFQQEQkYCAgAALAkAgA0UNACABIANBARCRgICAAAsCQCACRQ0AIA0gAkEBEJGAgIAACyAAQeACaiSAgICAAA8LIABB2AFqEJ+AgIAAAAsgAEHYAWoQn4CAgAAACyAALQDYARChgICAABCMgICAAAALIAAtALgCEKGAgIAAEIyAgIAAAAtBAhCMgICAAAALQQIQjICAgAAACwkAEKKAgIAAAAsJABCigICAAAALFwAgAEEYdEEYdUECdEGUg8CAAGooAgALBAAAAAv4AgECfyAAQQh2IQFBASECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJA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BpQMAAA5WwAABQAAAAJnMQeHDAAAOVsAAAUAAAADYwUbAAZGAAAAP1sAADUAAAACaAkGIA0AAD9bAAAFAAAAAh8dBxMNAAA/WwAABQAAAAT8AxcABtAPAABjWwAABwAAAAIjFwfDDwAAY1sAAAcAAAAFmAMXAAY6DQAAalsAAAEAAAACIhkHLQ0AAGpbAAABAAAABPwDFwAABlIAAACcWwAAUQAAAAJyDQZUDQAA41sAAAEAAAACUiUHRw0AAONbAAABAAAABPwDFwAABl4AAADzWwAALAAAAAJwDQZuDQAAClwAAAcAAAACMCMHYQ0AAApcAAAHAAAABPwDFwAGiA0AABFcAAABAAAAAi8lB3sNAAARXAAAAQAAAAT8AxcAAAYEEAAAIlwAAAcAAAACdRMH9w8AACJcAAAHAAAABZgDFwAG6g8AAIVbAAANAAAAAmoTB90PAACFWwAADQAAAAWYAxcABmoAAAAqXAAALQAAAAJ4BQYeEAAASFwAAAcAAAACIxcHERAAAEhcAAAHAAAABZgDFwAGog0AAE9cAAABAAAAAiIZB5UNAABPXAAAAQAAAAT8AxcAAAAABf////+mAgAAB+0DAAAAAJ+bAwAAfAEAAAEpAQihDAAA/////xIAAAAGISUJpwAAACAAAAAGJw0GOBAAAP////8HAAAAAscXBysQAAD/////BwAAAAWYAxcACcQAAABAAAAAAs0JCVgOAABYAAAAAoEfB0sOAAD/////CQAAAARPBBcK9QwAAP////8FAAAABE8ELwfoDAAA/////wUAAAAHTwUbAAAGcg4AAP////8BAAAAAoMZB2UOAAD/////AQAAAARPBBcAAAbQAAAA/////1EAAAAC1w0GjA4AAP////8BAAAAArMlB38OAAD/////AQAAAARPBBcAAAbcAAAA/////zIAAAAC1Q0Gpg4AAP////8BAAAAApAlB5kOAAD/////AQAAAARPBBcAAAagEAAA/////w0AAAACzxMHkxAAAP////8NAAAABesDFwAJ6AAAAHAAAAAC3QUGwA4AAP////8BAAAAAoMZB7MOAAD/////AQAAAARPBBcAAAa8DQAA/////wsAAAACxhkHrw0AAP////8LAAAABPwDFwAACbMAAACIAAAABiUNBrsMAAD/////BQAAAAJnMQeuDAAA/////wUAAAADYwUbAAZ2AAAA/////zUAAAACaAkG1g0AAP////8FAAAAAh8dB8kNAAD/////BQAAAAT8AxcABlIQAAD/////BwAAAAIjFwdFEAAA/////wcAAAAFmAMXAAbwDQAA/////wEAAAACIhkH4w0AAP////8BAAAABPwDFwAABoIAAAD/////UQAAAAJyDQYKDgAA/////wEAAAACUiUH/Q0AAP////8BAAAABPwDFwAABo4AAAD/////LAAAAAJwDQYkDgAA/////wcAAAACMCMHFw4AAP////8HAAAABPwDFwAGPg4AAP////8BAAAAAi8lBzEOAAD/////AQAAAAT8AxcAAAaGEAAA/////wkAAAACdRMHeRAAAP////8JAAAABZgDFwAGbBAAAP////8NAAAAAmoTB18QAAD/////DQAAAAWYAxcABpoAAAD/////KwAAAAJ4BQa6EAAA/////wcAAAACIxcHrRAAAP////8HAAAABZgDFwAG2g4AAP////8BAAAAAiIZB80OAAD/////AQAAAAT8AxcAAAAABf////+1AAAAB+0DAAAAAJ9rDAAARgAAAAEpAQb1AAAA/////6UAAAAGLwkK1QwAAP////8FAAAAAgABKQfIDAAA/////wUAAAADYwUbAAoGAQAA/////ycAAAACAQEJBvQOAAD/////BQAAAALkFQfnDgAA/////wUAAAAE/AMXAAYODwAA/////wEAAAAC5xMHAQ8AAP////8BAAAABPwDFwAAChIBAAD/////NwAAAAIGAQkGKA8AAP////8LAAAAAvUVBxsPAAD/////CwAAAAT8AxcABkIPAAD/////AQAAAAL5Hwc1DwAA/////wEAAAAE/AMXAAAKHgEAAP////8jAAAAAgoBBQZcDwAA/////wEAAAAC5xMHTw8AAP////8BAAAABPwDFwAAAAAF/////0oAAAAH7QMAAAAAn5ALAABKAQAAASkBCCsBAAD/////PwAAAAY2CQAL/////w4AAAAH7QMAAAAAn6EMAABRAQAAASkBC/////8+AAAAB+0DAAAAAJ/gDQAAVgEAAAEpAQNsDwAAAxYAAAZOAQX/////uQAAAAftAwAAAACfJAQAAMUaAAABnAEGIwgAAP////+4AAAABo4JBnYPAAD/////BwAAAAZTKQdp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///+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7///8AAAAAAAAAACBbAABcXAAA/v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v///wAAAAAAAAAAAJ8DDS5kZWJ1Z19hYmJyZXYBEQElDhMFAw4QFxsOtEIZEQESBgAAAjkBAw4AAAMuABEBEgZAGG4OAw46CzsFPxmHARkAAAQRASUOEwUDDhAXGw60QhkRAVUXAAAFLgARARIGQBhuDgMOOgs7Cz8ZhwEZAAAGLgARARIGQBhuDgMOOgs7CzYLPxmHARkAAAcuABEBEgZAGG4OAw46CzsFNgs/GYcBGQAAAAERASUOEwUDDhAXGw60QhkRARIGAAACOQEDDgAAAy4AEQESBkAYAw46CzsFPxkAAAABEQElDhMFAw4QFxsOtEIZEQFVFwAAAjkBAw4AAAMuAG4OAw46CzsLIAsAAAQuAG4OAw46CzsFIAsAAAUuAREBEgZAGG4OAw46CzsFPxkAAAYdATETEQESBlgLWQtXCwAABx0AMRMRARIGWAtZBVcLAAAIHQAxExEBEgZYC1kLVwsAAAkdATETVRdYC1kLVwsAAAodATETEQESBlgLWQVXCwAACy4AEQESBkAYbg4DDjoLOwU/GQAADB0AMRNVF1gLWQVXCwAAAADFIAsuZGVidWdfbGluZU4AAAAEADQAAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2FsbG9jL3NyYwAAcmF3X3ZlYy5ycwABAAAAAAUChTYAAAOLBAEFBQohAggAAQGHAAAABABCAAAAAQEB+w4NAAEBAQEAAAABAAABbGlicmFyeS9jb3JlL3NyYwAAcGFuaWNraW5nLnJzAAEAAHJlc3VsdC5ycwABAAAAAAUCGFYAAAMwAQUOCgMPIAIDAAEBAAUC9lUAAAPqAAEFBQonAggAAQEEAgAFAuxVAAAD1A0BBQUKIQIIAAEBQgAAAAQAJQAAAAEBAfsODQABAQEBAAAAAQAAAXNyYwAAbWFjcm9zLnJzAAEAAAAABQIQWwAAA7ACAQUR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//8DmwMBBAYFDwoD6H08BgP8fnQFEQYD9wC6BQ8DDZAGA/x+CIIDhAFKBQ0GCCEFDwJTEQUNkgUPHgYD/H66A4QBZgUNBksFD8cEAQUKA5oC1gIBAAEBAAUC/////wObAwEEBgUPCgPofTwGA/x+dAURBgP3ANYFDwMNkAYD/H4IggOEAUoFDQYIIQUPAlMRBQ2SBQ8eBgP8froDhAFmBQ0GSwUPxwQBBQoDmgLWAgEAAQEABQL/////A5sDAQQGBQ8KA+h9WAYD/H50BREGA/cACDwFDwMNkAYD/H4IggOEAUoFDQYIIQUPAlQRBQ2SBQ8eBgP8froDhAFmBQ0GSwUPxwQBBQoDmgLWAgEAAQEA6zcKLmRlYnVnX3N0cntpbXBsIzV9AHtpbXBsIzExfQB7aW1wbCMwfQBtZW1jcHkAY2FwYWNpdHlfb3ZlcmZsb3cAcGFuaWNfZm10AHJlc3VsdABtZW1zZXQAY29tcGlsZXJfYnVpbHRpbnMAaW1wbHMAc2V0X2J5dGVzAHNldF9ieXRlc19ieXRlcwBjb21wYXJlX2J5dGVzAGNvcHlfZm9yd2FyZF9ieXRlcwBjb3B5X2JhY2t3YXJkX2J5dGVzAHNldF9ieXRlc193b3JkcwBjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwBjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMAY29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzAG11dF9wdHIAY29uc3RfcHRyAG1lbWNtcABiY21wAHN0cmxlbgBudW0AbWVtAHBhbmlja2luZwB3cmFwcGluZ19uZWcAbWVtbW92ZQBjb3JlAGNvcHlfZm9yd2FyZABjb3B5X2JhY2t3YXJkAHVud3JhcF9mYWlsZWQAL3J1c3RjLzkwMGMzNTQwMzc4Yzg0MjJiODA4N2ZmYTNkYjYwZmE2YzhhYmZjYWQAYWxsb2MAcGFuaWMAcmF3X3ZlYwB3cmFwcGluZ19zdWIAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzc3ViMTdoZTZmZjQxMmY2YzJiN2ViZkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQxN2hmYjlkMzY1ODIzZGQwOGFmRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aGMwMmJhNDJmZWFjMTA3YWZFAF9aTjRjb3JlM251bTIzXyRMVCRpbXBsJHUyMCRpc2l6ZSRHVCQxMndyYXBwaW5nX3N1YjE3aGMyNzE4MWM2ODdjYzBiOGZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoMWFkNGVhZTUyNjNmNDk4ZkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW03bWVtbW92ZTE3aGY1NWVlODBiNTcyZTQ5NmZFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNzdWIxN2hkMWJlYTExNTcxNzYxZjVmRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aDg5NTZkNTQ4MTNkOGVjNWZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoMzY2OTExYTI3Zjc0NTAyZkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MV9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xMTdoMTFkZGRjYjViMDA3MmZkZUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHM5c2V0X2J5dGVzMTVzZXRfYnl0ZXNfd29yZHMxN2gxMzUzZTE1NTM4ODU3ZDhlRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQzYWRkMTdoZDY0OGMwZDlmMTJkMjM3ZUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgxN2gzYzViNGYyMWQxY2U5MjdlRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQ2b2Zmc2V0MTdoNzQ5ZDRiYTVjODgyODdmZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDI2Y29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMxN2hiNzVlMDlhNWFmZWE4YjhkRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29tcGFyZV9ieXRlczE3aDViM2I5Yzc0NGZjYWIzMWRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoZDE0MTRlMjM2MDYzNzcwZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDE3aGU1MmZkZTI3NzBhZmJmOWNFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aGQ3MTNlNTFkMzdiMjlkOWNFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2gyMTQxZmU1MzI1MmIxYTljRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2hlODI2YTIxOTQ1NWY4MDZjRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQxX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgxN2g0M2JmMjRiZjg3MjRjZTRjRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2hiY2I4OTUzNzliODY3ZWJiRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMxbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aDZmY2YxZDI4MTA3N2Y3NGJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTNjb3B5X2JhY2t3YXJkMTdoOWU4YzJlYjJhMWU0MzFlYUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxM2NvcHlfYmFja3dhcmQzMGNvcHlfYmFja3dhcmRfbWlzYWxpZ25lZF93b3JkczE3aGUwMDcyOTNkZGE3NWRkY2FFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184MTdoODZkNGJhZTAxMzEzYTJjYUUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzYWRkMTdoYzgwMmM0MWU0MWMyMWRiYUUAX1pONGNvcmUzbnVtMjNfJExUJGltcGwkdTIwJHVzaXplJEdUJDEyd3JhcHBpbmdfc3ViMTdoY2FkNDFlNDRkZjMzYmU3YUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW0zMm1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoOWIyNzUyYjI3ZWU0ZTE1YUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY21wMTdoNjRlZjJlOGQ3MWMzNjU3OUUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aGQ1YzJhY2UzZGVhYjZjNjlFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoZGY2NzEzZTQxZGI4Mzk2OUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtc2V0MTdoZjVhNzIyOTRkMTFmYzMyOUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00YmNtcDE3aDM0NWVjNTRkMzVhN2U3NzhFAF9aTjRjb3JlOXBhbmlja2luZzVwYW5pYzE3aDY3NTk5Yzc5OTZhNzIzNzhFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2g2MWRmOGExZWIwMWI0MzM4RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29weV9iYWNrd2FyZDE5Y29weV9iYWNrd2FyZF9ieXRlczE3aDkzNmJmZTkzYWU4NWZhMDhFAF9aTjRjb3JlNnJlc3VsdDEzdW53cmFwX2ZhaWxlZDE3aDIxZjhlNGI5NDY3MGNhZDdFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNnN0cmxlbjE3aDUwMzJkYmNlZGQzZWVhNDdFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzJtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aGQ4NWU4MTVjYTQ5OGFjZDZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yMTdoZTY5MzA1OGJiNjMxY2VjNkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDE4Y29weV9mb3J3YXJkX2J5dGVzMTdoNzM5YTQ3YTZmOWZlZWU5NkUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aDJkZTk1ZTdhNTk4MDMwMDZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoNTM1MTIxMDA0ZDk3YWFmNUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIxN2g4ZjYwNjJmOGVlZWU1YmU1RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDZvZmZzZXQxN2gyMDYyZjhlZmI5Zjk3ZmI1RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczlzZXRfYnl0ZXMxN2hmNWFlOGM4ZWZjYzAyODM1RQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkdXNpemUkR1QkMTJ3cmFwcGluZ19uZWcxN2gxMGNlMDFmYzI1ODdjNmI0RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29weV9iYWNrd2FyZDI3Y29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzMTdoYTY1NjRlZTgzZDE3Njg5NEUAX1pONGNvcmU5cGFuaWNraW5nOXBhbmljX2ZtdDE3aGU5NWRhNDZlMzNhMGJkNzRFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2hhNDRmYTQxNTQ3ODAxYjc0RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMxbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aDYyNWU5NTI4NmI4YTZiNTRFAF9aTjVhbGxvYzdyYXdfdmVjMTdjYXBhY2l0eV9vdmVyZmxvdzE3aDZhNzk2YTQ5ZDBlOGIxMDRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoM2ZjZjAzZDRhM2Y4Y2I1M0UAX1pONGNvcmUzbnVtMjNfJExUJGltcGwkdTIwJGlzaXplJEdUJDEyd3JhcHBpbmdfbmVnMTdoMzNjYzhmNjdkMjIzZDliMkUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzc3ViMTdoZmNhMWFkZWYwYjJlMmQ4MkUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzYWRkMTdoNzY4MTA3MWU2Y2UzNGM0MkUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQ2b2Zmc2V0MTdoNGM4ODM1NjY1YTYwMzkxMkUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkM2FkZDE3aDg4YTg2ZDAzM2FiNDE5MDJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMjE3aDk4NTJlMjBjNDBhNzkzOTFFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTJjb3B5X2ZvcndhcmQyOWNvcHlfZm9yd2FyZF9taXNhbGlnbmVkX3dvcmRzMTdoZTcwY2NjNWI2ZjIzNDI4MUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzExN2gwOTE2ODQzMzg2YTQ5YTIxRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczlzZXRfYnl0ZXMxNXNldF9ieXRlc19ieXRlczE3aDM2Y2JmYTM4OWRkZjUxZTBFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbWNweTE3aDcwYWM3NWYwMzQ3MWIyMjBFAG9mZnNldDx1c2l6ZT4AYWRkPHVzaXplPgBzdWI8dXNpemU+AG9mZnNldDx1OD4AYWRkPHU4PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4Ac3ViPHU4PgBvZmZzZXQ8dTE2PgBhZGQ8dTE2PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MTY+AG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4Ab2Zmc2V0PHU2ND4AYWRkPHU2ND4AbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTY0PgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AG9mZnNldDx1MzI+AGFkZDx1MzI+AG1lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTMyPgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTMyPgBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184AF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jb21waWxlcl9idWlsdGlucy0wLjEuODcAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jb21waWxlcl9idWlsdGlucy0wLjEuODcvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjQzNGQ0ODhjLWNndS4xNDYAX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNABfX2xsdm1fbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180AF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180AC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY29tcGlsZXJfYnVpbHRpbnMtMC4xLjg3L3NyYy9saWIucnMvQC9jb21waWxlcl9idWlsdGlucy40MzRkNDg4Yy1jZ3UuMTgzAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAbGlicmFyeS9jb3JlL3NyYy9saWIucnMvQC9jb3JlLjdiYzkyZmRmLWNndS4wAGxpYnJhcnkvYWxsb2Mvc3JjL2xpYi5ycy9AL2FsbG9jLjQ0NGZmMmU5LWNndS4wAGNsYW5nIExMVk0gKHJ1c3RjIHZlcnNpb24gMS43MC4wLW5pZ2h0bHkgKDkwMGMzNTQwMyAyMDIzLTAzLTA4KSkAALgPDy5kZWJ1Z19wdWJuYW1lczoAAAACAAAAAABPAAAAMAAAAGNhcGFjaXR5X292ZXJmbG93ACsAAAByYXdfdmVjACYAAABhbGxvYwAAAAAAWgAAAAIATwAAAI0AAAAwAAAAcGFuaWNfZm10AG0AAAB1bndyYXBfZmFpbGVkACsAAABwYW5pY2tpbmcAJgAAAGNvcmUASwAAAHBhbmljAGgAAAByZXN1bHQAAAAAADcAAAACANwAAABRAAAAJgAAAGNvbXBpbGVyX2J1aWx0aW5zADUAAABtZW1jcHkAKwAAAG1lbQAAAAAAzQYAAAIALQEAAAQSAADVDAAAd3JhcHBpbmdfbmVnADAAAABpbXBscwAJDQAAbXV0X3B0cgDtCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AJkIAABtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AswAAAGNvcHlfZm9yd2FyZABBCQAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AMAOAABzdWI8dTg+AAEBAABzZXRfYnl0ZXMAQg8AAGFkZDx1c2l6ZT4AvwAAAGNvcHlfYmFja3dhcmQAsREAAG9mZnNldDx1MzI+AH0RAABvZmZzZXQ8dTE2PgArAAAAbWVtABIBAABzZXRfYnl0ZXNfd29yZHMA5REAAG9mZnNldDx1NjQ+ACYAAABjb21waWxlcl9idWlsdGlucwCVCQAAbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AAQMAABtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AKwEAAGNvbXBhcmVfYnl0ZXMAywsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgA9DAAAbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AKYOAABzdWI8dXNpemU+AJoAAABjb3B5X2ZvcndhcmRfYnl0ZXMAkwoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AIQMAAG1lbW1vdmUAJQoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AAQsAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4Avg8AAHtpbXBsIzB9AL4RAABhZGQ8dTMyPgCKEQAAYWRkPHUxNj4A6AAAAGNvcHlfYmFja3dhcmRfYnl0ZXMApQgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIA8hEAAGFkZDx1NjQ+ANAAAABjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMA6wcAAGJjbXAATQkAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgA+QgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAeAwAAGNvcmUAoQkAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xADkBAABtZW1jcHkAMQoAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yAJ8KAABfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNAAvCAAAX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQCCDAAAe2ltcGwjMTF9AKoPAABhZGQ8dTg+AMgMAAB3cmFwcGluZ19zdWIADQsAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184AAQNAABwdHIABwgAAHN0cmxlbgAjCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4AvgcAAG1lbWNtcAB7CwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQDXCwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgDjDAAAe2ltcGwjNX0AEAwAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQASQwAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAjQYAAG1lbXNldACdDwAAb2Zmc2V0PHU4PgB9DAAAbnVtADUPAABvZmZzZXQ8dXNpemU+AI4AAABjb3B5X2ZvcndhcmRfYWxpZ25lZF93b3JkcwAeAQAAc2V0X2J5dGVzX2J5dGVzAIIAAABjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwDcAAAAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzALkPAABjb25zdF9wdHIAbwsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AAAAAAAAzhsEbmFtZQGmGzAAFGNhc3Blcl9jYWxsX2NvbnRyYWN0ARdjYXNwZXJfcmVhZF9ob3N0X2J1ZmZlcgIZY2FzcGVyX2dldF9uYW1lZF9hcmdfc2l6ZQMUY2FzcGVyX2dldF9uYW1lZF9hcmcEDWNhc3Blcl9yZXZlcnQFDmNhc3Blcl9wdXRfa2V5BkdfWk4xMmNhc3Blcl90eXBlczEycnVudGltZV9hcmdzMTFSdW50aW1lQXJnczZpbnNlcnQxN2g3NjY5M2M3MzllYThhNTJjRQdtX1pONzVfJExUJGNhc3Blcl90eXBlcy4ua2V5Li5LZXkkdTIwJGFzJHUyMCRjYXNwZXJfdHlwZXMuLmJ5dGVzcmVwci4uVG9CeXRlcyRHVCQ4dG9fYnl0ZXMxN2gyNWQ3MTFjYWUyYjlhNzliRQgyX1pOOXdlZV9hbGxvYzE1YWxsb2NfZmlyc3RfZml0MTdoMDQ2Yjc3MDg5NjE3YTMxNUUJTF9aTjVhbGxvYzdyYXdfdmVjMTlSYXdWZWMkTFQkVCRDJEEkR1QkMTZyZXNlcnZlX2Zvcl9wdXNoMTdoYzdmN2I0Y2IxZjYyMWU4ZUUKTV9aTjE1Y2FzcGVyX2NvbnRyYWN0MTJjb250cmFjdF9hcGk3cnVudGltZTEzY2FsbF9jb250cmFjdDE3aDViMzk2MzlhODgwNzQ0YTJFC1BfWk41MF8kTFQkVCR1MjAkYXMkdTIwJGNvcmUuLmNvbnZlcnQuLkludG8kTFQkVSRHVCQkR1QkNGludG8xN2hjZDY5MTBhMjk4Y2UxNDU1RQxFX1pOMTVjYXNwZXJfY29udHJhY3QxMmNvbnRyYWN0X2FwaTdydW50aW1lNnJldmVydDE3aDY3NTVhODlhOWMwOTc3OGRFDVlfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDdyZXNlcnZlMjFkb19yZXNlcnZlX2FuZF9oYW5kbGUxN2hhNjEwNTc4MTQyNzY2Njg3RQ5HX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxN3NlcmlhbGl6ZWRfbGVuZ3RoMTdoNDRjZjdlMjAwNTE5OWM3MEUPZ19aTjcyXyRMVCR3ZWVfYWxsb2MuLldlZUFsbG9jJHUyMCRhcyR1MjAkY29yZS4uYWxsb2MuLmdsb2JhbC4uR2xvYmFsQWxsb2MkR1QkNWFsbG9jMTdoNTNlYjUyMTA3YjZiMDM3Y0UQQl9aTjEyY2FzcGVyX3R5cGVzOWJ5dGVzcmVwcjE3dThfc2xpY2VfdG9fYnl0ZXMxN2hkMTM0NjYwMWNkMWIzZDVkRRFpX1pONzJfJExUJHdlZV9hbGxvYy4uV2VlQWxsb2MkdTIwJGFzJHUyMCRjb3JlLi5hbGxvYy4uZ2xvYmFsLi5HbG9iYWxBbGxvYyRHVCQ3ZGVhbGxvYzE3aDM4YjA3YmFlMTQxNWE5NWZFEmNfWk42OF8kTFQkY2FzcGVyX3R5cGVzLi5jbF90eXBlLi5DTFR5cGUkdTIwJGFzJHUyMCRjb3JlLi5jbG9uZS4uQ2xvbmUkR1QkNWNsb25lMTdoMTUwZjFmY2I0Mjg4NjRiZUUTVF9aTjRjb3JlM3B0cjUwZHJvcF9pbl9wbGFjZSRMVCRjYXNwZXJfdHlwZXMuLmNsX3R5cGUuLkNMVHlwZSRHVCQxN2g5YzE3YjMwODU2ZTAwMDJjRRRCX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxMmFwcGVuZF9ieXRlczE3aDE5YWMxMDViYmJkYWFiZGFFFThfWk41YWxsb2M3cmF3X3ZlYzE3Y2FwYWNpdHlfb3ZlcmZsb3cxN2g2YTc5NmE0OWQwZThiMTA0RRZUX1pONGNvcmUzcHRyNTBkcm9wX2luX3BsYWNlJExUJGNhc3Blcl90eXBlcy4uY2xfdHlwZS4uQ0xUeXBlJEdUJDE3aDg3YzNhNmJjMjYyMGYwNmVFFzxfWk4xMmNhc3Blcl90eXBlczlhcGlfZXJyb3IxMXJlc3VsdF9mcm9tMTdoYzI0NmMxOWM0Mzg1MDc3ZEUYcV9aTjc2XyRMVCRhbGxvYy4uc3RyaW5nLi5TdHJpbmckdTIwJGFzJHUyMCRjYXNwZXJfdHlwZXMuLmJ5dGVzcmVwci4uRnJvbUJ5dGVzJEdUJDEwZnJvbV9ieXRlczE3aGQ2ZWM4YjY3ZjE0YTFlMDRFGXJfWk43N18kTFQkY2FzcGVyX3R5cGVzLi5rZXkuLktleSR1MjAkYXMkdTIwJGNhc3Blcl90eXBlcy4uYnl0ZXNyZXByLi5Gcm9tQnl0ZXMkR1QkMTBmcm9tX2J5dGVzMTdoYjM0ODkyOWUyZmE1MmVlZkUaTV9aTjE1Y2FzcGVyX2NvbnRyYWN0MTJjb250cmFjdF9hcGk3cnVudGltZTEzZ2V0X25hbWVkX2FyZzE3aDA1YTQ4NzExNGM0NTJhODVFGw5fX3J1c3RfZGVhbGxvYxxQX1pONTBfJExUJFQkdTIwJGFzJHUyMCRjb3JlLi5jb252ZXJ0Li5JbnRvJExUJFUkR1QkJEdUJDRpbnRvMTdoMDI4MzU0MTllNmQ5ZDAwZEUdMl9aTjVhbGxvYzdyYXdfdmVjMTFmaW5pc2hfZ3JvdzE3aDgxYWMyYjdjZTM5MDA1N2RFHgRjYWxsHzJfWk40Y29yZTZyZXN1bHQxM3Vud3JhcF9mYWlsZWQxN2gyMWY4ZTRiOTQ2NzBjYWQ3RSAsX1pONGNvcmU5cGFuaWNraW5nNXBhbmljMTdoNjc1OTljNzk5NmE3MjM3OEUhUF9aTjUwXyRMVCRUJHUyMCRhcyR1MjAkY29yZS4uY29udmVydC4uSW50byRMVCRVJEdUJCRHVCQ0aW50bzE3aDlmNzAzYTU4NDJmYzM3OTRFIjBfWk40Y29yZTlwYW5pY2tpbmc5cGFuaWNfZm10MTdoZTk1ZGE0NmUzM2EwYmQ3NEUjlAFfWk4xMmNhc3Blcl90eXBlczlhcGlfZXJyb3I5NF8kTFQkaW1wbCR1MjAkY29yZS4uY29udmVydC4uRnJvbSRMVCRjYXNwZXJfdHlwZXMuLmFwaV9lcnJvci4uQXBpRXJyb3IkR1QkJHUyMCRmb3IkdTIwJHUzMiRHVCQ0ZnJvbTE3aDUxZTUxZTMwZGMyMTYzN2FFJANvb20lMl9aTjVhbGxvYzdyYXdfdmVjMTFmaW5pc2hfZ3JvdzE3aDUwYzhiMmIyN2NhYWFhMGZFJkxfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDE2cmVzZXJ2ZV9mb3JfcHVzaDE3aDNmMDJlZGFjZjZjYWJiMDZFJ4kBX1pOODhfJExUJHdlZV9hbGxvYy4uc2l6ZV9jbGFzc2VzLi5TaXplQ2xhc3NBbGxvY1BvbGljeSR1MjAkYXMkdTIwJHdlZV9hbGxvYy4uQWxsb2NQb2xpY3kkR1QkMjJuZXdfY2VsbF9mb3JfZnJlZV9saXN0MTdoZjI1ODU3OWQxMDRiMzMyOEUoUl9aTjRjb3JlM3B0cjQ4ZHJvcF9pbl9wbGFjZSRMVCR3ZWVfYWxsb2MuLkxhcmdlQWxsb2NQb2xpY3kkR1QkMTdoZmQ0NjNiMDUxNDNmNzJkZEUpd19aTjcwXyRMVCR3ZWVfYWxsb2MuLkxhcmdlQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDIybmV3X2NlbGxfZm9yX2ZyZWVfbGlzdDE3aGJiOTgyOTliNjliYzljN2ZFKm5fWk43MF8kTFQkd2VlX2FsbG9jLi5MYXJnZUFsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQxM21pbl9jZWxsX3NpemUxN2g4MWQwYzYzZDk0NTg2N2I2RSuBAV9aTjcwXyRMVCR3ZWVfYWxsb2MuLkxhcmdlQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDMyc2hvdWxkX21lcmdlX2FkamFjZW50X2ZyZWVfY2VsbHMxN2g3YWYwNDk2MDZkYjg4ZDUzRSyAAV9aTjg4XyRMVCR3ZWVfYWxsb2MuLnNpemVfY2xhc3Nlcy4uU2l6ZUNsYXNzQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDEzbWluX2NlbGxfc2l6ZTE3aDYwYTJhZTZkZGE2NTZhYTBFLZMBX1pOODhfJExUJHdlZV9hbGxvYy4uc2l6ZV9jbGFzc2VzLi5TaXplQ2xhc3NBbGxvY1BvbGljeSR1MjAkYXMkdTIwJHdlZV9hbGxvYy4uQWxsb2NQb2xpY3kkR1QkMzJzaG91bGRfbWVyZ2VfYWRqYWNlbnRfZnJlZV9jZWxsczE3aGQzNzUyYjM4Y2JlMDA5NDRFLgZtZW1jcHkvNV9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbWNweTE3aDcwYWM3NWYwMzQ3MWIyMjBFBxIBAA9fX3N0YWNrX3BvaW50ZXIJCgEABy5yb2RhdGEAVQlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkBBXJ1c3RjJTEuNzAuMC1uaWdodGx5ICg5MDBjMzU0MDMgMjAyMy0wMy0wOCk=";
+ const wasm = new Uint8Array(Buffer.from(base64, 'base64'));
+ export default wasm;
diff --git a/examples/client-js/tsconfig.json b/examples/client-js/tsconfig.json
new file mode 100644
index 0000000..2c4dd6a
--- /dev/null
+++ b/examples/client-js/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "module": "CommonJS",
+ "esModuleInterop": true,
+ "target": "es5",
+ "moduleResolution": "Node",
+ "outDir": "dist",
+ "forceConsistentCasingInFileNames": true,
+ "noFallthroughCasesInSwitch": true,
+ "isolatedModules": false,
+ "strict": true,
+ "noImplicitAny": true,
+ "useUnknownInCatchVariables": false,
+ "inlineSourceMap": true,
+ },
+ "ts-node": {
+ "esm": true
+ },
+ "lib": ["esnext"]
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 21b4714..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,5159 +0,0 @@
-{
- "name": "casperdash-utils",
- "version": "1.0.8",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "dev": true,
- "requires": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "dependencies": {
- "@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- }
- }
- },
- "@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.18.6"
- }
- },
- "@babel/compat-data": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
- "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
- "dev": true
- },
- "@babel/core": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz",
- "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==",
- "dev": true,
- "requires": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.10",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-module-transforms": "^7.18.9",
- "@babel/helpers": "^7.18.9",
- "@babel/parser": "^7.18.10",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.18.10",
- "@babel/types": "^7.18.10",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- }
- },
- "@babel/generator": {
- "version": "7.18.12",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz",
- "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.10",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
- "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.18.8",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.20.2",
- "semver": "^6.3.0"
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true
- },
- "@babel/helper-function-name": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
- "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.6",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
- "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.18.6",
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-plugin-utils": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
- "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
- "dev": true
- },
- "@babel/helper-simple-access": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
- "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
- "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
- "dev": true
- },
- "@babel/helper-validator-identifier": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
- "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
- "dev": true
- },
- "@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
- "dev": true
- },
- "@babel/helpers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz",
- "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.18.11",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz",
- "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==",
- "dev": true
- },
- "@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.12.13"
- }
- },
- "@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-typescript": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
- "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
- }
- },
- "@babel/traverse": {
- "version": "7.18.11",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz",
- "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.10",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.18.11",
- "@babel/types": "^7.18.10",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- }
- },
- "@babel/types": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz",
- "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==",
- "dev": true,
- "requires": {
- "@babel/helper-string-parser": "^7.18.10",
- "@babel/helper-validator-identifier": "^7.18.6",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "dev": true
- },
- "@esbuild/linux-loong64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.1.tgz",
- "integrity": "sha512-1tORADNFK9QS4KYyUyh3Td9WGrdiI1rSoKvY6A43+9G0kPujBuT4lIGyoK0AweOSO1aRIR28xQUfiJCUa78bUw==",
- "dev": true,
- "optional": true
- },
- "@ethersproject/bignumber": {
- "version": "5.6.2",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz",
- "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==",
- "requires": {
- "@ethersproject/bytes": "^5.6.1",
- "@ethersproject/logger": "^5.6.0",
- "bn.js": "^5.2.1"
- }
- },
- "@ethersproject/bytes": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz",
- "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==",
- "requires": {
- "@ethersproject/logger": "^5.6.0"
- }
- },
- "@ethersproject/constants": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz",
- "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==",
- "requires": {
- "@ethersproject/bignumber": "^5.6.2"
- }
- },
- "@ethersproject/logger": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz",
- "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg=="
- },
- "@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- }
- },
- "@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true
- },
- "@jest/console": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz",
- "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "@jest/core": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz",
- "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==",
- "dev": true,
- "requires": {
- "@jest/console": "^28.1.3",
- "@jest/reporters": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^28.1.3",
- "jest-config": "^28.1.3",
- "jest-haste-map": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-resolve-dependencies": "^28.1.3",
- "jest-runner": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "jest-watcher": "^28.1.3",
- "micromatch": "^4.0.4",
- "pretty-format": "^28.1.3",
- "rimraf": "^3.0.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "@jest/environment": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz",
- "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==",
- "dev": true,
- "requires": {
- "@jest/fake-timers": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "jest-mock": "^28.1.3"
- }
- },
- "@jest/expect": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz",
- "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==",
- "dev": true,
- "requires": {
- "expect": "^28.1.3",
- "jest-snapshot": "^28.1.3"
- }
- },
- "@jest/expect-utils": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz",
- "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==",
- "dev": true,
- "requires": {
- "jest-get-type": "^28.0.2"
- }
- },
- "@jest/fake-timers": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz",
- "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@sinonjs/fake-timers": "^9.1.2",
- "@types/node": "*",
- "jest-message-util": "^28.1.3",
- "jest-mock": "^28.1.3",
- "jest-util": "^28.1.3"
- }
- },
- "@jest/globals": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz",
- "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/expect": "^28.1.3",
- "@jest/types": "^28.1.3"
- }
- },
- "@jest/reporters": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz",
- "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==",
- "dev": true,
- "requires": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@jridgewell/trace-mapping": "^0.3.13",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^5.1.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-worker": "^28.1.3",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "terminal-link": "^2.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "dependencies": {
- "jest-worker": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
- "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "@jest/schemas": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
- "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
- "dev": true,
- "requires": {
- "@sinclair/typebox": "^0.24.1"
- }
- },
- "@jest/source-map": {
- "version": "28.1.2",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz",
- "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.13",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- }
- },
- "@jest/test-result": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz",
- "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==",
- "dev": true,
- "requires": {
- "@jest/console": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- }
- },
- "@jest/test-sequencer": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz",
- "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==",
- "dev": true,
- "requires": {
- "@jest/test-result": "^28.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "@jest/transform": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz",
- "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^28.1.3",
- "@jridgewell/trace-mapping": "^0.3.13",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^1.4.0",
- "fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-util": "^28.1.3",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.1"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "@jest/types": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz",
- "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
- "dev": true,
- "requires": {
- "@jest/schemas": "^28.1.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- }
- },
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
- },
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
- },
- "@jridgewell/source-map": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
- "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
- "requires": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
- },
- "@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- }
- },
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true
- },
- "@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
- "@open-rpc/client-js": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@open-rpc/client-js/-/client-js-1.7.1.tgz",
- "integrity": "sha512-DycSYZUGSUwFl+k9T8wLBSGA8f2hYkvS5A9AB94tBOuU8QlP468NS5ZtAxy72dF4g2WW0genwNJdfeFnHnaxXQ==",
- "requires": {
- "isomorphic-fetch": "^3.0.0",
- "isomorphic-ws": "^4.0.1",
- "strict-event-emitter-types": "^2.0.0",
- "ws": "^7.0.0"
- }
- },
- "@rollup/plugin-node-resolve": {
- "version": "13.3.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz",
- "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==",
- "dev": true,
- "requires": {
- "@rollup/pluginutils": "^3.1.0",
- "@types/resolve": "1.17.1",
- "deepmerge": "^4.2.2",
- "is-builtin-module": "^3.1.0",
- "is-module": "^1.0.0",
- "resolve": "^1.19.0"
- }
- },
- "@rollup/pluginutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
- "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
- "dev": true,
- "requires": {
- "@types/estree": "0.0.39",
- "estree-walker": "^1.0.1",
- "picomatch": "^2.2.2"
- },
- "dependencies": {
- "@types/estree": {
- "version": "0.0.39",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
- "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
- "dev": true
- }
- }
- },
- "@sinclair/typebox": {
- "version": "0.24.27",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.27.tgz",
- "integrity": "sha512-K7C7IlQ3zLePEZleUN21ceBA2aLcMnLHTLph8QWk1JK37L90obdpY+QGY8bXMKxf1ht1Z0MNewvXxWv0oGDYFg==",
- "dev": true
- },
- "@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
- "dev": true,
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@sinonjs/fake-timers": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
- "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true
- },
- "@types/babel__core": {
- "version": "7.1.19",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz",
- "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "@types/babel__generator": {
- "version": "7.6.4",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
- "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__template": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
- "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__traverse": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz",
- "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.3.0"
- }
- },
- "@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/eccrypto": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@types/eccrypto/-/eccrypto-1.1.3.tgz",
- "integrity": "sha512-3O0qER6JMYReqVbcQTGmXeMHdw3O+rVps63tlo5g5zoB3altJS8yzSvboSivwVWeYO9o5jSATu7P0UIqYZPgow==",
- "requires": {
- "@types/expect": "^1.20.4",
- "@types/node": "*"
- }
- },
- "@types/elliptic": {
- "version": "6.4.14",
- "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.14.tgz",
- "integrity": "sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ==",
- "requires": {
- "@types/bn.js": "*"
- }
- },
- "@types/eslint": {
- "version": "8.4.5",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz",
- "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==",
- "requires": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "@types/eslint-scope": {
- "version": "3.7.4",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
- "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
- "requires": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "@types/estree": {
- "version": "0.0.51",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
- "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ=="
- },
- "@types/expect": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz",
- "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg=="
- },
- "@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
- "dev": true
- },
- "@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "@types/istanbul-reports": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "@types/jest": {
- "version": "28.1.6",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.6.tgz",
- "integrity": "sha512-0RbGAFMfcBJKOmqRazM8L98uokwuwD5F8rHrv/ZMbrZBwVOWZUyPG6VFNscjYr/vjM3Vu4fRrCPbOs42AfemaQ==",
- "dev": true,
- "requires": {
- "jest-matcher-utils": "^28.0.0",
- "pretty-format": "^28.0.0"
- }
- },
- "@types/jsdom": {
- "version": "16.2.15",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz",
- "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/parse5": "^6.0.3",
- "@types/tough-cookie": "*"
- }
- },
- "@types/json-schema": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
- "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
- },
- "@types/node": {
- "version": "18.7.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.1.tgz",
- "integrity": "sha512-GKX1Qnqxo4S+Z/+Z8KKPLpH282LD7jLHWJcVryOflnsnH+BtSDfieR6ObwBMwpnNws0bUK8GI7z0unQf9bARNQ=="
- },
- "@types/parse5": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
- "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==",
- "dev": true
- },
- "@types/pbkdf2": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
- "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/prettier": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz",
- "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==",
- "dev": true
- },
- "@types/resolve": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
- "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/secp256k1": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz",
- "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/stack-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
- "dev": true
- },
- "@types/tough-cookie": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz",
- "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==",
- "dev": true
- },
- "@types/ws": {
- "version": "8.5.3",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
- "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/yargs": {
- "version": "17.0.11",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz",
- "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==",
- "dev": true,
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
- "dev": true
- },
- "@webassemblyjs/ast": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
- "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
- "requires": {
- "@webassemblyjs/helper-numbers": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
- }
- },
- "@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
- "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ=="
- },
- "@webassemblyjs/helper-api-error": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
- "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg=="
- },
- "@webassemblyjs/helper-buffer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
- "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA=="
- },
- "@webassemblyjs/helper-numbers": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
- "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
- "requires": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
- "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q=="
- },
- "@webassemblyjs/helper-wasm-section": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
- "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1"
- }
- },
- "@webassemblyjs/ieee754": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
- "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
- "requires": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "@webassemblyjs/leb128": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
- "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
- "requires": {
- "@xtuc/long": "4.2.2"
- }
- },
- "@webassemblyjs/utf8": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
- "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ=="
- },
- "@webassemblyjs/wasm-edit": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
- "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/helper-wasm-section": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-opt": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "@webassemblyjs/wast-printer": "1.11.1"
- }
- },
- "@webassemblyjs/wasm-gen": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
- "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
- }
- },
- "@webassemblyjs/wasm-opt": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
- "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1"
- }
- },
- "@webassemblyjs/wasm-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
- "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
- }
- },
- "@webassemblyjs/wast-printer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
- "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "@webpack-cli/configtest": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz",
- "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==",
- "dev": true
- },
- "@webpack-cli/info": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz",
- "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==",
- "dev": true,
- "requires": {
- "envinfo": "^7.7.3"
- }
- },
- "@webpack-cli/serve": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz",
- "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==",
- "dev": true
- },
- "@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
- },
- "@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
- },
- "abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "dev": true
- },
- "acorn": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
- "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg=="
- },
- "acorn-globals": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
- "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
- "dev": true,
- "requires": {
- "acorn": "^7.1.1",
- "acorn-walk": "^7.1.1"
- }
- },
- "acorn-import-assertions": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
- "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw=="
- },
- "acorn-walk": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
- "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
- "dev": true
- },
- "agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "requires": {
- "debug": "4"
- }
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "dev": true,
- "requires": {
- "ajv": "^8.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- }
- }
- },
- "ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
- },
- "ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
- "requires": {
- "type-fest": "^0.21.3"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
- },
- "asn1.js": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
- "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
- "requires": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- }
- }
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "babel-jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz",
- "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==",
- "dev": true,
- "requires": {
- "@jest/transform": "^28.1.3",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^28.1.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
- }
- },
- "babel-plugin-jest-hoist": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz",
- "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- }
- },
- "babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
- "dev": true,
- "requires": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.8.3",
- "@babel/plugin-syntax-import-meta": "^7.8.3",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.8.3",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-top-level-await": "^7.8.3"
- }
- },
- "babel-preset-jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz",
- "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==",
- "dev": true,
- "requires": {
- "babel-plugin-jest-hoist": "^28.1.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "base-x": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
- "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
- },
- "bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "requires": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "bip66": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz",
- "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==",
- "optional": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "blakejs": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
- "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
- },
- "bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
- },
- "browser-process-hrtime": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
- "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
- "dev": true
- },
- "browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "requires": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "browserslist": {
- "version": "4.21.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
- "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
- "requires": {
- "caniuse-lite": "^1.0.30001370",
- "electron-to-chromium": "^1.4.202",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.5"
- }
- },
- "bs-logger": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
- "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
- "dev": true,
- "requires": {
- "fast-json-stable-stringify": "2.x"
- }
- },
- "bs58": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
- "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
- "requires": {
- "base-x": "^3.0.2"
- }
- },
- "bs58check": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
- "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
- "requires": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
- }
- },
- "bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dev": true,
- "requires": {
- "node-int64": "^0.4.0"
- }
- },
- "buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
- },
- "builtin-modules": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
- "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
- "dev": true
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "caniuse-lite": {
- "version": "1.0.30001375",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz",
- "integrity": "sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw=="
- },
- "casper-js-sdk": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/casper-js-sdk/-/casper-js-sdk-2.9.1.tgz",
- "integrity": "sha512-UO0meYMucBqoNfplhSys4ELis0e0HDcJRpJa5/e1TIEfCwHGSt30PbHoJ/UXWzWR3nk4YSddQJ3coHCF7IrZoA==",
- "requires": {
- "@ethersproject/bignumber": "^5.0.8",
- "@ethersproject/bytes": "^5.0.5",
- "@ethersproject/constants": "^5.0.5",
- "@open-rpc/client-js": "^1.6.2",
- "@types/eccrypto": "^1.1.2",
- "@types/ws": "^8.2.2",
- "blakejs": "^1.1.0",
- "eccrypto": "^1.1.6",
- "eslint-plugin-prettier": "^3.4.0",
- "ethereum-cryptography": "^0.1.3",
- "glob": "^7.1.6",
- "humanize-duration": "^3.24.0",
- "key-encoder": "^2.0.3",
- "reflect-metadata": "^0.1.13",
- "ts-results": "^3.2.1",
- "tweetnacl-ts": "^1.0.3",
- "tweetnacl-util": "^0.15.0",
- "typedjson": "^1.6.0-rc2",
- "webpack": "^5.24.3"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- }
- }
- },
- "chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg=="
- },
- "ci-info": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
- "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==",
- "dev": true
- },
- "cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "cjs-module-lexer": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
- "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
- "dev": true
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "dev": true
- },
- "collect-v8-coverage": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
- "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
- "dev": true
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "colorette": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
- "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- }
- }
- },
- "copy-webpack-plugin": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
- "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
- "dev": true,
- "requires": {
- "fast-glob": "^3.2.11",
- "glob-parent": "^6.0.1",
- "globby": "^13.1.1",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.0.0",
- "serialize-javascript": "^6.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
- }
- },
- "create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "requires": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "requires": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true
- },
- "cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
- "dev": true,
- "requires": {
- "cssom": "~0.3.6"
- },
- "dependencies": {
- "cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
- }
- }
- },
- "data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
- "dev": true,
- "requires": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
- },
- "dependencies": {
- "tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.1"
- }
- },
- "webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true
- },
- "whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
- "dev": true,
- "requires": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- }
- }
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decimal.js": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
- "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==",
- "dev": true
- },
- "dedent": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
- "dev": true
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true
- },
- "detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "dev": true
- },
- "diff-sequences": {
- "version": "28.1.1",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz",
- "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==",
- "dev": true
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- }
- },
- "domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "dev": true,
- "requires": {
- "webidl-conversions": "^7.0.0"
- },
- "dependencies": {
- "webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true
- }
- }
- },
- "drbg.js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz",
- "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==",
- "optional": true,
- "requires": {
- "browserify-aes": "^1.0.6",
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4"
- }
- },
- "eccrypto": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz",
- "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==",
- "requires": {
- "acorn": "7.1.1",
- "elliptic": "6.5.4",
- "es6-promise": "4.2.8",
- "nan": "2.14.0",
- "secp256k1": "3.7.1"
- }
- },
- "electron-to-chromium": {
- "version": "1.4.215",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.215.tgz",
- "integrity": "sha512-vqZxT8C5mlDZ//hQFhneHmOLnj1LhbzxV0+I1yqHV8SB1Oo4Y5Ne9+qQhwHl7O1s9s9cRuo2l5CoLEHdhMTwZg=="
- },
- "elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
- "requires": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- }
- }
- },
- "emittery": {
- "version": "0.10.2",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz",
- "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "enhanced-resolve": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
- "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==",
- "requires": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- }
- },
- "envinfo": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
- "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
- "dev": true
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "es-module-lexer": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
- "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
- },
- "es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
- },
- "esbuild": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.1.tgz",
- "integrity": "sha512-zgxo2st9wSbdiR6rTo44l/L7ohttqdXFmhUi5tE6yWahgdBjCwZjBgIkm/gr/TcBTTIwyzd7em8WI37yZ+F2Mg==",
- "dev": true,
- "requires": {
- "@esbuild/linux-loong64": "0.15.1",
- "esbuild-android-64": "0.15.1",
- "esbuild-android-arm64": "0.15.1",
- "esbuild-darwin-64": "0.15.1",
- "esbuild-darwin-arm64": "0.15.1",
- "esbuild-freebsd-64": "0.15.1",
- "esbuild-freebsd-arm64": "0.15.1",
- "esbuild-linux-32": "0.15.1",
- "esbuild-linux-64": "0.15.1",
- "esbuild-linux-arm": "0.15.1",
- "esbuild-linux-arm64": "0.15.1",
- "esbuild-linux-mips64le": "0.15.1",
- "esbuild-linux-ppc64le": "0.15.1",
- "esbuild-linux-riscv64": "0.15.1",
- "esbuild-linux-s390x": "0.15.1",
- "esbuild-netbsd-64": "0.15.1",
- "esbuild-openbsd-64": "0.15.1",
- "esbuild-sunos-64": "0.15.1",
- "esbuild-windows-32": "0.15.1",
- "esbuild-windows-64": "0.15.1",
- "esbuild-windows-arm64": "0.15.1"
- }
- },
- "esbuild-android-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.1.tgz",
- "integrity": "sha512-q5kkJZsgLIkyh5e2ZJl4/kXKIueBKtjVMEihP9WCHadqhH6+F9qiycE7fBwUb/g2B15mYlmMBXjp8VmOT3J2gA==",
- "dev": true,
- "optional": true
- },
- "esbuild-android-arm64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.1.tgz",
- "integrity": "sha512-IQuZOzqMaFceLlKJJA27CXAdh+Mzh2ZblHMmcNIu/wxb6iX1zgYXlPWle62iHnmNCtfAux1mzQvmNsP9aLhemA==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.1.tgz",
- "integrity": "sha512-tyouWLyxwM/Y2fy/reuIvAvVB+KVQwuY9IVyV7LH5CGkJYxgtLb8xVEiwHFF8TG2uo9a2fqdgWffados4YA6Aw==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-arm64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.1.tgz",
- "integrity": "sha512-fb4V1eB1nir3zJwsS75itsbahkbM71XuqUDJVH8iyBLS8VIQD7MWWAAekea2l9keueGfsn0+wTyDluMT+kg8Cw==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.1.tgz",
- "integrity": "sha512-1KxEv/FUPlQtUSOjFCwR8FVNEskB5LmkbfW9FNJ7lhpG+4RsLiHWw4Sl2Y1/S+aKX7inyWxLA05zYV6XAzO8DA==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-arm64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.1.tgz",
- "integrity": "sha512-ueUMGSNrcuHwAadioxBdfOCO4+bTVeI68a147BQ/AFFIrf4XJNow4UXxguvQlZO+ZYaVz6EztaL6mHslKie2Rw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-32": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.1.tgz",
- "integrity": "sha512-K5WWcN2OZkZ6arFN3+hi1leKc0at9ukKGrXK9Ia94kQOesBphTSmsNK/Gy/AoVoIa0bWrHtxDijS9j9+dz86oA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.1.tgz",
- "integrity": "sha512-+haiVm83DfRi9x8M+GgR4f4LtSN8lnEIG8XMGK8/FYpkYNQiKb398GxeHp2yvoMpX8IPvmWCt215tAm5BBNfZQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.1.tgz",
- "integrity": "sha512-qjAkEDcFhVNYwG2xgaDg/hA8JABoMvjzAzE6g1K8kR516oNkKbVf6rN68UrsQaV1zq1qR3dbVeMv/Ul2bheppA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.1.tgz",
- "integrity": "sha512-TP0BCVZEVu/aoVaZe2sn1vpvo63j0LPiH8rvd7AegqOfTwb+mcxLxpgyYwkibafUCMxnIrKdUTsSJeusoMhcLg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-mips64le": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.1.tgz",
- "integrity": "sha512-8vzQzp+kwrn1Y+OjvfFaLS8uL8aR39WnAtxOHwjB72s9g18kHFlE8IQLS9dWDQgKpBSFq9kazsJE65dSVmz+VA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-ppc64le": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.1.tgz",
- "integrity": "sha512-QlWSOgC2Ad53Xvf7ZivXU7wM2y29YhQUrd50PjK0QJ3psh/eYSQx77PTe1iWm7Ovjiqv1wPKEAyC7CbyJUgriw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-riscv64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.1.tgz",
- "integrity": "sha512-/PRNgNsiwb7G2n3rB5WcHinCwKj0OqUmtu8cdakV4CLNWnFnfChEGEJX1x5n8RcGD3xPUlI5CgqFe0/oBcUh+A==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-s390x": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.1.tgz",
- "integrity": "sha512-TScRbO4mi4AUUXzIQ8sb6ZXhGkCb/PlJ82qFfBE6xxsioae/d6XaSdaha/+OUTvmPeoro3lNf3vwdw27v3wEgw==",
- "dev": true,
- "optional": true
- },
- "esbuild-netbsd-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.1.tgz",
- "integrity": "sha512-ES2pbK8QfsMZbdPkgjkLwWfnEGtPa0vYzVFLQn7GFgP+RiemY+ulH7WWQ8ezMt9rZl4XAR3y14yKLGX0gsBLaw==",
- "dev": true,
- "optional": true
- },
- "esbuild-openbsd-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.1.tgz",
- "integrity": "sha512-DxNWji11AxSEny4HzSKu21Skia8tEPQI1N+XO/RqVOJComOvsFLq+QeooKsK2caOsQIKl9mO14Hh+px+zFabMA==",
- "dev": true,
- "optional": true
- },
- "esbuild-sunos-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.1.tgz",
- "integrity": "sha512-lwZoWlv893qtQQx5H4QQCh2mcYzGbxEz09ESFdd4cHcUCfjb193bSAy6jPxW2efBx2fHEo2sw43TRtAkpCf+XQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-32": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.1.tgz",
- "integrity": "sha512-jEFz8DxP+Hh67fk9XMoyLUqPjjoCT6m4bnl36aze0XpPZDuQm0SBDlG/ciOBCjzHDsu/MYUNwxVezvUT3sXh1A==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.1.tgz",
- "integrity": "sha512-bUetnfw4xXKBTOQx4sTzoENJVEdgAN29ZTLRtnMseRzsMO8pjObQMsRPpPL3Cstt6FJhj3k3uScHc5VnfC9QkA==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-arm64": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.1.tgz",
- "integrity": "sha512-oN0JMj7fQZOiqJ/f/wc8lkxjvWwj5Yz0ZhOeU90JFaPZAfafNnysi6GS95glY5uwLUUJz/RNc84cb0dK2qT89A==",
- "dev": true,
- "optional": true
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "escodegen": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
- "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
- "dev": true,
- "requires": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true
- }
- }
- },
- "eslint-plugin-prettier": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz",
- "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==",
- "requires": {
- "prettier-linter-helpers": "^1.0.0"
- }
- },
- "eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- }
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "requires": {
- "estraverse": "^5.2.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
- }
- }
- },
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
- },
- "estree-walker": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
- "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
- },
- "ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "requires": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- },
- "dependencies": {
- "secp256k1": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
- "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
- "requires": {
- "elliptic": "^6.5.4",
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
- }
- }
- }
- },
- "events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
- },
- "evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "requires": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- }
- },
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true
- },
- "expect": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz",
- "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==",
- "dev": true,
- "requires": {
- "@jest/expect-utils": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3"
- }
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-diff": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
- "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
- },
- "fast-glob": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
- "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "dependencies": {
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- }
- }
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "fastest-levenshtein": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
- "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
- "dev": true
- },
- "fastq": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
- "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "fb-watchman": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
- "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
- "dev": true,
- "requires": {
- "bser": "2.1.1"
- }
- },
- "file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
- },
- "globby": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz",
- "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==",
- "dev": true,
- "requires": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "requires": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- }
- },
- "hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "requires": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "requires": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
- "dev": true,
- "requires": {
- "whatwg-encoding": "^2.0.0"
- }
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "requires": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- }
- },
- "https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "requires": {
- "agent-base": "6",
- "debug": "4"
- }
- },
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true
- },
- "humanize-duration": {
- "version": "3.27.2",
- "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.2.tgz",
- "integrity": "sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg=="
- },
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- },
- "ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
- "dev": true
- },
- "import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "dev": true,
- "requires": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
- "dev": true,
- "requires": {
- "builtin-modules": "^3.3.0"
- }
- },
- "is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
- "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
- "dev": true
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true
- },
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true
- },
- "isomorphic-fetch": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz",
- "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==",
- "requires": {
- "node-fetch": "^2.6.1",
- "whatwg-fetch": "^3.4.1"
- }
- },
- "isomorphic-ws": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
- "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="
- },
- "istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
- "dev": true
- },
- "istanbul-lib-instrument": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz",
- "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- }
- },
- "istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- }
- },
- "istanbul-reports": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
- "dev": true,
- "requires": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- }
- },
- "jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz",
- "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==",
- "dev": true,
- "requires": {
- "@jest/core": "^28.1.3",
- "@jest/types": "^28.1.3",
- "import-local": "^3.0.2",
- "jest-cli": "^28.1.3"
- },
- "dependencies": {
- "jest-cli": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz",
- "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==",
- "dev": true,
- "requires": {
- "@jest/core": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "import-local": "^3.0.2",
- "jest-config": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "prompts": "^2.0.1",
- "yargs": "^17.3.1"
- }
- }
- }
- },
- "jest-changed-files": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz",
- "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==",
- "dev": true,
- "requires": {
- "execa": "^5.0.0",
- "p-limit": "^3.1.0"
- },
- "dependencies": {
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- }
- }
- },
- "jest-circus": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz",
- "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/expect": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^0.7.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^28.1.3",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "p-limit": "^3.1.0",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "dependencies": {
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "jest-config": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz",
- "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^28.1.3",
- "@jest/types": "^28.1.3",
- "babel-jest": "^28.1.3",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^28.1.3",
- "jest-environment-node": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-runner": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "jest-diff": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz",
- "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==",
- "dev": true,
- "requires": {
- "chalk": "^4.0.0",
- "diff-sequences": "^28.1.1",
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-docblock": {
- "version": "28.1.1",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz",
- "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==",
- "dev": true,
- "requires": {
- "detect-newline": "^3.0.0"
- }
- },
- "jest-each": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz",
- "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^28.0.2",
- "jest-util": "^28.1.3",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-environment-jsdom": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz",
- "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/fake-timers": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/jsdom": "^16.2.4",
- "@types/node": "*",
- "jest-mock": "^28.1.3",
- "jest-util": "^28.1.3",
- "jsdom": "^19.0.0"
- }
- },
- "jest-environment-node": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz",
- "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/fake-timers": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "jest-mock": "^28.1.3",
- "jest-util": "^28.1.3"
- }
- },
- "jest-get-type": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz",
- "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
- "dev": true
- },
- "jest-haste-map": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz",
- "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "fsevents": "^2.3.2",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^28.0.2",
- "jest-util": "^28.1.3",
- "jest-worker": "^28.1.3",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "dependencies": {
- "jest-worker": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
- "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- }
- }
- }
- },
- "jest-leak-detector": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz",
- "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==",
- "dev": true,
- "requires": {
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-matcher-utils": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz",
- "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==",
- "dev": true,
- "requires": {
- "chalk": "^4.0.0",
- "jest-diff": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-message-util": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz",
- "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^28.1.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "jest-mock": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz",
- "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/node": "*"
- }
- },
- "jest-pnp-resolver": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
- "dev": true
- },
- "jest-regex-util": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
- "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==",
- "dev": true
- },
- "jest-resolve": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz",
- "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==",
- "dev": true,
- "requires": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "resolve": "^1.20.0",
- "resolve.exports": "^1.1.0",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "jest-resolve-dependencies": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz",
- "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==",
- "dev": true,
- "requires": {
- "jest-regex-util": "^28.0.2",
- "jest-snapshot": "^28.1.3"
- }
- },
- "jest-runner": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz",
- "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==",
- "dev": true,
- "requires": {
- "@jest/console": "^28.1.3",
- "@jest/environment": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.10.2",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^28.1.1",
- "jest-environment-node": "^28.1.3",
- "jest-haste-map": "^28.1.3",
- "jest-leak-detector": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-resolve": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-watcher": "^28.1.3",
- "jest-worker": "^28.1.3",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "dependencies": {
- "jest-worker": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
- "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- }
- }
- },
- "jest-runtime": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz",
- "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/fake-timers": "^28.1.3",
- "@jest/globals": "^28.1.3",
- "@jest/source-map": "^28.1.2",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "execa": "^5.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-mock": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "jest-snapshot": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz",
- "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/traverse": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/babel__traverse": "^7.0.6",
- "@types/prettier": "^2.1.5",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^28.1.3",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-haste-map": "^28.1.3",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "natural-compare": "^1.4.0",
- "pretty-format": "^28.1.3",
- "semver": "^7.3.5"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "jest-util": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz",
- "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- }
- },
- "jest-validate": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz",
- "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^28.0.2",
- "leven": "^3.1.0",
- "pretty-format": "^28.1.3"
- },
- "dependencies": {
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- }
- }
- },
- "jest-watcher": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz",
- "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==",
- "dev": true,
- "requires": {
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.10.2",
- "jest-util": "^28.1.3",
- "string-length": "^4.0.1"
- }
- },
- "jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "requires": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- }
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "jsdom": {
- "version": "19.0.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz",
- "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==",
- "dev": true,
- "requires": {
- "abab": "^2.0.5",
- "acorn": "^8.5.0",
- "acorn-globals": "^6.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.1",
- "decimal.js": "^10.3.1",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.0",
- "parse5": "6.0.1",
- "saxes": "^5.0.1",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^4.0.0",
- "w3c-hr-time": "^1.0.2",
- "w3c-xmlserializer": "^3.0.0",
- "webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^10.0.0",
- "ws": "^8.2.3",
- "xml-name-validator": "^4.0.0"
- },
- "dependencies": {
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true
- },
- "tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.1"
- }
- },
- "webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true
- },
- "whatwg-url": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz",
- "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==",
- "dev": true,
- "requires": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- }
- },
- "ws": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
- "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
- "dev": true
- }
- }
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
- "dev": true
- },
- "keccak": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz",
- "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==",
- "requires": {
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0",
- "readable-stream": "^3.6.0"
- }
- },
- "key-encoder": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/key-encoder/-/key-encoder-2.0.3.tgz",
- "integrity": "sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==",
- "requires": {
- "@types/elliptic": "^6.4.9",
- "asn1.js": "^5.0.1",
- "bn.js": "^4.11.8",
- "elliptic": "^6.4.1"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- }
- }
- },
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true
- },
- "kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true
- },
- "leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true
- },
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- }
- },
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "requires": {
- "semver": "^6.0.0"
- }
- },
- "make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
- "makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dev": true,
- "requires": {
- "tmpl": "1.0.5"
- }
- },
- "md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "requires": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- }
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
- },
- "minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "mylas": {
- "version": "2.1.11",
- "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.11.tgz",
- "integrity": "sha512-krnPUl3n9/k52FGCltWMYcqp9SttxjRJEy0sWLk+g7mIa7wnZrmNSZ40Acx7ghzRSOsxt2rEqMbaq4jWlnTDKg==",
- "dev": true
- },
- "nan": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
- },
- "node-addon-api": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
- "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
- },
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-gyp-build": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz",
- "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg=="
- },
- "node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
- },
- "node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "requires": {
- "path-key": "^3.0.0"
- }
- },
- "nwsapi": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz",
- "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==",
- "dev": true
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
- "requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
- "pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "requires": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
- },
- "pirates": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
- },
- "plimit-lit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.3.0.tgz",
- "integrity": "sha512-63qOoSzggsjBHPVbaKeEtsO8oWTeyJxUfVRLkoc59pRkDiCCLvqn2tCgAkfbejrx+V5zJtlG2wqkk/Db6cwlVQ==",
- "dev": true,
- "requires": {
- "queue-lit": "^1.3.0"
- }
- },
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
- "dev": true
- },
- "prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
- "requires": {
- "fast-diff": "^1.1.2"
- }
- },
- "pretty-format": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz",
- "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
- "dev": true,
- "requires": {
- "@jest/schemas": "^28.1.3",
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true
- }
- }
- },
- "prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
- "requires": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- }
- },
- "psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
- },
- "queue-lit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.3.0.tgz",
- "integrity": "sha512-3HpQ7bD2ct56qPithPr5IzH2Oij3WVPcgevCJ+mI9HAfVJKCqQ2yiFYgb4AUkLfsCmmbVDy9luvE97Ztzr5eBg==",
- "dev": true
- },
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
- },
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
- "dev": true
- },
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
- "dev": true,
- "requires": {
- "resolve": "^1.9.0"
- }
- },
- "reflect-metadata": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
- "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true
- },
- "require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true
- },
- "resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "requires": {
- "resolve-from": "^5.0.0"
- }
- },
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
- },
- "resolve.exports": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz",
- "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==",
- "dev": true
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "requires": {
- "queue-microtask": "^1.2.2"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "saxes": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
- "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
- "dev": true,
- "requires": {
- "xmlchars": "^2.2.0"
- }
- },
- "schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
- "requires": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- }
- },
- "scrypt-js": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
- "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
- },
- "secp256k1": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz",
- "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==",
- "optional": true,
- "requires": {
- "bindings": "^1.5.0",
- "bip66": "^1.1.5",
- "bn.js": "^4.11.8",
- "create-hash": "^1.2.0",
- "drbg.js": "^1.0.1",
- "elliptic": "^6.4.1",
- "nan": "^2.14.0",
- "safe-buffer": "^5.1.2"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "optional": true
- }
- }
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
- "serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
- },
- "sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.2"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
- },
- "slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "stack-utils": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
- "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^2.0.0"
- },
- "dependencies": {
- "escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true
- }
- }
- },
- "strict-event-emitter-types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz",
- "integrity": "sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA=="
- },
- "string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dev": true,
- "requires": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
- },
- "strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "supports-hyperlinks": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
- "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
- },
- "symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true
- },
- "tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
- },
- "terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- }
- },
- "terser": {
- "version": "5.14.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
- "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
- "requires": {
- "@jridgewell/source-map": "^0.3.2",
- "acorn": "^8.5.0",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "dependencies": {
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
- }
- }
- },
- "terser-webpack-plugin": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz",
- "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==",
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.7",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.0",
- "terser": "^5.7.2"
- }
- },
- "test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "requires": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- }
- },
- "tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "tough-cookie": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
- "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
- "dev": true,
- "requires": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.1.2"
- }
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "ts-jest": {
- "version": "28.0.7",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.7.tgz",
- "integrity": "sha512-wWXCSmTwBVmdvWrOpYhal79bDpioDy4rTT+0vyUnE3ZzM7LOAAGG9NXwzkEL/a516rQEgnMmS/WKP9jBPCVJyA==",
- "dev": true,
- "requires": {
- "bs-logger": "0.x",
- "fast-json-stable-stringify": "2.x",
- "jest-util": "^28.0.0",
- "json5": "^2.2.1",
- "lodash.memoize": "4.x",
- "make-error": "1.x",
- "semver": "7.x",
- "yargs-parser": "^21.0.1"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "ts-loader": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.1.tgz",
- "integrity": "sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "enhanced-resolve": "^5.0.0",
- "micromatch": "^4.0.0",
- "semver": "^7.3.4"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "ts-results": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/ts-results/-/ts-results-3.3.0.tgz",
- "integrity": "sha512-FWqxGX2NHp5oCyaMd96o2y2uMQmSu8Dey6kvyuFdRJ2AzfmWo3kWa4UsPlCGlfQ/qu03m09ZZtppMoY8EMHuiA=="
- },
- "tsc-alias": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.7.0.tgz",
- "integrity": "sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg==",
- "dev": true,
- "requires": {
- "chokidar": "^3.5.3",
- "commander": "^9.0.0",
- "globby": "^11.0.4",
- "mylas": "^2.1.9",
- "normalize-path": "^3.0.0",
- "plimit-lit": "^1.2.6"
- },
- "dependencies": {
- "commander": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
- "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==",
- "dev": true
- },
- "globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "requires": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
- }
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
- },
- "tweetnacl-ts": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tweetnacl-ts/-/tweetnacl-ts-1.0.3.tgz",
- "integrity": "sha512-C5I/dWf6xjAXaCDlf84T4HvozU/8ycAlq5WRllF1hAeeq5390tfXD+bNas5bhEV0HMSOx8bsQYpLjPl8wfnEeQ==",
- "requires": {
- "tslib": "^1"
- }
- },
- "tweetnacl-util": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
- "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
- },
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2"
- }
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- },
- "type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true
- },
- "typedjson": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/typedjson/-/typedjson-1.8.0.tgz",
- "integrity": "sha512-taVJVGebQDagEmVc3Cu6vVVLkWLnxqPcTrkVgbpAsI02ZDDrnHy5zvt1JVqXv4/yztBgZAX1oR07+bkiusGJLQ==",
- "requires": {
- "tslib": "^2.0.1"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- }
- }
- },
- "typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "dev": true
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true
- },
- "update-browserslist-db": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
- "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "v8-to-istanbul": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
- "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0"
- }
- },
- "w3c-hr-time": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
- "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
- "dev": true,
- "requires": {
- "browser-process-hrtime": "^1.0.0"
- }
- },
- "w3c-xmlserializer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz",
- "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==",
- "dev": true,
- "requires": {
- "xml-name-validator": "^4.0.0"
- }
- },
- "walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dev": true,
- "requires": {
- "makeerror": "1.0.12"
- }
- },
- "watchpack": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
- "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
- "requires": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- }
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
- "requires": {
- "@types/eslint-scope": "^3.7.3",
- "@types/estree": "^0.0.51",
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/wasm-edit": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "acorn": "^8.7.1",
- "acorn-import-assertions": "^1.7.6",
- "browserslist": "^4.14.5",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.10.0",
- "es-module-lexer": "^0.9.0",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.9",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^3.1.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.1.3",
- "watchpack": "^2.4.0",
- "webpack-sources": "^3.2.3"
- },
- "dependencies": {
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
- }
- }
- },
- "webpack-cli": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz",
- "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==",
- "dev": true,
- "requires": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.2.0",
- "@webpack-cli/info": "^1.5.0",
- "@webpack-cli/serve": "^1.7.0",
- "colorette": "^2.0.14",
- "commander": "^7.0.0",
- "cross-spawn": "^7.0.3",
- "fastest-levenshtein": "^1.0.12",
- "import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
- "webpack-merge": "^5.7.3"
- },
- "dependencies": {
- "commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true
- }
- }
- },
- "webpack-merge": {
- "version": "5.8.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz",
- "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==",
- "dev": true,
- "requires": {
- "clone-deep": "^4.0.1",
- "wildcard": "^2.0.0"
- }
- },
- "webpack-node-externals": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz",
- "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==",
- "dev": true
- },
- "webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
- },
- "whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
- "dev": true,
- "requires": {
- "iconv-lite": "0.6.3"
- }
- },
- "whatwg-fetch": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
- "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
- },
- "whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "wildcard": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz",
- "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
- "dev": true
- },
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "write-file-atomic": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz",
- "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- }
- },
- "ws": {
- "version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
- },
- "xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
- "dev": true
- },
- "xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "yargs": {
- "version": "17.5.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.0.0"
- }
- },
- "yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true
- }
- }
-}
diff --git a/package.json b/package.json
index 885c510..13aaf7b 100644
--- a/package.json
+++ b/package.json
@@ -1,53 +1,82 @@
-{
- "name": "casperdash-utils",
- "version": "1.0.15",
- "description": "Casperdash utils",
- "private": false,
- "keywords": [
- "typescript"
- ],
- "main": "dist/lib.node.js",
- "types": "dist/index.d.ts",
- "scripts": {
- "prebuild": "npm run clean",
- "build": "webpack --config webpack.config.js",
- "build-all": "yarn clean && yarn build",
- "deploy": "yarn build-all && npm publish",
- "clean": "rimraf -r dist",
- "test": "jest"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/CasperDash/casperdash-utils.git"
- },
- "author": "CasperDash",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/CasperDash/casperdash-utils/issues"
- },
- "homepage": "https://github.com/CasperDash/casperdash-utils",
- "dependencies": {
- "@ethersproject/bytes": "^5.6.1",
- "blakejs": "^1.2.1",
- "casper-js-sdk": "^2.9.1",
- "webpack": "^5.74.0"
- },
- "devDependencies": {
- "@rollup/plugin-node-resolve": "^13.0.4",
- "@types/jest": "^28.1.6",
- "copy-webpack-plugin": "^11.0.0",
- "esbuild": "^0.15.0",
- "jest": "^28.1.3",
- "jest-environment-jsdom": "^28.1.3",
- "rimraf": "^3.0.2",
- "ts-jest": "^28.0.7",
- "ts-loader": "^9.3.1",
- "tsc-alias": "^1.3.9",
- "typescript": "^4.4.2",
- "webpack-cli": "^4.10.0",
- "webpack-node-externals": "^3.0.0"
- },
- "publishConfig": {
- "access": "public"
- }
-}
+{
+ "name": "root",
+ "version": "0.0.1",
+ "repository": {
+ "type": "git"
+ },
+ "author": "dev@casperdash.io",
+ "license": "MIT",
+ "scripts": {
+ "prepare": "husky install",
+ "lint": "eslint . --cache",
+ "lint:fix": "pnpm lint --fix",
+ "lint:format": "prettier --write",
+ "build": "pnpm -r --filter './packages/**' build",
+ "play": "pnpm --filter example-react dev",
+ "build:example": "pnpm --filter example-react build",
+ "dev": "pnpm -r --filter './packages/**' dev",
+ "changeset:release": "pnpm build && changeset publish",
+ "changeset:version": "changeset version && pnpm install --lockfile-only",
+ "docs:build": "pnpm -r --filter './docs' build",
+ "docs:export": "pnpm -r --filter './docs' export",
+ "docs:dev": "pnpm -r --filter './docs' dev",
+ "test": "vitest",
+ "test:coverage": "vitest run --coverage",
+ "test:run": "vitest run",
+ "test:typecheck": "vitest typecheck",
+ "test:ui": "vitest --ui",
+ "test:update": "vitest --update",
+ "typecheck": "tsc --noEmit",
+ "preinstall": "npx only-allow pnpm"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.22.20",
+ "@changesets/changelog-github": "^0.4.8",
+ "@changesets/cli": "^2.26.2",
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
+ "@typescript-eslint/parser": "^5.62.0",
+ "@vitest/coverage-v8": "^0.34.5",
+ "@vitest/ui": "^0.28.5",
+ "eslint": "^8.50.0",
+ "eslint-config-airbnb-typescript": "^17.1.0",
+ "eslint-config-prettier": "^8.10.0",
+ "eslint-plugin-import": "^2.28.1",
+ "eslint-plugin-prettier": "^4.2.1",
+ "eslint-plugin-sonar": "^0.9.2",
+ "husky": "^8.0.3",
+ "jsdom": "^20.0.3",
+ "lint-staged": "^13.3.0",
+ "prettier": "^2.8.8",
+ "semver": "^7.5.4",
+ "tsup": "^6.7.0",
+ "typescript": "^4.9.5",
+ "vite-tsconfig-paths": "^4.2.1",
+ "vitest": "^0.26.3"
+ },
+ "pnpm": {
+ "peerDependencyRules": {
+ "ignoreMissing": [
+ "eslint",
+ "prettier",
+ "react"
+ ]
+ }
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "pnpm lint"
+ }
+ },
+ "simple-git-hooks": {
+ "pre-commit": "pnpm lint"
+ },
+ "lint-staged": {
+ "*.{js,ts,tsx}": [
+ "pnpm lint:fix"
+ ],
+ "*.{json,md,mdx,yml}": [
+ "pnpm lint:format"
+ ]
+ },
+ "packageManager": "pnpm@7.18.2"
+}
diff --git a/packages/builder/.gitignore b/packages/builder/.gitignore
new file mode 100644
index 0000000..38156aa
--- /dev/null
+++ b/packages/builder/.gitignore
@@ -0,0 +1 @@
+keys
\ No newline at end of file
diff --git a/packages/builder/package.json b/packages/builder/package.json
new file mode 100644
index 0000000..a4e44f4
--- /dev/null
+++ b/packages/builder/package.json
@@ -0,0 +1,19 @@
+{
+ "name": "@casperdash/builder",
+ "version": "1.0.0",
+ "main": "index.js",
+ "license": "MIT",
+ "scripts": {
+ "flow:mkp-cep78": "ts-node ./src/workflows/marketplace-with-cep78.ts"
+ },
+ "dependencies": {
+ "@noble/hashes": "^1.3.2",
+ "@open-rpc/client-js": "1.8.1",
+ "casper-js-sdk": "2.15.0",
+ "contract-client": "0.0.5",
+ "ethers": "^4.0.47"
+ },
+ "devDependencies": {
+ "ts-node": "10.9.1"
+ }
+}
diff --git a/packages/builder/src/configs/default.ts b/packages/builder/src/configs/default.ts
new file mode 100644
index 0000000..bda3cd6
--- /dev/null
+++ b/packages/builder/src/configs/default.ts
@@ -0,0 +1,17 @@
+import { Keys } from "casper-js-sdk";
+import path from 'path';
+
+export const DEFAULT_CONFIGS = {
+ NODE_URL: 'http://76.91.193.251:7777',
+ NETWORK: 'casper-test',
+ SPECULATIVE_NODE_URL: 'http://76.91.193.251:7778/rpc',
+}
+
+export const OWNER_KEYS = Keys.Ed25519.parseKeyFiles(
+ path.join(__dirname, `./keys/owner_public.pem`),
+ path.join(__dirname, `./keys/owner_private.pem`)
+);
+
+export const BUYER_KEYS = Keys.Ed25519.loadKeyPairFromPrivateFile(
+ path.join(__dirname, `./keys/buyer_private.pem`)
+);
\ No newline at end of file
diff --git a/packages/builder/src/configs/index.ts b/packages/builder/src/configs/index.ts
new file mode 100644
index 0000000..4a45931
--- /dev/null
+++ b/packages/builder/src/configs/index.ts
@@ -0,0 +1 @@
+export { DEFAULT_CONFIGS as CONFIGS, OWNER_KEYS } from './default';
\ No newline at end of file
diff --git a/packages/builder/src/contract/base.ts b/packages/builder/src/contract/base.ts
new file mode 100644
index 0000000..d52638e
--- /dev/null
+++ b/packages/builder/src/contract/base.ts
@@ -0,0 +1,133 @@
+import { DeployUtil, Keys } from "casper-js-sdk";
+import { CONFIGS, OWNER_KEYS } from "../configs";
+import { Contract } from 'contract-client';
+import { getDeploy, runDeployFlow } from "../deployer";
+import Client, { HTTPTransport, RequestManager } from "@open-rpc/client-js";
+
+export const convertHashStrToHashBuff = (hashStr: string) => {
+ let hashHex = hashStr;
+ if (hashStr.startsWith("hash-")) {
+ hashHex = hashStr.slice(5);
+ }
+ return Buffer.from(hashHex, "hex");
+};
+
+export class BaseContract extends Contract {
+ public currentBuilded: DeployUtil.Deploy;
+ public caller: Keys.AsymmetricKey = OWNER_KEYS;
+ public network: string = CONFIGS.NETWORK;
+
+ constructor(
+ contractHash?: string,
+ contractPackageHash?: string,
+ network?: string
+ ) {
+ super(
+ contractHash,
+ contractPackageHash
+ );
+
+ if (network) {
+ this.network = network;
+ }
+ }
+
+ public setCaller(keys: Keys.AsymmetricKey) {
+ this.caller = keys;
+ }
+
+ public getCaller() {
+ return this.caller;
+ }
+
+ public async buildSessionWasmArgs(wasm: Uint8Array, args: any, networkFee = `${15_000_000_000}`) {
+ const result = this.callSessionWasm(
+ wasm,
+ args,
+ networkFee,
+ this.caller.publicKey,
+ this.network,
+ [this.caller]
+ );
+
+ this.currentBuilded = result;
+
+ return this.sendSafeDeploy(result);
+ }
+
+ public async buildEntryPointsArgs(entryPoint: string, args: any, networkFee = `${15_000_000_000}`) {
+ const result = this.callEntrypoint(
+ entryPoint,
+ args,
+ this.caller.publicKey,
+ this.network,
+ networkFee,
+ [this.caller]
+ );
+
+ this.currentBuilded = result;
+
+ return this.sendSafeDeploy(result);
+ }
+
+ public async speculativeDeploy(deployJson:any) {
+ // TODO: User casperClient.speculativeDeploy later after
+ const transport = new HTTPTransport(CONFIGS.SPECULATIVE_NODE_URL);
+ const requestManager = new RequestManager([transport]);
+
+ const client = new Client(requestManager);
+
+ const result = await client.request({
+ method: 'speculative_exec',
+ params: { ...deployJson },
+ });
+
+ return result;
+ }
+
+ public async deploy(deploy: DeployUtil.Deploy, isWaitting = true) {
+ const deployHash = await deploy.send(CONFIGS.NODE_URL!);
+
+ console.log("...... Deploy hash: ", deployHash);
+ console.log("...... Waiting for the deploy...");
+ if (isWaitting) {
+ await getDeploy(CONFIGS.NODE_URL!, deployHash);
+ }
+
+ console.log(`...... Deploy ${deployHash} succedeed`);
+ };
+
+ public async sendDeploy() {
+ return runDeployFlow(this.currentBuilded);
+ }
+
+ public async sendLatestSpeculativeDeploy() {
+ return this.sendSpeculativeDeploy(this.currentBuilded);
+ }
+
+ public async sendSpeculativeDeploy(deploy: DeployUtil.Deploy) {
+ const deployJson = DeployUtil.deployToJson(deploy);
+
+ return this.speculativeDeploy(deployJson);
+ }
+
+ public async speculativelyDeployThrow(deploy: DeployUtil.Deploy) {
+ const result = await this.sendSpeculativeDeploy(deploy);
+
+ const { execution_result } = result;
+
+ if (execution_result.Success) {
+ return execution_result.Success;
+ }
+
+ console.log("...... Error: ", execution_result.Failure);
+
+ throw new Error(execution_result.Failure.error_message);
+ }
+
+ public async sendSafeDeploy(deploy: DeployUtil.Deploy) {
+ await this.speculativelyDeployThrow(deploy);
+
+ return this.sendDeploy();
+ }
+}
\ No newline at end of file
diff --git a/packages/builder/src/contract/cep78.contract.ts b/packages/builder/src/contract/cep78.contract.ts
new file mode 100644
index 0000000..9856fc7
--- /dev/null
+++ b/packages/builder/src/contract/cep78.contract.ts
@@ -0,0 +1,47 @@
+import { CLKeyParameters, CLValueBuilder, RuntimeArgs } from "casper-js-sdk";
+import { BaseContract } from "./base";
+
+export class Cep78Contract extends BaseContract {
+ public async registerTokenOwner(
+ {
+ tokenOwner,
+ }: {
+ tokenOwner: CLKeyParameters;
+ }
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_owner: CLValueBuilder.key(
+ tokenOwner
+ ),
+ });
+
+ return this.buildEntryPointsArgs(
+ 'register_token_owner',
+ runtimeArgs,
+ String(5_000_000_000)
+ );
+ }
+
+ public async approve(
+ {
+ operator,
+ tokenId
+ }
+ : {
+ operator: CLKeyParameters;
+ tokenId: number;
+ }) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ operator: CLValueBuilder.key(
+ operator
+ ),
+ token_id: CLValueBuilder.u64(tokenId),
+ });
+
+ return this.buildEntryPointsArgs(
+ 'approve',
+ runtimeArgs,
+ String(5_000_000_000)
+ );
+ }
+}
\ No newline at end of file
diff --git a/packages/builder/src/contract/marketplace.contract.ts b/packages/builder/src/contract/marketplace.contract.ts
new file mode 100644
index 0000000..748b0cc
--- /dev/null
+++ b/packages/builder/src/contract/marketplace.contract.ts
@@ -0,0 +1,95 @@
+import { CLValueBuilder, RuntimeArgs } from 'casper-js-sdk';
+import { BaseContract } from './base';
+import { contractHashToByteArray } from 'contract-client';
+import { hexToBytes } from '@noble/hashes/utils';
+
+import BuyItemWasm from '../wasm/buy_item.wasm';
+
+export type InstallArgs = {
+ collectionName: string;
+ collectionSymbol: string;
+ totalTokenSupply: string;
+};
+
+class ContractUtils {
+ public static contractToCLByteArray(hash: string) {
+ return CLValueBuilder.byteArray(this.contractToByteArray(hash));
+ }
+
+ public static contractToByteArray(hash: string) {
+ const hashOnly = hash.replace('hash-', '').replace('contract-', '');
+ return hexToBytes(hashOnly);
+ }
+ }
+
+export class MarketplaceContract extends BaseContract {
+ public async install(
+ wasm: Uint8Array,
+ args: InstallArgs,
+ networkFee = `${15_000_000_000}`
+
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ collection_name: CLValueBuilder.string(args.collectionName),
+ collection_symbol: CLValueBuilder.string(args.collectionSymbol),
+ total_token_supply: CLValueBuilder.string(args.totalTokenSupply),
+ });
+
+ return this.buildSessionWasmArgs(
+ wasm,
+ runtimeArgs,
+ networkFee
+ );
+ }
+
+ public async listItem (
+ {
+ tokenContractHash,
+ tokenId,
+ amount,
+ }: {
+ tokenContractHash: string;
+ tokenId: string;
+ amount: number;
+ }
+ ) {
+ const args = RuntimeArgs.fromMap({
+ token: CLValueBuilder.byteArray(
+ contractHashToByteArray(tokenContractHash)
+ ),
+ token_id: CLValueBuilder.string(tokenId),
+ amount: CLValueBuilder.u512(amount),
+ })
+
+ return this.buildEntryPointsArgs(
+ 'list_item',
+ args,
+ );
+ }
+
+ public async buyItem(
+ {
+ tokenContractHash,
+ tokenId,
+ amount,
+ }: {
+ tokenContractHash: string;
+ tokenId: string;
+ amount: number;
+ }
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ market: ContractUtils.contractToCLByteArray(this.contractHash!),
+ token: ContractUtils.contractToCLByteArray(tokenContractHash),
+ token_id: CLValueBuilder.string(tokenId),
+ amount: CLValueBuilder.u512(amount),
+ });
+
+
+ return this.buildSessionWasmArgs(
+ BuyItemWasm,
+ runtimeArgs,
+ String(33010427510)
+ )
+ }
+}
\ No newline at end of file
diff --git a/packages/builder/src/deployer/index.ts b/packages/builder/src/deployer/index.ts
new file mode 100644
index 0000000..15fa19f
--- /dev/null
+++ b/packages/builder/src/deployer/index.ts
@@ -0,0 +1,61 @@
+import { CasperClient, DeployUtil } from "casper-js-sdk";
+import { CONFIGS } from "../configs";
+import { RequestManager, HTTPTransport, Client } from '@open-rpc/client-js';
+
+export const sleep = (ms: number) => {
+ return new Promise((resolve) => setTimeout(resolve, ms));
+};
+
+export const getDeploy = async (nodeURL: string, deployHash: string) => {
+ const client = new CasperClient(nodeURL);
+ let i = 300;
+ while (i !== 0) {
+ const [deploy, raw] = await client.getDeploy(deployHash);
+ if (raw.execution_results.length !== 0) {
+ // @ts-ignore
+ if (raw.execution_results[0].result.Success) {
+ return deploy;
+ } else {
+ // @ts-ignore
+ throw Error(
+ "Contract execution: " +
+ // @ts-ignore
+ raw.execution_results[0].result.Failure.error_message
+ );
+ }
+ } else {
+ i--;
+ await sleep(1000);
+ continue;
+ }
+ }
+ throw Error("Timeout after " + i + "s. Something's wrong");
+ };
+
+export const runDeployFlow = async (deploy: DeployUtil.Deploy, isWaitting = true) => {
+ const deployHash = await deploy.send(CONFIGS.NODE_URL!);
+
+ console.log("...... Deploy hash: ", deployHash);
+ console.log("...... Waiting for the deploy...");
+ if (isWaitting) {
+ await getDeploy(CONFIGS.NODE_URL!, deployHash);
+ }
+
+
+ console.log(`...... Deploy ${deployHash} succedeed`);
+};
+
+export const speculativeDeploy = async (deployJson:any) => {
+ // TODO: User casperClient.speculativeDeploy later after
+ const transport = new HTTPTransport(CONFIGS.SPECULATIVE_NODE_URL);
+ const requestManager = new RequestManager([transport]);
+
+ const client = new Client(requestManager);
+
+ const result = await client.request({
+ method: 'speculative_exec',
+ params: { ...deployJson },
+ });
+
+ return result;
+}
\ No newline at end of file
diff --git a/packages/builder/src/scripts/marketplace/approve.ts b/packages/builder/src/scripts/marketplace/approve.ts
new file mode 100644
index 0000000..a69f739
--- /dev/null
+++ b/packages/builder/src/scripts/marketplace/approve.ts
@@ -0,0 +1,29 @@
+import { MarketplaceContract } from "../../contract/marketplace.contract";
+import { CLValueBuilder, RuntimeArgs } from 'casper-js-sdk';
+import { contractHashToByteArray } from 'contract-client';
+
+const main = async () => {
+ const marketplaceContract = new MarketplaceContract(
+ 'hash-89da76216016ec4c5e224968fd6df961bf33da016174966b2bbc3e642d89ad79'
+ );
+
+ const args = RuntimeArgs.fromMap({
+ spender: CLValueBuilder.key(
+ CLValueBuilder.byteArray(
+ contractHashToByteArray('fa43a585efc7372e63833299ff64100928d23ec17ed62020282448a29f68afc0')
+ ),
+ ),
+ token_ids: CLValueBuilder.list([CLValueBuilder.u256(104)]),
+ })
+
+ marketplaceContract.buildEntryPointsArgs(
+ 'approve',
+ args,
+ );
+
+ const result = await marketplaceContract.sendLatestSpeculativeDeploy();
+
+ console.log("...... Result: ", result);
+}
+
+main();
\ No newline at end of file
diff --git a/packages/builder/src/scripts/marketplace/list-item-wasm.ts b/packages/builder/src/scripts/marketplace/list-item-wasm.ts
new file mode 100644
index 0000000..0adf1ca
--- /dev/null
+++ b/packages/builder/src/scripts/marketplace/list-item-wasm.ts
@@ -0,0 +1,44 @@
+
+import { MarketplaceContract } from "../../contract/marketplace.contract";
+import { CLValueBuilder, RuntimeArgs } from 'casper-js-sdk';
+import { contractHashToByteArray } from 'contract-client';
+import wasm from '../../wasm/list_item.wasm';
+
+const main = async () => {
+ const marketplaceContract = new MarketplaceContract(
+ 'hash-291038747f38bbdb4f21c4e6374578ceb45a4c187cca36113d4b64028ed1e508'
+ );
+
+ const args = RuntimeArgs.fromMap({
+ nft_contract_hash: CLValueBuilder.key(
+ CLValueBuilder.byteArray(
+ contractHashToByteArray('89da76216016ec4c5e224968fd6df961bf33da016174966b2bbc3e642d89ad79')
+ ),
+ ),
+ market_contract_hash: CLValueBuilder.key(
+ CLValueBuilder.byteArray(
+ contractHashToByteArray('291038747f38bbdb4f21c4e6374578ceb45a4c187cca36113d4b64028ed1e508')
+ ),
+ ),
+ spender: CLValueBuilder.key(
+ CLValueBuilder.byteArray(
+ contractHashToByteArray('fa43a585efc7372e63833299ff64100928d23ec17ed62020282448a29f68afc0')
+ ),
+ ),
+ token_id: CLValueBuilder.string('141'),
+ amount: CLValueBuilder.u512(12_000_000_000),
+ })
+
+
+ marketplaceContract.buildSessionWasmArgs(
+ wasm,
+ args,
+ `${15_000_000_000}`,
+ );
+
+ const result = await marketplaceContract.sendLatestSpeculativeDeploy();
+
+ console.log("...... Result: ", result);
+}
+
+main();
\ No newline at end of file
diff --git a/packages/builder/src/scripts/marketplace/list-item.ts b/packages/builder/src/scripts/marketplace/list-item.ts
new file mode 100644
index 0000000..0d9d7b6
--- /dev/null
+++ b/packages/builder/src/scripts/marketplace/list-item.ts
@@ -0,0 +1,22 @@
+
+import { MarketplaceContract } from "../../contract/marketplace.contract";
+
+const main = async () => {
+ const marketplaceContract = new MarketplaceContract(
+ 'hash-03a714464b106f79db74110c0d7f66766e74354193189d77bc5d18cf8e89a000'
+ );
+
+ marketplaceContract.listItem(
+ {
+ tokenContractHash: 'a1cce80d2f418d4e8c64b1d89c7b06c822f903b1d3a50548fa4f048c183671ee',
+ tokenId: '59',
+ amount: 12_000_000_000,
+ }
+ );
+
+ const result = await marketplaceContract.sendLatestSpeculativeDeploy();
+
+ console.log("...... Result: ", result);
+}
+
+main();
\ No newline at end of file
diff --git a/packages/builder/src/wasm/buy_item.wasm.ts b/packages/builder/src/wasm/buy_item.wasm.ts
new file mode 100644
index 0000000..40bd101
--- /dev/null
+++ b/packages/builder/src/wasm/buy_item.wasm.ts
@@ -0,0 +1,6 @@
+/* Autogenerated file. Do not edit manually. */
+/* eslint-disable */
+ /* prettier-ignore */
+ const base64 = "AGFzbQEAAAABZw5gA39/fwF/YAJ/fwF/YAR/f39/AGABfwF/YAR/f39/AX9gB39/f39/f38Bf2ABfwBgCH9/f39/f39/AX9gA39/fwBgAn9/AGAAAGALf39/f39/f39/f38Bf2AAAX9gBX9/f39/AX8CzwEHA2VudhRjYXNwZXJfZ2V0X25hbWVkX2FyZwAEA2VudhRjYXNwZXJfY2FsbF9jb250cmFjdAAFA2VudhVjYXNwZXJfZ2V0X21haW5fcHVyc2UABgNlbnYjY2FzcGVyX3RyYW5zZmVyX2Zyb21fcHVyc2VfdG9fcHVyc2UABwNlbnYNY2FzcGVyX3JldmVydAAGA2VudhljYXNwZXJfZ2V0X25hbWVkX2FyZ19zaXplAAADZW52F2Nhc3Blcl9yZWFkX2hvc3RfYnVmZmVyAAADb24ICAEDAwkJCAYKCgkDCQkJCAkJCAEGBggJCQkJCgIJCQgGCAkJCQkJBgMIBgYGCQkJAwEJBgELAwIMAwENAQkIBgIAAQEBAQEDAQYGCQEGAQ0NCQEADQEBAAEBAAEIBgACAQMNDQYDAgIBAAAAAAQFAXABHR0FAwEAEQYZA38BQYCAwAALfwBBxJHAAAt/AEHQkcAACwcyBQZtZW1vcnkCAARjYWxsACMDb29tADcKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIJIgEAQQELHG1pVDJCHFBRSjxES0xOUk1jVVtdXl9gYWdob3AKk8ABbt0GAwV/An4CfyOAgICAAEHQAWsiAySAgICAACADQQhqIAEgAhCIgICAAAJAAkACQAJAIAMoAgggAygCDBCJgICAACIEDQBBACEFIANBADYCGCADQoCAgIAQNwMQQQEhBAwBCwJAAkAgASACIAQQioCAgAAiBSAEEICAgIAAEIuAgIAAIgJB/wFxQSxHDQAgBCECDAELIAQgBRCMgICAAEEAIQULIAMgBDYCqAEgAyAFNgKkASADIAI6AKABIAMgAkEYdjoAowEgAyACQQh2OwChASADQRBqIANBoAFqEI2AgIAAIAMoAhAhBSADKAIUIQQgAygCGCICQR9LDQELQQAhBkEAIQIMAQsgA0GgAWpBEGoiASAEQRFqKQAANwMAIANBoAFqQRdqIgcgBEEYaikAADcAACADQYABakEIaiAEQQlqKQAAIgg3AwAgA0GAAWpBEGoiBiABKQMANwMAIANBgAFqQRdqIgEgBykAADcAACADIAQpAAEiCTcDgAEgBC0AACEHIANBoAFqQQlqIgogCDcAACADQaABakERaiILIAYpAwA3AAAgA0GgAWpBGGoiBiABKQAANwAAIAMgBzoAoAEgAyAJNwChASADQaABakEgaiAEQSBqIAJBYGoQjoCAgAAgA0HAAGpBCGogCikAADcDACADQcAAakEQaiALKQAANwMAIANBwABqQRdqIAYpAAA3AAAgAyADKQChATcDQCADLQCgASEGIAMoAsABIQcgAygCxAEhAiADKALIASEBCyAFIAQQjICAgAACQAJAIAJFDQAgA0HgAGpBF2oiBSADQcAAakEXaikAADcAACADQeAAakEQaiIKIANBwABqQRBqKQMANwMAIANB4ABqQQhqIgsgA0HAAGpBCGopAwA3AwAgAyADKQNANwNgQQIhBAJAIAENACADQSBqQRdqIAUpAAA3AAAgA0EgakEQaiAKKQMANwMAIANBIGpBCGogCykDADcDACADIAMpA2A3AyAgBiEECyAHIAIQjICAgAAgAUUNAQtBAhCPgICAAAALIAAgBDoAACAAIAMpAyA3AAEgAEEJaiADQShqKQMANwAAIABBEWogA0EwaikDADcAACAAQRhqIANBN2opAAA3AAAgA0HQAWokgICAgAALfQEDfyOAgICAAEEQayIDJICAgIAAQQAhBCADQQA2AgwCQAJAIAEgAiADQQxqEIWAgIAAEIuAgIAAIgFB/wFxIgJBAUYNACACQSxHDQFBASEEIAMoAgwhBQsgACAFNgIEIAAgBDYCACADQRBqJICAgIAADwsgARCPgICAAAALFAACQCAADQBBARCPgICAAAALIAELQQEBfyAAQSIgAEF/SiIBGyEAAkACQCABRQ0AIABBARC5gICAACIARQ0BIAAPCyAAEI+AgIAAAAtBExCPgICAAAALwAQBBH9BACEBQSwhAkEAIQNBACEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAOKCkoAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUnC0EBIQQM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AjQQjICAgAAgBkFYaiEGIAVBKGohBQwACwsgAkEANgKUASACIAQ6AJABDAELIAJBADYClAEgAiAEOgCQASACKAIgIAIoAiQQjICAgAALIAEoAghBKGwhBSABKAIEIgYhBAJAA0AgBUUNASAEKAIAIARBBGooAgAQjICAgAAgBEEMahCdgICAACAEQRxqKAIAIARBIGooAgAQjICAgAAgBUFYaiEFIARBKGohBAwACwsCQCABKAIAIgRFDQAgBiAEQShsQQQQnoCAgAALIAJB4ABqIAJBkAFqEJ+AgIAAIAAgAikDYDcCCCAAIAIpAmQ3AgAgAEEQaiACQegAaigCADYCACACQaABaiSAgICAAAsfACAAKAIIIABBDGoQz4CAgAAgAEEkaigCAGpqQQhqC18BAX8CQAJAIAENAEEBIQIMAQsCQCABQX9KDQAgAEEANgIEIABBAzoAAA8LIAFBARC5gICAACICDQAgAEEANgIEIABBAzoAAA8LIABBADYCCCAAIAI2AgQgACABNgIAC28BAn8jgICAgABBEGsiAiSAgICAAAJAAkAgAQ0AQQEhAwwBCwJAIAFBAEgNACACQQhqIAEgAUF/c0EfdhDkgICAACACKAIIIgMNAQAACxCQgICAAAALIAAgAzYCBCAAIAE2AgAgAkEQaiSAgICAAAtDAQN/IAEoAgQhAiAAIAEoAggiAxC2gICAACAAKAIEIAAoAggiBGogAiADEPSAgIAAGiABQQA2AgggACAEIANqNgIICw4AIAAgASACEJqAgIAAC0MBA38gASgCBCECIAAgASgCCCIDELaAgIAAIAAoAgQgACgCCCIEaiACIAMQ9ICAgAAaIAFBADYCCCAAIAQgA2o2AggL0gIBAn8jgICAgABBEGsiAiSAgICAAAJAAkACQAJAAkACQAJAAkACQCABKAIAIgMOFwgICAgICAgICAgICAgIAAECAwQFBgcICAsgACABQQRqEL6AgIAANgIEQQ4hAwwHCyAAIAFBBGoQvoCAgAA2AgRBDyEDDAYLIAAgASgCBDYCBEEQIQMMBQsgAUEEahC+gICAACEDIAAgAUEIahC+gICAADYCCCAAIAM2AgRBESEDDAQLIAFBBGoQvoCAgAAhAyAAIAFBCGoQvoCAgAA2AgggACADNgIEQRIhAwwDCyAAQQRqQQEgAUEIaiABQQRqEL+AgIAAQRMhAwwCCyACQQhqQQIgAUEMaiABQQRqEL+AgIAAIAAgAikDCDcCBEEUIQMMAQsgAEEEakEDIAFBEGogAUEEahC/gICAAEEVIQMLIAAgAzYCACACQRBqJICAgIAAC8EBAQR/I4CAgIAAQSBrIgMkgICAgAAgA0EQaiACQQRqEJSAgIAAIAMtABAhBAJAAkAgAygCFCIFRQ0AIANBCGoiBiADKAIYNgIAIAMgAy0AEzoAAyADIAMvABE7AAEgAyAFNgIEIAMgBDoAACADIAI2AhAgAyADQRBqQQQQxoCAgAAgAyABIAIQxoCAgAAgAEEIaiAGKAIANgIAIAAgAykDADcCAAwBCyAAQQA2AgQgACAEOgAACyADQSBqJICAgIAAC4sGAQN/I4CAgIAAQSBrIgIkgICAgAADfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOFwABAgMEBQYHCAkKCwwNDg8XEBUREhMUAAsgAUEAENOAgIAADBcLIAFBARDTgICAAAwWCyABQQIQ04CAgAAMFQsgAUEDENOAgIAADBQLIAFBBBDTgICAAAwTC0EFIQMgAUEFENOAgIAADBMLIAFBBhDTgICAAAwRCyABQQcQ04CAgAAMEAsgAUEIENOAgIAADA8LIAFBCRDTgICAAAwOCyABQQoQ04CAgAAMDQsgAUELENOAgIAADAwLIAFBDBDTgICAAAwLCyABQRYQ04CAgAAMCgsgAUENENOAgIAADAsLIAFBDhDTgICAAAwKCyABQRAQ04CAgAAgACgCBCABEJuAgIAAQf8BcSIDQQVHDQgMBQsgAUESENOAgIAAIABBBGohBEEAIQADQCAAQQRGDQcgBCAAaiEDIABBBGohACADKAIAIAEQm4CAgABB/wFxIgNBBUYNAAwICwsgAUETENOAgIAAIABBBGohBEEAIQADQCAAQQhGDQYgBCAAaiEDIABBBGohACADKAIAIAEQm4CAgABB/wFxIgNBBUYNAAwHCwsgAUEUENOAgIAAQQQhBANAIARBEEYNBSAAIARqIQMgBEEEaiEEIAMoAgAgARCbgICAAEH/AXEiA0EFRg0ADAYLCyABQRUQ04CAgAAMAwsgAUERENOAgIAAIAAoAgQgARCbgICAAEH/AXEiA0EFRw0DCyAAQQhqIQAMBAsgAUEPENOAgIAAIAJBEGogACgCBBDFgICAACACLQAQIQMgAigCFCIARQ0BIAIgAi0AEzoAAyACIAIvABE7AAEgAiACKAIYNgIIIAIgADYCBCACIAM6AAAgASACEJiAgIAAIAIoAgAgAigCBBCMgICAAAtBBSEDCyACQSBqJICAgIAAIAMPCyAAQQRqIQALIAAoAgAhAAwACwvIAQEBfwJAAkACQAJAAkACQAJAAkACQCAAKAIAQXJqDggAAQgCAwQFBggLIABBBGohAQwGCyAAQQRqIQEMBQsgAEEEahC7gICAACAAQQhqIQEMBAsgAEEEahC7gICAACAAQQhqIQEMAwsgAEEEaiEBDAILIABBBGohAEEAIQEDQCABQQhGDQMgACABahC7gICAACABQQRqIQEMAAsLQQQhAQNAIAFBEEYNAiAAIAFqELuAgIAAIAFBBGohAQwACwsgARC7gICAAAsLyAEBAX8CQAJAAkACQAJAAkACQAJAAkAgACgCAEFyag4IAAEIAgMEBQYICyAAQQRqIQEMBgsgAEEEaiEBDAULIABBBGoQx4CAgAAgAEEIaiEBDAQLIABBBGoQx4CAgAAgAEEIaiEBDAMLIABBBGohAQwCCyAAQQRqIQBBACEBA0AgAUEIRg0DIAAgAWoQx4CAgAAgAUEEaiEBDAALC0EEIQEDQCABQRBGDQIgACABahDHgICAACABQQRqIQEMAAsLIAEQx4CAgAALC7oBAQF/I4CAgIAAQRBrIgMkgICAgAACQAJAIAJBBU8NACABQQNqQQJ2QX9qIgJB/wFLDQAgA0HAkcCAADYCBCADIAJBAnRBwInAgABqIgIoAgA2AgwgACADQQxqIANBBGpBgYCAgAAQ7oCAgAAgAiADKAIMNgIADAELIANBACgCwJHAgAA2AgggACADQQhqQdSIwIAAQYKAgIAAEO6AgIAAQQAgAygCCDYCwJHAgAALIANBEGokgICAgAALOAACQCABKAIEDQAgAS0AABCwgICAABCPgICAAAALIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgALRwEBfwJAIAAoAggiAiAAKAIARw0AIAAgAhChgICAACAAKAIIIQILIAAoAgQgAkEobGogAUEoEPSAgIAAGiAAIAJBAWo2AggL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AWogAEH4A2ogAWopAAA3AwAgAUEIaiEBDAALCyAALQCoAyEBIABB6AJqIABBqANqQQFyIg5BPxD0gICAABogACABOgCoAyAOIABB6AJqQT8Q9ICAgAAhASAAQegDaiAGIAkQjoCAgAAgAC0AqAMhCSAAQegBaiABQT8Q9ICAgAAaIAA1AvADIRAgACgC7AMhASAAKALoAyEODAMLQQIQj4CAgAAACyANIA4QpYCAgAAAC0EAIQFBACEJCyALIAIQjICAgAACQAJAAkAgAUUNACAAQagCaiAAQegBakE/EPSAgIAAGgJAIBBQRQ0AQQAgCCAEGyEIQQIgByAEG0H/AXEhByAAQagBaiAAQagCakE/EPSAgIAAGiAOIAEQjICAgAAgAEH4A2ogAEGoAWpBPxD0gICAABogAEEANgLwASAAQoCAgIDAADcD6AEgAEGoA2pBGGogAEHYAGpBGGopAwA3AwAgAEGoA2pBEGogAEHYAGpBEGopAwA3AwAgAEGoA2pBCGogAEHYAGpBCGopAwA3AwAgACAAKQNYNwOoAyAAQegCaiAAQagDahCmgICAACAAQegCakEMaigCACECIAAoAvACIQsgACgC6AIhASAAKALsAiEEIABBqANqQamAwIAAQQ8Qp4CAgAAgAEGoA2pBDGoiDigCACENIAAoArADIQYgACgCrAMhDCAAKAKoAyEKIABBqANqIABB6AFqEJKAgIAAIA4oAgAhDiAAKAKwAyEPIAEgBCAKIAwgACgCqAMgACgCrAMgAEGoA2oQgYCAgAAQi4CAgAAQqICAgABBASEEAkAgACgCqAMiAUUNACAAQagDaiABEIqAgIAAIgQgARCpgICAACAALwGoAyAAKAGqAxCigICAAAsgCCAHciEMIAAgATYC8AIgACAENgLsAiAAIAE2AugCIABBqANqIABB6AJqEKqAgIAAIABBqAJqIABBqANqEKuAgIAAIA8gDhCMgICAACAGIA0QjICAgAAgCyACEIyAgIAAQSEQioCAgAAiARCCgICAACAAQSE2AvACIAAgATYC7AIgAEEhNgLoAiAAQagDaiAAQegCahCqgICAACAAQegCaiAAQagDahCrgICAACAAQagDaiAAQegCakEhEPSAgIAAGiAAQegBaiAAQagDahCsgICAACAAQegBakEMaiIBKAIAIQggACgC6AEhAiAAKALsASELIAAoAvABIQ4gAEGoA2ogAEGoAmpBIRD0gICAABogAEHoAWogAEGoA2oQrICAgAAgASgCACENIAAoAugBIQYgACgC7AEhCiAAKALwASEPIAAgCToAqAMgAEGoA2pBAXIgAEH4A2pBPxD0gICAABogAEHoAWogAEGoA2oQrYCAgAAgAEGoAWogAEHoAWoQn4CAgAAgACgCrAEhBCAAKAKwASERIAAoAqgBIRIgAEEwakEJEJWAgIAAIAAoAjAhASAAKAI0IgdFDQIgACABOgDoASAAIAFBGHY6AOsBIAAgAUEIdjsA6QFBACEBIABBADYC8AEgACAHNgLsAQJAIAAoAugBDQAgAEHoAWpBABCugICAACAAKALsASEHIAAoAvABIQELIABB6AFqQQhqIhMgAUEBajYCACAHIAFqQQE6AAAgAEEoakEIEJWAgIAAIAAoAighASAAKAIsIgdCsemfBDcAACAAIAFBGHY6AKsDIAAgAUEIdjsAqQMgAEEINgKwAyAAIAc2AqwDIAAgAToAqAMgAEHoAWogAEGoA2oQmICAgAAgAEGoAWpBCGogEygCADYCACAAIAApA+gBNwOoASAAKAKoAyAAKAKsAxCMgICAAAwDCyAOIAEQjICAgAALQQIQj4CAgAAACyAAQQA2AqwBIAAgAToAqAELIABBqANqIABBqAFqEJ+AgIAAIAAoAqgDIQEgAiALIAYgCiAEIBEgACgCrAMiByAAKAKwAxCDgICAABCLgICAACECIAEgBxCMgICAACASIAQQjICAgAAgDyANEIyAgIAAIA4gCBCMgICAACACEKiAgIAAQRghCCAAQegBakEYaiAAQdgAakEYaikDADcDACAAQegBakEQaiAAQdgAakEQaikDADcDACAAQegBakEIaiAAQdgAakEIaikDADcDACAAIAApA1g3A+gBIABBADYCoAEgAEKAgICAwAA3A5gBIABBIGpBIBCVgICAACAAQfgAakEIaikDACEQIABB+ABqQRBqKQMAIRQgAEH4AGpBGGopAwAhFSAAKAIgIQQgACgCJCIBIAApA3g3AAAgAUEYaiAVNwAAIAFBEGogFDcAACABQQhqIBA3AAAgAEEYakEFEJWAgIAAIAAgACgCHCIHNgKsAyAAIAAoAhg2AqgDIAdBBGpBAC0AmoDAgAA6AAAgB0EAKACWgMCAADYAACAAQccDaiIHIARBGHY6AAAgAEG3A2oiAkEAOgAAIAAgBEEIdjsAxQMgAEEAOwC1AyAAQSA2AswDIAAgATYCyAMgACAEOgDEAyAAQSA2ArgDIABBEDoAtAMgAEEFNgKwAyAAQZgBaiAAQagDahCggICAACAAQRg2AugCIABB6AJqEK+AgIAAIABB6AJqIAMgBRCXgICAACAMIAMQjICAgAAgAC0A6AIhAQJAAkAgACgC7AIiBUUNACAAQaoBaiIEIAAtAOsCOgAAIAAgAC8A6QI7AagBIAAoAvACIQMgAEEQakEIEJWAgIAAIAAgACgCFCILNgKsAyAAIAAoAhA2AqgDIAtC9N6tq+bt17TkADcAACACQQA6AAAgByAELQAAOgAAIABBqANqQRhqIABB6AJqQQhqKAAANgIAIABBADsAtQMgAEEKOgC0AyAAQQg2ArADIAAgAToAxAMgACAALwGoATsAxQMgACADNgLMAyAAIAU2AsgDIAAgACkA6AI3A7gDIABBmAFqIABBqANqEKCAgIAADAELIAAgAToArANBFyEICyAAIAg2AqgDIABBqANqEK+AgIAAIAAgCToAqAMgAEGoA2pBAXIgAEH4A2pBPxD0gICAABogAEGoAWogAEGoA2oQrYCAgAAgAC0AqAEhAQJAAkAgACgCrAEiBEUNACAAQb4EaiIDIAAtAKsBOgAAIAAgAC8AqQE7AbwEIAAoArABIQkgAEEIakEGEJWAgIAAIAAgACgCDCIFNgLsAiAAIAAoAgg2AugCIAVBBGpBAC8Ap4DAgAA7AAAgBUEAKACjgMCAADYAACAAQfcCakEAOgAAIABBhwNqIAMtAAA6AABBGCEFIABBCDoA9AIgAEHoAmpBGGogAEGoAWpBCGooAAA2AgAgAEEAOwD1AiAAQQY2AvACIAAgAToAhAMgACAALwG8BDsAhQMgACAJNgKMAyAAIAQ2AogDIAAgACkAqAE3A/gCIABBmAFqIABB6AJqEKCAgIAADAELIAAgAToA7AJBFyEFCyAAIAU2AugCIABB6AJqEK+AgIAAIABBqAFqQQhqIABBmAFqQQhqKAIANgIAIAAgACkDmAE3A6gBIABBqANqQRhqIABB6AFqQRhqKQMANwMAIABBqANqQRBqIABB6AFqQRBqKQMANwMAIABBqANqQQhqIABB6AFqQQhqKQMANwMAIAAgACkD6AE3A6gDIABB6AJqIABBqANqEKaAgIAAIABB6AJqQQxqKAIAIQcgACgC8AIhCCAAKALoAiEBIAAoAuwCIQUgAEGoA2pBuIDAgABBCBCngICAACAAQagDakEMaiIEKAIAIQIgACgCsAMhCyAAKAKsAyEDIAAoAqgDIQkgAEGoA2ogAEGoAWoQkoCAgAAgBCgCACEOIAAoArADIQ0gASAFIAkgAyAAKAKoAyAAKAKsAyAAQagDahCBgICAABCLgICAABCogICAAAJAAkAgACgCqAMiAQ0AQQEhBQwBCyAAQagDaiABEIqAgIAAIgUgARCpgICAACAALwGoAyAAKAGqAxCigICAAAsgAEGoA2ogBSABEI6AgIAAIAAoAqwDIQQgASAFEIyAgIAAIAAtAKgDIQECQAJAAkAgBEUNACAAKAKwAyEFIAAvAKkDIAAtAKsDQRB0ckEIdCABciAEEIyAgIAAIAVFDQFBAiEBDAILIAFBBUcNAQsgDSAOEIyAgIAAIAsgAhCMgICAACAIIAcQjICAgAAgAEHABGokgICAgAAPCyABELCAgIAAEI+AgIAAAAsmAAJAIAEgA0sNACAAIAE2AgQgACACNgIADwsgASADELqAgIAAAAsJABCRgICAAAALvwEBA38jgICAgABBMGsiAiSAgICAACACQQhqQSAQlYCAgAAgAigCCCEDIAIoAgwiBCABKQAANwAAIARBGGogAUEYaikAADcAACAEQRBqIAFBEGopAAA3AAAgBEEIaiABQQhqKQAANwAAIAJBIDYCKCACIAQ2AiQgAiADNgIgIAJBEGogAkEgahCfgICAACAAIAIpAxA3AgggAEEQaiACQRBqQQhqKAIANgIAIAAgAikCFDcCACACQTBqJICAgIAAC2ABAX8jgICAgABBIGsiAySAgICAACADQRBqIAEgAhCagICAACADIANBEGoQn4CAgAAgACADKQMANwIIIABBEGogA0EIaigCADYCACAAIAMpAgQ3AgAgA0EgaiSAgICAAAsZAAJAIABB/wFxQSxGDQAgABCPgICAAAALC2cBAX8jgICAgABBEGsiAySAgICAAAJAAkAgASACIANBDGoQhoCAgAAQi4CAgAAiAkH/AXFBLEcNACAAIAMoAgw2AgQgAEEAOwEADAELIABBATsBACAAIAI2AQILIANBEGokgICAgAALnAUCCH8CfiOAgICAAEHAAWsiAiSAgICAACABQQRqKAIAIQMCQAJAAkAgASgCCCIEQSBJDQAgAkHwAGpBEGoiBSADQRFqKQAANwMAIAJB8ABqQRdqIgYgA0EYaikAADcAACACQagBaiADQQlqKQAANwMAIAJBoAFqQRBqIAUpAwA3AwAgAkGgAWpBF2ogBikAADcAACACIAMpAAE3A6ABAkACQCAEQWBqIgQNAEEAIQZBACEEDAELIARBf2ohByADQSBqIgRBAWohBiAELQAAIQQLQQEgBCAEQf8BcUEHSyIIGyAEIAYbIQUgBkUNASAIDQEgAy0AACEEIAJB0ABqQRdqIgggAkGgAWpBF2opAAA3AAAgAkHQAGpBEGoiCSACQaABakEQaikDADcDACACQdAAakEIaiACQaABakEIaikDACIKNwMAIAIgAikDoAEiCzcDUCACQfkAaiAKNwAAIAJBgQFqIAkpAwA3AAAgAkGIAWogCCkAADcAACACIAQ6AHAgAiALNwBxIAIgBToAkAEgAkGUAWogBiAHEI6AgIAAIAItAHAhBSACQQpqIAJB8ABqQQFyQSMQ9ICAgAAaIAIoApwBIQYgAigCmAEhBCACKAKUASEIDAILQQAhBQtBACEECyABKAIAIAMQjICAgAACQAJAAkACQCAERQ0AIAJBLWogAkEKakEjEPSAgIAAGiAGRQ0BIABBAjoAAUEBIQMMAgsgAEEBOgAAIAAgBToAAQwCCyAAIAU6AAEgAEECaiACKQAtNwAAIABBGmogAkHFAGopAAA3AAAgAEESaiACQT1qKQAANwAAIABBCmogAkE1aikAADcAAEEAIQMLIAAgAzoAACAIIAQQjICAgAALIAJBwAFqJICAgIAACy8AAkAgAS0AAEUNACABLQABELCAgIAAEI+AgIAAAAsgACABQQFqQSEQ9ICAgAAaC5ADAQN/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBIRCVgICAACACQQA2AiggAiACKQMINwMgIAJBIBCVgICAACACKAIAIQMgAigCBCIEIAEpAAA3AAAgBEEYaiABQRhqKQAANwAAIARBEGogAUEQaikAADcAACAEQQhqIAFBCGopAAA3AAAgAiADQRh2OgAzIAIgA0EIdjsAMSACQSA2AjggAiAENgI0IAIgAzoAMCACQSBqIAJBMGoQmICAgAAgAigCMCACKAI0EIyAgIAAAkBBAUEBELmAgIAAIgQNAAAACyAEIAEtACA6AAAgAkEAOgAzIAJBADsAMSACQQE2AjggAiAENgI0IAJBAToAMCACQSBqIAJBMGoQmICAgAAgAigCMCACKAI0EIyAgIAAIAJBEGpBCGogAkEgakEIaigCADYCACACIAIpAyA3AxAgAkEwaiACQRBqEJ+AgIAAIAAgAikDMDcCCCAAQRBqIAJBMGpBCGooAgA2AgAgACACKQI0NwIAIAJBwABqJICAgIAAC9YFAwN/AX4GfyOAgICAAEGwAWsiAiSAgICAAEEAIQMgAkEwakEAQcAAEPOAgIAAGgJAA0AgA0HAAEYNASACQTBqIANqIAEgA2opAwA3AAAgA0EIaiEDDAALC0EAIQMgAkEAOgCIASACIAJB8ABqNgKAASACIAJBMGo2AoQBIAJBKGogAkGAAWoQtYCAgAACQAJAAkAgAi0AKEEBcQ0AIAJBADYCeCACQoCAgIAQNwNwQQAhBAwBCyACLQApIQMgAkEgakEIEJWAgIAAIAIoAiAhASACKAIkIgQgAzoAACACQQE2ApgBIAIgBDYClAEgAiABNgKQASACQaABakEIaiACQYABakEIaigCADYCACACIAIpA4ABNwOgAUEBIQMDQCACQRhqIAJBoAFqELWAgIAAAkACQCACLQAYQQFxRQ0AIAItABkhASADIAIoApABRw0BIAJBkAFqQQEQtoCAgAAgAigClAEhBAwBCyACQfAAakEIaiACQZABakEIaigCACIDNgIAIAIgAikDkAEiBTcDcCADIQEgAyAFpyIERw0DDAILIAQgA2ogAToAACACIANBAWoiAzYCmAEMAAsLIAJB8ABqIAQQroCAgAAgAigCeCEBCyACKAJ0IgQgAWogAzoAACACIAFBAWoiATYCeCACQRBqIAFBAXYiAyAEIAMQpICAgAAgAigCFCEGIAIoAhAhByACQQhqIAMgBCABaiADayADEKSAgIAAIANBf2ohA0EAIQEgAigCDCEIIAIoAgghCQJAAkADQCADQX9GDQEgBiABRg0CAkAgAyAITw0AIAcgAWoiBC0AACEKIAQgCSADaiILLQAAOgAAIAsgCjoAACADQX9qIQMg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ZW50b2tlbl9pZGFtb3VudGdldF9vcmRlcl9wdXJzZWJ1eV9pdGVtY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZUNMVHlwZU1pc21hdGNoZXhwZWN0ZWQAAAAGAAAAEAAAAAQAAAAHAAAAZm91bmQAAAAIAAAABAAAAAQAAAAJAAAAVHlwZQgAAAAEAAAABAAAAAoAAABTZXJpYWxpemF0aW9uAAAACAAAAAQAAAAEAAAACwAAAEV4Y2VlZGVkUmVjdXJzaW9uRGVwdGhPdXRPZk1lbW9yeUxlZnRPdmVyQnl0ZXNGb3JtYXR0aW5nRWFybHlFbmRPZlN0cmVhbUFueVR1cGxlMwAAAAgAAAAEAAAABAAAAAwAAABUdXBsZTIAAAgAAAAEAAAABAAAAA0AAABUdXBsZTEAAAgAAAAEAAAABAAAAA4AAABNYXBrZXkAAA8AAAAEAAAABAAAAAkAAAB2YWx1ZQAAAAgAAAAEAAAABAAAABAAAABSZXN1bHRva2VyckJ5dGVBcnJheQgAAAAEAAAABAAAABEAAABMaXN0T3B0aW9uUHVibGljS2V5VVJlZktleVN0cmluZ1VuaXRVNTEyVTI1NlUxMjhVNjRVMzJVOEk2NEkzMkJvb2wpWzogAAASAAAADAAAAAQAAAATAAAAFAAAABUAAAAgICAgIHsKLAosICB7IH0gfSgKKCwKXTB4MDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkAAAASAAAABAAAAAQAAAAWAAAAFwAAABgAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMEBAQEBAAAAAAAAAAAAAAACAAAAAAAAAABAAAAGQAAABoAAAACAAAACAAAAAQAAAAEAAAAGwAAABwAAAABAAAACAAAAAAAAAABAAAAGQAAABoAAAACAAAAFgAAABAAAAAQAAAAEAAAABAAAAAKAAAADQAAAAsAAADgABAAGAEQABgBEAAYARAAGAEQAA4BEAABARAA9gAQABAAAAARAAAAEgAAABMAAAAmAAAA";
+ const wasm = new Uint8Array(Buffer.from(base64, 'base64'));
+ export default wasm;
diff --git a/packages/builder/src/wasm/list_item.wasm.ts b/packages/builder/src/wasm/list_item.wasm.ts
new file mode 100644
index 0000000..16e9ef3
--- /dev/null
+++ b/packages/builder/src/wasm/list_item.wasm.ts
@@ -0,0 +1,9 @@
+
+/* Autogenerated file. Do not edit manually. */
+ /* eslint-disable eslint-comments/disable-enable-pair */
+ /* eslint-disable eslint-comments/no-unlimited-disable */
+ /* eslint-disable */
+ /* prettier-ignore */
+ const base64 = "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CSEAA0ACQCAAQQRqKAIAIgNBAUgNACAAKAIAIANBARCKgICAAAsgAEEMaiIDEI2AgIAAAkAgAEEgaigCACIBQQFIDQAgAEEcaigCACABQQEQioCAgAALIANBHGoiACACRw0ACwsCQCAKRQ0AIAqtQih+IhZCIIinDQAgFqciAEGDgICAeGpBhICAgHhJDQAgCSAAQQQQioCAgAALAkACQAJAAkACQCAPRQ0AIAVBICAHIAYgESAUIARBIGoQgICAgAAQkYCAgAAiAEH/AXFBLUcNAQJAIAQoAiAiAEUNACAAQX9MDQMgBCAANgFiIARBIGpBBGogBEHgAGpBBGovAQA7AQAgBCAEKAJgNgIgIAQgBCgBIkEBEIaAgIAAIgM2AiQgBCADRUGAgMwAcjYCICADRQ0EIAMgACAEQSBqEIGAgIAAEJGAgIAAIgRB/wFxQS1HDQUgAyAAIABBf3NBH3YQioCAgABBAhCOgICAABCPgICAAAALAkAgFUEBSA0AIBEgFUEBEIqAgIAACwJAIAhBAUgNACAHIAhBARCKgICAAAsgBUEAKAKMisCAADYCAEEAIAVBeGoiADYCjIrAgAAgACAAKAIAQX5xNgIAIARB8ABqJICAgIAADwsgDRCOgICAABCPgICAAAALIAAQj4CAgAAACyAEQSI2AmAgBEEgakEEaiAEQeAAakEEai8BADsBACAEQSI2AiBBIhCPgICAAAALIAQoASIQj4CAgAAACyAEEI+AgIAAAAu0AwEEfyOAgICAAEEQayICJICAgIAAIAFBASABGyEBAkACQCAADQAgASEADAELIABBA2oiA0ECdiEEAkAgAUEFTw0AIARBf2oiAEH/AUsNACACQeyJwIAANgIIIAIgAEECdEHwicCAAGoiAygCADYCDAJAIAQgASACQQxqIAJBCGpB6IjAgAAQnYCAgAAiAA0AIAIgAkEIaiAEIAEQwICAgABBACEAIAIoAgANACACKAIEIgAgAigCDDYCCCACIAA2AgwgBCABIAJBDGogAkEIakHoiMCAABCdgICAACEACyADIAIoAgw2AgAMAQsgAkEAKALsicCAADYCDAJAIAQgASACQQxqQYCJwIAAQYCJwIAAEJ2AgIAAIgANAEEAIQAgA0F8cSIDIAFBA3RBgIABaiIFIAMgBUsbQYeABGoiA0EQdkAAIgVB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ACADQQhqIAJBCGoiBSkDADcCACADIAIpAwA3AgBBEEEEEIaAgIAAIgRFDQEgAiABQQhqKAIAEIuAgIAAIARBCGogBSkDADcCACAEIAIpAwA3AgBBEEEEEIaAgIAAIgVFDQEgAiABQQxqKAIAEIuAgIAAIAVBCGogAkEIaikDADcCACAFIAIpAwA3AgAgAEEMaiAFNgIAIABBCGogBDYCACAAIAM2AgRBFSEDCyAAIAM2AgAgAkEQaiSAgICAAA8LAAALhQ0BBH8gAUEEaiECIAFBCGohAwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4XAAECAwQFBgcICQoLDA0ODxAREhMUFRYACwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBADoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBAToAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBAjoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBAzoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBDoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBToAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBjoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBzoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCDoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCToAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCjoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCzoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBDDoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBFjoAACADIABBAWo2AgAPCyAAQQRqIQRBDSEFIAMoAgAiACACKAIARw0JDAgLIABBBGohBEEOIQUgAygCACIAIAIoAgBGDQcMCAsCQCADKAIAIgQgAigCAEcNACABIAQQm4CAgAAgASgCCCEECyABKAIAIARqQQ86AAAgASAEQQFqIgI2AgggACgCBCEAAkAgASgCBCACa0EDSw0AIAEgAkEEEImAgIAAIAEoAgghAgsgASgCACACaiAANgAAIAMgAkEEajYCAA8LIABBCGohBQJAIAMoAgAiBCACKAIARw0AIAEgBBCbgICAACABKAIIIQQLIAEgBEEBajYCCCABKAIAIARqQRA6AAAgACgCBCABEIyAgIAAIAUoAgAhAAwHCyAAQQhqIQUCQCADKAIAIgQgAigCAEcNACABIAQQm4CAgAAgASgCCCEECyABIARBAWo2AgggASgCACAEakEROgAAIAAoAgQgARCMgICAACAFKAIAIQAMBgsCQCADKAIAIgQgAigCAEcNACABIAQQm4CAgAAgASgCCCEECyABIARBAWo2AgggASgCACAEakESOgAAIABBBGooAgAhAAwFCwJAIAMoAgAiBCACKAIARw0AIAEgBBCbgICAACABKAIIIQQLIAEgBEEBajYCCCABKAIAIARqQRM6AAAgACgCBCABEIyAgIAAIABBCGooAgAhAAwECwJAIAMoAgAiBCACKAIARw0AIAEgBBCbgICAACABKAIIIQQLIAEgBEEBajYCCCABKAIAIARqQRQ6AAAgACgCBCABEIyAgIAAIABBCGooAgAgARCMgICAACAAQQxqKAIAIQAMAwsCQCADKAIAIgAgAigCAEcNACABIAAQm4CAgAAgASgCCCEACyABKAIAIABqQRU6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vAFqQQxqIAJBCGopAAA3AgAgA0G8AWpBFGogAkEQaikAADcCACADQbwBakEcaiACQRhqKQAANwIAIAMgAikAADcCwAEgA0H4AGpBDGogAykCvAE3AgAgA0H4AGpBFGogA0G8AWpBCGopAgA3AgAgA0H4AGpBHGogA0G8AWpBEGopAgA3AgAgA0GcAWogA0G8AWpBGGopAgA3AgAgA0GkAWogA0G8AWpBIGooAgA2AgAgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANB+ABqQQhqQQE2AgAgA0EAOgB4DA4LQQAhBwJAIAZBIUkNAEEBIQcgBS0AISIBQQdLDQAgA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQdwBaigCADYCACADQbQBaiAEQV5qNgIAIANBsAFqIAVBImo2AgAgA0GoAWogAToAACADQfgAakEIakECNgIAIANBADoAeAwOC0EBIQEgA0EBOgB4IAMgBzoAeQwTCyAGQSBJDQ0gA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQbwBakEgaigCADYCACADQbQBaiAEQV9qNgIAIANBsAFqIAVBIWo2AgAgA0H4AGpBCGpBAzYCACADQQA6AHgMDAsgBkEgSQ0MIANBvAFqQQxqIAJBCGopAAA3AgAgA0G8AWpBFGogAkEQaikAADcCACADQbwBakEcaiACQRhqKQAANwIAIAMgAikAADcCwAEgA0H4AGpBDGogAykCvAE3AgAgA0H4AGpBFGogA0G8AWpBCGopAgA3AgAgA0H4AGpBHGogA0G8AWpBEGopAgA3AgAgA0GcAWogA0G8AWpBGGopAgA3AgAgA0GkAWogA0G8AWpBIGooAgA2AgAgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANB+ABqQQhqQQQ2AgAgA0EAOgB4DAsLIAZBCEkNCyADQbQBaiAEQXdqNgIAIANBsAFqIAVBCWo2AgAgA0GIAWogBSkAATcDACADQfgAakEIakEFNgIAIANBADoAeAwKCyAGQSBJDQogA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQbwBakEgaigCADYCACADQbQBaiAEQV9qNgIAIANBsAFqIAVBIWo2AgAgA0H4AGpBCGpBBjYCACADQQA6AHgMCQsgBkEgSQ0JIANBvAFqQQxqIAJBCGopAAA3AgAgA0G8AWpBFGogAkEQaikAADcCACADQbwBakEcaiACQRhqKQAANwIAIAMgAikAADcCwAEgA0H4AGpBDGogAykCvAE3AgAgA0H4AGpBFGogA0G8AWpBCGopAgA3AgAgA0H4AGpBHGogA0G8AWpBEGopAgA3AgAgA0GcAWogA0G8AWpBGGopAgA3AgAgA0GkAWogA0G8AWpBIGooAgA2AgAgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANB+ABqQQhqQQc2AgAgA0EAOgB4DAgLIAZBIEkNCCADQbwBakEMaiACQQhqKQAANwIAIANBvAFqQRRqIAJBEGopAAA3AgAgA0G8AWpBHGogAkEYaikAADcCACADIAIpAAA3AsABIANB+ABqQQxqIAMpArwBNwIAIANB+ABqQRRqIANBvAFqQQhqKQIANwIAIANB+ABqQRxqIANBvAFqQRBqKQIANwIAIANBnAFqIANBvAFqQRhqKQIANwIAIANBpAFqIANBvAFqQSBqKAIANgIAIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQfgAakEIakEINgIAIANBADoAeAwHCyAGQSBJDQcgA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQbwBakEgaigCADYCACADQbQBaiAEQV9qNgIAIANBsAFqIAVBIWo2AgAgA0H4AGpBCGpBCTYCACADQQA6AHgMBgsgBkEgSQ0GIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQYABakEKNgIAIANBADoAeAwFCyAGQSBJDQUgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANBgAFqQQs2AgAgA0EAOgB4DAQLIAZBIEkNBCADQbwBakEMaiACQQhqKQAANwIAIANBvAFqQRRqIAJBEGopAAA3AgAgA0G8AWpBHGogAkEYaikAADcCACADIAIpAAA3AsABIANB+ABqQQxqIAMpArwBNwIAIANB+ABqQRRqIANBvAFqQQhqKQIANwIAIANB+ABqQRxqIANBvAFqQRBqKQIANwIAIANBnAFqIANBvAFqQRhqKQIANwIAIANBpAFqIANBvAFqQSBqKAIANgIAIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQfgAakEIakEMNgIAIANBADoAeAwDCyAGQSBJDQMgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANBgAFqQQ02AgAgA0EAOgB4DAILIANBgQI7AXgMBwsgBkEgSQ0BIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQYABakEONgIAIANBADoAeAsgA0HAAGpBLmogA0GoAWopAwAiCDcBACADQcAAakEmaiADQaABaiICKQMAIgk3AQAgA0HAAGpBHmogA0GYAWoiBikDACIKNwEAIANBwABqQRZqIANBkAFqIgcpAwAiCzcBACADQcAAakEOaiADQYgBaiIMKQMAIg03AQAgAyADQYABaiIOKQMAIg83AUYgA0G0AWooAgAhECACIAg3AwAgBiAJNwMAIAcgCjcDACAMIAs3AwAgDiANNwMAIAMgDzcDeEEBIQEgEA0FIANBCmpBLmogAikDADcBACADQQpqQSZqIAYpAwA3AQAgA0EKakEeaiAHKQMANwEAIANBCmpBFmogDCkDADcBACADQQpqQQ5qIA4pAwA3AQAgAyADKQN4NwEQQQAhAQwFC0EBIQEgA0EBOwF4DAQLIAUgBEEBEIqAgIAAIAEQj4CAgAAACyAEEI+AgIAAAAsgA0EiNgJAIANB+ABqQQRqIANBwABqQQRqLwEAOwEAIANBIjYCeEEiEI+AgIAAAAsgAygBehCPgICAAAALIAUgBCAEQX9zQR92EIqAgIAAIANB+ABqQS5qIgUgA0EKakEuaikBADcBACADQfgAakEoaiADQQpqQShqKQEANwMAIANB+ABqQSBqIANBCmpBIGopAQA3AwAgA0H4AGpBGGogA0EKakEYaikBADcDACADQfgAakEQaiADQQpqQRBqKQEANwMAIANB+ABqQQhqIANBCmpBCGopAQA3AwAgAyADKQEKNwN4IAFFDQELQQIQj4CAgAAACyAAIAMpAX43AAAgAEEoaiAFKQEANwAAIABBIGogA0GeAWopAQA3AAAgAEEYaiADQZYBaikBADcAACAAQRBqIANBjgFqKQEANwAAIABBCGogA0GGAWopAQA3AAAgA0HgAWokgICAgAALIwACQCAALQAARQ0AIABBBGoQjYCAgAAgAEEUahCNgICAAAsLCgAgABCVgICAAAv/AgECfyAAQQh2IQFBASECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxDi0sAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissC0ECDwtBAw8LQQQPC0EFDwtBBg8LQQcPC0EIDwtBCQ8LQQoPC0ELDwtBDA8LQQ0PC0EODwtBDw8LQRAPC0ERDwtBEg8LQRMPC0EUDwtBFQ8LQRYPC0EXDwtBGA8LQRkPC0EaDwtBGw8LQRwPC0EdDwtBHg8LQR8PC0EgDwtBIQ8LQSIPC0EjDwtBJA8LQSUPC0EmDwtBJw8LQSgPCyABQf8BcUGA+ANyDwsgAUH/AXFBgPoDcg8LIAFB/wFxQYD8A3IPCyABQf8BcUGA/gNyDwsgAEEQdkGAgARyIQILIAIL0AEBA38CQAJAAkACQAJAAkACQAJAAkAgAkUNAEEBIQQgAUEASA0BIAMoAghFDQMgAygCBCIFDQIgAQ0EIAIhAwwFCyAAIAE2AgRBASEEC0EAIQEMBgsgAygCACEGIAEgAhCGgICAACIDRQ0EIAMgBiAFEMqAgIAAGiAGIAUgAhCKgICAAAwDCyABDQAgAiEDDAELIAEgAhCGgICAACEDCyADRQ0BCyAAIAM2AgRBACEEDAELIAAgATYCBCACIQELIAAgBDYCACAAQQhqIAE2AgALiQICBX8BfiOAgICAAEEgayICJICAgIAAAkACQCABQQFqIgMgAUkNAEEAIQFBACAAKAIEIgRBAXQiBSADIAUgA0sbIgNBBCADQQRLGyIGrUIofiIHpyIDQf3///8HSUECdCAHQiCIpxshBQJAIARFDQAgAiAAKAIANgIQIAIgBK1CKH4iB6ciATYCFEEAIAFB/f///wdJQQJ0IAdCIIinGyEBCyACIAE2AhggAiADIAUgAkEQahCWgICAAAJAIAIoAgANACACKAIEIQEgACAGNgIEIAAgATYCAAwCCyACQQhqKAIAIgBBgYCAgHhGDQEgAEUNAAAACxCQgICAAAALIAJBIGokgICAgAAL4QEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxsiAkF/c0EfdiEEAkACQCABDQBBACEBDAELIAMgACgCADYCECADIAE2AhQgAUF/c0EfdiEBCyADIAE2AhggAyACIAQgA0EQahCWgICAAAJAIAMoAgANACAAIAMoAgQ2AgAgAEEEaiACNgIADAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AAAALEJCAgIAAAAsgA0EgaiSAgICAAAuEWwIUfwd+I4CAgIAAQaAFayIAJICAgIAAIABBoANqQYCAwIAAQREQkoCAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAqADQQFHDQAgAEHAAGpBCGogAEGgA2pBEGoiASkDADcDACAAQcAAakEQaiAAQaADakEYaiICKQMANwMAIABBwABqQRhqIABBwANqIgMpAwA3AwAgACAAQaADakEI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6ANqIA4gA2o2AgAgAEEAOgCgAyAAQdgCakE+aiIDIA8pAwA3AQAgAEHYAmpBNmoiBCALKQMANwEAIABB2AJqQS5qIg4gCSkDADcBACAAQdgCakEmaiIPIAopAwA3AQAgAEHYAmpBHmoiESAMKQMANwEAIABB2AJqQRZqIhIgBikDADcBACAAQdgCakEOaiITIA0pAwA3AQAgACAHKQMANwHeAiALIAMpAQA3AwAgCSAEKQEANwMAIAogDikBADcDACAMIA8pAQA3AwAgBiARKQEANwMAIA0gEikBADcDACAHIBMpAQA3AwAgACAAKQHeAjcDoANBASEEIBANBSAAQZACakE+aiALKQMANwEAIABBkAJqQTZqIAkpAwA3AQAgAEGQAmpBLmogCikDADcBACAAQZACakEmaiAMKQMANwEAIABBkAJqQR5qIAYpAwA3AQAgAEGQAmpBFmogDSkDADcBACAAQZACakEOaiAHKQMANwEAIAAgACkDoAM3AZYCQQAhBAwFC0ECEI+AgIAAAAsgAhCPgICAAAALIABBIjYC2AIgAEGgA2pBBGogAEHYAmpBBGovAQA7AQAgAEEiNgKgA0EiEI+AgIAAAAsgACgBogMQj4CAgAAACyAAQYECOwGgAwsgAiABIAFBf3NBH3YQioCAgAAgAEGgA2ogAEGQAmpBxgAQyoCAgAAaIAQNACAAQZADaiAAQd4DaikAADcDACAAQYgDaiAAQdYDaikAADcDACAAQYADaiAAQc4DaikAADcDACAAQdgCakEgaiAAQcYDaikAADcDACAAQfACaiAAQb4DaikAADcDACAAQegCaiAAQbYDaikAADcDACAAQdgCakEIaiAAQa4DaikAADcDACAAIAApAKYDNwPYAkEgQQgQhoCAgAAiCUUNBkEAIQFCACEUQgAhFUIAIRZCACEXAkACQAJAAkACQAJAAkADQCAFIAFGDQEgCCABai0AAEFQaiICQf8BcUEJSw0CIABBMGogFEIAQgpCABDGgICAACAAQSBqIBVCAEIKQgAQxoCAgAAgAEEQaiAWQgBCCkIAEMaAgIAAIAAgF0IAQgpCABDGgICAACAAQQhqKQMAIABBEGpBCGopAwAgAEEgakEIaikDACAAKQMgIhYgAEEwakEIaikDAHwiFSAWVK18IhcgACkDEHwiFiAXVK18IhQgACkDAHwiFyAUVK18QgBSDQIgACkDMCIYIAKtQv8Bg3wiFCAYVCIEIBVCAXwiGCAVVHEiAiAWIAKtfCIZIBZUcSIDIBcgA618IhogF1RxDQIgGiAXIAMbIRcgGSAWIAIbIRYgGCAVIAQbIRUgAUEBaiEBDAALCyAJIBc3AxggCSAWNwMQIAkgFTcDCCAJIBQ3AwAgAEHQBGpBGGogAEHAAGpBGGopAwA3AwAgAEHQBGpBEGogAEHAAGpBEGopAwA3AwAgAEHQBGpBCGogAEHAAGpBCGopAwA3AwAgACAAKQNANwPQBCAAQQA2AogCIABCBDcDgAIgAEH4AWotAAAhCyAAQdABakEIaikDACEVIAAoAtABIgNBAnRBsInAgABqKAIAIgJBARCGgICAACIBRQ0MIABB0AFqQRBqIQQgAEEANgKoAyAAIAI2AqQDIAAgATYCoAMgASADOgAAIABBATYCqAMCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADDg8AAQIDBAUGBwgJCgoLCgoAC0EBIQMCQCACQX9qQR9LDQAgAEGgA2pBAUEgEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiIBIBU3AAAgASAEKQAANwAIIAFBEGogBEEIaikAADcAACABQRhqIARBEGopAAA3AAAgA0EgaiEBDAsLQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgEgFTcAACABIAQpAAA3AAggAUEQaiAEQQhqKQAANwAAIAFBGGogBEEQaikAADcAACADQSBqIQEMCgtBASEKAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqQDIQIgACgCqAMhCgsgASAKaiIDIAQpAAA3AAggAyAVNwAAIANBEGogBEEIaikAADcAACADQRhqIARBEGopAAA3AAAgACAKQSBqIgM2AqgDAkAgAyACRw0AIABBoANqIAIQm4CAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIAs6AAAgA0EBaiEBDAkLQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgEgFTcAACABIAQpAAA3AAggAUEQaiAEQQhqKQAANwAAIAFBGGogBEEQaikAADcAACADQSBqIQEMCAtBASEDAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqgDIQMLIAEgA2oiASAVNwAAIAEgBCkAADcACCABQRBqIARBCGopAAA3AAAgAUEYaiAEQRBqKQAANwAAIANBIGohAQwHC0EBIQMCQCACQX9qQQdLDQAgAEGgA2pBAUEIEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiAVNwAAIANBCGohAQwGC0EBIQMCQCACQX9qQR9LDQAgAEGgA2pBAUEgEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiIBIBU3AAAgASAEKQAANwAIIAFBEGogBEEIaikAADcAACABQRhqIARBEGopAAA3AAAgA0EgaiEBDAULQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgEgFTcAACABIAQpAAA3AAggAUEQaiAEQQhqKQAANwAAIAFBGGogBEEQaikAADcAACADQSBqIQEMBAtBASEDAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqgDIQMLIAEgA2oiASAVNwAAIAEgBCkAADcACCABQRBqIARBCGopAAA3AAAgAUEYaiAEQRBqKQAANwAAIANBIGohAQwDC0EBIQMCQCACQX9qQR9LDQAgAEGgA2pBAUEgEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiIBIBU3AAAgASAEKQAANwAIIAFBEGogBEEIaikAADcAACABQRhqIARBEGopAAA3AAAgA0EgaiEBDAILQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgFCADcAACABQRhqQgA3AAAgAUEQakIANwAAIAFBCGpCADcAACADQSBqIQEMAQtBASEDAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqgDIQMLIAEgA2oiASAVNwAAIAEgBCkAADcACCABQRBqIARBCGopAAA3AAAgAUEYaiAEQRBqKQAANwAAIANBIGohAQsgAEGgBGpBCGogATYCACAAIAApA6ADIhU3A6AE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lAQgDWsgACgCmAUiAU8NACAAQZAEaiANIAEQmICAgAAgACgCmAQhDQsgACgCkAQgDWogAyABEMqAgIAAGiAAIA0gAWo2ApgEAkAgAkEBSA0AIAMgAkEBEIqAgIAACyAJQSBBCBCKgICAACAAQaAEakEIaiIBIABBkARqQQhqKAIANgIAIAAgACkDkAQiFTcBogMgACAVNwGSAiAAIBU3A6AEQRBBBBCGgICAACIDRQ0CIANBBzYCACAAQZACakEIaiAAKQOgBDcDACAAQZACakEQaiABKAIANgIAIAAgACkCoAM3A5ACQQlBARCGgICAACICRQ0CIAJBCGpBAC0A7IDAgAA6AAAgAkEAKQDkgMCAADcAAAJAIAYgACgChAJHDQAgAEGAAmogBhCXgICAACAAKAKIAiEGCyAAKAKAAiAGQShsaiIBQQ86AAwgAUKJgICAkAE3AgQgASACNgIAIAFBD2pBADoAACABQQ1qQQA7AAAgAUEQaiADNgAAIAFBFGogACkDkAI3AAAgAUEcaiAAQZACakEIaiICKQMANwAAIAFBJGogAEGQAmpBEGoiASgCADYAACAAQaADakEIaiAGQQFqNgIAIAAgACkDgAI3A6ADIABB0ARqQcyAwIAAQQcgAEGgA2oQhYCAgAAgAEGQAmpBGGogAEGIAWpBGGopAwA3AwAgASAAQYgBakEQaikDADcDACACIABBiAFqQQhqKQMANwMAIAAgACkDiAE3A5ACIABBADYCmAQgAEIENwOQBEEgQQEQhoCAgAAiAUUNAiABIAApA0A3AAAgAUEYaiAAQcAAakEYaikDADcAACABQRBqIABBwABqQRBqKQMANwAAIAFBCGogAEHAAGpBCGopAwA3AABBBUEBEIaAgIAAIgNFDQIgA0EEakEALQD6gMCAADoAACADQQAoAPaAwIAANgAAIABBkARqQQAQl4CAgAAgACgCkAQiDCAAKAKYBCIEQShsaiICQpCAgICABDcCDCACQoWAgIDQADcCBCACIAM2AgAgAkEgakKggICAgAQ3AgAgAkEcaiABNgIAIAAgBEEBaiICNgKYBCAAQaADaiAIIAUQh4CAgAACQCAFQQFIDQAgCCAFQQEQioCAgAALAkACQAJAIAAtAKADDQAgAEGQBWpBCGogAEGsA2ooAgAiATYCACAAIAApAqQDIhU3A5AFIABBtANqIAE2AgAgACAVNwKsAyAAQdAEakEIaiAAQaADakEIaikCADcDACAAQdAEakEQaiAAQaADakEQaikCADcDACAAIAApAqADNwPQBEEIQQEQhoCAgAAiA0UNBSADQvTeravm7de05AA3AAACQCACIAAoApQERw0AIABBkARqIAIQl4CAgAAgACgCkAQhDCAAKAKYBCECCyAMIAJBKGxqIgFBCjYCDCABQoiAgICAATcCBCABIAM2AgAgAUEQaiAAKQPQBDcAACABQRhqIABB0ARqQQhqKQMANwAAIAFBIGogAEHQBGpBEGopAwA3AAAgACACQQFqIgo2ApgEIABBoANqQThqIABB2AJqQThqKQMANwMAIABBoANqQTBqIABB2AJqQTBqKQMANwMAIABBoANqQShqIABB2AJqQShqKQMANwMAIABBoANqQSBqIABB2AJqQSBqKQMANwMAIABBoANqQRhqIABB2AJqQRhqKQMANwMAIABBoANqQRBqIABB2AJqQRBqKQMANwMAIABBoANqQQhqIABB2AJqQQhqKQMANwMAIAAgACkD2AI3A6ADAkAgAC0A3wMiAUUNACAAQd8DaiEDDAILAkAgAC0A3gMiAUUNACAAQd4DaiEDDAILAkAgAC0A3QMiAUUNACAAQd0DaiEDDAILAkAgAC0A3AMiAUUNACAAQdwDaiEDDAILAkAgAC0A2wMiAUUNACAAQdsDaiEDDAILAkAgAC0A2gMiAUUNACAAQdoDaiEDDAILAkAgAC0A2QMiAUUNACAAQdkDaiEDDAILAkAgAC0A2AMiAUUNACAAQdgDaiEDDAILAkAgAC0A1wMiAUUNACAAQdcDaiEDDAILAkAgAC0A1gMiAUUNACAAQdYDaiEDDAILAkAgAC0A1QMiAUUNACAAQdUDaiEDDAILAkAgAC0A1AMiAUUNACAAQdQDaiEDDAILAkAgAC0A0wMiAUUNACAAQdMDaiEDDAILAkAgAC0A0gMiAUUNACAAQdIDaiEDDAILAkAgAC0A0QMiAUUNACAAQdEDaiEDDAILAkAgAC0A0AMiAUUNACAAQdADaiEDDAILAkAgAC0AzwMiAUUNACAAQc8DaiEDDAILAkAgAC0AzgMiAUUNACAAQc4DaiEDDAILAkAgAC0AzQMiAUUNACAAQc0DaiEDDAILAkAgAC0AzAMiAUUNACAAQcwDaiEDDAILAkAgAC0AywMiAUUNACAAQcsDaiEDDAILAkAgAC0AygMiAUUNACAAQcoDaiEDDAILAkAgAC0AyQMiAUUNACAAQckDaiEDDAILAkAgAC0AyAMiAUUNACAAQcgDaiEDDAILAkAgAC0AxwMiAUUNACAAQccDaiEDDAILAkAgAC0AxgMiAUUNACAAQcYDaiEDDAILAkAgAC0AxQMiAUUNACAAQcUDaiEDDAILAkAgAC0AxAMiAUUNACAAQcQDaiEDDAILAkAgAC0AwwMiAUUNACAAQcMDaiEDDAILAkAgAC0AwgMiAUUNACAAQcIDaiEDDAILAkAgAC0AwQMiAUUNACAAQcEDaiEDDAILAkAgAC0AwAMiAUUNACAAQcADaiEDDAILAkAgAC0AvwMiAUUNACAAQb8DaiEDDAILAkAgAC0AvgMiAUUNACAAQb4DaiEDDAILAkAgAC0AvQMiAUUNACAAQb0DaiEDDAILAkAgAC0AvAMiAUUNACAAQbwDaiEDDAILAkAgAC0AuwMiAUUNACAAQbsDaiEDDAILAkAgAC0AugMiAUUNACAAQboDaiEDDAILAkAgAC0AuQMiAUUNACAAQbkDaiEDDAILAkAgAC0AuAMiAUUNACAAQbgDaiEDDAILAkAgAC0AtwMiAUUNACAAQbcDaiEDDAILAkAgAC0AtgMiAUUNACAAQbYDaiEDDAILAkAgAC0AtQMiAUUNACAAQbUDaiEDDAILAkAgAC0AtAMiAUUNACAAQbQDaiEDDAILAkAgAC0AswMiAUUNACAAQbMDaiEDDAILAkAgAC0AsgMiAUUNACAAQbIDaiEDDAILAkAgAC0AsQMiAUUNACAAQbEDaiEDDAILAkAgAC0AsAMiAUUNACAAQbADaiEDDAILAkAgAC0ArwMiAUUNACAAQa8DaiEDDAILAkAgAC0ArgMiAUUNACAAQa4DaiEDDAILAkAgAC0ArQMiAUUNACAAQa0DaiEDDAILAkAgAC0ArAMiAUUNACAAQawDaiEDDAILAkAgAC0AqwMiAUUNACAAQasDaiEDDAILAkAgAC0AqgMiAUUNACAAQaoDaiEDDAILAkAgAC0AqQMiAUUNACAAQakDaiEDDAILAkAgAC0AqAMiAUUNACAAQagDaiEDDAILAkAgAC0ApwMiAUUNACAAQaADakEHciEDDAILAkAgAC0ApgMiAUUNACAAQaADakEGciEDDAILAkAgAC0ApQMiAUUNACAAQaADakEFciEDDAILAkAgAC0ApAMiAUUNACAAQaADakEEciEDDAILAkAgAC0AowMiAUUNACAAQaADakEDciEDDAILAkAgAC0AogMiAUUNACAAQaADakECciEDDAILAkAgAC0AoQMiAUUNACAAQaADakEBciEDDAILIABBoANqIQMgAC0AoAMiAQ0BQQAhASAAQQA2AtgEIABCATcD0ARBACECDAILIABBoANqQdSAwIAAEJyAgIAAAAsgAEHsicCAADYCkAUgAEEAKAL0icCAADYCoAQCQAJAQQJBASAAQaAEaiAAQZAFakHoiMCAABCdgICAACIFRQ0AQQAgACgCoAQ2AvSJwIAADAELIAAgACgCkAUiBCgCADYC0AQCQAJAQYAQQQQgAEHQBGpBgInAgABBgInAgAAQnYCAgAAiAkUNACAEIAAoAtAENgIADAELAkACQEEBQAAiAkF/Rw0AIAQgACgC0AQ2AgAMAQsgAkEQdCICIAAoAtAENgIIIAJBADYCBCACIAJBgoAEajYCACAAIAI2AtAEQYAQQQQgAEHQBGpBgInAgABBgInAgAAQnYCAgAAhAiAEIAAoAtAENgIAIAINAQtBACAAKAKgBDYC9InAgAAAAAsgAkEANgIEIAIgACgCoAQ2AgggAiACQYDAAGpBAnI2AgAgACACNgKgBEECQQEgAEGgBGogAEGQBWpB6IjAgAAQnYCAgAAhBUEAIAAoAqAENgL0icCAACAFRQ0ECyAFIAE6AAACQCAAQaADaiADRw0AIABCiICAgBA3AtQEIAAgBTYC0ARBASEBQQEhAwwDC0EIIQJBASEBA0AgA0F/aiIDLQAAIQQCQCABIAJHDQAgAkEBaiIIIAJJDQMgAkEBdCILIAggCyAISxsiCEEIIAhBCEsbIghBf3NBH3YhCwJAAkAgAg0AQQAhCQwBCyAAIAU2AtAEIAAgAjYC1AQgAkF/c0EfdiEJCyAAIAk2AtgEIABBoARqIAggCyAAQdAEahCegICAAAJAIAAoAqAEDQAgACgCpAQhBSAIIQIMAQsgACgCqAQiCEGBgICAeEYNACAIDQUMAwsgBSABaiAEOgAAIAFBAWohASADIABBoANqRw0ACyAAIAE2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2oTAgABBASABQRxqKAIAKAIMEYGAgIAAACEBCyABQf8BcUEARyEBDAULIAIgAEEEajYCACACIABBCGo2AgQgASgCGEHAgsCAAEEDIAFBHGooAgAoAgwRgYCAgAAAIQAgAkEAOgANIAIgADoADCACIAE2AgggAkEIakGUgcCAAEEDIAJBhIHAgAAQooCAgABBl4HAgABBBSACQQRqQYSBwIAAEKKAgIAAGiACLQAMIQECQCACLQANRQ0AIAFB/wFxIQBBASEBIAANAAJAIAIoAggiAS0AAEEEcQ0AIAEoAhhB24TAgABBAiABQRxqKAIAKAIMEYGAgIAAACEBDAELIAEoAhhB2oTAgABBASABQRxqKAIAKAIMEYGAgIAAACEBCyABQf8BcUEARyEBDAQLIAIgAEEEajYCCCABQaiCwIAAQQYgAkEIakGwgsCAABChgICAACEBDAMLIAIgAEEEajYCCCABQZCCwIAAQQYgAkEIakGYgsCAABChgICAACEBDAILIAIgAEEEajYCCCABQfeBwIAAQQYgAkEIakGAgsCAABChgICAACEBDAELIAEoAhhB9IHAgABBAyABQRxqKAIAKAIMEYGAgIAAACEBCyACQRBqJICAgIAAIAEL4QIBBX8jgICAgABBwABrIgUkgICAgABBASEGAkAgACgCGCIHIAEgAiAAQRxqKAIAIggoAgwiCRGBgICAAAANAAJAAkAgACgCACIBQQRxDQBBASEGIAdB34TAgABBASAJEYGAgIAAAA0CIAMgACAEKAIMEYCAgIAAAEUNAQwCCyAHQd2EwIAAQQIgCRGBgICAAAANAUEBIQYgBUEBOgAXIAVBNGpBtITAgAA2AgAgBSAINgIMIAUgBzYCCCAFQRBqIAVBF2o2AgAgBSABNgIYIAUgAC0AIDoAOCAFIAAoAgQ2AhwgBSAAKQIQNwMoIAUgACkCCDcDICAFIAVBCGo2AjAgAyAFQRhqIAQoAgwRgICAgAAADQEgBSgCMEHThMCAAEECIAUoAjQoAgwRgYCAgAAADQELIAAoAhhBr4TAgABBASAAKAIcKAIMEYGAgIAAACEGCyAFQcAAaiSAgICAACAGC+sDAgV/An4jgICAgABBwABrIgUkgICAgABBASEGAkAgAC0ABA0AIAAtAAUhBwJAIAAoAgAiCCgCACIJQQRxDQBBASEGIAgoAhhB1YTAgABB14TAgAAgB0H/AXEiBxtBAkEDIAcbIAhBHGooAgAoAgwRgYCAgAAADQFBASEGIAgoAhggASACIAgoAhwoAgwRgYCAgAAADQFBASEGIAgoAhhBsITAgABBAiAIKAIcKAIMEYGAgIAAAA0BIAMgCCAEKAIMEYCAgIAAACEGDAELAkAgB0H/AXENAEEBIQYgCCgCGEHQhMCAAEEDIAhBHGooAgAoAgwRgYCAgAAADQEgCCgCACEJC0EBIQYgBUEBOgAXIAVBNGpBtITAgAA2AgAgBUEQaiAFQRdqNgIAIAUgCTYCGCAFIAgpAhg3AwggCCkCCCEKIAgpAhAhCyAFIAgtACA6ADggBSAIKAIENgIcIAUgCzcDKCAFIAo3AyAgBSAFQQhqNgIwIAVBCGogASACELaAgIAADQAgBUEIakGwhMCAAEECELaAgIAADQAgAyAFQRhqIAQoAgwRgICAgAAADQAgBSgCMEHThMCAAEECIAUoAjQoAgwRgYCAgAAAIQYLIABBAToABSAAIAY6AAQgBUHAAGokgICAgAAgAAvqAQEDfyOAgICAAEEQayICJICAgIAAIAAoAgAhAEEBIQMgASgCGEHhhMCAAEEBIAFBHGooAgAoAgwRgYCAgAAAIQQgAkEAOgAFIAIgBDoABCACIAE2AgAgAiAANgIMIAIgAkEMakGEgcCAABCkgICAACEBIAIgAEEEajYCDCABIAJBDGpBhIHAgAAQpICAgAAhASACIABBCGo2AgwgASACQQxqQYSBwIAAEKSAgIAAIQECQCACLQAEDQAgASgCACIBKAIYQeKEwIAAQQEgASgCHCgCDBGBgICAAAAhAwsgAkEQaiSAgICAACADC4YDAgR/An4jgICAgABBwABrIgMkgICAgABBASEEAkAgAC0ABA0AIAAtAAUhBAJAAkACQAJAIAAoAgAiBSgCACIGQQRxDQAgBEH/AXENAQwDCyAEQf8BcQ0BQQEhBCAFKAIYQeCEwIAAQQEgBUEcaigCACgCDBGBgICAAAANAyAFKAIAIQYMAQtBASEEIAUoAhhB1YTAgABBAiAFQRxqKAIAKAIMEYGAgIAAAEUNAQwCC0EBIQQgA0EBOgAXIANBNGpBtITAgAA2AgAgA0EQaiADQRdqNgIAIAMgBjYCGCADIAUpAhg3AwggBSkCCCEHIAUpAhAhCCADIAUtACA6ADggAyAFKAIENgIcIAMgCDcDKCADIAc3AyAgAyADQQhqNgIwIAEgA0EYaiACKAIMEYCAgIAAAA0BIAMoAjBB04TAgABBAiADKAI0KAIMEYGAgIAAACEEDAELIAEgBSACKAIMEYCAgIAAACEECyAAQQE6AAUgACAEOgAEIANBwABqJICAgIAAIAALywEBA38jgICAgABBEGsiAiSAgICAACAAKAIAIQBBASEDIAEoAhhB4YTAgABBASABQRxqKAIAKAIMEYGAgIAAACEEIAJBADoABSACIAQ6AAQgAiABNgIAIAIgADYCDCACIAJBDGpBhIHAgAAQpICAgAAhASACIABBBGo2AgwgASACQQxqQYSBwIAAEKSAgIAAIQECQCACLQAEDQAgASgCACIBKAIYQeKEwIAAQQEgASgCHCgCDBGBgICAAAAhAwsgAkEQaiSAgICAACADCwIAC6wBAQN/I4CAgIAAQRBrIgIkgICAgAAgACgCACEDQQEhACABKAIYQeGEwIAAQQEgAUEcaigCACgCDBGBgICAAAAhBCACQQA6AAUgAiAEOgAEIAIgATYCACACIAM2AgwgAiACQQxqQYSBwIAAEKSAgIAAIQECQCACLQAEDQAgASgCACIBKAIYQeKEwIAAQQEgASgCHCgCDBGBgICAAAAhAAsgAkEQaiSAgICAACAAC+ACAQN/I4CAgIAAQYABayICJICAgIAAIAAoAgAhAAJAAkACQAJAAkAgASgCACIDQRBxDQAgA0EgcQ0BIAA1AgAgARCpgICAACEADAILIAAoAgAhAEEAIQMDQCACIANqQf8AakEwQdcAIABBD3EiBEEKSRsgBGo6AAAgA0F/aiEDIABBD0shBCAAQQR2IQAgBA0ACyADQYABaiIAQYEBTw0CIAFB44TAgABBAiACIANqQYABakEAIANrEKqAgIAAIQAMAQsgACgCACEAQQAhAwNAIAIgA2pB/wBqQTBBNyAAQQ9xIgRBCkkbIARqOgAAIANBf2ohAyAAQQ9LIQQgAEEEdiEAIAQNAAsgA0GAAWoiAEGBAU8NAiABQeOEwIAAQQIgAiADakGAAWpBACADaxCqgICAACEACyACQYABaiSAgICAACAADwsgAEGAARCrgICAAAALIABBgAEQq4CAgAAAC+cCAwJ/AX4DfyOAgICAAEEwayICJICAgIAAQSchAwJAAkAgAEKQzgBaDQAgACEEDAELQSchAwNAIAJBCWogA2oiBUF8aiAAQpDOAIAiBELwsX9+IAB8pyIGQf//A3FB5ABuIgdBAXRB5YTAgABqLwAAOwAAIAVBfmogB0Gcf2wgBmpB//8DcUEBdEHlhMCAAGovAAA7AAAgA0F8aiEDIABC/8HXL1YhBSAEIQAgBQ0ACwsCQCAEpyIFQeMATQ0AIAJBCWogA0F+aiIDaiAEpyIGQf//A3FB5ABuIgVBnH9sIAZqQf//A3FBAXRB5YTAgABqLwAAOwAACwJAAkAgBUEKSQ0AIAJBCWogA0F+aiIDaiAFQQF0QeWEwIAAai8AADsAAAwBCyACQQlqIANBf2oiA2ogBUEwajoAAAsgAUGAicCAAEEAIAJBCWogA2pBJyADaxCqgICAACEDIAJBMGokgICAgAAgAwurBQEHfyAAKAIAIgVBAXEiBiAEaiEHAkACQCAFQQRxDQBBACEBDAELAkACQCACDQBBACEIDAELAkAgAkEDcSIJDQAMAQtBACEIIAEhCgNAIAggCiwAAEG/f0pqIQggCkEBaiEKIAlBf2oiCQ0ACwsgCCAHaiEHC0ErQYCAxAAgBhshBgJAAkAgACgCCA0AQQEhCiAAIAYgASACELKAgIAADQEgACgCGCADIAQgAEEcaigCACgCDBGBgICAAAAPCwJAAkACQAJAAkAgAEEMaigCACIIIAdNDQAgBUEIcQ0EQQAhCiAIIAdrIgkhBUEBIAAtACAiCCAIQQNGG0EDcQ4DAwECAwtBASEKIAAgBiABIAIQsoCAgAANBCAAKAIYIAMgBCAAQRxqKAIAKAIMEYGAgIAAAA8LQQAhBSAJIQoMAQsgCUEBdiEKIAlBAWpBAXYhBQsgCkEBaiEKIABBHGooAgAhCSAAKAIEIQggACgCGCEHAkADQCAKQX9qIgpFDQEgByAIIAkoAhARgICAgAAARQ0AC0EBDwtBASEKIAhBgIDEAEYNASAAIAYgASACELKAgIAADQEgByADIAQgCSgCDBGBgICAAAANAUEAIQoCQANAAkAgBSAKRw0AIAUhCgwCCyAKQQFqIQogByAIIAkoAhARgICAgAAARQ0ACyAKQX9qIQoLIAogBUkhCgwBCyAAKAIEIQUgAEEwNgIEIAAtACAhC0EBIQogAEEBOgAgIAAgBiABIAIQsoCAgAANACAIIAdrQQFqIQogAEEcaigCACEIIAAoAhghCQJAA0AgCkF/aiIKRQ0BIAlBMCAIKAIQEYCAgIAAAEUNAAtBAQ8LQQEhCiAJIAMgBCAIKAIMEYGAgIAAAA0AIAAgCzoAICAAIAU2AgRBAA8LIAoLDQAgACABELSAgIAAAAsSACAAKAIAKAIAIAEQoICAgAALDwAgACgCACABEKCAgIAAC38BAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAC0AAA0AIAIgAEEBajYCCCABQeSDwIAAQQ0gAkEIakH0g8CAABChgICAACEADAELIAIgAEEEajYCDCABQc2DwIAAQQQgAkEMakHUg8CAABChgICAACEACyACQRBqJICAgIAAIAALogIBAX8jgICAgABBEGsiAiSAgICAACACIAAoAgAiADYCACACIABBEGo2AgQgASgCGEGhg8CAAEEOIAFBHGooAgAoAgwRgYCAgAAAIQAgAkEAOgANIAIgADoADCACIAE2AgggAkEIakGvg8CAAEEIIAJBuIPAgAAQooCAgABByIPAgABBBSACQQRqQbiDwIAAEKKAgIAAGiACLQAMIQECQCACLQANRQ0AIAFB/wFxIQBBASEBIAANAAJAIAIoAggiAS0AAEEEcQ0AIAEoAhhB24TAgABBAiABQRxqKAIAKAIMEYGAgIAAACEBDAELIAEoAhhB2oTAgABBASABQRxqKAIAKAIMEYGAgIAAACEBCyACQRBqJICAgIAAIAFB/wFxQQBHC+QBAAJAAkACQAJAAkACQCAAKAIALQAADgYAAQIDBAUACyABKAIYQeSBwIAAQRAgAUEcaigCACgCDBGBgICAAAAPCyABKAIYQdqBwIAAQQogAUEcaigCACgCDBGBgICAAAAPCyABKAIYQc2BwIAAQQ0gAUEcaigCACgCDBGBgICAAAAPCyABKAIYQcKBwIAAQQsgAUEcaigCACgCDBGBgICAAAAPCyABKAIYQbKBwIAAQRAgAUEcaigCACgCDBGBgICAAAAPCyABKAIYQZyBwIAAQRYgAUEcaigCACgCDBGBgICAAAALDQAgACgCABoDfwwACwtcAQF/AkACQAJAIAFBgIDEAEYNAEEBIQQgACgCGCABIABBHGooAgAoAhARgICAgAAADQEL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AMCEAAAsAAAAA3ANBekMAADXhAAABwAAAAMwGQbcDAAA14QAAAcAAAAF3gMSAAUDDQAA3oQAAAEAAAADLxoG9gwAAN6EAAABAAAABd4DEgAABTEPAADvhAAABwAAAAN1DwYkDwAA74QAAAcAAAAGbAMSAAUXDwAAUoQAAA0AAAADag8GCg8AAFKEAAANAAAABmwDEgAFagAAAPeEAAAtAAAAA3gFBUsPAAAVhQAABwAAAAMjEwY+DwAAFYUAAAcAAAAGbAMSAAUdDQAAHIUAAAEAAAADIhQGEA0AAByFAAABAAAABd4DEgAAAAAE/////6YCAAAH7QMAAAAAnzZGAACeBAAAASgBBxwMAAD/////EgAAAAIhFQinAAAAOAgAAAInDQVlDwAA/////wcAAAADxxMGWA8AAP////8HAAAABmwDEgAIxAAAAFgIAAADzQkI0w0AAHAIAAADgRoGxg0AAP////8JAAAABTQEEglwDAAA/////wUAAAAFNAQeBmMMAAD/////BQAAAAdABQ0AAAXtDQAA/////wEAAAADgxQG4A0AAP////8BAAAABTQEEgAABdAAAAD/////UQAAAAPXDQUHDgAA/////wEAAAADsxoG+g0AAP////8BAAAABTQEEgAABdwAAAD/////MgAAAAPVDQUhDgAA/////wEAAAADkBoGFA4AAP////8BAAAABTQEEgAABc0PAAD/////DQAAAAPPDwbADwAA/////w0AAAAGwgMSAAjoAAAAiAgAAAPdBQU7DgAA/////wEAAAADgxQGLg4AAP////8BAAAABTQEEgAABTcNAAD/////CwAAAAPGFAYqDQAA/////wsAAAAF3gMSAAAIswAAAKAIAAACJQ0FNgwAAP////8FAAAAA2chBikMAAD/////BQAAAARlBQ0ABXYAAAD/////NQAAAANoCQVRDQAA/////wUAAAADHxgGRA0AAP////8FAAAABd4DEgAFfw8AAP////8HAAAAAyMTBnIPAAD/////BwAAAAZsAxIABWsNAAD/////AQAAAAMiFAZeDQAA/////wEAAAAF3gMSAAAFggAAAP////9RAAAAA3INBYUNAAD/////AQAAAANSGgZ4DQAA/////wEAAAAF3gMSAAAFjgAAAP////8sAAAAA3ANBZ8NAAD/////BwAAAAMwGQaSDQAA/////wcAAAAF3gMSAAW5DQAA/////wEAAAADLxoGrA0AAP////8BAAAABd4DEgAABbMPAAD/////CQAAAAN1DwamDwAA/////wkAAAAGbAMSAAWZDwAA/////w0AAAADag8GjA8AAP////8NAAAABmwDEgAFmgAAAP////8rAAAAA3gFBecPAAD/////BwAAAAMjEwbaDwAA/////wcAAAAGbAMSAAVVDgAA/////wEAAAADIhQGSA4AAP////8BAAAABd4DEgAAAAAEK4UAALUAAAAH7QMAAAAAn7EbAAC9AQAAASgBBfUAAAA2hQAApQAAAAIvCQlQDAAARIUAAAUAAAADAAEcBkMMAABEhQAABQAAAARlBQ0ACQYBAABKhQAAJwAAAAMBAQkFbw4AAEqFAAAFAAAAA+QTBmIOAABKhQAABQAAAAXeAxIABYkOAABnhQAAAQAAAAPnEQZ8DgAAZ4UAAAEAAAAF3gMSAAAJEgEAAH2FAAA3AAAAAwYBCQWjDgAAfYUAAAsAAAAD9RMGlg4AAH2FAAALAAAABd4DEgAFvQ4AAKaFAAABAAAAA/kXBrAOAACmhQAAAQAAAAXeAxIAAAkeAQAAuIUAACMAAAADCgEFBdcOAADThQAAAQAAAAPnEQbKDgAA04UAAAEAAAAF3gMSAAAAAAr/////SgAAAAftAwAAAACfaTIAAIgDAAABKAEK/////w4AAAAH7QMAAAAAn2RJAACPAwAAASgBCv////8+AAAAB+0DAAAAAJ+5DAAAwAMAAAEoAQPAOQAA+1wAAAJXAQT/////uQAAAAftAwAAAACfrxIAAC1kAAABmwEFBQgAAP////+4AAAAApcJCAEQAAC4CAAAAlxHC/QPAADgCAAABmwDEgAAAANzIwAAqF0AAAJXAQT/////3AAAAAftAwAAAACfih8AALFjAAABmwEFWQgAAP/////bAAAAApsJCBsQAAAICQAAAlxHCw4QAAAwCQAABmwDEgAAAAMZSAAAsl4AAAJXAQT/////3AAAAAftAwAAAACfFSIAAGJiAAABmwEFrQgAAP/////bAAAAAp8JCDUQAABYCQAAAlxHCygQAACACQAABmwDEgAAAAO/SAAALV4AAAJXAQT/////3AAAAAftAwAAAACfoSgAAOZhAAABmwEFAQkAAP//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AAAAAAAAAAAA8HwAAPF8AAATfQAAFH0AADZ9AAA3fQAAWX0AAFp9AAAAAAAAAAAAAH19AAClfQAAN34AAEd+AAAAAAAAAAAAAH19AAClfQAAN34AAEd+AAAAAAAAAAAAAH19AACSfQAAl30AAKN9AAAAAAAAAAAAAIR9AACLfQAAl30AAJx9AAAAAAAAAAAAAIR9AACLfQAAl30AAJx9AAAAAAAAAAAAAKZ9AACtfQAAsn0AAAF+AAAAAAAAAAAAAKZ9AACtfQAAsn0AAAF+AAAAAAAAAAAAANZ9AADXfQAA4X0AAON9AADqfQAA9H0AAAAAAAAAAAAAAX4AAAR+AAApfgAANn4AAAAAAAAAAAAAyWcAAM5nAADuZwAA/GcAAAAAAAAAAAAAgmgAAIloAACZaAAA+2gAAAAAAAAAAAAAgmgAAIloAACZaAAA+2gAAAAAAAAAAAAAp2gAALBoAAC+aAAAwWgAAAAAAAAAAAAAp2gAALBoAAC+aAAAwWgAAAAAAAAAAAAA3GoAAOVqAAAeawAAgGsAAAAAAAAAAAAA3GoAAOVqAAAeawAAgGsAAAAAAAAAAAAALGsAADVrAABDawAARmsAAAAAAAAAAAAALGsAADVrAABDawAARmsAAAAAAAAAAAAAmHUAAKV1AACKYAAAjmAAAMhuAAAvcAAAMXAAANxyAACmdQAAAnYAAFtcAABkXAAABHYAAMF4AADdcgAA6nIAAMJ4AADPeAAA0HgAANl4AABIXQAAUV0AANt4AADcewAA3XsAAO57AADvewAAAHwAAAJ8AABHfgAAh2cAAHJpAABJfgAAT38AAFB/AADBfwAAwn8AANN/AADVfwAA4oAAAOOAAABXgQAAYGoAAOZrAAAkZgAAhWcAAAAAAAAAAAAADQAAADsAAABAAAAAagAAAAAAAAAAAAAADQAAADsAAABAAAAAagAAAAAAAAAAAAAAOgAAADsAAABWAAAAXgAAAAAAAAAAAAAAOgAAADsAAABWAAAAXgAAAAAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAADtgwAAKYUAAP7////+////K4UAAOCFAAD+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7///8AAAAAAAAAAADqBw0uZGVidWdfYWJicmV2AREBJQ4TBQMOEBcbDrRCGREBEgYAAAI5AQMOAAADLgARARIGQBhuDgMOOgs7BT8ZhwEZAAAEEQElDhMFAw4QFxsOtEIZEQFVFwAABS4Abg4DDjoLOwUgCwAABi4BEQESBkAYbg4DDjoLOwsAAAcdADETVRdYC1kLVwsAAAgdADETEQESBlgLWQtXCwAACR0AMRNVF1gLWQVXCwAACh0AMRMRARIGWAtZBVcLAAALLgBuDgMOOgs7BT8ZIAsAAAwuAREBEgZAGG4OAw46CzsFPxkAAA0dATETEQESBlgLWQVXCwAADh0BMRMRARIGWAtZC1cLAAAPHQExE1UXWAtZBVcLAAAQLgBuDgMOOgs7Cz8ZIAsAABEuABEBEgZAGG4OAw46CzsFAAASLgERARIGQBhuDgMOOgs7Cz8ZAAATHQExE1UXWAtZC1cLAAAULgBuDgMOOgs7CyALAAAVLgERARIGQBgxEwAAFi4AEQESBkAYMRMAABcuABEBEgZAGG4OAw46CzsLAAAYLgARARIGQBhuDgMOOgs7C4cBGQAAGS4AEQESBkAYbg4DDjoLOws/GYcBGQAAGi4Abg4DDjoLOwWHARkgCwAAGy4BEQESBkAYbg4DDjoLOws/GYcBGQAAAAERASUOEwUDDhAXGw60QhkRARIGAAACOQEDDgAAAy4Abg4DDjoLOwU/GSALAAAELgBuDgMOOgs7CyALAAAFLgERARIGQBgDDjoLOwU/GQAABh0BMRNVF1gLWQVXCwAABx0BMRNVF1gLWQtXCwAACB0BMRMRARIGWAtZC1cLAAAJHQAxExEBEgZYC1kFVwsAAAodADETEQESBlgLWQtXCwAACx0AMRNVF1gLWQtXCwAADC4Abg4DDjoLOws/GSALAAANLgBuDgMOOgs7BSALAAAAAREBJQ4TBQMOEBcbDrRCGREBEgYAAAI5AQMOAAADLgARARIGQBgDDjoLOwU/GQAAAAERASUOEwUDDhAXGw60QhkRAVUXAAACOQEDDgAAAy4Abg4DDjoLOwsgCwAABC4BEQESBkAYbg4DDjoLOwU/GQAABR0BMRMRARIGWAtZC1cLAAAGHQAxExEBEgZYC1kFVwsAAAcdADETEQESBlgLWQtXCwAACB0BMRNVF1gLWQtXCwAACR0BMRMRARIGWAtZBVcLAAAKLgARARIGQBhuDgMOOgs7BT8ZAAALHQAxE1UXWAtZBVcLAAAMLgBuDgMOOgs7BSALAAAAAREBJQ4TBQMOEBcbDrRCGREBEgYAAAI5AQMOAAADLgARARIGQBgDDjoLOwU/GQAAAADxPgsuZGVidWdfbGluZU4AAAAEADQAAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2FsbG9jL3NyYwAAcmF3X3ZlYy5ycwABAAAAAAUCbBkAAAOEBAEFBQohAggAAQFVEwAABADzAgAAAQEB+w4NAAEBAQEAAAABAAABbGlicmFyeS9jb3JlL3NyYy9vcHMAbGlicmFyeS9jb3JlL3NyYy9mbXQAbGlicmFyeS9jb3JlL3NyYy9wdHIAbGlicmFyeS9jb3JlL3NyYwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL2l0ZXIAbGlicmFyeS9jb3JlL3NyYy9pdGVyL3RyYWl0cwBsaWJyYXJ5L2NvcmUvc3JjL3N0cgBsaWJyYXJ5L2NvcmUvc3JjL2l0ZXIAbGlicmFyeS9jb3JlL3NyYy9pdGVyL2FkYXB0ZXJzAGxpYnJhcnkvY29yZS9zcmMvbnVtAGxpYnJhcnkvY29yZS9zcmMvbWVtAGxpYnJhcnkvY29yZS9zcmMvc2xpY2UAbGlicmFyeS9jb3JlL3NyYy9jaGFyAABmdW5jdGlvbi5ycwABAABtb2QucnMAAgAAbW9kLnJzAAMAAHBhbmlja2luZy5ycwAEAABudW0ucnMAAgAAaW50cmluc2ljcy5ycwAEAABjb25zdF9wdHIucnMAAwAAbXV0X3B0ci5ycwADAABtYWNyb3MucnMABQAAaXRlcmF0b3IucnMABgAAY291bnQucnMABwAAYWNjdW0ucnMABgAAY21wLnJzAAQAAHJhbmdlLnJzAAgAAG1hcC5ycwAJAABmaWx0ZXIucnMA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gAHWBQ8DDZAGA/N+CIIDjQFKBQ0GCCEFDwJTEQUNkgUPHgYD8366A40BZgUNBksFD8cEAQUKA5AC1gIBAAEBAAUC/////wOaAwEEAgUPCgPyfVgGA/N+dAURBgOAAQg8BQ8DDZAGA/N+CIIDjQFKBQ0GCCEFDwJUEQUNkgUPHgYD8366A40BZgUNBksFD8cEAQUKA5AC1gIBAAEBQgAAAAQAJQAAAAEBAfsODQABAQEBAAAAAQAAAXNyYwAAbWFjcm9zLnJzAAEAAAAABQLhhQAAA68CAQURCiEFDrsCAQABAQD+zAEKLmRlYnVnX3N0cntpbXBsIzl9AHtpbXBsIzQ4fQB7aW1wbCMxOH0Ae2ltcGwjOH0Ae2ltcGwjMjd9AHtpbXBsIzd9AHtpbXBsIzI2fQB7aW1wbCM2fQB7aW1wbCMzNX0Ae2ltcGwjNX0Ae2ltcGwjMTc0fQB7aW1wbCM1NH0Ae2ltcGwjNH0Ae2ltcGwjMTczfQB7aW1wbCMzfQB7aW1wbCMyfQB7aW1wbCMxMX0Ae2ltcGwjMX0Ae2Nsb3N1cmUjMX0Ae2ltcGwjMH0Ae2Nsb3N1cmUjMH0AaXNfcHJldHR5AGVudHJ5AGlzX2NoYXJfYm91bmRhcnkAZmxvb3JfY2hhcl9ib3VuZGFyeQBpc191dGY4X2NoYXJfYm91bmRhcnkAbWVtY3B5AHdyaXRlX3ByZWZpeABpbmRleABjYXBhY2l0eV9vdmVyZmxvdwBkZWJ1Z190dXBsZV9uZXcAZW5jb2RlX3V0ZjhfcmF3AG5leHQAc2xpY2VfZXJyb3JfZmFpbF9ydABzbGljZV9pbmRleF9vcmRlcl9mYWlsX3J0AGdldGNvdW50AGludABwYW5pY19mbXQAcmVzdWx0AFJlc3VsdABtZW1zZXQAYWxpZ25fb2Zmc2V0AGdldABEZWJ1Z1NldABEZWJ1Z1N0cnVjdABzaWduX3BsdXMAdHJhaXRzAGFkYXB0ZXJzAGJ1aWxkZXJzAGNvdW50X2NoYXJzAG9wcwB2YWxpZGF0aW9ucwBjb21waWxlcl9idWlsdGlucwBpbXBscwBzZXRfYnl0ZXMAc2V0X2J5dGVzX2J5dGVzAGNvcHlfZm9yd2FyZF9ieXRlcwBjb3B5X2JhY2t3YXJkX2J5dGVzAHNldF9ieXRlc193b3JkcwBjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwBjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMAY29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzAG1ldGhvZHMAaW50cmluc2ljcwB3cml0ZV9zdHIAbXV0X3B0cgBjb25zdF9wdHIAaXRlcmF0b3IASXRlcmF0b3IAbWVtY2hyAEZvcm1hdHRlcgBQYWRBZGFwdGVyAGZpbHRlcgBpdGVyAEl0ZXIARGVidWdJbm5lcgBjaGFyAGltcABtZW1jbXAAYmNtcAB3cmFwAG1hcABydW4AcGF0dGVybgBvcHRpb24AT3B0aW9uAGZ1bmN0aW9uAHN0cmxlbgB6ZXJvX3dpZGVuAHN1bQBudW0AYWNjdW0AbWVtAHplcm9fd2lkZW5fbXVsAHdyYXBwaW5nX211bABNdWwAc2xpY2VfZXJyb3JfZmFpbABzbGljZV9pbmRleF9vcmRlcl9mYWlsAHBhZF9pbnRlZ3JhbABoaQBkZWJ1Z190dXBsZV9maWVsZDFfZmluaXNoAG5leHRfbWF0Y2gAcGFuaWNraW5nAHBhZGRpbmcAUG9zdFBhZGRpbmcAd3JhcHBpbmdfbmVnAGFzX3VzaXplAHRvX3VzaXplAG1lbW1vdmUAUmFuZ2VJbmNsdXNpdmUAdXRmOF9pc19jb250X2J5dGUAdXRmOF9hY2NfY29udF9ieXRlAGNvbnRhaW5zX3plcm9fYnl0ZQB3cml0ZQBXcml0ZQBlbnVtZXJhdGUAYWx0ZXJuYXRlAGNoYXJfY291bnRfZ2VuZXJhbF9jYXNlAG1lbWNocl9nZW5lcmFsX2Nhc2UAY29yZQBEZWJ1Z1R1cGxlAGludG9fc2xpY2VfcmFuZ2UARm5PbmNlAHNsaWNlAGNvcHlfZm9yd2FyZABjb3B5X2JhY2t3YXJkAE9yZABtYXBfZm9sZABmaWVsZAB1bndyYXBfZmFpbGVkAGdldF91bmNoZWNrZWQAZm9yd2FyZF91bmNoZWNrZWQAd3JhcHBpbmdfYWRkAHVuY2hlY2tlZF9hZGQAc2lnbl9hd2FyZV96ZXJvX3BhZABhbGxvYwBwYW5pYwByYXdfdmVjAHNhdHVyYXRpbmdfc3ViAHdyYXBwaW5nX3N1YgBVU0laRV9NQVJLRVIAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIxN2gyZjIyMjkyZGIwNTNkY2ZmRQBfWk40Y29yZTVzbGljZTNjbXA4MV8kTFQkaW1wbCR1MjAkY29yZS4uY21wLi5QYXJ0aWFsRXEkTFQkJHU1YiRCJHU1ZCQkR1QkJHUyMCRmb3IkdTIwJCR1NWIkQSR1NWQkJEdUJDJlcTE3aGE0ZTMwNTNjNThiNDIyZWZFAF9aTjRjb3JlNGl0ZXI2dHJhaXRzOGl0ZXJhdG9yOEl0ZXJhdG9yM3N1bTE3aGVhZmRlZDdkYWY5MjJhZGZFAF9aTjRjb3JlNXNsaWNlMjlfJExUJGltcGwkdTIwJCR1NWIkVCR1NWQkJEdUJDNnZXQxN2hkMWQ2NzE4OGI3OWMyMmRmRQBfWk4xMDZfJExUJGNvcmUuLm9wcy4ucmFuZ2UuLlJhbmdlJExUJHVzaXplJEdUJCR1MjAkYXMkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCQkdTViJFQkdTVkJCRHVCQkR1QkM2dldDE3aDhjYjkwZmVhYmFlNGExZGZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTJjb3B5X2ZvcndhcmQyOWNvcHlfZm9yd2FyZF9taXNhbGlnbmVkX3dvcmRzMTdoOWQyOGE0MzkwZDdhZmFjZkUAX1pOMTEwXyRMVCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZUZyb20kTFQkdXNpemUkR1QkJHUyMCRhcyR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJCR1NWIkVCR1NWQkJEdUJCRHVCQ1aW5kZXgxN2hlZGM3OGQ1ZjRhMDRjOWJmRQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyM25ldzE3aDViOGU3OWNkODkxN2ZlOGZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfODE3aDFiNmNiNjU3ODRhOGE1N2ZFAF9aTjRjb3JlM3N0cjZ0cmFpdHMxMTJfJExUJGltcGwkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCRzdHIkR1QkJHUyMCRmb3IkdTIwJGNvcmUuLm9wcy4ucmFuZ2UuLlJhbmdlRnJvbSRMVCR1c2l6ZSRHVCQkR1QkM2dldDE3aDJhNzI1MmRiMTgxYTUwM2ZFAF9aTjRjb3JlNGl0ZXI1cmFuZ2UxMDFfJExUJGltcGwkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJHUyMCRmb3IkdTIwJGNvcmUuLm9wcy4ucmFuZ2UuLlJhbmdlJExUJEEkR1QkJEdUJDRuZXh0MTdoODFiNmM5NTk2OTgxNmMyZkUAX1pONGNvcmUxMGludHJpbnNpY3MxN2NvbnN0X2V2YWxfc2VsZWN0MTdoYmQwZjZlOTRhNjZjMDUyZkUAX1pONTJfJExUJGk2NCR1MjAkYXMkdTIwJGNvbXBpbGVyX2J1aWx0aW5zLi5pbnQuLkRJbnQkR1QkMmhpMTdoNGYzYzI0MDJjZGQ1NTgwZkUAX1pONGNvcmUzZm10OGJ1aWxkZXJzMTBEZWJ1Z1R1cGxlNWZpZWxkMTdoY2I3ZmVjYmEyMGE0NGVmZUUAX1pONzVfJExUJHVzaXplJHUyMCRhcyR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJCR1NWIkVCR1NWQkJEdUJCRHVCQzZ2V0MTdoM2NhM2RhZjYwZTg2YzBmZUUAX1pONGNvcmUzb3BzOGZ1bmN0aW9uNkZuT25jZTljYWxsX29uY2UxN2gxOTJmMzdkNWUxMzg2ZGJlRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEyY29weV9mb3J3YXJkMThjb3B5X2ZvcndhcmRfYnl0ZXMxN2g5ZTQ4MjQ2ZDI5OTYxZWFlRQBfWk40Y29yZTNzdHI1Y291bnQxMWNvdW50X2NoYXJzMTdoMmRjMTVmODdiYzdlYWM4ZUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02c3RybGVuMTdoZjg0OTU2MzU0ZmQxNWE3ZUUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQ2b2Zmc2V0MTdoODJiMTcwNDhkNGMxNDY0ZUUAX1pONGNvcmUzcHRyMTNyZWFkX3ZvbGF0aWxlMTdoNDcxMzc5OWMzNWY2YTlmZEUAX1pONGNvcmU1c2xpY2U2bWVtY2hyMTltZW1jaHJfZ2VuZXJhbF9jYXNlMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoZmMwNDZhZDUzMGI0ODdmZEUAX1pONGNvcmUzbnVtMjNfJExUJGltcGwkdTIwJHVzaXplJEdUJDEyd3JhcHBpbmdfc3ViMTdoYzk2YWZmZGI4YTljOWVlZEUAX1pONGNvcmUzc3RyNnRyYWl0czExMl8kTFQkaW1wbCR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJHN0ciRHVCQkdTIwJGZvciR1MjAkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2VGcm9tJExUJHVzaXplJEdUJCRHVCQ1aW5kZXgxN2hlZThiZWU2YTkzMTI5ZGVkRQBfWk40Y29yZTNzdHI2dHJhaXRzNjZfJExUJGltcGwkdTIwJGNvcmUuLm9wcy4uaW5kZXguLkluZGV4JExUJEkkR1QkJHUyMCRmb3IkdTIwJHN0ciRHVCQ1aW5kZXgxN2gzZmE4ZTMzZjI2OTRhZGRkRQBfWk44OV8kTFQkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2UkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi5yYW5nZS4uUmFuZ2VJdGVyYXRvckltcGwkR1QkOXNwZWNfbmV4dDE3aDg2MWJlN2RhNjUwZDg4ZGRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoZTZkOWYxNjMyMWNhOTJhZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MV9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yMTdoZjNmODI2M2NmN2M3NjBhZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY3B5MTdoZmUwYmJmYWRkOWNiMDBhZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxM2NvcHlfYmFja3dhcmQxN2g3OGE2M2M0OTA0MDEyYzlkRQBfWk41MF8kTFQkJFJGJG11dCR1MjAkVyR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uV3JpdGUkR1QkMTB3cml0ZV9jaGFyMTdoZDEyZjg3M2U5YjczNmM4ZEUAX1pONGNvcmUzZm10OGJ1aWxkZXJzOERlYnVnU2V0NWVudHJ5MTdoZjcxMTQwZTZkYmE1Zjk4ZEUAX1pONTJfJExUJGkzMiR1MjAkYXMkdTIwJGNvbXBpbGVyX2J1aWx0aW5zLi5pbnQuLkhJbnQkR1QkMTR6ZXJvX3dpZGVuX211bDE3aDdlNjIzYjJiZjQwNWU0OGRFAF9aTjRjb3JlNXNsaWNlNm1lbWNocjE5bWVtY2hyX2dlbmVyYWxfY2FzZTE3aGUzOWU3N2JkOTAxMjExOGRFAF9aTjY4XyRMVCRjb3JlLi5mbXQuLmJ1aWxkZXJzLi5QYWRBZGFwdGVyJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQ5d3JpdGVfc3RyMTdoZDA1NmI2NTgzODFkNjk3ZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHM5c2V0X2J5dGVzMTVzZXRfYnl0ZXNfd29yZHMxN2gyZjA1ZTQ5ZDFhMTQwODdkRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aGYyOWY5NTlhMWRiZWU0NmRFAF9aTjRjb3JlNXNsaWNlNm1lbWNocjZtZW1jaHIyOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2gwODRhNGYzNDE5YTJkYTJkRQBfWk40Y29yZTZyZXN1bHQxOVJlc3VsdCRMVCRUJEMkRSRHVCQ4YW5kX3RoZW4xN2hmOTIxNjYyN2VkOWQzNzFkRQBfWk40Y29yZTVzbGljZTVpbmRleDIyc2xpY2VfaW5kZXhfb3JkZXJfZmFpbDE3aDNlMTIxMTVkNjFkYjg3MGRFAF9aTjRjb3JlM3B0cjV3cml0ZTE3aDA5YjQ0YTJlY2U1MzhhZmNFAF9aTjRjb3JlM251bTIzXyRMVCRpbXBsJHUyMCR1c2l6ZSRHVCQxNHNhdHVyYXRpbmdfc3ViMTdoZDM0ZDZmZTAxMDM3NTBkY0UAX1pOMTA2XyRMVCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZSRMVCR1c2l6ZSRHVCQkdTIwJGFzJHUyMCRjb3JlLi5zbGljZS4uaW5kZXguLlNsaWNlSW5kZXgkTFQkJHU1YiRUJHU1ZCQkR1QkJEdUJDVpbmRleDE3aGZmNWUzYzJlZTk0ZDI5OWNFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzOXNldF9ieXRlczE1c2V0X2J5dGVzX2J5dGVzMTdoNzNjNzVhNzc5ZDI1NDE4Y0UAX1pONGNvcmU2cmVzdWx0MTN1bndyYXBfZmFpbGVkMTdoNDZkZTIwOTNhYWJmYmI3Y0UAX1pONGNvcmUzZm10M3J1bjE3aDg3ZjNjNDdhZGRkMTI3N2NFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzJtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aGZhMzY1ODQ2ZTViNGZmNmNFAF9aTjRjb3JlM3B0cjdtdXRfcHRyMzFfJExUJGltcGwkdTIwJCRCUCRtdXQkdTIwJFQkR1QkNm9mZnNldDE3aDAxMmIyNWY5OTgzNzZjMmNFAF9aTjRjb3JlNXNsaWNlMjlfJExUJGltcGwkdTIwJCR1NWIkVCR1NWQkJEdUJDNnZXQxN2g2MTBkYzExNzE4MGMxYTJjRQBfWk4xMDhfJExUJGNvcmUuLml0ZXIuLmFkYXB0ZXJzLi5maWx0ZXIuLkZpbHRlciRMVCRJJEMkUCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ1Y291bnQxN2hiNWM0NGY2NWY3NTc1ODBjRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aGM4YWQxZDMyNGM3NjY2MGNFAF9aTjRjb3JlM3N0cjIxXyRMVCRpbXBsJHUyMCRzdHIkR1QkNGZpbmQxN2g4ZWQxZWFlMDgxMDgyZWRiRQBfWk41Nl8kTFQkdXNpemUkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLmFjY3VtLi5TdW0kR1QkM3N1bTE3aGEyYmQzN2RiOWE2YWNkZGJFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDEyYWxpZ25fb2Zmc2V0MTdoMWU0NDVhNTRiNjgwNmNkYkUAX1pONGNvcmU1c2xpY2U0aXRlcjEzSXRlciRMVCRUJEdUJDExcHJlX2RlY19lbmQxN2gwZWYzMzJiZjhkNjQyODliRQBfWk40Y29yZTNjbXA1aW1wbHM1N18kTFQkaW1wbCR1MjAkY29yZS4uY21wLi5QYXJ0aWFsT3JkJHUyMCRmb3IkdTIwJHVzaXplJEdUJDJsdDE3aDFjNjQ2MzAzN2YwYjQ0OGJFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwRGVidWdJbm5lcjVlbnRyeTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aDMyYWI3M2E2ZmZhYjA1NmJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180MTdoZDQ0MGY5ZjI1ZDI3ODg1YkUAX1pONGNvcmUzcHRyNXdyaXRlMTdoMDRiN2M3NjhkNDc3ZGU0YkUAX1pONGNvcmUzZm10NVdyaXRlMTB3cml0ZV9jaGFyMTdoY2U0ZTVjOTdjMDA1MmI0YkUAX1pONGNvcmUzZm10OUZvcm1hdHRlcjdwYWRkaW5nMTdoNzA3MjJlNzRhMDc2MDE0YkUAX1pOOTFfJExUJGNvcmUuLnNsaWNlLi5pdGVyLi5JdGVyJExUJFQkR1QkJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5pdGVyYXRvci4uSXRlcmF0b3IkR1QkNG5leHQxN2hlMWRhMGI0M2ViM2UxYzNiRQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ4cG9zaXRpb24xN2hmYmM5YjM4MWU3ZjY0MWZhRQBfWk40Y29yZTRjaGFyN21ldGhvZHMxNWVuY29kZV91dGY4X3JhdzE3aDNmZDg2M2VkMGNiNzY3ZWFFAF9aTjUyXyRMVCRpMzIkdTIwJGFzJHUyMCRjb21waWxlcl9idWlsdGlucy4uaW50Li5ISW50JEdUJDEwemVyb193aWRlbjE3aGJlNGIzNDY0ZThkNjc3YmFFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbXNldDE3aGNhM2VlYjllOTE3YjY1YmFFAF9aTjc1XyRMVCR1c2l6ZSR1MjAkYXMkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCQkdTViJFQkdTVkJCRHVCQkR1QkMTNnZXRfdW5jaGVja2VkMTdoMzk5MzJjZGEzZmY3MWNhYUUAX1pONGNvcmUzc3RyMTF2YWxpZGF0aW9uczE3dXRmOF9pc19jb250X2J5dGUxN2gwMDJkMzc4NmU0ZGM4NmFhRQBfWk40Y29yZTNzdHI2dHJhaXRzMTEwXyRMVCRpbXBsJHUyMCRjb3JlLi5zbGljZS4uaW5kZXguLlNsaWNlSW5kZXgkTFQkc3RyJEdUJCR1MjAkZm9yJHUyMCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZVRvJExUJHVzaXplJEdUJCRHVCQ1aW5kZXgxN2hmYzZlMzQ3NmIwYjRiMDhhRQBfWk40Y29yZTNzdHI2dHJhaXRzMTEwXyRMVCRpbXBsJHUyMCRjb3JlLi5zbGljZS4uaW5kZXguLlNsaWNlSW5kZXgkTFQkc3RyJEdUJCR1MjAkZm9yJHUyMCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZVRvJExUJHVzaXplJEdUJCRHVCQzZ2V0MTdoNGZmNWE5YTQ4OGFhOTM2YUUAX1pONGNvcmUzY21wM21pbjE3aDk4MGQ1OTllM2NhMjlhMWFFAF9aTjExNV8kTFQkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2VJbmNsdXNpdmUkTFQkdXNpemUkR1QkJHUyMCRhcyR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJCR1NWIkVCR1NWQkJEdUJCRHVCQ1aW5kZXgxN2g1ZTlhY2I3YTM1ZjZmNDFhRQBfWk40Y29yZTVzbGljZTI5XyRMVCRpbXBsJHUyMCQkdTViJFQkdTVkJCRHVCQxM2dldF91bmNoZWNrZWQxN2gwNTY5MDIxZTIwZTkwNmY5RQBfWk40Y29yZTRjaGFyN21ldGhvZHMyMl8kTFQkaW1wbCR1MjAkY2hhciRHVCQxMWVuY29kZV91dGY4MTdoMTlhMWYzYTg3M2UzNGVlOUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxM2NvcHlfYmFja3dhcmQxOWNvcHlfYmFja3dhcmRfYnl0ZXMxN2g3NWQ5ZDFkODkxOWM3YWQ5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMjE3aGM2MTI1Yzc3N2E4ZmM1YzlFAF9aTjRjb3JlM3N0cjZ0cmFpdHM2Nl8kTFQkaW1wbCR1MjAkY29yZS4ub3BzLi5pbmRleC4uSW5kZXgkTFQkSSRHVCQkdTIwJGZvciR1MjAkc3RyJEdUJDVpbmRleDE3aDc2Njg4YTQ4N2EzMDk4YjlFAF9aTjRjb3JlM3N0cjExdmFsaWRhdGlvbnMxNW5leHRfY29kZV9wb2ludDE3aDdhYzY4MjU0NGMxNjNkOTlFAF9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXI5YWx0ZXJuYXRlMTdoZjdlZTVjNmI0ZDU3Y2M4OUUAX1pONGNvcmUzc3RyNWNvdW50MjNjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTE3aGVmN2EyMWMyNjYwYzgzODlFAF9aTjRjb3JlM3N0cjExdmFsaWRhdGlvbnMxOHV0ZjhfYWNjX2NvbnRfYnl0ZTE3aDJlNTUxZDJjNDI3NTQ3NzlFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoYzU0NzQ3OTEzOWNiMWU2OUUAX1pONGNvcmUzbWVtN3JlcGxhY2UxN2hkZTQ2MmJlZDdmM2I4ZjI5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2gyYjE5OTBiYTBkOWZjYTI5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aDU4N2ZmZDk1M2I2ODhhMjlFAF9aTjRjb3JlM251bTIzXyRMVCRpbXBsJHUyMCR1c2l6ZSRHVCQxM3VuY2hlY2tlZF9hZGQxN2hlOWU1NmYzYzkzNWI0ODI5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2gwNzBlOTdhYzA3MTFiYzE5RQBfWk40Y29yZTNzdHIyMV8kTFQkaW1wbCR1MjAkc3RyJEdUJDE5Zmxvb3JfY2hhcl9ib3VuZGFyeTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aDk5YTg2ZjViY2I0NTE3MDlFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoYTM3NjFlOWIwZjAxNWZlOEUAX1pONGNvcmUzbWVtN3JlcGxhY2UxN2gwMGRhZWI0MDBlNGY2M2Q4RQBfWk4xMTBfJExUJGNvcmUuLml0ZXIuLmFkYXB0ZXJzLi5lbnVtZXJhdGUuLkVudW1lcmF0ZSRMVCRJJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDRuZXh0MTdoODgyMDgwOWMxMDQyYTBjOEUAX1pOMTA2XyRMVCRjb3JlLi5zbGljZS4uaXRlci4uSXRlciRMVCRUJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uZG91YmxlX2VuZGVkLi5Eb3VibGVFbmRlZEl0ZXJhdG9yJEdUJDluZXh0X2JhY2sxN2hiZDM0NDVlNTQ1MmI1YmI4RQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ5cnBvc2l0aW9uMTdoM2QxOTRkZWMyMGRmMjhhOEUAX1pOODFfJExUJGNvcmUuLnN0ci4uaXRlci4uQ2hhcnMkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ1Y291bnQxN2g3NDE5ZGJiNDU5ZmM2Nzk4RQBfWk41MF8kTFQkJFJGJG11dCR1MjAkVyR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uV3JpdGUkR1QkOXdyaXRlX2ZtdDE3aDVlZWFiMDg2OGVlZTllNzhFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2g0OWZiOTZkMDI5YzZiYjc4RQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyMTlzaWduX2F3YXJlX3plcm9fcGFkMTdoYmQ2ZTdkMzZjYzI1NTQ3OEUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aGRiYWE4Yjk4ZGViNTM5NjhFAF9aTjRjb3JlNGNoYXI3bWV0aG9kczhsZW5fdXRmODE3aGEyMTMzZmZjYjAyMzAxNjhFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwRGVidWdUdXBsZTlpc19wcmV0dHkxN2hjZTYwNjg0ODUwMjM0NTQ4RQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ0bmV4dDE3aDFlNmJiN2IyZDQ3ZmQwNDhFAF9aTjRjb3JlNXNsaWNlNWluZGV4NzRfJExUJGltcGwkdTIwJGNvcmUuLm9wcy4uaW5kZXguLkluZGV4JExUJEkkR1QkJHUyMCRmb3IkdTIwJCR1NWIkVCR1NWQkJEdUJDVpbmRleDE3aDA4YjFmYTZhN2IxZDFmMzhFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184MTdoMzYwMGI5NTVlNzJkYjEzOEUAX1pOMTdjb21waWxlcl9idWlsdGluczNpbnQzbXVsM011bDNtdWwxN2g2YTllNmI2NDYwZmY4OTE4RQBfWk40Y29yZTNmbXQxMVBvc3RQYWRkaW5nNXdyaXRlMTdoNWNiZjkyZWZiNzMzODkxOEUAX1pONGNvcmUzZm10OGdldGNvdW50MTdoY2NlMGVmOGQ2MDBjZjgxOEUAX1pONGNvcmUzbnVtMjJfJExUJGltcGwkdTIwJGkxMjgkR1QkMTJ3cmFwcGluZ19hZGQxN2gwMjNjNzA1ODY5ZGViNTA4RQBfWk44MV8kTFQkY29yZS4uc3RyLi5wYXR0ZXJuLi5DaGFyU2VhcmNoZXIkdTIwJGFzJHUyMCRjb3JlLi5zdHIuLnBhdHRlcm4uLlNlYXJjaGVyJEdUJDEwbmV4dF9tYXRjaDE3aGUxNjBjYzkzNTliYzdhYjdFAF9aTjRjb3JlMTBpbnRyaW5zaWNzMTljb3B5X25vbm92ZXJsYXBwaW5nMTdoOTg0ZWM2OTFiNGRmYzRiN0UAX1pONGNvcmU2b3B0aW9uMTVPcHRpb24kTFQkVCRHVCQ2dW53cmFwMTdoNDgyNzFhMGYyNThhODJhN0UAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkM2FkZDE3aGI1ODFiZmEyMGZkMjZhOTdFAF9aTjVhbGxvYzdyYXdfdmVjMTdjYXBhY2l0eV9vdmVyZmxvdzE3aDA4MzEyYjZkYjNhZmU4ODdFAF9aTjRjb3JlM3B0cjdtdXRfcHRyMzFfJExUJGltcGwkdTIwJCRCUCRtdXQkdTIwJFQkR1QkNm9mZnNldDE3aGFjOTk4NWJkZGI0Y2FiNzdFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoYTI5Njg0NzE2NmFmZTg2N0UAX1pOOTFfJExUJGNvcmUuLnNsaWNlLi5pdGVyLi5JdGVyJExUJFQkR1QkJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5pdGVyYXRvci4uSXRlcmF0b3IkR1QkOHBvc2l0aW9uMTdoNzMxNDFhYTE4MTE5N2U1N0UAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aGE0OGZmNTNhZjQwYzYxNTdFAF9aTjRjb3JlNXNsaWNlNWluZGV4MjVzbGljZV9pbmRleF9vcmRlcl9mYWlsX3J0MTdoOWFkN2VkYTkwMTY2NGYzN0UAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDI2Y29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMxN2hkNzE3NGI3N2Y3YjVmZDI3RQBfWk40Y29yZTZvcHRpb24xNU9wdGlvbiRMVCRUJEdUJDNtYXAxN2hhNjcyZWE3MTcyN2Y1YTA3RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEyY29weV9mb3J3YXJkMTdoZTA1MmI4MjgzYmEwZDAwN0UAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzc3ViMTdoZGEzNjAzMzI0NGRkYWVmNkUAX1pONGNvcmU5cGFuaWNraW5nOXBhbmljX2ZtdDE3aGY4MDRhZGE3MmFhZDA2ZTZFAF9aTjRjb3JlM2NtcDNPcmQzbWluMTdoYmQ0YzRjNWM1YzkxYmNkNkUAX1pONTZfJExUJHVzaXplJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5hY2N1bS4uU3VtJEdUJDNzdW0yOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2hhNjU3NWVjNDU1NTAzY2Q2RQBfWk40Y29yZTNzdHIxNnNsaWNlX2Vycm9yX2ZhaWwxN2gyMzI2NWZmOWMwOGViZWE2RQBfWk40Y29yZTNudW0yMF8kTFQkaW1wbCR1MjAkdTgkR1QkMjFpc191dGY4X2NoYXJfYm91bmRhcnkxN2hjYjFiZDcwYjM2NGE1Njg2RQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyOXdyaXRlX3N0cjE3aDhmMDJmMDU4ZmI2NjQxNzZFAF9aTjRjb3JlM3B0cjEyYWxpZ25fb2Zmc2V0MTdoMGI5ODFjNmYwMzY1YTc2NkUAX1pONTJfJExUJGkxMjgkdTIwJGFzJHUyMCRjb21waWxlcl9idWlsdGlucy4uaW50Li5JbnQkR1QkMTJ3cmFwcGluZ19hZGQxN2hjYjE0ODZlMTJhYmE2MDY2RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMERlYnVnVHVwbGU1ZmllbGQyOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2hjMTgwZjY2NWE0YmU1NjU2RQBfWk44MV8kTFQkY29yZS4uc3RyLi5pdGVyLi5DaGFycyR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDRuZXh0MTdoOGFkM2UxN2Y0Y2NhMzI0NkUAX1pONGNvcmUzZm10OUZvcm1hdHRlcjEycGFkX2ludGVncmFsMTJ3cml0ZV9wcmVmaXgxN2hkMmNhMWZiNDc1NDRiZTM2RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDNhZGQxN2hhYTZlMTZjNzBmMDY2MDM2RQBfWk40Y29yZTNvcHM4ZnVuY3Rpb242Rm5PbmNlOWNhbGxfb25jZTE3aGMyMGNiYWQ1YzAwMDk3MjZFAF9aTjRjb3JlM2ZtdDEyVVNJWkVfTUFSS0VSMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoNzI0ZDVlM2E0Y2ZiNjMxNkUAX1pONGNvcmUxMGludHJpbnNpY3MxN2NvbnN0X2V2YWxfc2VsZWN0MTdoZGEwNDkxYjhiZDAxMTMxNkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY21wMTdoODBhNmNhZDAyZmQ3ZGUwNkUAX1pONGNvcmU2cmVzdWx0MTlSZXN1bHQkTFQkVCRDJEUkR1QkOGFuZF90aGVuMTdoNWI5YTE0Yjc4MjViZjRlNUUAX1pOMTAyXyRMVCRjb3JlLi5pdGVyLi5hZGFwdGVycy4ubWFwLi5NYXAkTFQkSSRDJEYkR1QkJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5pdGVyYXRvci4uSXRlcmF0b3IkR1QkNGZvbGQxN2hiNTA1ZjBhOWJmMzZlMWU1RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMERlYnVnVHVwbGU2ZmluaXNoMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoM2E4OWJkNDBiYmRhNWRjNUUAX1pONzlfJExUJGNvcmUuLnJlc3VsdC4uUmVzdWx0JExUJFQkQyRFJEdUJCR1MjAkYXMkdTIwJGNvcmUuLm9wcy4udHJ5X3RyYWl0Li5UcnkkR1QkNmJyYW5jaDE3aDY5NDNlYWIzYThlMTliYzVFAF9aTjc1XyRMVCR1c2l6ZSR1MjAkYXMkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCQkdTViJFQkdTVkJCRHVCQkR1QkM2dldDE3aDkxZjQ0Y2IxMmFjNjUzYjVFAF9aTjRjb3JlM29wczhmdW5jdGlvbjZGbk9uY2U5Y2FsbF9vbmNlMTdoNDJmMmJiZjU2OTcxNmNhNUUAX1pONGNvcmUzc3RyMjFfJExUJGltcGwkdTIwJHN0ciRHVCQxNmlzX2NoYXJfYm91bmRhcnkxN2hkYjUyYTdhYTZiODdhOTg1RQBfWk40Y29yZTVzbGljZTVpbmRleDc0XyRMVCRpbXBsJHUyMCRjb3JlLi5vcHMuLmluZGV4Li5JbmRleCRMVCRJJEdUJCR1MjAkZm9yJHUyMCQkdTViJFQkdTVkJCRHVCQ1aW5kZXgxN2g5NDgwZjk1ZGRlOTA1NjU1RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDNzdWIxN2hmNjI4N2Q1ZjRlZDQ1NzQ1RQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQzYWRkMTdoODdkYTY3ODZhYTQ5YTkzNUUAX1pONTFfJExUJGk2NCR1MjAkYXMkdTIwJGNvbXBpbGVyX2J1aWx0aW5zLi5pbnQuLkludCRHVCQxMndyYXBwaW5nX211bDE3aDdmMmEzOTcxMjk2YzNhMDVFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczExRGVidWdTdHJ1Y3Q1ZmllbGQxN2hkOTQ3MDM4M2Y4ZWI1ZWQ0RQBfWk43M18kTFQkJHU1YiRBJHU1ZCQkdTIwJGFzJHUyMCRjb3JlLi5zbGljZS4uY21wLi5TbGljZVBhcnRpYWxFcSRMVCRCJEdUJCRHVCQ1ZXF1YWwxN2gyMTEyNzY3ZmM5MTMyYWM0RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDNhZGQxN2g0OTA0YjMwODgzNjg5ZmI0RQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQxMmFsaWduX29mZnNldDdydF9pbXBsMTdoNGQzMmM1M2YzODMxMmFiNEUAX1pONGNvcmUzcHRyNHJlYWQxN2hiMDE3N2Q0OWY2Y2FjYTk0RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxNWRlYnVnX3R1cGxlX25ldzE3aDIxNGY1YzMwOTQyMzVmODRFAF9aTjRjb3JlM2ZtdDEwQXJndW1lbnRWMThhc191c2l6ZTE3aGY0ZTBmNGVjYmFkMmNjODRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aDA3YmMxYmVjZWM5NTk1ODRFAF9aTjRjb3JlOXBhbmlja2luZzVwYW5pYzE3aGZhY2M4MGYyZGE4MmY2NzRFAF9aTjEwOF8kTFQkY29yZS4uaXRlci4uYWRhcHRlcnMuLmZpbHRlci4uRmlsdGVyJExUJEkkQyRQJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDVjb3VudDh0b191c2l6ZTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aGFkZGJhNmJlNjJiMTc5NjRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoMzNkZjdjNzkwNWI2MmI1NEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHM5c2V0X2J5dGVzMTdoYmQ3ZDgzNjJjZWM0MWEzNEUAX1pONGNvcmU1c2xpY2U2bWVtY2hyMThjb250YWluc196ZXJvX2J5dGUxN2gwY2E0MGMxZDkxMjdiYzE0RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMURlYnVnU3RydWN0OWlzX3ByZXR0eTE3aGI3MmNjYWJmMTFmN2IyMTRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184MTdoMWJjNGE0MjZjMzE1MTIxNEUAX1pONGNvcmUzcHRyNHJlYWQxN2g1NGM0Mjc3MjJhNGJhYmYzRQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMERlYnVnSW5uZXI5aXNfcHJldHR5MTdoZjgxNzM1YzMxYmZjNzJmM0UAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkM3N1YjE3aGFhNzI0YjkxOWM5YzViZTNFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2gwZTQxMjgzZDc4ZTNhY2EzRQBfWk4xMTBfJExUJGNvcmUuLml0ZXIuLmFkYXB0ZXJzLi5lbnVtZXJhdGUuLkVudW1lcmF0ZSRMVCRJJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDRuZXh0MTdoZDIyYjVkNGMwZDVkYzg5M0UAX1pONGNvcmUxMGludHJpbnNpY3MxN2NvbnN0X2V2YWxfc2VsZWN0MTdoNGYxZTcyMjYwZjljOTU2M0UAX1pONGNvcmU1c2xpY2U2bWVtY2hyNm1lbWNocjE3aDVlMGE4Y2ZhYWFhZjVmNTNFAF9aTjRjb3JlM2ZtdDV3cml0ZTE3aDJiNGY3MWY3MGQzNmRjNTNFAF9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXIxMnBhZF9pbnRlZ3JhbDE3aGJjZTE5NGUxZmIwNDc5NDNFAF9aTjRjb3JlM251bTIxXyRMVCRpbXBsJHUyMCRpNjQkR1QkMTJ3cmFwcGluZ19tdWwxN2hlM2JkMzVhNWFmNTgwOTQzRQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyOXNpZ25fcGx1czE3aGU0ZTYyMWRhZmIyODI5MjNFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzJtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aGU0YjU3YzAxZjVjMjA4MjNFAF9aTjRjb3JlNXNsaWNlMjlfJExUJGltcGwkdTIwJCR1NWIkVCR1NWQkJEdUJDNnZXQxN2g5YzQyNDgyZGIxMWQ1ZTEzRQBfWk40Y29yZTVzbGljZTRpdGVyMTNJdGVyJExUJFQkR1QkMTRwb3N0X2luY19zdGFydDE3aDdhOWRiYzhhM2ZmM2VhZTJFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2hlM2NhOTBkNTRiZTFkMmUyRQBfWk40Y29yZTVzbGljZTZtZW1jaHIxOW1lbWNocl9nZW5lcmFsX2Nhc2UyOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2hhYmViMmQyMzM1MGE3MWEyRQBfWk40Y29yZTNvcHM1cmFuZ2UyN1JhbmdlSW5jbHVzaXZlJExUJHVzaXplJEdUJDE2aW50b19zbGljZV9yYW5nZTE3aDg5ZGQ3NTZmMTdmNGY5OTJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aGUwZjA0Y2RhMGZkY2EyOTJFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2gwYjI3YmM0YzNkZDIwMjkyRQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkaXNpemUkR1QkMTJ3cmFwcGluZ19uZWcxN2g0ODI0MDU1OGY4OGFkZTcyRQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMURlYnVnU3RydWN0NWZpZWxkMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoMDRiMmZkNmMxZjJhYzA3MkUAX1pONGNvcmUzZm10OGJ1aWxkZXJzMTBEZWJ1Z1R1cGxlNmZpbmlzaDE3aDA4ZTdmNGQ1MzE3MjFlNjJFAF9aTjRjb3JlNGl0ZXI4YWRhcHRlcnMzbWFwOG1hcF9mb2xkMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoZDAzZjM3YjBhNDMyNjE2MkUAX1pONGNvcmU2cmVzdWx0MTlSZXN1bHQkTFQkVCRDJEUkR1QkOGFuZF90aGVuMTdoOGQ2NDNkNTU2NWU3Zjk1MkUAX1pONGNvcmU2cmVzdWx0MTlSZXN1bHQkTFQkVCRDJEUkR1QkOGFuZF90aGVuMTdoMjdlNGQxMWM1NTIwNTU1MkUAX1pONGNvcmUzc3RyNnRyYWl0czExMl8kTFQkaW1wbCR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJHN0ciRHVCQkdTIwJGZvciR1MjAkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2VGcm9tJExUJHVzaXplJEdUJCRHVCQxM2dldF91bmNoZWNrZWQxN2gzNjA1ODkzNzZlY2I3MDUyRQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkdXNpemUkR1QkMTJ3cmFwcGluZ19uZWcxN2hkOTg4NzJiYzY0OGUxNjMyRQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkaXNpemUkR1QkMTJ3cmFwcGluZ19zdWIxN2g5MGY0NGM3ODlhMjI2YjIyRQBfWk40Y29yZTNjbXA1aW1wbHM2OV8kTFQkaW1wbCR1MjAkY29yZS4uY21wLi5QYXJ0aWFsRXEkTFQkJFJGJEIkR1QkJHUyMCRmb3IkdTIwJCRSRiRBJEdUJDJlcTE3aDAyY2FkOTlmMmI0OTc4ZTFFAF9aTjRjb3JlM2ZtdDVXcml0ZTl3cml0ZV9mbXQxN2g3MjdiNDM1NjYwNTgzZWMxRQBfWk40OV8kTFQkdXNpemUkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi5yYW5nZS4uU3RlcCRHVCQxN2ZvcndhcmRfdW5jaGVja2VkMTdoZmYzMGIwNWQzZjVkYTFjMUUAX1pONGNvcmUzZm10M251bTNpbXA3Zm10X3U2NDE3aGU0YzgwZDdmOGZhNmNjYjFFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwUGFkQWRhcHRlcjR3cmFwMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoNDJlYjhiMTYzY2JhN2NiMUUAX1pONGNvcmUzb3BzOGZ1bmN0aW9uNkZuT25jZTljYWxsX29uY2UxN2hjNmZlZTJiYWI1NmY5NTkxRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQzYWRkMTdoNTcwYzQ3MjllYTlmMTQ5MUUAX1pONGNvcmUzc3RyNWNvdW50MjNjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aDVmYmEyYWZjZTc1NDAxNzFFAF9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXI4d3JhcF9idWYxN2gxNjRiYmExNTVmMmVlYjUxRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTdtZW1tb3ZlMTdoZmQyY2E4MzdjMDQ3NzAzMUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW0zMW1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2gxZTc1YWZmOWEzZThkZTExRQBfWk40Y29yZTNzdHIyMV8kTFQkaW1wbCR1MjAkc3RyJEdUJDE5Zmxvb3JfY2hhcl9ib3VuZGFyeTE3aDIzMWY2Zjk4YWM0NzlkMTFFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwRGVidWdJbm5lcjVlbnRyeTE3aGI1YzcxZmE3ZjRkYzc2MDFFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTNjb3B5X2JhY2t3YXJkMjdjb3B5X2JhY2t3YXJkX2FsaWduZWRfd29yZHMxN2hhMWE0ZGJmNzMzYjcxMDAxRQBfWk40Y29yZTZvcHRpb24xNU9wdGlvbiRMVCRUJEdUJDZpbnNlcnQxN2gwNmViODc3NDZmZWE0ZmUwRQBfWk40Y29yZTNzdHIxOXNsaWNlX2Vycm9yX2ZhaWxfcnQxN2gyYjRkN2ViZDVhMzhiYmMwRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMxbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aDVlNTc4OGY1MGFkYTllYTBFAF9aTjUwXyRMVCQkUkYkbXV0JHUyMCRXJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQ5d3JpdGVfc3RyMTdoNmI4MGE2MGU1MjQ2MzFhMEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW0zMW1lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2g0NDgwZWQ0OThiZWFmZDkwRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQ2b2Zmc2V0MTdoNTdjYWViOTVhZjU4MzY5MEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00YmNtcDE3aDUzYjBlMzE2OGM1OGRiODBFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2g2MjliODgzNGM5ZGJhYTgwRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDNtdWw4X19tdWx0aTMxN2hmNjM4Yzk1ZDNlMWRiMjgwRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29weV9iYWNrd2FyZDMwY29weV9iYWNrd2FyZF9taXNhbGlnbmVkX3dvcmRzMTdoMTA5NDZhMmFmMGExMjI4MEUAX1pONGNvcmUzZm10OGJ1aWxkZXJzMTBQYWRBZGFwdGVyNHdyYXAxN2hmYzY3YzYzYmI0OWRlNjYwRQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ4cG9zaXRpb24xN2g3YzMyZDZkNjRkNDFkYTUwRQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyMjVkZWJ1Z190dXBsZV9maWVsZDFfZmluaXNoMTdoZTQzZjFlMmZhYzg1ODI0MEUAX1pONGNvcmU0aXRlcjZ0cmFpdHM4aXRlcmF0b3I4SXRlcmF0b3I0Zm9sZDE3aGJlMDYyNTgwZGY1YTVjMzBFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2g5OGM0YjE5MDMwNWUwMTMwRQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ0bmV4dDE3aDg4OWQzYjMxMTRjOGEyMjBFAG1hcDx1c2l6ZSwgdXNpemUsIGNvcmU6OnNsaWNlOjptZW1jaHI6Om1lbWNocl9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMyfT4AcG9zaXRpb248dTgsIGNvcmU6OnNsaWNlOjptZW1jaHI6Om1lbWNocl9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMxfT4AYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM1fTo6ZW50cnk6OntjbG9zdXJlX2VudiMwfT4AcnBvc2l0aW9uPHU4LCBjb3JlOjpzdHI6OntpbXBsIzB9OjpmbG9vcl9jaGFyX2JvdW5kYXJ5Ojp7Y2xvc3VyZV9lbnYjMH0+AHBvc2l0aW9uPHU4LCBjb3JlOjpzbGljZTo6bWVtY2hyOjptZW1jaHI6OntjbG9zdXJlX2VudiMwfT4Ad3JhcF9idWY8Y29yZTo6Zm10OjpidWlsZGVyczo6e2ltcGwjMX06OndyYXA6OntjbG9zdXJlX2VudiMwfT4AYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM0fTo6ZmluaXNoOjp7Y2xvc3VyZV9lbnYjMH0+AGNvdW50PGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4Ae2Nsb3N1cmUjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PgBwb3NpdGlvbjx1OCwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyX2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PgBhbmRfdGhlbjwoKSwgY29yZTo6Zm10OjpFcnJvciwgKCksIGNvcmU6OmZtdDo6YnVpbGRlcnM6OntpbXBsIzR9OjpmaWVsZDo6e2Nsb3N1cmVfZW52IzB9PgBhbmRfdGhlbjwoKSwgY29yZTo6Zm10OjpFcnJvciwgKCksIGNvcmU6OmZtdDo6YnVpbGRlcnM6OntpbXBsIzN9OjpmaWVsZDo6e2Nsb3N1cmVfZW52IzB9PgBuZXh0PGNvcmU6OmZtdDo6cnQ6OnYxOjpBcmd1bWVudD4Ad3JpdGU8Y29yZTo6Zm10OjpydDo6djE6OkFsaWdubWVudD4AcmVwbGFjZTxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QWxpZ25tZW50PgByZWFkPGNvcmU6OmZtdDo6cnQ6OnYxOjpBbGlnbm1lbnQ+AGdldDwmc3RyPgBicmFuY2g8Y29yZTo6Zm10OjpQb3N0UGFkZGluZywgY29yZTo6Zm10OjpFcnJvcj4AaW5zZXJ0PGNvcmU6OmZtdDo6YnVpbGRlcnM6OlBhZEFkYXB0ZXI+AHdyaXRlX2ZtdDxjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpQYWRBZGFwdGVyPgB3cml0ZV9zdHI8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlcj4Ad3JpdGVfY2hhcjxjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpQYWRBZGFwdGVyPgB1bndyYXA8Y2hhcj4Ad3JpdGU8Y2hhcj4AcmVwbGFjZTxjaGFyPgBmaW5kPGNoYXI+AHJlYWQ8Y2hhcj4Ac3BlY19uZXh0PHVzaXplPgBvZmZzZXQ8dXNpemU+AG1pbjx1c2l6ZT4AcmVhZF92b2xhdGlsZTx1c2l6ZT4AYWRkPHVzaXplPgBzdWI8dXNpemU+AGdldDwmc3RyLCB1c2l6ZT4AY29uc3RfZXZhbF9zZWxlY3Q8KCpjb25zdCB1OCwgdXNpemUpLCBmbigqY29uc3QgdTgsIHVzaXplKSAtPiB1c2l6ZSwgZm4oKmNvbnN0IHU4LCB1c2l6ZSkgLT4gdXNpemUsIHVzaXplPgBzdW08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+LCB1c2l6ZT4AZ2V0PHU4LCB1c2l6ZT4AZ2V0X3VuY2hlY2tlZDxjb3JlOjpmbXQ6OkFyZ3VtZW50VjEsIHVzaXplPgBlcTxbdThdLCBbdThdPgBuZXh0PGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPGNvcmU6OmZtdDo6cnQ6OnYxOjpBcmd1bWVudD4+AGluZGV4PGNvcmU6Om9wczo6cmFuZ2U6OlJhbmdlVG88dXNpemU+PgBpbmRleDxjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZUZyb208dXNpemU+PgBpbmRleDx1OCwgY29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VGcm9tPHVzaXplPj4AaW5kZXg8dTgsIGNvcmU6Om9wczo6cmFuZ2U6OlJhbmdlSW5jbHVzaXZlPHVzaXplPj4AZ2V0PHU4LCBjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZTx1c2l6ZT4+AHtjbG9zdXJlIzB9PGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+Pj4Ac3VtPGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+Pj4AZm9sZDx1c2l6ZSwgY29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgdXNpemUsIGNvcmU6Oml0ZXI6OnRyYWl0czo6YWNjdW06OntpbXBsIzQ4fTo6c3VtOjp7Y2xvc3VyZV9lbnYjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+Pj4Ae2Nsb3N1cmUjMH08JnU4LCB1c2l6ZSwgdXNpemUsIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+LCBjb3JlOjppdGVyOjp0cmFpdHM6OmFjY3VtOjp7aW1wbCM0OH06OnN1bTo6e2Nsb3N1cmVfZW52IzB9PGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+Pj4+AGZvbGQ8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCB1c2l6ZSwgY29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6bWFwX2ZvbGQ6OntjbG9zdXJlX2VudiMwfTwmdTgsIHVzaXplLCB1c2l6ZSwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4sIGNvcmU6Oml0ZXI6OnRyYWl0czo6YWNjdW06OntpbXBsIzQ4fTo6c3VtOjp7Y2xvc3VyZV9lbnYjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+Pj4+AG5leHRfY29kZV9wb2ludDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4+AG5leHQ8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8Y29yZTo6Zm10OjpBcmd1bWVudFYxPj4AaW5kZXg8dTg+AG5leHQ8dTg+AHBvc3RfaW5jX3N0YXJ0PHU4PgBhbGlnbl9vZmZzZXQ8dTg+AGdldDx1OD4AcnRfaW1wbDx1OD4AbmV4dF9iYWNrPHU4PgBjb3B5X25vbm92ZXJsYXBwaW5nPHU4PgBwcmVfZGVjX2VuZDx1OD4AYWRkPHU4PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4Ac3ViPHU4PgBlcTx1OCwgdTg+AGVxdWFsPHU4LCB1OD4AbXVsPGkxMjg+AG9mZnNldDx1MTY+AGFkZDx1MTY+AG1lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgBvZmZzZXQ8dTY0PgBhZGQ8dTY0PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4AbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4Ab2Zmc2V0PHUzMj4AYWRkPHUzMj4AbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTMyPgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AG5leHQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgBvZmZzZXQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgBnZXRfdW5jaGVja2VkPGNvcmU6OmZtdDo6QXJndW1lbnRWMT4AYWRkPGNvcmU6OmZtdDo6QXJndW1lbnRWMT4AY2FsbF9vbmNlPGNvcmU6OmZtdDo6VVNJWkVfTUFSS0VSOjp7Y2xvc3VyZV9lbnYjMH0sICgmdXNpemUsICZtdXQgY29yZTo6Zm10OjpGb3JtYXR0ZXIpPgBjYWxsX29uY2U8Zm4odXNpemUsIHVzaXplKSAtPiAhLCAodXNpemUsIHVzaXplKT4AY2FsbF9vbmNlPGZuKCZzdHIsIHVzaXplLCB1c2l6ZSkgLT4gISwgKCZzdHIsIHVzaXplLCB1c2l6ZSk+AGNhbGxfb25jZTxmbigqY29uc3QgdTgsIHVzaXplKSAtPiB1c2l6ZSwgKCpjb25zdCB1OCwgdXNpemUpPgBjb25zdF9ldmFsX3NlbGVjdDwodXNpemUsIHVzaXplKSwgZm4odXNpemUsIHVzaXplKSAtPiAhLCBmbih1c2l6ZSwgdXNpemUpIC0+ICEsICE+AGNvbnN0X2V2YWxfc2VsZWN0PCgmc3RyLCB1c2l6ZSwgdXNpemUpLCBmbigmc3RyLCB1c2l6ZSwgdXNpemUpIC0+ICEsIGZuKCZzdHIsIHVzaXplLCB1c2l6ZSkgLT4gISwgIT4AL2NhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY29tcGlsZXJfYnVpbHRpbnMtMC4xLjczL3NyYy9saWIucnMvQC9jb21waWxlcl9idWlsdGlucy4zNjk4YjFjOC1jZ3UuMjU5AGxlbl91dGY4AGVuY29kZV91dGY4AF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfOABfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfOABfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180AF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAZm10X3U2NAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jb21waWxlcl9idWlsdGlucy0wLjEuNzMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjM2OThiMWM4LWNndS4xNTQAX19tdWx0aTMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY29tcGlsZXJfYnVpbHRpbnMtMC4xLjczAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAQXJndW1lbnRWMQAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jb21waWxlcl9idWlsdGlucy0wLjEuNzMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjM2OThiMWM4LWNndS4xAC9ydXN0Yy80NDkzYTBmNDcyNGMwYmFlMTQzNjI0MmQ3NmNjY2M5YzBhMjg3YjgwAC9jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2NvbXBpbGVyX2J1aWx0aW5zLTAuMS43My9zcmMvbGliLnJzL0AvY29tcGlsZXJfYnVpbHRpbnMuMzY5OGIxYzgtY2d1LjEyMABsaWJyYXJ5L2NvcmUvc3JjL2xpYi5ycy9AL2NvcmUuZjJhZjA2ZjUtY2d1LjAAbGlicmFyeS9hbGxvYy9zcmMvbGliLnJzL0AvYWxsb2MuOTFiNTE0MjMtY2d1LjAAY2xhbmcgTExWTSAocnVzdGMgdmVyc2lvbiAxLjY0LjAtbmlnaHRseSAoNDQ5M2EwZjQ3IDIwMjItMDgtMDIpKQAAvEYPLmRlYnVnX3B1Ym5hbWVzOgAAAAIAAAAAAE8AAAAwAAAAY2FwYWNpdHlfb3ZlcmZsb3cAKwAAAHJhd192ZWMAJgAAAGFsbG9jAAAAAACtGgAAAgBPAAAAaBoAAG8VAABmbG9vcl9jaGFyX2JvdW5kYXJ5ADgBAAB3cml0ZTxjaGFyPgD9FQAAZ2V0X3VuY2hlY2tlZADeAAAAbXV0X3B0cgAeGgAAaW5zZXJ0PGNvcmU6OmZtdDo6YnVpbGRlcnM6OlBhZEFkYXB0ZXI+AEsRAABwb3NpdGlvbjx1OCwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyX2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PgCEGQAAdW5jaGVja2VkX2FkZADjEAAAY29weV9ub25vdmVybGFwcGluZzx1OD4AWwIAAEZvcm1hdHRlcgBOFAAAc3BlY19uZXh0PHVzaXplPgBqDQAARGVidWdTZXQAPxkAAFJlc3VsdAD6FAAAbmV4dF9jb2RlX3BvaW50PGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4Pj4AMAAAAHJlYWRfdm9sYXRpbGU8dXNpemU+AA8UAAB7Y2xvc3VyZSMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+AN8ZAAByZXBsYWNlPGNoYXI+AJ8SAABnZXQ8JnN0ciwgdXNpemU+AFYVAABpc19jaGFyX2JvdW5kYXJ5AAsZAAByZXN1bHQA8BAAAGNvbnN0X2V2YWxfc2VsZWN0PCh1c2l6ZSwgdXNpemUpLCBmbih1c2l6ZSwgdXNpemUpIC0+ICEsIGZuKHVzaXplLCB1c2l6ZSkgLT4gISwgIT4A1Q8AAGZ1bmN0aW9uAAUUAABjb3VudACUAgAAcGFkX2ludGVncmFsAMIAAABhZGQ8dTg+AJ4ZAAB3cmFwcGluZ19zdWIAZREAAHBvc2l0aW9uPHU4LCBjb3JlOjpzbGljZTo6bWVtY2hyOjptZW1jaHJfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMX0+AHsQAABwYW5pY2tpbmcAfBQAAHtpbXBsIzM1fQAQGQAAe2ltcGwjMjd9AEQQAABjYWxsX29uY2U8Zm4oJnN0ciwgdXNpemUsIHVzaXplKSAtPiAhLCAoJnN0ciwgdXNpemUsIHVzaXplKT4AqAAAAGFsaWduX29mZnNldDx1OD4AERoAAHVud3JhcDxjaGFyPgBtAgAAYWx0ZXJuYXRlAMgYAABsdADcEwAAbWFwX2ZvbGQAbQEAAGZtdAA/EQAAbmV4dDxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QXJndW1lbnQ+ABYHAABBcmd1bWVudFYxAC0TAABjb250YWluc196ZXJvX2J5dGUACQcAAHJ1bgDrBgAAd3JpdGVfcHJlZml4ANoPAABGbk9uY2UAyBEAAGdldDwmc3RyPgA9AAAAY29uc3RfcHRyAJoAAABydF9pbXBsPHU4PgA1FQAAbmV4dF9tYXRjaAC5EgAAZ2V0PHU4LCBjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZTx1c2l6ZT4+AFIBAAB3cml0ZTxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QWxpZ25tZW50PgCAEQAASXRlcgCQFAAAc3RyAMUTAABtYXAAKxUAAHBhdHRlcm4AIxkAAHVud3JhcF9mYWlsZWQAnQ4AAGZpbmlzaABrGQAAYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM0fTo6ZmluaXNoOjp7Y2xvc3VyZV9lbnYjMH0+AIgAAABhZGQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgAnEQAAbmV4dDx1OD4ARBkAAGFuZF90aGVuPCgpLCBjb3JlOjpmbXQ6OkVycm9yLCAoKSwgY29yZTo6Zm10OjpidWlsZGVyczo6e2ltcGwjM306OmZpZWxkOjp7Y2xvc3VyZV9lbnYjMH0+ABgRAABzbGljZQDFFQAAaW5kZXg8Y29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VUbzx1c2l6ZT4+AAoUAAB0b191c2l6ZQCFEQAAcG9zdF9pbmNfc3RhcnQ8dTg+AMUUAABpdGVyAKsTAABzdW0AwxgAAHtpbXBsIzU0fQBYDgAARGVidWdUdXBsZQBRGQAAYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM1fTo6ZW50cnk6OntjbG9zdXJlX2VudiMwfT4AKA8AAHtpbXBsIzB9ALIUAABjaGFyX2NvdW50X2dlbmVyYWxfY2FzZQB4BQAAZGVidWdfdHVwbGVfZmllbGQxX2ZpbmlzaADPEwAAZm9sZDx1c2l6ZSwgY29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgdXNpemUsIGNvcmU6Oml0ZXI6OnRyYWl0czo6YWNjdW06OntpbXBsIzQ4fTo6c3VtOjp7Y2xvc3VyZV9lbnYjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+Pj4AawUAAHdyYXBfYnVmPGNvcmU6OmZtdDo6YnVpbGRlcnM6OntpbXBsIzF9Ojp3cmFwOjp7Y2xvc3VyZV9lbnYjMH0+AKUPAAB3cml0ZV9mbXQ8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlcj4AvBEAAGdldF91bmNoZWNrZWQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgAmAAAAY29yZQAVGQAAYnJhbmNoPGNvcmU6OmZtdDo6UG9zdFBhZGRpbmcsIGNvcmU6OmZtdDo6RXJyb3I+AKsZAABzYXR1cmF0aW5nX3N1YgCPAQAAZm10X3U2NAByAQAAVVNJWkVfTUFSS0VSAMATAABhZGFwdGVycwDxEgAAbWVtY2hyX2dlbmVyYWxfY2FzZQCjEQAAbmV4dF9iYWNrPHU4PgCwEwAAe2Nsb3N1cmUjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+PgByEQAAcnBvc2l0aW9uPHU4LCBjb3JlOjpzdHI6OntpbXBsIzB9OjpmbG9vcl9jaGFyX2JvdW5kYXJ5Ojp7Y2xvc3VyZV9lbnYjMH0+APkTAABjb3VudDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+ABkNAAB7aW1wbCMxfQB5EwAAZm9sZDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIHVzaXplLCBjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjptYXBfZm9sZDo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgdXNpemUsIHVzaXplLCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgY29yZTo6aXRlcjo6dHJhaXRzOjphY2N1bTo6e2ltcGwjNDh9OjpzdW06OntjbG9zdXJlX2VudiMwfTxjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9Pj4+Pj4ALRoAAGNoYXIARQEAAHJlYWQ8Y29yZTo6Zm10OjpydDo6djE6OkFsaWdubWVudD4A7xMAAGZpbHRlcgAfFAAAZW51bWVyYXRlAPgLAABEZWJ1Z1N0cnVjdACREQAAcHJlX2RlY19lbmQ8dTg+AIAQAABwYW5pY19mbXQADBYAAHNsaWNlX2Vycm9yX2ZhaWwAhwIAAHBhZGRpbmcAmhMAAHtpbXBsIzQ4fQAeDQAAd3JhcAAEGgAAbWFwPHVzaXplLCB1c2l6ZSwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyX2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzJ9PgBLDgAAZGVidWdfdHVwbGVfbmV3AFcIAAB7aW1wbCMyfQA1FAAAbmV4dDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QXJndW1lbnQ+PgCSEgAAZ2V0X3VuY2hlY2tlZDxjb3JlOjpmbXQ6OkFyZ3VtZW50VjEsIHVzaXplPgAbBwAAYXNfdXNpemUAnxMAAHN1bTxjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9Pj4+AL4YAABpbXBscwCVEwAAYWNjdW0Asg4AAFdyaXRlAJsQAABwYW5pYwDQDwAAb3BzADIaAABtZXRob2RzAFYTAABlcTx1OCwgdTg+AFgRAABwb3NpdGlvbjx1OCwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyOjp7Y2xvc3VyZV9lbnYjMH0+ANoZAABtZW0A4AsAAHtpbXBsIzN9AGoOAABpc19wcmV0dHkACQwAAGZpZWxkAOoYAABPcmQAigEAAGltcABuFAAAbmV4dDx1c2l6ZT4ANgcAAHdyaXRlADENAABEZWJ1Z0lubmVyAG8NAABlbnRyeQCDFQAAdHJhaXRzAEkVAABmaW5kPGNoYXI+AC0PAAB3cml0ZV9zdHI8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlcj4AMxEAAG5leHQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgDhEQAAc2xpY2VfaW5kZXhfb3JkZXJfZmFpbADbFAAAbmV4dACGEwAAc3VtPGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+PiwgdXNpemU+AIUOAAB7aW1wbCM0fQBcCAAAd3JpdGVfc3RyAMsZAABpc191dGY4X2NoYXJfYm91bmRhcnkA2xgAAGVxPFt1OF0sIFt1OF0+ADcaAABsZW5fdXRmOAA4EAAAY2FsbF9vbmNlPGZuKCpjb25zdCB1OCwgdXNpemUpIC0+IHVzaXplLCAoKmNvbnN0IHU4LCB1c2l6ZSk+AH8ZAAB7aW1wbCMxMX0AKRQAAG5leHQ8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8Y29yZTo6Zm10OjpBcmd1bWVudFYxPj4AKwEAAHJlYWQ8Y2hhcj4AaxAAAGludG9fc2xpY2VfcmFuZ2UA4RMAAHtjbG9zdXJlIzB9PCZ1OCwgdXNpemUsIHVzaXplLCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgY29yZTo6aXRlcjo6dHJhaXRzOjphY2N1bTo6e2ltcGwjNDh9OjpzdW06OntjbG9zdXJlX2VudiMwfTxjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9Pj4+PgBIDwAAd3JpdGVfY2hhcjxjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpQYWRBZGFwdGVyPgA6EgAAaW5kZXg8dTg+AFENAAB7aW1wbCM1fQANEgAAc2xpY2VfaW5kZXhfb3JkZXJfZmFpbF9ydABSBQAAbmV3AN8PAABjYWxsX29uY2U8Y29yZTo6Zm10OjpVU0laRV9NQVJLRVI6OntjbG9zdXJlX2VudiMwfSwgKCZ1c2l6ZSwgJm11dCBjb3JlOjpmbXQ6OkZvcm1hdHRlcik+AHoZAABudW0A8BUAAGluZGV4AP8ZAABPcHRpb24AUggAAGJ1aWxkZXJzAGwSAABpbmRleDx1OCwgY29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VJbmNsdXNpdmU8dXNpemU+PgB7AAAAb2Zmc2V0PGNvcmU6OmZtdDo6QXJndW1lbnRWMT4AxhIAAGdldDx1OCwgdXNpemU+ALkZAAB7aW1wbCM2fQDUEQAAZ2V0PHU4PgCiDgAAe2Nsb3N1cmUjMH0A7hQAAHV0ZjhfaXNfY29udF9ieXRlAHQTAABJdGVyYXRvcgD6GQAAb3B0aW9uAGASAABpbmRleDx1OCwgY29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VGcm9tPHVzaXplPj4ARBoAAGVuY29kZV91dGY4X3JhdwDpFAAAdmFsaWRhdGlvbnMAgRQAAGZvcndhcmRfdW5jaGVja2VkADoTAABjbXAA4xUAAGdldABmEAAAUmFuZ2VJbmNsdXNpdmUAeRIAAHtpbXBsIzd9ACIRAAB7aW1wbCMxNzN9AAITAAB7Y2xvc3VyZSMxfQBvEwAAaXRlcmF0b3IAVhoAAGVuY29kZV91dGY4AAcNAABQYWRBZGFwdGVyADgWAABzbGljZV9lcnJvcl9mYWlsX3J0AP0QAABjb25zdF9ldmFsX3NlbGVjdDwoKmNvbnN0IHU4LCB1c2l6ZSksIGZuKCpjb25zdCB1OCwgdXNpemUpIC0+IHVzaXplLCBmbigqY29uc3QgdTgsIHVzaXplKSAtPiB1c2l6ZSwgdXNpemU+AA8TAABtZW1jaHIA7BkAAHJlcGxhY2U8Y29yZTo6Zm10OjpydDo6djE6OkFsaWdubWVudD4AiBUAAHtpbXBsIzh9ALcQAABpbnRyaW5zaWNzAJ4RAAB7aW1wbCMxNzR9AGEQAAByYW5nZQB6AgAAc2lnbl9hd2FyZV96ZXJvX3BhZABgAgAAc2lnbl9wbHVzACsAAABwdHIAphQAAGNvdW50X2NoYXJzAM4GAABQb3N0UGFkZGluZwAdEAAAY2FsbF9vbmNlPGZuKHVzaXplLCB1c2l6ZSkgLT4gISwgKHVzaXplLCB1c2l6ZSk+ANEVAABpbmRleDxjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZUZyb208dXNpemU+PgAeFQAAdXRmOF9hY2NfY29udF9ieXRlAAoRAABjb25zdF9ldmFsX3NlbGVjdDwoJnN0ciwgdXNpemUsIHVzaXplKSwgZm4oJnN0ciwgdXNpemUsIHVzaXplKSAtPiAhLCBmbigmc3RyLCB1c2l6ZSwgdXNpemUpIC0+ICEsICE+AN4VAAB7aW1wbCM5fQBeGQAAYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM0fTo6ZmllbGQ6OntjbG9zdXJlX2VudiMwfT4AKQcAAGdldGNvdW50AM8AAABvZmZzZXQ8dTg+AP0YAABtaW48dXNpemU+AJUAAABhbGlnbl9vZmZzZXQARBMAAGVxdWFsPHU4LCB1OD4AAAAAAAQBAAACALcaAABuAgAAOAIAAHtpbXBsIzN9AFgCAAB7aW1wbCM0fQBCAAAAemVyb193aWRlbl9tdWwAJgAAAGNvbXBpbGVyX2J1aWx0aW5zABoCAAB7aW1wbCM5fQAuAgAAY29yZQArAAAAaW50AFoAAABtdWw8aTEyOD4AUAAAAG11bABVAAAATXVsADMCAABudW0A+gEAAGhpAAgCAAB7aW1wbCMxMX0ADQIAAHdyYXBwaW5nX2FkZAAwAAAAe2ltcGwjMjZ9ADUAAAB6ZXJvX3dpZGVuAPUBAAB7aW1wbCMxOH0AHwIAAHdyYXBwaW5nX211bAB5AAAAX19tdWx0aTMAAAAAADcAAAACACUdAABRAAAAJgAAAGNvbXBpbGVyX2J1aWx0aW5zADUAAABtZW1zZXQAKwAAAG1lbQAAAAAAuwYAAAIAdh0AADERAABQDAAAd3JhcHBpbmdfbmVnADAAAABpbXBscwCEDAAAbXV0X3B0cgCtCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AFkIAABtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AswAAAGNvcHlfZm9yd2FyZAABCQAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+ADsOAABzdWI8dTg+AAEBAABzZXRfYnl0ZXMAvQ4AAGFkZDx1c2l6ZT4AvwAAAGNvcHlfYmFja3dhcmQA3hAAAG9mZnNldDx1MzI+AKoQAABvZmZzZXQ8dTE2PgArAAAAbWVtABIBAABzZXRfYnl0ZXNfd29yZHMAEhEAAG9mZnNldDx1NjQ+ACYAAABjb21waWxlcl9idWlsdGlucwBVCQAAbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AH8LAABtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4ARgsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgC4CwAAbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+ACEOAABzdWI8dXNpemU+AJoAAABjb3B5X2ZvcndhcmRfYnl0ZXMAMQoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AFAMAAG1lbW1vdmUAwwkAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AnwoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4A6w4AAHtpbXBsIzB9AOsQAABhZGQ8dTMyPgC3EAAAYWRkPHUxNj4A6AAAAGNvcHlfYmFja3dhcmRfYnl0ZXMAZQgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIAHxEAAGFkZDx1NjQ+ANAAAABjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMAzQcAAGJjbXAADQkAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAuQgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQA8wsAAGNvcmUAYQkAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xACwBAABtZW1jcHkAzwkAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yAD0KAABfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNAARCAAAX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQD9CwAAe2ltcGwjMTF9AIMQAABhZGQ8dTg+AEMMAAB3cmFwcGluZ19zdWIAqwoAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184AH8MAABwdHIA6QcAAHN0cmxlbgAFCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4AsQcAAG1lbWNtcAAZCwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQBSCwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBeDAAAe2ltcGwjNX0AiwsAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAxAsAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAgAYAAG1lbXNldAB2EAAAb2Zmc2V0PHU4PgD4CwAAbnVtALAOAABvZmZzZXQ8dXNpemU+AI4AAABjb3B5X2ZvcndhcmRfYWxpZ25lZF93b3JkcwAeAQAAc2V0X2J5dGVzX2J5dGVzAIIAAABjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwDcAAAAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzAOYOAABjb25zdF9wdHIADQsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AAAAAAA3AAAAAgCnLgAAUQAAACYAAABjb21waWxlcl9idWlsdGlucwA1AAAAbWVtY3B5ACsAAABtZW0AAAAAAACeKgRuYW1lAfYpSwAUY2FzcGVyX2NhbGxfY29udHJhY3QBF2Nhc3Blcl9yZWFkX2hvc3RfYnVmZmVyAhljYXNwZXJfZ2V0X25hbWVkX2FyZ19zaXplAxRjYXNwZXJfZ2V0X25hbWVkX2FyZwQNY2FzcGVyX3JldmVydAVNX1pOMTVjYXNwZXJfY29udHJhY3QxMmNvbnRyYWN0X2FwaTdydW50aW1lMTNjYWxsX2NvbnRyYWN0MTdoNDYxZmE4ZmI4N2E5ZTY0ZkUGZ19aTjcyXyRMVCR3ZWVfYWxsb2MuLldlZUFsbG9jJHUyMCRhcyR1MjAkY29yZS4uYWxsb2MuLmdsb2JhbC4uR2xvYmFsQWxsb2MkR1QkNWFsbG9jMTdoNjAwMDRmODE5YTczYzQ1ZUUHQl9aTjEyY2FzcGVyX3R5cGVzOWJ5dGVzcmVwcjE3dThfc2xpY2VfdG9fYnl0ZXMxN2gyYzBmMmI3MTZlNzRkODUxRQhHX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxN3NlcmlhbGl6ZWRfbGVuZ3RoMTdoZTZiYmIzOWYyMDIzMDY1OEUJWV9aTjVhbGxvYzdyYXdfdmVjMTlSYXdWZWMkTFQkVCRDJEEkR1QkN3Jlc2VydmUyMWRvX3Jlc2VydmVfYW5kX2hhbmRsZTE3aDM0YzNjZmM3NTgyZjYwODdFCmlfWk43Ml8kTFQkd2VlX2FsbG9jLi5XZWVBbGxvYyR1MjAkYXMkdTIwJGNvcmUuLmFsbG9jLi5nbG9iYWwuLkdsb2JhbEFsbG9jJEdUJDdkZWFsbG9jMTdoN2Y3ZTcwMThhN2EzZDIzMUULY19aTjY4XyRMVCRjYXNwZXJfdHlwZXMuLmNsX3R5cGUuLkNMVHlwZSR1MjAkYXMkdTIwJGNvcmUuLmNsb25lLi5DbG9uZSRHVCQ1Y2xvbmUxN2hhNDg0OThmNzZmN2U3YWY2RQxCX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxMmFwcGVuZF9ieXRlczE3aDIwYmQ0ZTZiOTk1MDJkYWJFDVRfWk40Y29yZTNwdHI1MGRyb3BfaW5fcGxhY2UkTFQkY2FzcGVyX3R5cGVzLi5jbF90eXBlLi5DTFR5cGUkR1QkMTdoNzI3Yzg2ZTRmMzE2MjIxOUUOUF9aTjUwXyRMVCRUJHUyMCRhcyR1MjAkY29yZS4uY29udmVydC4uSW50byRMVCRVJEdUJCRHVCQ0aW50bzE3aDI2OTAyZmYwNWJhNWM3YzhFD0VfWk4xNWNhc3Blcl9jb250cmFjdDEyY29udHJhY3RfYXBpN3J1bnRpbWU2cmV2ZXJ0MTdoNmRiOGEyNmZkNGY4ZDcyZkUQOF9aTjVhbGxvYzdyYXdfdmVjMTdjYXBhY2l0eV9vdmVyZmxvdzE3aDA4MzEyYjZkYjNhZmU4ODdFETxfWk4xMmNhc3Blcl90eXBlczlhcGlfZXJyb3IxMXJlc3VsdF9mcm9tMTdoZTdkM2U2OTk2NWRiNTQ2NEUSTV9aTjE1Y2FzcGVyX2NvbnRyYWN0MTJjb250cmFjdF9hcGk3cnVudGltZTEzZ2V0X25hbWVkX2FyZzE3aDBlOWI0NmFkZTE2NTAwMTlFE1tfWk40Y29yZTNwdHI1N2Ryb3BfaW5fcGxhY2UkTFQkY2FzcGVyX3R5cGVzLi5jbF92YWx1ZS4uQ0xWYWx1ZUVycm9yJEdUJDE3aDkyYjE0MmIyY2JhOWU3MDlFFFBfWk41MF8kTFQkVCR1MjAkYXMkdTIwJGNvcmUuLmNvbnZlcnQuLkludG8kTFQkVSRHVCQkR1QkNGludG8xN2g0M2YwOTlmNGUyMTBiNjQ5RRWUAV9aTjEyY2FzcGVyX3R5cGVzOWFwaV9lcnJvcjk0XyRMVCRpbXBsJHUyMCRjb3JlLi5jb252ZXJ0Li5Gcm9tJExUJGNhc3Blcl90eXBlcy4uYXBpX2Vycm9yLi5BcGlFcnJvciRHVCQkdTIwJGZvciR1MjAkdTMyJEdUJDRmcm9tMTdoYjRjNWVmNmMwYTMyZjRmZkUWMl9aTjVhbGxvYzdyYXdfdmVjMTFmaW5pc2hfZ3JvdzE3aDFjZDljOWQ5ZTU2OWVhODNFF0xfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDE2cmVzZXJ2ZV9mb3JfcHVzaDE3aGJjODZkZDViOWU2YWY3ZDVFGFlfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDdyZXNlcnZlMjFkb19yZXNlcnZlX2FuZF9oYW5kbGUxN2hiYzE5YWYwODA2MGUwZWZkRRkEY2FsbBosX1pONGNvcmU5cGFuaWNraW5nNXBhbmljMTdoZmFjYzgwZjJkYTgyZjY3NEUbTF9aTjVhbGxvYzdyYXdfdmVjMTlSYXdWZWMkTFQkVCRDJEEkR1QkMTZyZXNlcnZlX2Zvcl9wdXNoMTdoODQzMjlhMzNkMjNlYWM3OUUcMl9aTjRjb3JlNnJlc3VsdDEzdW53cmFwX2ZhaWxlZDE3aDQ2ZGUyMDkzYWFiZmJiN2NFHTJfWk45d2VlX2FsbG9jMTVhbGxvY19maXJzdF9maXQxN2g4MWZmMjIxMDJkNWY2NzRiRR4yX1pONWFsbG9jN3Jhd192ZWMxMWZpbmlzaF9ncm93MTdoN2NjZjcyZGZlM2NjMjQ4MUUfMF9aTjRjb3JlOXBhbmlja2luZzlwYW5pY19mbXQxN2hmODA0YWRhNzJhYWQwNmU2RSBfX1pONjZfJExUJGNhc3Blcl90eXBlcy4uY2xfdHlwZS4uQ0xUeXBlJHUyMCRhcyR1MjAkY29yZS4uZm10Li5EZWJ1ZyRHVCQzZm10MTdoMWNkOGZjZGNmNmU5MDQxZEUhRV9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXIyNWRlYnVnX3R1cGxlX2ZpZWxkMV9maW5pc2gxN2hlNDNmMWUyZmFjODU4MjQwRSI8X1pONGNvcmUzZm10OGJ1aWxkZXJzMTFEZWJ1Z1N0cnVjdDVmaWVsZDE3aGQ5NDcwMzgzZjhlYjVlZDRFI0dfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2hjOTAwNGI1YWJmYzQxYWUwRSQ4X1pONGNvcmUzZm10OGJ1aWxkZXJzOERlYnVnU2V0NWVudHJ5MTdoZjcxMTQwZTZkYmE1Zjk4ZEUlR19aTjQyXyRMVCQkUkYkVCR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uRGVidWckR1QkM2ZtdDE3aGIzOTg3ZjlmMDllZjY4MTJFJocBX1pONGNvcmUzcHRyMTAwZHJvcF9pbl9wbGFjZSRMVCQkUkYkJHU1YiRhbGxvYy4uYm94ZWQuLkJveCRMVCRjYXNwZXJfdHlwZXMuLmNsX3R5cGUuLkNMVHlwZSRHVCQkdTNiJCR1MjAkMSR1NWQkJEdUJDE3aDc0MTUxZjgzY2FjOTllZTNFJ0dfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2hiNWM3ODg1YWYzYjAzYTZhRShHX1pONDJfJExUJCRSRiRUJHUyMCRhcyR1MjAkY29yZS4uZm10Li5EZWJ1ZyRHVCQzZm10MTdoNGJlOGUwNDVhM2RkYjIyNEUpMF9aTjRjb3JlM2ZtdDNudW0zaW1wN2ZtdF91NjQxN2hlNGM4MGQ3ZjhmYTZjY2IxRSo4X1pONGNvcmUzZm10OUZvcm1hdHRlcjEycGFkX2ludGVncmFsMTdoYmNlMTk0ZTFmYjA0Nzk0M0UrQF9aTjRjb3JlNXNsaWNlNWluZGV4MjJzbGljZV9pbmRleF9vcmRlcl9mYWlsMTdoM2UxMjExNWQ2MWRiODcwZEUsR19aTjQyXyRMVCQkUkYkVCR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uRGVidWckR1QkM2ZtdDE3aGZlYjc1M2MyMjU2OWQxMmZFLUdfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2g2NTdkZGYyMjkxNTdhYzlkRS5mX1pONzNfJExUJGNhc3Blcl90eXBlcy4uY2xfdmFsdWUuLkNMVmFsdWVFcnJvciR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uRGVidWckR1QkM2ZtdDE3aGY2NWYyYWI2N2Q2YzRhODVFL0dfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2hmNmVjMWE3M2JjNWI0NTI5RTBHX1pONDJfJExUJCRSRiRUJHUyMCRhcyR1MjAkY29yZS4uZm10Li5EZWJ1ZyRHVCQzZm10MTdoNDdiYjU3Yjg1M2IzMzE1MEUxOl9aTjRjb3JlM29wczhmdW5jdGlvbjZGbk9uY2U5Y2FsbF9vbmNlMTdoNDJmMmJiZjU2OTcxNmNhNUUyRl9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXIxMnBhZF9pbnRlZ3JhbDEyd3JpdGVfcHJlZml4MTdoZDJjYTFmYjQ3NTQ0YmUzNkUzJl9aTjRjb3JlM2ZtdDV3cml0ZTE3aDJiNGY3MWY3MGQzNmRjNTNFNDpfWk40Y29yZTNvcHM4ZnVuY3Rpb242Rm5PbmNlOWNhbGxfb25jZTE3aDE5MmYzN2Q1ZTEzODZkYmVFNUNfWk40Y29yZTVzbGljZTVpbmRleDI1c2xpY2VfaW5kZXhfb3JkZXJfZmFpbF9ydDE3aDlhZDdlZGE5MDE2NjRmMzdFNmdfWk42OF8kTFQkY29yZS4uZm10Li5idWlsZGVycy4uUGFkQWRhcHRlciR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uV3JpdGUkR1QkOXdyaXRlX3N0cjE3aGQwNTZiNjU4MzgxZDY5N2RFNzJfWk40Y29yZTNzdHIxNnNsaWNlX2Vycm9yX2ZhaWwxN2gyMzI2NWZmOWMwOGViZWE2RTg6X1pONGNvcmUzb3BzOGZ1bmN0aW9uNkZuT25jZTljYWxsX29uY2UxN2hjMjBjYmFkNWMwMDA5NzI2RTk1X1pONGNvcmUzc3RyMTlzbGljZV9lcnJvcl9mYWlsX3J0MTdoMmI0ZDdlYmQ1YTM4YmJjMEU6Ml9aTjRjb3JlM2ZtdDVXcml0ZTEwd3JpdGVfY2hhcjE3aGNlNGU1Yzk3YzAwNTJiNGJFOzBfWk40Y29yZTNmbXQ1V3JpdGU5d3JpdGVfZm10MTdoNzI3YjQzNTY2MDU4M2VjMUU8VV9aTjUwXyRMVCQkUkYkbXV0JHUyMCRXJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQ5d3JpdGVfc3RyMTdoNmI4MGE2MGU1MjQ2MzFhMEU9V19aTjUwXyRMVCQkUkYkbXV0JHUyMCRXJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQxMHdyaXRlX2NoYXIxN2hkMTJmODczZTliNzM2YzhkRT5VX1pONTBfJExUJCRSRiRtdXQkdTIwJFckdTIwJGFzJHUyMCRjb3JlLi5mbXQuLldyaXRlJEdUJDl3cml0ZV9mbXQxN2g1ZWVhYjA4NjhlZWU5ZTc4RT9bX1pONjJfJExUJHVpbnQuLnVpbnQuLkZyb21EZWNTdHJFcnIkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2g0ZjhjNjU2NjY5MDQ2YzYyRUCJAV9aTjg4XyRMVCR3ZWVfYWxsb2MuLnNpemVfY2xhc3Nlcy4uU2l6ZUNsYXNzQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDIybmV3X2NlbGxfZm9yX2ZyZWVfbGlzdDE3aDlkNTc4NmY0ZWQ0MTE2MWVFQXdfWk43MF8kTFQkd2VlX2FsbG9jLi5MYXJnZUFsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQyMm5ld19jZWxsX2Zvcl9mcmVlX2xpc3QxN2g5ODhiYmViY2QzNzNlZDA5RUJuX1pONzBfJExUJHdlZV9hbGxvYy4uTGFyZ2VBbGxvY1BvbGljeSR1MjAkYXMkdTIwJHdlZV9hbGxvYy4uQWxsb2NQb2xpY3kkR1QkMTNtaW5fY2VsbF9zaXplMTdoZmJmZDE1ZmI2NzU5ODhmN0VDgQFfWk43MF8kTFQkd2VlX2FsbG9jLi5MYXJnZUFsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQzMnNob3VsZF9tZXJnZV9hZGphY2VudF9mcmVlX2NlbGxzMTdoZjY2YmU4ZjA4ODY4NmRmZUVEgAFfWk44OF8kTFQkd2VlX2FsbG9jLi5zaXplX2NsYXNzZXMuLlNpemVDbGFzc0FsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQxM21pbl9jZWxsX3NpemUxN2gwMjk0ODkwNWE3MDk4ZDMyRUWTAV9aTjg4XyRMVCR3ZWVfYWxsb2MuLnNpemVfY2xhc3Nlcy4uU2l6ZUNsYXNzQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDMyc2hvdWxkX21lcmdlX2FkamFjZW50X2ZyZWVfY2VsbHMxN2hkYzJjYjgzYmVmMGVlZmIzRUYIX19tdWx0aTNHBm1lbXNldEg1X1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY3B5MTdoZmUwYmJmYWRkOWNiMDBhZEVJNV9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbXNldDE3aGNhM2VlYjllOTE3YjY1YmFFSgZtZW1jcHkHEgEAD19fc3RhY2tfcG9pbnRlcgkKAQAHLnJvZGF0YQBVCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQEFcnVzdGMlMS42NC4wLW5pZ2h0bHkgKDQ0OTNhMGY0NyAyMDIyLTA4LTAyKQ==";
+ const wasm = new Uint8Array(Buffer.from(base64, 'base64'));
+ export default wasm;
diff --git a/packages/builder/src/workflows/marketplace-with-cep78.ts b/packages/builder/src/workflows/marketplace-with-cep78.ts
new file mode 100644
index 0000000..ec90ded
--- /dev/null
+++ b/packages/builder/src/workflows/marketplace-with-cep78.ts
@@ -0,0 +1,62 @@
+import { CLValueBuilder } from "casper-js-sdk";
+import { BUYER_KEYS } from "../configs/default";
+import { Cep78Contract } from "../contract/cep78.contract";
+import { MarketplaceContract } from "../contract/marketplace.contract";
+import { contractHashToByteArray } from "contract-client";
+
+const MARKETPLACE_CONTRACT_PACKAGE_HASH = 'e7cf0e4796821217ae86e2b34848cc6e1ef610b87572bd0d0848762448f1b3f2';
+const MARKETPLACE_CONTRACT_HASH = '03a714464b106f79db74110c0d7f66766e74354193189d77bc5d18cf8e89a000';
+const TOKEN_HASH = 'a1cce80d2f418d4e8c64b1d89c7b06c822f903b1d3a50548fa4f048c183671ee';
+const TOKEN_ID = '56';
+
+const run = async () => {
+ const marketplaceContract = new MarketplaceContract(
+ `hash-${MARKETPLACE_CONTRACT_HASH}`
+ );
+ const cep78Contract = new Cep78Contract(
+ `hash-${TOKEN_HASH}`
+ );
+
+ // Approve CEP78 contract package hash
+ await cep78Contract.approve(
+ {
+ operator: CLValueBuilder.byteArray(
+ contractHashToByteArray(MARKETPLACE_CONTRACT_PACKAGE_HASH)
+ ),
+ tokenId: Number(TOKEN_ID),
+ }
+ );
+
+ // List item
+ await marketplaceContract.listItem(
+ {
+ tokenContractHash: TOKEN_HASH,
+ tokenId: TOKEN_ID,
+ amount: 12_000_000_000,
+ }
+ );
+
+ // Approve CEP78 contract hash
+ await cep78Contract.approve(
+ {
+ operator: CLValueBuilder.byteArray(
+ contractHashToByteArray(MARKETPLACE_CONTRACT_HASH)
+ ),
+ tokenId: Number(TOKEN_ID),
+ }
+ );
+
+ // Change caller
+ marketplaceContract.setCaller(BUYER_KEYS);
+
+ // Buy item
+ await marketplaceContract.buyItem(
+ {
+ tokenContractHash: TOKEN_HASH,
+ tokenId: TOKEN_ID,
+ amount: 12_000_000_000,
+ }
+ );
+}
+
+run();
\ No newline at end of file
diff --git a/packages/builder/yarn.lock b/packages/builder/yarn.lock
new file mode 100644
index 0000000..a263729
--- /dev/null
+++ b/packages/builder/yarn.lock
@@ -0,0 +1,545 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@cspotcode/source-map-support@^0.8.0":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
+ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
+ dependencies:
+ "@jridgewell/trace-mapping" "0.3.9"
+
+"@ethersproject/bignumber@^5.0.8", "@ethersproject/bignumber@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2"
+ integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ bn.js "^5.2.1"
+
+"@ethersproject/bytes@^5.0.5", "@ethersproject/bytes@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d"
+ integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==
+ dependencies:
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/constants@^5.0.5":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e"
+ integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==
+ dependencies:
+ "@ethersproject/bignumber" "^5.7.0"
+
+"@ethersproject/logger@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892"
+ integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==
+
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+ integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@noble/curves@~1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35"
+ integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==
+ dependencies:
+ "@noble/hashes" "1.3.2"
+
+"@noble/ed25519@^1.7.3":
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123"
+ integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==
+
+"@noble/hashes@1.3.2", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.2", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39"
+ integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==
+
+"@noble/secp256k1@^1.7.1":
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c"
+ integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==
+
+"@open-rpc/client-js@1.8.1", "@open-rpc/client-js@^1.8.1":
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/@open-rpc/client-js/-/client-js-1.8.1.tgz#73b5a5bf237f24b14c3c89205b1fca3aea213213"
+ integrity sha512-vV+Hetl688nY/oWI9IFY0iKDrWuLdYhf7OIKI6U1DcnJV7r4gAgwRJjEr1QVYszUc0gjkHoQJzqevmXMGLyA0g==
+ dependencies:
+ isomorphic-fetch "^3.0.0"
+ isomorphic-ws "^5.0.0"
+ strict-event-emitter-types "^2.0.0"
+ ws "^7.0.0"
+
+"@scure/base@~1.1.0", "@scure/base@~1.1.2":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f"
+ integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==
+
+"@scure/bip32@^1.1.5":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8"
+ integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==
+ dependencies:
+ "@noble/curves" "~1.2.0"
+ "@noble/hashes" "~1.3.2"
+ "@scure/base" "~1.1.2"
+
+"@scure/bip39@^1.2.0":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a"
+ integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==
+ dependencies:
+ "@noble/hashes" "~1.3.0"
+ "@scure/base" "~1.1.0"
+
+"@tsconfig/node10@^1.0.7":
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
+ integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
+
+"@tsconfig/node12@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
+ integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
+
+"@tsconfig/node14@^1.0.0":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
+ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
+
+"@tsconfig/node16@^1.0.2":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
+ integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
+
+"@types/bn.js@*":
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.3.tgz#0857f00da3bf888a26a44b4a477c7819b17dacc5"
+ integrity sha512-wT1B4iIO82ecXkdN6waCK8Ou7E71WU+mP1osDA5Q8c6Ur+ozU2vIKUIhSpUr6uE5L2YHocKS1Z2jG2fBC1YVeg==
+ dependencies:
+ "@types/node" "*"
+
+"@types/elliptic@^6.4.9":
+ version "6.4.16"
+ resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.16.tgz#3a28a7d14e26f9e786d71f2a895ac493e7c8a3be"
+ integrity sha512-MSN6m9BR51W1/umzcsX0K9dAmJ59ECKxOjZ3XsjvsZAt+q0mTmKlzEdwtU+u4i+Om231d8TuY3xK6FAGIs5MbA==
+ dependencies:
+ "@types/bn.js" "*"
+
+"@types/node@*":
+ version "20.8.9"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.9.tgz#646390b4fab269abce59c308fc286dcd818a2b08"
+ integrity sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==
+ dependencies:
+ undici-types "~5.26.4"
+
+"@types/ws@^8.2.2":
+ version "8.5.8"
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.8.tgz#13efec7bd439d0bdf2af93030804a94f163b1430"
+ integrity sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==
+ dependencies:
+ "@types/node" "*"
+
+acorn-walk@^8.1.1:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f"
+ integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==
+
+acorn@^8.4.1:
+ version "8.11.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
+ integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==
+
+aes-js@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d"
+ integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==
+
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+asn1.js@^5.0.1:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
+ integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+ safer-buffer "^2.1.0"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+bn.js@^4.0.0, bn.js@^4.11.8, bn.js@^4.11.9:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
+ integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
+
+bn.js@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
+ integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+brorand@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
+
+casper-js-sdk@2.15.0:
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/casper-js-sdk/-/casper-js-sdk-2.15.0.tgz#749d86094025e981ec728b75e8b0bbd64f56a06e"
+ integrity sha512-95O1hOmJqTVteQMtt4G8G85hCw1P1Ezs7mKc+bj3chMMwTmg2iUrWK0wLGl1hrn0v11yYidRqkcdlLm6C/SBrg==
+ dependencies:
+ "@ethersproject/bignumber" "^5.0.8"
+ "@ethersproject/bytes" "^5.0.5"
+ "@ethersproject/constants" "^5.0.5"
+ "@noble/ed25519" "^1.7.3"
+ "@noble/hashes" "^1.2.0"
+ "@noble/secp256k1" "^1.7.1"
+ "@open-rpc/client-js" "^1.8.1"
+ "@scure/bip32" "^1.1.5"
+ "@scure/bip39" "^1.2.0"
+ "@types/ws" "^8.2.2"
+ glob "^7.1.6"
+ humanize-duration "^3.24.0"
+ key-encoder "^2.0.3"
+ lodash "^4.17.21"
+ node-fetch "^2.6.11"
+ reflect-metadata "^0.1.13"
+ ts-results "npm:@casperlabs/ts-results@^3.3.4"
+ typedjson "^1.6.0-rc2"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+contract-client@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/contract-client/-/contract-client-0.0.5.tgz#3cdf8122c828160bb5ebd3e06354525a8e0a36c5"
+ integrity sha512-pqqQ4QQEPTuJjUlygbbi/ifFYpicRVmeASOkuM4CyPQNcBgab3DXSu74Q7A60eW5Mi4QgEsPbrrlAN2YxJYoOw==
+ dependencies:
+ casper-js-sdk "2.15.0"
+
+create-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+ integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+elliptic@6.5.4, elliptic@^6.4.1:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
+ integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
+ethers@^4.0.47:
+ version "4.0.49"
+ resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894"
+ integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==
+ dependencies:
+ aes-js "3.0.0"
+ bn.js "^4.11.9"
+ elliptic "6.5.4"
+ hash.js "1.1.3"
+ js-sha3 "0.5.7"
+ scrypt-js "2.0.4"
+ setimmediate "1.0.4"
+ uuid "2.0.1"
+ xmlhttprequest "1.8.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+glob@^7.1.6:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+hash.js@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
+ integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.0"
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+hmac-drbg@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+humanize-duration@^3.24.0:
+ version "3.30.0"
+ resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.30.0.tgz#9be623d331116583ff90aeb6ccfdc2e79d6d7372"
+ integrity sha512-NxpT0fhQTFuMTLnuu1Xp+ozNpYirQnbV3NlOjEKBYlE3uvMRu3LDuq8EPc3gVXxVYnchQfqVM4/+T9iwHPLLeA==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+isomorphic-fetch@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
+ integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==
+ dependencies:
+ node-fetch "^2.6.1"
+ whatwg-fetch "^3.4.1"
+
+isomorphic-ws@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf"
+ integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==
+
+js-sha3@0.5.7:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7"
+ integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==
+
+key-encoder@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba"
+ integrity sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==
+ dependencies:
+ "@types/elliptic" "^6.4.9"
+ asn1.js "^5.0.1"
+ bn.js "^4.11.8"
+ elliptic "^6.4.1"
+
+lodash@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+make-error@^1.1.1:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+ integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
+
+minimatch@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+node-fetch@^2.6.1, node-fetch@^2.6.11:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+reflect-metadata@^0.1.13:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08"
+ integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==
+
+safer-buffer@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+scrypt-js@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16"
+ integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==
+
+setimmediate@1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f"
+ integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==
+
+strict-event-emitter-types@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f"
+ integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==
+
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+
+ts-node@10.9.1:
+ version "10.9.1"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
+ integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
+ dependencies:
+ "@cspotcode/source-map-support" "^0.8.0"
+ "@tsconfig/node10" "^1.0.7"
+ "@tsconfig/node12" "^1.0.7"
+ "@tsconfig/node14" "^1.0.0"
+ "@tsconfig/node16" "^1.0.2"
+ acorn "^8.4.1"
+ acorn-walk "^8.1.1"
+ arg "^4.1.0"
+ create-require "^1.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ v8-compile-cache-lib "^3.0.1"
+ yn "3.1.1"
+
+"ts-results@npm:@casperlabs/ts-results@^3.3.4":
+ version "3.3.5"
+ resolved "https://registry.yarnpkg.com/@casperlabs/ts-results/-/ts-results-3.3.5.tgz#cc95b8612768d7f794c37a4ca9b46122c04b1f40"
+ integrity sha512-ymSQqqb4mOSet592li02u1Gd28LoOFJUm6R3jkdNQ+nqsnbHvN+izBigtP4aYmNwh6gFyCwDgjYporEJgDT4eA==
+ dependencies:
+ tslib "^2.4.1"
+
+tslib@^2.0.1, tslib@^2.4.1:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+
+typedjson@^1.6.0-rc2:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/typedjson/-/typedjson-1.8.0.tgz#7ed7200f88c1240821c7e69d6d121667988e5d1d"
+ integrity sha512-taVJVGebQDagEmVc3Cu6vVVLkWLnxqPcTrkVgbpAsI02ZDDrnHy5zvt1JVqXv4/yztBgZAX1oR07+bkiusGJLQ==
+ dependencies:
+ tslib "^2.0.1"
+
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
+uuid@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac"
+ integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==
+
+v8-compile-cache-lib@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
+ integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
+
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+
+whatwg-fetch@^3.4.1:
+ version "3.6.19"
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973"
+ integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==
+
+whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+ws@^7.0.0:
+ version "7.5.9"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
+ integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
+
+xmlhttprequest@1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
+ integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==
+
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
diff --git a/packages/cep18-client/package.json b/packages/cep18-client/package.json
new file mode 100644
index 0000000..e4b595a
--- /dev/null
+++ b/packages/cep18-client/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "@casperdash/cep18-client",
+ "version": "0.0.1",
+ "description": "A library for interacting with CEP-18 compliant tokens on the Casper Network",
+ "repository": {
+ "type": "git",
+ "directory": "packages/cep18-client"
+ },
+ "contributors": [
+ "dev "
+ ],
+ "type": "module",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "build": "tsup src/index.ts",
+ "start": "pnpm build -- --watch"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0",
+ "@casperdash/contract-client": "workspace:*",
+ "casper-js-sdk": "2.15.0"
+ },
+ "devDependencies": {
+ "eslint-plugin-prettier": "^4.2.1",
+ "tsup": "^6.7.0"
+ }
+}
diff --git a/packages/cep18-client/src/client.ts b/packages/cep18-client/src/client.ts
new file mode 100644
index 0000000..056d797
--- /dev/null
+++ b/packages/cep18-client/src/client.ts
@@ -0,0 +1,4 @@
+export class CEP18Client {
+ constructor() {
+ }
+}
\ No newline at end of file
diff --git a/packages/cep18-client/src/contract.ts b/packages/cep18-client/src/contract.ts
new file mode 100644
index 0000000..ed3c684
--- /dev/null
+++ b/packages/cep18-client/src/contract.ts
@@ -0,0 +1,364 @@
+import { BigNumber, type BigNumberish } from '@ethersproject/bignumber';
+import {
+ type CLPublicKey,
+ CLValueBuilder,
+ DeployUtil,
+ type Keys,
+ RuntimeArgs
+} from 'casper-js-sdk';
+
+import {
+ ApproveArgs,
+ BurnArgs,
+ ChangeSecurityArgs,
+ InstallArgs,
+ MintArgs,
+ TransferArgs,
+ TransferFromArgs
+} from './types';
+import { Contract } from '@casperdash/contract-client';
+
+export default class CEP18Contract extends Contract {
+ constructor(public networkName: string,
+ contractHash?: `hash-${string}`,
+ contractPackageHash?: `hash-${string}`) {
+ super(contractHash, contractPackageHash);
+ }
+
+ /**
+ * Intalls CEP-18
+ * @param wasm contract representation of Uint8Array
+ * @param args contract install arguments @see {@link InstallArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public install(
+ wasm: Uint8Array,
+ args: InstallArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const {
+ name,
+ symbol,
+ decimals,
+ totalSupply,
+ eventsMode,
+ enableMintAndBurn
+ } = args;
+ const runtimeArgs = RuntimeArgs.fromMap({
+ name: CLValueBuilder.string(name),
+ symbol: CLValueBuilder.string(symbol),
+ decimals: CLValueBuilder.u8(decimals),
+ total_supply: CLValueBuilder.u256(totalSupply)
+ });
+
+ if (eventsMode !== undefined) {
+ runtimeArgs.insert('events_mode', CLValueBuilder.u8(eventsMode));
+ }
+ if (enableMintAndBurn !== undefined) {
+ runtimeArgs.insert(
+ 'enable_mint_burn',
+ CLValueBuilder.u8(enableMintAndBurn ? 1 : 0)
+ );
+ }
+
+ return this.callSessionWasm(
+ wasm,
+ runtimeArgs,
+ BigNumber.from(paymentAmount).toString(),
+ sender,
+ networkName ?? this.networkName,
+ signingKeys
+ );
+ }
+
+ /**
+ * Transfers tokens to another user
+ * @param args @see {@link TransferArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public transfer(
+ args: TransferArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ recipient: CLValueBuilder.key(args.recipient),
+ amount: CLValueBuilder.u256(args.amount)
+ });
+
+ return this.callEntrypoint(
+ 'transfer',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+
+ /**
+ * Transfer tokens from the approved user to another user
+ * @param args @see {@link TransferFromArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public transferFrom(
+ args: TransferFromArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ owner: CLValueBuilder.key(args.owner),
+ recipient: CLValueBuilder.key(args.recipient),
+ amount: CLValueBuilder.u256(args.amount)
+ });
+
+ return this.callEntrypoint(
+ 'transfer_from',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+
+ /**
+ * Approve tokens to other user
+ * @param args @see {@link ApproveArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public approve(
+ args: ApproveArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ spender: CLValueBuilder.key(args.spender),
+ amount: CLValueBuilder.u256(args.amount)
+ });
+
+ return this.callEntrypoint(
+ 'approve',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+
+ /**
+ * Increase allowance to the spender
+ * @param args @see {@link ApproveArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public increaseAllowance(
+ args: ApproveArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ spender: CLValueBuilder.key(args.spender),
+ amount: CLValueBuilder.u256(args.amount)
+ });
+
+ return this.callEntrypoint(
+ 'increase_allowance',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+
+ /**
+ * Decrease allowance from the spender
+ * @param args @see {@link ApproveArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public decreaseAllowance(
+ args: ApproveArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ spender: CLValueBuilder.key(args.spender),
+ amount: CLValueBuilder.u256(args.amount)
+ });
+
+ return this.callEntrypoint(
+ 'decrease_allowance',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+
+ /**
+ * Create `args.amount` tokens and assigns them to `args.owner`.
+ * Increases the total supply
+ * @param args @see {@link ApproveArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public mint(
+ args: MintArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ owner: CLValueBuilder.key(args.owner),
+ amount: CLValueBuilder.u256(args.amount)
+ });
+
+ return this.callEntrypoint(
+ 'mint',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+
+ /**
+ * Destroy `args.amount` tokens from `args.owner`. Decreases the total supply
+ * @param args @see {@link ApproveArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public burn(
+ args: BurnArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ owner: CLValueBuilder.key(args.owner),
+ amount: CLValueBuilder.u256(args.amount)
+ });
+
+ return this.callEntrypoint(
+ 'burn',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+
+ /**
+ * Change token security
+ * @param args @see {@link ChangeSecurityArgs}
+ * @param paymentAmount payment amount required for installing the contract
+ * @param sender deploy sender
+ * @param networkName network name which will be deployed to
+ * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided
+ * @returns Deploy object which can be send to the node.
+ */
+ public changeSecurity(
+ args: ChangeSecurityArgs,
+ paymentAmount: BigNumberish,
+ sender: CLPublicKey,
+ networkName?: string,
+ signingKeys?: Keys.AsymmetricKey[]
+ ): DeployUtil.Deploy {
+ const runtimeArgs = RuntimeArgs.fromMap({});
+
+ // Add optional args
+ if (args.adminList) {
+ runtimeArgs.insert(
+ 'admin_list',
+ CLValueBuilder.list(args.adminList.map(CLValueBuilder.key))
+ );
+ }
+ if (args.minterList) {
+ runtimeArgs.insert(
+ 'minter_list',
+ CLValueBuilder.list(args.minterList.map(CLValueBuilder.key))
+ );
+ }
+ if (args.burnerList) {
+ runtimeArgs.insert(
+ 'burner_list',
+ CLValueBuilder.list(args.burnerList.map(CLValueBuilder.key))
+ );
+ }
+ if (args.mintAndBurnList) {
+ runtimeArgs.insert(
+ 'mint_and_burn_list',
+ CLValueBuilder.list(args.mintAndBurnList.map(CLValueBuilder.key))
+ );
+ }
+ if (args.noneList) {
+ runtimeArgs.insert(
+ 'none_list',
+ CLValueBuilder.list(args.noneList.map(CLValueBuilder.key))
+ );
+ }
+
+ // Check if at least one arg is provided and revert if none was provided
+ if (runtimeArgs.args.size === 0) {
+ throw new Error('Should provide at least one arg');
+ }
+
+ return this.callEntrypoint(
+ 'change_security',
+ runtimeArgs,
+ sender,
+ networkName ?? this.networkName,
+ BigNumber.from(paymentAmount).toString(),
+ signingKeys
+ );
+ }
+}
\ No newline at end of file
diff --git a/packages/cep18-client/src/errors.ts b/packages/cep18-client/src/errors.ts
new file mode 100644
index 0000000..13fd2e8
--- /dev/null
+++ b/packages/cep18-client/src/errors.ts
@@ -0,0 +1,46 @@
+export enum ERROR_CODES {
+ /// CEP-18 contract called from within an invalid context.
+ InvalidContext = 60000,
+ /// Spender does not have enough balance.
+ InsufficientBalance = 60001,
+ /// Spender does not have enough allowance approved.
+ InsufficientAllowance = 60002,
+ /// Operation would cause an integer overflow.
+ Overflow = 60003,
+ /// A required package hash was not specified.
+ PackageHashMissing = 60004,
+ /// The package hash specified does not represent a package.
+ PackageHashNotPackage = 60005,
+ /// An invalid event mode was specified.
+ InvalidEventsMode = 60006,
+ /// The event mode required was not specified.
+ MissingEventsMode = 60007,
+ /// An unknown error occurred.
+ Phantom = 60008,
+ /// Failed to read the runtime arguments provided.
+ FailedToGetArgBytes = 60009,
+ /// The caller does not have sufficient security access.
+ InsufficientRights = 60010,
+ /// The list of Admin accounts provided is invalid.
+ InvalidAdminList = 60011,
+ /// The list of accounts that can mint tokens is invalid.
+ InvalidMinterList = 60012,
+ /// The list of accounts that can burn tokens is invalid.
+ InvalidBurnerList = 60013,
+ /// The list of accounts that can mint and burn is invalid.
+ InvalidMintAndBurnList = 60014,
+ /// The list of accounts with no access rights is invalid.
+ InvalidNoneList = 60015,
+ /// The flag to enable the mint and burn mode is invalid.
+ InvalidEnableMBFlag = 60016,
+ /// This contract instance cannot be initialized again.
+ AlreadyInitialized = 60017,
+ /// The mint and burn mode is disabled.
+ MintBurnDisabled = 60018
+ }
+
+ export class ContractError extends Error {
+ constructor(public code: number) {
+ super(ERROR_CODES[code]);
+ }
+ }
\ No newline at end of file
diff --git a/packages/cep18-client/src/events.ts b/packages/cep18-client/src/events.ts
new file mode 100644
index 0000000..d29db10
--- /dev/null
+++ b/packages/cep18-client/src/events.ts
@@ -0,0 +1,80 @@
+import { CLKey, CLU256, CLValue } from 'casper-js-sdk';
+
+export type Event> = {
+ name: string;
+ contractHash: `hash-${string}`;
+ contractPackageHash: `hash-${string}`;
+ data: E;
+};
+
+export interface DeployInfo {
+ deployHash: string;
+ timestamp: string;
+}
+
+export type WithDeployInfo = E & { deployInfo: DeployInfo };
+
+export type CEP18EventWithDeployInfo = WithDeployInfo;
+
+export type CEP18Event = Event<
+ | Mint
+ | Burn
+ | SetAllowance
+ | IncreaseAllowance
+ | DecreaseAllowance
+ | Transfer
+ | TransferFrom
+>;
+
+export type EventsMap = {
+ Mint: Event;
+ Burn: Event;
+ SetAllowance: Event;
+ IncreaseAllowance: Event;
+ DecreaseAllowance: Event;
+ Transfer: Event;
+ TransferFrom: Event;
+};
+
+export type Mint = {
+ recipient: CLKey;
+ amount: CLU256;
+};
+
+export type Burn = {
+ owner: CLKey;
+ amount: CLU256;
+};
+
+export type SetAllowance = {
+ owner: CLKey;
+ spender: CLKey;
+ allowance: CLU256;
+};
+
+export type IncreaseAllowance = {
+ owner: CLKey;
+ spender: CLKey;
+ allowance: CLU256;
+ inc_by: CLU256;
+};
+
+export type DecreaseAllowance = {
+ owner: CLKey;
+ spender: CLKey;
+ allowance: CLU256;
+ decr_by: CLU256;
+};
+
+export type Transfer = {
+ sender: CLKey;
+ recipient: CLKey;
+ amount: CLU256;
+};
+
+export type TransferFrom = {
+ spender: CLKey;
+ owner: CLKey;
+ recipient: CLKey;
+ amount: CLU256;
+};
\ No newline at end of file
diff --git a/packages/cep18-client/src/index.ts b/packages/cep18-client/src/index.ts
new file mode 100644
index 0000000..cd65c95
--- /dev/null
+++ b/packages/cep18-client/src/index.ts
@@ -0,0 +1,4 @@
+export * from './contract';
+export * from './events';
+export * from './types';
+export * from './client';
\ No newline at end of file
diff --git a/packages/cep18-client/src/types.ts b/packages/cep18-client/src/types.ts
new file mode 100644
index 0000000..5ca583e
--- /dev/null
+++ b/packages/cep18-client/src/types.ts
@@ -0,0 +1,54 @@
+import { type BigNumberish } from '@ethersproject/bignumber';
+import { type CLKeyParameters } from 'casper-js-sdk';
+
+export enum EVENTS_MODE {
+ NoEvents = 0,
+ CES = 1
+}
+
+export interface InstallArgs {
+ /** token name */
+ name: string;
+ /** token symbol */
+ symbol: string;
+ /** token decimals */
+ decimals: BigNumberish;
+ /** token total supply */
+ totalSupply: BigNumberish;
+ /** events mode, disabled by default */
+ eventsMode?: EVENTS_MODE;
+ /** flag for mint and burn, false by default */
+ enableMintAndBurn?: boolean;
+}
+
+export interface TransferableArgs {
+ amount: BigNumberish;
+}
+
+export interface TransferArgs extends TransferableArgs {
+ recipient: CLKeyParameters;
+}
+
+export interface TransferFromArgs extends TransferArgs {
+ owner: CLKeyParameters;
+}
+
+export interface ApproveArgs extends TransferableArgs {
+ spender: CLKeyParameters;
+}
+
+export interface MintArgs extends TransferableArgs {
+ owner: CLKeyParameters;
+}
+
+export interface BurnArgs extends TransferableArgs {
+ owner: CLKeyParameters;
+}
+
+export interface ChangeSecurityArgs {
+ adminList?: CLKeyParameters[];
+ minterList?: CLKeyParameters[];
+ burnerList?: CLKeyParameters[];
+ mintAndBurnList?: CLKeyParameters[];
+ noneList?: CLKeyParameters[];
+}
\ No newline at end of file
diff --git a/packages/cep18-client/tsup.config.js b/packages/cep18-client/tsup.config.js
new file mode 100644
index 0000000..90c5adb
--- /dev/null
+++ b/packages/cep18-client/tsup.config.js
@@ -0,0 +1,10 @@
+import { defineConfig } from 'tsup';
+
+export default defineConfig((options) => ({
+ entry: ['src/index.ts'],
+ dts: true,
+ sourcemap: true,
+ format: ['iife', 'cjs', 'esm'],
+ clean: true,
+ ...options,
+}));
diff --git a/packages/cep47-client/package.json b/packages/cep47-client/package.json
new file mode 100644
index 0000000..2370fc1
--- /dev/null
+++ b/packages/cep47-client/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "@casperdash/cep47-client",
+ "version": "0.0.1",
+ "description": "Vanilla JS library for Casper",
+ "repository": {
+ "type": "git",
+ "directory": "packages/cep47-client"
+ },
+ "contributors": [
+ "dev "
+ ],
+ "type": "module",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "build": "tsup src/index.ts",
+ "start": "pnpm build -- --watch"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "MIT",
+ "dependencies": {
+ "@casperdash/contract-client": "workspace:*",
+ "casper-js-sdk": "2.15.0"
+ },
+ "devDependencies": {
+ "eslint-plugin-prettier": "^4.2.1",
+ "tsup": "^6.7.0"
+ }
+}
diff --git a/packages/cep47-client/src/client.ts b/packages/cep47-client/src/client.ts
new file mode 100644
index 0000000..b32b5f3
--- /dev/null
+++ b/packages/cep47-client/src/client.ts
@@ -0,0 +1,4 @@
+export class CEP47Client {
+ constructor() {
+ }
+}
\ No newline at end of file
diff --git a/packages/cep47-client/src/contract.ts b/packages/cep47-client/src/contract.ts
new file mode 100644
index 0000000..57e677c
--- /dev/null
+++ b/packages/cep47-client/src/contract.ts
@@ -0,0 +1,378 @@
+import {
+ CLValue,
+ CLPublicKey,
+ CLMap,
+ RuntimeArgs,
+ Contracts,
+ Keys,
+ CLKeyParameters,
+ CLValueBuilder,
+ CLValueParsers,
+ CLTypeTag
+ } from "casper-js-sdk";
+import { Contract } from "@casperdash/contract-client";
+
+ const { toCLMap } = Contracts;
+
+ /**
+ * CEP47 installation parameters.
+ *
+ * @param name Name of the token.
+ * @param contractName Name of the contract.
+ * @param symbol Symbol of the token.
+ * @param meta A Map built with Strings containing contract metadata.
+ */
+ export interface CEP47InstallArgs {
+ name: string,
+ contractName: string,
+ symbol: string,
+ meta: Map
+ };
+
+ /**
+ * CEP47 possible events.
+ */
+ export enum CEP47Events {
+ MintOne = "cep47_mint_one",
+ TransferToken = "cep47_transfer_token",
+ BurnOne = "cep47_burn_one",
+ MetadataUpdate = 'cep47_metadata_update',
+ ApproveToken = 'cep47_approve_token'
+ }
+
+ /**
+ * CEP47 event parser.
+ * It can be used with the `EventStream` from the `casper-js-sdk`.
+ *
+ * @param params Object containing a contractPackageHash (prefixed with "hash-") and eventNames (a list of CEP47Events).
+ * @param value A data object returned by the EventStream.
+ *
+ * @returns Object containing { error: boolean, success: boolean, data: Object }.
+ * If success is set to true, the data object contains a list of parsed events.
+ */
+ export const CEP47EventParser = (
+ {
+ contractPackageHash,
+ eventNames,
+ }: { contractPackageHash: string; eventNames: CEP47Events[] },
+ value: any
+ ) => {
+ if (value.body.DeployProcessed.execution_result.Success) {
+ const { transforms } =
+ value.body.DeployProcessed.execution_result.Success.effect;
+
+ const cep47Events = transforms.reduce((acc: any, val: any) => {
+ if (
+ val.transform.hasOwnProperty("WriteCLValue") &&
+ typeof val.transform.WriteCLValue.parsed === "object" &&
+ val.transform.WriteCLValue.parsed !== null
+ ) {
+ const maybeCLValue = CLValueParsers.fromJSON(
+ val.transform.WriteCLValue
+ );
+ const clValue = maybeCLValue.unwrap();
+ if (clValue && clValue.clType().tag === CLTypeTag.Map) {
+ const hash = (clValue as CLMap).get(
+ CLValueBuilder.string("contract_package_hash")
+ );
+ const event = (clValue as CLMap).get(CLValueBuilder.string("event_type"));
+ if (
+ hash &&
+ // NOTE: Calling toLowerCase() because currently the JS-SDK doesn't support checksumed hashes and returns all lower-case values
+ // Remove it after updating the SDK
+ hash.value() === contractPackageHash.slice(5).toLowerCase() &&
+ event &&
+ eventNames.includes(event.value())
+ ) {
+ acc = [...acc, { name: event.value(), clValue }];
+ }
+ }
+ }
+ return acc;
+ }, []);
+
+ return { error: null, success: !!cep47Events.length, data: cep47Events };
+ }
+
+ return null;
+ };
+
+
+ export class CEP47Contract extends Contract {
+
+ constructor(public networkName: string, public contractHash?: string, public contractPackageHash?: string) {
+ super(contractHash, contractPackageHash);
+ }
+
+ /**
+ * Installs the CEP47 contract.
+ *
+ * @param wasm Uin8Array with contents of the WASM file.
+ * @param args CEP47 installation args (see CEP47InstallArgs).
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns Deploy that can be signed and sent to the network.
+ */
+ public install(
+ wasm: Uint8Array,
+ args: CEP47InstallArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ name: CLValueBuilder.string(args.name),
+ contract_name: CLValueBuilder.string(args.contractName),
+ symbol: CLValueBuilder.string(args.symbol),
+ meta: toCLMap(args.meta),
+ });
+
+ return this.callSessionWasm(wasm, runtimeArgs, paymentAmount, deploySender, this.networkName, keys || []);
+ }
+
+ /**
+ * Gives another account the right to spend tokens from this account.
+ *
+ * @param spender The account that can spend tokens from the owner account.
+ * @param ids The token IDs that can be spent.
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns The Deploy that can be sent to the network.
+ */
+ public async approve(
+ spender: CLKeyParameters,
+ ids: string[],
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ spender: CLValueBuilder.key(spender),
+ token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id)))
+ });
+
+ return this.callEntrypoint(
+ 'approve',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+ }
+
+ /**
+ * Creates new tokens for a specific recipient, given the token IDs and their metadata, paired in order.
+ *
+ * @param recipient The account for which tokens will be minted.
+ * @param ids The token IDs that will be minted for this account.
+ * @param metas The corresponding metadata for each minted token.
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns The Deploy that can be sent to the network.
+ */
+ public async mint(
+ recipient: CLKeyParameters,
+ ids: string[],
+ metas: Map[],
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ recipient: CLValueBuilder.key(recipient),
+ token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))),
+ token_metas: CLValueBuilder.list(metas.map(meta => toCLMap(meta)))
+ });
+
+ return this.callEntrypoint(
+ 'mint',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+ }
+
+ /**
+ * Creates several new tokens with specific IDs but with the same metadata.
+ *
+ * @param recipient The account for which tokens will be minted.
+ * @param ids The token IDs that will be minted for this account.
+ * @param meta The metadata that will be used for each minted token.
+ * @param count Number of tokens to be minted.
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns The Deploy that can be sent to the network.
+ */
+ public async mintCopies(
+ recipient: CLKeyParameters,
+ ids: string[],
+ meta: Map,
+ count: number,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ recipient: CLValueBuilder.key(recipient),
+ token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))),
+ token_meta: toCLMap(meta),
+ count: CLValueBuilder.u32(count)
+ });
+
+ return this.callEntrypoint(
+ 'mint_copies',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+ }
+
+ /**
+ * Destroys the given tokens for the account specified.
+ *
+ * @param owner The account for which tokens will be burned.
+ * @param ids Token IDs that will be burned for this account.
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns The Deploy that can be sent to the network.
+ */
+ public async burn(
+ owner: CLKeyParameters,
+ ids: string[],
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ owner: CLValueBuilder.key(owner),
+ token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))),
+ });
+
+ return this.callEntrypoint(
+ 'burn',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+ }
+
+ /**
+ * Transfers tokens from a given account to another account.
+ *
+ * @param recipient The account that will receive tokens from the token owner.
+ * @param owner The account that owns the tokens to be transferred.
+ * @param ids Token IDs that will be transferred to the recipient.
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns The Deploy that can be sent to the network.
+ */
+ public async transferFrom(
+ recipient: CLKeyParameters,
+ owner: CLKeyParameters,
+ ids: string[],
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ recipient: CLValueBuilder.key(recipient),
+ sender: CLValueBuilder.key(owner),
+ token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))),
+ });
+
+ return this.callEntrypoint(
+ 'transfer_from',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+ }
+
+ /**
+ * Transfers tokens from the caller's account to another account.
+ *
+ * @param recipient The account that will receive the tokens transferred from the caller.
+ * @param ids Token IDs that will be transferred.
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns The Deploy that can be sent to the network.
+ */
+ public async transfer(
+ recipient: CLKeyParameters,
+ ids: string[],
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ recipient: CLValueBuilder.key(recipient),
+ token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))),
+ });
+
+ return this.callEntrypoint(
+ 'transfer',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+ }
+
+ /**
+ * Updates the metadata of a token.
+ *
+ * @param id The ID of the token to be updated.
+ * @param meta The new metadata for the token specified.
+ * @param paymentAmount The payment amount that will be used for this Deploy.
+ * @param deploySender The PublicKey of the Deploy sender.
+ * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy.
+ *
+ * @returns The Deploy that can be sent to the network.
+ */
+ public async updateTokenMeta(
+ id: string,
+ meta: Map,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_id: CLValueBuilder.u256(id),
+ token_meta: toCLMap(meta),
+ });
+
+ return this.callEntrypoint(
+ 'update_token_meta',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+ }
+ }
+
\ No newline at end of file
diff --git a/packages/cep47-client/src/index.ts b/packages/cep47-client/src/index.ts
new file mode 100644
index 0000000..453e9b8
--- /dev/null
+++ b/packages/cep47-client/src/index.ts
@@ -0,0 +1 @@
+export * from './contract';
\ No newline at end of file
diff --git a/packages/cep47-client/tsup.config.js b/packages/cep47-client/tsup.config.js
new file mode 100644
index 0000000..90c5adb
--- /dev/null
+++ b/packages/cep47-client/tsup.config.js
@@ -0,0 +1,10 @@
+import { defineConfig } from 'tsup';
+
+export default defineConfig((options) => ({
+ entry: ['src/index.ts'],
+ dts: true,
+ sourcemap: true,
+ format: ['iife', 'cjs', 'esm'],
+ clean: true,
+ ...options,
+}));
diff --git a/packages/cep78-client/package.json b/packages/cep78-client/package.json
new file mode 100644
index 0000000..b10e586
--- /dev/null
+++ b/packages/cep78-client/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "@casperdash/cep78-client",
+ "version": "0.0.1",
+ "description": "A client for interacting with CEP-78 compliant contracts",
+ "repository": {
+ "type": "git",
+ "directory": "packages/cep78-client"
+ },
+ "contributors": [
+ "dev "
+ ],
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "build": "tsup src/index.ts",
+ "start": "pnpm build -- --watch"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "MIT",
+ "dependencies": {
+ "@make-software/ces-js-parser": "^1.3.3",
+ "@casperdash/contract-client": "workspace:*",
+ "casper-js-sdk": "2.15.0"
+ },
+ "devDependencies": {
+ "eslint-plugin-prettier": "^4.2.1",
+ "tsup": "^6.7.0"
+ }
+}
diff --git a/packages/cep78-client/src/client.ts b/packages/cep78-client/src/client.ts
new file mode 100644
index 0000000..8eb4f93
--- /dev/null
+++ b/packages/cep78-client/src/client.ts
@@ -0,0 +1,3 @@
+export class CEP78Client {
+
+}
\ No newline at end of file
diff --git a/packages/cep78-client/src/constants.ts b/packages/cep78-client/src/constants.ts
new file mode 100644
index 0000000..a5a3040
--- /dev/null
+++ b/packages/cep78-client/src/constants.ts
@@ -0,0 +1 @@
+export const CEP78_CONTRACT_PACKAGE = "cep78_contract_package";
diff --git a/packages/cep78-client/src/contract.ts b/packages/cep78-client/src/contract.ts
new file mode 100644
index 0000000..60247a2
--- /dev/null
+++ b/packages/cep78-client/src/contract.ts
@@ -0,0 +1,618 @@
+import {
+ CLPublicKey,
+ CLKey,
+ RuntimeArgs,
+ Keys,
+ CLValueBuilder,
+} from "casper-js-sdk";
+
+import {
+ CallConfig,
+ InstallArgs,
+ NamedKeyConventionMode,
+ ConfigurableVariables,
+ MintArgs,
+ RegisterArgs,
+ BurnArgs,
+ ApproveArgs,
+ ApproveAllArgs,
+ TransferArgs,
+ MigrateArgs,
+ NFTIdentifierMode,
+ MetadataMutability,
+ TokenMetadataArgs,
+ StoreBalanceOfArgs,
+ StoreApprovedArgs,
+ StoreOwnerOfArgs,
+} from "./types";
+
+import { Contract } from '@casperdash/contract-client';
+
+export * from "./types";
+
+enum ERRORS {
+ CONFLICT_CONFIG = "Conflicting arguments provided",
+}
+
+const convertHashStrToHashBuff = (hashStr: string) => {
+ let hashHex = hashStr;
+ if (hashStr.startsWith("hash-")) {
+ hashHex = hashStr.slice(5);
+ }
+ return Buffer.from(hashHex, "hex");
+};
+
+const buildHashList = (list: string[]) =>
+ list.map((hashStr) =>
+ CLValueBuilder.byteArray(convertHashStrToHashBuff(hashStr))
+ );
+
+export class CEP78Contract extends Contract {
+ public contractHashKey: CLKey;
+
+ constructor(
+ public networkName: string,
+ contractHash?: string,
+ contractPackageHash?: string
+ ) {
+ super(contractHash, contractPackageHash);
+
+ if (contractHash) {
+ this.contractHashKey = CLValueBuilder.key(
+ CLValueBuilder.byteArray(convertHashStrToHashBuff(contractHash))
+ );
+ }
+ }
+
+ public setContractHash(contractHash: string, contractPackageHash?: string | undefined): void {
+ super.setContractHash(contractHash, contractPackageHash);
+ this.contractHashKey = CLValueBuilder.key(
+ CLValueBuilder.byteArray(convertHashStrToHashBuff(contractHash))
+ );
+ }
+
+ public install(
+ args: InstallArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ wasm: Uint8Array,
+ keys?: Keys.AsymmetricKey[],
+ ) {
+ if (!wasm) {
+ throw new Error("You need to provide wasm");
+ }
+
+ const wasmToInstall = wasm;
+
+ if (
+ args.identifierMode === NFTIdentifierMode.Hash &&
+ args.metadataMutability === MetadataMutability.Mutable
+ ) {
+ throw new Error(
+ `You can't combine NFTIdentifierMode.Hash and MetadataMutability.Mutable`
+ );
+ }
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ collection_name: CLValueBuilder.string(args.collectionName),
+ collection_symbol: CLValueBuilder.string(args.collectionSymbol),
+ total_token_supply: CLValueBuilder.u64(args.totalTokenSupply),
+ ownership_mode: CLValueBuilder.u8(args.ownershipMode),
+ nft_kind: CLValueBuilder.u8(args.nftKind),
+ nft_metadata_kind: CLValueBuilder.u8(args.nftMetadataKind),
+ identifier_mode: CLValueBuilder.u8(args.identifierMode),
+ metadata_mutability: CLValueBuilder.u8(args.metadataMutability),
+ });
+
+ // TODO: Validate here
+ if (args.jsonSchema !== undefined) {
+ runtimeArgs.insert(
+ "json_schema",
+ CLValueBuilder.string(JSON.stringify(args.jsonSchema))
+ );
+ }
+
+ if (args.mintingMode !== undefined) {
+ runtimeArgs.insert("minting_mode", CLValueBuilder.u8(args.mintingMode));
+ }
+
+ if (args.allowMinting !== undefined) {
+ runtimeArgs.insert(
+ "allow_minting",
+ CLValueBuilder.bool(args.allowMinting)
+ );
+ }
+
+ if (args.whitelistMode !== undefined) {
+ runtimeArgs.insert(
+ "whitelist_mode",
+ CLValueBuilder.u8(args.whitelistMode)
+ );
+ }
+
+ if (args.holderMode !== undefined) {
+ runtimeArgs.insert("holder_mode", CLValueBuilder.u8(args.holderMode));
+ }
+
+ if (args.contractWhitelist !== undefined) {
+ const list = buildHashList(args.contractWhitelist);
+ runtimeArgs.insert("contract_whitelist", CLValueBuilder.list(list));
+ }
+
+ if (args.burnMode !== undefined) {
+ runtimeArgs.insert("burn_mode", CLValueBuilder.u8(args.burnMode));
+ }
+
+ if (args.ownerReverseLookupMode !== undefined) {
+ runtimeArgs.insert(
+ "owner_reverse_lookup_mode",
+ CLValueBuilder.u8(args.ownerReverseLookupMode)
+ );
+ }
+
+ if (args.namedKeyConventionMode !== undefined) {
+ runtimeArgs.insert(
+ "named_key_convention",
+ CLValueBuilder.u8(args.namedKeyConventionMode)
+ );
+ }
+
+ if (args.namedKeyConventionMode === NamedKeyConventionMode.V1_0Custom) {
+ if (!args.accessKeyName || !args.hashKeyName) {
+ throw new Error(
+ "You need to provide 'accessKeyName' and 'hashKeyName' if you want to use NamedKeyConventionMode.V1_0Custom"
+ );
+ }
+ runtimeArgs.insert(
+ "access_key_name",
+ CLValueBuilder.string(args.accessKeyName)
+ );
+ runtimeArgs.insert(
+ "hash_key_name",
+ CLValueBuilder.string(args.hashKeyName)
+ );
+ }
+
+ if (args.eventsMode !== undefined) {
+ runtimeArgs.insert("events_mode", CLValueBuilder.u8(args.eventsMode));
+ }
+
+ return this.callSessionWasm(
+ wasmToInstall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys || []
+ );
+ }
+
+ public setVariables(
+ args: ConfigurableVariables,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({});
+
+ if (args.allowMinting !== undefined) {
+ runtimeArgs.insert(
+ "allow_minting",
+ CLValueBuilder.bool(args.allowMinting)
+ );
+ }
+
+ if (args.contractWhitelist !== undefined) {
+ const list = buildHashList(args.contractWhitelist);
+ runtimeArgs.insert("contract_whitelist", CLValueBuilder.list(list));
+ }
+
+ const preparedDeploy = this.callEntrypoint(
+ "set_variables",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public register(
+ args: RegisterArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_owner: CLValueBuilder.key(args.tokenOwner),
+ });
+
+ const preparedDeploy = this.callEntrypoint(
+ "register_owner",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public revoke(
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const preparedDeploy = this.callEntrypoint(
+ "revoke",
+ RuntimeArgs.fromMap({}),
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public mint(
+ args: MintArgs,
+ config: CallConfig,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[],
+ wasm?: Uint8Array
+ ) {
+ if (config.useSessionCode === false && !!wasm)
+ throw new Error(ERRORS.CONFLICT_CONFIG);
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_owner: CLValueBuilder.key(args.owner),
+ token_meta_data: CLValueBuilder.string(JSON.stringify(args.meta)),
+ });
+
+ if (config.useSessionCode) {
+ if (!wasm) {
+ throw new Error("Missing wasm argument");
+ }
+ if (!args.collectionName) {
+ throw new Error("Missing collectionName argument");
+ }
+ if (!this.contractHashKey) {
+ throw new Error("Missing contractHashKey argument");
+ }
+
+ const wasmToCall = wasm;
+
+ runtimeArgs.insert("nft_contract_hash", this.contractHashKey);
+ runtimeArgs.insert(
+ "collection_name",
+ CLValueBuilder.string(args.collectionName)
+ );
+
+ const preparedDeploy = this.callSessionWasm(
+ wasmToCall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ const preparedDeploy = this.callEntrypoint(
+ "mint",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public burn(
+ args: BurnArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({});
+
+ if (args.tokenId !== undefined) {
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash !== undefined) {
+ runtimeArgs.insert("token_hash", CLValueBuilder.string(args.tokenHash));
+ }
+
+ const preparedDeploy = this.callEntrypoint(
+ "burn",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public transfer(
+ args: TransferArgs,
+ config: CallConfig = { useSessionCode: false },
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[],
+ wasm?: Uint8Array
+ ) {
+ if (config.useSessionCode === false && !!wasm)
+ throw new Error(ERRORS.CONFLICT_CONFIG);
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ target_key: CLValueBuilder.key(args.target),
+ source_key: CLValueBuilder.key(args.source),
+ });
+
+ if (args.tokenId) {
+ runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(false));
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash) {
+ runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(true));
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenHash));
+ }
+
+ if (config.useSessionCode) {
+ if (!wasm) {
+ throw new Error("Missing wasm argument");
+ }
+ if (!this.contractHashKey) {
+ throw new Error("Missing contractHashKey argument");
+ }
+ runtimeArgs.insert("nft_contract_hash", this.contractHashKey);
+ const wasmToCall = wasm;
+
+ const preparedDeploy = this.callSessionWasm(
+ wasmToCall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ const preparedDeploy = this.callEntrypoint(
+ "transfer",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public setTokenMetadata(
+ args: TokenMetadataArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_meta_data: CLValueBuilder.string(
+ JSON.stringify(args.tokenMetaData)
+ ),
+ });
+
+ const preparedDeploy = this.callEntrypoint(
+ "set_token_metadata",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public approve(
+ args: ApproveArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ operator: CLValueBuilder.key(args.operator),
+ });
+
+ if (args.tokenId !== undefined) {
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash !== undefined) {
+ runtimeArgs.insert("token_hash", CLValueBuilder.string(args.tokenHash));
+ }
+
+ const preparedDeploy = this.callEntrypoint(
+ "approve",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public approveAll(
+ args: ApproveAllArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_owner: CLValueBuilder.key(args.tokenOwner),
+ approve_all: CLValueBuilder.bool(args.approveAll),
+ operator: CLValueBuilder.key(args.operator),
+ });
+
+ const preparedDeploy = this.callEntrypoint(
+ "set_approval_for_all",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public storeBalanceOf(
+ args: StoreBalanceOfArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ wasm: Uint8Array,
+ keys?: Keys.AsymmetricKey[],
+ ) {
+ if (!wasm) {
+ throw new Error("You need to provide wasm");
+ }
+
+ const wasmToCall = wasm;
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ nft_contract_hash: this.contractHashKey,
+ token_owner: args.tokenOwner,
+ key_name: CLValueBuilder.string(args.keyName),
+ });
+
+ const preparedDeploy = this.callSessionWasm(
+ wasmToCall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public storeGetApproved(
+ args: StoreApprovedArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ wasm: Uint8Array,
+ keys?: Keys.AsymmetricKey[],
+ ) {
+ if (!wasm) {
+ throw new Error("You need to provide wasm");
+ }
+ const wasmToCall = wasm;
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ nft_contract_hash: this.contractHashKey,
+ key_name: CLValueBuilder.string(args.keyName),
+ });
+
+ if (args.tokenId) {
+ runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(false));
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash) {
+ runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(true));
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenHash));
+ }
+
+ const preparedDeploy = this.callSessionWasm(
+ wasmToCall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public storeOwnerOf(
+ args: StoreOwnerOfArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ wasm: Uint8Array,
+ keys?: Keys.AsymmetricKey[],
+ ) {
+ if (!wasm) {
+ throw new Error("You need to provide wasm");
+ }
+
+ const wasmToCall = wasm;
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ nft_contract_hash: this.contractHashKey,
+ key_name: CLValueBuilder.string(args.keyName),
+ });
+
+ if (args.tokenId) {
+ runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(false));
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash) {
+ runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(true));
+ runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenHash));
+ }
+
+ const preparedDeploy = this.callSessionWasm(
+ wasmToCall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+
+ public migrate(
+ args: MigrateArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ collection_name: CLValueBuilder.string(args.collectionName),
+ });
+
+ const preparedDeploy = this.callEntrypoint(
+ "migrate",
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+}
diff --git a/packages/cep78-client/src/events.ts b/packages/cep78-client/src/events.ts
new file mode 100644
index 0000000..e215362
--- /dev/null
+++ b/packages/cep78-client/src/events.ts
@@ -0,0 +1,97 @@
+import {
+ CLValueParsers,
+ CLMap,
+ CLString,
+ CLValueBuilder,
+ CLTypeTag,
+ CLValue,
+ CasperServiceByJsonRPC,
+} from "casper-js-sdk";
+
+import { Parser } from '@make-software/ces-js-parser';
+import { CEP78_CONTRACT_PACKAGE } from "./constants";
+import { EventItem, EventParsed, CEP47Events, Transform } from "./types";
+
+export const CEP47EventParserFactory =
+ ({
+ contractPackageHash,
+ eventNames,
+ }: {
+ contractPackageHash: string;
+ eventNames: CEP47Events[];
+ }) =>
+ (value: EventItem) => {
+ if (!value.body.DeployProcessed.execution_result.Success) {
+ return null;
+ }
+
+ if (value.body.DeployProcessed.execution_result.Success) {
+ const { transforms } =
+ value.body.DeployProcessed.execution_result.Success.effect;
+
+ const cep47Events = transforms.reduce(
+ (acc: EventParsed[], val: Transform) => {
+ if (val.transform.WriteCLValue?.cl_type === "Any") {
+ const maybeCLValue = CLValueParsers.fromBytesWithType(
+ Buffer.from(val.transform.WriteCLValue?.bytes, "hex")
+ );
+ const clValue = maybeCLValue.unwrap();
+
+ if (clValue?.clType().tag === CLTypeTag.Map) {
+ const hash = (clValue as CLMap).get(
+ CLValueBuilder.string(CEP78_CONTRACT_PACKAGE)
+ );
+
+ const hashToCompare = (hash as CLString).value().slice(21);
+
+ const event = (clValue as CLMap)
+ .get(CLValueBuilder.string("event_type"))!
+ .value() as string;
+
+ if (
+ hash &&
+ hashToCompare === contractPackageHash.slice(5) &&
+ event &&
+ eventNames.includes(event as CEP47Events)
+ ) {
+ /* eslint-disable-next-line no-param-reassign */
+ acc = [...acc, { name: event, clValue }];
+ }
+ }
+ }
+ return acc;
+ },
+ []
+ );
+
+ // For now we're returning error: null because failed deploys doesn't contain contract-package-hash so we can't identify them.
+ // But as this is part of node-1.5 release I'm keeping this so we won't change interface here.
+ return { error: null, success: !!cep47Events.length, data: cep47Events };
+ }
+
+ return null;
+ };
+
+export const CESEventParserFactory =
+ ({
+ contractHashes,
+ // TODO: IDEALLY in future I would love to have here a schema as an argument instead of casperClient. That way the whole thing can be initialized offline as the whole client.
+ casperClient,
+ }: {
+ contractHashes: string[];
+ casperClient: CasperServiceByJsonRPC;
+ }) =>
+ async (event: EventItem) => {
+ const validatedHashes = contractHashes.map((hash) =>
+ hash.startsWith("hash-") ? hash.slice(5) : hash
+ );
+ const parser = await Parser.create(casperClient as any, validatedHashes);
+
+ try {
+ const toParse = event.body.DeployProcessed.execution_result;
+ const events = parser.parseExecutionResult(toParse);
+ return { error: null, success: !!events.length, data: events };
+ } catch (error: unknown) {
+ return { error, success: false, data: null };
+ }
+ };
diff --git a/packages/cep78-client/src/index.ts b/packages/cep78-client/src/index.ts
new file mode 100644
index 0000000..5c9ca75
--- /dev/null
+++ b/packages/cep78-client/src/index.ts
@@ -0,0 +1,5 @@
+export * from './events';
+export * from './types';
+export * from './constants';
+export * from './client';
+export * from './contract';
diff --git a/packages/cep78-client/src/types.ts b/packages/cep78-client/src/types.ts
new file mode 100644
index 0000000..1e8962b
--- /dev/null
+++ b/packages/cep78-client/src/types.ts
@@ -0,0 +1,232 @@
+import { CLType, CLValue, CLKeyParameters } from "casper-js-sdk";
+
+export enum CEP47Events {
+ Mint = "Mint",
+ Burn = "Burn",
+ Approval = "Approval",
+ ApprovalRevoked = "ApprovalRevoked",
+ ApprovalForAll = "ApprovalForAll",
+ RevokedForAll = "RevokedForAll",
+ Transfer = "Transfer",
+ MetadataUpdated = "MetadataUpdated",
+ VariablesSet = "VariablesSet",
+ Migration = "Migration",
+}
+
+export interface CallConfig {
+ useSessionCode: boolean;
+}
+
+export enum NamedKeyConventionMode {
+ DerivedFromCollectionName,
+ V1_0Standard,
+ V1_0Custom,
+}
+
+export enum NFTOwnershipMode {
+ Minter,
+ Assigned,
+ Transferable,
+}
+
+export enum NFTKind {
+ Physical,
+ Digital,
+ Virtual,
+}
+
+export enum NFTHolderMode {
+ Accounts,
+ Contracts,
+ Mixed,
+}
+
+export enum NFTMetadataKind {
+ CEP78,
+ NFT721,
+ Raw,
+ CustomValidated,
+}
+
+export enum NFTIdentifierMode {
+ Ordinal,
+ Hash,
+}
+
+export enum MetadataMutability {
+ Immutable,
+ Mutable,
+}
+
+export enum MintingMode {
+ Installer,
+ Public,
+ ACL
+}
+
+export enum BurnMode {
+ Burnable,
+ NonBurnable,
+}
+
+export enum WhitelistMode {
+ Unlocked,
+ Locked,
+}
+
+export enum OwnerReverseLookupMode {
+ NoLookup,
+ Complete,
+ TransfersOnly,
+}
+
+export enum EventsMode {
+ NoEvents,
+ CEP47,
+ CES,
+}
+
+export interface JSONSchemaEntry {
+ name: string;
+ description: string;
+ required: boolean;
+}
+
+export interface JSONSchemaObject {
+ properties: Record;
+}
+
+export type ConfigurableVariables = {
+ allowMinting?: boolean;
+ contractWhitelist?: string[];
+};
+
+export type InstallArgs = {
+ collectionName: string;
+ collectionSymbol: string;
+ totalTokenSupply: string;
+ ownershipMode: NFTOwnershipMode;
+ nftKind: NFTKind;
+ jsonSchema?: JSONSchemaObject;
+ nftMetadataKind: NFTMetadataKind;
+ identifierMode: NFTIdentifierMode;
+ metadataMutability: MetadataMutability;
+ mintingMode?: MintingMode;
+ whitelistMode?: WhitelistMode;
+ holderMode?: NFTHolderMode;
+ burnMode?: BurnMode;
+ ownerReverseLookupMode?: OwnerReverseLookupMode;
+ namedKeyConventionMode?: NamedKeyConventionMode;
+ accessKeyName?: string;
+ hashKeyName?: string;
+ eventsMode?: EventsMode;
+} & ConfigurableVariables;
+
+export interface RegisterArgs {
+ tokenOwner: CLKeyParameters;
+}
+
+export interface MintArgs {
+ owner: CLKeyParameters;
+ meta: Record;
+ collectionName?: string;
+}
+
+export interface TokenArgs {
+ tokenId?: string;
+ tokenHash?: string;
+}
+
+export type BurnArgs = TokenArgs;
+
+export type TransferArgs = {
+ target: CLKeyParameters;
+ source: CLKeyParameters;
+} & TokenArgs;
+
+export type TokenMetadataArgs = {
+ tokenMetaData: Record;
+};
+
+export type StoreBalanceOfArgs = {
+ tokenOwner: CLKeyParameters;
+ keyName: string;
+};
+
+export type StoreApprovedArgs = {
+ keyName: string;
+} & TokenArgs;
+
+export type StoreOwnerOfArgs = StoreApprovedArgs;
+
+export type ApproveArgs = {
+ operator: CLKeyParameters;
+} & TokenArgs;
+
+export type ApproveAllArgs = {
+ operator: CLKeyParameters;
+ approveAll: boolean;
+ tokenOwner: CLKeyParameters;
+};
+
+export type MigrateArgs = {
+ collectionName: string;
+};
+
+type WriteCLValue = {
+ cl_type: string;
+ bytes: string;
+ parsed: string;
+};
+
+// TODO: Most of this types can be moved to casper-js-sdk in feature release
+// https://github.com/casper-ecosystem/casper-js-sdk/issues/268
+
+type TransformValue = {
+ WriteCLValue?: WriteCLValue;
+};
+
+export interface Transform {
+ key: string;
+ transform: TransformValue;
+}
+
+interface Effect {
+ transforms: Transform[];
+}
+
+interface ExecutionResultBody {
+ cost: number;
+ error_message?: string | null;
+ transfers: string[];
+ effect: Effect;
+}
+
+export interface ExecutionResult {
+ Success?: ExecutionResultBody;
+ Failure?: ExecutionResultBody;
+}
+
+export interface WithRemainder {
+ data: T;
+ remainder: Uint8Array;
+}
+
+export interface RawCLValue {
+ clType: CLType;
+ bytes: Uint8Array;
+}
+
+export interface EventItem {
+ id: number;
+ body: {
+ DeployProcessed: {
+ execution_result: ExecutionResult;
+ };
+ };
+}
+
+export interface EventParsed {
+ name: string;
+ clValue: CLValue;
+}
diff --git a/packages/cep78-client/tsup.config.js b/packages/cep78-client/tsup.config.js
new file mode 100644
index 0000000..90c5adb
--- /dev/null
+++ b/packages/cep78-client/tsup.config.js
@@ -0,0 +1,10 @@
+import { defineConfig } from 'tsup';
+
+export default defineConfig((options) => ({
+ entry: ['src/index.ts'],
+ dts: true,
+ sourcemap: true,
+ format: ['iife', 'cjs', 'esm'],
+ clean: true,
+ ...options,
+}));
diff --git a/packages/contract-client/package.json b/packages/contract-client/package.json
new file mode 100644
index 0000000..3d57235
--- /dev/null
+++ b/packages/contract-client/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "@casperdash/contract-client",
+ "version": "0.0.4",
+ "description": "A simple, lightweight, and extensible library for interacting with the Casper Network.",
+ "repository": {
+ "type": "git",
+ "directory": "packages/contract-client"
+ },
+ "contributors": [
+ "dev "
+ ],
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "build": "tsup src/index.ts",
+ "start": "pnpm build -- --watch"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "MIT",
+ "dependencies": {
+ "casper-js-sdk": "2.15.0"
+ },
+ "devDependencies": {
+ "eslint-plugin-prettier": "^4.2.1",
+ "tsup": "^7.2.0"
+ }
+}
diff --git a/packages/contract-client/src/contract.ts b/packages/contract-client/src/contract.ts
new file mode 100644
index 0000000..12d4dd8
--- /dev/null
+++ b/packages/contract-client/src/contract.ts
@@ -0,0 +1,204 @@
+import {
+ CLPublicKey,
+ DeployUtil,
+ Keys,
+ RuntimeArgs,
+} from 'casper-js-sdk';
+
+export const DEFAULT_DEPLOY_TTL = 1800000;
+
+/**
+ * Convert a contract hash hexadecimal string to a byte array
+ * @param contractHash Hexadecimal string of a contract hash, without the "hash-" prefix
+ * @returns `Uint8Array` representation of the contract hash
+ */
+export const contractHashToByteArray = (contractHash: string) =>
+ Uint8Array.from(Buffer.from(contractHash, 'hex'));
+
+/** Smart contract object for interacting with contracts on the Casper Network */
+export class Contract {
+ public contractHash?: string;
+ public contractPackageHash?: string;
+
+ constructor(
+ contractHash?: string,
+ contractPackageHash?: string
+ ) {
+ if (contractHash) {
+ this.setContractHash(contractHash, contractPackageHash);
+ }
+ }
+
+ /**
+ * Attaches an on-chain smart contract to this `Contract` object using its hexadecimal string typed hash. The contract hash must include the prefix "hash-"
+ * @param contractHash The hexadecimal smart contract hash, with the prefix "hash-"
+ * @param contractPackageHash The hexadecimal smart contract package hash, with the prefix "hash-". This parameter is optional, and only used when there is event processing present.
+ */
+ public setContractHash(
+ contractHash: string,
+ contractPackageHash?: string
+ ): void {
+ if (
+ !contractHash.startsWith('hash-') ||
+ (contractPackageHash && !contractPackageHash.startsWith('hash-'))
+ ) {
+ throw new Error(
+ 'Please provide contract hash in a format that contains hash- prefix.'
+ );
+ }
+
+ this.contractHash = contractHash;
+ this.contractPackageHash = contractPackageHash;
+ }
+
+ /**
+ * Install a smart contract on a Casper Network
+ * @param wasm `Uint8Array` representation of a WebAssembly compiled smart contract
+ * @param args The runtime arguments for the installment deploy
+ * @param paymentAmount The gas payment in motes, where 1 mote = 10^-9 CSPR. Use a stringified base-10 integer
+ * @param sender `CLPublicKey` of the sender of the installment deploy
+ * @param chainName The name of the network the installment deploy will be sent to. You can get the network name of a node by calling the REST endpoint `:8888/status`
+ * @param signingKeys An array of keypairs used to sign the deploy. If you are signing with one key, use an array with only the one keypair. If instead you are utilizing multi-sig functionality, provide multiple keypair objects in the array.
+ * @returns The installment deploy, to be sent to a node.
+ * @remarks In the future, this method will be an alias to a different method: `callModuleBytesEntrypoint`
+ */
+ public callSessionWasm(
+ wasm: Uint8Array,
+ args: RuntimeArgs,
+ paymentAmount: string,
+ sender: CLPublicKey,
+ chainName: string,
+ signingKeys: Keys.AsymmetricKey[] = []
+ ): DeployUtil.Deploy {
+ const deploy = DeployUtil.makeDeploy(
+ new DeployUtil.DeployParams(sender, chainName),
+ DeployUtil.ExecutableDeployItem.newModuleBytes(wasm, args),
+ DeployUtil.standardPayment(paymentAmount)
+ );
+
+ if (!signingKeys || signingKeys.length === 0) {
+ return deploy;
+ }
+
+ const signedDeploy = deploy.sign(signingKeys);
+
+ return signedDeploy;
+ }
+
+ private checkSetup(): boolean {
+ if (this.contractHash) return true;
+ throw Error('You need to setContract before running this method.');
+ }
+
+ /**
+ * Call an entrypoint of a smart contract.
+ * @param entryPoint The name of an entrypoint of a smart contract that you wish to call
+ * @param args The runtime arguments for the deploy
+ * @param sender `CLPublicKey` of the sender of the deploy
+ * @param chainName The name of the network the installment deploy will be sent to. You can get the network name of a node by calling the REST endpoint `:8888/status`
+ * @param paymentAmount The gas payment in motes, where 1 mote = 10^-9 CSPR. Use a stringified base-10 integer
+ * @param signingKeys An array of keypairs used to sign the deploy. If you are signing with one key, use an array with only the one keypair. If instead you are utilizing multi-sig functionality, provide multiple keypair objects in the array.
+ * @param ttl The time that the deploy has to live. If the deploy awaits execution longer than this interval, in seconds, then the deploy will fail. This parameter will default to the [DEFAULT_DEPLOY_TTL](../constants.ts#L1) if not specified.
+ * @returns A Deploy object that can be sent to a node to call an entrypoint
+ */
+ public callEntrypoint(
+ entryPoint: string,
+ args: RuntimeArgs,
+ sender: CLPublicKey,
+ chainName: string,
+ paymentAmount: string,
+ signingKeys: Keys.AsymmetricKey[] = [],
+ ttl: number = DEFAULT_DEPLOY_TTL
+ ): DeployUtil.Deploy {
+ this.checkSetup();
+
+ const contractHashAsByteArray = contractHashToByteArray(
+ this.contractHash!.slice(5)
+ );
+
+ const deploy = DeployUtil.makeDeploy(
+ new DeployUtil.DeployParams(sender, chainName, 1, ttl),
+ DeployUtil.ExecutableDeployItem.newStoredContractByHash(
+ contractHashAsByteArray,
+ entryPoint,
+ args
+ ),
+ DeployUtil.standardPayment(paymentAmount)
+ );
+
+ if (!signingKeys || signingKeys.length === 0) {
+ return deploy;
+ }
+
+ const signedDeploy = deploy.sign(signingKeys);
+
+ return signedDeploy;
+ }
+
+// /**
+// * Query data from a smart contract.
+// * @param path Path to the data requested
+// * @param casperClient A `CasperClient` object with a connected node. This parameter is not required if there is an existing `CasperClient` object attached to this `Contract` instance
+// * @param stateRootHash The state root hash at which to query this data. If no state root hash is provided, the most recent one will be queried and used.
+// * @returns A `Promise` that resolves to a stored `CLValue` within the smart contract. This `Promise` will be rejected if there is no `CasperClient` to use, or if the stored value is unavailable or invalid
+// */
+// public async queryContractData(
+// path: string[] = [],
+// casperClient?: CasperClient,
+// stateRootHash?: string
+// ): Promise {
+// const client = casperClient || this.casperClient;
+// if (!client) throw Error(NO_CLIENT_ERR);
+
+// const stateRootHashToUse =
+// stateRootHash || (await client.nodeClient.getStateRootHash());
+
+// const contractData = await client.nodeClient.getBlockState(
+// stateRootHashToUse,
+// this.contractHash!,
+// path
+// );
+
+// if (contractData && contractData.CLValue?.isCLValue) {
+// return contractData.CLValue.value();
+// } else {
+// throw Error('Invalid stored value');
+// }
+// }
+
+// /**
+// * Query a dictionary associated with a smart contract to obtain stored key-value pairs.
+// * @param dictionaryName The name of the dictionary to be queried
+// * @param dictionaryItemKey The key of the key-value pair to be obtained
+// * @param stateRootHash The state root hash at which to query this data. If no state root hash is provided, the most recent one will be queried and used.
+// * @param casperClient A `CasperClient` object with a connected node. This parameter is not required if there is an existing `CasperClient` object attached to this `Contract` instance
+// * @returns A `Promise` which resolves to a `CLValue`. This `Promise` will be rejected if there is no `CasperClient` to use, or if the value in the dictionaryName at the key dictionaryItemKey is unavailable or invalid
+// */
+// public async queryContractDictionary(
+// dictionaryName: string,
+// dictionaryItemKey: string,
+// stateRootHash?: string,
+// casperClient?: CasperClient
+// ): Promise {
+// this.checkSetup();
+
+// const client = casperClient || this.casperClient;
+// if (!client) throw Error(NO_CLIENT_ERR);
+
+// const stateRootHashToUse =
+// stateRootHash || (await client.nodeClient.getStateRootHash());
+
+// const storedValue = await client.nodeClient.getDictionaryItemByName(
+// stateRootHashToUse,
+// this.contractHash!,
+// dictionaryName,
+// dictionaryItemKey
+// );
+
+// if (storedValue && storedValue.CLValue?.isCLValue) {
+// return storedValue.CLValue;
+// } else {
+// throw Error('Invalid stored value');
+// }
+// }
+}
\ No newline at end of file
diff --git a/packages/contract-client/src/index.ts b/packages/contract-client/src/index.ts
new file mode 100644
index 0000000..453e9b8
--- /dev/null
+++ b/packages/contract-client/src/index.ts
@@ -0,0 +1 @@
+export * from './contract';
\ No newline at end of file
diff --git a/packages/contract-client/tsup.config.js b/packages/contract-client/tsup.config.js
new file mode 100644
index 0000000..90c5adb
--- /dev/null
+++ b/packages/contract-client/tsup.config.js
@@ -0,0 +1,10 @@
+import { defineConfig } from 'tsup';
+
+export default defineConfig((options) => ({
+ entry: ['src/index.ts'],
+ dts: true,
+ sourcemap: true,
+ format: ['iife', 'cjs', 'esm'],
+ clean: true,
+ ...options,
+}));
diff --git a/packages/utils/package.json b/packages/utils/package.json
new file mode 100644
index 0000000..bc86fe9
--- /dev/null
+++ b/packages/utils/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "@casperdash/utils",
+ "version": "1.0.15",
+ "description": "Casperdash utils",
+ "private": false,
+ "keywords": [
+ "typescript"
+ ],
+ "main": "dist/lib.node.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "prebuild": "pnpm run clean",
+ "build": "webpack --config webpack.config.js",
+ "build-all": "pnpm clean && pnpm build",
+ "deploy": "pnpm build-all && pnpm publish",
+ "clean": "rimraf -r dist",
+ "test": "jest"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/CasperDash/casperdash-utils.git"
+ },
+ "author": "CasperDash",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/CasperDash/casperdash-utils/issues"
+ },
+ "homepage": "https://github.com/CasperDash/casperdash-utils",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "blakejs": "^1.2.1",
+ "casper-js-sdk": "2.15.0",
+ "webpack": "^5.88.2"
+ },
+ "devDependencies": {
+ "@rollup/plugin-node-resolve": "^13.3.0",
+ "@types/jest": "^28.1.8",
+ "copy-webpack-plugin": "^11.0.0",
+ "esbuild": "^0.15.18",
+ "jest": "^28.1.3",
+ "jest-environment-jsdom": "^28.1.3",
+ "rimraf": "^3.0.2",
+ "ts-jest": "^28.0.8",
+ "ts-loader": "^9.4.4",
+ "tsc-alias": "^1.8.8",
+ "typescript": "^4.9.5",
+ "webpack-cli": "^4.10.0",
+ "webpack-node-externals": "^3.0.0"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/src/index.ts b/packages/utils/src/index.ts
similarity index 100%
rename from src/index.ts
rename to packages/utils/src/index.ts
diff --git a/packages/utils/src/services/CEP78.ts b/packages/utils/src/services/CEP78.ts
new file mode 100644
index 0000000..65c4979
--- /dev/null
+++ b/packages/utils/src/services/CEP78.ts
@@ -0,0 +1,628 @@
+import { BigNumber } from '@ethersproject/bignumber';
+import {
+ CLPublicKey,
+ CLKey,
+ RuntimeArgs,
+ CasperClient,
+ Contracts,
+ Keys,
+ CLValueBuilder,
+ CLMapType,
+ CLType,
+ CLU8Type,
+ CLKeyType,
+} from 'casper-js-sdk';
+
+import {
+ CallConfig,
+ InstallArgs,
+ NamedKeyConventionMode,
+ ConfigurableVariables,
+ MintArgs,
+ RegisterArgs,
+ BurnArgs,
+ ApproveArgs,
+ ApproveAllArgs,
+ TransferArgs,
+ BurnMode,
+ WhitelistMode,
+ NFTHolderMode,
+ NFTIdentifierMode,
+ MetadataMutability,
+ NFTOwnershipMode,
+ NFTMetadataKind,
+ NFTKind,
+ TokenMetadataArgs,
+ OwnerReverseLookupMode,
+ Cep78Options,
+} from '../types/cep78';
+
+const { Contract } = Contracts;
+
+
+enum ERRORS {
+ CONFLICT_CONFIG = 'Conflicting arguments provided',
+}
+
+const fetchWASM = async (url: string): Promise => {
+ return fetch(url, {
+ headers: {
+ 'Content-Type': 'application/wasm',
+ },
+ })
+ .then((response) => response.arrayBuffer())
+ .then((bytes) => new Uint8Array(bytes));
+};
+
+const convertHashStrToHashBuff = (hashStr: string) => {
+ let hashHex = hashStr;
+ if (hashStr.startsWith('hash-')) {
+ hashHex = hashStr.slice(5);
+ }
+ return Buffer.from(hashHex, 'hex');
+};
+
+const buildKeyHashList = (list: string[]) =>
+ list.map((hashStr) =>
+ CLValueBuilder.key(
+ CLValueBuilder.byteArray(convertHashStrToHashBuff(hashStr))
+ )
+ );
+
+class CEP78Client {
+ private casperClient: CasperClient;
+
+ public contractClient: Contracts.Contract;
+
+ public contractHashKey!: CLKey;
+
+ private options!: Cep78Options
+
+ constructor(public nodeAddress: string, public networkName: string, _options?: Cep78Options) {
+ this.casperClient = new CasperClient(nodeAddress);
+ this.contractClient = new Contract(this.casperClient);
+ this.options = this.options;
+ }
+
+ public async fetchContractWASM() {
+ if (!this.options.contractWASM) {
+ throw new Error('You need to provide a contractWASM');
+ }
+ return fetchWASM(this.options.contractWASM);
+ };
+
+ public async fetchTransferCallWASM() {
+ if (!this.options.transferCallWASM) {
+ throw new Error('You need to provide a transferCallWASM');
+ }
+
+ return fetchWASM(this.options.transferCallWASM);
+ };
+
+ public async install(
+ args: InstallArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[],
+ wasm?: Uint8Array
+ ) {
+ const wasmToInstall = wasm || (await this.fetchContractWASM());
+
+ if (
+ args.identifierMode === NFTIdentifierMode.Hash &&
+ args.metadataMutability === MetadataMutability.Mutable
+ ) {
+ throw new Error(
+ `You can't combine NFTIdentifierMode.Hash and MetadataMutability.Mutable`
+ );
+ }
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ collection_name: CLValueBuilder.string(args.collectionName),
+ collection_symbol: CLValueBuilder.string(args.collectionSymbol),
+ total_token_supply: CLValueBuilder.u64(args.totalTokenSupply),
+ ownership_mode: CLValueBuilder.u8(args.ownershipMode),
+ nft_kind: CLValueBuilder.u8(args.nftKind),
+ nft_metadata_kind: CLValueBuilder.u8(args.nftMetadataKind),
+ identifier_mode: CLValueBuilder.u8(args.identifierMode),
+ metadata_mutability: CLValueBuilder.u8(args.metadataMutability),
+ });
+
+ if (args.jsonSchema !== undefined) {
+ runtimeArgs.insert(
+ 'json_schema',
+ CLValueBuilder.string(JSON.stringify(args.jsonSchema))
+ );
+ }
+
+ if (args.mintingMode !== undefined) {
+ runtimeArgs.insert('minting_mode', CLValueBuilder.u8(args.mintingMode));
+ }
+
+ if (args.allowMinting !== undefined) {
+ runtimeArgs.insert(
+ 'allow_minting',
+ CLValueBuilder.bool(args.allowMinting)
+ );
+ }
+
+ if (args.whitelistMode !== undefined) {
+ runtimeArgs.insert(
+ 'whitelist_mode',
+ CLValueBuilder.u8(args.whitelistMode)
+ );
+ }
+
+ if (args.holderMode !== undefined) {
+ runtimeArgs.insert('holder_mode', CLValueBuilder.u8(args.holderMode));
+ }
+
+ if (args.contractWhitelist !== undefined) {
+ const list = buildKeyHashList(args.contractWhitelist);
+ runtimeArgs.insert('contract_whitelist', CLValueBuilder.list(list));
+ }
+
+ if (args.burnMode !== undefined) {
+ runtimeArgs.insert('burn_mode', CLValueBuilder.u8(args.burnMode));
+ }
+
+ if (args.ownerReverseLookupMode !== undefined) {
+ runtimeArgs.insert(
+ 'owner_reverse_lookup_mode',
+ CLValueBuilder.u8(args.ownerReverseLookupMode)
+ );
+ }
+
+ if (args.namedKeyConventionMode !== undefined) {
+ runtimeArgs.insert(
+ 'named_key_convention',
+ CLValueBuilder.u8(args.namedKeyConventionMode)
+ );
+ }
+
+ if (args.namedKeyConventionMode === NamedKeyConventionMode.V1_0Custom) {
+ if (!args.accessKeyName || !args.hashKeyName) {
+ throw new Error(
+ "You need to provide 'accessKeyName' and 'hashKeyName' if you want to use NamedKeyConventionMode.V1_0Custom"
+ );
+ }
+ runtimeArgs.insert(
+ 'access_key_name',
+ CLValueBuilder.string(args.accessKeyName)
+ );
+ runtimeArgs.insert(
+ 'hash_key_name',
+ CLValueBuilder.string(args.hashKeyName)
+ );
+ }
+
+ if (args.eventsMode !== undefined) {
+ runtimeArgs.insert('events_mode', CLValueBuilder.u8(args.eventsMode));
+ }
+
+ return this.contractClient.install(
+ wasmToInstall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys || []
+ );
+ }
+
+ public setContractHash(contractHash: string, contractPackageHash?: string) {
+ this.contractClient.setContractHash(contractHash, contractPackageHash);
+ this.contractHashKey = CLValueBuilder.key(
+ CLValueBuilder.byteArray(convertHashStrToHashBuff(contractHash))
+ );
+ }
+
+ public async collectionName() {
+ return this.contractClient.queryContractData(['collection_name']);
+ }
+
+ public async collectionSymbol() {
+ return this.contractClient.queryContractData(['collection_symbol']);
+ }
+
+ public async tokenTotalSupply() {
+ return this.contractClient.queryContractData(['total_token_supply']);
+ }
+
+ public async numOfMintedTokens() {
+ const numberOfMintedTokens = await this.contractClient.queryContractData([
+ 'number_of_minted_tokens',
+ ]);
+
+ const u8res = (numberOfMintedTokens as BigNumber).toNumber();
+
+ return u8res;
+ }
+
+ public async getContractWhitelist() {
+ return this.contractClient.queryContractData(['contract_whitelist']);
+ }
+
+ public async getAllowMintingConfig() {
+ return this.contractClient.queryContractData(['allow_minting']);
+ }
+
+ public async getReportingModeConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'reporting_mode',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return OwnerReverseLookupMode[u8res] as keyof typeof OwnerReverseLookupMode;
+ }
+
+ public async getWhitelistModeConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'whitelist_mode',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return WhitelistMode[u8res] as keyof typeof WhitelistMode;
+ }
+
+ public async getBurnModeConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'burn_mode',
+ ]);
+ const u8res: string = (internalValue as BigNumber).toString();
+ return (BurnMode as unknown as Record)[
+ u8res
+ ] as keyof typeof BurnMode;
+ }
+
+ public async getHolderModeConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'holder_mode',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return NFTHolderMode[u8res] as keyof typeof NFTHolderMode;
+ }
+
+ public async getIdentifierModeConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'identifier_mode',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return NFTIdentifierMode[u8res] as keyof typeof NFTIdentifierMode;
+ }
+
+ public async getMetadataMutabilityConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'metadata_mutability',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return MetadataMutability[u8res] as keyof typeof MetadataMutability;
+ }
+
+ public async getNFTKindConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'nft_kind',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return NFTKind[u8res] as keyof typeof NFTKind;
+ }
+
+ public async getMetadataKindConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'nft_metadata_kind',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return NFTMetadataKind[u8res] as keyof typeof NFTMetadataKind;
+ }
+
+ public async getOwnershipModeConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'ownership_mode',
+ ]);
+ const u8res = (internalValue as BigNumber).toNumber();
+ return NFTOwnershipMode[u8res] as keyof typeof NFTOwnershipMode;
+ }
+
+ public async getJSONSchemaConfig() {
+ const internalValue = await this.contractClient.queryContractData([
+ 'json_schema',
+ ]);
+ return internalValue.toString();
+ }
+
+ public setVariables(
+ args: ConfigurableVariables,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({});
+
+ if (args.allowMinting !== undefined) {
+ runtimeArgs.insert(
+ 'allow_minting',
+ CLValueBuilder.bool(args.allowMinting)
+ );
+ }
+
+ if (args.contractWhitelist !== undefined) {
+ const list = buildKeyHashList(args.contractWhitelist);
+ runtimeArgs.insert('contract_whitelist', CLValueBuilder.list(list));
+ }
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'set_variables',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public register(
+ args: RegisterArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_owner: CLValueBuilder.key(args.tokenOwner),
+ });
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'register_owner',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public async mint(
+ args: MintArgs,
+ config: CallConfig,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ wasm?: Uint8Array
+ ) {
+ if (config.useSessionCode === false && !!wasm)
+ throw new Error(ERRORS.CONFLICT_CONFIG);
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_owner: CLValueBuilder.key(args.owner),
+ token_meta_data: CLValueBuilder.string(JSON.stringify(args.meta)),
+ });
+
+ // if (config.useSessionCode) {
+ // const wasmToCall = wasm || (await fetchMintCallWASM());
+ // console.log('runtimeArgs: ', runtimeArgs);
+
+ // runtimeArgs.insert('nft_contract_hash', this.contractHashKey);
+
+ // const preparedDeploy = this.contractClient.install(
+ // wasmToCall,
+ // runtimeArgs,
+ // paymentAmount,
+ // deploySender,
+ // this.networkName
+ // );
+
+ // return preparedDeploy;
+ // }
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'mint',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount
+ );
+
+ return preparedDeploy;
+ }
+
+ public burn(
+ args: BurnArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({});
+
+ if (args.tokenId !== undefined) {
+ runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash !== undefined) {
+ runtimeArgs.insert('token_hash', CLValueBuilder.string(args.tokenHash));
+ }
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'burn',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public async transfer(
+ args: TransferArgs,
+ config: CallConfig,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[],
+ wasm?: Uint8Array
+ ) {
+ if (config.useSessionCode === false && !!wasm)
+ throw new Error(ERRORS.CONFLICT_CONFIG);
+
+ const runtimeArgs = RuntimeArgs.fromMap({
+ target_key: CLValueBuilder.key(args.target),
+ source_key: CLValueBuilder.key(args.source),
+ });
+
+ if (args.tokenId) {
+ runtimeArgs.insert('is_hash_identifier_mode', CLValueBuilder.bool(false));
+ runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash) {
+ runtimeArgs.insert('is_hash_identifier_mode', CLValueBuilder.bool(true));
+ runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenHash));
+ }
+
+ if (config.useSessionCode) {
+ runtimeArgs.insert('nft_contract_hash', this.contractHashKey);
+ const wasmToCall = wasm || (await this.fetchTransferCallWASM());
+
+ const preparedDeploy = this.contractClient.install(
+ wasmToCall,
+ runtimeArgs,
+ paymentAmount,
+ deploySender,
+ this.networkName,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'transfer',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public setTokenMetadata(
+ args: TokenMetadataArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_meta_data: CLValueBuilder.string(
+ JSON.stringify(args.tokenMetaData)
+ ),
+ });
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'set_token_metadata',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public async getOwnerOf(tokenId: string) {
+ const result = await this.contractClient.queryContractDictionary(
+ 'token_owners',
+ tokenId
+ );
+
+ return `account-hash-${(result as unknown as CLKeyType).toJSON()}`;
+ }
+
+ public async getMetadataOf(tokenId: string, metadataType?: NFTMetadataKind) {
+ const metadataToCheck: NFTMetadataKind =
+ metadataType || NFTMetadataKind[await this.getMetadataKindConfig()];
+
+ const mapMetadata = {
+ [NFTMetadataKind.CEP78]: 'metadata_cep78',
+ [NFTMetadataKind.NFT721]: 'metadata_nft721',
+ [NFTMetadataKind.Raw]: 'metadata_raw',
+ [NFTMetadataKind.CustomValidated]: 'metadata_custom_validated',
+ };
+
+ const result = await this.contractClient.queryContractDictionary(
+ mapMetadata[metadataToCheck],
+ tokenId
+ );
+
+ const clMap = result as unknown as CLMapType;
+
+ return clMap.toJSON() as { [key: string]: string };
+ }
+
+ public async getBalanceOf(account: CLPublicKey) {
+ const result = await this.contractClient.queryContractDictionary(
+ 'balances',
+ account.toAccountHashStr().slice(13)
+ );
+
+ return (result as unknown as CLU8Type).toJSON();
+ }
+
+ public approve(
+ args: ApproveArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ operator: CLValueBuilder.key(args.operator),
+ });
+
+ if (args.tokenId !== undefined) {
+ runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenId));
+ }
+
+ if (args.tokenHash !== undefined) {
+ runtimeArgs.insert('token_hash', CLValueBuilder.string(args.tokenHash));
+ }
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'approve',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+
+ public approveAll(
+ args: ApproveAllArgs,
+ paymentAmount: string,
+ deploySender: CLPublicKey,
+ keys?: Keys.AsymmetricKey[]
+ ) {
+ const runtimeArgs = RuntimeArgs.fromMap({
+ token_owner: CLValueBuilder.key(args.tokenOwner),
+ approve_all: CLValueBuilder.bool(args.approveAll),
+ operator: CLValueBuilder.key(args.operator),
+ });
+
+ const preparedDeploy = this.contractClient.callEntrypoint(
+ 'set_approval_for_all',
+ runtimeArgs,
+ deploySender,
+ this.networkName,
+ paymentAmount,
+ keys
+ );
+
+ return preparedDeploy;
+ }
+}
+
+export default CEP78Client;
diff --git a/src/services/CasperServices.ts b/packages/utils/src/services/CasperServices.ts
similarity index 100%
rename from src/services/CasperServices.ts
rename to packages/utils/src/services/CasperServices.ts
diff --git a/src/services/NFTServices.test.ts b/packages/utils/src/services/NFTServices.test.ts
similarity index 100%
rename from src/services/NFTServices.test.ts
rename to packages/utils/src/services/NFTServices.test.ts
diff --git a/src/services/NFTServices.ts b/packages/utils/src/services/NFTServices.ts
similarity index 95%
rename from src/services/NFTServices.ts
rename to packages/utils/src/services/NFTServices.ts
index e3d105f..de7e9dc 100644
--- a/src/services/NFTServices.ts
+++ b/packages/utils/src/services/NFTServices.ts
@@ -49,7 +49,7 @@ const getNamedKeyConfig = (
cep: NFTStandard,
tokenId: string,
metadataKind?: NFTMetadataKind,
-) => {
+): NamedKeyConfig[] => {
return [
{
namedKey: getMetadataNamedKey(cep, metadataKind),
@@ -168,7 +168,7 @@ export default class NFTServices {
};
getMetadataFromUri = async (metadata: any[], namedKeys?: NamedKeyConfig) => {
const uri = metadata.find(
- (data) => data.key === namedKeys?.metadata.uri.key,
+ (data) => data.key === namedKeys?.metadata?.uri.key,
);
if (uri) {
@@ -202,21 +202,23 @@ export default class NFTServices {
const { name, namedKeys, creator, action, cep, metadataKind } =
this.NFTConfig || {};
+ const newKeys = Object.keys(namedKeys || {})
+ .filter((key) => key !== 'metadata')
+ .map((namedKey) => ({
+ namedKey,
+ key: tokenId,
+ originNamedKey: namedKey,
+ }));
+
const tokenNamedKeys = getNamedKeyConfig(cep, tokenId, metadataKind).concat(
- Object.keys(namedKeys || {})
- .filter((key) => key !== 'metadata')
- .map((namedKey) => ({
- namedKey,
- key: tokenId,
- originNamedKey: namedKey,
- })),
- );
+ [...newKeys]
+ ).filter((namedKey) => namedKey.namedKey);
const tokenDetails = await Promise.all(
tokenNamedKeys.map(async ({ namedKey, key, massageFn }) => {
const value: any = await this.contractClient.queryContractDictionary(
- namedKey,
- key,
+ namedKey!,
+ key!,
);
const maybeValue = value.data;
@@ -236,7 +238,7 @@ export default class NFTServices {
return {
...out,
- [namedKey]:
+ [namedKey!]:
namedKey === METADATA_NAMED_KEY
? this.massageMetadata(detail, namedKeys)
: detail,
@@ -251,7 +253,7 @@ export default class NFTServices {
action,
},
);
- if (namedKeys?.metadata.isFromURI) {
+ if (namedKeys?.metadata?.isFromURI) {
const metadataFromUri = await this.getMetadataFromUri(
details.metadata,
namedKeys,
diff --git a/packages/utils/src/types/cep78.ts b/packages/utils/src/types/cep78.ts
new file mode 100644
index 0000000..304ed31
--- /dev/null
+++ b/packages/utils/src/types/cep78.ts
@@ -0,0 +1,161 @@
+import { CLKeyParameters } from 'casper-js-sdk';
+
+export interface CallConfig {
+ useSessionCode: boolean;
+}
+
+export enum NamedKeyConventionMode {
+ DerivedFromCollectionName,
+ V1_0Standard,
+ V1_0Custom,
+}
+
+export enum NFTOwnershipMode {
+ Minter,
+ Assigned,
+ Transferable,
+}
+
+export enum NFTKind {
+ Physical,
+ Digital,
+ Virtual,
+}
+
+export enum NFTHolderMode {
+ Accounts,
+ Contracts,
+ Mixed,
+}
+
+export enum NFTMetadataKind {
+ CEP78,
+ NFT721,
+ Raw,
+ CustomValidated,
+}
+
+export enum NFTIdentifierMode {
+ Ordinal,
+ Hash,
+}
+
+export enum MetadataMutability {
+ Immutable,
+ Mutable,
+}
+
+export enum MintingMode {
+ Installer,
+ Public,
+}
+
+export enum BurnMode {
+ Burnable,
+ NonBurnable,
+}
+
+export enum WhitelistMode {
+ Unlocked,
+ Locked,
+}
+
+export enum OwnerReverseLookupMode {
+ NoLookup,
+ Complete,
+ TransfersOnly,
+}
+
+export interface JSONSchemaEntry {
+ name: string;
+ description: string;
+ required: boolean;
+}
+
+export interface JSONSchemaObject {
+ properties: Record;
+}
+
+export type ConfigurableVariables = {
+ allowMinting?: boolean;
+ contractWhitelist?: string[];
+};
+
+export enum EventsMode {
+ NoEvents,
+ CEP47,
+ CES,
+}
+
+export type InstallArgs = {
+ collectionName: string;
+ collectionSymbol: string;
+ totalTokenSupply: string;
+ ownershipMode: NFTOwnershipMode;
+ nftKind: NFTKind;
+ jsonSchema?: JSONSchemaObject;
+ nftMetadataKind: NFTMetadataKind;
+ identifierMode: NFTIdentifierMode;
+ metadataMutability: MetadataMutability;
+ mintingMode?: MintingMode;
+ whitelistMode?: WhitelistMode;
+ holderMode?: NFTHolderMode;
+ burnMode?: BurnMode;
+ ownerReverseLookupMode?: OwnerReverseLookupMode;
+ namedKeyConventionMode?: NamedKeyConventionMode;
+ accessKeyName?: string;
+ hashKeyName?: string;
+ eventsMode?: EventsMode;
+} & ConfigurableVariables;
+
+export interface RegisterArgs {
+ tokenOwner: CLKeyParameters;
+}
+
+export interface MintArgs {
+ owner: CLKeyParameters;
+ meta: Record;
+}
+
+export interface TokenArgs {
+ tokenId?: string;
+ tokenHash?: string;
+}
+
+export type BurnArgs = TokenArgs;
+
+export type TransferArgs = {
+ target: CLKeyParameters;
+ source: CLKeyParameters;
+} & TokenArgs;
+
+export type TokenMetadataArgs = {
+ tokenMetaData: Record;
+};
+
+export type StoreBalanceOfArgs = {
+ tokenOwner: CLKeyParameters;
+ keyName: string;
+};
+
+export type StoreApprovedArgs = {
+ keyName: string;
+} & TokenArgs;
+
+export type StoreOwnerOfArgs = StoreApprovedArgs;
+
+export type ApproveArgs = {
+ operator: CLKeyParameters;
+} & TokenArgs;
+
+export type ApproveAllArgs = {
+ operator: CLKeyParameters;
+ approveAll: boolean;
+ tokenOwner: CLKeyParameters;
+};
+
+export type MigrateArgs = {
+ contractPackageHash: string;
+};
+
+export type Cep78Options = { contractWASM?: string, transferCallWASM?: string };
\ No newline at end of file
diff --git a/src/types/index.ts b/packages/utils/src/types/index.ts
similarity index 100%
rename from src/types/index.ts
rename to packages/utils/src/types/index.ts
diff --git a/src/types/types.ts b/packages/utils/src/types/types.ts
similarity index 86%
rename from src/types/types.ts
rename to packages/utils/src/types/types.ts
index 2191de2..84cedcc 100644
--- a/src/types/types.ts
+++ b/packages/utils/src/types/types.ts
@@ -11,7 +11,11 @@ export enum NFTStandard {
}
export type NamedKeyConfig = {
- metadata: {
+ namedKey?: string;
+ key?: string;
+ originNamedKey?: string;
+ massageFn?: (value: any) => any;
+ metadata?: {
attributes?: AttributesConfig[];
isFromURI?: boolean;
uri: { key: string; massageFnc: (uri: string) => any };
diff --git a/src/utilities/index.ts b/packages/utils/src/utilities/index.ts
similarity index 100%
rename from src/utilities/index.ts
rename to packages/utils/src/utilities/index.ts
diff --git a/src/utilities/valueBuilder.ts b/packages/utils/src/utilities/valueBuilder.ts
similarity index 100%
rename from src/utilities/valueBuilder.ts
rename to packages/utils/src/utilities/valueBuilder.ts
diff --git a/webpack.config.js b/packages/utils/webpack.config.js
similarity index 100%
rename from webpack.config.js
rename to packages/utils/webpack.config.js
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..580a2d0
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,8051 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ devDependencies:
+ '@babel/core':
+ specifier: ^7.22.20
+ version: 7.22.20
+ '@changesets/changelog-github':
+ specifier: ^0.4.8
+ version: 0.4.8
+ '@changesets/cli':
+ specifier: ^2.26.2
+ version: 2.26.2
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^5.62.0
+ version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5)
+ '@typescript-eslint/parser':
+ specifier: ^5.62.0
+ version: 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ '@vitest/coverage-v8':
+ specifier: ^0.34.5
+ version: 0.34.5(vitest@0.26.3)
+ '@vitest/ui':
+ specifier: ^0.28.5
+ version: 0.28.5
+ eslint:
+ specifier: ^8.50.0
+ version: 8.50.0
+ eslint-config-airbnb-typescript:
+ specifier: ^17.1.0
+ version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.50.0)
+ eslint-config-prettier:
+ specifier: ^8.10.0
+ version: 8.10.0(eslint@8.50.0)
+ eslint-plugin-import:
+ specifier: ^2.28.1
+ version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)
+ eslint-plugin-prettier:
+ specifier: ^4.2.1
+ version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8)
+ eslint-plugin-sonar:
+ specifier: ^0.9.2
+ version: 0.9.2(@babel/core@7.22.20)(eslint@8.50.0)(typescript@4.9.5)
+ husky:
+ specifier: ^8.0.3
+ version: 8.0.3
+ jsdom:
+ specifier: ^20.0.3
+ version: 20.0.3
+ lint-staged:
+ specifier: ^13.3.0
+ version: 13.3.0
+ prettier:
+ specifier: ^2.8.8
+ version: 2.8.8
+ semver:
+ specifier: ^7.5.4
+ version: 7.5.4
+ tsup:
+ specifier: ^6.7.0
+ version: 6.7.0(typescript@4.9.5)
+ typescript:
+ specifier: ^4.9.5
+ version: 4.9.5
+ vite-tsconfig-paths:
+ specifier: ^4.2.1
+ version: 4.2.1(typescript@4.9.5)
+ vitest:
+ specifier: ^0.26.3
+ version: 0.26.3(@vitest/ui@0.28.5)(jsdom@20.0.3)
+
+ examples/client-js:
+ dependencies:
+ '@casperdash/cep78-client':
+ specifier: workspace:*
+ version: link:../../packages/cep78-client
+ axios:
+ specifier: 1.5.0
+ version: 1.5.0
+ casper-js-sdk:
+ specifier: 2.15.0
+ version: 2.15.0
+ devDependencies:
+ ts-node:
+ specifier: 10.9.1
+ version: 10.9.1(@types/node@20.6.3)(typescript@5.2.2)
+ typescript:
+ specifier: ^5.2.2
+ version: 5.2.2
+
+ packages/builder:
+ dependencies:
+ '@noble/hashes':
+ specifier: ^1.3.2
+ version: 1.3.2
+ '@open-rpc/client-js':
+ specifier: 1.8.1
+ version: 1.8.1
+ casper-js-sdk:
+ specifier: 2.15.0
+ version: 2.15.0
+ contract-client:
+ specifier: 0.0.5
+ version: 0.0.5
+ ethers:
+ specifier: ^4.0.47
+ version: 4.0.49
+ devDependencies:
+ ts-node:
+ specifier: 10.9.1
+ version: 10.9.1(@types/node@20.6.3)(typescript@5.2.2)
+
+ packages/cep18-client:
+ dependencies:
+ '@casperdash/contract-client':
+ specifier: workspace:*
+ version: link:../contract-client
+ '@ethersproject/bignumber':
+ specifier: ^5.7.0
+ version: 5.7.0
+ casper-js-sdk:
+ specifier: 2.15.0
+ version: 2.15.0
+ devDependencies:
+ eslint-plugin-prettier:
+ specifier: ^4.2.1
+ version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8)
+ tsup:
+ specifier: ^6.7.0
+ version: 6.7.0(typescript@4.9.5)
+
+ packages/cep47-client:
+ dependencies:
+ '@casperdash/contract-client':
+ specifier: workspace:*
+ version: link:../contract-client
+ casper-js-sdk:
+ specifier: 2.15.0
+ version: 2.15.0
+ devDependencies:
+ eslint-plugin-prettier:
+ specifier: ^4.2.1
+ version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8)
+ tsup:
+ specifier: ^6.7.0
+ version: 6.7.0(typescript@4.9.5)
+
+ packages/cep78-client:
+ dependencies:
+ '@casperdash/contract-client':
+ specifier: workspace:*
+ version: link:../contract-client
+ '@make-software/ces-js-parser':
+ specifier: ^1.3.3
+ version: 1.3.3(casper-js-sdk@2.15.0)
+ casper-js-sdk:
+ specifier: 2.15.0
+ version: 2.15.0
+ devDependencies:
+ eslint-plugin-prettier:
+ specifier: ^4.2.1
+ version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8)
+ tsup:
+ specifier: ^6.7.0
+ version: 6.7.0(typescript@4.9.5)
+
+ packages/contract-client:
+ dependencies:
+ casper-js-sdk:
+ specifier: 2.15.0
+ version: 2.15.0
+ devDependencies:
+ eslint-plugin-prettier:
+ specifier: ^4.2.1
+ version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8)
+ tsup:
+ specifier: ^7.2.0
+ version: 7.2.0(typescript@4.9.5)
+
+ packages/utils:
+ dependencies:
+ '@ethersproject/bytes':
+ specifier: ^5.7.0
+ version: 5.7.0
+ blakejs:
+ specifier: ^1.2.1
+ version: 1.2.1
+ casper-js-sdk:
+ specifier: 2.15.0
+ version: 2.15.0
+ webpack:
+ specifier: ^5.88.2
+ version: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0)
+ devDependencies:
+ '@rollup/plugin-node-resolve':
+ specifier: ^13.3.0
+ version: 13.3.0(rollup@2.79.1)
+ '@types/jest':
+ specifier: ^28.1.8
+ version: 28.1.8
+ copy-webpack-plugin:
+ specifier: ^11.0.0
+ version: 11.0.0(webpack@5.88.2)
+ esbuild:
+ specifier: ^0.15.18
+ version: 0.15.18
+ jest:
+ specifier: ^28.1.3
+ version: 28.1.3
+ jest-environment-jsdom:
+ specifier: ^28.1.3
+ version: 28.1.3
+ rimraf:
+ specifier: ^3.0.2
+ version: 3.0.2
+ ts-jest:
+ specifier: ^28.0.8
+ version: 28.0.8(@babel/core@7.22.20)(esbuild@0.15.18)(jest@28.1.3)(typescript@4.9.5)
+ ts-loader:
+ specifier: ^9.4.4
+ version: 9.4.4(typescript@4.9.5)(webpack@5.88.2)
+ tsc-alias:
+ specifier: ^1.8.8
+ version: 1.8.8
+ typescript:
+ specifier: ^4.9.5
+ version: 4.9.5
+ webpack-cli:
+ specifier: ^4.10.0
+ version: 4.10.0(webpack@5.88.2)
+ webpack-node-externals:
+ specifier: ^3.0.0
+ version: 3.0.0
+
+packages:
+
+ /@aashutoshrathi/word-wrap@1.2.6:
+ resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /@ampproject/remapping@2.2.1:
+ resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.19
+ dev: true
+
+ /@babel/code-frame@7.22.13:
+ resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.22.20
+ chalk: 2.4.2
+ dev: true
+
+ /@babel/compat-data@7.22.20:
+ resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/core@7.22.20:
+ resolution: {integrity: sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.2.1
+ '@babel/code-frame': 7.22.13
+ '@babel/generator': 7.22.15
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-module-transforms': 7.22.20(@babel/core@7.22.20)
+ '@babel/helpers': 7.22.15
+ '@babel/parser': 7.22.16
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.20
+ '@babel/types': 7.22.19
+ convert-source-map: 1.9.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/eslint-parser@7.22.15(@babel/core@7.22.20)(eslint@8.50.0):
+ resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
+ peerDependencies:
+ '@babel/core': ^7.11.0
+ eslint: ^7.5.0 || ^8.0.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ '@babel/core': 7.22.20
+ '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
+ eslint: 8.50.0
+ eslint-visitor-keys: 2.1.0
+ semver: 6.3.1
+ dev: true
+
+ /@babel/generator@7.22.15:
+ resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.19
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.19
+ jsesc: 2.5.2
+ dev: true
+
+ /@babel/helper-compilation-targets@7.22.15:
+ resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/compat-data': 7.22.20
+ '@babel/helper-validator-option': 7.22.15
+ browserslist: 4.21.11
+ lru-cache: 5.1.1
+ semver: 6.3.1
+ dev: true
+
+ /@babel/helper-environment-visitor@7.22.20:
+ resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-function-name@7.22.5:
+ resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.22.15
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@babel/helper-hoist-variables@7.22.5:
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@babel/helper-module-imports@7.22.15:
+ resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@babel/helper-module-transforms@7.22.20(@babel/core@7.22.20):
+ resolution: {integrity: sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.20
+ dev: true
+
+ /@babel/helper-plugin-utils@7.22.5:
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-simple-access@7.22.5:
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@babel/helper-split-export-declaration@7.22.6:
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@babel/helper-string-parser@7.22.5:
+ resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-identifier@7.22.20:
+ resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-option@7.22.15:
+ resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helpers@7.22.15:
+ resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.20
+ '@babel/types': 7.22.19
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/highlight@7.22.20:
+ resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.20
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser@7.22.16:
+ resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.20):
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.20):
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.20):
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.20):
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.20):
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.20):
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.20):
+ resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/runtime@7.22.15:
+ resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.14.0
+ dev: true
+
+ /@babel/template@7.22.15:
+ resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@babel/traverse@7.22.20:
+ resolution: {integrity: sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@babel/generator': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.19
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/types@7.22.19:
+ resolution: {integrity: sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@bcoe/v8-coverage@0.2.3:
+ resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+ dev: true
+
+ /@casperlabs/ts-results@3.3.5:
+ resolution: {integrity: sha512-ymSQqqb4mOSet592li02u1Gd28LoOFJUm6R3jkdNQ+nqsnbHvN+izBigtP4aYmNwh6gFyCwDgjYporEJgDT4eA==}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
+ /@changesets/apply-release-plan@6.1.4:
+ resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/config': 2.3.1
+ '@changesets/get-version-range-type': 0.3.2
+ '@changesets/git': 2.0.0
+ '@changesets/types': 5.2.1
+ '@manypkg/get-packages': 1.1.3
+ detect-indent: 6.1.0
+ fs-extra: 7.0.1
+ lodash.startcase: 4.4.0
+ outdent: 0.5.0
+ prettier: 2.8.8
+ resolve-from: 5.0.0
+ semver: 7.5.4
+ dev: true
+
+ /@changesets/assemble-release-plan@5.2.4:
+ resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/errors': 0.1.4
+ '@changesets/get-dependents-graph': 1.3.6
+ '@changesets/types': 5.2.1
+ '@manypkg/get-packages': 1.1.3
+ semver: 7.5.4
+ dev: true
+
+ /@changesets/changelog-git@0.1.14:
+ resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==}
+ dependencies:
+ '@changesets/types': 5.2.1
+ dev: true
+
+ /@changesets/changelog-github@0.4.8:
+ resolution: {integrity: sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==}
+ dependencies:
+ '@changesets/get-github-info': 0.5.2
+ '@changesets/types': 5.2.1
+ dotenv: 8.6.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /@changesets/cli@2.26.2:
+ resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==}
+ hasBin: true
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/apply-release-plan': 6.1.4
+ '@changesets/assemble-release-plan': 5.2.4
+ '@changesets/changelog-git': 0.1.14
+ '@changesets/config': 2.3.1
+ '@changesets/errors': 0.1.4
+ '@changesets/get-dependents-graph': 1.3.6
+ '@changesets/get-release-plan': 3.0.17
+ '@changesets/git': 2.0.0
+ '@changesets/logger': 0.0.5
+ '@changesets/pre': 1.0.14
+ '@changesets/read': 0.5.9
+ '@changesets/types': 5.2.1
+ '@changesets/write': 0.2.3
+ '@manypkg/get-packages': 1.1.3
+ '@types/is-ci': 3.0.0
+ '@types/semver': 7.5.2
+ ansi-colors: 4.1.3
+ chalk: 2.4.2
+ enquirer: 2.4.1
+ external-editor: 3.1.0
+ fs-extra: 7.0.1
+ human-id: 1.0.2
+ is-ci: 3.0.1
+ meow: 6.1.1
+ outdent: 0.5.0
+ p-limit: 2.3.0
+ preferred-pm: 3.1.2
+ resolve-from: 5.0.0
+ semver: 7.5.4
+ spawndamnit: 2.0.0
+ term-size: 2.2.1
+ tty-table: 4.2.1
+ dev: true
+
+ /@changesets/config@2.3.1:
+ resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==}
+ dependencies:
+ '@changesets/errors': 0.1.4
+ '@changesets/get-dependents-graph': 1.3.6
+ '@changesets/logger': 0.0.5
+ '@changesets/types': 5.2.1
+ '@manypkg/get-packages': 1.1.3
+ fs-extra: 7.0.1
+ micromatch: 4.0.5
+ dev: true
+
+ /@changesets/errors@0.1.4:
+ resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==}
+ dependencies:
+ extendable-error: 0.1.7
+ dev: true
+
+ /@changesets/get-dependents-graph@1.3.6:
+ resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==}
+ dependencies:
+ '@changesets/types': 5.2.1
+ '@manypkg/get-packages': 1.1.3
+ chalk: 2.4.2
+ fs-extra: 7.0.1
+ semver: 7.5.4
+ dev: true
+
+ /@changesets/get-github-info@0.5.2:
+ resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==}
+ dependencies:
+ dataloader: 1.4.0
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /@changesets/get-release-plan@3.0.17:
+ resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/assemble-release-plan': 5.2.4
+ '@changesets/config': 2.3.1
+ '@changesets/pre': 1.0.14
+ '@changesets/read': 0.5.9
+ '@changesets/types': 5.2.1
+ '@manypkg/get-packages': 1.1.3
+ dev: true
+
+ /@changesets/get-version-range-type@0.3.2:
+ resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==}
+ dev: true
+
+ /@changesets/git@2.0.0:
+ resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/errors': 0.1.4
+ '@changesets/types': 5.2.1
+ '@manypkg/get-packages': 1.1.3
+ is-subdir: 1.2.0
+ micromatch: 4.0.5
+ spawndamnit: 2.0.0
+ dev: true
+
+ /@changesets/logger@0.0.5:
+ resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==}
+ dependencies:
+ chalk: 2.4.2
+ dev: true
+
+ /@changesets/parse@0.3.16:
+ resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==}
+ dependencies:
+ '@changesets/types': 5.2.1
+ js-yaml: 3.14.1
+ dev: true
+
+ /@changesets/pre@1.0.14:
+ resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/errors': 0.1.4
+ '@changesets/types': 5.2.1
+ '@manypkg/get-packages': 1.1.3
+ fs-extra: 7.0.1
+ dev: true
+
+ /@changesets/read@0.5.9:
+ resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/git': 2.0.0
+ '@changesets/logger': 0.0.5
+ '@changesets/parse': 0.3.16
+ '@changesets/types': 5.2.1
+ chalk: 2.4.2
+ fs-extra: 7.0.1
+ p-filter: 2.1.0
+ dev: true
+
+ /@changesets/types@4.1.0:
+ resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
+ dev: true
+
+ /@changesets/types@5.2.1:
+ resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==}
+ dev: true
+
+ /@changesets/write@0.2.3:
+ resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/types': 5.2.1
+ fs-extra: 7.0.1
+ human-id: 1.0.2
+ prettier: 2.8.8
+ dev: true
+
+ /@cspotcode/source-map-support@0.8.1:
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+ dev: true
+
+ /@discoveryjs/json-ext@0.5.7:
+ resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
+ engines: {node: '>=10.0.0'}
+
+ /@esbuild/android-arm64@0.17.19:
+ resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.18.20:
+ resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.15.18:
+ resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/android-arm@0.17.19:
+ resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.18.20:
+ resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.17.19:
+ resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.18.20:
+ resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.17.19:
+ resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.18.20:
+ resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.17.19:
+ resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.18.20:
+ resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.17.19:
+ resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.18.20:
+ resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.17.19:
+ resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.18.20:
+ resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.17.19:
+ resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.18.20:
+ resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.17.19:
+ resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.18.20:
+ resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.17.19:
+ resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.18.20:
+ resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.15.18:
+ resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.17.19:
+ resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.18.20:
+ resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.17.19:
+ resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.18.20:
+ resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.17.19:
+ resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.18.20:
+ resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.17.19:
+ resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.18.20:
+ resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.17.19:
+ resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.18.20:
+ resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.17.19:
+ resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.18.20:
+ resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.17.19:
+ resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.18.20:
+ resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.17.19:
+ resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.18.20:
+ resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.17.19:
+ resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.18.20:
+ resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.17.19:
+ resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.18.20:
+ resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.17.19:
+ resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.18.20:
+ resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.17.19:
+ resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.18.20:
+ resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.50.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
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ eslint: 8.50.0
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /@eslint-community/regexpp@4.8.1:
+ resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ dev: true
+
+ /@eslint/eslintrc@2.1.2:
+ resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.4
+ espree: 9.6.1
+ globals: 13.22.0
+ ignore: 5.2.4
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@eslint/js@8.50.0:
+ resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@ethersproject/bignumber@5.7.0:
+ resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==}
+ dependencies:
+ '@ethersproject/bytes': 5.7.0
+ '@ethersproject/logger': 5.7.0
+ bn.js: 5.2.1
+ dev: false
+
+ /@ethersproject/bytes@5.7.0:
+ resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==}
+ dependencies:
+ '@ethersproject/logger': 5.7.0
+ dev: false
+
+ /@ethersproject/constants@5.7.0:
+ resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==}
+ dependencies:
+ '@ethersproject/bignumber': 5.7.0
+ dev: false
+
+ /@ethersproject/logger@5.7.0:
+ resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==}
+ dev: false
+
+ /@humanwhocodes/config-array@0.11.11:
+ resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==}
+ engines: {node: '>=10.10.0'}
+ dependencies:
+ '@humanwhocodes/object-schema': 1.2.1
+ debug: 4.3.4
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@humanwhocodes/module-importer@1.0.1:
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+ dev: true
+
+ /@humanwhocodes/object-schema@1.2.1:
+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+ dev: true
+
+ /@istanbuljs/load-nyc-config@1.1.0:
+ resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ camelcase: 5.3.1
+ find-up: 4.1.0
+ get-package-type: 0.1.0
+ js-yaml: 3.14.1
+ resolve-from: 5.0.0
+ dev: true
+
+ /@istanbuljs/schema@0.1.3:
+ resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /@jest/console@28.1.3:
+ resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ chalk: 4.1.2
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ slash: 3.0.0
+ dev: true
+
+ /@jest/core@28.1.3:
+ resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/console': 28.1.3
+ '@jest/reporters': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ ci-info: 3.8.0
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ jest-changed-files: 28.1.3
+ jest-config: 28.1.3(@types/node@20.6.3)
+ jest-haste-map: 28.1.3
+ jest-message-util: 28.1.3
+ jest-regex-util: 28.0.2
+ jest-resolve: 28.1.3
+ jest-resolve-dependencies: 28.1.3
+ jest-runner: 28.1.3
+ jest-runtime: 28.1.3
+ jest-snapshot: 28.1.3
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ jest-watcher: 28.1.3
+ micromatch: 4.0.5
+ pretty-format: 28.1.3
+ rimraf: 3.0.2
+ slash: 3.0.0
+ strip-ansi: 6.0.1
+ transitivePeerDependencies:
+ - supports-color
+ - ts-node
+ dev: true
+
+ /@jest/environment@28.1.3:
+ resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/fake-timers': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ jest-mock: 28.1.3
+ dev: true
+
+ /@jest/expect-utils@28.1.3:
+ resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ jest-get-type: 28.0.2
+ dev: true
+
+ /@jest/expect@28.1.3:
+ resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ expect: 28.1.3
+ jest-snapshot: 28.1.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@jest/fake-timers@28.1.3:
+ resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@sinonjs/fake-timers': 9.1.2
+ '@types/node': 20.6.3
+ jest-message-util: 28.1.3
+ jest-mock: 28.1.3
+ jest-util: 28.1.3
+ dev: true
+
+ /@jest/globals@28.1.3:
+ resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/expect': 28.1.3
+ '@jest/types': 28.1.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@jest/reporters@28.1.3:
+ resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@bcoe/v8-coverage': 0.2.3
+ '@jest/console': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@jridgewell/trace-mapping': 0.3.19
+ '@types/node': 20.6.3
+ chalk: 4.1.2
+ collect-v8-coverage: 1.0.2
+ exit: 0.1.2
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ istanbul-lib-coverage: 3.2.0
+ istanbul-lib-instrument: 5.2.1
+ istanbul-lib-report: 3.0.1
+ istanbul-lib-source-maps: 4.0.1
+ istanbul-reports: 3.1.6
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ jest-worker: 28.1.3
+ slash: 3.0.0
+ string-length: 4.0.2
+ strip-ansi: 6.0.1
+ terminal-link: 2.1.1
+ v8-to-istanbul: 9.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@jest/schemas@28.1.3:
+ resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@sinclair/typebox': 0.24.51
+ dev: true
+
+ /@jest/source-map@28.1.2:
+ resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.19
+ callsites: 3.1.0
+ graceful-fs: 4.2.11
+ dev: true
+
+ /@jest/test-result@28.1.3:
+ resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/console': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/istanbul-lib-coverage': 2.0.4
+ collect-v8-coverage: 1.0.2
+ dev: true
+
+ /@jest/test-sequencer@28.1.3:
+ resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/test-result': 28.1.3
+ graceful-fs: 4.2.11
+ jest-haste-map: 28.1.3
+ slash: 3.0.0
+ dev: true
+
+ /@jest/transform@28.1.3:
+ resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/core': 7.22.20
+ '@jest/types': 28.1.3
+ '@jridgewell/trace-mapping': 0.3.19
+ babel-plugin-istanbul: 6.1.1
+ chalk: 4.1.2
+ convert-source-map: 1.9.0
+ fast-json-stable-stringify: 2.1.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 28.1.3
+ jest-regex-util: 28.0.2
+ jest-util: 28.1.3
+ micromatch: 4.0.5
+ pirates: 4.0.6
+ slash: 3.0.0
+ write-file-atomic: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@jest/types@28.1.3:
+ resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/schemas': 28.1.3
+ '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-reports': 3.0.1
+ '@types/node': 20.6.3
+ '@types/yargs': 17.0.24
+ chalk: 4.1.2
+ dev: true
+
+ /@jridgewell/gen-mapping@0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.19
+
+ /@jridgewell/resolve-uri@3.1.1:
+ resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/set-array@1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/source-map@0.3.5:
+ resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.19
+
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+
+ /@jridgewell/trace-mapping@0.3.19:
+ resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ /@jridgewell/trace-mapping@0.3.9:
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
+ /@make-software/ces-js-parser@1.3.3(casper-js-sdk@2.15.0):
+ resolution: {integrity: sha512-uJ7BgnaVbb1pkGfDCgBqES+f5+RVlVPkAYxOC6Qz9kxzIcu9HYH1eA+8EkjRO2T36uBemTjBRO6R0TdH61PIAA==}
+ peerDependencies:
+ casper-js-sdk: ^2.12.0
+ dependencies:
+ casper-js-sdk: 2.15.0
+ ts-results: 3.3.0
+ dev: false
+
+ /@manypkg/find-root@1.1.0:
+ resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@types/node': 12.20.55
+ find-up: 4.1.0
+ fs-extra: 8.1.0
+ dev: true
+
+ /@manypkg/get-packages@1.1.3:
+ resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ '@changesets/types': 4.1.0
+ '@manypkg/find-root': 1.1.0
+ fs-extra: 8.1.0
+ globby: 11.1.0
+ read-yaml-file: 1.1.0
+ dev: true
+
+ /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1:
+ resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
+ dependencies:
+ eslint-scope: 5.1.1
+ dev: true
+
+ /@noble/curves@1.2.0:
+ resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==}
+ dependencies:
+ '@noble/hashes': 1.3.2
+ dev: false
+
+ /@noble/ed25519@1.7.3:
+ resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==}
+ dev: false
+
+ /@noble/hashes@1.3.2:
+ resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==}
+ engines: {node: '>= 16'}
+ dev: false
+
+ /@noble/secp256k1@1.7.1:
+ resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==}
+ 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
+ dev: true
+
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.15.0
+ dev: true
+
+ /@open-rpc/client-js@1.8.1:
+ resolution: {integrity: sha512-vV+Hetl688nY/oWI9IFY0iKDrWuLdYhf7OIKI6U1DcnJV7r4gAgwRJjEr1QVYszUc0gjkHoQJzqevmXMGLyA0g==}
+ dependencies:
+ isomorphic-fetch: 3.0.0
+ isomorphic-ws: 5.0.0(ws@7.5.9)
+ strict-event-emitter-types: 2.0.0
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@polka/url@1.0.0-next.23:
+ resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==}
+ dev: true
+
+ /@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1):
+ resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==}
+ engines: {node: '>= 10.0.0'}
+ peerDependencies:
+ rollup: ^2.42.0
+ dependencies:
+ '@rollup/pluginutils': 3.1.0(rollup@2.79.1)
+ '@types/resolve': 1.17.1
+ deepmerge: 4.3.1
+ is-builtin-module: 3.2.1
+ is-module: 1.0.0
+ resolve: 1.22.6
+ rollup: 2.79.1
+ dev: true
+
+ /@rollup/pluginutils@3.1.0(rollup@2.79.1):
+ resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
+ engines: {node: '>= 8.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0
+ dependencies:
+ '@types/estree': 0.0.39
+ estree-walker: 1.0.1
+ picomatch: 2.3.1
+ rollup: 2.79.1
+ dev: true
+
+ /@scure/base@1.1.3:
+ resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==}
+ dev: false
+
+ /@scure/bip32@1.3.2:
+ resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==}
+ dependencies:
+ '@noble/curves': 1.2.0
+ '@noble/hashes': 1.3.2
+ '@scure/base': 1.1.3
+ dev: false
+
+ /@scure/bip39@1.2.1:
+ resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==}
+ dependencies:
+ '@noble/hashes': 1.3.2
+ '@scure/base': 1.1.3
+ dev: false
+
+ /@sinclair/typebox@0.24.51:
+ resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
+ dev: true
+
+ /@sinonjs/commons@1.8.6:
+ resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==}
+ dependencies:
+ type-detect: 4.0.8
+ dev: true
+
+ /@sinonjs/fake-timers@9.1.2:
+ resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==}
+ dependencies:
+ '@sinonjs/commons': 1.8.6
+ dev: true
+
+ /@tootallnate/once@2.0.0:
+ resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ engines: {node: '>= 10'}
+ dev: true
+
+ /@tsconfig/node10@1.0.9:
+ resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
+ dev: true
+
+ /@tsconfig/node12@1.0.11:
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+ dev: true
+
+ /@tsconfig/node14@1.0.3:
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+ dev: true
+
+ /@tsconfig/node16@1.0.4:
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+ dev: true
+
+ /@types/babel__core@7.20.2:
+ resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==}
+ dependencies:
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.19
+ '@types/babel__generator': 7.6.5
+ '@types/babel__template': 7.4.2
+ '@types/babel__traverse': 7.20.2
+ dev: true
+
+ /@types/babel__generator@7.6.5:
+ resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==}
+ dependencies:
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@types/babel__template@7.4.2:
+ resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==}
+ dependencies:
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@types/babel__traverse@7.20.2:
+ resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==}
+ dependencies:
+ '@babel/types': 7.22.19
+ dev: true
+
+ /@types/bn.js@5.1.2:
+ resolution: {integrity: sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==}
+ dependencies:
+ '@types/node': 20.6.3
+ dev: false
+
+ /@types/chai-subset@1.3.3:
+ resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
+ dependencies:
+ '@types/chai': 4.3.6
+ dev: true
+
+ /@types/chai@4.3.6:
+ resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==}
+ dev: true
+
+ /@types/elliptic@6.4.15:
+ resolution: {integrity: sha512-tW9Z/mrlymYEbx/WWcO/Kkly0VxqPNaf/p3KcZTYKI282ZX+50efZvY/p6FoMuTpFq+QMyABQNfs6OXvdmVUhQ==}
+ dependencies:
+ '@types/bn.js': 5.1.2
+ dev: false
+
+ /@types/eslint-scope@3.7.5:
+ resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==}
+ dependencies:
+ '@types/eslint': 8.44.3
+ '@types/estree': 1.0.2
+
+ /@types/eslint@8.44.3:
+ resolution: {integrity: sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==}
+ dependencies:
+ '@types/estree': 1.0.2
+ '@types/json-schema': 7.0.13
+
+ /@types/estree@0.0.39:
+ resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
+ dev: true
+
+ /@types/estree@1.0.2:
+ resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==}
+
+ /@types/graceful-fs@4.1.7:
+ resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==}
+ dependencies:
+ '@types/node': 20.6.3
+ dev: true
+
+ /@types/is-ci@3.0.0:
+ resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==}
+ dependencies:
+ ci-info: 3.8.0
+ dev: true
+
+ /@types/istanbul-lib-coverage@2.0.4:
+ resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
+ dev: true
+
+ /@types/istanbul-lib-report@3.0.0:
+ resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.4
+ dev: true
+
+ /@types/istanbul-reports@3.0.1:
+ resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
+ dependencies:
+ '@types/istanbul-lib-report': 3.0.0
+ dev: true
+
+ /@types/jest@28.1.8:
+ resolution: {integrity: sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==}
+ dependencies:
+ expect: 28.1.3
+ pretty-format: 28.1.3
+ dev: true
+
+ /@types/jsdom@16.2.15:
+ resolution: {integrity: sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==}
+ dependencies:
+ '@types/node': 20.6.3
+ '@types/parse5': 6.0.3
+ '@types/tough-cookie': 4.0.3
+ dev: true
+
+ /@types/json-schema@7.0.13:
+ resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
+
+ /@types/json5@0.0.29:
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ dev: true
+
+ /@types/minimist@1.2.2:
+ resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
+ dev: true
+
+ /@types/node@12.20.55:
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+ dev: true
+
+ /@types/node@20.6.3:
+ resolution: {integrity: sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==}
+
+ /@types/normalize-package-data@2.4.1:
+ resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
+ dev: true
+
+ /@types/parse5@6.0.3:
+ resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
+ dev: true
+
+ /@types/prettier@2.7.3:
+ resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==}
+ dev: true
+
+ /@types/resolve@1.17.1:
+ resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
+ dependencies:
+ '@types/node': 20.6.3
+ dev: true
+
+ /@types/semver@7.5.2:
+ resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==}
+ dev: true
+
+ /@types/stack-utils@2.0.1:
+ resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
+ dev: true
+
+ /@types/tough-cookie@4.0.3:
+ resolution: {integrity: sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==}
+ dev: true
+
+ /@types/ws@8.5.5:
+ resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==}
+ dependencies:
+ '@types/node': 20.6.3
+ dev: false
+
+ /@types/yargs-parser@21.0.0:
+ resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
+ dev: true
+
+ /@types/yargs@17.0.24:
+ resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==}
+ dependencies:
+ '@types/yargs-parser': 21.0.0
+ dev: true
+
+ /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.8.1
+ '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/type-utils': 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ debug: 4.3.4
+ eslint: 8.50.0
+ graphemer: 1.4.0
+ ignore: 5.2.4
+ natural-compare-lite: 1.4.0
+ semver: 7.5.4
+ tsutils: 3.21.0(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/parser@5.62.0(eslint@8.50.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
+ debug: 4.3.4
+ eslint: 8.50.0
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/scope-manager@5.62.0:
+ resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ dev: true
+
+ /@typescript-eslint/type-utils@5.62.0(eslint@8.50.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ debug: 4.3.4
+ eslint: 8.50.0
+ tsutils: 3.21.0(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types@5.62.0:
+ resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5):
+ resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.5.4
+ tsutils: 3.21.0(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/utils@5.62.0(eslint@8.50.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
+ '@types/json-schema': 7.0.13
+ '@types/semver': 7.5.2
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
+ eslint: 8.50.0
+ eslint-scope: 5.1.1
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys@5.62.0:
+ resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /@vitest/coverage-v8@0.34.5(vitest@0.26.3):
+ resolution: {integrity: sha512-97xjhRTSdmeeHCm2nNHhT3hLsMYkAhHXm/rwj6SZ3voka8xiCJrwgtfIjoZIFEL4OO0KezGmVuHWQXcMunULIA==}
+ peerDependencies:
+ vitest: '>=0.32.0 <1'
+ dependencies:
+ '@ampproject/remapping': 2.2.1
+ '@bcoe/v8-coverage': 0.2.3
+ istanbul-lib-coverage: 3.2.0
+ istanbul-lib-report: 3.0.1
+ istanbul-lib-source-maps: 4.0.1
+ istanbul-reports: 3.1.6
+ magic-string: 0.30.3
+ picocolors: 1.0.0
+ std-env: 3.4.3
+ test-exclude: 6.0.0
+ v8-to-istanbul: 9.1.0
+ vitest: 0.26.3(@vitest/ui@0.28.5)(jsdom@20.0.3)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@vitest/ui@0.28.5:
+ resolution: {integrity: sha512-hzzZzv38mH/LMFh54QEJpWFuGixZZBOD+C0fHU81d1lsvochPwNZhWJbuRJQNyZLSMZYCYW4hF6PpNQJXDHDmg==}
+ dependencies:
+ fast-glob: 3.3.1
+ flatted: 3.2.9
+ pathe: 1.1.1
+ picocolors: 1.0.0
+ sirv: 2.0.3
+ dev: true
+
+ /@webassemblyjs/ast@1.11.6:
+ resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==}
+ dependencies:
+ '@webassemblyjs/helper-numbers': 1.11.6
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+
+ /@webassemblyjs/floating-point-hex-parser@1.11.6:
+ resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
+
+ /@webassemblyjs/helper-api-error@1.11.6:
+ resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
+
+ /@webassemblyjs/helper-buffer@1.11.6:
+ resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==}
+
+ /@webassemblyjs/helper-numbers@1.11.6:
+ resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
+ dependencies:
+ '@webassemblyjs/floating-point-hex-parser': 1.11.6
+ '@webassemblyjs/helper-api-error': 1.11.6
+ '@xtuc/long': 4.2.2
+
+ /@webassemblyjs/helper-wasm-bytecode@1.11.6:
+ resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
+
+ /@webassemblyjs/helper-wasm-section@1.11.6:
+ resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==}
+ dependencies:
+ '@webassemblyjs/ast': 1.11.6
+ '@webassemblyjs/helper-buffer': 1.11.6
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/wasm-gen': 1.11.6
+
+ /@webassemblyjs/ieee754@1.11.6:
+ resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
+ dependencies:
+ '@xtuc/ieee754': 1.2.0
+
+ /@webassemblyjs/leb128@1.11.6:
+ resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
+ dependencies:
+ '@xtuc/long': 4.2.2
+
+ /@webassemblyjs/utf8@1.11.6:
+ resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
+
+ /@webassemblyjs/wasm-edit@1.11.6:
+ resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==}
+ dependencies:
+ '@webassemblyjs/ast': 1.11.6
+ '@webassemblyjs/helper-buffer': 1.11.6
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/helper-wasm-section': 1.11.6
+ '@webassemblyjs/wasm-gen': 1.11.6
+ '@webassemblyjs/wasm-opt': 1.11.6
+ '@webassemblyjs/wasm-parser': 1.11.6
+ '@webassemblyjs/wast-printer': 1.11.6
+
+ /@webassemblyjs/wasm-gen@1.11.6:
+ resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==}
+ dependencies:
+ '@webassemblyjs/ast': 1.11.6
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/ieee754': 1.11.6
+ '@webassemblyjs/leb128': 1.11.6
+ '@webassemblyjs/utf8': 1.11.6
+
+ /@webassemblyjs/wasm-opt@1.11.6:
+ resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==}
+ dependencies:
+ '@webassemblyjs/ast': 1.11.6
+ '@webassemblyjs/helper-buffer': 1.11.6
+ '@webassemblyjs/wasm-gen': 1.11.6
+ '@webassemblyjs/wasm-parser': 1.11.6
+
+ /@webassemblyjs/wasm-parser@1.11.6:
+ resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==}
+ dependencies:
+ '@webassemblyjs/ast': 1.11.6
+ '@webassemblyjs/helper-api-error': 1.11.6
+ '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@webassemblyjs/ieee754': 1.11.6
+ '@webassemblyjs/leb128': 1.11.6
+ '@webassemblyjs/utf8': 1.11.6
+
+ /@webassemblyjs/wast-printer@1.11.6:
+ resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==}
+ dependencies:
+ '@webassemblyjs/ast': 1.11.6
+ '@xtuc/long': 4.2.2
+
+ /@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.88.2):
+ resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==}
+ peerDependencies:
+ webpack: 4.x.x || 5.x.x
+ webpack-cli: 4.x.x
+ dependencies:
+ webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0)
+ webpack-cli: 4.10.0(webpack@5.88.2)
+
+ /@webpack-cli/info@1.5.0(webpack-cli@4.10.0):
+ resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==}
+ peerDependencies:
+ webpack-cli: 4.x.x
+ dependencies:
+ envinfo: 7.10.0
+ webpack-cli: 4.10.0(webpack@5.88.2)
+
+ /@webpack-cli/serve@1.7.0(webpack-cli@4.10.0):
+ resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==}
+ peerDependencies:
+ webpack-cli: 4.x.x
+ webpack-dev-server: '*'
+ peerDependenciesMeta:
+ webpack-dev-server:
+ optional: true
+ dependencies:
+ webpack-cli: 4.10.0(webpack@5.88.2)
+
+ /@xtuc/ieee754@1.2.0:
+ resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+
+ /@xtuc/long@4.2.2:
+ resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+
+ /abab@2.0.6:
+ resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
+ dev: true
+
+ /acorn-globals@6.0.0:
+ resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==}
+ dependencies:
+ acorn: 7.4.1
+ acorn-walk: 7.2.0
+ dev: true
+
+ /acorn-globals@7.0.1:
+ resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
+ dependencies:
+ acorn: 8.10.0
+ acorn-walk: 8.2.0
+ dev: true
+
+ /acorn-import-assertions@1.9.0(acorn@8.10.0):
+ resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
+ peerDependencies:
+ acorn: ^8
+ dependencies:
+ acorn: 8.10.0
+
+ /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
+ dev: true
+
+ /acorn-walk@7.2.0:
+ resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /acorn-walk@8.2.0:
+ resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /acorn@7.4.1:
+ resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /acorn@8.10.0:
+ resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ /aes-js@3.0.0:
+ resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==}
+ dev: false
+
+ /agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /ajv-formats@2.1.1(ajv@8.12.0):
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+ dependencies:
+ ajv: 8.12.0
+ dev: true
+
+ /ajv-keywords@3.5.2(ajv@6.12.6):
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+
+ /ajv-keywords@5.1.0(ajv@8.12.0):
+ resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
+ peerDependencies:
+ ajv: ^8.8.2
+ dependencies:
+ ajv: 8.12.0
+ fast-deep-equal: 3.1.3
+ dev: true
+
+ /ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ /ajv@8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+ 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: true
+
+ /ansi-colors@4.1.3:
+ resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /ansi-escapes@4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.21.3
+ dev: true
+
+ /ansi-escapes@5.0.0:
+ resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==}
+ engines: {node: '>=12'}
+ dependencies:
+ type-fest: 1.4.0
+ dev: true
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ansi-styles@3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+ dev: true
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /ansi-styles@5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+ dev: true
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+ dev: true
+
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
+
+ /array-buffer-byte-length@1.0.0:
+ resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
+ dependencies:
+ call-bind: 1.0.2
+ is-array-buffer: 3.0.2
+ dev: true
+
+ /array-includes@3.1.7:
+ resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ get-intrinsic: 1.2.1
+ is-string: 1.0.7
+ dev: true
+
+ /array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /array.prototype.findlastindex@1.2.3:
+ resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ es-shim-unscopables: 1.0.0
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /array.prototype.flat@1.3.2:
+ resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ es-shim-unscopables: 1.0.0
+ dev: true
+
+ /array.prototype.flatmap@1.3.2:
+ resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ es-shim-unscopables: 1.0.0
+ dev: true
+
+ /array.prototype.tosorted@1.1.2:
+ resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ es-shim-unscopables: 1.0.0
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /arraybuffer.prototype.slice@1.0.2:
+ resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ get-intrinsic: 1.2.1
+ is-array-buffer: 3.0.2
+ is-shared-array-buffer: 1.0.2
+ dev: true
+
+ /arrify@1.0.1:
+ resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /asn1.js@5.4.1:
+ resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==}
+ dependencies:
+ bn.js: 4.12.0
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+ safer-buffer: 2.1.2
+ dev: false
+
+ /assertion-error@1.1.0:
+ resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
+ dev: true
+
+ /asynciterator.prototype@1.0.0:
+ resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ /available-typed-arrays@1.0.5:
+ resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /axios@1.5.0:
+ resolution: {integrity: sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==}
+ dependencies:
+ follow-redirects: 1.15.3
+ form-data: 4.0.0
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /babel-jest@28.1.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ '@babel/core': ^7.8.0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@jest/transform': 28.1.3
+ '@types/babel__core': 7.20.2
+ babel-plugin-istanbul: 6.1.1
+ babel-preset-jest: 28.1.3(@babel/core@7.22.20)
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ slash: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-istanbul@6.1.1:
+ resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/helper-plugin-utils': 7.22.5
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-instrument: 5.2.1
+ test-exclude: 6.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-jest-hoist@28.1.3:
+ resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/template': 7.22.15
+ '@babel/types': 7.22.19
+ '@types/babel__core': 7.20.2
+ '@types/babel__traverse': 7.20.2
+ dev: true
+
+ /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.20):
+ resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.20)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.20)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.20)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.20)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.20)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.20)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.20)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.20)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.20)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.20)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.20)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.20)
+ dev: true
+
+ /babel-preset-jest@28.1.3(@babel/core@7.22.20):
+ resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.20
+ babel-plugin-jest-hoist: 28.1.3
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.20)
+ dev: true
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ /better-path-resolve@1.0.0:
+ resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
+ engines: {node: '>=4'}
+ dependencies:
+ is-windows: 1.0.2
+ dev: true
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /blakejs@1.2.1:
+ resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==}
+ dev: false
+
+ /bn.js@4.12.0:
+ resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
+ dev: false
+
+ /bn.js@5.2.1:
+ resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
+ dev: false
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /breakword@1.0.6:
+ resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==}
+ dependencies:
+ wcwidth: 1.0.1
+ dev: true
+
+ /brorand@1.1.0:
+ resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==}
+ dev: false
+
+ /browser-process-hrtime@1.0.0:
+ resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
+ dev: true
+
+ /browserslist@4.21.11:
+ resolution: {integrity: sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001538
+ electron-to-chromium: 1.4.528
+ node-releases: 2.0.13
+ update-browserslist-db: 1.0.13(browserslist@4.21.11)
+
+ /bs-logger@0.2.6:
+ resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
+ engines: {node: '>= 6'}
+ dependencies:
+ fast-json-stable-stringify: 2.1.0
+ dev: true
+
+ /bser@2.1.1:
+ resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+ dependencies:
+ node-int64: 0.4.0
+ dev: true
+
+ /buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ /builtin-modules@3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /bundle-require@4.0.1(esbuild@0.17.19):
+ resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ esbuild: '>=0.17'
+ dependencies:
+ esbuild: 0.17.19
+ load-tsconfig: 0.2.5
+ dev: true
+
+ /bundle-require@4.0.1(esbuild@0.18.20):
+ resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ esbuild: '>=0.17'
+ dependencies:
+ esbuild: 0.18.20
+ load-tsconfig: 0.2.5
+ dev: true
+
+ /bytes@3.1.2:
+ resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
+ engines: {node: '>= 0.8'}
+ dev: true
+
+ /cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /call-bind@1.0.2:
+ resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
+ dependencies:
+ function-bind: 1.1.1
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /camelcase-keys@6.2.2:
+ resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
+ engines: {node: '>=8'}
+ dependencies:
+ camelcase: 5.3.1
+ map-obj: 4.3.0
+ quick-lru: 4.0.1
+ dev: true
+
+ /camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /caniuse-lite@1.0.30001538:
+ resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==}
+
+ /casper-js-sdk@2.15.0:
+ resolution: {integrity: sha512-95O1hOmJqTVteQMtt4G8G85hCw1P1Ezs7mKc+bj3chMMwTmg2iUrWK0wLGl1hrn0v11yYidRqkcdlLm6C/SBrg==}
+ dependencies:
+ '@ethersproject/bignumber': 5.7.0
+ '@ethersproject/bytes': 5.7.0
+ '@ethersproject/constants': 5.7.0
+ '@noble/curves': 1.2.0
+ '@noble/ed25519': 1.7.3
+ '@noble/hashes': 1.3.2
+ '@noble/secp256k1': 1.7.1
+ '@open-rpc/client-js': 1.8.1
+ '@scure/bip32': 1.3.2
+ '@scure/bip39': 1.2.1
+ '@types/ws': 8.5.5
+ glob: 7.2.3
+ humanize-duration: 3.30.0
+ key-encoder: 2.0.3
+ lodash: 4.17.21
+ node-fetch: 2.7.0
+ reflect-metadata: 0.1.13
+ ts-results: /@casperlabs/ts-results@3.3.5
+ typedjson: 1.8.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /chai@4.3.8:
+ resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ assertion-error: 1.1.0
+ check-error: 1.0.2
+ deep-eql: 4.1.3
+ get-func-name: 2.0.0
+ loupe: 2.3.6
+ pathval: 1.1.1
+ type-detect: 4.0.8
+ dev: true
+
+ /chalk@2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+ dev: true
+
+ /chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ dev: true
+
+ /chalk@5.3.0:
+ resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ dev: true
+
+ /char-regex@1.0.2:
+ resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /chardet@0.7.0:
+ resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+ dev: true
+
+ /check-error@1.0.2:
+ resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
+ dev: true
+
+ /chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /chrome-trace-event@1.0.3:
+ resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
+ engines: {node: '>=6.0'}
+
+ /ci-info@3.8.0:
+ resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /cjs-module-lexer@1.2.3:
+ resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
+ dev: true
+
+ /cli-cursor@4.0.0:
+ resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ restore-cursor: 4.0.0
+ dev: true
+
+ /cli-truncate@3.1.0:
+ resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 5.1.2
+ dev: true
+
+ /cliui@6.0.0:
+ resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+ dev: true
+
+ /cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+ dev: true
+
+ /clone-deep@4.0.1:
+ resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ is-plain-object: 2.0.4
+ kind-of: 6.0.3
+ shallow-clone: 3.0.1
+
+ /clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+ dev: true
+
+ /co@4.6.0:
+ resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+ dev: true
+
+ /collect-v8-coverage@1.0.2:
+ resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
+ dev: true
+
+ /color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+ dev: true
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+ dev: true
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /colorette@2.0.20:
+ resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
+
+ /commander@11.0.0:
+ resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==}
+ engines: {node: '>=16'}
+ dev: true
+
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ /commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ /commander@9.5.0:
+ resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
+ engines: {node: ^12.20.0 || >=14}
+ dev: true
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ /confusing-browser-globals@1.0.11:
+ resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
+ dev: true
+
+ /contract-client@0.0.5:
+ resolution: {integrity: sha512-pqqQ4QQEPTuJjUlygbbi/ifFYpicRVmeASOkuM4CyPQNcBgab3DXSu74Q7A60eW5Mi4QgEsPbrrlAN2YxJYoOw==}
+ dependencies:
+ casper-js-sdk: 2.15.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+ dev: true
+
+ /copy-webpack-plugin@11.0.0(webpack@5.88.2):
+ resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
+ engines: {node: '>= 14.15.0'}
+ peerDependencies:
+ webpack: ^5.1.0
+ dependencies:
+ fast-glob: 3.3.1
+ glob-parent: 6.0.2
+ globby: 13.2.2
+ normalize-path: 3.0.0
+ schema-utils: 4.2.0
+ serialize-javascript: 6.0.1
+ webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0)
+ dev: true
+
+ /create-require@1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+ dev: true
+
+ /cross-spawn@5.1.0:
+ resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
+ dependencies:
+ lru-cache: 4.1.5
+ shebang-command: 1.2.0
+ which: 1.3.1
+ dev: true
+
+ /cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ /cssom@0.3.8:
+ resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
+ dev: true
+
+ /cssom@0.5.0:
+ resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
+ dev: true
+
+ /cssstyle@2.3.0:
+ resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cssom: 0.3.8
+ dev: true
+
+ /csv-generate@3.4.3:
+ resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==}
+ dev: true
+
+ /csv-parse@4.16.3:
+ resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==}
+ dev: true
+
+ /csv-stringify@5.6.5:
+ resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==}
+ dev: true
+
+ /csv@5.5.3:
+ resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==}
+ engines: {node: '>= 0.1.90'}
+ dependencies:
+ csv-generate: 3.4.3
+ csv-parse: 4.16.3
+ csv-stringify: 5.6.5
+ stream-transform: 2.1.3
+ dev: true
+
+ /data-urls@3.0.2:
+ resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ abab: 2.0.6
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+ dev: true
+
+ /dataloader@1.4.0:
+ resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==}
+ dev: true
+
+ /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:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
+ /decamelize-keys@1.1.1:
+ resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ decamelize: 1.2.0
+ map-obj: 1.0.1
+ dev: true
+
+ /decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /decimal.js@10.4.3:
+ resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
+ dev: true
+
+ /dedent@0.7.0:
+ resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
+ 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==}
+ dev: true
+
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+ dependencies:
+ clone: 1.0.4
+ dev: true
+
+ /define-data-property@1.1.0:
+ resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.1
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.0
+ dev: true
+
+ /define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.0
+ has-property-descriptors: 1.0.0
+ object-keys: 1.1.1
+ dev: true
+
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ /detect-indent@6.1.0:
+ resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /detect-newline@3.1.0:
+ resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /diff-sequences@28.1.1:
+ resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dev: true
+
+ /diff@4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ engines: {node: '>=0.3.1'}
+ dev: true
+
+ /dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ 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
+ dev: true
+
+ /domexception@4.0.0:
+ resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
+ engines: {node: '>=12'}
+ dependencies:
+ webidl-conversions: 7.0.0
+ dev: true
+
+ /dotenv@8.6.0:
+ resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
+
+ /electron-to-chromium@1.4.528:
+ resolution: {integrity: sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==}
+
+ /elliptic@6.5.4:
+ resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
+ dependencies:
+ bn.js: 4.12.0
+ brorand: 1.1.0
+ hash.js: 1.1.7
+ hmac-drbg: 1.0.1
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+ minimalistic-crypto-utils: 1.0.1
+ dev: false
+
+ /emittery@0.10.2:
+ resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
+ /enhanced-resolve@5.15.0:
+ resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+
+ /enquirer@2.4.1:
+ resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ ansi-colors: 4.1.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+ dev: true
+
+ /envinfo@7.10.0:
+ resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
+ dev: true
+
+ /es-abstract@1.22.2:
+ resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ arraybuffer.prototype.slice: 1.0.2
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ es-set-tostringtag: 2.0.1
+ es-to-primitive: 1.2.1
+ function.prototype.name: 1.1.6
+ get-intrinsic: 1.2.1
+ get-symbol-description: 1.0.0
+ globalthis: 1.0.3
+ gopd: 1.0.1
+ has: 1.0.3
+ has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.5
+ is-array-buffer: 3.0.2
+ is-callable: 1.2.7
+ is-negative-zero: 2.0.2
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
+ is-string: 1.0.7
+ is-typed-array: 1.1.12
+ is-weakref: 1.0.2
+ object-inspect: 1.12.3
+ object-keys: 1.1.1
+ object.assign: 4.1.4
+ regexp.prototype.flags: 1.5.1
+ safe-array-concat: 1.0.1
+ safe-regex-test: 1.0.0
+ string.prototype.trim: 1.2.8
+ string.prototype.trimend: 1.0.7
+ string.prototype.trimstart: 1.0.7
+ typed-array-buffer: 1.0.0
+ typed-array-byte-length: 1.0.0
+ typed-array-byte-offset: 1.0.0
+ typed-array-length: 1.0.4
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.11
+ dev: true
+
+ /es-iterator-helpers@1.0.15:
+ resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==}
+ dependencies:
+ asynciterator.prototype: 1.0.0
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ es-set-tostringtag: 2.0.1
+ function-bind: 1.1.1
+ get-intrinsic: 1.2.1
+ globalthis: 1.0.3
+ has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.5
+ iterator.prototype: 1.1.2
+ safe-array-concat: 1.0.1
+ dev: true
+
+ /es-module-lexer@1.3.1:
+ resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==}
+
+ /es-set-tostringtag@2.0.1:
+ resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.1
+ has: 1.0.3
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /es-shim-unscopables@1.0.0:
+ resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /es-to-primitive@1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
+ dev: true
+
+ /esbuild-android-64@0.15.18:
+ resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-android-arm64@0.15.18:
+ resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-darwin-64@0.15.18:
+ resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-darwin-arm64@0.15.18:
+ resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-freebsd-64@0.15.18:
+ resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-freebsd-arm64@0.15.18:
+ resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-32@0.15.18:
+ resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-64@0.15.18:
+ resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-arm64@0.15.18:
+ resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-arm@0.15.18:
+ resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-mips64le@0.15.18:
+ resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-ppc64le@0.15.18:
+ resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-riscv64@0.15.18:
+ resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-linux-s390x@0.15.18:
+ resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-netbsd-64@0.15.18:
+ resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-openbsd-64@0.15.18:
+ resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-sunos-64@0.15.18:
+ resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-windows-32@0.15.18:
+ resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-windows-64@0.15.18:
+ resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /esbuild-windows-arm64@0.15.18:
+ resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /esbuild@0.15.18:
+ resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.15.18
+ '@esbuild/linux-loong64': 0.15.18
+ esbuild-android-64: 0.15.18
+ esbuild-android-arm64: 0.15.18
+ esbuild-darwin-64: 0.15.18
+ esbuild-darwin-arm64: 0.15.18
+ esbuild-freebsd-64: 0.15.18
+ esbuild-freebsd-arm64: 0.15.18
+ esbuild-linux-32: 0.15.18
+ esbuild-linux-64: 0.15.18
+ esbuild-linux-arm: 0.15.18
+ esbuild-linux-arm64: 0.15.18
+ esbuild-linux-mips64le: 0.15.18
+ esbuild-linux-ppc64le: 0.15.18
+ esbuild-linux-riscv64: 0.15.18
+ esbuild-linux-s390x: 0.15.18
+ esbuild-netbsd-64: 0.15.18
+ esbuild-openbsd-64: 0.15.18
+ esbuild-sunos-64: 0.15.18
+ esbuild-windows-32: 0.15.18
+ esbuild-windows-64: 0.15.18
+ esbuild-windows-arm64: 0.15.18
+
+ /esbuild@0.17.19:
+ resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.17.19
+ '@esbuild/android-arm64': 0.17.19
+ '@esbuild/android-x64': 0.17.19
+ '@esbuild/darwin-arm64': 0.17.19
+ '@esbuild/darwin-x64': 0.17.19
+ '@esbuild/freebsd-arm64': 0.17.19
+ '@esbuild/freebsd-x64': 0.17.19
+ '@esbuild/linux-arm': 0.17.19
+ '@esbuild/linux-arm64': 0.17.19
+ '@esbuild/linux-ia32': 0.17.19
+ '@esbuild/linux-loong64': 0.17.19
+ '@esbuild/linux-mips64el': 0.17.19
+ '@esbuild/linux-ppc64': 0.17.19
+ '@esbuild/linux-riscv64': 0.17.19
+ '@esbuild/linux-s390x': 0.17.19
+ '@esbuild/linux-x64': 0.17.19
+ '@esbuild/netbsd-x64': 0.17.19
+ '@esbuild/openbsd-x64': 0.17.19
+ '@esbuild/sunos-x64': 0.17.19
+ '@esbuild/win32-arm64': 0.17.19
+ '@esbuild/win32-ia32': 0.17.19
+ '@esbuild/win32-x64': 0.17.19
+ dev: true
+
+ /esbuild@0.18.20:
+ resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.18.20
+ '@esbuild/android-arm64': 0.18.20
+ '@esbuild/android-x64': 0.18.20
+ '@esbuild/darwin-arm64': 0.18.20
+ '@esbuild/darwin-x64': 0.18.20
+ '@esbuild/freebsd-arm64': 0.18.20
+ '@esbuild/freebsd-x64': 0.18.20
+ '@esbuild/linux-arm': 0.18.20
+ '@esbuild/linux-arm64': 0.18.20
+ '@esbuild/linux-ia32': 0.18.20
+ '@esbuild/linux-loong64': 0.18.20
+ '@esbuild/linux-mips64el': 0.18.20
+ '@esbuild/linux-ppc64': 0.18.20
+ '@esbuild/linux-riscv64': 0.18.20
+ '@esbuild/linux-s390x': 0.18.20
+ '@esbuild/linux-x64': 0.18.20
+ '@esbuild/netbsd-x64': 0.18.20
+ '@esbuild/openbsd-x64': 0.18.20
+ '@esbuild/sunos-x64': 0.18.20
+ '@esbuild/win32-arm64': 0.18.20
+ '@esbuild/win32-ia32': 0.18.20
+ '@esbuild/win32-x64': 0.18.20
+ dev: true
+
+ /escalade@3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+
+ /escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /escodegen@2.1.0:
+ resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionalDependencies:
+ source-map: 0.6.1
+ dev: true
+
+ /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.28.1)(eslint@8.50.0):
+ resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ peerDependencies:
+ eslint: ^7.32.0 || ^8.2.0
+ eslint-plugin-import: ^2.25.2
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ confusing-browser-globals: 1.0.11
+ eslint: 8.50.0
+ eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)
+ object.assign: 4.1.4
+ object.entries: 1.1.7
+ semver: 6.3.1
+ dev: true
+
+ /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.50.0):
+ resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0
+ '@typescript-eslint/parser': ^5.0.0 || ^6.0.0
+ eslint: ^7.32.0 || ^8.2.0
+ eslint-plugin-import: ^2.25.3
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ eslint: 8.50.0
+ eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.50.0)
+ eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)
+ dev: true
+
+ /eslint-config-prettier@8.10.0(eslint@8.50.0):
+ resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ eslint: 8.50.0
+ dev: true
+
+ /eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.13.0
+ resolve: 1.22.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.50.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:
+ '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ debug: 3.2.7
+ eslint: 8.50.0
+ eslint-import-resolver-node: 0.3.9
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0):
+ resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5)
+ array-includes: 3.1.7
+ array.prototype.findlastindex: 1.2.3
+ array.prototype.flat: 1.3.2
+ array.prototype.flatmap: 1.3.2
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.50.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.50.0)
+ has: 1.0.3
+ is-core-module: 2.13.0
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.7
+ object.groupby: 1.0.1
+ object.values: 1.1.7
+ semver: 6.3.1
+ tsconfig-paths: 3.14.2
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8):
+ resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ eslint: '>=7.28.0'
+ eslint-config-prettier: '*'
+ prettier: '>=2.0.0'
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ eslint-config-prettier:
+ optional: true
+ prettier:
+ optional: true
+ dependencies:
+ eslint: 8.50.0
+ eslint-config-prettier: 8.10.0(eslint@8.50.0)
+ prettier: 2.8.8
+ prettier-linter-helpers: 1.0.0
+ dev: true
+
+ /eslint-plugin-react-hooks@4.6.0(eslint@8.50.0):
+ resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ eslint: 8.50.0
+ dev: true
+
+ /eslint-plugin-react@7.33.2(eslint@8.50.0):
+ resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ array-includes: 3.1.7
+ array.prototype.flatmap: 1.3.2
+ array.prototype.tosorted: 1.1.2
+ doctrine: 2.1.0
+ es-iterator-helpers: 1.0.15
+ eslint: 8.50.0
+ estraverse: 5.3.0
+ jsx-ast-utils: 3.3.5
+ minimatch: 3.1.2
+ object.entries: 1.1.7
+ object.fromentries: 2.0.7
+ object.hasown: 1.1.3
+ object.values: 1.1.7
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.4
+ semver: 6.3.1
+ string.prototype.matchall: 4.0.10
+ dev: true
+
+ /eslint-plugin-sonar@0.9.2(@babel/core@7.22.20)(eslint@8.50.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-Dl5wyk4UbIxhIMI/vv31PGM2z+VxLPMxl+1K0B3eauOU5Zv0EQ7biWOB3SFjcGPkrgMUEfm4FUeduyXWncF9/Q==}
+ engines: {node: '>=12.20'}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: ^4.0.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ '@babel/eslint-parser': 7.22.15(@babel/core@7.22.20)(eslint@8.50.0)
+ builtin-modules: 3.3.0
+ bytes: 3.1.2
+ eslint: 8.50.0
+ eslint-plugin-react: 7.33.2(eslint@8.50.0)
+ eslint-plugin-react-hooks: 4.6.0(eslint@8.50.0)
+ eslint-plugin-sonarjs: 0.13.0(eslint@8.50.0)
+ functional-red-black-tree: 1.0.1
+ regexpp: 3.2.0
+ scslre: 0.1.6
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - '@babel/core'
+ dev: true
+
+ /eslint-plugin-sonarjs@0.13.0(eslint@8.50.0):
+ resolution: {integrity: sha512-t3m7ta0EspzDxSOZh3cEOJIJVZgN/TlJYaBGnQlK6W/PZNbWep8q4RQskkJkA7/zwNpX0BaoEOSUUrqaADVoqA==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ dependencies:
+ eslint: 8.50.0
+ dev: true
+
+ /eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+
+ /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
+ dev: true
+
+ /eslint-visitor-keys@2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /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}
+ dev: true
+
+ /eslint@8.50.0:
+ resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
+ '@eslint-community/regexpp': 4.8.1
+ '@eslint/eslintrc': 2.1.2
+ '@eslint/js': 8.50.0
+ '@humanwhocodes/config-array': 0.11.11
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.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.22.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
+ dev: true
+
+ /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
+ dev: true
+
+ /esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+
+ /estraverse@4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+
+ /estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ /estree-walker@1.0.1:
+ resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
+ dev: true
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /ethers@4.0.49:
+ resolution: {integrity: sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==}
+ dependencies:
+ aes-js: 3.0.0
+ bn.js: 4.12.0
+ elliptic: 6.5.4
+ hash.js: 1.1.3
+ js-sha3: 0.5.7
+ scrypt-js: 2.0.4
+ setimmediate: 1.0.4
+ uuid: 2.0.1
+ xmlhttprequest: 1.8.0
+ dev: false
+
+ /eventemitter3@5.0.1:
+ resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+ dev: true
+
+ /events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+
+ /execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+ dev: true
+
+ /execa@7.2.0:
+ resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
+ engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 4.3.1
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.1.0
+ onetime: 6.0.0
+ signal-exit: 3.0.7
+ strip-final-newline: 3.0.0
+ dev: true
+
+ /exit@0.1.2:
+ resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
+ /expect@28.1.3:
+ resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/expect-utils': 28.1.3
+ jest-get-type: 28.0.2
+ jest-matcher-utils: 28.1.3
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ dev: true
+
+ /extendable-error@0.1.7:
+ resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
+ dev: true
+
+ /external-editor@3.1.0:
+ resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+ engines: {node: '>=4'}
+ dependencies:
+ chardet: 0.7.0
+ iconv-lite: 0.4.24
+ tmp: 0.0.33
+ dev: true
+
+ /fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ /fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+ dev: true
+
+ /fast-glob@3.3.1:
+ resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
+
+ /fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ /fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ dev: true
+
+ /fastest-levenshtein@1.0.16:
+ resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
+ engines: {node: '>= 4.9.1'}
+
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /fb-watchman@2.0.2:
+ resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+ dependencies:
+ bser: 2.1.1
+ dev: true
+
+ /file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flat-cache: 3.1.0
+ dev: true
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+
+ /find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+ dev: true
+
+ /find-yarn-workspace-root2@1.2.16:
+ resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
+ dependencies:
+ micromatch: 4.0.5
+ pkg-dir: 4.2.0
+ dev: true
+
+ /flat-cache@3.1.0:
+ resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ flatted: 3.2.9
+ keyv: 4.5.3
+ rimraf: 3.0.2
+ dev: true
+
+ /flatted@3.2.9:
+ resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
+ dev: true
+
+ /follow-redirects@1.15.3:
+ resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: false
+
+ /for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ dependencies:
+ is-callable: 1.2.7
+ dev: true
+
+ /form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ /fs-extra@7.0.1:
+ resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+ dev: true
+
+ /fs-extra@8.1.0:
+ resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+ dev: true
+
+ /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
+
+ /function-bind@1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+
+ /function.prototype.name@1.1.6:
+ resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ functions-have-names: 1.2.3
+ dev: true
+
+ /functional-red-black-tree@1.0.1:
+ resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==}
+ dev: true
+
+ /functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ dev: true
+
+ /gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+ dev: 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.0:
+ resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
+ dev: true
+
+ /get-intrinsic@1.2.1:
+ resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
+ dependencies:
+ function-bind: 1.1.1
+ has: 1.0.3
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ dev: true
+
+ /get-package-type@0.1.0:
+ resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
+ engines: {node: '>=8.0.0'}
+ dev: true
+
+ /get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /get-symbol-description@1.0.0:
+ resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+
+ /glob@7.1.6:
+ resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
+ 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@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /globals@13.22.0:
+ resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: true
+
+ /globalthis@1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-properties: 1.2.1
+ dev: true
+
+ /globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.1
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 3.0.0
+ dev: true
+
+ /globby@13.2.2:
+ resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ dir-glob: 3.0.1
+ fast-glob: 3.3.1
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 4.0.0
+ dev: true
+
+ /globrex@0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+ dev: true
+
+ /gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ dependencies:
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ /grapheme-splitter@1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+ dev: true
+
+ /graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ dev: true
+
+ /hard-rejection@2.1.0:
+ resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /has-bigints@1.0.2:
+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+ dev: true
+
+ /has-flag@3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ /has-property-descriptors@1.0.0:
+ resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
+ dependencies:
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /has-proto@1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-tostringtag@1.0.0:
+ resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /has@1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+
+ /hash.js@1.1.3:
+ resolution: {integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==}
+ dependencies:
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+ dev: false
+
+ /hash.js@1.1.7:
+ resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==}
+ dependencies:
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+ dev: false
+
+ /hmac-drbg@1.0.1:
+ resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==}
+ dependencies:
+ hash.js: 1.1.7
+ minimalistic-assert: 1.0.1
+ minimalistic-crypto-utils: 1.0.1
+ dev: false
+
+ /hosted-git-info@2.8.9:
+ resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+ dev: true
+
+ /html-encoding-sniffer@3.0.0:
+ resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
+ engines: {node: '>=12'}
+ dependencies:
+ whatwg-encoding: 2.0.0
+ dev: true
+
+ /html-escaper@2.0.2:
+ resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+ dev: true
+
+ /http-proxy-agent@5.0.0:
+ resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
+ engines: {node: '>= 6'}
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /human-id@1.0.2:
+ resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
+ dev: true
+
+ /human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+ dev: true
+
+ /human-signals@4.3.1:
+ resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
+ engines: {node: '>=14.18.0'}
+ dev: true
+
+ /humanize-duration@3.30.0:
+ resolution: {integrity: sha512-NxpT0fhQTFuMTLnuu1Xp+ozNpYirQnbV3NlOjEKBYlE3uvMRu3LDuq8EPc3gVXxVYnchQfqVM4/+T9iwHPLLeA==}
+ dev: false
+
+ /husky@8.0.3:
+ resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dev: true
+
+ /iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: true
+
+ /iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: true
+
+ /ignore@5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /import-fresh@3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+ dev: true
+
+ /import-local@3.1.0:
+ resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ pkg-dir: 4.2.0
+ resolve-cwd: 3.0.0
+
+ /imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /indent-string@4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /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==}
+
+ /internal-slot@1.0.5:
+ resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.1
+ has: 1.0.3
+ side-channel: 1.0.4
+ dev: true
+
+ /interpret@2.2.0:
+ resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==}
+ engines: {node: '>= 0.10'}
+
+ /is-array-buffer@3.0.2:
+ resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+ dev: true
+
+ /is-async-function@2.0.0:
+ resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-bigint@1.0.4:
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+ dependencies:
+ has-bigints: 1.0.2
+ dev: true
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-boolean-object@1.1.2:
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+ engines: {node: '>=6'}
+ dependencies:
+ builtin-modules: 3.3.0
+ dev: true
+
+ /is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-ci@3.0.1:
+ resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
+ hasBin: true
+ dependencies:
+ ci-info: 3.8.0
+ dev: true
+
+ /is-core-module@2.13.0:
+ resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
+ dependencies:
+ has: 1.0.3
+
+ /is-date-object@1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-finalizationregistry@1.0.2:
+ resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-fullwidth-code-point@4.0.0:
+ resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /is-generator-fn@2.1.0:
+ resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /is-generator-function@1.0.10:
+ resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-map@2.0.2:
+ resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
+ dev: true
+
+ /is-module@1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+ dev: true
+
+ /is-negative-zero@2.0.2:
+ resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-number-object@1.0.7:
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+
+ /is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+ dev: true
+
+ /is-regex@1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-set@2.0.2:
+ resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
+ dev: true
+
+ /is-shared-array-buffer@1.0.2:
+ resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
+ /is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-stream@3.0.0:
+ resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /is-string@1.0.7:
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-subdir@1.2.0:
+ resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
+ engines: {node: '>=4'}
+ dependencies:
+ better-path-resolve: 1.0.0
+ dev: true
+
+ /is-symbol@1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /is-typed-array@1.1.12:
+ resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ which-typed-array: 1.1.11
+ dev: true
+
+ /is-weakmap@2.0.1:
+ resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
+ dev: true
+
+ /is-weakref@1.0.2:
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
+ /is-weakset@2.0.2:
+ resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /is-windows@1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ dev: true
+
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ /isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+
+ /isomorphic-fetch@3.0.0:
+ resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
+ dependencies:
+ node-fetch: 2.7.0
+ whatwg-fetch: 3.6.19
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /isomorphic-ws@5.0.0(ws@7.5.9):
+ resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==}
+ peerDependencies:
+ ws: '*'
+ dependencies:
+ ws: 7.5.9
+ dev: false
+
+ /istanbul-lib-coverage@3.2.0:
+ resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /istanbul-lib-instrument@5.2.1:
+ resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/parser': 7.22.16
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.0
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /istanbul-lib-report@3.0.1:
+ resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
+ engines: {node: '>=10'}
+ dependencies:
+ istanbul-lib-coverage: 3.2.0
+ make-dir: 4.0.0
+ supports-color: 7.2.0
+ dev: true
+
+ /istanbul-lib-source-maps@4.0.1:
+ resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
+ engines: {node: '>=10'}
+ dependencies:
+ debug: 4.3.4
+ istanbul-lib-coverage: 3.2.0
+ source-map: 0.6.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /istanbul-reports@3.1.6:
+ resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==}
+ engines: {node: '>=8'}
+ dependencies:
+ html-escaper: 2.0.2
+ istanbul-lib-report: 3.0.1
+ dev: true
+
+ /iterator.prototype@1.1.2:
+ resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
+ dependencies:
+ define-properties: 1.2.1
+ get-intrinsic: 1.2.1
+ has-symbols: 1.0.3
+ reflect.getprototypeof: 1.0.4
+ set-function-name: 2.0.1
+ dev: true
+
+ /jest-changed-files@28.1.3:
+ resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ execa: 5.1.1
+ p-limit: 3.1.0
+ dev: true
+
+ /jest-circus@28.1.3:
+ resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/expect': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ chalk: 4.1.2
+ co: 4.6.0
+ dedent: 0.7.0
+ is-generator-fn: 2.1.0
+ jest-each: 28.1.3
+ jest-matcher-utils: 28.1.3
+ jest-message-util: 28.1.3
+ jest-runtime: 28.1.3
+ jest-snapshot: 28.1.3
+ jest-util: 28.1.3
+ p-limit: 3.1.0
+ pretty-format: 28.1.3
+ slash: 3.0.0
+ stack-utils: 2.0.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /jest-cli@28.1.3:
+ resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/core': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/types': 28.1.3
+ chalk: 4.1.2
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ import-local: 3.1.0
+ jest-config: 28.1.3(@types/node@20.6.3)
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ prompts: 2.4.2
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - supports-color
+ - ts-node
+ dev: true
+
+ /jest-config@28.1.3(@types/node@20.6.3):
+ resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ peerDependencies:
+ '@types/node': '*'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ '@babel/core': 7.22.20
+ '@jest/test-sequencer': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ babel-jest: 28.1.3(@babel/core@7.22.20)
+ chalk: 4.1.2
+ ci-info: 3.8.0
+ deepmerge: 4.3.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-circus: 28.1.3
+ jest-environment-node: 28.1.3
+ jest-get-type: 28.0.2
+ jest-regex-util: 28.0.2
+ jest-resolve: 28.1.3
+ jest-runner: 28.1.3
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ micromatch: 4.0.5
+ parse-json: 5.2.0
+ pretty-format: 28.1.3
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /jest-diff@28.1.3:
+ resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ chalk: 4.1.2
+ diff-sequences: 28.1.1
+ jest-get-type: 28.0.2
+ pretty-format: 28.1.3
+ dev: true
+
+ /jest-docblock@28.1.1:
+ resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ detect-newline: 3.1.0
+ dev: true
+
+ /jest-each@28.1.3:
+ resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ chalk: 4.1.2
+ jest-get-type: 28.0.2
+ jest-util: 28.1.3
+ pretty-format: 28.1.3
+ dev: true
+
+ /jest-environment-jsdom@28.1.3:
+ resolution: {integrity: sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/fake-timers': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/jsdom': 16.2.15
+ '@types/node': 20.6.3
+ jest-mock: 28.1.3
+ jest-util: 28.1.3
+ jsdom: 19.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /jest-environment-node@28.1.3:
+ resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/fake-timers': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ jest-mock: 28.1.3
+ jest-util: 28.1.3
+ dev: true
+
+ /jest-get-type@28.0.2:
+ resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dev: true
+
+ /jest-haste-map@28.1.3:
+ resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/graceful-fs': 4.1.7
+ '@types/node': 20.6.3
+ anymatch: 3.1.3
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ jest-regex-util: 28.0.2
+ jest-util: 28.1.3
+ jest-worker: 28.1.3
+ micromatch: 4.0.5
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /jest-leak-detector@28.1.3:
+ resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ jest-get-type: 28.0.2
+ pretty-format: 28.1.3
+ dev: true
+
+ /jest-matcher-utils@28.1.3:
+ resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 28.1.3
+ jest-get-type: 28.0.2
+ pretty-format: 28.1.3
+ dev: true
+
+ /jest-message-util@28.1.3:
+ resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@jest/types': 28.1.3
+ '@types/stack-utils': 2.0.1
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ micromatch: 4.0.5
+ pretty-format: 28.1.3
+ slash: 3.0.0
+ stack-utils: 2.0.6
+ dev: true
+
+ /jest-mock@28.1.3:
+ resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ dev: true
+
+ /jest-pnp-resolver@1.2.3(jest-resolve@28.1.3):
+ resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ jest-resolve: '*'
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+ dependencies:
+ jest-resolve: 28.1.3
+ dev: true
+
+ /jest-regex-util@28.0.2:
+ resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dev: true
+
+ /jest-resolve-dependencies@28.1.3:
+ resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ jest-regex-util: 28.0.2
+ jest-snapshot: 28.1.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /jest-resolve@28.1.3:
+ resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ jest-haste-map: 28.1.3
+ jest-pnp-resolver: 1.2.3(jest-resolve@28.1.3)
+ jest-util: 28.1.3
+ jest-validate: 28.1.3
+ resolve: 1.22.6
+ resolve.exports: 1.1.1
+ slash: 3.0.0
+ dev: true
+
+ /jest-runner@28.1.3:
+ resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/console': 28.1.3
+ '@jest/environment': 28.1.3
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ chalk: 4.1.2
+ emittery: 0.10.2
+ graceful-fs: 4.2.11
+ jest-docblock: 28.1.1
+ jest-environment-node: 28.1.3
+ jest-haste-map: 28.1.3
+ jest-leak-detector: 28.1.3
+ jest-message-util: 28.1.3
+ jest-resolve: 28.1.3
+ jest-runtime: 28.1.3
+ jest-util: 28.1.3
+ jest-watcher: 28.1.3
+ jest-worker: 28.1.3
+ p-limit: 3.1.0
+ source-map-support: 0.5.13
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /jest-runtime@28.1.3:
+ resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/environment': 28.1.3
+ '@jest/fake-timers': 28.1.3
+ '@jest/globals': 28.1.3
+ '@jest/source-map': 28.1.2
+ '@jest/test-result': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ chalk: 4.1.2
+ cjs-module-lexer: 1.2.3
+ collect-v8-coverage: 1.0.2
+ execa: 5.1.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-haste-map: 28.1.3
+ jest-message-util: 28.1.3
+ jest-mock: 28.1.3
+ jest-regex-util: 28.0.2
+ jest-resolve: 28.1.3
+ jest-snapshot: 28.1.3
+ jest-util: 28.1.3
+ slash: 3.0.0
+ strip-bom: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /jest-snapshot@28.1.3:
+ resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@babel/core': 7.22.20
+ '@babel/generator': 7.22.15
+ '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.20)
+ '@babel/traverse': 7.22.20
+ '@babel/types': 7.22.19
+ '@jest/expect-utils': 28.1.3
+ '@jest/transform': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/babel__traverse': 7.20.2
+ '@types/prettier': 2.7.3
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.20)
+ chalk: 4.1.2
+ expect: 28.1.3
+ graceful-fs: 4.2.11
+ jest-diff: 28.1.3
+ jest-get-type: 28.0.2
+ jest-haste-map: 28.1.3
+ jest-matcher-utils: 28.1.3
+ jest-message-util: 28.1.3
+ jest-util: 28.1.3
+ natural-compare: 1.4.0
+ pretty-format: 28.1.3
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /jest-util@28.1.3:
+ resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ chalk: 4.1.2
+ ci-info: 3.8.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.1
+ dev: true
+
+ /jest-validate@28.1.3:
+ resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/types': 28.1.3
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ jest-get-type: 28.0.2
+ leven: 3.1.0
+ pretty-format: 28.1.3
+ dev: true
+
+ /jest-watcher@28.1.3:
+ resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/test-result': 28.1.3
+ '@jest/types': 28.1.3
+ '@types/node': 20.6.3
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ emittery: 0.10.2
+ jest-util: 28.1.3
+ string-length: 4.0.2
+ dev: true
+
+ /jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+ dependencies:
+ '@types/node': 20.6.3
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ /jest-worker@28.1.3:
+ resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@types/node': 20.6.3
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+ dev: true
+
+ /jest@28.1.3:
+ resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/core': 28.1.3
+ '@jest/types': 28.1.3
+ import-local: 3.1.0
+ jest-cli: 28.1.3
+ transitivePeerDependencies:
+ - '@types/node'
+ - supports-color
+ - ts-node
+ dev: true
+
+ /joycon@3.1.1:
+ resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /js-sha3@0.5.7:
+ resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==}
+ dev: false
+
+ /js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
+
+ /js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /jsdom@19.0.0:
+ resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ dependencies:
+ abab: 2.0.6
+ acorn: 8.10.0
+ acorn-globals: 6.0.0
+ cssom: 0.5.0
+ cssstyle: 2.3.0
+ data-urls: 3.0.2
+ decimal.js: 10.4.3
+ domexception: 4.0.0
+ escodegen: 2.1.0
+ form-data: 4.0.0
+ html-encoding-sniffer: 3.0.0
+ http-proxy-agent: 5.0.0
+ https-proxy-agent: 5.0.1
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.7
+ parse5: 6.0.1
+ saxes: 5.0.1
+ symbol-tree: 3.2.4
+ tough-cookie: 4.1.3
+ w3c-hr-time: 1.0.2
+ w3c-xmlserializer: 3.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 2.0.0
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 10.0.0
+ ws: 8.14.2
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /jsdom@20.0.3:
+ resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ dependencies:
+ abab: 2.0.6
+ acorn: 8.10.0
+ acorn-globals: 7.0.1
+ cssom: 0.5.0
+ cssstyle: 2.3.0
+ data-urls: 3.0.2
+ decimal.js: 10.4.3
+ domexception: 4.0.0
+ escodegen: 2.1.0
+ form-data: 4.0.0
+ html-encoding-sniffer: 3.0.0
+ http-proxy-agent: 5.0.0
+ https-proxy-agent: 5.0.1
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.7
+ parse5: 7.1.2
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 4.1.3
+ w3c-xmlserializer: 4.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 2.0.0
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+ ws: 8.14.2
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /jsesc@2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+ dev: true
+
+ /json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ /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: true
+
+ /json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ dev: true
+
+ /json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.8
+ dev: true
+
+ /json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
+ /jsonc-parser@3.2.0:
+ resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+ dev: true
+
+ /jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: true
+
+ /jsx-ast-utils@3.3.5:
+ resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ array-includes: 3.1.7
+ array.prototype.flat: 1.3.2
+ object.assign: 4.1.4
+ object.values: 1.1.7
+ dev: true
+
+ /key-encoder@2.0.3:
+ resolution: {integrity: sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==}
+ dependencies:
+ '@types/elliptic': 6.4.15
+ asn1.js: 5.4.1
+ bn.js: 4.12.0
+ elliptic: 6.5.4
+ dev: false
+
+ /keyv@4.5.3:
+ resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
+ dependencies:
+ json-buffer: 3.0.1
+ dev: true
+
+ /kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+
+ /kleur@3.0.3:
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /kleur@4.1.5:
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /leven@3.1.0:
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ dev: true
+
+ /lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
+
+ /lint-staged@13.3.0:
+ resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+ hasBin: true
+ dependencies:
+ chalk: 5.3.0
+ commander: 11.0.0
+ debug: 4.3.4
+ execa: 7.2.0
+ lilconfig: 2.1.0
+ listr2: 6.6.1
+ micromatch: 4.0.5
+ pidtree: 0.6.0
+ string-argv: 0.3.2
+ yaml: 2.3.1
+ transitivePeerDependencies:
+ - enquirer
+ - supports-color
+ dev: true
+
+ /listr2@6.6.1:
+ resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ enquirer: '>= 2.3.0 < 3'
+ peerDependenciesMeta:
+ enquirer:
+ optional: true
+ dependencies:
+ cli-truncate: 3.1.0
+ colorette: 2.0.20
+ eventemitter3: 5.0.1
+ log-update: 5.0.1
+ rfdc: 1.3.0
+ wrap-ansi: 8.1.0
+ dev: true
+
+ /load-tsconfig@0.2.5:
+ resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /load-yaml-file@0.2.0:
+ resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
+ engines: {node: '>=6'}
+ dependencies:
+ graceful-fs: 4.2.11
+ js-yaml: 3.14.1
+ pify: 4.0.1
+ strip-bom: 3.0.0
+ dev: true
+
+ /loader-runner@4.3.0:
+ resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
+ engines: {node: '>=6.11.5'}
+
+ /local-pkg@0.4.3:
+ resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-locate: 4.1.0
+
+ /locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-locate: 5.0.0
+ dev: true
+
+ /lodash.memoize@4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+ dev: true
+
+ /lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ dev: true
+
+ /lodash.sortby@4.7.0:
+ resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
+ dev: true
+
+ /lodash.startcase@4.4.0:
+ resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
+ dev: true
+
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: false
+
+ /log-update@5.0.1:
+ resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ ansi-escapes: 5.0.0
+ cli-cursor: 4.0.0
+ slice-ansi: 5.0.0
+ strip-ansi: 7.1.0
+ wrap-ansi: 8.1.0
+ dev: true
+
+ /loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+ dependencies:
+ js-tokens: 4.0.0
+ dev: true
+
+ /loupe@2.3.6:
+ resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
+ dependencies:
+ get-func-name: 2.0.0
+ dev: true
+
+ /lru-cache@4.1.5:
+ resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
+ dependencies:
+ pseudomap: 1.0.2
+ yallist: 2.1.2
+ dev: true
+
+ /lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ dependencies:
+ yallist: 3.1.1
+ dev: true
+
+ /lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /magic-string@0.30.3:
+ resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
+ /make-dir@4.0.0:
+ resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
+ engines: {node: '>=10'}
+ dependencies:
+ semver: 7.5.4
+ dev: true
+
+ /make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+ dev: true
+
+ /makeerror@1.0.12:
+ resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+ dependencies:
+ tmpl: 1.0.5
+ dev: true
+
+ /map-obj@1.0.1:
+ resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /map-obj@4.3.0:
+ resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /meow@6.1.1:
+ resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@types/minimist': 1.2.2
+ camelcase-keys: 6.2.2
+ decamelize-keys: 1.1.1
+ hard-rejection: 2.1.0
+ minimist-options: 4.1.0
+ normalize-package-data: 2.5.0
+ read-pkg-up: 7.0.1
+ redent: 3.0.0
+ trim-newlines: 3.0.1
+ type-fest: 0.13.1
+ yargs-parser: 18.1.3
+ dev: true
+
+ /merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+
+ /mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /minimalistic-assert@1.0.1:
+ resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+ dev: false
+
+ /minimalistic-crypto-utils@1.0.1:
+ resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==}
+ dev: false
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+
+ /minimist-options@4.1.0:
+ resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+ engines: {node: '>= 6'}
+ dependencies:
+ arrify: 1.0.1
+ is-plain-obj: 1.1.0
+ kind-of: 6.0.3
+ dev: true
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: true
+
+ /mixme@0.5.9:
+ resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==}
+ engines: {node: '>= 8.0.0'}
+ dev: true
+
+ /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.0
+ dev: true
+
+ /mrmime@1.0.1:
+ resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
+
+ /mylas@2.1.13:
+ resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==}
+ engines: {node: '>=12.0.0'}
+ dev: true
+
+ /mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+ dev: true
+
+ /nanoid@3.3.6:
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: true
+
+ /natural-compare-lite@1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+ dev: true
+
+ /natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ dev: true
+
+ /neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+ /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
+
+ /node-int64@0.4.0:
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+ dev: true
+
+ /node-releases@2.0.13:
+ resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
+
+ /normalize-package-data@2.5.0:
+ resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.6
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+ dev: true
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-key: 3.1.1
+ dev: true
+
+ /npm-run-path@5.1.0:
+ resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ path-key: 4.0.0
+ dev: true
+
+ /nwsapi@2.2.7:
+ resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
+ dev: true
+
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-inspect@1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
+ dev: true
+
+ /object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /object.assign@4.1.4:
+ resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+ dev: true
+
+ /object.entries@1.1.7:
+ resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ dev: true
+
+ /object.fromentries@2.0.7:
+ resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ dev: true
+
+ /object.groupby@1.0.1:
+ resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /object.hasown@1.1.3:
+ resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
+ dependencies:
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ dev: true
+
+ /object.values@1.1.7:
+ resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ dev: true
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+
+ /onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+ dependencies:
+ mimic-fn: 2.1.0
+ dev: true
+
+ /onetime@6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ mimic-fn: 4.0.0
+ dev: true
+
+ /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
+ dev: true
+
+ /os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /outdent@0.5.0:
+ resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
+ dev: true
+
+ /p-filter@2.1.0:
+ resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-map: 2.1.0
+ dev: true
+
+ /p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-try: 2.2.0
+
+ /p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ yocto-queue: 0.1.0
+ dev: true
+
+ /p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-limit: 2.3.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
+ dev: true
+
+ /p-map@2.1.0:
+ resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ /parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+ dev: true
+
+ /parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+ dev: true
+
+ /parse5@6.0.1:
+ resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+ dev: true
+
+ /parse5@7.1.2:
+ resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+ dependencies:
+ entities: 4.5.0
+ dev: true
+
+ /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-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ /path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /pathe@0.2.0:
+ resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
+ dev: true
+
+ /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'}
+ dev: true
+
+ /pidtree@0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+ dev: true
+
+ /pify@4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /pirates@4.0.6:
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /pkg-dir@4.2.0:
+ resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ find-up: 4.1.0
+
+ /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
+
+ /plimit-lit@1.5.0:
+ resolution: {integrity: sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==}
+ dependencies:
+ queue-lit: 1.5.0
+ dev: true
+
+ /postcss-load-config@3.1.4:
+ resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
+ engines: {node: '>= 10'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ lilconfig: 2.1.0
+ yaml: 1.10.2
+ dev: true
+
+ /postcss-load-config@4.0.1:
+ resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
+ engines: {node: '>= 14'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ lilconfig: 2.1.0
+ yaml: 2.3.2
+ dev: true
+
+ /postcss@8.4.30:
+ resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.6
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /preferred-pm@3.1.2:
+ resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ find-up: 5.0.0
+ find-yarn-workspace-root2: 1.2.16
+ path-exists: 4.0.0
+ which-pm: 2.0.0
+ dev: true
+
+ /prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
+ /prettier-linter-helpers@1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ fast-diff: 1.3.0
+ dev: true
+
+ /prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: true
+
+ /pretty-format@28.1.3:
+ resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ dependencies:
+ '@jest/schemas': 28.1.3
+ ansi-regex: 5.0.1
+ ansi-styles: 5.2.0
+ react-is: 18.2.0
+ dev: true
+
+ /prompts@2.4.2:
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
+ engines: {node: '>= 6'}
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+ dev: true
+
+ /prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+ dev: true
+
+ /proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: false
+
+ /pseudomap@1.0.2:
+ resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
+ dev: true
+
+ /psl@1.9.0:
+ resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
+ dev: true
+
+ /punycode@2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ engines: {node: '>=6'}
+
+ /querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+ dev: true
+
+ /queue-lit@1.5.0:
+ resolution: {integrity: sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==}
+ dev: true
+
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /quick-lru@4.0.1:
+ resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+
+ /react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+ dev: true
+
+ /react-is@18.2.0:
+ resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+ dev: true
+
+ /read-pkg-up@7.0.1:
+ resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+ engines: {node: '>=8'}
+ dependencies:
+ find-up: 4.1.0
+ read-pkg: 5.2.0
+ type-fest: 0.8.1
+ dev: true
+
+ /read-pkg@5.2.0:
+ resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@types/normalize-package-data': 2.4.1
+ normalize-package-data: 2.5.0
+ parse-json: 5.2.0
+ type-fest: 0.6.0
+ dev: true
+
+ /read-yaml-file@1.1.0:
+ resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
+ engines: {node: '>=6'}
+ dependencies:
+ graceful-fs: 4.2.11
+ js-yaml: 3.14.1
+ pify: 4.0.1
+ strip-bom: 3.0.0
+ dev: true
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /rechoir@0.7.1:
+ resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ resolve: 1.22.6
+
+ /redent@3.0.0:
+ resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
+ engines: {node: '>=8'}
+ dependencies:
+ indent-string: 4.0.0
+ strip-indent: 3.0.0
+ dev: true
+
+ /refa@0.9.1:
+ resolution: {integrity: sha512-egU8LgFq2VXlAfUi8Jcbr5X38wEOadMFf8tCbshgcpVCYlE7k84pJOSlnvXF+muDB4igkdVMq7Z/kiNPqDT9TA==}
+ dependencies:
+ regexpp: 3.2.0
+ dev: true
+
+ /reflect-metadata@0.1.13:
+ resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==}
+ dev: false
+
+ /reflect.getprototypeof@1.0.4:
+ resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ get-intrinsic: 1.2.1
+ globalthis: 1.0.3
+ which-builtin-type: 1.1.3
+ dev: true
+
+ /regenerator-runtime@0.14.0:
+ resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
+ dev: true
+
+ /regexp-ast-analysis@0.2.4:
+ resolution: {integrity: sha512-8L7kOZQaKPxKKAwGuUZxTQtlO3WZ+tiXy4s6G6PKL6trbOXcZoumwC3AOHHFtI/xoSbNxt7jgLvCnP1UADLWqg==}
+ dependencies:
+ refa: 0.9.1
+ regexpp: 3.2.0
+ dev: true
+
+ /regexp.prototype.flags@1.5.1:
+ resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ set-function-name: 2.0.1
+ dev: true
+
+ /regexpp@3.2.0:
+ resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
+ engines: {node: '>=8'}
+ 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: true
+
+ /require-main-filename@2.0.0:
+ resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
+ dev: true
+
+ /requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+ dev: true
+
+ /resolve-cwd@3.0.0:
+ resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ resolve-from: 5.0.0
+
+ /resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ /resolve.exports@1.1.1:
+ resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /resolve@1.22.6:
+ resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ /resolve@2.0.0-next.4:
+ resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /restore-cursor@4.0.0:
+ resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ dev: true
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /rfdc@1.3.0:
+ resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
+ dev: true
+
+ /rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+ dev: true
+
+ /rollup@2.79.1:
+ resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /rollup@3.29.2:
+ resolution: {integrity: sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==}
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /safe-array-concat@1.0.1:
+ resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
+ engines: {node: '>=0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ has-symbols: 1.0.3
+ isarray: 2.0.5
+ dev: true
+
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ /safe-regex-test@1.0.0:
+ resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ is-regex: 1.1.4
+ dev: true
+
+ /safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ /saxes@5.0.1:
+ resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==}
+ engines: {node: '>=10'}
+ dependencies:
+ xmlchars: 2.2.0
+ dev: true
+
+ /saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+ dependencies:
+ xmlchars: 2.2.0
+ dev: true
+
+ /schema-utils@3.3.0:
+ resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
+ engines: {node: '>= 10.13.0'}
+ dependencies:
+ '@types/json-schema': 7.0.13
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+
+ /schema-utils@4.2.0:
+ resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
+ engines: {node: '>= 12.13.0'}
+ dependencies:
+ '@types/json-schema': 7.0.13
+ ajv: 8.12.0
+ ajv-formats: 2.1.1(ajv@8.12.0)
+ ajv-keywords: 5.1.0(ajv@8.12.0)
+ dev: true
+
+ /scrypt-js@2.0.4:
+ resolution: {integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==}
+ dev: false
+
+ /scslre@0.1.6:
+ resolution: {integrity: sha512-JORxVRlQTfjvlOAaiQKebgFElyAm5/W8b50lgaZ0OkEnKnagJW2ufDh3xRfU75UD9z3FGIu1gL1IyR3Poa6Qmw==}
+ dependencies:
+ refa: 0.9.1
+ regexp-ast-analysis: 0.2.4
+ regexpp: 3.2.0
+ dev: true
+
+ /semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+ dev: true
+
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+ 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.1:
+ resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
+ dependencies:
+ randombytes: 2.1.0
+
+ /set-blocking@2.0.0:
+ resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+ dev: true
+
+ /set-function-name@2.0.1:
+ resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.0
+ dev: true
+
+ /setimmediate@1.0.4:
+ resolution: {integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==}
+ dev: false
+
+ /shallow-clone@3.0.1:
+ resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
+ engines: {node: '>=8'}
+ dependencies:
+ kind-of: 6.0.3
+
+ /shebang-command@1.2.0:
+ resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ shebang-regex: 1.0.0
+ dev: true
+
+ /shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+
+ /shebang-regex@1.0.0:
+ resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ /side-channel@1.0.4:
+ resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ object-inspect: 1.12.3
+ dev: true
+
+ /signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+ dev: true
+
+ /sirv@2.0.3:
+ resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@polka/url': 1.0.0-next.23
+ mrmime: 1.0.1
+ totalist: 3.0.1
+ dev: true
+
+ /sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+ dev: true
+
+ /slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /slash@4.0.0:
+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /slice-ansi@5.0.0:
+ resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+ dev: true
+
+ /smartwrap@2.0.2:
+ resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dependencies:
+ array.prototype.flat: 1.3.2
+ breakword: 1.0.6
+ grapheme-splitter: 1.0.4
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+ yargs: 15.4.1
+ dev: true
+
+ /source-map-js@1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /source-map-support@0.5.13:
+ resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+ dev: true
+
+ /source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ /source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ /source-map@0.8.0-beta.0:
+ resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
+ engines: {node: '>= 8'}
+ dependencies:
+ whatwg-url: 7.1.0
+ dev: true
+
+ /spawndamnit@2.0.0:
+ resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==}
+ dependencies:
+ cross-spawn: 5.1.0
+ signal-exit: 3.0.7
+ dev: true
+
+ /spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.15
+ dev: true
+
+ /spdx-exceptions@2.3.0:
+ resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
+ dev: true
+
+ /spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+ dependencies:
+ spdx-exceptions: 2.3.0
+ spdx-license-ids: 3.0.15
+ dev: true
+
+ /spdx-license-ids@3.0.15:
+ resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==}
+ dev: true
+
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
+
+ /stack-utils@2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ escape-string-regexp: 2.0.0
+ dev: true
+
+ /std-env@3.4.3:
+ resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==}
+ dev: true
+
+ /stream-transform@2.1.3:
+ resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
+ dependencies:
+ mixme: 0.5.9
+ dev: true
+
+ /strict-event-emitter-types@2.0.0:
+ resolution: {integrity: sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==}
+ dev: false
+
+ /string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+ dev: true
+
+ /string-length@4.0.2:
+ resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ char-regex: 1.0.2
+ strip-ansi: 6.0.1
+ dev: true
+
+ /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
+ dev: true
+
+ /string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+ dev: true
+
+ /string.prototype.matchall@4.0.10:
+ resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ get-intrinsic: 1.2.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.5
+ regexp.prototype.flags: 1.5.1
+ set-function-name: 2.0.1
+ side-channel: 1.0.4
+ dev: true
+
+ /string.prototype.trim@1.2.8:
+ resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ dev: true
+
+ /string.prototype.trimend@1.0.7:
+ resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ dev: true
+
+ /string.prototype.trimstart@1.0.7:
+ resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.1
+ es-abstract: 1.22.2
+ dev: true
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+ dev: true
+
+ /strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /strip-bom@4.0.0:
+ resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /strip-final-newline@3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ min-indent: 1.0.1
+ dev: true
+
+ /strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /strip-literal@1.3.0:
+ resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
+ dependencies:
+ acorn: 8.10.0
+ dev: true
+
+ /sucrase@3.34.0:
+ resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ commander: 4.1.1
+ glob: 7.1.6
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.6
+ ts-interface-checker: 0.1.13
+ dev: true
+
+ /supports-color@5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+ dev: true
+
+ /supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ dev: true
+
+ /supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ has-flag: 4.0.0
+
+ /supports-hyperlinks@2.3.0:
+ resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+ dev: true
+
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ /symbol-tree@3.2.4:
+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+ dev: true
+
+ /tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+
+ /term-size@2.2.1:
+ resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /terminal-link@2.1.1:
+ resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-escapes: 4.3.2
+ supports-hyperlinks: 2.3.0
+ dev: true
+
+ /terser-webpack-plugin@5.3.9(esbuild@0.15.18)(webpack@5.88.2):
+ resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@swc/core': '*'
+ esbuild: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.19
+ esbuild: 0.15.18
+ jest-worker: 27.5.1
+ schema-utils: 3.3.0
+ serialize-javascript: 6.0.1
+ terser: 5.20.0
+ webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0)
+
+ /terser@5.20.0:
+ resolution: {integrity: sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/source-map': 0.3.5
+ acorn: 8.10.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ /test-exclude@6.0.0:
+ resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@istanbuljs/schema': 0.1.3
+ glob: 7.2.3
+ minimatch: 3.1.2
+ dev: true
+
+ /text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+ dev: true
+
+ /thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ thenify: 3.3.1
+ dev: true
+
+ /thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ dependencies:
+ any-promise: 1.3.0
+ dev: true
+
+ /tinybench@2.5.1:
+ resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==}
+ dev: true
+
+ /tinypool@0.3.1:
+ resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
+ /tinyspy@1.1.1:
+ resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
+ /tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+ dependencies:
+ os-tmpdir: 1.0.2
+ dev: true
+
+ /tmpl@1.0.5:
+ resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
+ dev: true
+
+ /to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /totalist@3.0.1:
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /tough-cookie@4.1.3:
+ resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
+ engines: {node: '>=6'}
+ dependencies:
+ psl: 1.9.0
+ punycode: 2.3.0
+ universalify: 0.2.0
+ url-parse: 1.5.10
+ dev: true
+
+ /tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ /tr46@1.0.1:
+ resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
+ dependencies:
+ punycode: 2.3.0
+ dev: true
+
+ /tr46@3.0.0:
+ resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
+ engines: {node: '>=12'}
+ dependencies:
+ punycode: 2.3.0
+ dev: true
+
+ /tree-kill@1.2.2:
+ resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
+ hasBin: true
+ dev: true
+
+ /trim-newlines@3.0.1:
+ resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+ dev: true
+
+ /ts-jest@28.0.8(@babel/core@7.22.20)(esbuild@0.15.18)(jest@28.1.3)(typescript@4.9.5):
+ resolution: {integrity: sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
+ hasBin: true
+ peerDependencies:
+ '@babel/core': '>=7.0.0-beta.0 <8'
+ '@jest/types': ^28.0.0
+ babel-jest: ^28.0.0
+ esbuild: '*'
+ jest: ^28.0.0
+ typescript: '>=4.3'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ '@jest/types':
+ optional: true
+ babel-jest:
+ optional: true
+ esbuild:
+ optional: true
+ dependencies:
+ '@babel/core': 7.22.20
+ bs-logger: 0.2.6
+ esbuild: 0.15.18
+ fast-json-stable-stringify: 2.1.0
+ jest: 28.1.3
+ jest-util: 28.1.3
+ json5: 2.2.3
+ lodash.memoize: 4.1.2
+ make-error: 1.3.6
+ semver: 7.5.4
+ typescript: 4.9.5
+ yargs-parser: 21.1.1
+ dev: true
+
+ /ts-loader@9.4.4(typescript@4.9.5)(webpack@5.88.2):
+ resolution: {integrity: sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ typescript: '*'
+ webpack: ^5.0.0
+ dependencies:
+ chalk: 4.1.2
+ enhanced-resolve: 5.15.0
+ micromatch: 4.0.5
+ semver: 7.5.4
+ typescript: 4.9.5
+ webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0)
+ dev: true
+
+ /ts-node@10.9.1(@types/node@20.6.3)(typescript@5.2.2):
+ resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.9
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 20.6.3
+ acorn: 8.10.0
+ acorn-walk: 8.2.0
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 5.2.2
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+ dev: true
+
+ /ts-results@3.3.0:
+ resolution: {integrity: sha512-FWqxGX2NHp5oCyaMd96o2y2uMQmSu8Dey6kvyuFdRJ2AzfmWo3kWa4UsPlCGlfQ/qu03m09ZZtppMoY8EMHuiA==}
+ dev: false
+
+ /tsc-alias@1.8.8:
+ resolution: {integrity: sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==}
+ hasBin: true
+ dependencies:
+ chokidar: 3.5.3
+ commander: 9.5.0
+ globby: 11.1.0
+ mylas: 2.1.13
+ normalize-path: 3.0.0
+ plimit-lit: 1.5.0
+ dev: true
+
+ /tsconfck@2.1.2(typescript@4.9.5):
+ resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==}
+ engines: {node: ^14.13.1 || ^16 || >=18}
+ hasBin: true
+ peerDependencies:
+ typescript: ^4.3.5 || ^5.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ typescript: 4.9.5
+ dev: true
+
+ /tsconfig-paths@3.14.2:
+ resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+ dev: true
+
+ /tslib@1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+ dev: true
+
+ /tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: false
+
+ /tsup@6.7.0(typescript@4.9.5):
+ resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==}
+ engines: {node: '>=14.18'}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': ^1
+ postcss: ^8.4.12
+ typescript: '>=4.1.0'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ postcss:
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ bundle-require: 4.0.1(esbuild@0.17.19)
+ cac: 6.7.14
+ chokidar: 3.5.3
+ debug: 4.3.4
+ esbuild: 0.17.19
+ execa: 5.1.1
+ globby: 11.1.0
+ joycon: 3.1.1
+ postcss-load-config: 3.1.4
+ resolve-from: 5.0.0
+ rollup: 3.29.2
+ source-map: 0.8.0-beta.0
+ sucrase: 3.34.0
+ tree-kill: 1.2.2
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ - ts-node
+ dev: true
+
+ /tsup@7.2.0(typescript@4.9.5):
+ resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==}
+ engines: {node: '>=16.14'}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': ^1
+ postcss: ^8.4.12
+ typescript: '>=4.1.0'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ postcss:
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ bundle-require: 4.0.1(esbuild@0.18.20)
+ cac: 6.7.14
+ chokidar: 3.5.3
+ debug: 4.3.4
+ esbuild: 0.18.20
+ execa: 5.1.1
+ globby: 11.1.0
+ joycon: 3.1.1
+ postcss-load-config: 4.0.1
+ resolve-from: 5.0.0
+ rollup: 3.29.2
+ source-map: 0.8.0-beta.0
+ sucrase: 3.34.0
+ tree-kill: 1.2.2
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ - ts-node
+ dev: true
+
+ /tsutils@3.21.0(typescript@4.9.5):
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+ dependencies:
+ tslib: 1.14.1
+ typescript: 4.9.5
+ dev: true
+
+ /tty-table@4.2.1:
+ resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==}
+ engines: {node: '>=8.0.0'}
+ hasBin: true
+ dependencies:
+ chalk: 4.1.2
+ csv: 5.5.3
+ kleur: 4.1.5
+ smartwrap: 2.0.2
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+ yargs: 17.7.2
+ dev: true
+
+ /type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ dev: true
+
+ /type-detect@4.0.8:
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /type-fest@0.13.1:
+ resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /type-fest@0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /type-fest@0.6.0:
+ resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /type-fest@0.8.1:
+ resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /type-fest@1.4.0:
+ resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /typed-array-buffer@1.0.0:
+ resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-byte-length@1.0.0:
+ resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ has-proto: 1.0.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-byte-offset@1.0.0:
+ resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ has-proto: 1.0.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-length@1.0.4:
+ resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
+ dependencies:
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typedjson@1.8.0:
+ resolution: {integrity: sha512-taVJVGebQDagEmVc3Cu6vVVLkWLnxqPcTrkVgbpAsI02ZDDrnHy5zvt1JVqXv4/yztBgZAX1oR07+bkiusGJLQ==}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
+ /typescript@4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+ dev: true
+
+ /typescript@5.2.2:
+ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+ dev: true
+
+ /ufo@1.3.0:
+ resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==}
+ dev: true
+
+ /unbox-primitive@1.0.2:
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ dependencies:
+ call-bind: 1.0.2
+ has-bigints: 1.0.2
+ has-symbols: 1.0.3
+ which-boxed-primitive: 1.0.2
+ dev: true
+
+ /universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+ dev: true
+
+ /universalify@0.2.0:
+ resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
+ engines: {node: '>= 4.0.0'}
+ dev: true
+
+ /update-browserslist-db@1.0.13(browserslist@4.21.11):
+ resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.21.11
+ escalade: 3.1.1
+ picocolors: 1.0.0
+
+ /uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ dependencies:
+ punycode: 2.3.0
+
+ /url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+ dev: true
+
+ /uuid@2.0.1:
+ resolution: {integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==}
+ deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
+ dev: false
+
+ /v8-compile-cache-lib@3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+ dev: true
+
+ /v8-to-istanbul@9.1.0:
+ resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==}
+ engines: {node: '>=10.12.0'}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.19
+ '@types/istanbul-lib-coverage': 2.0.4
+ convert-source-map: 1.9.0
+ dev: true
+
+ /validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+ dev: true
+
+ /vite-node@0.26.3(@types/node@20.6.3):
+ resolution: {integrity: sha512-Te2bq0Bfvq6XiO718I+1EinMjpNYKws6SNHKOmVbILAQimKoZKDd+IZLlkaYcBXPpK3HFe2U80k8Zw+m3w/a2w==}
+ engines: {node: '>=v14.16.0'}
+ hasBin: true
+ dependencies:
+ debug: 4.3.4
+ mlly: 1.4.2
+ pathe: 0.2.0
+ source-map: 0.6.1
+ source-map-support: 0.5.21
+ vite: 4.4.9(@types/node@20.6.3)
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ dev: true
+
+ /vite-tsconfig-paths@4.2.1(typescript@4.9.5):
+ resolution: {integrity: sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ==}
+ peerDependencies:
+ vite: '*'
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ dependencies:
+ debug: 4.3.4
+ globrex: 0.1.2
+ tsconfck: 2.1.2(typescript@4.9.5)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /vite@4.4.9(@types/node@20.6.3):
+ resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ '@types/node': 20.6.3
+ esbuild: 0.18.20
+ postcss: 8.4.30
+ rollup: 3.29.2
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /vitest@0.26.3(@vitest/ui@0.28.5)(jsdom@20.0.3):
+ resolution: {integrity: sha512-FmHxU9aUCxTi23keF3vxb/Qp0lYXaaJ+jRLGOUmMS3qVTOJvgGE+f1VArupA6pEhaG2Ans4X+zV9dqM5WISMbg==}
+ engines: {node: '>=v14.16.0'}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@vitest/browser': '*'
+ '@vitest/ui': '*'
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ dependencies:
+ '@types/chai': 4.3.6
+ '@types/chai-subset': 1.3.3
+ '@types/node': 20.6.3
+ '@vitest/ui': 0.28.5
+ acorn: 8.10.0
+ acorn-walk: 8.2.0
+ chai: 4.3.8
+ debug: 4.3.4
+ jsdom: 20.0.3
+ local-pkg: 0.4.3
+ source-map: 0.6.1
+ strip-literal: 1.3.0
+ tinybench: 2.5.1
+ tinypool: 0.3.1
+ tinyspy: 1.1.1
+ vite: 4.4.9(@types/node@20.6.3)
+ vite-node: 0.26.3(@types/node@20.6.3)
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ dev: true
+
+ /w3c-hr-time@1.0.2:
+ resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
+ deprecated: Use your platform's native performance.now() and performance.timeOrigin.
+ dependencies:
+ browser-process-hrtime: 1.0.0
+ dev: true
+
+ /w3c-xmlserializer@3.0.0:
+ resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==}
+ engines: {node: '>=12'}
+ dependencies:
+ xml-name-validator: 4.0.0
+ dev: true
+
+ /w3c-xmlserializer@4.0.0:
+ resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
+ engines: {node: '>=14'}
+ dependencies:
+ xml-name-validator: 4.0.0
+ dev: true
+
+ /walker@1.0.8:
+ resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+ dependencies:
+ makeerror: 1.0.12
+ dev: true
+
+ /watchpack@2.4.0:
+ resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+
+ /wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+ dependencies:
+ defaults: 1.0.4
+ dev: true
+
+ /webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ /webidl-conversions@4.0.2:
+ resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
+ dev: true
+
+ /webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /webpack-cli@4.10.0(webpack@5.88.2):
+ resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ peerDependencies:
+ '@webpack-cli/generators': '*'
+ '@webpack-cli/migrate': '*'
+ webpack: 4.x.x || 5.x.x
+ webpack-bundle-analyzer: '*'
+ webpack-dev-server: '*'
+ peerDependenciesMeta:
+ '@webpack-cli/generators':
+ optional: true
+ '@webpack-cli/migrate':
+ optional: true
+ webpack-bundle-analyzer:
+ optional: true
+ webpack-dev-server:
+ optional: true
+ dependencies:
+ '@discoveryjs/json-ext': 0.5.7
+ '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.88.2)
+ '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0)
+ '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0)
+ colorette: 2.0.20
+ commander: 7.2.0
+ cross-spawn: 7.0.3
+ fastest-levenshtein: 1.0.16
+ import-local: 3.1.0
+ interpret: 2.2.0
+ rechoir: 0.7.1
+ webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0)
+ webpack-merge: 5.9.0
+
+ /webpack-merge@5.9.0:
+ resolution: {integrity: sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ clone-deep: 4.0.1
+ wildcard: 2.0.1
+
+ /webpack-node-externals@3.0.0:
+ resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /webpack-sources@3.2.3:
+ resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ engines: {node: '>=10.13.0'}
+
+ /webpack@5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0):
+ resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ peerDependencies:
+ webpack-cli: '*'
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+ dependencies:
+ '@types/eslint-scope': 3.7.5
+ '@types/estree': 1.0.2
+ '@webassemblyjs/ast': 1.11.6
+ '@webassemblyjs/wasm-edit': 1.11.6
+ '@webassemblyjs/wasm-parser': 1.11.6
+ acorn: 8.10.0
+ acorn-import-assertions: 1.9.0(acorn@8.10.0)
+ browserslist: 4.21.11
+ chrome-trace-event: 1.0.3
+ enhanced-resolve: 5.15.0
+ es-module-lexer: 1.3.1
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.0
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 3.3.0
+ tapable: 2.2.1
+ terser-webpack-plugin: 5.3.9(esbuild@0.15.18)(webpack@5.88.2)
+ watchpack: 2.4.0
+ webpack-cli: 4.10.0(webpack@5.88.2)
+ webpack-sources: 3.2.3
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+
+ /whatwg-encoding@2.0.0:
+ resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
+ engines: {node: '>=12'}
+ dependencies:
+ iconv-lite: 0.6.3
+ dev: true
+
+ /whatwg-fetch@3.6.19:
+ resolution: {integrity: sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==}
+ dev: false
+
+ /whatwg-mimetype@3.0.0:
+ resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /whatwg-url@10.0.0:
+ resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==}
+ engines: {node: '>=12'}
+ dependencies:
+ tr46: 3.0.0
+ webidl-conversions: 7.0.0
+ dev: true
+
+ /whatwg-url@11.0.0:
+ resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ tr46: 3.0.0
+ webidl-conversions: 7.0.0
+ dev: true
+
+ /whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ /whatwg-url@7.1.0:
+ resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
+ dependencies:
+ lodash.sortby: 4.7.0
+ tr46: 1.0.1
+ webidl-conversions: 4.0.2
+ dev: true
+
+ /which-boxed-primitive@1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+ dependencies:
+ is-bigint: 1.0.4
+ is-boolean-object: 1.1.2
+ is-number-object: 1.0.7
+ is-string: 1.0.7
+ is-symbol: 1.0.4
+ dev: true
+
+ /which-builtin-type@1.1.3:
+ resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function.prototype.name: 1.1.6
+ has-tostringtag: 1.0.0
+ is-async-function: 2.0.0
+ is-date-object: 1.0.5
+ is-finalizationregistry: 1.0.2
+ is-generator-function: 1.0.10
+ is-regex: 1.1.4
+ is-weakref: 1.0.2
+ isarray: 2.0.5
+ which-boxed-primitive: 1.0.2
+ which-collection: 1.0.1
+ which-typed-array: 1.1.11
+ dev: true
+
+ /which-collection@1.0.1:
+ resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
+ dependencies:
+ is-map: 2.0.2
+ is-set: 2.0.2
+ is-weakmap: 2.0.1
+ is-weakset: 2.0.2
+ dev: true
+
+ /which-module@2.0.1:
+ resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
+ dev: true
+
+ /which-pm@2.0.0:
+ resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
+ engines: {node: '>=8.15'}
+ dependencies:
+ load-yaml-file: 0.2.0
+ path-exists: 4.0.0
+ dev: true
+
+ /which-typed-array@1.1.11:
+ resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+
+ /wildcard@2.0.1:
+ resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
+
+ /wrap-ansi@6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ 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
+
+ /wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+ dev: true
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /write-file-atomic@4.0.2:
+ resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dependencies:
+ imurmurhash: 0.1.4
+ signal-exit: 3.0.7
+ dev: true
+
+ /ws@7.5.9:
+ resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ engines: {node: '>=8.3.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: false
+
+ /ws@8.14.2:
+ resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: true
+
+ /xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+ dev: true
+
+ /xmlhttprequest@1.8.0:
+ resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==}
+ engines: {node: '>=0.4.0'}
+ dev: false
+
+ /y18n@4.0.3:
+ resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
+ dev: true
+
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /yallist@2.1.2:
+ resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
+ dev: true
+
+ /yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+ dev: true
+
+ /yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ dev: true
+
+ /yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /yaml@2.3.1:
+ resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==}
+ engines: {node: '>= 14'}
+ dev: true
+
+ /yaml@2.3.2:
+ resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==}
+ engines: {node: '>= 14'}
+ dev: true
+
+ /yargs-parser@18.1.3:
+ resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ camelcase: 5.3.1
+ decamelize: 1.2.0
+ dev: true
+
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /yargs@15.4.1:
+ resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cliui: 6.0.0
+ decamelize: 1.2.0
+ find-up: 4.1.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ require-main-filename: 2.0.0
+ set-blocking: 2.0.0
+ string-width: 4.2.3
+ which-module: 2.0.1
+ y18n: 4.0.3
+ yargs-parser: 18.1.3
+ dev: true
+
+ /yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.1
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+ dev: true
+
+ /yn@3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+ dev: true
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 0000000..7514726
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,8 @@
+packages:
+ - 'docs'
+ - 'packages/contract-client'
+ - 'packages/*'
+ - '!**/test/**'
+ - 'examples/*'
+
+link-workspace-packages: true
diff --git a/tsconfig.json b/tsconfig.json
index 178b11a..7ba6e4e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -11,16 +11,27 @@
"noImplicitReturns": true,
"noImplicitThis": true,
"noUnusedParameters": true,
- "noUnusedLocals": true,
"noFallthroughCasesInSwitch": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"module": "commonjs",
- "target": "es5",
- "lib": ["es2015", "dom"],
+ "target": "es2021",
+ "lib": ["es2021", "dom"],
"skipLibCheck": true,
- "typeRoots": ["./src/@types", "./node_modules/@types"]
+ "typeRoots": ["packages/contract-client/src/@types", "./node_modules/@types"],
+ "paths": {
+ "@casperdash/contract-client": ["./packages/contract-client/src"],
+ "@casperdash/cep47-client": ["./packages/cep47-client/src"],
+ "@casperdash/cep18-client": ["./packages/cep18-client/src"],
+ "@casperdash/cep78-client": ["./packages/cep78-client/src"],
+ },
},
- "include": ["./src/**/*"],
- "exclude": ["./test/**/*", "*/*.test.ts"]
+ "exclude": ["**/node_modules/**", "**/dist/**"],
+ "include": [
+ "docs/**/*",
+ "examples/**/*",
+ "packages/**/*",
+ "packages/**/*.ts",
+ "vitest.config.ts"
+ ]
}
diff --git a/yarn.lock b/yarn.lock
index 9a79f47..3da3e21 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -628,7 +628,7 @@
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
dependencies:
- "@types/estree" "0.0.39"
+ "@types/estree" "2.15.09"
estree-walker "^1.0.1"
picomatch "^2.2.2"
@@ -732,9 +732,9 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2"
integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
-"@types/estree@0.0.39":
- version "0.0.39"
- resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
+"@types/estree@2.15.09":
+ version "2.15.09"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-2.15.09.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
"@types/estree@^0.0.51":
@@ -3606,9 +3606,9 @@ tr46@^3.0.0:
dependencies:
punycode "^2.1.1"
-tr46@~0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+tr46@~2.15.0:
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.15.0.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
ts-jest@^28.0.7:
@@ -3839,7 +3839,7 @@ whatwg-url@^5.0.0:
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
dependencies:
- tr46 "~0.0.3"
+ tr46 "~2.15.0"
webidl-conversions "^3.0.0"
which@^2.0.1: