diff --git a/e2e/browser/package.json b/e2e/browser/package.json index 4552125de..1d003e47b 100644 --- a/e2e/browser/package.json +++ b/e2e/browser/package.json @@ -19,11 +19,11 @@ }, "devDependencies": { "@types/node": "^18.0.6", - "concurrently": "^7.3.0", - "cypress": "^13.2.0", - "esbuild": "^0.15.16", - "parcel": "^2.6.2", - "pm2": "^5.3.0", + "concurrently": "^8.2.2", + "cypress": "^13.7.0", + "esbuild": "^0.20.2", + "parcel": "^2.12.0", + "pm2": "^5.3.1", "size-limit": "^8.1.0" }, "dependencies": { @@ -31,5 +31,8 @@ "@dfinity/identity": "^1.1.1", "@dfinity/principal": "^1.1.1", "idb-keyval": "^6.2.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.6.1" } } diff --git a/e2e/node/basic/mainnet.test.ts b/e2e/node/basic/mainnet.test.ts index 0c4d7bc4f..bb2ab1b8c 100644 --- a/e2e/node/basic/mainnet.test.ts +++ b/e2e/node/basic/mainnet.test.ts @@ -38,7 +38,7 @@ describe('certified query', () => { expect(Principal.from(result)).toBeInstanceOf(Principal); }, 100_000); it('should verify lots of query certificates', async () => { - let count = 0; + let count = 1; const identities = Array.from({ length: 20 }).map(() => { const newIdentity = Ed25519KeyIdentity.generate(new Uint8Array(32).fill(count)); count++; @@ -56,9 +56,6 @@ describe('certified query', () => { expect(results).toMatchInlineSnapshot(` [ - { - "__principal__": "535yc-uxytb-gfk7h-tny7p-vjkoe-i4krp-3qmcl-uqfgr-cpgej-yqtjq-rqe", - }, { "__principal__": "wf3fv-4c4nr-7ks2b-xa4u7-kf3no-32glf-lf7e4-4ng4a-wwtlu-a2vnq-nae", }, @@ -116,6 +113,9 @@ describe('certified query', () => { { "__principal__": "entn3-mas6a-37smu-vadtg-wgsno-zokif-vyphu-umase-lfwqe-dmcrk-kae", }, + { + "__principal__": "hy3bf-xpwhn-ru6bb-lhqol-wrjew-j2xqi-gb4gb-muivw-d6bkg-q3tp4-lqe", + }, ] `); }); diff --git a/package-lock.json b/package-lock.json index cd46e24f1..1de675705 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,7 +51,6 @@ "packages/principal", "packages/candid", "packages/agent", - "packages/bls-verify", "packages/identity", "packages/auth-client", "packages/assets", @@ -72,12 +71,31 @@ }, "devDependencies": { "@types/node": "^18.0.6", - "concurrently": "^7.3.0", - "cypress": "^13.2.0", - "esbuild": "^0.15.16", - "parcel": "^2.6.2", - "pm2": "^5.3.0", + "concurrently": "^8.2.2", + "cypress": "^13.7.0", + "esbuild": "^0.20.2", + "parcel": "^2.12.0", + "pm2": "^5.3.1", "size-limit": "^8.1.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.6.1" + } + }, + "e2e/browser/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, "e2e/browser/node_modules/@types/node": { @@ -89,9 +107,9 @@ } }, "e2e/browser/node_modules/esbuild": { - "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", "dev": true, "hasInstallScript": true, "bin": { @@ -101,35 +119,35 @@ "node": ">=12" }, "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/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" } }, "e2e/browser/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -189,9 +207,8 @@ }, "e2e/node/node_modules/@es-joy/jsdoccomment": { "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", "dev": true, + "license": "MIT", "dependencies": { "comment-parser": "1.3.1", "esquery": "^1.4.0", @@ -201,6 +218,38 @@ "node": "^14 || ^16 || ^17 || ^18 || ^19" } }, + "e2e/node/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "e2e/node/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "e2e/node/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "dev": true, @@ -262,9 +311,8 @@ }, "e2e/node/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -279,9 +327,8 @@ }, "e2e/node/node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -306,9 +353,8 @@ }, "e2e/node/node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -332,9 +378,8 @@ }, "e2e/node/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -349,19 +394,17 @@ }, "e2e/node/node_modules/comment-parser": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.0.0" } }, "e2e/node/node_modules/esbuild": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -415,9 +458,8 @@ }, "e2e/node/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -443,9 +485,8 @@ }, "e2e/node/node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -453,18 +494,16 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -475,9 +514,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -488,9 +526,8 @@ }, "node_modules/@babel/code-frame/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -500,9 +537,8 @@ }, "node_modules/@babel/code-frame/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -514,42 +550,37 @@ }, "node_modules/@babel/code-frame/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/code-frame/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/code-frame/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/code-frame/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -559,18 +590,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -598,18 +627,16 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", @@ -622,9 +649,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -638,27 +664,24 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -669,9 +692,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -681,9 +703,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -693,9 +714,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -712,18 +732,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -733,9 +751,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -745,36 +762,32 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", - "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.23.9", "@babel/traverse": "^7.23.9", @@ -786,9 +799,8 @@ }, "node_modules/@babel/highlight": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -800,9 +812,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -812,9 +823,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -826,42 +836,37 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -871,9 +876,8 @@ }, "node_modules/@babel/parser": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -883,9 +887,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -895,9 +898,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -907,9 +909,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -919,9 +920,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -931,9 +931,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -943,9 +942,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -958,9 +956,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -970,9 +967,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -982,9 +978,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -994,9 +989,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1006,9 +1000,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1018,9 +1011,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1030,9 +1022,8 @@ }, "node_modules/@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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1045,9 +1036,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1060,9 +1050,8 @@ }, "node_modules/@babel/runtime": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1072,9 +1061,8 @@ }, "node_modules/@babel/template": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/parser": "^7.23.9", @@ -1086,9 +1074,8 @@ }, "node_modules/@babel/traverse": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", @@ -1107,18 +1094,16 @@ }, "node_modules/@babel/traverse/node_modules/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -1130,23 +1115,21 @@ }, "node_modules/@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 + "dev": true, + "license": "MIT" }, "node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -1156,9 +1139,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1166,9 +1148,8 @@ }, "node_modules/@cypress/request": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", - "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -1195,9 +1176,8 @@ }, "node_modules/@cypress/xvfb": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.1.0", "lodash.once": "^4.1.1" @@ -1205,9 +1185,8 @@ }, "node_modules/@cypress/xvfb/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -1224,10 +1203,6 @@ "resolved": "packages/auth-client", "link": true }, - "node_modules/@dfinity/bls-verify": { - "resolved": "packages/bls-verify", - "link": true - }, "node_modules/@dfinity/candid": { "resolved": "packages/candid", "link": true @@ -1254,9 +1229,8 @@ }, "node_modules/@es-joy/jsdoccomment": { "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", - "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", "dev": true, + "license": "MIT", "dependencies": { "comment-parser": "1.4.1", "esquery": "^1.5.0", @@ -1268,17 +1242,16 @@ }, "node_modules/@es-joy/jsdoccomment/node_modules/jsdoc-type-pratt-parser": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", - "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", "cpu": [ "ppc64" ], @@ -1292,9 +1265,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.15.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", - "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", "cpu": [ "arm" ], @@ -1308,9 +1281,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", "cpu": [ "arm64" ], @@ -1324,9 +1297,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", "cpu": [ "x64" ], @@ -1341,12 +1314,11 @@ }, "node_modules/@esbuild/darwin-arm64": { "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1356,9 +1328,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", "cpu": [ "x64" ], @@ -1372,9 +1344,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", "cpu": [ "arm64" ], @@ -1388,9 +1360,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", "cpu": [ "x64" ], @@ -1404,9 +1376,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", "cpu": [ "arm" ], @@ -1420,9 +1392,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", "cpu": [ "arm64" ], @@ -1436,9 +1408,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", "cpu": [ "ia32" ], @@ -1452,9 +1424,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.15.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", - "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", "cpu": [ "loong64" ], @@ -1468,9 +1440,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", "cpu": [ "mips64el" ], @@ -1484,9 +1456,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", "cpu": [ "ppc64" ], @@ -1500,9 +1472,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", "cpu": [ "riscv64" ], @@ -1516,9 +1488,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", "cpu": [ "s390x" ], @@ -1532,9 +1504,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", "cpu": [ "x64" ], @@ -1548,9 +1520,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", "cpu": [ "x64" ], @@ -1564,9 +1536,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", "cpu": [ "x64" ], @@ -1580,9 +1552,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", "cpu": [ "x64" ], @@ -1596,9 +1568,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", "cpu": [ "arm64" ], @@ -1612,9 +1584,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", "cpu": [ "ia32" ], @@ -1628,9 +1600,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", "cpu": [ "x64" ], @@ -1645,9 +1617,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -1660,18 +1631,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1692,18 +1661,16 @@ }, "node_modules/@eslint/js": { "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -1715,9 +1682,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -1728,21 +1694,18 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@iarna/toml": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -1757,9 +1720,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1769,9 +1731,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1781,15 +1742,13 @@ }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -1804,9 +1763,8 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -1819,9 +1777,8 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -1836,9 +1793,8 @@ }, "node_modules/@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, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -1852,18 +1808,16 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -1874,9 +1828,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1887,9 +1840,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -1899,9 +1851,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -1914,9 +1865,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -1926,33 +1876,29 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -1967,9 +1913,8 @@ }, "node_modules/@jest/core": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -2014,9 +1959,8 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -2029,9 +1973,8 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -2042,9 +1985,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3" }, @@ -2054,9 +1996,8 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -2071,9 +2012,8 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -2086,9 +2026,8 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -2129,9 +2068,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -2141,9 +2079,8 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -2155,9 +2092,8 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -2170,9 +2106,8 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -2185,9 +2120,8 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -2211,9 +2145,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -2228,9 +2161,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2242,33 +2174,29 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@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==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2291,9 +2219,8 @@ }, "node_modules/@ljharb/through": { "version": "2.3.12", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", - "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5" }, @@ -2472,20 +2399,18 @@ ] }, "node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "version": "1.4.0", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.3" + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "version": "1.4.0", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -2495,9 +2420,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2508,18 +2432,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2530,18 +2452,16 @@ }, "node_modules/@octokit/auth-token": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", - "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/@octokit/core": { "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", - "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", @@ -2557,9 +2477,8 @@ }, "node_modules/@octokit/endpoint": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", - "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", @@ -2571,9 +2490,8 @@ }, "node_modules/@octokit/graphql": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", - "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/request": "^6.0.0", "@octokit/types": "^9.0.0", @@ -2585,15 +2503,13 @@ }, "node_modules/@octokit/openapi-types": { "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", - "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", - "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/tsconfig": "^1.0.2", "@octokit/types": "^9.2.3" @@ -2607,18 +2523,16 @@ }, "node_modules/@octokit/plugin-request-log": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, + "license": "MIT", "peerDependencies": { "@octokit/core": ">=3" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", - "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^10.0.0" }, @@ -2631,18 +2545,16 @@ }, "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", - "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^18.0.0" } }, "node_modules/@octokit/request": { "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", - "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", @@ -2657,9 +2569,8 @@ }, "node_modules/@octokit/request-error": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", @@ -2671,9 +2582,8 @@ }, "node_modules/@octokit/rest": { "version": "19.0.13", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", - "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/core": "^4.2.1", "@octokit/plugin-paginate-rest": "^6.1.2", @@ -2686,24 +2596,21 @@ }, "node_modules/@octokit/tsconfig": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", - "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@octokit/types": { "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^18.0.0" } }, "node_modules/@opencensus/core": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", - "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "continuation-local-storage": "^3.2.1", "log-driver": "^1.2.7", @@ -2717,28 +2624,24 @@ }, "node_modules/@opencensus/core/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/@opencensus/core/node_modules/uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, + "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/@opencensus/propagation-b3": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", - "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@opencensus/core": "^0.0.8", "uuid": "^3.2.1" @@ -2749,9 +2652,8 @@ }, "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", - "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "continuation-local-storage": "^3.2.1", "log-driver": "^1.2.7", @@ -2765,39 +2667,36 @@ }, "node_modules/@opencensus/propagation-b3/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/@opencensus/propagation-b3/node_modules/uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, + "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/@parcel/bundler-default": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.11.0.tgz", - "integrity": "sha512-ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz", + "integrity": "sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/graph": "3.1.0", - "@parcel/plugin": "2.11.0", - "@parcel/rust": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/graph": "3.2.0", + "@parcel/plugin": "2.12.0", + "@parcel/rust": "2.12.0", + "@parcel/utils": "2.12.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -2805,14 +2704,14 @@ } }, "node_modules/@parcel/cache": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.11.0.tgz", - "integrity": "sha512-RSSkGNjO00lJPyftzaC9eaNVs4jMjPSAm0VJNWQ9JSm2n4A9BzQtTFAt1vhJOzzW1UsQvvBge9DdfkB7a2gIOw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz", + "integrity": "sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==", "dev": true, "dependencies": { - "@parcel/fs": "2.11.0", - "@parcel/logger": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/fs": "2.12.0", + "@parcel/logger": "2.12.0", + "@parcel/utils": "2.12.0", "lmdb": "2.8.5" }, "engines": { @@ -2823,13 +2722,13 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@parcel/codeframe": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.11.0.tgz", - "integrity": "sha512-YHs9g/i5af/sd/JrWAojU9YFbKffcJ3Tx2EJaK0ME8OJsye91UaI/3lxSUYLmJG9e4WLNJtqci8V5FBMz//ZPg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz", + "integrity": "sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==", "dev": true, "dependencies": { "chalk": "^4.1.0" @@ -2843,16 +2742,16 @@ } }, "node_modules/@parcel/compressor-raw": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.11.0.tgz", - "integrity": "sha512-RArhBPRTCfz77soX2IECH09NUd76UBWujXiPRcXGPIHK+C3L1cRuzsNcA39QeSb3thz3b99JcozMJ1nkC2Bsgw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.12.0.tgz", + "integrity": "sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0" + "@parcel/plugin": "2.12.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -2860,72 +2759,72 @@ } }, "node_modules/@parcel/config-default": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.11.0.tgz", - "integrity": "sha512-1e2+qcZkm5/0f4eI20p/DemcYiSxq9d/eyjpTXA7PulJaHbL1wonwUAuy3mvnAvDnLOJmAk/obDVgX1ZfxMGtg==", - "dev": true, - "dependencies": { - "@parcel/bundler-default": "2.11.0", - "@parcel/compressor-raw": "2.11.0", - "@parcel/namer-default": "2.11.0", - "@parcel/optimizer-css": "2.11.0", - "@parcel/optimizer-htmlnano": "2.11.0", - "@parcel/optimizer-image": "2.11.0", - "@parcel/optimizer-svgo": "2.11.0", - "@parcel/optimizer-swc": "2.11.0", - "@parcel/packager-css": "2.11.0", - "@parcel/packager-html": "2.11.0", - "@parcel/packager-js": "2.11.0", - "@parcel/packager-raw": "2.11.0", - "@parcel/packager-svg": "2.11.0", - "@parcel/packager-wasm": "2.11.0", - "@parcel/reporter-dev-server": "2.11.0", - "@parcel/resolver-default": "2.11.0", - "@parcel/runtime-browser-hmr": "2.11.0", - "@parcel/runtime-js": "2.11.0", - "@parcel/runtime-react-refresh": "2.11.0", - "@parcel/runtime-service-worker": "2.11.0", - "@parcel/transformer-babel": "2.11.0", - "@parcel/transformer-css": "2.11.0", - "@parcel/transformer-html": "2.11.0", - "@parcel/transformer-image": "2.11.0", - "@parcel/transformer-js": "2.11.0", - "@parcel/transformer-json": "2.11.0", - "@parcel/transformer-postcss": "2.11.0", - "@parcel/transformer-posthtml": "2.11.0", - "@parcel/transformer-raw": "2.11.0", - "@parcel/transformer-react-refresh-wrap": "2.11.0", - "@parcel/transformer-svg": "2.11.0" + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.12.0.tgz", + "integrity": "sha512-dPNe2n9eEsKRc1soWIY0yToMUPirPIa2QhxcCB3Z5RjpDGIXm0pds+BaiqY6uGLEEzsjhRO0ujd4v2Rmm0vuFg==", + "dev": true, + "dependencies": { + "@parcel/bundler-default": "2.12.0", + "@parcel/compressor-raw": "2.12.0", + "@parcel/namer-default": "2.12.0", + "@parcel/optimizer-css": "2.12.0", + "@parcel/optimizer-htmlnano": "2.12.0", + "@parcel/optimizer-image": "2.12.0", + "@parcel/optimizer-svgo": "2.12.0", + "@parcel/optimizer-swc": "2.12.0", + "@parcel/packager-css": "2.12.0", + "@parcel/packager-html": "2.12.0", + "@parcel/packager-js": "2.12.0", + "@parcel/packager-raw": "2.12.0", + "@parcel/packager-svg": "2.12.0", + "@parcel/packager-wasm": "2.12.0", + "@parcel/reporter-dev-server": "2.12.0", + "@parcel/resolver-default": "2.12.0", + "@parcel/runtime-browser-hmr": "2.12.0", + "@parcel/runtime-js": "2.12.0", + "@parcel/runtime-react-refresh": "2.12.0", + "@parcel/runtime-service-worker": "2.12.0", + "@parcel/transformer-babel": "2.12.0", + "@parcel/transformer-css": "2.12.0", + "@parcel/transformer-html": "2.12.0", + "@parcel/transformer-image": "2.12.0", + "@parcel/transformer-js": "2.12.0", + "@parcel/transformer-json": "2.12.0", + "@parcel/transformer-postcss": "2.12.0", + "@parcel/transformer-posthtml": "2.12.0", + "@parcel/transformer-raw": "2.12.0", + "@parcel/transformer-react-refresh-wrap": "2.12.0", + "@parcel/transformer-svg": "2.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@parcel/core": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.11.0.tgz", - "integrity": "sha512-Npe0S6hVaqWEwRL+HI7gtOYOaoE5bJQZTgUDhsDoppWbau51jOlRYOZTXuvRK/jxXnze4/S1sdM24xBYAQ5qkw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz", + "integrity": "sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==", "dev": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.11.0", - "@parcel/diagnostic": "2.11.0", - "@parcel/events": "2.11.0", - "@parcel/fs": "2.11.0", - "@parcel/graph": "3.1.0", - "@parcel/logger": "2.11.0", - "@parcel/package-manager": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/profiler": "2.11.0", - "@parcel/rust": "2.11.0", + "@parcel/cache": "2.12.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/events": "2.12.0", + "@parcel/fs": "2.12.0", + "@parcel/graph": "3.2.0", + "@parcel/logger": "2.12.0", + "@parcel/package-manager": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/profiler": "2.12.0", + "@parcel/rust": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", - "@parcel/workers": "2.11.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", + "@parcel/workers": "2.12.0", "abortcontroller-polyfill": "^1.1.9", "base-x": "^3.0.8", "browserslist": "^4.6.6", @@ -2946,9 +2845,9 @@ } }, "node_modules/@parcel/diagnostic": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.11.0.tgz", - "integrity": "sha512-4dJmOXVL5YGGQRRsQosQbSRONBcboB71mSwaeaEgz3pPdq9QXVPLACkGe/jTXSqa3OnAHu3g5vQLpE1g5xqBqw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz", + "integrity": "sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==", "dev": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", @@ -2963,9 +2862,9 @@ } }, "node_modules/@parcel/events": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.11.0.tgz", - "integrity": "sha512-K6SOjOrQsz1GdNl2qKBktq7KJ3Q3yxK8WXdmQYo10wG39dr051xtMb38aqieTp4eVhL8Yaq2iJgGkdr11fuBnA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz", + "integrity": "sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -2976,16 +2875,16 @@ } }, "node_modules/@parcel/fs": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.11.0.tgz", - "integrity": "sha512-zWckdnnovdrgdFX4QYuQV4bbKCsh6IYCkmwaB4yp47rhw1MP0lkBINLt4yFPHBxWXOpElCfxjL+z69c9xJQRBQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz", + "integrity": "sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==", "dev": true, "dependencies": { - "@parcel/rust": "2.11.0", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/rust": "2.12.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.11.0" + "@parcel/workers": "2.12.0" }, "engines": { "node": ">= 12.0.0" @@ -2995,13 +2894,13 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@parcel/graph": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.1.0.tgz", - "integrity": "sha512-d1dTW5C7A52HgDtoXlyvlET1ypSlmIxSIZOJ1xp3R9L9hgo3h1u3jHNyaoTe/WPkGVe2QnFxh0h+UibVJhu9vg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz", + "integrity": "sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==", "dev": true, "dependencies": { "nullthrows": "^1.1.1" @@ -3015,13 +2914,13 @@ } }, "node_modules/@parcel/logger": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.11.0.tgz", - "integrity": "sha512-HtMEdCq3LKnvv4T2CIskcqlf2gpBvHMm3pkeUFB/hc/7hW/hE1k6/HA2VOQvc0tBsaMpmEx7PCrfrH56usQSyA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz", + "integrity": "sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/events": "2.11.0" + "@parcel/diagnostic": "2.12.0", + "@parcel/events": "2.12.0" }, "engines": { "node": ">= 12.0.0" @@ -3032,9 +2931,9 @@ } }, "node_modules/@parcel/markdown-ansi": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.11.0.tgz", - "integrity": "sha512-YA60EWbXi6cLOIzcwRC2wijotPauOGQbUi0vSbu0O6/mjQ68kWCMGz0hwZjDRQcPypQVJEIvTgMymLbvumxwhg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz", + "integrity": "sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==", "dev": true, "dependencies": { "chalk": "^4.1.0" @@ -3048,18 +2947,18 @@ } }, "node_modules/@parcel/namer-default": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.11.0.tgz", - "integrity": "sha512-DEwBSKSClg4DA2xAWimYkw9bFi7MFb9TdT7/TYZStMTsfYHPWOyyjGR7aVr3Ra4wNb+XX6g4rR41yp3HD6KO7A==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.12.0.tgz", + "integrity": "sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3067,16 +2966,16 @@ } }, "node_modules/@parcel/node-resolver-core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.2.0.tgz", - "integrity": "sha512-XJRSxCkNbGFWjfmwFdcQZ/qlzWZd35qLtvLz2va8euGL7M5OMEQOv7dsvEhl0R+CC2zcnfFzZwxk78q6ezs8AQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz", + "integrity": "sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==", "dev": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.11.0", - "@parcel/fs": "2.11.0", - "@parcel/rust": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/fs": "2.12.0", + "@parcel/rust": "2.12.0", + "@parcel/utils": "2.12.0", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, @@ -3089,22 +2988,22 @@ } }, "node_modules/@parcel/optimizer-css": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.11.0.tgz", - "integrity": "sha512-bV97PRxshHV3dMwOpLRgcP1QNhrVWh6VVDfm2gmWULpvsjoykcPS6vrCFksY5CpQsSvNHqJBzQjWS8FubUI76w==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.12.0.tgz", + "integrity": "sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.11.0", + "@parcel/utils": "2.12.0", "browserslist": "^4.6.6", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3112,12 +3011,12 @@ } }, "node_modules/@parcel/optimizer-htmlnano": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.11.0.tgz", - "integrity": "sha512-c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.12.0.tgz", + "integrity": "sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", + "@parcel/plugin": "2.12.0", "htmlnano": "^2.0.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", @@ -3125,7 +3024,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3210,43 +3109,43 @@ } }, "node_modules/@parcel/optimizer-image": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.11.0.tgz", - "integrity": "sha512-jCaJww5QFG2GuNzYW8nlSW+Ea+Cv47TRnOPJNquFIajgfTLJ5ddsWbaNal0GQsL8yNiCBKWd1AV4W0RH9tG0Jg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.12.0.tgz", + "integrity": "sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/rust": "2.11.0", - "@parcel/utils": "2.11.0", - "@parcel/workers": "2.11.0" + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/rust": "2.12.0", + "@parcel/utils": "2.12.0", + "@parcel/workers": "2.12.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@parcel/optimizer-svgo": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.11.0.tgz", - "integrity": "sha512-TQpvfBhjV2IsuFHXUolbDS6XWB3DDR2rYTlqlA8LMmuOY7jQd9Bnkl4JnapzWm/bRuzRlzdGjjVCPGL8iShFvA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.12.0.tgz", + "integrity": "sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", "svgo": "^2.4.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3331,21 +3230,21 @@ } }, "node_modules/@parcel/optimizer-swc": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.11.0.tgz", - "integrity": "sha512-ftf42F3JyZxJb6nnLlgNGyNQ273YOla4dFGH/tWC8iTwObHUpWe7cMbCGcrSJBvAlsLkZfLpFNAXFxUgxdKyHQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.12.0.tgz", + "integrity": "sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.11.0", + "@parcel/utils": "2.12.0", "@swc/core": "^1.3.36", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3353,18 +3252,19 @@ } }, "node_modules/@parcel/package-manager": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.11.0.tgz", - "integrity": "sha512-QzdsrUYlAwIzb8by7WJjqYnbR1MoMKWbtE1MXUeYsZbFusV8B6pOH+lwqNJKS/BFtddZMRPYFueZS2N2fwzjig==", - "dev": true, - "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/fs": "2.11.0", - "@parcel/logger": "2.11.0", - "@parcel/node-resolver-core": "3.2.0", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", - "@parcel/workers": "2.11.0", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz", + "integrity": "sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.12.0", + "@parcel/fs": "2.12.0", + "@parcel/logger": "2.12.0", + "@parcel/node-resolver-core": "3.3.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", + "@parcel/workers": "2.12.0", + "@swc/core": "^1.3.36", "semver": "^7.5.2" }, "engines": { @@ -3375,24 +3275,25 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@parcel/packager-css": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.11.0.tgz", - "integrity": "sha512-AyIxsp4eL8c22vp2oO2hSRnr3hSVNkARNZc9DG6uXxCc2Is5tUEX0I4PwxWnAx0EI44l+3zX/o414zT8yV9wwQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.12.0.tgz", + "integrity": "sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.11.0", + "@parcel/utils": "2.12.0", + "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3400,20 +3301,20 @@ } }, "node_modules/@parcel/packager-html": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.11.0.tgz", - "integrity": "sha512-ho5AQ70naTV8IqkKIbKtK+jsXQ5TJfFgtBvmJlyB3YydRMbIc+3g4G0xgIvf15V4uCMw9Md0Sv1W65nQXHPQoA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.12.0.tgz", + "integrity": "sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3421,23 +3322,23 @@ } }, "node_modules/@parcel/packager-js": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.11.0.tgz", - "integrity": "sha512-SxjCsd0xQfg5H73YtVJj9VOpr9s0rwMsSoeykjkatbkEla9NsZajsUkd/bfYf+/0WvEKOrB8oUBo15HkGOgKug==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.12.0.tgz", + "integrity": "sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/rust": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/rust": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", "globals": "^13.2.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3445,16 +3346,16 @@ } }, "node_modules/@parcel/packager-raw": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.11.0.tgz", - "integrity": "sha512-2/0JQ8DZrz7cVNXwD6OYoUUtSSnlr4dsz8ZkpFDKsBJhvMHtC78Sq+1EDixDGOMiUcalSEjNsoHtkpq9uNh+Xw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.12.0.tgz", + "integrity": "sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0" + "@parcel/plugin": "2.12.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3462,19 +3363,19 @@ } }, "node_modules/@parcel/packager-svg": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.11.0.tgz", - "integrity": "sha512-2wQBkzLwcaWFGWz8TP+bgsXgiueWPzrjKsWugWdDfq0FbXh8XVeR/599qnus3RFHZy4cH6L6yq/7zxcljtxK8A==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.12.0.tgz", + "integrity": "sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", "posthtml": "^0.16.4" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3482,16 +3383,16 @@ } }, "node_modules/@parcel/packager-wasm": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.11.0.tgz", - "integrity": "sha512-tTy4EbDXeeiZ0oB7L2FWaHSD1mbmYZP6R5HXqkvc5dECGUKPU5Jz6ek2C5AM+HfQdQLKXPQ/Xw3eJnI/AmctVg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.12.0.tgz", + "integrity": "sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0" + "@parcel/plugin": "2.12.0" }, "engines": { "node": ">=12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3499,12 +3400,12 @@ } }, "node_modules/@parcel/plugin": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.11.0.tgz", - "integrity": "sha512-9npuKBlhnPn7oeUpLJGecceg16GkXbvzbr6MNSZiHhkx3IBeITHQXlZnp2zAjUOFreNsYOfifwEF2S4KsARfBQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz", + "integrity": "sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==", "dev": true, "dependencies": { - "@parcel/types": "2.11.0" + "@parcel/types": "2.12.0" }, "engines": { "node": ">= 12.0.0" @@ -3515,13 +3416,13 @@ } }, "node_modules/@parcel/profiler": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.11.0.tgz", - "integrity": "sha512-s10SS09prOdwnaAcjK8M5zO8o+zPJJW5oOqXPNdf6KH4NGD/ue7iOk2xM8QLw6ulSwxE7NDt++lyfW3AXgCZwg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz", + "integrity": "sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/events": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/events": "2.12.0", "chrome-trace-event": "^1.0.2" }, "engines": { @@ -3533,21 +3434,20 @@ } }, "node_modules/@parcel/reporter-cli": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.11.0.tgz", - "integrity": "sha512-hY0iO0f+LifgJHDUIjGQJnxLFSkk2jlbfy+kIaft5oI3/IM+UljecfGO+14XH8mYlqRXXPsT09TJe8ZKQzp4ZQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.12.0.tgz", + "integrity": "sha512-TqKsH4GVOLPSCanZ6tcTPj+rdVHERnt5y4bwTM82cajM21bCX1Ruwp8xOKU+03091oV2pv5ieB18pJyRF7IpIw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", "chalk": "^4.1.0", - "cli-progress": "^3.12.0", "term-size": "^2.2.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3555,17 +3455,17 @@ } }, "node_modules/@parcel/reporter-dev-server": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.11.0.tgz", - "integrity": "sha512-T4ue1+oLFNdcd9maw8QWQuxzOS2kX2jOrSvYKwYd9oGnqiAr1rpiHYYKJhHng+PF5ybwWkj8dUJfGh2NoQysJA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.12.0.tgz", + "integrity": "sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0" + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3573,19 +3473,19 @@ } }, "node_modules/@parcel/reporter-tracer": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.11.0.tgz", - "integrity": "sha512-33q4ftO26OPWHkUpEm0bzzSjW2kHEh6q/JFePwf8W6APTQVruj4mV46+Fh6rxX42ixs92K/QoiE0gYgWZQVDHA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.12.0.tgz", + "integrity": "sha512-g8rlu9GxB8Ut/F8WGx4zidIPQ4pcYFjU9bZO+fyRIPrSUFH2bKijCnbZcr4ntqzDGx74hwD6cCG4DBoleq2UlQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", "chrome-trace-event": "^1.0.3", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3593,17 +3493,17 @@ } }, "node_modules/@parcel/resolver-default": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.11.0.tgz", - "integrity": "sha512-suZNN2lE5W48LPTwAbG7gnj1IeubkCVEm0XspWXcXUtCzglimNJ8PVVBGx171o5CqDpdbGF3AqHjG9N3uOwXag==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.12.0.tgz", + "integrity": "sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==", "dev": true, "dependencies": { - "@parcel/node-resolver-core": "3.2.0", - "@parcel/plugin": "2.11.0" + "@parcel/node-resolver-core": "3.3.0", + "@parcel/plugin": "2.12.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3611,17 +3511,17 @@ } }, "node_modules/@parcel/runtime-browser-hmr": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.11.0.tgz", - "integrity": "sha512-uVwNBtoLMrlPHLvRS05BVhLseduMOpZT36yiIjS0YSBJcC6/otI9AY7ZiDPYmrB5xTqM0R+D554JhPaJHCuocw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.12.0.tgz", + "integrity": "sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0" + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3629,19 +3529,19 @@ } }, "node_modules/@parcel/runtime-js": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.11.0.tgz", - "integrity": "sha512-fH3nJoexINz7s4cDzp0Vjsx0k1pMYSa5ch38LbbNqCKTermy0pS0zZuvgfLfHFFP+AMRpFQenrF7h7N3bgDmHw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.12.0.tgz", + "integrity": "sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3649,19 +3549,19 @@ } }, "node_modules/@parcel/runtime-react-refresh": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.11.0.tgz", - "integrity": "sha512-Kfnc7gLjhoephLMnjABrkIkzVfzPrpJlxiJFIleY2Fm57YhmCfKsEYxm3lHOutNaYl1VArW0LKClPH/VHG9vfQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.12.0.tgz", + "integrity": "sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", "react-error-overlay": "6.0.9", "react-refresh": "^0.9.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3669,18 +3569,18 @@ } }, "node_modules/@parcel/runtime-service-worker": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.11.0.tgz", - "integrity": "sha512-c8MaSpSbXIKuN5sA/g4UsrsH1BtBZ6Em+eSxt9AYbdPtWrW+qwCioNVZj9lugBRUzDMjVfJz0yK59nS42hABvw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.12.0.tgz", + "integrity": "sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3688,9 +3588,9 @@ } }, "node_modules/@parcel/rust": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.11.0.tgz", - "integrity": "sha512-UkLWdHOD8Md2YmJDPsqd3yIs9chhdl/ATfV/B/xdPKGmqtNouYpDCRlq+WxMt3mLoYgHEg9UwrWLTebo2rr2iQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz", + "integrity": "sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -3713,15 +3613,15 @@ } }, "node_modules/@parcel/transformer-babel": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.11.0.tgz", - "integrity": "sha512-WKGblnp7r426VG+cpeQzc6dj/30EoUaYwyl4OEaigQSJizyuPWTBWTz6FUw+ih1/sg37h+D1BIh9C2FsVzpzbw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.12.0.tgz", + "integrity": "sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.11.0", + "@parcel/utils": "2.12.0", "browserslist": "^4.6.6", "json5": "^2.2.0", "nullthrows": "^1.1.1", @@ -3729,7 +3629,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3737,22 +3637,22 @@ } }, "node_modules/@parcel/transformer-css": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.11.0.tgz", - "integrity": "sha512-nFmBulF/ErNoafO87JbVrBavjBMNwE/kahbCRVxc2Mvlphz4F4lBW4eDRS5l4xBqFJaNkHr9R55ehLBBilF4Jw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.12.0.tgz", + "integrity": "sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.11.0", + "@parcel/utils": "2.12.0", "browserslist": "^4.6.6", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3760,14 +3660,14 @@ } }, "node_modules/@parcel/transformer-html": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.11.0.tgz", - "integrity": "sha512-90vp7mbvvfqPr9XIINpMcELtywj56f1bxfOkLQgWU1bm22H0FT3i5dqdac++2My0IGDvMwhAEjQfbn4pA579NQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.12.0.tgz", + "integrity": "sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/rust": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/rust": "2.12.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", @@ -3777,7 +3677,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3785,36 +3685,36 @@ } }, "node_modules/@parcel/transformer-image": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.11.0.tgz", - "integrity": "sha512-QiZj18UHf3lVFsi65Vz8YbS3ydx9Pe9x8ktMxE1oh9qpznN8lD7gE/Z9DxuTZB84EZ9pKytKwcv5WGXP25xIFg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.12.0.tgz", + "integrity": "sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", - "@parcel/workers": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", + "@parcel/workers": "2.12.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@parcel/transformer-js": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.11.0.tgz", - "integrity": "sha512-G1sv0n8/fJqHqwUs0iVnVdmRY0Kh8kWaDkuWcU/GJBHMGhUnLXKdNwxX2Av9UdBL14bU1nTINfr9qOfnQotXWg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.12.0.tgz", + "integrity": "sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/rust": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/rust": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.11.0", - "@parcel/workers": "2.11.0", + "@parcel/utils": "2.12.0", + "@parcel/workers": "2.12.0", "@swc/helpers": "^0.5.0", "browserslist": "^4.6.6", "nullthrows": "^1.1.1", @@ -3823,14 +3723,14 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@parcel/transformer-js/node_modules/regenerator-runtime": { @@ -3840,17 +3740,17 @@ "dev": true }, "node_modules/@parcel/transformer-json": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.11.0.tgz", - "integrity": "sha512-Wt/wgSBaRWmPL4gpvjkV0bCBRxFOtsuLNzsm8vYA5poxTFhuLY+AoyQ8S2+xXU4VxwBfdppfIr2Ny3SwGs8xbQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.12.0.tgz", + "integrity": "sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", + "@parcel/plugin": "2.12.0", "json5": "^2.2.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3858,15 +3758,15 @@ } }, "node_modules/@parcel/transformer-postcss": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.11.0.tgz", - "integrity": "sha512-Ugy8XHBaUptGotsvwzq7gPCvkCopTIqqZ0JZ40Jmy9slGms8wnx06pNHA1Be/RcJwkJ2TbSu+7ncZdgmP5x5GQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.12.0.tgz", + "integrity": "sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/rust": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/rust": "2.12.0", + "@parcel/utils": "2.12.0", "clone": "^2.1.1", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", @@ -3874,7 +3774,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3882,13 +3782,13 @@ } }, "node_modules/@parcel/transformer-posthtml": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.11.0.tgz", - "integrity": "sha512-dMK4p1RRAoIJEjK/Wz9GOLqwHqdD/VQDhMPk+6sUKp5zf2MhSohUstpp5gKsSZivCM3PS2f8k9rgroacJ/ReuA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.12.0.tgz", + "integrity": "sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", @@ -3897,7 +3797,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3905,16 +3805,16 @@ } }, "node_modules/@parcel/transformer-raw": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.11.0.tgz", - "integrity": "sha512-2ltp3TgS+cxEqSM1vk5gDtJrYx4KMuRRtbSgSvkdldyOgPhflnLU3/HRz72hXSNGqYOV0/JN0+ocsfPnqR00ug==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.12.0.tgz", + "integrity": "sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0" + "@parcel/plugin": "2.12.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3922,18 +3822,18 @@ } }, "node_modules/@parcel/transformer-react-refresh-wrap": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.11.0.tgz", - "integrity": "sha512-6pY0CdIgIpXC6XpsDWizf+zLgiuEsJ106HjWLwF7/R72BrvDhLPZ6jRu4UTrnd6bM89KahPw9fZZzjKoA5Efcw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.12.0.tgz", + "integrity": "sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/plugin": "2.12.0", + "@parcel/utils": "2.12.0", "react-refresh": "^0.9.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3941,14 +3841,14 @@ } }, "node_modules/@parcel/transformer-svg": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.11.0.tgz", - "integrity": "sha512-GrTNi04OoQSXsyrB7FqQPeYREscEXFhIBPkyQ0q7WDG/yYynWljiA0kwITCtMjPfv2EDVks292dvM3EcnERRIA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.12.0.tgz", + "integrity": "sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/plugin": "2.11.0", - "@parcel/rust": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/plugin": "2.12.0", + "@parcel/rust": "2.12.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", @@ -3957,7 +3857,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.11.0" + "parcel": "^2.12.0" }, "funding": { "type": "opencollective", @@ -3965,31 +3865,31 @@ } }, "node_modules/@parcel/types": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.11.0.tgz", - "integrity": "sha512-lN5XlfV9b1s2rli8q1LqsLtu+D4ZwNI3sKmNcL/3tohSfQcF2EgF+MaiANGo9VzXOzoWFHt4dqWjO4OcdyC5tg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz", + "integrity": "sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==", "dev": true, "dependencies": { - "@parcel/cache": "2.11.0", - "@parcel/diagnostic": "2.11.0", - "@parcel/fs": "2.11.0", - "@parcel/package-manager": "2.11.0", + "@parcel/cache": "2.12.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/fs": "2.12.0", + "@parcel/package-manager": "2.12.0", "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.11.0", + "@parcel/workers": "2.12.0", "utility-types": "^3.10.0" } }, "node_modules/@parcel/utils": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.11.0.tgz", - "integrity": "sha512-AcL70cXlIyE7eQdvjQbYxegN5l+skqvlJllxTWg4YkIZe9p8Gmv74jLAeLWh5F+IGl5WRn0TSy9JhNJjIMQGwQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz", + "integrity": "sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==", "dev": true, "dependencies": { - "@parcel/codeframe": "2.11.0", - "@parcel/diagnostic": "2.11.0", - "@parcel/logger": "2.11.0", - "@parcel/markdown-ansi": "2.11.0", - "@parcel/rust": "2.11.0", + "@parcel/codeframe": "2.12.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/logger": "2.12.0", + "@parcel/markdown-ansi": "2.12.0", + "@parcel/rust": "2.12.0", "@parcel/source-map": "^2.1.1", "chalk": "^4.1.0", "nullthrows": "^1.1.1" @@ -4003,11 +3903,10 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.0.tgz", - "integrity": "sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", "dev": true, - "hasInstallScript": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -4022,24 +3921,24 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.4.0", - "@parcel/watcher-darwin-arm64": "2.4.0", - "@parcel/watcher-darwin-x64": "2.4.0", - "@parcel/watcher-freebsd-x64": "2.4.0", - "@parcel/watcher-linux-arm-glibc": "2.4.0", - "@parcel/watcher-linux-arm64-glibc": "2.4.0", - "@parcel/watcher-linux-arm64-musl": "2.4.0", - "@parcel/watcher-linux-x64-glibc": "2.4.0", - "@parcel/watcher-linux-x64-musl": "2.4.0", - "@parcel/watcher-win32-arm64": "2.4.0", - "@parcel/watcher-win32-ia32": "2.4.0", - "@parcel/watcher-win32-x64": "2.4.0" + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz", - "integrity": "sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", "cpu": [ "arm64" ], @@ -4057,9 +3956,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz", - "integrity": "sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", "cpu": [ "arm64" ], @@ -4077,9 +3976,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz", - "integrity": "sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", "cpu": [ "x64" ], @@ -4097,9 +3996,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz", - "integrity": "sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", "cpu": [ "x64" ], @@ -4117,9 +4016,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz", - "integrity": "sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", "cpu": [ "arm" ], @@ -4137,9 +4036,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz", - "integrity": "sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", "cpu": [ "arm64" ], @@ -4157,9 +4056,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz", - "integrity": "sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", "cpu": [ "arm64" ], @@ -4177,9 +4076,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz", - "integrity": "sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", "cpu": [ "x64" ], @@ -4197,9 +4096,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz", - "integrity": "sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", "cpu": [ "x64" ], @@ -4217,9 +4116,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz", - "integrity": "sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", "cpu": [ "arm64" ], @@ -4237,9 +4136,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz", - "integrity": "sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", "cpu": [ "ia32" ], @@ -4257,9 +4156,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz", - "integrity": "sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", "cpu": [ "x64" ], @@ -4286,16 +4185,16 @@ } }, "node_modules/@parcel/workers": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.11.0.tgz", - "integrity": "sha512-wjybqdSy6Nk0N9iBGsFcp7739W2zvx0WGfVxPVShqhz46pIkPOiFF/iSn+kFu5EmMKTRWeUif42+a6rRZ7pCnQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz", + "integrity": "sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.11.0", - "@parcel/logger": "2.11.0", - "@parcel/profiler": "2.11.0", - "@parcel/types": "2.11.0", - "@parcel/utils": "2.11.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/logger": "2.12.0", + "@parcel/profiler": "2.12.0", + "@parcel/types": "2.12.0", + "@parcel/utils": "2.12.0", "nullthrows": "^1.1.1" }, "engines": { @@ -4306,14 +4205,13 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.11.0" + "@parcel/core": "^2.12.0" } }, "node_modules/@peculiar/asn1-cms": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.3.8.tgz", - "integrity": "sha512-Wtk9R7yQxGaIaawHorWKP2OOOm/RZzamOmSWwaqGphIuU6TcKYih0slL6asZlSSZtVoYTrBfrddSOD/jTu9vuQ==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", @@ -4324,9 +4222,8 @@ }, "node_modules/@peculiar/asn1-csr": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.3.8.tgz", - "integrity": "sha512-ZmAaP2hfzgIGdMLcot8gHTykzoI+X/S53x1xoGbTmratETIaAbSWMiPGvZmXRA0SNEIydpMkzYtq4fQBxN1u1w==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", @@ -4336,9 +4233,8 @@ }, "node_modules/@peculiar/asn1-ecc": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.8.tgz", - "integrity": "sha512-Ah/Q15y3A/CtxbPibiLM/LKcMbnLTdUdLHUgdpB5f60sSvGkXzxJCu5ezGTFHogZXWNX3KSmYqilCrfdmBc6pQ==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", @@ -4348,9 +4244,8 @@ }, "node_modules/@peculiar/asn1-pfx": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.3.8.tgz", - "integrity": "sha512-XhdnCVznMmSmgy68B9pVxiZ1XkKoE1BjO4Hv+eUGiY1pM14msLsFZ3N7K46SoITIVZLq92kKkXpGiTfRjlNLyg==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-cms": "^2.3.8", "@peculiar/asn1-pkcs8": "^2.3.8", @@ -4362,9 +4257,8 @@ }, "node_modules/@peculiar/asn1-pkcs8": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.3.8.tgz", - "integrity": "sha512-rL8k2x59v8lZiwLRqdMMmOJ30GHt6yuHISFIuuWivWjAJjnxzZBVzMTQ72sknX5MeTSSvGwPmEFk2/N8+UztFQ==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", @@ -4374,9 +4268,8 @@ }, "node_modules/@peculiar/asn1-pkcs9": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.3.8.tgz", - "integrity": "sha512-+nONq5tcK7vm3qdY7ZKoSQGQjhJYMJbwJGbXLFOhmqsFIxEWyQPHyV99+wshOjpOjg0wUSSkEEzX2hx5P6EKeQ==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-cms": "^2.3.8", "@peculiar/asn1-pfx": "^2.3.8", @@ -4390,9 +4283,8 @@ }, "node_modules/@peculiar/asn1-rsa": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.8.tgz", - "integrity": "sha512-ES/RVEHu8VMYXgrg3gjb1m/XG0KJWnV4qyZZ7mAg7rrF3VTmRbLxO8mk+uy0Hme7geSMebp+Wvi2U6RLLEs12Q==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", @@ -4402,8 +4294,7 @@ }, "node_modules/@peculiar/asn1-schema": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz", - "integrity": "sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==", + "license": "MIT", "dependencies": { "asn1js": "^3.0.5", "pvtsutils": "^1.3.5", @@ -4412,9 +4303,8 @@ }, "node_modules/@peculiar/asn1-x509": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.8.tgz", - "integrity": "sha512-voKxGfDU1c6r9mKiN5ZUsZWh3Dy1BABvTM3cimf0tztNwyMJPhiXY94eRTgsMQe6ViLfT6EoXxkWVzcm3mFAFw==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "asn1js": "^3.0.5", @@ -4425,9 +4315,8 @@ }, "node_modules/@peculiar/asn1-x509-attr": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.3.8.tgz", - "integrity": "sha512-4Z8mSN95MOuX04Aku9BUyMdsMKtVQUqWnr627IheiWnwFoheUhX3R4Y2zh23M7m80r4/WG8MOAckRKc77IRv6g==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", @@ -4437,8 +4326,7 @@ }, "node_modules/@peculiar/json-schema": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -4448,8 +4336,7 @@ }, "node_modules/@peculiar/webcrypto": { "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.5.tgz", - "integrity": "sha512-oDk93QCDGdxFRM8382Zdminzs44dg3M2+E5Np+JWkpqLDyJC9DviMh8F8mEJkYuUcUOGA5jHO5AJJ10MFWdbZw==", + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/json-schema": "^1.1.12", @@ -4463,9 +4350,8 @@ }, "node_modules/@peculiar/x509": { "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.9.7.tgz", - "integrity": "sha512-O+fR1ge6U8upO52q5b3d4tF4SxUdK4IQ0y++Z/Wlqq+ySZUf+deHnbMlDB1YZsIQ/DXU0i5M7Y1DyF5kwpXouQ==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-cms": "^2.3.8", "@peculiar/asn1-csr": "^2.3.8", @@ -4482,9 +4368,8 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -4492,9 +4377,8 @@ }, "node_modules/@pm2/agent": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.3.tgz", - "integrity": "sha512-xkqqCoTf5VsciMqN0vb9jthW7olVAi4KRFNddCc7ZkeJZ3i8QwZANr4NSH2H5DvseRFHq7MiPspRY/EWAFWWTg==", "dev": true, + "license": "AGPL-3.0", "dependencies": { "async": "~3.2.0", "chalk": "~3.0.0", @@ -4513,9 +4397,8 @@ }, "node_modules/@pm2/agent/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4526,21 +4409,18 @@ }, "node_modules/@pm2/agent/node_modules/dayjs": { "version": "1.8.36", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", - "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@pm2/agent/node_modules/eventemitter2": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@pm2/agent/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4550,9 +4430,8 @@ }, "node_modules/@pm2/agent/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4565,9 +4444,8 @@ }, "node_modules/@pm2/agent/node_modules/ws": { "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -4586,15 +4464,13 @@ }, "node_modules/@pm2/agent/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@pm2/io": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.2.tgz", - "integrity": "sha512-XAvrNoQPKOyO/jJyCu8jPhLzlyp35MEf7w/carHXmWKddPzeNOFSEpSEqMzPDawsvpxbE+i918cNN+MwgVsStA==", "dev": true, + "license": "Apache-2", "dependencies": { "@opencensus/core": "0.0.9", "@opencensus/propagation-b3": "0.0.8", @@ -4613,18 +4489,16 @@ }, "node_modules/@pm2/io/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/@pm2/io/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4634,9 +4508,8 @@ }, "node_modules/@pm2/io/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4649,21 +4522,18 @@ }, "node_modules/@pm2/io/node_modules/tslib": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@pm2/io/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@pm2/js-api": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.8.0.tgz", - "integrity": "sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==", "dev": true, + "license": "Apache-2", "dependencies": { "async": "^2.6.3", "debug": "~4.3.1", @@ -4677,18 +4547,16 @@ }, "node_modules/@pm2/js-api/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/@pm2/js-api/node_modules/ws": { "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -4716,18 +4584,16 @@ }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.22.0" } }, "node_modules/@pnpm/network.ca-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -4737,15 +4603,13 @@ }, "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@pnpm/npm-conf": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -4783,12 +4647,11 @@ }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", - "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -4860,13 +4723,12 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", - "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz", + "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -4926,15 +4788,13 @@ }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -4944,9 +4804,8 @@ }, "node_modules/@sindresorhus/merge-streams": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.2.1.tgz", - "integrity": "sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -4956,27 +4815,24 @@ }, "node_modules/@sinonjs/commons": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@size-limit/esbuild": { "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-11.0.2.tgz", - "integrity": "sha512-67p+y+wkMBJJegLZUp1X3v1YEvgGSbbAukFbHtxJ1c/DTj/ApiHvtgMzvA5ij+A5UOay+jSU4bXetpNJlUK3Ow==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.19.11", "nanoid": "^5.0.4" @@ -4990,9 +4846,8 @@ }, "node_modules/@size-limit/preset-small-lib": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-9.0.0.tgz", - "integrity": "sha512-nkbZxn12pTpABYVyX5nsjQuLFpn8wDmd2XKoq/MiqKOc3ocz5BBwXTruqTL5ZKDW1OxEAWZMQlxf2kg3kY3X1Q==", "dev": true, + "license": "MIT", "dependencies": { "@size-limit/esbuild": "9.0.0", "@size-limit/file": "9.0.0", @@ -5004,9 +4859,8 @@ }, "node_modules/@size-limit/preset-small-lib/node_modules/@size-limit/esbuild": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-9.0.0.tgz", - "integrity": "sha512-y3NY0inaFeLqV6SRXNVILhawQdQcODxF30qft6OalsrqtQtBjt++6ZeahYhUbrVexUEWRh6c7yPCe8RvHn8hlA==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.19.2", "nanoid": "^3.3.6" @@ -5020,9 +4874,8 @@ }, "node_modules/@size-limit/preset-small-lib/node_modules/@size-limit/file": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-9.0.0.tgz", - "integrity": "sha512-oM2UaH2FRq4q22k+R+P6xCpzET10T94LFdSjb9svVu/vOD7NaB9LGcG6se8TW1BExXiyXO4GEhLsBt3uMKM3qA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "7.5.4" }, @@ -5035,18 +4888,16 @@ }, "node_modules/@size-limit/preset-small-lib/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/@size-limit/preset-small-lib/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5056,8 +4907,6 @@ }, "node_modules/@size-limit/preset-small-lib/node_modules/nanoid": { "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -5065,6 +4914,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -5074,9 +4924,8 @@ }, "node_modules/@size-limit/preset-small-lib/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5089,9 +4938,8 @@ }, "node_modules/@size-limit/preset-small-lib/node_modules/size-limit": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-9.0.0.tgz", - "integrity": "sha512-DrA7o2DeRN3s+vwCA9nn7Ck9Y4pn9t0GNUwQRpKqBtBmNkl6LA2s/NlNCdtKHrEkRTeYA1ZQ65mnYveo9rUqgA==", "dev": true, + "license": "MIT", "dependencies": { "bytes-iec": "^3.1.1", "chokidar": "^3.5.3", @@ -5109,16 +4957,14 @@ }, "node_modules/@size-limit/preset-small-lib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@swc/core": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.1.tgz", - "integrity": "sha512-3y+Y8js+e7BbM16iND+6Rcs3jdiL28q3iVtYsCviYSSpP2uUVKkp5sJnCY4pg8AaVvyN7CGQHO7gLEZQ5ByozQ==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.2", "@swc/types": "^0.1.5" @@ -5153,12 +4999,11 @@ }, "node_modules/@swc/core-darwin-arm64": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.1.tgz", - "integrity": "sha512-ePyfx0348UbR4DOAW24TedeJbafnzha8liXFGuQ4bdXtEVXhLfPngprrxKrAddCuv42F9aTxydlF6+adD3FBhA==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -5168,212 +5013,52 @@ "node": ">=10" } }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.1.tgz", - "integrity": "sha512-eLf4JSe6VkCMdDowjM8XNC5rO+BrgfbluEzAVtKR8L2HacNYukieumN7EzpYCi0uF1BYwu1ku6tLyG2r0VcGxA==", - "cpu": [ - "x64" - ], + "node_modules/@swc/counter": { + "version": "0.1.3", "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=10" - } + "license": "Apache-2.0" }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.1.tgz", - "integrity": "sha512-K8VtTLWMw+rkN/jDC9o/Q9SMmzdiHwYo2CfgkwVT29NsGccwmNhCQx6XoYiPKyKGIFKt4tdQnJHKUFzxUqQVtQ==", - "cpu": [ - "arm" - ], + "node_modules/@swc/helpers": { + "version": "0.5.6", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.1.tgz", - "integrity": "sha512-0e8p4g0Bfkt8lkiWgcdiENH3RzkcqKtpRXIVNGOmVc0OBkvc2tpm2WTx/eoCnes2HpTT4CTtR3Zljj4knQ4Fvw==", - "cpu": [ - "arm64" - ], + "node_modules/@swc/types": { + "version": "0.1.5", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } + "license": "Apache-2.0" }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.1.tgz", - "integrity": "sha512-b/vWGQo2n7lZVUnSQ7NBq3Qrj85GrAPPiRbpqaIGwOytiFSk8VULFihbEUwDe0rXgY4LDm8z8wkgADZcLnmdUA==", - "cpu": [ - "arm64" - ], + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=14.16" } }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.1.tgz", - "integrity": "sha512-AFMQlvkKEdNi1Vk2GFTxxJzbICttBsOQaXa98kFTeWTnFFIyiIj2w7Sk8XRTEJ/AjF8ia8JPKb1zddBWr9+bEQ==", - "cpu": [ - "x64" - ], + "node_modules/@tootallnate/once": { + "version": "2.0.0", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 10" } }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.1.tgz", - "integrity": "sha512-QX2MxIECX1gfvUVZY+jk528/oFkS9MAl76e3ZRvG2KC/aKlCQL0KSzcTSm13mOxkDKS30EaGRDRQWNukGpMeRg==", - "cpu": [ - "x64" - ], + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.1.tgz", - "integrity": "sha512-OklkJYXXI/tntD2zaY8i3iZldpyDw5q+NAP3k9OlQ7wXXf37djRsHLV0NW4+ZNHBjE9xp2RsXJ0jlOJhfgGoFA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.1.tgz", - "integrity": "sha512-MBuc3/QfKX9FnLOU7iGN+6yHRTQaPQ9WskiC8s8JFiKQ+7I2p25tay2RplR9dIEEGgVAu6L7auv96LbNTh+FaA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.1.tgz", - "integrity": "sha512-lu4h4wFBb/bOK6N2MuZwg7TrEpwYXgpQf5R7ObNSXL65BwZ9BG8XRzD+dLJmALu8l5N08rP/TrpoKRoGT4WSxw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true - }, - "node_modules/@swc/helpers": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.6.tgz", - "integrity": "sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==", - "dev": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@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, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true + "license": "MIT" }, "node_modules/@trust/keyto": { "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@trust/keyto/-/keyto-0.3.7.tgz", - "integrity": "sha512-t5kWWCTkPgg24JWVuCTPMx7l13F7YHdxBeJkT1vmoHjROgiOIEAN8eeY+iRmP1Hwsx+S7U55HyuqSsECr08a8A==", "dev": true, + "license": "MIT", "dependencies": { "asn1.js": "^5.0.1", "base64url": "^3.0.1", @@ -5382,9 +5067,8 @@ }, "node_modules/@trust/webcrypto": { "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@trust/webcrypto/-/webcrypto-0.9.2.tgz", - "integrity": "sha512-5iMAVcGYKhqLJGjefB1nzuQSqUJTru0nG4CytpBT/GGp1Piz/MVnj2jORdYf4JBYzggCIa8WZUr2rchP2Ngn/w==", "dev": true, + "license": "MIT", "dependencies": { "@trust/keyto": "^0.3.4", "base64url": "^3.0.0", @@ -5395,10 +5079,8 @@ }, "node_modules/@trust/webcrypto/node_modules/text-encoding": { "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==", - "deprecated": "no longer maintained", - "dev": true + "dev": true, + "license": "Unlicense" }, "node_modules/@trysound/sax": { "version": "0.2.0", @@ -5411,39 +5093,33 @@ }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node17": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node17/-/node17-1.0.3.tgz", - "integrity": "sha512-hgCBRFxS8grt7H1zfUeRdNvGzL3ZETTszOHJ5o5Hr/XBpqrWcMb0Ufec9kJK3zCL2DJ4bflH3VxHF/cESEYF+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -5454,18 +5130,16 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -5473,63 +5147,55 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/base64-js": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/base64-js/-/base64-js-1.3.2.tgz", - "integrity": "sha512-Q2Xn2/vQHRGLRXhQ5+BSLwhHkR3JVflxVKywH0Q6fVoAiUE8fFYL2pE5/l2ZiOiBDfA8qUqRnSxln4G/NFz1Sg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/bs58check": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-xpXaQlOIY1KoXlA/ytHGHpEIU87PJt+g9SH7nC6HdCgaBwT2IEZIwBMHbjuX6BpnfbiUMlmwqurdLDwXpcdmSA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/chai": { "version": "4.3.11", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz", - "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/chai-subset": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", - "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "*" } }, "node_modules/@types/debug": { "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/estree": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/fs-extra": { "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", - "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/jsonfile": "*", "@types/node": "*" @@ -5537,72 +5203,63 @@ }, "node_modules/@types/graceful-fs": { "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/hast": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "*" } }, "node_modules/@types/hdkey": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/hdkey/-/hdkey-2.0.3.tgz", - "integrity": "sha512-U5W3b+f3KqCC7tge4WjV5MDzzYTcwbnufyL7RwEmxH2EyxtbfaQVlS8z6PZDp8XET304EEVhLWG76rF5ygUKHQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/isomorphic-fetch": { "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.36.tgz", - "integrity": "sha512-ulw4d+vW1HKn4oErSmNN2HYEcHGq0N1C5exlrMM0CRqX1UUpFhGb5lwiom5j9KN3LBJJDLRmYIZz1ghm7FIzZw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -5610,9 +5267,8 @@ }, "node_modules/@types/jsdom": { "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", @@ -5621,129 +5277,110 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/jsonfile": { "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", - "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/katex": { "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", - "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mdast": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "*" } }, "node_modules/@types/mime": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/minimist": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/ms": { "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "20.11.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", - "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/prismjs": { "version": "1.26.3", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", - "integrity": "sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", - "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/sizzle": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/text-encoding": { "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/text-encoding/-/text-encoding-0.0.36.tgz", - "integrity": "sha512-LfATA7bH+MtAPlOshYgQ1M3n2r0TSB6Ns5ESvKYlVugkKErQg5oFbR2qO7XrKtNsrtzedDvTeqQfyTjdPJH7jw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/tough-cookie": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/unist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/yargs": { "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/yauzl": { "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@types/node": "*" @@ -5751,9 +5388,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.21.0", @@ -5786,9 +5422,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", @@ -5814,9 +5449,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -5827,9 +5461,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", @@ -5855,18 +5488,16 @@ }, "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@typescript-eslint/parser/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5879,9 +5510,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0" @@ -5896,9 +5526,8 @@ }, "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -5909,9 +5538,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/utils": "6.21.0", @@ -5936,9 +5564,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -5949,9 +5576,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", @@ -5977,18 +5603,16 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6001,9 +5625,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6014,9 +5637,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", @@ -6041,9 +5663,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -6058,9 +5679,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -6083,9 +5703,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -6096,9 +5715,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", @@ -6124,18 +5742,16 @@ }, "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@typescript-eslint/utils/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6148,9 +5764,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" @@ -6165,9 +5780,8 @@ }, "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -6178,21 +5792,18 @@ }, "node_modules/@uiw/github-corners": { "version": "1.5.16", - "resolved": "https://registry.npmjs.org/@uiw/github-corners/-/github-corners-1.5.16.tgz", - "integrity": "sha512-XelD5IePslpUBvT0S9jsIGKnnxSkqs6peZH2+rh42x+N1cQ0eQMbTfeWPbJtl4TiZEawywZclXlt55+Ur4CFVA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@vitest/expect": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", - "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "0.34.6", "@vitest/utils": "0.34.6", @@ -6204,9 +5815,8 @@ }, "node_modules/@vitest/runner": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", - "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/utils": "0.34.6", "p-limit": "^4.0.0", @@ -6218,9 +5828,8 @@ }, "node_modules/@vitest/runner/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -6233,9 +5842,8 @@ }, "node_modules/@vitest/runner/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -6245,9 +5853,8 @@ }, "node_modules/@vitest/snapshot": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", - "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", "dev": true, + "license": "MIT", "dependencies": { "magic-string": "^0.30.1", "pathe": "^1.1.1", @@ -6259,9 +5866,8 @@ }, "node_modules/@vitest/spy": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", - "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", "dev": true, + "license": "MIT", "dependencies": { "tinyspy": "^2.1.1" }, @@ -6271,9 +5877,8 @@ }, "node_modules/@vitest/utils": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", - "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", "dev": true, + "license": "MIT", "dependencies": { "diff-sequences": "^29.4.3", "loupe": "^2.3.6", @@ -6285,18 +5890,16 @@ }, "node_modules/@wcj/markdown-style": { "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@wcj/markdown-style/-/markdown-style-1.0.26.tgz", - "integrity": "sha512-054HEKgomNDxqsPfKsz0Q8vw0XqFnTkp6F9jitfi6CnQwVwOmQepPUjx1tqs7766BYgj3Ou77j5IwbClIopyPQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://jaywcjlove.github.io/#/sponsor" } }, "node_modules/@wcj/markdown-to-html": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@wcj/markdown-to-html/-/markdown-to-html-3.0.2.tgz", - "integrity": "sha512-nQjbZYTZYwo8JyUw4YIaHW96ezGU9EvVSAl9H4XAyoIfbCG8hKIUHhe0sBq7ZG+Y9/7Z7CCMSLNJMXI/U32YtQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -6320,9 +5923,8 @@ }, "node_modules/@web-std/blob": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@web-std/blob/-/blob-3.0.5.tgz", - "integrity": "sha512-Lm03qr0eT3PoLBuhkvFBLf0EFkAsNz/G/AYCzpOdi483aFaVX86b4iQs0OHhzHJfN5C15q17UtDbyABjlzM96A==", "dev": true, + "license": "MIT", "dependencies": { "@web-std/stream": "1.0.0", "web-encoding": "1.1.5" @@ -6330,35 +5932,30 @@ }, "node_modules/@web-std/file": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@web-std/file/-/file-3.0.3.tgz", - "integrity": "sha512-X7YYyvEERBbaDfJeC9lBKC5Q5lIEWYCP1SNftJNwNH/VbFhdHm+3neKOQP+kWEYJmosbDFq+NEUG7+XIvet/Jw==", "dev": true, + "license": "MIT", "dependencies": { "@web-std/blob": "^3.0.3" } }, "node_modules/@web-std/stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@web-std/stream/-/stream-1.0.0.tgz", - "integrity": "sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ==", "dev": true, + "license": "MIT", "dependencies": { "web-streams-polyfill": "^3.1.1" } }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "dev": true, + "license": "(Unlicense OR Apache-2.0)", "optional": true }, "node_modules/abab": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/abortcontroller-polyfill": { "version": "1.7.5", @@ -6368,9 +5965,8 @@ }, "node_modules/acorn": { "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6380,9 +5976,8 @@ }, "node_modules/acorn-globals": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" @@ -6390,27 +5985,24 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/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, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -6420,9 +6012,8 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -6433,9 +6024,8 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6447,48 +6037,39 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/amcl-js": { - "resolved": "packages/bls-verify/src/vendor/amcl-js", - "link": true - }, "node_modules/amp": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/amp-message": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==", "dev": true, + "license": "MIT", "dependencies": { "amp": "0.3.1" } }, "node_modules/ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -6501,9 +6082,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6513,24 +6093,21 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-sequence-parser": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6543,15 +6120,13 @@ }, "node_modules/ansicolors": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6562,8 +6137,6 @@ }, "node_modules/arch": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", "dev": true, "funding": [ { @@ -6578,34 +6151,31 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/are-docs-informative": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" @@ -6619,18 +6189,16 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.map": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.6.tgz", - "integrity": "sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6647,9 +6215,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", @@ -6669,15 +6236,13 @@ }, "node_modules/asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha512-6i37w/+EhlWlGUJff3T/Q8u1RGmP5wgbiwYnOnbOqvtrPxT63/sYFyP9RcpxtxGymtfA075IvmOnL7ycNOWl3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/asn1.js": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -6687,8 +6252,7 @@ }, "node_modules/asn1js": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "license": "BSD-3-Clause", "dependencies": { "pvtsutils": "^1.3.2", "pvutils": "^1.1.3", @@ -6700,27 +6264,24 @@ }, "node_modules/assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/ast-types": { "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -6730,24 +6291,21 @@ }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/async-listener": { "version": "0.6.10", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", - "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "semver": "^5.3.0", "shimmer": "^1.1.0" @@ -6758,42 +6316,37 @@ }, "node_modules/async-listener/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/async-retry": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", "dev": true, + "license": "MIT", "dependencies": { "retry": "0.13.1" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/available-typed-arrays": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6803,24 +6356,21 @@ }, "node_modules/aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/aws4": { "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/babel-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -6839,9 +6389,8 @@ }, "node_modules/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, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -6855,9 +6404,8 @@ }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -6871,18 +6419,16 @@ }, "node_modules/babel-plugin-istanbul/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -6895,9 +6441,8 @@ }, "node_modules/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, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -6918,9 +6463,8 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -6934,9 +6478,8 @@ }, "node_modules/bail": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6944,30 +6487,24 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/base64-arraybuffer": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", - "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", "engines": { "node": ">= 0.6.0" } }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -6981,31 +6518,29 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/base64url": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/basic-ftp": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz", - "integrity": "sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/bcp-47-match": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", - "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7013,67 +6548,59 @@ }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/before-after-hook": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/big-integer": { "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "dev": true, + "license": "Unlicense", "engines": { "node": ">=0.6" } }, "node_modules/bignumber.js": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/bip39": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "license": "ISC", "dependencies": { "@noble/hashes": "^1.2.0" } }, "node_modules/bl": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "inherits": "^2.0.4", @@ -7082,9 +6609,8 @@ }, "node_modules/blessed": { "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==", "dev": true, + "license": "MIT", "bin": { "blessed": "bin/tput.js" }, @@ -7094,37 +6620,31 @@ }, "node_modules/blob-util": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/bluebird": { "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/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==" + "license": "MIT" }, "node_modules/bodec": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", - "integrity": "sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/borc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0", "buffer": "^5.5.0", @@ -7140,8 +6660,6 @@ }, "node_modules/borc/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -7156,6 +6674,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -7163,9 +6682,8 @@ }, "node_modules/boxen": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", "dev": true, + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -7185,9 +6703,8 @@ }, "node_modules/boxen/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7197,9 +6714,8 @@ }, "node_modules/boxen/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7209,9 +6725,8 @@ }, "node_modules/boxen/node_modules/camelcase": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -7221,9 +6736,8 @@ }, "node_modules/boxen/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -7233,15 +6747,13 @@ }, "node_modules/boxen/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/boxen/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -7256,9 +6768,8 @@ }, "node_modules/boxen/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -7271,9 +6782,8 @@ }, "node_modules/boxen/node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -7283,9 +6793,8 @@ }, "node_modules/boxen/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -7300,9 +6809,8 @@ }, "node_modules/bplist-parser": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", "dev": true, + "license": "MIT", "dependencies": { "big-integer": "^1.6.44" }, @@ -7312,9 +6820,8 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7322,9 +6829,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -7334,13 +6840,10 @@ }, "node_modules/brorand": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "license": "MIT" }, "node_modules/browserslist": { "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -7356,6 +6859,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", @@ -7371,9 +6875,8 @@ }, "node_modules/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, + "license": "MIT", "dependencies": { "fast-json-stable-stringify": "2.x" }, @@ -7383,21 +6886,18 @@ }, "node_modules/bs58": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", "dependencies": { "base-x": "^4.0.0" } }, "node_modules/bs58/node_modules/base-x": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + "license": "MIT" }, "node_modules/bs58check": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", - "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "license": "MIT", "dependencies": { "@noble/hashes": "^1.2.0", "bs58": "^5.0.0" @@ -7405,17 +6905,14 @@ }, "node_modules/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, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -7430,6 +6927,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -7437,24 +6935,21 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=6" }, @@ -7464,9 +6959,8 @@ }, "node_modules/bundle-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", "dev": true, + "license": "MIT", "dependencies": { "run-applescript": "^5.0.0" }, @@ -7479,36 +6973,32 @@ }, "node_modules/bytes-iec": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", - "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cacheable-lookup": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" } }, "node_modules/cacheable-request": { "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", @@ -7524,9 +7014,8 @@ }, "node_modules/cacheable-request/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7536,18 +7025,16 @@ }, "node_modules/cachedir": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/call-bind": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -7564,26 +7051,22 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -7598,13 +7081,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/cardinal": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", "dev": true, + "license": "MIT", "dependencies": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" @@ -7615,15 +7098,13 @@ }, "node_modules/caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/ccount": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7631,9 +7112,8 @@ }, "node_modules/chai": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -7649,9 +7129,8 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7665,18 +7144,16 @@ }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/character-entities": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7684,9 +7161,8 @@ }, "node_modules/character-entities-html4": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7694,9 +7170,8 @@ }, "node_modules/character-entities-legacy": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7704,9 +7179,8 @@ }, "node_modules/character-reference-invalid": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7714,30 +7188,26 @@ }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/charenc": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/charm": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==", - "dev": true + "dev": true, + "license": "MIT/X11" }, "node_modules/check-error": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.2" }, @@ -7747,18 +7217,16 @@ }, "node_modules/check-more-types": { "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/chokidar": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -7780,9 +7248,8 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -7801,8 +7268,6 @@ }, "node_modules/ci-info": { "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -7810,14 +7275,14 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/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==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -7825,24 +7290,21 @@ }, "node_modules/cjs-module-lexer": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-boxes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7852,9 +7314,8 @@ }, "node_modules/cli-color": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz", - "integrity": "sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.61", @@ -7868,9 +7329,8 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -7878,23 +7338,10 @@ "node": ">=8" } }, - "node_modules/cli-progress": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", - "dev": true, - "dependencies": { - "string-width": "^4.2.3" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/cli-spinners": { "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -7904,9 +7351,8 @@ }, "node_modules/cli-table3": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -7919,8 +7365,6 @@ }, "node_modules/cli-tableau": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", - "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", "dev": true, "dependencies": { "chalk": "3.0.0" @@ -7931,9 +7375,8 @@ }, "node_modules/cli-tableau/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7944,9 +7387,8 @@ }, "node_modules/cli-truncate": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -7960,18 +7402,16 @@ }, "node_modules/cli-width": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 12" } }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7992,9 +7432,8 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -8002,15 +7441,13 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -8020,29 +7457,26 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/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, + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -8052,9 +7486,8 @@ }, "node_modules/comma-separated-tokens": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8062,55 +7495,51 @@ }, "node_modules/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==" + "license": "MIT" }, "node_modules/comment-parser": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", - "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.0.0" } }, "node_modules/common-tags": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concurrently": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", - "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", + "chalk": "^4.1.2", + "date-fns": "^2.30.0", "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", "tree-kill": "^1.2.2", - "yargs": "^17.3.1" + "yargs": "^17.7.2" }, "bin": { "conc": "dist/bin/concurrently.js", "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": "^12.20.0 || ^14.13.0 || >=16.0.0" + "node": "^14.13.0 || >=16.0.0" }, "funding": { "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" @@ -8118,9 +7547,8 @@ }, "node_modules/concurrently/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8133,9 +7561,8 @@ }, "node_modules/config-chain": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -8143,15 +7570,13 @@ }, "node_modules/config-chain/node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/configstore": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -8168,9 +7593,8 @@ }, "node_modules/configstore/node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -8180,9 +7604,8 @@ }, "node_modules/continuation-local-storage": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "async-listener": "^0.6.0", "emitter-listener": "^1.1.1" @@ -8190,21 +7613,18 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -8228,8 +7648,7 @@ }, "node_modules/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==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -8240,9 +7659,8 @@ }, "node_modules/create-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -8261,21 +7679,18 @@ }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/croner": { "version": "4.1.97", - "resolved": "https://registry.npmjs.org/croner/-/croner-4.1.97.tgz", - "integrity": "sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8287,18 +7702,16 @@ }, "node_modules/crypt": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/crypto-random-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -8311,9 +7724,8 @@ }, "node_modules/crypto-random-string/node_modules/type-fest": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -8390,8 +7802,6 @@ }, "node_modules/css-selector-parser": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.0.4.tgz", - "integrity": "sha512-pnmS1dbKsz6KA4EW4BznyPL2xxkNDRg62hcD0v8g6DEw2W7hxOln5M953jsp9hmw5Dg57S6o/A8GOn37mbAgcQ==", "dev": true, "funding": [ { @@ -8402,7 +7812,8 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/css-tree": { "version": "2.3.1", @@ -8472,15 +7883,13 @@ }, "node_modules/cssom": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cssstyle": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, + "license": "MIT", "dependencies": { "cssom": "~0.3.6" }, @@ -8490,28 +7899,25 @@ }, "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/culvert": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cycle": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==", + "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/cypress": { - "version": "13.6.4", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.4.tgz", - "integrity": "sha512-pYJjCfDYB+hoOoZuhysbbYhEmNW7DEDsqn+ToCLwuVowxUXppIWRr7qk4TVRIU471ksfzyZcH+mkoF0CQUKnpw==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.7.0.tgz", + "integrity": "sha512-UimjRSJJYdTlvkChcdcfywKJ6tUYuwYuk/n1uMMglrvi+ZthNhoRYcxnWgTqUtkl17fXrPAsD5XT2rcQYN1xKA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -8522,7 +7928,7 @@ "arch": "^2.2.0", "blob-util": "^2.0.2", "bluebird": "^3.7.2", - "buffer": "^5.6.0", + "buffer": "^5.7.1", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", @@ -8540,7 +7946,7 @@ "figures": "^3.2.0", "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^3.0.0", + "is-ci": "^3.0.1", "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", "listr2": "^3.8.3", @@ -8567,8 +7973,6 @@ }, "node_modules/cypress/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -8584,6 +7988,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -8591,18 +7996,16 @@ }, "node_modules/cypress/node_modules/commander": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/cypress/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8615,9 +8018,8 @@ }, "node_modules/d": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, + "license": "ISC", "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -8625,9 +8027,8 @@ }, "node_modules/dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" }, @@ -8637,18 +8038,16 @@ }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/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, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -8660,9 +8059,8 @@ }, "node_modules/date-fns": { "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -8676,16 +8074,14 @@ }, "node_modules/dayjs": { "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deasync": { "version": "0.1.29", - "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.29.tgz", - "integrity": "sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "bindings": "^1.5.0", "node-addon-api": "^1.7.1" @@ -8696,9 +8092,8 @@ }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -8713,15 +8108,13 @@ }, "node_modules/decimal.js": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/decode-named-character-reference": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -8732,9 +8125,8 @@ }, "node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -8747,9 +8139,8 @@ }, "node_modules/decompress-response/node_modules/mimic-response": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8759,9 +8150,8 @@ }, "node_modules/dedent": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", "dev": true, + "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -8773,9 +8163,8 @@ }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -8785,33 +8174,29 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/default-browser": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", "dev": true, + "license": "MIT", "dependencies": { "bundle-name": "^3.0.0", "default-browser-id": "^3.0.0", @@ -8827,9 +8212,8 @@ }, "node_modules/default-browser-id": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", "dev": true, + "license": "MIT", "dependencies": { "bplist-parser": "^0.2.0", "untildify": "^4.0.0" @@ -8843,9 +8227,8 @@ }, "node_modules/default-browser/node_modules/execa": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -8866,9 +8249,8 @@ }, "node_modules/default-browser/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8878,18 +8260,16 @@ }, "node_modules/default-browser/node_modules/human-signals": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=14.18.0" } }, "node_modules/default-browser/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -8899,9 +8279,8 @@ }, "node_modules/default-browser/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8911,9 +8290,8 @@ }, "node_modules/default-browser/node_modules/npm-run-path": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -8926,9 +8304,8 @@ }, "node_modules/default-browser/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -8941,9 +8318,8 @@ }, "node_modules/default-browser/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8953,9 +8329,8 @@ }, "node_modules/default-browser/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8965,9 +8340,8 @@ }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -8977,27 +8351,24 @@ }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -9012,9 +8383,8 @@ }, "node_modules/define-lazy-prop": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -9024,9 +8394,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -9041,9 +8410,8 @@ }, "node_modules/degenerator": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", @@ -9055,38 +8423,33 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/delimit-stream": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==" + "license": "BSD-2-Clause" }, "node_modules/deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/dequal": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, + "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -9096,18 +8459,16 @@ }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/devlop": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, + "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, @@ -9118,27 +8479,24 @@ }, "node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-sequences": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -9148,9 +8506,8 @@ }, "node_modules/direction": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", - "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==", "dev": true, + "license": "MIT", "bin": { "direction": "cli.js" }, @@ -9161,9 +8518,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -9208,10 +8564,8 @@ }, "node_modules/domexception": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", "dev": true, + "license": "MIT", "dependencies": { "webidl-conversions": "^7.0.0" }, @@ -9250,9 +8604,8 @@ }, "node_modules/dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -9280,15 +8633,13 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, + "license": "MIT", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -9296,20 +8647,17 @@ }, "node_modules/ecc-jsbn/node_modules/jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.4.673", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.673.tgz", - "integrity": "sha512-zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/elliptic": { "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -9322,8 +8670,6 @@ }, "node_modules/emitter-component": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.2.tgz", - "integrity": "sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==", "dev": true, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9331,18 +8677,16 @@ }, "node_modules/emitter-listener": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "shimmer": "^1.2.0" } }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -9352,24 +8696,21 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enquirer": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -9380,9 +8721,8 @@ }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -9392,18 +8732,16 @@ }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { "version": "1.22.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", - "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", @@ -9456,15 +8794,13 @@ }, "node_modules/es-array-method-boxes-properly": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -9474,18 +8810,16 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-get-iterator": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -9503,9 +8837,8 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.2", "has-tostringtag": "^1.0.0", @@ -9517,9 +8850,8 @@ }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -9534,10 +8866,9 @@ }, "node_modules/es5-ext": { "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "dev": true, "hasInstallScript": true, + "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -9550,9 +8881,8 @@ }, "node_modules/es6-iterator": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -9561,9 +8891,8 @@ }, "node_modules/es6-map": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14", @@ -9575,9 +8904,8 @@ }, "node_modules/es6-set": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -9592,15 +8920,13 @@ }, "node_modules/es6-set/node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/es6-symbol": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" @@ -9608,9 +8934,8 @@ }, "node_modules/es6-weak-map": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, + "license": "ISC", "dependencies": { "d": "1", "es5-ext": "^0.10.46", @@ -9620,10 +8945,9 @@ }, "node_modules/esbuild": { "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -9706,12 +9030,11 @@ }, "node_modules/esbuild-darwin-arm64": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", - "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -9976,6 +9299,22 @@ "node": ">=12" } }, + "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/esbuild/node_modules/@esbuild/android-arm": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", @@ -9992,172 +9331,467 @@ "node": ">=12" } }, - "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { + "node_modules/esbuild/node_modules/@esbuild/android-arm64": { "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", "cpu": [ - "loong64" + "arm64" ], "dev": true, "optional": true, "os": [ - "linux" + "android" ], "engines": { "node": ">=12" } }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/esbuild/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "node_modules/esbuild/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/esbuild/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "node_modules/esbuild/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">=12" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/esbuild/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4.0" + "node": ">=12" } }, - "node_modules/escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", + "node_modules/esbuild/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.4.0" + "node": ">=12" } }, - "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "node_modules/esbuild/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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" - }, - "bin": { - "eslint": "bin/eslint.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=12" } }, - "node_modules/eslint-plugin-cypress": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz", - "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==", - "dev": true, - "dependencies": { - "globals": "^13.20.0" - }, - "peerDependencies": { - "eslint": ">= 3.2.1" + "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escope": { + "version": "3.6.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-cypress": { + "version": "2.15.1", + "dev": true, + "license": "MIT", + "dependencies": { + "globals": "^13.20.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" } }, "node_modules/eslint-plugin-jsdoc": { "version": "46.10.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz", - "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.41.0", "are-docs-informative": "^0.0.2", @@ -10178,9 +9812,8 @@ }, "node_modules/eslint-plugin-prettier": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -10199,9 +9832,8 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -10212,9 +9844,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -10224,9 +9855,8 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -10240,18 +9870,16 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esniff": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -10264,15 +9892,13 @@ }, "node_modules/esniff/node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -10287,9 +9913,8 @@ }, "node_modules/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, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -10300,9 +9925,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -10312,18 +9936,16 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -10333,36 +9955,32 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/event-emitter": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -10370,15 +9988,13 @@ }, "node_modules/eventemitter2": { "version": "6.4.7", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", - "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/execa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -10399,9 +10015,8 @@ }, "node_modules/executable": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^2.2.0" }, @@ -10411,8 +10026,6 @@ }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -10420,9 +10033,8 @@ }, "node_modules/expect": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -10436,30 +10048,26 @@ }, "node_modules/ext": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, + "license": "ISC", "dependencies": { "type": "^2.7.2" } }, "node_modules/ext/node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -10471,9 +10079,8 @@ }, "node_modules/external-editor/node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -10483,9 +10090,8 @@ }, "node_modules/extract-zip": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -10503,56 +10109,49 @@ }, "node_modules/extrareqp2": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extrareqp2/-/extrareqp2-1.0.0.tgz", - "integrity": "sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==", "dev": true, + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.0" } }, "node_modules/extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" - ] + ], + "license": "MIT" }, "node_modules/eyes": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "dev": true, "engines": { "node": "> 0.1.90" } }, "node_modules/fake-indexeddb": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/fake-indexeddb/-/fake-indexeddb-5.0.2.tgz", - "integrity": "sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18" } }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -10566,9 +10165,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -10578,59 +10176,50 @@ }, "node_modules/fast-json-patch": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", - "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/fclone": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fd-slicer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, + "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/fetch-blob": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "dev": true, "funding": [ { @@ -10642,6 +10231,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -10652,9 +10242,8 @@ }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -10667,18 +10256,16 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -10688,15 +10275,13 @@ }, "node_modules/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -10706,9 +10291,8 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -10722,9 +10306,8 @@ }, "node_modules/flat-cache": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -10736,14 +10319,11 @@ }, "node_modules/flatted": { "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -10751,6 +10331,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -10762,18 +10343,16 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreground-child": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -10787,9 +10366,8 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -10799,18 +10377,16 @@ }, "node_modules/forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -10822,18 +10398,16 @@ }, "node_modules/form-data-encoder": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14.17" } }, "node_modules/formdata-polyfill": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "dev": true, + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -10843,15 +10417,13 @@ }, "node_modules/fs": { "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -10864,16 +10436,13 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -10884,18 +10453,16 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10911,18 +10478,16 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gemoji": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/gemoji/-/gemoji-8.1.0.tgz", - "integrity": "sha512-HA4Gx59dw2+tn+UAa7XEV4ufUKI4fH1KgcbenVA9YKSj1QJTT0xh5Mwv5HMFNN3l2OtUe3ZIfuRwSyZS5pLIWw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10930,36 +10495,32 @@ }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-intrinsic": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -10976,27 +10537,24 @@ }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-port": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", - "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -11009,9 +10567,8 @@ }, "node_modules/get-symbol-description": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", @@ -11026,9 +10583,8 @@ }, "node_modules/get-uri": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", - "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", "dev": true, + "license": "MIT", "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", @@ -11041,9 +10597,8 @@ }, "node_modules/get-uri/node_modules/fs-extra": { "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11055,39 +10610,34 @@ }, "node_modules/getos": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", - "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", "dev": true, + "license": "MIT", "dependencies": { "async": "^3.2.0" } }, "node_modules/getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/git-node-fs": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", - "integrity": "sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/git-sha1": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", - "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/git-up": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", "dev": true, + "license": "MIT", "dependencies": { "is-ssh": "^1.4.0", "parse-url": "^8.1.0" @@ -11095,24 +10645,21 @@ }, "node_modules/git-url-parse": { "version": "13.1.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", - "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", "dev": true, + "license": "MIT", "dependencies": { "git-up": "^7.0.0" } }, "node_modules/github-slugger": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11130,9 +10677,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -11142,9 +10688,8 @@ }, "node_modules/global-dirs": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -11157,9 +10702,8 @@ }, "node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -11172,9 +10716,8 @@ }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -11187,9 +10730,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -11207,9 +10749,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -11219,9 +10760,8 @@ }, "node_modules/got": { "version": "13.0.0", - "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", - "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -11244,9 +10784,8 @@ }, "node_modules/got/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11256,21 +10795,18 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/graphene-pk11": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/graphene-pk11/-/graphene-pk11-2.3.4.tgz", - "integrity": "sha512-GqHgKNtthZWJYnrz3qFmqdjIgS1uZ9gK6u+q0dA7Pd9saF8i4f7Ny0j+OORjI7SDG4gSvwz/F8MSXEBXazQx+w==", "dev": true, + "license": "MIT", "dependencies": { "pkcs11js": "^2.0.1", "tslib": "^2.6.2" @@ -11285,27 +10821,24 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -11315,9 +10848,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11327,9 +10859,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11339,9 +10870,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -11354,9 +10884,8 @@ }, "node_modules/has-yarn": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -11366,8 +10895,7 @@ }, "node_modules/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==", + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -11379,8 +10907,7 @@ }, "node_modules/hash.js": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -11388,9 +10915,8 @@ }, "node_modules/hasown": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -11400,9 +10926,8 @@ }, "node_modules/hast-util-embedded": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz", - "integrity": "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-is-element": "^3.0.0" @@ -11414,9 +10939,8 @@ }, "node_modules/hast-util-from-dom": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.0.tgz", - "integrity": "sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==", "dev": true, + "license": "ISC", "dependencies": { "@types/hast": "^3.0.0", "hastscript": "^8.0.0", @@ -11429,9 +10953,8 @@ }, "node_modules/hast-util-from-html": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.1.tgz", - "integrity": "sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", @@ -11447,9 +10970,8 @@ }, "node_modules/hast-util-from-html-isomorphic": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", - "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-dom": "^5.0.0", @@ -11463,9 +10985,8 @@ }, "node_modules/hast-util-from-parse5": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -11483,9 +11004,8 @@ }, "node_modules/hast-util-has-property": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", - "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -11496,9 +11016,8 @@ }, "node_modules/hast-util-heading-rank": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", - "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -11509,9 +11028,8 @@ }, "node_modules/hast-util-is-body-ok-link": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.0.tgz", - "integrity": "sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -11522,9 +11040,8 @@ }, "node_modules/hast-util-is-element": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -11535,9 +11052,8 @@ }, "node_modules/hast-util-parse-selector": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -11548,9 +11064,8 @@ }, "node_modules/hast-util-phrasing": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", @@ -11565,9 +11080,8 @@ }, "node_modules/hast-util-raw": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", - "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -11590,9 +11104,8 @@ }, "node_modules/hast-util-select": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.2.tgz", - "integrity": "sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -11618,9 +11131,8 @@ }, "node_modules/hast-util-to-html": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.0.tgz", - "integrity": "sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -11642,9 +11154,8 @@ }, "node_modules/hast-util-to-parse5": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", @@ -11661,9 +11172,8 @@ }, "node_modules/hast-util-to-string": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz", - "integrity": "sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -11674,9 +11184,8 @@ }, "node_modules/hast-util-to-text": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.0.tgz", - "integrity": "sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -11690,9 +11199,8 @@ }, "node_modules/hast-util-whitespace": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -11703,9 +11211,8 @@ }, "node_modules/hastscript": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", @@ -11720,8 +11227,7 @@ }, "node_modules/hdkey": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", + "license": "MIT", "dependencies": { "bs58check": "^2.1.2", "ripemd160": "^2.0.2", @@ -11731,16 +11237,14 @@ }, "node_modules/hdkey/node_modules/bs58": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } }, "node_modules/hdkey/node_modules/bs58check": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "license": "MIT", "dependencies": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -11749,8 +11253,7 @@ }, "node_modules/hmac-drbg": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -11759,9 +11262,8 @@ }, "node_modules/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, + "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -11771,15 +11273,13 @@ }, "node_modules/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 + "dev": true, + "license": "MIT" }, "node_modules/html-void-elements": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -11787,9 +11287,8 @@ }, "node_modules/html-whitespace-sensitive-tag-names": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-3.0.0.tgz", - "integrity": "sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -11875,15 +11374,13 @@ }, "node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/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, + "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -11895,9 +11392,8 @@ }, "node_modules/http-signature": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", @@ -11909,9 +11405,8 @@ }, "node_modules/http2-wrapper": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -11922,9 +11417,8 @@ }, "node_modules/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, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -11935,18 +11429,16 @@ }, "node_modules/human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.12.0" } }, "node_modules/husky": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, + "license": "MIT", "bin": { "husky": "lib/bin.js" }, @@ -11959,9 +11451,8 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -11971,18 +11462,14 @@ }, "node_modules/idb": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + "license": "ISC" }, "node_modules/idb-keyval": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", - "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" + "license": "Apache-2.0" }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -11996,22 +11483,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/image2uri": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/image2uri/-/image2uri-2.1.2.tgz", - "integrity": "sha512-3b2zRma8I3zulb4OCkZruRw1VsnysT9phBzOJj+x3lPkwybJtNa5Sz6Dw8jSQI6OL7Ns4H5h8Y26EJbwq4GhQQ==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "^3.3.1" }, @@ -12021,18 +11507,16 @@ }, "node_modules/image2uri/node_modules/data-uri-to-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/image2uri/node_modules/node-fetch": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -12048,9 +11532,8 @@ }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -12064,18 +11547,16 @@ }, "node_modules/import-lazy": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/import-local": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -12092,27 +11573,24 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -12120,23 +11598,20 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/ini": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/inquirer": { "version": "9.2.11", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", - "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", "dev": true, + "license": "MIT", "dependencies": { "@ljharb/through": "^2.3.9", "ansi-escapes": "^4.3.2", @@ -12160,9 +11635,8 @@ }, "node_modules/inquirer/node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -12171,8 +11645,6 @@ }, "node_modules/inquirer/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -12188,6 +11660,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -12195,9 +11668,8 @@ }, "node_modules/inquirer/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -12207,9 +11679,8 @@ }, "node_modules/inquirer/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12219,9 +11690,8 @@ }, "node_modules/inquirer/node_modules/figures": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -12235,9 +11705,8 @@ }, "node_modules/inquirer/node_modules/figures/node_modules/is-unicode-supported": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12247,27 +11716,24 @@ }, "node_modules/inquirer/node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/mute-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/inquirer/node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -12288,9 +11754,8 @@ }, "node_modules/inquirer/node_modules/ora/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12304,9 +11769,8 @@ }, "node_modules/inquirer/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12318,9 +11782,8 @@ }, "node_modules/internal-slot": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", @@ -12332,18 +11795,16 @@ }, "node_modules/interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/ip-address": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, + "license": "MIT", "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" @@ -12354,24 +11815,21 @@ }, "node_modules/ip-address/node_modules/sprintf-js": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/ipaddr.js": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/is-alphabetical": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -12379,9 +11837,8 @@ }, "node_modules/is-alphanumerical": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "dev": true, + "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -12393,9 +11850,8 @@ }, "node_modules/is-arguments": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -12409,9 +11865,8 @@ }, "node_modules/is-array-buffer": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" @@ -12425,15 +11880,13 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -12443,9 +11896,8 @@ }, "node_modules/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, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -12455,9 +11907,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -12471,15 +11922,13 @@ }, "node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-builtin-module": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, + "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -12492,9 +11941,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12504,9 +11952,8 @@ }, "node_modules/is-ci": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -12516,9 +11963,8 @@ }, "node_modules/is-core-module": { "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -12528,9 +11974,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12543,9 +11988,8 @@ }, "node_modules/is-decimal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -12553,9 +11997,8 @@ }, "node_modules/is-docker": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -12568,36 +12011,32 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12610,9 +12049,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -12622,9 +12060,8 @@ }, "node_modules/is-hexadecimal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -12632,9 +12069,8 @@ }, "node_modules/is-inside-container": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -12650,9 +12086,8 @@ }, "node_modules/is-installed-globally": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -12666,9 +12101,8 @@ }, "node_modules/is-interactive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12684,18 +12118,16 @@ }, "node_modules/is-map": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12705,9 +12137,8 @@ }, "node_modules/is-npm": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -12717,18 +12148,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12741,27 +12170,24 @@ }, "node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12771,30 +12197,26 @@ }, "node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/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 + "dev": true, + "license": "MIT" }, "node_modules/is-promise": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -12808,18 +12230,16 @@ }, "node_modules/is-set": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -12829,18 +12249,16 @@ }, "node_modules/is-ssh": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", "dev": true, + "license": "MIT", "dependencies": { "protocols": "^2.0.1" } }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -12850,9 +12268,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12865,9 +12282,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -12880,9 +12296,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" }, @@ -12895,15 +12310,13 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12913,9 +12326,8 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -12925,9 +12337,8 @@ }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -12937,9 +12348,8 @@ }, "node_modules/is-wsl/node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -12952,38 +12362,33 @@ }, "node_modules/is-yarn-global": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/iso-url": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/isomorphic-fetch": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "^2.6.1", "whatwg-fetch": "^3.4.1" @@ -12991,14 +12396,13 @@ }, "node_modules/isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + "dev": true, + "license": "MIT" }, "node_modules/issue-parser": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", - "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", "dev": true, + "license": "MIT", "dependencies": { "lodash.capitalize": "^4.2.1", "lodash.escaperegexp": "^4.1.2", @@ -13012,18 +12416,16 @@ }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -13037,9 +12439,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -13051,9 +12452,8 @@ }, "node_modules/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, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -13065,9 +12465,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -13078,18 +12477,16 @@ }, "node_modules/iterate-iterator": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", - "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/iterate-value": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", "dev": true, + "license": "MIT", "dependencies": { "es-get-iterator": "^1.0.2", "iterate-iterator": "^1.0.1" @@ -13100,9 +12497,8 @@ }, "node_modules/jackspeak": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -13118,9 +12514,8 @@ }, "node_modules/jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -13144,9 +12539,8 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -13158,9 +12552,8 @@ }, "node_modules/jest-changed-files/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -13181,9 +12574,8 @@ }, "node_modules/jest-changed-files/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13193,18 +12585,16 @@ }, "node_modules/jest-changed-files/node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/jest-circus": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -13233,9 +12623,8 @@ }, "node_modules/jest-cli": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -13266,9 +12655,8 @@ }, "node_modules/jest-config": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -13311,9 +12699,8 @@ }, "node_modules/jest-diff": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -13326,9 +12713,8 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -13338,9 +12724,8 @@ }, "node_modules/jest-each": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -13354,9 +12739,8 @@ }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -13381,9 +12765,8 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -13398,18 +12781,16 @@ }, "node_modules/jest-get-type": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -13432,9 +12813,8 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -13445,9 +12825,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -13460,9 +12839,8 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -13480,9 +12858,8 @@ }, "node_modules/jest-mock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -13494,9 +12871,8 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -13511,18 +12887,16 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -13540,9 +12914,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -13553,9 +12926,8 @@ }, "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -13585,9 +12957,8 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -13618,9 +12989,8 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -13649,9 +13019,8 @@ }, "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -13666,9 +13035,8 @@ }, "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -13683,9 +13051,8 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13695,9 +13062,8 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -13714,9 +13080,8 @@ }, "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -13729,9 +13094,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13744,9 +13108,8 @@ }, "node_modules/js-git": { "version": "0.7.8", - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", - "integrity": "sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==", "dev": true, + "license": "MIT", "dependencies": { "bodec": "^0.1.0", "culvert": "^0.1.2", @@ -13756,15 +13119,13 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -13774,24 +13135,21 @@ }, "node_modules/jsbn": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsdoc-type-pratt-parser": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0.0" } }, "node_modules/jsdom": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", @@ -13834,9 +13192,8 @@ }, "node_modules/jsdom/node_modules/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, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -13848,9 +13205,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -13860,53 +13216,45 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/json-text-sequence": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==", + "license": "MIT", "dependencies": { "delimit-stream": "0.1.0" } }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -13916,15 +13264,13 @@ }, "node_modules/jsonc-parser": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -13934,12 +13280,11 @@ }, "node_modules/jsprim": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", - "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", "dev": true, "engines": [ "node >=0.6.0" ], + "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -13949,13 +13294,12 @@ }, "node_modules/katex": { "version": "0.16.9", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", - "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==", "dev": true, "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" ], + "license": "MIT", "dependencies": { "commander": "^8.3.0" }, @@ -13965,36 +13309,32 @@ }, "node_modules/katex/node_modules/commander": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/latest-version": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", "dev": true, + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -14007,36 +13347,32 @@ }, "node_modules/lazy": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.2.0" } }, "node_modules/lazy-ass": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true, + "license": "MIT", "engines": { "node": "> 0.8" } }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -14047,9 +13383,8 @@ }, "node_modules/lightningcss": { "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.23.0.tgz", - "integrity": "sha512-SEArWKMHhqn/0QzOtclIwH5pXIYQOUEkF8DgICd/105O+GCgd7jxjNod/QPnBCSWvpRHQBGVz5fQ9uScby03zA==", "dev": true, + "license": "MPL-2.0", "dependencies": { "detect-libc": "^1.0.3" }, @@ -14074,12 +13409,11 @@ }, "node_modules/lightningcss-darwin-arm64": { "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.23.0.tgz", - "integrity": "sha512-kl4Pk3Q2lnE6AJ7Qaij47KNEfY2/UXRZBT/zqGA24B8qwkgllr/j7rclKOf1axcslNXvvUdztjo4Xqh39Yq1aA==", "cpu": [ "arm64" ], "dev": true, + "license": "MPL-2.0", "optional": true, "os": [ "darwin" @@ -14093,179 +13427,10 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.23.0.tgz", - "integrity": "sha512-KeRFCNoYfDdcolcFXvokVw+PXCapd2yHS1Diko1z1BhRz/nQuD5XyZmxjWdhmhN/zj5sH8YvWsp0/lPLVzqKpg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.23.0.tgz", - "integrity": "sha512-xhnhf0bWPuZxcqknvMDRFFo2TInrmQRWZGB0f6YoAsZX8Y+epfjHeeOIGCfAmgF0DgZxHwYc8mIR5tQU9/+ROA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.23.0.tgz", - "integrity": "sha512-fBamf/bULvmWft9uuX+bZske236pUZEoUlaHNBjnueaCTJ/xd8eXgb0cEc7S5o0Nn6kxlauMBnqJpF70Bgq3zg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.23.0.tgz", - "integrity": "sha512-RS7sY77yVLOmZD6xW2uEHByYHhQi5JYWmgVumYY85BfNoVI3DupXSlzbw+b45A9NnVKq45+oXkiN6ouMMtTwfg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.23.0.tgz", - "integrity": "sha512-cU00LGb6GUXCwof6ACgSMKo3q7XYbsyTj0WsKHLi1nw7pV0NCq8nFTn6ZRBYLoKiV8t+jWl0Hv8KkgymmK5L5g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.23.0.tgz", - "integrity": "sha512-q4jdx5+5NfB0/qMbXbOmuC6oo7caPnFghJbIAV90cXZqgV8Am3miZhC4p+sQVdacqxfd+3nrle4C8icR3p1AYw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.23.0.tgz", - "integrity": "sha512-G9Ri3qpmF4qef2CV/80dADHKXRAQeQXpQTLx7AiQrBYQHqBjB75oxqj06FCIe5g4hNCqLPnM9fsO4CyiT1sFSQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.23.0.tgz", - "integrity": "sha512-1rcBDJLU+obPPJM6qR5fgBUiCdZwZLafZM5f9kwjFLkb/UBNIzmae39uCSmh71nzPCTXZqHbvwu23OWnWEz+eg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/lilconfig": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.0.tgz", - "integrity": "sha512-p3cz0JV5vw/XeouBU3Ldnp+ZkBjE+n8ydJ4mcwBrOiXXPqNlrzGBqWs9X4MWF7f+iKUBu794Y8Hh8yawiJbCjw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -14275,15 +13440,13 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/listr2": { "version": "3.14.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", - "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.16", @@ -14339,9 +13502,8 @@ }, "node_modules/local-pkg": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -14351,9 +13513,8 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -14366,10 +13527,9 @@ }, "node_modules/locus": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/locus/-/locus-2.0.4.tgz", - "integrity": "sha512-IZkIsFkcfvO51LWyAXUEeyj5ftH8Bq2akCkiz72CA8UHmuvCIWBmgOl0+ChuNazIQZbPXoC5my6xE/n/DBR2nw==", "dev": true, "hasInstallScript": true, + "license": "LGPL-3.0", "dependencies": { "bindings": "^1.5.0", "cardinal": "^2.1.1", @@ -14387,71 +13547,61 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "dev": true, + "license": "MIT" }, "node_modules/lodash.capitalize": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isstring": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/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 + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.once": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.uniqby": { "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-driver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true, + "license": "ISC", "engines": { "node": ">=0.8.6" } }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -14465,9 +13615,8 @@ }, "node_modules/log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -14483,9 +13632,8 @@ }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -14500,9 +13648,8 @@ }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -14514,9 +13661,8 @@ }, "node_modules/longest-streak": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -14524,18 +13670,16 @@ }, "node_modules/loupe": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.1" } }, "node_modules/lowercase-keys": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -14545,33 +13689,29 @@ }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/lru-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", "dev": true, + "license": "MIT", "dependencies": { "es5-ext": "~0.10.2" } }, "node_modules/lunr": { "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/macos-release": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.2.0.tgz", - "integrity": "sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -14581,9 +13721,8 @@ }, "node_modules/magic-string": { "version": "0.30.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", - "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -14593,9 +13732,8 @@ }, "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -14608,24 +13746,21 @@ }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/markdown-table": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -14633,9 +13768,8 @@ }, "node_modules/markdown-to-html-cli": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/markdown-to-html-cli/-/markdown-to-html-cli-4.1.0.tgz", - "integrity": "sha512-irs5XV5m+KzzvhKrTePvIpoyaR2EZi3EP/B5s3uciQvvhK4C0cvktIiXcY6S0Nkdzr9tfJJ9FqgMrebWufA46g==", "dev": true, + "license": "MIT", "dependencies": { "@types/fs-extra": "^11.0.2", "@types/minimist": "^1.2.3", @@ -14667,18 +13801,16 @@ }, "node_modules/markdown-to-html-cli/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/markdown-to-html-cli/node_modules/fs-extra": { "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -14690,9 +13822,8 @@ }, "node_modules/markdown-to-html-cli/node_modules/glob": { "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -14712,9 +13843,8 @@ }, "node_modules/markdown-to-html-cli/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -14727,9 +13857,8 @@ }, "node_modules/marked": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -14739,9 +13868,8 @@ }, "node_modules/md5": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -14750,8 +13878,7 @@ }, "node_modules/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==", + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -14760,9 +13887,8 @@ }, "node_modules/mdast-util-find-and-replace": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", @@ -14776,9 +13902,8 @@ }, "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -14788,9 +13913,8 @@ }, "node_modules/mdast-util-from-markdown": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -14812,9 +13936,8 @@ }, "node_modules/mdast-util-gfm": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", @@ -14831,9 +13954,8 @@ }, "node_modules/mdast-util-gfm-autolink-literal": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", @@ -14848,9 +13970,8 @@ }, "node_modules/mdast-util-gfm-footnote": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", @@ -14865,9 +13986,8 @@ }, "node_modules/mdast-util-gfm-strikethrough": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -14880,9 +14000,8 @@ }, "node_modules/mdast-util-gfm-table": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -14897,9 +14016,8 @@ }, "node_modules/mdast-util-gfm-task-list-item": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -14913,9 +14031,8 @@ }, "node_modules/mdast-util-phrasing": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" @@ -14927,9 +14044,8 @@ }, "node_modules/mdast-util-to-hast": { "version": "13.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", - "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -14948,9 +14064,8 @@ }, "node_modules/mdast-util-to-markdown": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -14968,9 +14083,8 @@ }, "node_modules/mdast-util-to-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" }, @@ -14989,9 +14103,8 @@ }, "node_modules/memoizee": { "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.53", @@ -15005,23 +14118,19 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromark": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", "dev": true, "funding": [ { @@ -15033,6 +14142,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -15055,8 +14165,6 @@ }, "node_modules/micromark-core-commonmark": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", - "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", "dev": true, "funding": [ { @@ -15068,6 +14176,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", @@ -15089,9 +14198,8 @@ }, "node_modules/micromark-extension-gfm": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", "dev": true, + "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", @@ -15109,9 +14217,8 @@ }, "node_modules/micromark-extension-gfm-autolink-literal": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", "dev": true, + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", @@ -15125,9 +14232,8 @@ }, "node_modules/micromark-extension-gfm-footnote": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", "dev": true, + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", @@ -15145,9 +14251,8 @@ }, "node_modules/micromark-extension-gfm-strikethrough": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", "dev": true, + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -15163,9 +14268,8 @@ }, "node_modules/micromark-extension-gfm-table": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", - "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", "dev": true, + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -15180,9 +14284,8 @@ }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", "dev": true, + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -15193,9 +14296,8 @@ }, "node_modules/micromark-extension-gfm-task-list-item": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", - "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", "dev": true, + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -15210,8 +14312,6 @@ }, "node_modules/micromark-factory-destination": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", "dev": true, "funding": [ { @@ -15223,6 +14323,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -15231,8 +14332,6 @@ }, "node_modules/micromark-factory-label": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", "dev": true, "funding": [ { @@ -15244,6 +14343,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -15253,8 +14353,6 @@ }, "node_modules/micromark-factory-space": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", "dev": true, "funding": [ { @@ -15266,6 +14364,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -15273,8 +14372,6 @@ }, "node_modules/micromark-factory-title": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", "dev": true, "funding": [ { @@ -15286,6 +14383,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -15295,8 +14393,6 @@ }, "node_modules/micromark-factory-whitespace": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", "dev": true, "funding": [ { @@ -15308,6 +14404,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -15317,8 +14414,6 @@ }, "node_modules/micromark-util-character": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "dev": true, "funding": [ { @@ -15330,6 +14425,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -15337,8 +14433,6 @@ }, "node_modules/micromark-util-chunked": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", "dev": true, "funding": [ { @@ -15350,14 +14444,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-classify-character": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", "dev": true, "funding": [ { @@ -15369,6 +14462,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -15377,8 +14471,6 @@ }, "node_modules/micromark-util-combine-extensions": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", "dev": true, "funding": [ { @@ -15390,6 +14482,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -15397,8 +14490,6 @@ }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", "dev": true, "funding": [ { @@ -15410,14 +14501,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-decode-string": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", "dev": true, "funding": [ { @@ -15429,6 +14519,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -15438,8 +14529,6 @@ }, "node_modules/micromark-util-encode": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", "dev": true, "funding": [ { @@ -15450,12 +14539,11 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", "dev": true, "funding": [ { @@ -15466,12 +14554,11 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", "dev": true, "funding": [ { @@ -15483,14 +14570,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-resolve-all": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", "dev": true, "funding": [ { @@ -15502,14 +14588,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", "dev": true, "funding": [ { @@ -15521,6 +14606,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -15529,8 +14615,6 @@ }, "node_modules/micromark-util-subtokenize": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", - "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", "dev": true, "funding": [ { @@ -15542,6 +14626,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -15551,8 +14636,6 @@ }, "node_modules/micromark-util-symbol": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", "dev": true, "funding": [ { @@ -15563,12 +14646,11 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", "dev": true, "funding": [ { @@ -15579,13 +14661,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -15596,8 +14678,7 @@ }, "node_modules/mime": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -15607,18 +14688,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/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==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -15628,18 +14707,16 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/mimic-response": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -15649,19 +14726,16 @@ }, "node_modules/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==" + "license": "ISC" }, "node_modules/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==" + "license": "MIT" }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -15671,27 +14745,24 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -15701,9 +14772,8 @@ }, "node_modules/mlly": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", - "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", @@ -15713,24 +14783,21 @@ }, "node_modules/module-details-from-path": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mri": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/msgpackr": { "version": "1.10.1", @@ -15777,13 +14844,11 @@ }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "dev": true, + "license": "ISC" }, "node_modules/nanoid": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.5.tgz", - "integrity": "sha512-/Veqm+QKsyMY3kqi4faWplnY1u+VuKO3dD2binyPIybP31DRO29bPF+1mszgLnrR2KqSLceFLBNw0zmvDzN1QQ==", "dev": true, "funding": [ { @@ -15791,6 +14856,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -15800,30 +14866,26 @@ }, "node_modules/nanospinner": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", - "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", "dev": true, + "license": "ISC", "dependencies": { "picocolors": "^1.0.0" } }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/needle": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -15838,27 +14900,24 @@ }, "node_modules/needle/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/netmask": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/new-github-release-url": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-2.0.0.tgz", - "integrity": "sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^2.5.1" }, @@ -15871,9 +14930,8 @@ }, "node_modules/new-github-release-url/node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -15883,20 +14941,16 @@ }, "node_modules/next-tick": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/node-addon-api": { "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "dev": true, "funding": [ { @@ -15908,15 +14962,15 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -15934,21 +14988,18 @@ }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -15956,8 +15007,7 @@ }, "node_modules/node-gyp-build": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -15989,30 +15039,26 @@ }, "node_modules/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 + "dev": true, + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-rsa": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/node-rsa/-/node-rsa-0.4.2.tgz", - "integrity": "sha512-Bvso6Zi9LY4otIZefYrscsUpo2mUpiAVIEmSZV2q41sP8tHZoert3Yu6zv4f/RXJqMNZQKCtnhDugIuCma23YA==", "dev": true, + "license": "MIT", "dependencies": { "asn1": "0.2.3" } }, "node_modules/node-webcrypto-p11": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/node-webcrypto-p11/-/node-webcrypto-p11-2.6.4.tgz", - "integrity": "sha512-vssFMc7MOciI2hEf6A+8OQIvi55Yz4tRBUPkhoBpOQsoVxChVjXyg9RAo6FN1ix+veYXDFCmXFy8Wn6wrA9VDQ==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", @@ -16034,18 +15080,16 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -16055,15 +15099,12 @@ }, "node_modules/not": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz", - "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==", "dev": true }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -16073,9 +15114,8 @@ }, "node_modules/nssocket": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter2": "~0.4.14", "lazy": "~1.0.11" @@ -16086,15 +15126,13 @@ }, "node_modules/nssocket/node_modules/eventemitter2": { "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nth-check": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -16110,33 +15148,29 @@ }, "node_modules/nwsapi": { "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/object-inspect": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -16152,18 +15186,16 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -16176,9 +15208,8 @@ }, "node_modules/open": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, + "license": "MIT", "dependencies": { "default-browser": "^4.0.0", "define-lazy-prop": "^3.0.0", @@ -16194,9 +15225,8 @@ }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -16211,9 +15241,8 @@ }, "node_modules/ora": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", - "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^4.0.0", @@ -16234,9 +15263,8 @@ }, "node_modules/ora/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -16246,9 +15274,8 @@ }, "node_modules/ora/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -16258,9 +15285,8 @@ }, "node_modules/ora/node_modules/cli-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^4.0.0" }, @@ -16273,15 +15299,13 @@ }, "node_modules/ora/node_modules/emoji-regex": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ora/node_modules/is-unicode-supported": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -16291,9 +15315,8 @@ }, "node_modules/ora/node_modules/log-symbols": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.0.0", "is-unicode-supported": "^1.1.0" @@ -16307,9 +15330,8 @@ }, "node_modules/ora/node_modules/restore-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -16323,9 +15345,8 @@ }, "node_modules/ora/node_modules/string-width": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", - "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^10.2.1", @@ -16340,9 +15361,8 @@ }, "node_modules/ora/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -16361,15 +15381,13 @@ }, "node_modules/os": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", - "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/os-name": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.1.0.tgz", - "integrity": "sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ==", "dev": true, + "license": "MIT", "dependencies": { "macos-release": "^3.1.0", "windows-release": "^5.0.1" @@ -16383,33 +15401,29 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/ospath": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/p-cancelable": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" } }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -16422,9 +15436,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -16437,9 +15450,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -16452,18 +15464,16 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pac-proxy-agent": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.0.2", @@ -16480,9 +15490,8 @@ }, "node_modules/pac-proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -16492,9 +15501,8 @@ }, "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -16505,9 +15513,8 @@ }, "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -16518,9 +15525,8 @@ }, "node_modules/pac-resolver": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "dev": true, + "license": "MIT", "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" @@ -16531,9 +15537,8 @@ }, "node_modules/package-json": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", "dev": true, + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -16549,9 +15554,8 @@ }, "node_modules/package-json/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -16561,9 +15565,8 @@ }, "node_modules/package-json/node_modules/got": { "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -16586,27 +15589,26 @@ }, "node_modules/pako": { "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parcel": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.11.0.tgz", - "integrity": "sha512-H/RI1/DmuOkL8RuG/EpNPvtzrbF+7jA/R56ydEEm+lqFbYktKB4COR7JXdHkZXRgbSJyimrFB8d0r9+SaRnj0Q==", - "dev": true, - "dependencies": { - "@parcel/config-default": "2.11.0", - "@parcel/core": "2.11.0", - "@parcel/diagnostic": "2.11.0", - "@parcel/events": "2.11.0", - "@parcel/fs": "2.11.0", - "@parcel/logger": "2.11.0", - "@parcel/package-manager": "2.11.0", - "@parcel/reporter-cli": "2.11.0", - "@parcel/reporter-dev-server": "2.11.0", - "@parcel/reporter-tracer": "2.11.0", - "@parcel/utils": "2.11.0", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.12.0.tgz", + "integrity": "sha512-W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg==", + "dev": true, + "dependencies": { + "@parcel/config-default": "2.12.0", + "@parcel/core": "2.12.0", + "@parcel/diagnostic": "2.12.0", + "@parcel/events": "2.12.0", + "@parcel/fs": "2.12.0", + "@parcel/logger": "2.12.0", + "@parcel/package-manager": "2.12.0", + "@parcel/reporter-cli": "2.12.0", + "@parcel/reporter-dev-server": "2.12.0", + "@parcel/reporter-tracer": "2.12.0", + "@parcel/utils": "2.12.0", "chalk": "^4.1.0", "commander": "^7.0.0", "get-port": "^4.2.0" @@ -16624,18 +15626,16 @@ }, "node_modules/parcel/node_modules/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, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -16645,9 +15645,8 @@ }, "node_modules/parse-entities": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "character-entities": "^2.0.0", @@ -16665,15 +15664,13 @@ }, "node_modules/parse-entities/node_modules/@types/unist": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -16689,40 +15686,34 @@ }, "node_modules/parse-numeric-range": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/parse-path": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", "dev": true, + "license": "MIT", "dependencies": { "protocols": "^2.0.0" } }, "node_modules/parse-stack": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/parse-stack/-/parse-stack-0.1.4.tgz", - "integrity": "sha512-LavgUUPQOilfSoBTt9MEyOznloproJQnrHYLtr2DHJBH2D8cXCRh7DYPNDgnFCBjfCEjOcN92WG+eBfiWM1OoA==", - "deprecated": "Use error-stack-parser instead.", - "dev": true + "dev": true, + "license": "LGPLv3" }, "node_modules/parse-url": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", "dev": true, + "license": "MIT", "dependencies": { "parse-path": "^7.0.0" } }, "node_modules/parse5": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -16732,9 +15723,8 @@ }, "node_modules/path": { "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", "dev": true, + "license": "MIT", "dependencies": { "process": "^0.11.1", "util": "^0.10.3" @@ -16742,42 +15732,37 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -16791,60 +15776,52 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/pend": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -16854,9 +15831,8 @@ }, "node_modules/pidusage": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz", - "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.2.1" }, @@ -16866,28 +15842,24 @@ }, "node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/pirates": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkcs11js": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkcs11js/-/pkcs11js-2.1.0.tgz", - "integrity": "sha512-8i3yzNHoN0DcawytjXqGK4tjvQP/VrcPi1j0Bvhy8PtckBbsETSECyNsBxwY6eAnvGhsJEDyFq42ZPNZR9P/MA==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "engines": { "node": ">=18.0.0" }, @@ -16898,9 +15870,8 @@ }, "node_modules/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, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -16910,9 +15881,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -16923,9 +15893,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -16935,9 +15904,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -16950,9 +15918,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -16962,9 +15929,8 @@ }, "node_modules/pkg-types": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", "dev": true, + "license": "MIT", "dependencies": { "jsonc-parser": "^3.2.0", "mlly": "^1.2.0", @@ -17022,9 +15988,8 @@ }, "node_modules/pm2-axon": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", - "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", "dev": true, + "license": "MIT", "dependencies": { "amp": "~0.3.1", "amp-message": "~0.1.1", @@ -17037,9 +16002,8 @@ }, "node_modules/pm2-axon-rpc": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", - "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.1" }, @@ -17049,9 +16013,8 @@ }, "node_modules/pm2-deploy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", - "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", "dev": true, + "license": "MIT", "dependencies": { "run-series": "^1.1.8", "tv4": "^1.3.0" @@ -17062,18 +16025,16 @@ }, "node_modules/pm2-multimeter": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", - "integrity": "sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==", "dev": true, + "license": "MIT/X11", "dependencies": { "charm": "~0.1.1" } }, "node_modules/pm2-sysmonit": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz", - "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==", "dev": true, + "license": "Apache", "optional": true, "dependencies": { "async": "^3.2.0", @@ -17085,9 +16046,8 @@ }, "node_modules/pm2-sysmonit/node_modules/pidusage": { "version": "2.0.21", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", - "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safe-buffer": "^5.2.1" @@ -17098,9 +16058,8 @@ }, "node_modules/pm2/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17111,15 +16070,13 @@ }, "node_modules/pm2/node_modules/commander": { "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pm2/node_modules/enquirer": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1" }, @@ -17129,15 +16086,13 @@ }, "node_modules/pm2/node_modules/eventemitter2": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pm2/node_modules/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==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -17145,8 +16100,6 @@ }, "node_modules/postcss": { "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -17162,6 +16115,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -17179,8 +16133,6 @@ }, "node_modules/postcss/node_modules/nanoid": { "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -17188,6 +16140,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -17246,18 +16199,16 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -17270,9 +16221,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -17282,9 +16232,8 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -17294,9 +16243,8 @@ }, "node_modules/pretty-format": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -17308,9 +16256,8 @@ }, "node_modules/pretty-format/node_modules/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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -17320,9 +16267,8 @@ }, "node_modules/pretty-quick": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.3.1.tgz", - "integrity": "sha512-3b36UXfYQ+IXXqex6mCca89jC8u0mYLqFAN5eTQKoXO6oCQYcIVYZEB/5AlBHI7JPYygReM2Vv6Vom/Gln7fBg==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^4.1.0", "find-up": "^4.1.0", @@ -17344,9 +16290,8 @@ }, "node_modules/pretty-quick/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -17357,9 +16302,8 @@ }, "node_modules/pretty-quick/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -17369,9 +16313,8 @@ }, "node_modules/pretty-quick/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -17384,9 +16327,8 @@ }, "node_modules/pretty-quick/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -17396,9 +16338,8 @@ }, "node_modules/pretty-quick/node_modules/picomatch": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -17408,18 +16349,16 @@ }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/promise.allsettled": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.7.tgz", - "integrity": "sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==", "dev": true, + "license": "MIT", "dependencies": { "array.prototype.map": "^1.0.5", "call-bind": "^1.0.2", @@ -17437,8 +16376,8 @@ }, "node_modules/prompt": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.3.0.tgz", - "integrity": "sha512-ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg==", + "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "async": "3.2.3", @@ -17452,23 +16391,21 @@ }, "node_modules/prompt/node_modules/async": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + "dev": true, + "license": "MIT" }, "node_modules/promptly": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==", "dev": true, + "license": "MIT", "dependencies": { "read": "^1.0.4" } }, "node_modules/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, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -17479,9 +16416,8 @@ }, "node_modules/property-information": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", - "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -17489,21 +16425,18 @@ }, "node_modules/proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/protocols": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/proxy-agent": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", - "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -17520,9 +16453,8 @@ }, "node_modules/proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -17532,9 +16464,8 @@ }, "node_modules/proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -17545,9 +16476,8 @@ }, "node_modules/proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -17558,36 +16488,31 @@ }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/proxy-agent/node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/proxy-from-env": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/psl": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -17595,18 +16520,16 @@ }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pupa": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", "dev": true, + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -17619,8 +16542,6 @@ }, "node_modules/pure-rand": { "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", "dev": true, "funding": [ { @@ -17631,29 +16552,27 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/pvtsutils": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "license": "MIT", "dependencies": { "tslib": "^2.6.1" } }, "node_modules/pvutils": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/qs": { "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -17666,14 +16585,11 @@ }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -17688,13 +16604,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -17704,9 +16620,8 @@ }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -17719,15 +16634,13 @@ }, "node_modules/rc/node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17740,9 +16653,8 @@ }, "node_modules/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 + "dev": true, + "license": "MIT" }, "node_modules/react-refresh": { "version": "0.9.0", @@ -17755,8 +16667,8 @@ }, "node_modules/read": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "license": "ISC", "dependencies": { "mute-stream": "~0.0.4" }, @@ -17766,8 +16678,7 @@ }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17779,9 +16690,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -17791,14 +16701,11 @@ }, "node_modules/readline-history": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/readline-history/-/readline-history-1.2.0.tgz", - "integrity": "sha512-8R0Vr9jhdtqYSdWGpAvkEopvuPKjAlYELIKoa7+7FO2CBN/b88rYB9r9gFSNtdCUHdAOJslj0KDG75MsiozXIQ==", - "dev": true + "dev": true, + "license": "WTFPL" }, "node_modules/rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { "resolve": "^1.1.6" @@ -17809,24 +16716,21 @@ }, "node_modules/redeyed": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", "dev": true, + "license": "MIT", "dependencies": { "esprima": "~4.0.0" } }, "node_modules/reflect-metadata": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/refractor": { "version": "4.8.1", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-4.8.1.tgz", - "integrity": "sha512-/fk5sI0iTgFYlmVGYVew90AoYnNMP6pooClx/XKqyeeCQXrL0Kvgn8V0VEht5ccdljbzzF1i3Q213gcntkRExg==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "@types/prismjs": "^1.0.0", @@ -17840,24 +16744,21 @@ }, "node_modules/refractor/node_modules/@types/hast": { "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2" } }, "node_modules/refractor/node_modules/@types/unist": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/refractor/node_modules/hast-util-parse-selector": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", - "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0" }, @@ -17868,9 +16769,8 @@ }, "node_modules/refractor/node_modules/hastscript": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", - "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^2.0.0", @@ -17885,15 +16785,13 @@ }, "node_modules/regenerator-runtime": { "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", @@ -17909,9 +16807,8 @@ }, "node_modules/registry-auth-token": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -17921,9 +16818,8 @@ }, "node_modules/registry-url": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", "dev": true, + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -17936,9 +16832,8 @@ }, "node_modules/rehype-attr": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/rehype-attr/-/rehype-attr-3.0.3.tgz", - "integrity": "sha512-Up50Xfra8tyxnkJdCzLBIBtxOcB2M1xdeKe1324U06RAvSjYm7ULSeoM+b/nYPQPVd7jsXJ9+39IG1WAJPXONw==", "dev": true, + "license": "MIT", "dependencies": { "unified": "~11.0.0", "unist-util-visit": "~5.0.0" @@ -17952,9 +16847,8 @@ }, "node_modules/rehype-autolink-headings": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/rehype-autolink-headings/-/rehype-autolink-headings-7.1.0.tgz", - "integrity": "sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@ungap/structured-clone": "^1.0.0", @@ -17970,9 +16864,8 @@ }, "node_modules/rehype-document": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/rehype-document/-/rehype-document-7.0.3.tgz", - "integrity": "sha512-g5zq6i2FwWVBVdyVi0Jw/5MRvsHj3wuJCn+QeyOjm29QBpTG4r1iUElyH9GhfWx5fB27ZEApA53RdAiYGBb4zQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hastscript": "^8.0.0", @@ -17986,9 +16879,8 @@ }, "node_modules/rehype-format": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rehype-format/-/rehype-format-5.0.0.tgz", - "integrity": "sha512-kM4II8krCHmUhxrlvzFSptvaWh280Fr7UGNJU5DCMuvmAwGCNmGfi9CvFAQK6JDjsNoRMWQStglK3zKJH685Wg==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", @@ -18006,9 +16898,8 @@ }, "node_modules/rehype-ignore": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rehype-ignore/-/rehype-ignore-2.0.2.tgz", - "integrity": "sha512-BpAT/3lU9DMJ2siYVD/dSR0A/zQgD6Fb+fxkJd4j+wDVy6TYbYpK+FZqu8eM9EuNKGvi4BJR7XTZ/+zF02Dq8w==", "dev": true, + "license": "MIT", "dependencies": { "hast-util-select": "^6.0.0", "unified": "^11.0.0", @@ -18023,9 +16914,8 @@ }, "node_modules/rehype-katex": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.0.tgz", - "integrity": "sha512-h8FPkGE00r2XKU+/acgqwWUlyzve1IiOKwsEkg4pDL3k48PiE0Pt+/uLtVHDVkN1yA4iurZN6UES8ivHVEQV6Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/katex": "^0.16.0", @@ -18042,9 +16932,8 @@ }, "node_modules/rehype-minify-whitespace": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-6.0.0.tgz", - "integrity": "sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", @@ -18059,9 +16948,8 @@ }, "node_modules/rehype-parse": { "version": "8.0.5", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.5.tgz", - "integrity": "sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "hast-util-from-parse5": "^7.0.0", @@ -18075,24 +16963,21 @@ }, "node_modules/rehype-parse/node_modules/@types/hast": { "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2" } }, "node_modules/rehype-parse/node_modules/@types/unist": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rehype-parse/node_modules/hast-util-from-parse5": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", - "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "@types/unist": "^2.0.0", @@ -18109,9 +16994,8 @@ }, "node_modules/rehype-parse/node_modules/hast-util-parse-selector": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", - "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0" }, @@ -18122,9 +17006,8 @@ }, "node_modules/rehype-parse/node_modules/hastscript": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", - "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^2.0.0", @@ -18139,8 +17022,6 @@ }, "node_modules/rehype-parse/node_modules/is-buffer": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, "funding": [ { @@ -18156,21 +17037,20 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/rehype-parse/node_modules/parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rehype-parse/node_modules/unified": { "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -18187,9 +17067,8 @@ }, "node_modules/rehype-parse/node_modules/unist-util-stringify-position": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0" }, @@ -18200,9 +17079,8 @@ }, "node_modules/rehype-parse/node_modules/vfile": { "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -18216,9 +17094,8 @@ }, "node_modules/rehype-parse/node_modules/vfile-location": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", - "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "vfile": "^5.0.0" @@ -18230,9 +17107,8 @@ }, "node_modules/rehype-parse/node_modules/vfile-message": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" @@ -18244,9 +17120,8 @@ }, "node_modules/rehype-prism-plus": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/rehype-prism-plus/-/rehype-prism-plus-1.6.3.tgz", - "integrity": "sha512-F6tn376zimnvy+xW0bSnryul+rvVL7NhDIkavc9kAuzDx5zIZW04A6jdXPkcFBhojcqZB8b6pHt6CLqiUx+Tbw==", "dev": true, + "license": "MIT", "dependencies": { "hast-util-to-string": "^2.0.0", "parse-numeric-range": "^1.3.0", @@ -18258,24 +17133,21 @@ }, "node_modules/rehype-prism-plus/node_modules/@types/hast": { "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2" } }, "node_modules/rehype-prism-plus/node_modules/@types/unist": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rehype-prism-plus/node_modules/hast-util-to-string": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz", - "integrity": "sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0" }, @@ -18286,9 +17158,8 @@ }, "node_modules/rehype-prism-plus/node_modules/unist-util-is": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0" }, @@ -18299,9 +17170,8 @@ }, "node_modules/rehype-prism-plus/node_modules/unist-util-visit": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -18314,9 +17184,8 @@ }, "node_modules/rehype-prism-plus/node_modules/unist-util-visit-parents": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" @@ -18328,9 +17197,8 @@ }, "node_modules/rehype-raw": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", @@ -18343,9 +17211,8 @@ }, "node_modules/rehype-rewrite": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/rehype-rewrite/-/rehype-rewrite-4.0.2.tgz", - "integrity": "sha512-rjLJ3z6fIV11phwCqHp/KRo8xuUCO8o9bFJCNw5o6O2wlLk6g8r323aRswdGBQwfXPFYeSuZdAjp4tzo6RGqEg==", "dev": true, + "license": "MIT", "dependencies": { "hast-util-select": "^6.0.0", "unified": "^11.0.3", @@ -18360,9 +17227,8 @@ }, "node_modules/rehype-slug": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", - "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "github-slugger": "^2.0.0", @@ -18377,9 +17243,8 @@ }, "node_modules/rehype-stringify": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.0.tgz", - "integrity": "sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", @@ -18392,9 +17257,8 @@ }, "node_modules/rehype-urls": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rehype-urls/-/rehype-urls-1.2.0.tgz", - "integrity": "sha512-+ygQd999ts0DxhTqttYmH0w0jK2ysE5lLjaJkSI4xd63XUB+g+TYXZtwXngr38QDMIVizquB2Bo35JNVggCL3A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "hast-util-has-property": "^1.0.2", "stdopt": "^2.0.0", @@ -18403,9 +17267,8 @@ }, "node_modules/rehype-urls/node_modules/hast-util-has-property": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", - "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -18413,33 +17276,29 @@ }, "node_modules/rehype-urls/node_modules/unist-util-is": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rehype-urls/node_modules/unist-util-visit": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "dev": true, + "license": "MIT", "dependencies": { "unist-util-visit-parents": "^2.0.0" } }, "node_modules/rehype-urls/node_modules/unist-util-visit-parents": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", "dev": true, + "license": "MIT", "dependencies": { "unist-util-is": "^3.0.0" } }, "node_modules/rehype-video": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rehype-video/-/rehype-video-2.0.2.tgz", - "integrity": "sha512-iT4kOiixMn+ytjpKRsBo/o+3ws9+q+eIyrzUlOhuL97buOO38ayEog2NhxR3R+g6J2lEOTK66XtHVfvzQ3H7Ug==", "dev": true, + "license": "MIT", "dependencies": { "unified": "^11.0.0", "unist-util-visit": "^5.0.0" @@ -18453,9 +17312,8 @@ }, "node_modules/release-it": { "version": "16.3.0", - "resolved": "https://registry.npmjs.org/release-it/-/release-it-16.3.0.tgz", - "integrity": "sha512-CP+WwKbgEvXreq6Iz9po3BtcyELtTxrt5RXRGnazQ0eCphPxFZR29+8sEZRCsJq2IKvlwb5mFUbf92u426oQog==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "2.2.5", "@octokit/rest": "19.0.13", @@ -18494,9 +17352,8 @@ }, "node_modules/release-it/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -18506,18 +17363,16 @@ }, "node_modules/release-it/node_modules/data-uri-to-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/release-it/node_modules/execa": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -18538,9 +17393,8 @@ }, "node_modules/release-it/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -18550,9 +17404,8 @@ }, "node_modules/release-it/node_modules/globby": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -18569,18 +17422,16 @@ }, "node_modules/release-it/node_modules/human-signals": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=14.18.0" } }, "node_modules/release-it/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -18590,9 +17441,8 @@ }, "node_modules/release-it/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -18602,9 +17452,8 @@ }, "node_modules/release-it/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18614,9 +17463,8 @@ }, "node_modules/release-it/node_modules/node-fetch": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -18632,9 +17480,8 @@ }, "node_modules/release-it/node_modules/npm-run-path": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -18647,9 +17494,8 @@ }, "node_modules/release-it/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -18662,9 +17508,8 @@ }, "node_modules/release-it/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18674,9 +17519,8 @@ }, "node_modules/release-it/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -18689,9 +17533,8 @@ }, "node_modules/release-it/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18701,9 +17544,8 @@ }, "node_modules/release-it/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18713,15 +17555,13 @@ }, "node_modules/release-it/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/remark-gemoji": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-gemoji/-/remark-gemoji-8.0.0.tgz", - "integrity": "sha512-/fL9rc72FYwFGtOKcT+QeQdx9Q9t5v4N6KLXSDOTEgaedzK85I9judBqB2eqz+g4b0ERMejlwSOuPK+wket6aA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "gemoji": "^8.0.0", @@ -18734,9 +17574,8 @@ }, "node_modules/remark-gfm": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", @@ -18752,9 +17591,8 @@ }, "node_modules/remark-parse": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -18768,9 +17606,8 @@ }, "node_modules/remark-rehype": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -18785,9 +17622,8 @@ }, "node_modules/remark-stringify": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -18800,27 +17636,24 @@ }, "node_modules/request-progress": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", "dev": true, + "license": "MIT", "dependencies": { "throttleit": "^1.0.0" } }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-in-the-middle": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", @@ -18832,15 +17665,13 @@ }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -18855,15 +17686,13 @@ }, "node_modules/resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/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, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -18873,36 +17702,32 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/resolve.exports": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/responselike": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -18915,9 +17740,8 @@ }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -18928,18 +17752,16 @@ }, "node_modules/retry": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -18947,23 +17769,21 @@ }, "node_modules/revalidator": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg==", + "dev": true, + "license": "Apache 2.0", "engines": { "node": ">= 0.4.0" } }, "node_modules/rfdc": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -18976,8 +17796,7 @@ }, "node_modules/ripemd160": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -18985,9 +17804,8 @@ }, "node_modules/rollup": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", - "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -19015,11 +17833,23 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/run-applescript": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0" }, @@ -19032,9 +17862,8 @@ }, "node_modules/run-applescript/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -19055,9 +17884,8 @@ }, "node_modules/run-applescript/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -19067,26 +17895,22 @@ }, "node_modules/run-applescript/node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/run-async": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -19102,14 +17926,13 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/run-series": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", "dev": true, "funding": [ { @@ -19124,22 +17947,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/rxjs": { "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "get-intrinsic": "^1.2.2", @@ -19155,8 +17977,6 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -19170,13 +17990,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-regex-test": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -19191,21 +18011,18 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sax": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/saxes": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -19215,9 +18032,8 @@ }, "node_modules/secp256k1": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", @@ -19229,14 +18045,12 @@ }, "node_modules/secp256k1/node_modules/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==" + "license": "MIT" }, "node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -19249,9 +18063,8 @@ }, "node_modules/semver-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -19264,9 +18077,8 @@ }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -19276,15 +18088,13 @@ }, "node_modules/semver/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/set-function-length": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.2", "es-errors": "^1.3.0", @@ -19299,9 +18109,8 @@ }, "node_modules/set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -19313,8 +18122,7 @@ }, "node_modules/sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -19325,9 +18133,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -19337,27 +18144,24 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/shelljs": { "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -19372,9 +18176,8 @@ }, "node_modules/shiki": { "version": "0.14.7", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", - "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-sequence-parser": "^1.1.0", "jsonc-parser": "^3.2.0", @@ -19384,15 +18187,13 @@ }, "node_modules/shimmer": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/side-channel": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -19408,32 +18209,27 @@ }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/simple-cbor": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", - "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" + "license": "ISC" }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/size-limit": { "version": "11.0.2", - "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-11.0.2.tgz", - "integrity": "sha512-iFZ8iTR/3zPqxSwEIdGnTVYVU0F2nhodLQG/G6zpi/NxECYAK9ntq2lNr+prXH7h3gyBjx2Umt2D/oS2Qzz+eg==", "dev": true, + "license": "MIT", "dependencies": { "bytes-iec": "^3.1.1", "chokidar": "^3.5.3", @@ -19451,9 +18247,8 @@ }, "node_modules/size-limit-node-esbuild": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/size-limit-node-esbuild/-/size-limit-node-esbuild-0.3.0.tgz", - "integrity": "sha512-wgKcHikiJLnz9pTzZsJXBUaFzWnZsVftmHLKu6eJJx2+wh0EgyzIPhOad/FFVBhErDacAmR4FYD3tgEagr033g==", "dev": true, + "license": "MIT", "dependencies": { "nanoid": "^5.0.3", "size-limit": "^10.0.2", @@ -19468,9 +18263,8 @@ }, "node_modules/size-limit-node-esbuild/node_modules/globby": { "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -19488,18 +18282,16 @@ }, "node_modules/size-limit-node-esbuild/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/size-limit-node-esbuild/node_modules/path-type": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19509,9 +18301,8 @@ }, "node_modules/size-limit-node-esbuild/node_modules/size-limit": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-10.0.3.tgz", - "integrity": "sha512-5k1k2Kykueq5K/PJQclKx2GS1prz4WNNvm+x5CQ2oWLHwmuFnb1z1g412O9aoOFqafXicJTZgZHXRyIe2GZQfA==", "dev": true, + "license": "MIT", "dependencies": { "bytes-iec": "^3.1.1", "chokidar": "^3.5.3", @@ -19529,9 +18320,8 @@ }, "node_modules/size-limit-node-esbuild/node_modules/slash": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -19541,9 +18331,8 @@ }, "node_modules/size-limit/node_modules/globby": { "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -19561,9 +18350,8 @@ }, "node_modules/size-limit/node_modules/path-type": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19573,9 +18361,8 @@ }, "node_modules/size-limit/node_modules/slash": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -19585,18 +18372,16 @@ }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -19608,9 +18393,8 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -19618,9 +18402,8 @@ }, "node_modules/socks": { "version": "2.7.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz", - "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==", "dev": true, + "license": "MIT", "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" @@ -19632,9 +18415,8 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -19646,9 +18428,8 @@ }, "node_modules/socks-proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -19658,27 +18439,24 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/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, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -19686,31 +18464,28 @@ }, "node_modules/space-separated-tokens": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", "dev": true }, "node_modules/spdx-exceptions": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -19718,15 +18493,13 @@ }, "node_modules/spdx-license-ids": { "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/sprintf-js": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/srcset": { "version": "4.0.0", @@ -19742,9 +18515,8 @@ }, "node_modules/sshpk": { "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, + "license": "MIT", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -19767,9 +18539,8 @@ }, "node_modules/sshpk/node_modules/jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stable": { "version": "0.1.8", @@ -19780,17 +18551,16 @@ }, "node_modules/stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/stack-utils": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -19800,30 +18570,26 @@ }, "node_modules/stack-utils/node_modules/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/std-env": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stdin-discarder": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^5.0.0" }, @@ -19836,24 +18602,21 @@ }, "node_modules/stdopt": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stdopt/-/stdopt-2.2.0.tgz", - "integrity": "sha512-D/p41NgXOkcj1SeGhfXOwv9z1K6EV3sjAUY5aeepVbgEHv7DpKWLTjhjScyzMWAQCAgUQys1mjH0eArm4cjRGw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "is-arrayish": "^0.3.2" } }, "node_modules/stdopt/node_modules/is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", "dev": true, + "license": "MIT", "dependencies": { "internal-slot": "^1.0.4" }, @@ -19863,26 +18626,23 @@ }, "node_modules/stream": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", - "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", "dev": true, + "license": "MIT", "dependencies": { "emitter-component": "^1.1.1" } }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/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, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -19893,9 +18653,8 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -19908,9 +18667,8 @@ "node_modules/string-width-cjs": { "name": "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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -19922,9 +18680,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -19939,9 +18696,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -19953,9 +18709,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -19967,9 +18722,8 @@ }, "node_modules/stringify-entities": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", "dev": true, + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -19981,9 +18735,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -19994,9 +18747,8 @@ "node_modules/strip-ansi-cjs": { "name": "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, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -20006,27 +18758,24 @@ }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -20036,9 +18785,8 @@ }, "node_modules/strip-literal": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.10.0" }, @@ -20048,9 +18796,8 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -20060,9 +18807,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -20110,15 +18856,13 @@ }, "node_modules/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 + "dev": true, + "license": "MIT" }, "node_modules/systeminformation": { "version": "5.21.24", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.24.tgz", - "integrity": "sha512-xQada8ByGGFoRXJaUptGgddn3i7IjtSdqNdCKzB8xkzsM7pHnfLYBWxkPdGzhZ0Z/l+W1yo+aZQZ74d2isj8kw==", "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin", @@ -20155,9 +18899,8 @@ }, "node_modules/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, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -20169,37 +18912,31 @@ }, "node_modules/text-encoding": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", - "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", - "deprecated": "no longer maintained", - "dev": true + "dev": true, + "license": "(Unlicense OR Apache-2.0)" }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/throttleit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", - "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/timers-ext": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", "dev": true, + "license": "ISC", "dependencies": { "es5-ext": "~0.10.46", "next-tick": "1" @@ -20213,33 +18950,29 @@ }, "node_modules/tinybench": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", - "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tinypool": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", - "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", - "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/titleize": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -20249,9 +18982,8 @@ }, "node_modules/tmp": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, + "license": "MIT", "dependencies": { "rimraf": "^3.0.0" }, @@ -20261,24 +18993,21 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -20288,9 +19017,8 @@ }, "node_modules/tough-cookie": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -20303,18 +19031,16 @@ }, "node_modules/tough-cookie/node_modules/universalify": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/tr46": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -20324,18 +19050,16 @@ }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } }, "node_modules/trim-lines": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -20343,9 +19067,8 @@ }, "node_modules/trough": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -20353,9 +19076,8 @@ }, "node_modules/ts-api-utils": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", - "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -20365,9 +19087,8 @@ }, "node_modules/ts-jest": { "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -20408,9 +19129,8 @@ }, "node_modules/ts-node": { "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -20451,14 +19171,12 @@ }, "node_modules/tslib": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -20471,15 +19189,13 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/tsyringe": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.8.0.tgz", - "integrity": "sha512-YB1FG+axdxADa3ncEtRnQCFq/M0lALGLxSZeVNbTU8NqhOVc51nnv2CISTcvc1kyv6EGPtXVr0v6lWeDxiijOA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.9.3" }, @@ -20489,15 +19205,13 @@ }, "node_modules/tsyringe/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -20507,24 +19221,30 @@ }, "node_modules/tv4": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", "dev": true, + "license": [ + { + "type": "Public Domain", + "url": "http://geraintluff.github.io/tv4/LICENSE.txt" + }, + { + "type": "MIT", + "url": "http://jsonary.com/LICENSE.txt" + } + ], "engines": { "node": ">= 0.8.0" } }, "node_modules/tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true + "dev": true, + "license": "Unlicense" }, "node_modules/tx2": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", - "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "json-stringify-safe": "^5.0.1" @@ -20532,15 +19252,13 @@ }, "node_modules/type": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -20550,18 +19268,16 @@ }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -20571,9 +19287,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz", - "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -20585,9 +19300,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -20603,9 +19317,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -20622,9 +19335,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -20636,18 +19348,16 @@ }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typedoc": { "version": "0.25.8", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.8.tgz", - "integrity": "sha512-mh8oLW66nwmeB9uTa0Bdcjfis+48bAjSH3uqdzSuSawfduROQLlXw//WSNZLYDdhmMVB7YcYZicq6e8T0d271A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", @@ -20666,18 +19376,16 @@ }, "node_modules/typedoc/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/typedoc/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -20690,9 +19398,8 @@ }, "node_modules/typescript": { "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -20703,15 +19410,13 @@ }, "node_modules/ufo": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", - "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -20724,15 +19429,13 @@ }, "node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unicorn-magic": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -20742,9 +19445,8 @@ }, "node_modules/unified": { "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", @@ -20761,9 +19463,8 @@ }, "node_modules/unique-string": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -20776,9 +19477,8 @@ }, "node_modules/unist-util-filter": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-4.0.1.tgz", - "integrity": "sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -20787,15 +19487,13 @@ }, "node_modules/unist-util-filter/node_modules/@types/unist": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unist-util-filter/node_modules/unist-util-is": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0" }, @@ -20806,9 +19504,8 @@ }, "node_modules/unist-util-filter/node_modules/unist-util-visit-parents": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" @@ -20820,9 +19517,8 @@ }, "node_modules/unist-util-find-after": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", - "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -20834,9 +19530,8 @@ }, "node_modules/unist-util-is": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -20847,9 +19542,8 @@ }, "node_modules/unist-util-position": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -20860,9 +19554,8 @@ }, "node_modules/unist-util-remove-position": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" @@ -20874,9 +19567,8 @@ }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -20887,9 +19579,8 @@ }, "node_modules/unist-util-visit": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -20902,9 +19593,8 @@ }, "node_modules/unist-util-visit-parents": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -20916,32 +19606,27 @@ }, "node_modules/universal-user-agent": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/update-browserslist-db": { "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -20957,6 +19642,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -20970,9 +19656,8 @@ }, "node_modules/update-notifier": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -20998,9 +19683,8 @@ }, "node_modules/update-notifier/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -21010,18 +19694,16 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url": { "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^1.4.1", "qs": "^6.11.2" @@ -21029,18 +19711,16 @@ }, "node_modules/url-join": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", - "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -21048,15 +19728,13 @@ }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/url/node_modules/qs": { "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -21069,23 +19747,20 @@ }, "node_modules/util": { "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "2.0.3" } }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "license": "MIT" }, "node_modules/util/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/utility-types": { "version": "3.11.0", @@ -21098,24 +19773,21 @@ }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/v8-to-istanbul": { "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -21127,12 +19799,11 @@ }, "node_modules/verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" ], + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -21141,9 +19812,8 @@ }, "node_modules/vfile": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0", @@ -21156,9 +19826,8 @@ }, "node_modules/vfile-location": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", - "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" @@ -21170,9 +19839,8 @@ }, "node_modules/vfile-message": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -21184,9 +19852,8 @@ }, "node_modules/vite": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.3.tgz", - "integrity": "sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.19.3", "postcss": "^8.4.35", @@ -21239,9 +19906,8 @@ }, "node_modules/vite-node": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", - "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", "dev": true, + "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", @@ -21262,9 +19928,8 @@ }, "node_modules/vitest": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", - "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "^4.3.5", "@types/chai-subset": "^1.3.3", @@ -21339,9 +20004,8 @@ }, "node_modules/vizion": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", - "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", "dev": true, + "license": "Apache-2.0", "dependencies": { "async": "^2.6.3", "git-node-fs": "^1.0.0", @@ -21354,36 +20018,31 @@ }, "node_modules/vizion/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/vizion/node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/vscode-oniguruma": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-textmate": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, + "license": "MIT", "dependencies": { "xml-name-validator": "^4.0.0" }, @@ -21393,18 +20052,16 @@ }, "node_modules/walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } @@ -21417,9 +20074,8 @@ }, "node_modules/web-encoding": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", "dev": true, + "license": "MIT", "dependencies": { "util": "^0.12.3" }, @@ -21429,9 +20085,8 @@ }, "node_modules/web-encoding/node_modules/util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -21442,9 +20097,8 @@ }, "node_modules/web-namespaces": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -21452,17 +20106,15 @@ }, "node_modules/web-streams-polyfill": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/webcrypto-core": { "version": "1.7.8", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.8.tgz", - "integrity": "sha512-eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg==", + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/json-schema": "^1.1.12", @@ -21473,18 +20125,16 @@ }, "node_modules/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, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/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, + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -21494,9 +20144,8 @@ }, "node_modules/whatwg-encoding/node_modules/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, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -21506,23 +20155,20 @@ }, "node_modules/whatwg-fetch": { "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + "license": "MIT" }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/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, + "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -21533,9 +20179,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -21548,9 +20193,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -21564,9 +20208,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.6", "call-bind": "^1.0.5", @@ -21583,9 +20226,8 @@ }, "node_modules/why-is-node-running": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", "dev": true, + "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -21599,9 +20241,8 @@ }, "node_modules/widest-line": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -21614,9 +20255,8 @@ }, "node_modules/widest-line/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -21626,15 +20266,13 @@ }, "node_modules/widest-line/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/widest-line/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -21649,9 +20287,8 @@ }, "node_modules/widest-line/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -21664,15 +20301,13 @@ }, "node_modules/wildcard-match": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/wildcard-match/-/wildcard-match-5.1.2.tgz", - "integrity": "sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/windows-release": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.1.1.tgz", - "integrity": "sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.1.1" }, @@ -21685,9 +20320,8 @@ }, "node_modules/windows-release/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -21708,9 +20342,8 @@ }, "node_modules/windows-release/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -21720,17 +20353,16 @@ }, "node_modules/windows-release/node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/winston": { "version": "2.4.7", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.7.tgz", - "integrity": "sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==", + "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.4", "colors": "1.0.x", @@ -21745,17 +20377,16 @@ }, "node_modules/winston/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -21771,9 +20402,8 @@ "node_modules/wrap-ansi-cjs": { "name": "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -21788,15 +20418,13 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -21807,9 +20435,8 @@ }, "node_modules/ws": { "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -21828,9 +20455,8 @@ }, "node_modules/xdg-basedir": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -21840,39 +20466,34 @@ }, "node_modules/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, + "license": "Apache-2.0", "engines": { "node": ">=12" } }, "node_modules/xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yamljs": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "glob": "^7.0.5" @@ -21884,24 +20505,21 @@ }, "node_modules/yamljs/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/yamljs/node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -21917,18 +20535,16 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -21936,18 +20552,16 @@ }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -21957,9 +20571,8 @@ }, "node_modules/zwitch": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -21970,7 +20583,7 @@ "version": "1.1.1", "license": "Apache-2.0", "dependencies": { - "@noble/curves": "^1.2.0", + "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", "base64-arraybuffer": "^0.2.0", "borc": "^2.1.1", @@ -21998,6 +20611,38 @@ "@dfinity/principal": "^1.1.1" } }, + "packages/agent/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "packages/agent/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "packages/agent/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "dev": true, @@ -22059,9 +20704,8 @@ }, "packages/agent/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -22076,9 +20720,8 @@ }, "packages/agent/node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -22103,9 +20746,8 @@ }, "packages/agent/node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -22129,9 +20771,8 @@ }, "packages/agent/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -22154,10 +20795,9 @@ }, "packages/agent/node_modules/esbuild": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -22209,9 +20849,8 @@ }, "packages/agent/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -22322,6 +20961,38 @@ "@noble/hashes": "^1.3.1" } }, + "packages/assets/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "packages/assets/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "packages/assets/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "dev": true, @@ -22383,9 +21054,8 @@ }, "packages/assets/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -22400,9 +21070,8 @@ }, "packages/assets/node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -22427,9 +21096,8 @@ }, "packages/assets/node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -22453,9 +21121,8 @@ }, "packages/assets/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -22485,10 +21152,9 @@ }, "packages/assets/node_modules/esbuild": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -22540,9 +21206,8 @@ }, "packages/assets/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -22656,6 +21321,38 @@ "@dfinity/principal": "^1.1.1" } }, + "packages/auth-client/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "packages/auth-client/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "packages/auth-client/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "dev": true, @@ -22717,9 +21414,8 @@ }, "packages/auth-client/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -22734,9 +21430,8 @@ }, "packages/auth-client/node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -22761,9 +21456,8 @@ }, "packages/auth-client/node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -22787,9 +21481,8 @@ }, "packages/auth-client/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -22812,10 +21505,9 @@ }, "packages/auth-client/node_modules/esbuild": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -22867,9 +21559,8 @@ }, "packages/auth-client/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -22953,92 +21644,6 @@ "dev": true, "license": "MIT" }, - "packages/bls-verify": { - "name": "@dfinity/bls-verify", - "version": "1.1.1", - "license": "Apache-2.0", - "dependencies": { - "amcl-js": "file:src/vendor/amcl-js" - }, - "devDependencies": { - "@types/jest": "^29.5.5", - "esbuild": "^0.15.16", - "jest": "^29.7.0", - "size-limit": "^8.1.0" - } - }, - "packages/bls-verify/node_modules/esbuild": { - "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "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" - } - }, - "packages/bls-verify/node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "packages/bls-verify/node_modules/size-limit": { - "version": "8.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes-iec": "^3.1.1", - "chokidar": "^3.5.3", - "globby": "^11.1.0", - "lilconfig": "^2.1.0", - "nanospinner": "^1.1.0", - "picocolors": "^1.0.0" - }, - "bin": { - "size-limit": "bin.js" - }, - "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" - } - }, - "packages/bls-verify/src/vendor/amcl-js": { - "version": "3.0.0", - "license": "Apache License 2.0", - "dependencies": { - "prompt": "^1.0.0" - } - }, "packages/candid": { "name": "@dfinity/candid", "version": "1.1.1", @@ -23062,6 +21667,38 @@ "@dfinity/principal": "^1.1.1" } }, + "packages/candid/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "packages/candid/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "packages/candid/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "dev": true, @@ -23123,9 +21760,8 @@ }, "packages/candid/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -23140,9 +21776,8 @@ }, "packages/candid/node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -23167,9 +21802,8 @@ }, "packages/candid/node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -23193,9 +21827,8 @@ }, "packages/candid/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -23237,10 +21870,9 @@ }, "packages/candid/node_modules/esbuild": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -23314,9 +21946,8 @@ }, "packages/candid/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -23452,7 +22083,7 @@ "license": "Apache-2.0", "dependencies": { "@dfinity/agent": "^1.1.1", - "@noble/curves": "^1.3.0", + "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", "asn1js": "^3.0.5", "bip39": "^3.1.0", @@ -23464,6 +22095,73 @@ "@types/hdkey": "^2.0.3" } }, + "packages/identity-secp256k1/node_modules/@dfinity/agent": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.1.1.tgz", + "integrity": "sha512-FR7Vd+WMKetuwVhan5qevzk7QnsR44IfooaRjB/PohO+DztIg77uNsYKieloqeBqsqkxYkSJc8hYoAQm64YHNw==", + "dependencies": { + "@noble/curves": "^1.2.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^1.1.1", + "@dfinity/principal": "^1.1.1" + } + }, + "packages/identity-secp256k1/node_modules/@dfinity/candid": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.1.1.tgz", + "integrity": "sha512-CQlM5zWkzdlZ5tO4zQL6Ch0Wj9zROJpQ6Lcof8d3OE42FMIQwpLQeDKQ3i/CtxDuIHYia8dFI0rxM1E96WBpKQ==", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^1.1.1" + } + }, + "packages/identity-secp256k1/node_modules/@dfinity/principal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.1.1.tgz", + "integrity": "sha512-nXk8Cx01Y76/FAjYlMQHUpiI4cJkafAksgvnWFljIFWQMvOzjo2YCUIcZ3H+aVtEXJpXy61a6aseSSUQuaxlVw==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.3.1" + } + }, + "packages/identity/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "packages/identity/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "packages/identity/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "dev": true, @@ -23525,9 +22223,8 @@ }, "packages/identity/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -23542,9 +22239,8 @@ }, "packages/identity/node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -23569,9 +22265,8 @@ }, "packages/identity/node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -23595,9 +22290,8 @@ }, "packages/identity/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -23620,10 +22314,9 @@ }, "packages/identity/node_modules/esbuild": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -23675,9 +22368,8 @@ }, "packages/identity/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -23829,6 +22521,38 @@ "@dfinity/principal": "^0.20.2" } }, + "packages/principal/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "packages/principal/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "packages/principal/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "dev": true, @@ -23890,9 +22614,8 @@ }, "packages/principal/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -23907,9 +22630,8 @@ }, "packages/principal/node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -23934,9 +22656,8 @@ }, "packages/principal/node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -23960,9 +22681,8 @@ }, "packages/principal/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -23985,10 +22705,9 @@ }, "packages/principal/node_modules/esbuild": { "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -24040,9 +22759,8 @@ }, "packages/principal/node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } diff --git a/package.json b/package.json index f4b9063d5..b08b308c7 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "packages/principal", "packages/candid", "packages/agent", - "packages/bls-verify", "packages/identity", "packages/auth-client", "packages/assets", diff --git a/packages/agent/package.json b/packages/agent/package.json index 491eea56e..47b35c25f 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -51,7 +51,7 @@ "@dfinity/principal": "^1.1.1" }, "dependencies": { - "@noble/curves": "^1.2.0", + "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", "base64-arraybuffer": "^0.2.0", "borc": "^2.1.1", diff --git a/packages/agent/src/certificate.test.ts b/packages/agent/src/certificate.test.ts index d0970709b..fe22fe792 100644 --- a/packages/agent/src/certificate.test.ts +++ b/packages/agent/src/certificate.test.ts @@ -183,6 +183,7 @@ test('delegation works for canisters within the subnet range', async () => { certificate: fromHex(SAMPLE_CERT), rootKey: fromHex(IC_ROOT_KEY), canisterId: canisterId, + blsVerify: async () => true, }), ).resolves.not.toThrow(); } @@ -242,6 +243,7 @@ test('certificate verification fails if the time of the certificate is > 5 minut certificate: badCertEncoded, rootKey: fromHex(IC_ROOT_KEY), canisterId: Principal.fromText('ivg37-qiaaa-aaaab-aaaga-cai'), + blsVerify: async () => true, }), ).rejects.toThrow('Invalid certificate: Certificate is signed more than 5 minutes in the past'); }); @@ -257,6 +259,7 @@ test('certificate verification fails if the time of the certificate is > 5 minut certificate: badCertEncoded, rootKey: fromHex(IC_ROOT_KEY), canisterId: Principal.fromText('ivg37-qiaaa-aaaab-aaaga-cai'), + blsVerify: async () => true, }), ).rejects.toThrow('Invalid certificate: Certificate is signed more than 5 minutes in the future'); }); diff --git a/packages/agent/src/certificate.ts b/packages/agent/src/certificate.ts index 66bd3da94..b2fc03085 100644 --- a/packages/agent/src/certificate.ts +++ b/packages/agent/src/certificate.ts @@ -122,7 +122,7 @@ function isBufferEqual(a: ArrayBuffer, b: ArrayBuffer): boolean { return true; } -type VerifyFunc = (pk: Uint8Array, sig: Uint8Array, msg: Uint8Array) => Promise; +type VerifyFunc = (pk: Uint8Array, sig: Uint8Array, msg: Uint8Array) => Promise | boolean; export interface CreateCertificateOptions { /** diff --git a/packages/agent/src/decode.ts b/packages/agent/src/decode.ts new file mode 100644 index 000000000..be636aa58 --- /dev/null +++ b/packages/agent/src/decode.ts @@ -0,0 +1,19 @@ +const base64 = + 'owBjMS4wAYIB2BhYS6QBAiABIVgg9mAYr7gvS1_HoS6jCYHeU5CsIXm9WIKdDYO_K40TcpAiWCBS71FJ5Dqpen-RGx7B9myPf4KdLrgkt2iUfnjVBnXaCAKBgwIBowD0AfULUEpqDHHSUUKfgCqA9h8vDqs'; + +function convert(str: string) { + const byteArray = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + byteArray[i] = str.charCodeAt(i); + } + return byteArray; +} +convert(base64); //? + +// turn uint8array into string of bytes +function toHex(buffer: ArrayBuffer | Uint8Array) { + return Array.prototype.map + .call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)) + .join(''); +} +toHex(convert(base64)); //? diff --git a/packages/agent/src/utils/bls.test.ts b/packages/agent/src/utils/bls.test.ts deleted file mode 100644 index 65d6f6303..000000000 --- a/packages/agent/src/utils/bls.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { blsVerify } from './bls'; -import { fromHex } from './buffer'; - -test('verify', async () => { - const pk = new Uint8Array( - fromHex( - 'a7623a93cdb56c4d23d99c14216afaab3dfd6d4f9eb3db23d038280b6d5cb2caaee2a19dd92c9df7001d' + - 'ede23bf036bc0f33982dfb41e8fa9b8e96b5dc3e83d55ca4dd146c7eb2e8b6859cb5a5db815db86810b8' + - 'd12cee1588b5dbf34a4dc9a5', - ), - ); - const sig = new Uint8Array( - fromHex( - 'b89e13a212c830586eaa9ad53946cd968718ebecc27eda849d9232673dcd4f440e8b5df39bf14a88048c15e16cbcaabe', - ), - ); - - const msg = new Uint8Array(new TextEncoder().encode('hello')); - expect(await blsVerify(pk, sig, msg)).toBe(true); - expect(await blsVerify(pk, sig, new Uint8Array(new TextEncoder().encode('hallo')))).toBe(false); -}, 10000); // Default timer is flaky with WASM. diff --git a/packages/agent/src/utils/bls.ts b/packages/agent/src/utils/bls.ts index 1688e93ea..1fa74ecaa 100644 --- a/packages/agent/src/utils/bls.ts +++ b/packages/agent/src/utils/bls.ts @@ -1,4 +1,5 @@ -import init, { bls_init, bls_verify } from '../vendor/bls/bls'; +import { bls12_381 } from '@noble/curves/bls12-381'; +import { toHex } from './buffer'; export let verify: (pk: Uint8Array, sig: Uint8Array, msg: Uint8Array) => boolean; @@ -7,22 +8,11 @@ export let verify: (pk: Uint8Array, sig: Uint8Array, msg: Uint8Array) => boolean * @param pk primary key: Uint8Array * @param sig signature: Uint8Array * @param msg message: Uint8Array - * @returns Promise resolving a boolean + * @returns boolean */ -export async function blsVerify( - pk: Uint8Array, - sig: Uint8Array, - msg: Uint8Array, -): Promise { - if (!verify) { - await init(); - if (bls_init() !== 0) { - throw new Error('Cannot initialize BLS'); - } - verify = (pk1, sig1, msg1) => { - // Reorder things from what the WASM expects (sig, m, w). - return bls_verify(sig1, msg1, pk1) === 0; - }; - } - return verify(pk, sig, msg); +export function blsVerify(pk: Uint8Array, sig: Uint8Array, msg: Uint8Array): boolean { + const primaryKey = typeof pk === 'string' ? pk : toHex(pk); + const signature = typeof sig === 'string' ? sig : toHex(sig); + const message = typeof msg === 'string' ? msg : toHex(msg); + return bls12_381.verifyShortSignature(signature, message, primaryKey); } diff --git a/packages/agent/src/vendor/bls/README.md b/packages/agent/src/vendor/bls/README.md deleted file mode 100644 index 30471ec53..000000000 --- a/packages/agent/src/vendor/bls/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# How to Generate `wasm.ts` - -This WASM is generated from the miracl BLS Rust code (see https://github.com/dfinity/miracl_core_bls12381/) - -Run the following commands to build, minify, and base64 encode the wasm. - -```bash -wasm-pack build --out-name bls --no-default-features --features="wasm-bindgen allow_alt_compress" --profile=wasm - -echo -n "export const wasmBytesBase64 = \`" >pkg/wasm.ts -base64 ./pkg/bls_bg.wasm | tr -d "\n" >>pkg/wasm.ts -echo "\`;" >>pkg/wasm.ts -``` - -Copy the resulting `pkg/wasm.ts` to `packages/agent/src/vendor/bls/wasm.ts`. diff --git a/packages/agent/src/vendor/bls/bls.ts b/packages/agent/src/vendor/bls/bls.ts deleted file mode 100644 index 5cec7d8db..000000000 --- a/packages/agent/src/vendor/bls/bls.ts +++ /dev/null @@ -1,90 +0,0 @@ -import * as base64Arraybuffer from 'base64-arraybuffer'; - -// This WASM is generated from the miracl BLS Rust code (see -// https://github.com/dfinity/miracl_core_bls12381/) -import { wasmBytesBase64 } from './wasm'; - -let wasm: InitOutput; - -const wasmBytes = base64Arraybuffer.decode(wasmBytesBase64); - -/** - * @returns {number} - */ -export function bls_init() { - let ret = wasm.bls_init(); - return ret; -} - -let cachegetUint8Memory0: any = null; -function getUint8Memory0() { - if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) { - cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachegetUint8Memory0; -} - -function passArray8ToWasm0(arg: any, malloc: any): [number, number] { - const ptr = malloc(arg.length * 1); - getUint8Memory0().set(arg, ptr / 1); - return [ptr, arg.length]; -} - -/** - * @param {Uint8Array} sig - * @param {Uint8Array} m - * @param {Uint8Array} w - * @returns {number} - */ -export function bls_verify(sig: Uint8Array, m: Uint8Array, w: Uint8Array): number { - const [ptr0, len0] = passArray8ToWasm0(sig, wasm.__wbindgen_malloc); - const [ptr1, len1] = passArray8ToWasm0(m, wasm.__wbindgen_malloc); - const [ptr2, len2] = passArray8ToWasm0(w, wasm.__wbindgen_malloc); - - const ret = wasm.bls_verify(ptr0, len0, ptr1, len1, ptr2, len2); - return ret; -} - -async function load(module: any, imports: any) { - if (typeof Response === 'function' && module instanceof Response) { - const bytes = await module.arrayBuffer(); - return await WebAssembly.instantiate(bytes, imports); - } else { - const instance = await WebAssembly.instantiate(module, imports); - - if (instance instanceof WebAssembly.Instance) { - return { instance, module }; - } else { - return instance; - } - } -} - -async function init(): Promise { - const imports = {}; - const { instance, module } = await load(wasmBytes, imports); - - wasm = instance.exports as any as InitOutput; - (init as any).__wbindgen_wasm_module = module; - - return wasm; -} - -export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; - -export interface InitOutput { - readonly memory: WebAssembly.Memory; - readonly bls_init: () => number; - readonly bls_verify: (a: number, b: number, c: number, d: number, e: number, f: number) => number; - readonly __wbindgen_malloc: (a: number) => number; -} - -/** - * If `module_or_path` is {RequestInfo} or {URL}, makes a request and - * for everything else, calls `WebAssembly.instantiate` directly. - * - * @param {InitInput | Promise} module_or_path - * - * @returns {Promise} - */ -export default init; diff --git a/packages/agent/src/vendor/bls/wasm.ts b/packages/agent/src/vendor/bls/wasm.ts deleted file mode 100644 index c155311bc..000000000 --- a/packages/agent/src/vendor/bls/wasm.ts +++ /dev/null @@ -1 +0,0 @@ -export const wasmBytesBase64 = `AGFzbQEAAAABXg9gAn9/AGABfwBgAX8Bf2ADf39/AGACf38Bf2ADf39/AX9gBH9/f38AYAF/AX5gBX9/f39/AGAAAX9gBn9/f39/fwBgBn9/f39/fwF/YAJ/fwF+YAV/fn5+fgBgAAAD3wHdAQIAAAABAwoAAAAIBgQAAwEDAAEBAQAAAQAJAQMAAwEACAEDAwQAAwsADAIBAAEADQMEAAAAAgEBAAABAwABAQMEAAEBAQEBAQEAAAMBAgUABAEFBAEBAgIEAwQDAAAAAwAAAAABDgABAgAAAAEAAwMAAQMAAwYCAAAABAABAAABAQYBAwAAAgICAgIBAAMABAACAQAAAwAAAAAAAQEBAQIAAAEEAQMAAAABAAAEAgABAQEBAQEBAQEBBAQAAgMAAAABAAICAAIEBAEBAgICAgAEBQQEAgIJBwcHAQMDBAUBcAESEgUDAQARBgkBfwFBgIDAAAsHNwQGbWVtb3J5AgAIYmxzX2luaXQA1gEKYmxzX3ZlcmlmeQAnEV9fd2JpbmRnZW5fbWFsbG9jAGgJIQEAQQELEcgBQdoBTroBQH/XAdgBgAEcJVy7AccB2gHZAQr44QLdAd0hAg9/AX4jAEEQayIIJAACQAJAIABB9QFPBEBBgIB8QQhBCBCjAUEUQQgQowFqQRBBCBCjAWprQXdxQQNrIgJBAEEQQQgQowFBAnRrIgUgAiAFSRsgAE0NAiAAQQRqQQgQowEhBEHgu8AAKAIARQ0BQQAgBGshAQJAAkACf0EAIARBgAJJDQAaQR8gBEH///8HSw0AGiAEQQYgBEEIdmciAGt2QQFxIABBAXRrQT5qCyIHQQJ0Qey9wABqKAIAIgAEQCAEIAcQnwF0IQZBACECA0ACQCAAEMsBIgUgBEkNACAFIARrIgUgAU8NACAAIQIgBSIBDQBBACEBDAMLIABBFGooAgAiBSADIAUgACAGQR12QQRxakEQaigCACIARxsgAyAFGyEDIAZBAXQhBiAADQALIAMEQCADIQAMAgsgAg0CC0EAIQJBASAHdBCtAUHgu8AAKAIAcSIARQ0DIAAQwwFoQQJ0Qey9wABqKAIAIgBFDQMLA0AgACACIAAQywEiAiAETyACIARrIgMgAUlxIgUbIQIgAyABIAUbIQEgABCRASIADQALIAJFDQILIARB7L7AACgCACIATSABIAAgBGtPcQ0BIAIgBBDSASEAIAIQFwJAQRBBCBCjASABTQRAIAIgBBDFASAAIAEQoAEgAUGAAk8EQCAAIAEQFgwCCyABQQN2IgNBA3RB5LvAAGohAQJ/Qdy7wAAoAgAiBUEBIAN0IgNxBEAgASgCCAwBC0Hcu8AAIAMgBXI2AgAgAQshAyABIAA2AgggAyAANgIMIAAgATYCDCAAIAM2AggMAQsgAiABIARqEIUBCyACENQBIgFFDQEMAgtBECAAQQRqQRBBCBCjAUEFayAASxtBCBCjASEEAkACQAJAAn8CQAJAQdy7wAAoAgAiBSAEQQN2IgF2IgBBA3FFBEAgBEHsvsAAKAIATQ0HIAANAUHgu8AAKAIAIgBFDQcgABDDAWhBAnRB7L3AAGooAgAiAhDLASAEayEBIAIQkQEiAARAA0AgABDLASAEayIDIAEgASADSyIDGyEBIAAgAiADGyECIAAQkQEiAA0ACwsgAiAEENIBIQUgAhAXQRBBCBCjASABSw0FIAIgBBDFASAFIAEQoAFB7L7AACgCACIARQ0EIABBA3YiBkEDdEHku8AAaiEAQfS+wAAoAgAhA0Hcu8AAKAIAIgdBASAGdCIGcUUNAiAAKAIIDAMLAkAgAEF/c0EBcSABaiIAQQN0IgNB7LvAAGooAgAiAUEIaigCACICIANB5LvAAGoiA0cEQCACIAM2AgwgAyACNgIIDAELQdy7wAAgBUF+IAB3cTYCAAsgASAAQQN0EIUBIAEQ1AEhAQwHCwJAQQEgAUEfcSIBdBCtASAAIAF0cRDDAWgiAEEDdCIDQey7wABqKAIAIgJBCGooAgAiASADQeS7wABqIgNHBEAgASADNgIMIAMgATYCCAwBC0Hcu8AAQdy7wAAoAgBBfiAAd3E2AgALIAIgBBDFASACIAQQ0gEiBSAAQQN0IARrIgQQoAFB7L7AACgCACIABEAgAEEDdiIDQQN0QeS7wABqIQBB9L7AACgCACEBAn9B3LvAACgCACIGQQEgA3QiA3EEQCAAKAIIDAELQdy7wAAgAyAGcjYCACAACyEDIAAgATYCCCADIAE2AgwgASAANgIMIAEgAzYCCAtB9L7AACAFNgIAQey+wAAgBDYCACACENQBIQEMBgtB3LvAACAGIAdyNgIAIAALIQYgACADNgIIIAYgAzYCDCADIAA2AgwgAyAGNgIIC0H0vsAAIAU2AgBB7L7AACABNgIADAELIAIgASAEahCFAQsgAhDUASIBDQELAkACQAJAAkACQAJAAkACQCAEQey+wAAoAgAiAUsEQEHwvsAAKAIAIgAgBEsNAkEIQQgQowEgBGpBFEEIEKMBakEQQQgQowFqQYCABBCjASIBQRB2QAAhACAIQQA2AgggCEEAIAFBgIB8cSAAQX9GIgEbNgIEIAhBACAAQRB0IAEbNgIAIAgoAgAiAQ0BQQAhAQwJC0H0vsAAKAIAIQBBEEEIEKMBIAEgBGsiAUsEQEH0vsAAQQA2AgBB7L7AACgCACEBQey+wABBADYCACAAIAEQhQEgABDUASEBDAkLIAAgBBDSASECQey+wAAgATYCAEH0vsAAIAI2AgAgAiABEKABIAAgBBDFASAAENQBIQEMCAsgCCgCCCEFQfy+wAAgCCgCBCIDQfy+wAAoAgBqIgA2AgBBgL/AAEGAv8AAKAIAIgIgACAAIAJJGzYCAAJAAkBB+L7AACgCAARAQYS/wAAhAANAIAAQxgEgAUYNAiAAKAIIIgANAAsMAgtBmL/AACgCACIARSAAIAFLcg0DDAcLIAAQzQENACAAEM4BIAVHDQAgACgCACICQfi+wAAoAgAiBk0EfyACIAAoAgRqIAZLBUEACw0DC0GYv8AAQZi/wAAoAgAiACABIAAgAUkbNgIAIAEgA2ohAkGEv8AAIQACQAJAA0AgAiAAKAIARwRAIAAoAggiAA0BDAILCyAAEM0BDQAgABDOASAFRg0BC0H4vsAAKAIAIQJBhL/AACEAAkADQCACIAAoAgBPBEAgABDGASACSw0CCyAAKAIIIgANAAtBACEACyACIAAQxgEiD0EUQQgQowEiDmtBF2siABDUASIGQQgQowEgBmsgAGoiACAAQRBBCBCjASACakkbIgYQ1AEhByAGIA4Q0gEhAEEIQQgQowEhCUEUQQgQowEhC0EQQQgQowEhDEH4vsAAIAEgARDUASIKQQgQowEgCmsiDRDSASIKNgIAQfC+wAAgA0EIaiAMIAkgC2pqIA1qayIJNgIAIAogCUEBcjYCBEEIQQgQowEhC0EUQQgQowEhDEEQQQgQowEhDSAKIAkQ0gEgDSAMIAtBCGtqajYCBEGUv8AAQYCAgAE2AgAgBiAOEMUBQYS/wAApAgAhECAHQQhqQYy/wAApAgA3AgAgByAQNwIAQZC/wAAgBTYCAEGIv8AAIAM2AgBBhL/AACABNgIAQYy/wAAgBzYCAANAIABBBBDSASEBIABBBzYCBCAPIAEiAEEEaksNAAsgAiAGRg0HIAIgBiACayIAIAIgABDSARCDASAAQYACTwRAIAIgABAWDAgLIABBA3YiAUEDdEHku8AAaiEAAn9B3LvAACgCACIDQQEgAXQiAXEEQCAAKAIIDAELQdy7wAAgASADcjYCACAACyEBIAAgAjYCCCABIAI2AgwgAiAANgIMIAIgATYCCAwHCyAAKAIAIQUgACABNgIAIAAgACgCBCADajYCBCABENQBIgBBCBCjASECIAUQ1AEiA0EIEKMBIQYgASACIABraiICIAQQ0gEhASACIAQQxQEgBSAGIANraiIAIAIgBGprIQQgAEH4vsAAKAIARwRAQfS+wAAoAgAgAEYNBCAAKAIEQQNxQQFHDQUCQCAAEMsBIgNBgAJPBEAgABAXDAELIABBDGooAgAiBSAAQQhqKAIAIgZHBEAgBiAFNgIMIAUgBjYCCAwBC0Hcu8AAQdy7wAAoAgBBfiADQQN2d3E2AgALIAMgBGohBCAAIAMQ0gEhAAwFC0H4vsAAIAE2AgBB8L7AAEHwvsAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAIQ1AEhAQwHC0HwvsAAIAAgBGsiATYCAEH4vsAAQfi+wAAoAgAiACAEENIBIgI2AgAgAiABQQFyNgIEIAAgBBDFASAAENQBIQEMBgtBmL/AACABNgIADAMLIAAgACgCBCADajYCBEHwvsAAKAIAIANqIQFB+L7AACgCACIAIAAQ1AEiAEEIEKMBIABrIgIQ0gEhAEHwvsAAIAEgAmsiATYCAEH4vsAAIAA2AgAgACABQQFyNgIEQQhBCBCjASECQRRBCBCjASEDQRBBCBCjASEFIAAgARDSASAFIAMgAkEIa2pqNgIEQZS/wABBgICAATYCAAwDC0H0vsAAIAE2AgBB7L7AAEHsvsAAKAIAIARqIgA2AgAgASAAEKABIAIQ1AEhAQwDCyABIAQgABCDASAEQYACTwRAIAEgBBAWIAIQ1AEhAQwDCyAEQQN2IgNBA3RB5LvAAGohAAJ/Qdy7wAAoAgAiBUEBIAN0IgNxBEAgACgCCAwBC0Hcu8AAIAMgBXI2AgAgAAshAyAAIAE2AgggAyABNgIMIAEgADYCDCABIAM2AgggAhDUASEBDAILQZy/wABB/x82AgBBkL/AACAFNgIAQYi/wAAgAzYCAEGEv8AAIAE2AgBB8LvAAEHku8AANgIAQfi7wABB7LvAADYCAEHsu8AAQeS7wAA2AgBBgLzAAEH0u8AANgIAQfS7wABB7LvAADYCAEGIvMAAQfy7wAA2AgBB/LvAAEH0u8AANgIAQZC8wABBhLzAADYCAEGEvMAAQfy7wAA2AgBBmLzAAEGMvMAANgIAQYy8wABBhLzAADYCAEGgvMAAQZS8wAA2AgBBlLzAAEGMvMAANgIAQai8wABBnLzAADYCAEGcvMAAQZS8wAA2AgBBsLzAAEGkvMAANgIAQaS8wABBnLzAADYCAEGsvMAAQaS8wAA2AgBBuLzAAEGsvMAANgIAQbS8wABBrLzAADYCAEHAvMAAQbS8wAA2AgBBvLzAAEG0vMAANgIAQci8wABBvLzAADYCAEHEvMAAQby8wAA2AgBB0LzAAEHEvMAANgIAQcy8wABBxLzAADYCAEHYvMAAQcy8wAA2AgBB1LzAAEHMvMAANgIAQeC8wABB1LzAADYCAEHcvMAAQdS8wAA2AgBB6LzAAEHcvMAANgIAQeS8wABB3LzAADYCAEHwvMAAQeS8wAA2AgBB+LzAAEHsvMAANgIAQey8wABB5LzAADYCAEGAvcAAQfS8wAA2AgBB9LzAAEHsvMAANgIAQYi9wABB/LzAADYCAEH8vMAAQfS8wAA2AgBBkL3AAEGEvcAANgIAQYS9wABB/LzAADYCAEGYvcAAQYy9wAA2AgBBjL3AAEGEvcAANgIAQaC9wABBlL3AADYCAEGUvcAAQYy9wAA2AgBBqL3AAEGcvcAANgIAQZy9wABBlL3AADYCAEGwvcAAQaS9wAA2AgBBpL3AAEGcvcAANgIAQbi9wABBrL3AADYCAEGsvcAAQaS9wAA2AgBBwL3AAEG0vcAANgIAQbS9wABBrL3AADYCAEHIvcAAQby9wAA2AgBBvL3AAEG0vcAANgIAQdC9wABBxL3AADYCAEHEvcAAQby9wAA2AgBB2L3AAEHMvcAANgIAQcy9wABBxL3AADYCAEHgvcAAQdS9wAA2AgBB1L3AAEHMvcAANgIAQei9wABB3L3AADYCAEHcvcAAQdS9wAA2AgBB5L3AAEHcvcAANgIAQQhBCBCjASECQRRBCBCjASEFQRBBCBCjASEGQfi+wAAgASABENQBIgBBCBCjASAAayIBENIBIgA2AgBB8L7AACADQQhqIAYgAiAFamogAWprIgE2AgAgACABQQFyNgIEQQhBCBCjASECQRRBCBCjASEDQRBBCBCjASEFIAAgARDSASAFIAMgAkEIa2pqNgIEQZS/wABBgICAATYCAAtBACEBQfC+wAAoAgAiACAETQ0AQfC+wAAgACAEayIBNgIAQfi+wABB+L7AACgCACIAIAQQ0gEiAjYCACACIAFBAXI2AgQgACAEEMUBIAAQ1AEhAQsgCEEQaiQAIAEL+A4BCX8jAEHADWsiAiQAAkACQAJAAkACQAJAAkACQAJAIAAoAoAGIgVBAUcEQCABKAKABiIGQQFGDQkgBkEDSw0BIAVBfnFBAkYNAiACIAAQjAEgAkGAAmoiBEE4ENABGiACQQE2ArgCIAJBwAJqQTgQ0AEaIAJB+AJqQQE2AgAgAkGAA2pBOBDQARogAkG4A2pBATYCACACQcADakE4ENABGiACQfgDakEBNgIAIAJBgARqQTgQ0AEaIAJBATYCuAQgAkHABGpBOBDQARogAkH4BGpBATYCACACQYAFakE4ENABGiACQbgFakEBNgIAIAJBwAVqQTgQ0AEaIAJB+AVqQQE2AgAgAkGABmoiB0E4ENABGiACQQE2ArgGIAJBwAZqQTgQ0AEaIAJB+AZqQQE2AgAgAkGAB2pBOBDQARogAkG4B2pBATYCACACQcAHakE4ENABGiACQfgHakEBNgIAIAJBgAhqIgMgABCMASACQYAKakE4ENABGiACQQE2ArgKIAJBwApqQTgQ0AEaIAJB+ApqQQE2AgAgAkGAC2pBOBDQARogAkG4C2pBATYCACACQcALakE4ENABGiACQfgLakEBNgIAIAIgARAYIAMgAEGAAmoiBhCXASADELABIAQgAxCWASAEIAEQGCADIAYQlgEgAyAAQYAEaiIFEJcBIAMQsAEgByADEJYBIAEoAoAGQQJGDQMgAkHADGoiAyABQYAFahBeIAJBgAZqIAMQpgEMBAsgACABEG0MCAsgAiAAEIwBIAJBgAJqQTgQ0AEaIAJBATYCuAIgAkHAAmpBOBDQARogAkH4AmpBATYCACACQYADakE4ENABGiACQbgDakEBNgIAIAJBwANqQTgQ0AEaIAJB+ANqQQE2AgAgAkGABGpBOBDQARogAkEBNgK4BCACQcAEakE4ENABGiACQfgEakEBNgIAIAJBgAVqQTgQ0AEaIAJBuAVqQQE2AgAgAkHABWpBOBDQARogAkH4BWpBATYCACACQYAGakE4ENABGiACQQE2ArgGIAJBwAZqQTgQ0AEaIAJB+AZqQQE2AgAgAkGAB2pBOBDQARogAkG4B2pBATYCACACQcAHakE4ENABGiACQfgHakEBNgIAIAIgARAYAkAgASgCgAZBBEYNACAAKAKABkEERg0AIAJBgARqIgMgAEGAAmoQlgEgAyABQYACahAYDAYLIAJBwAxqIgdBOBDQARogAkEBNgL4DCACQYANakE4ENABGiACQbgNakEBNgIAIAJBgAhqIgRBOBDQARogAkEBNgK4CCACQcAIakE4ENABGiACQfgIakEBNgIAIAJBgApqIgMgAEGAA2oiBRBeIAQgAxCZASADIAFBgANqIgYQXiAEIAMQESAHELYBIAEoAoAGQQRHDQMMBAsgACABEAMMBgsgAkHADGoiAyABQYAFahBeIAJBgAxqIgQgA0HAABDRARogAkGABmogBBCnAQsgAkGABmoQZCACQYAIaiIDIAIQlgEgAxArIAJBgAJqIgQgAxCXASAGIAQQlgEgAkGABGoiByADEJYBIAMgABCWASADIAUQlwEgAxCwASACQYAKaiIEIAEQlgEgBCABQYAEahCXASAEELABIAMgBBAYIAcgAxCXASADIAUQlgECQCABKAKABkECRwRAIAJBwAxqIgMgAUGABWoQXiACQYAIaiADEKYBDAELIAJBwAxqIgMgAUGABWoQXiACQYAMaiIBIANBwAAQ0QEaIAJBgAhqIAEQpwELIAJBgAhqIgEQZCACQYAKaiIDIAEQlgEgAxArIAUgAkGABGoQlgEgBSADEJcBIAJBgAZqIgQgAxCXASABEGQgBiABEJcBIAQQsAEgBBBkIAAgAhCWASAAIAQQlwEMAwsgAkGACmoiAyAFEF4gAkHADGoiBCADEJkBIAMgAUGAAmoQXiAEIAMQEQsgACgCgAZBBEcEQCACQYAKaiIDIABBgAJqEF4gAkHADGoiBCADEJkBIAMgBhBeIAQgAxARCyACQYAEaiIDIAJBwAxqIAJBgAhqEKUBIAMQZAsgAkGACGoiAyAAEIwBIAJBgApqIgQgARCMASADIABBgAJqIgUQlwEgAxCwASAEIAFBgAJqIggQlwEgBBCwASACQYACaiIJIAMQlgEgCSAEEBggAyAFEJYBIAMgAEGABGoiBhCXASADELABIAQgCBCWASAEIAFBgARqIggQlwEgBBCwASACQYAGaiIHIAMQlgEgByAEEBggAyACEJYBIAMQKyAEIAJBgARqIgoQlgEgBBArIAkgAxCXASAFIAkQlgEgBSAEEJcBIAcgBBCXASAKIAMQlwEgAyAAEJYBIAMgBhCXASADELABIAQgARCWASAEIAgQlwEgBBCwASADIAQQGCAKIAMQlwEgAyAGEJYBIAMgCBAYIAQgAxCWASAEECsgBiAKEJYBIAYgBBCXASAHIAQQlwEgAxBkIAUgAxCXASAHELABIAcQZCAAIAIQlgEgACAHEJcBCyAAQQU2AoAGIAAQnQELIAJBwA1qJAALqAsBEX8jAEGAC2siAiQAIAJBCGoQZyACQcgBaiIKQTgQ0AEaIAJBATYCgAIgAkGIAmoiD0E4ENABGiACQQE2AsACIAJByAJqIhBBOBDQARogAkEBNgKAAyACQYgDaiIJQTgQ0AEaIAJBATYCwAMgAkHIA2oiDkE4ENABGiACQQE2AoAEIAJBiARqIhFBARA5IAJByARqIgtBOBDQARogAkEBNgKABSACQYgFaiIEQTgQ0AEaIAJBATYCwAUgAkHIBWoiBSABEJABIAJBiAZqIgNBOBDQARogAkEBNgLABiACQcgGaiIGQTgQ0AEaIAJBATYCgAcgAkGIB2oiDEE4ENABGiACQQE2AsAHIAJByAdqIghBOBDQARogAkEBNgKACCAFEFYhEiACQcgJaiINQZCCwAAQSSACQYgKaiIHIA0QjgEgCiAHEK4BIA1ByILAABBJIAcgDRCOASAPIAcQrgEgBRBMIAVBCxA0IAMgBRCuASADIBEQdyADEEIgAyAFEEogBCAKEK4BIAQgAxBKIAMgERB3IAJBiAZqEEIgAyAPEEogAxBDIAJBiAZqEEIgCSADEK4BIA4gBRCuASAOIAkQSiAIIAkQrgEgCBBMIAYgBBCuASAGEEwgAyAKEK4BIAMgBhBKIAggAxB3IAgQQiAIIAkQSiAGIAQQSiADIA8QrgEgAyAGEEogCCADEHcgAkHIB2oQQiADIAgQrgEgAyAEEEogAyAMEFohCiAEIAMQrgEgBCAMEDMgBCAIEEogCSAEEEogDiAEEEogBSABEEogBiAEEK4BIAYQTCAEIAYQrgEgBCAFEEogBSADEK4BIAVBCxA0IA1BgIPAABBJIAcgDRCOASAQIAcQrgEgECAMEEogCSAOQQEgCmsiARByIAYgBCABEHIgAyAFIAEQciAMIBAgARByIAcgAyAMECMgCyAHEK4BIAsgBhBKIAsQViEBIAMgCxCuASADEEMgAkGIBmoQQiALIAMgASAScxByIAdBuIPAABBJIAJBiAhqIAcQjgFBOCEBA0AgAUGgBUZFBEAgAkGICGoiAyACQYgDahBKIAJByAlqIgQgAUG4g8AAahBJIAFBOGohASACQYgKaiIFIAQQjgEgAkGIBmoiBCAFEK4BIAMgBBB3IAMQQgwBCwsgAkHICGoiASACQYgDahCQASACQcgJaiIDQdiIwAAQSSACQYgKaiIEIAMQjgEgAkGIBmoiAyAEEK4BIAEgAxB3IAEQQkEAIQEDQCABQfgDRkUEQCACQcgIaiIDIAJBiANqEEogAkHICWoiBCABQZCJwABqEEkgAUE4aiEBIAJBiApqIgUgBBCOASACQYgGaiIEIAUQrgEgAyAEEHcgAxBCDAELCyACQYgKaiIBQYiNwAAQSSACQYgJaiABEI4BQQAhAQNAIAFByAZGRQRAIAJBiAlqIgMgAkGIA2oQSiACQcgJaiIEIAFBwI3AAGoQSSABQThqIQEgAkGICmoiBSAEEI4BIAJBiAZqIgQgBRCuASADIAQQdyADEEIMAQsLIAJByAlqIgEgAkGIA2oQkAEgAkHICmoiA0GIlMAAEEkgAkGICmoiBCADEI4BIAJBiAZqIgMgBBCuASABIAMQdyABEEJBACEBA0AgAUGQBkYEQCACQYgJaiIDIAJByARqEEogAkGIBmoiASACQYgIahCuASABIAJByAlqIgQQSiACQQhqIgUgARCuASABIAMQrgEgASACQcgIaiIDEEogAkHIAGogARCuASABIAMQrgEgASAEEEogAkGIAWogARCuASAAIAVBwAEQ0QEaIAJBgAtqJAAFIAJByAlqIgMgAkGIA2oQSiACQcgKaiIEIAFBwJTAAGoQSSABQThqIQEgAkGICmoiBSAEEI4BIAJBiAZqIgQgBRCuASADIAQQdyADEEIMAQsLC/oGAQx/IwBBgAlrIgMkACADQYAIaiICIAAQXiADIAIQXiACIABBgAFqIgoQXiADQYABaiIEIAIQXiACIAEQXiADIAIQESACIAFBgAFqIgsQXiAEIAIQEQJAIAEoAoAGIgJBAkYgACgCgAYiBEECRnJFBEAgA0GACGoiAiAAQYAFahBeIANBgAJqIgQgAhBeIAIgAUGABWoQXiAEIAIQEQwBCyACQQJGIARBAkZxRQRAIAJBAkYEQCADQYAIaiICIABBgAVqEF4gA0GAAmoiBCACEF4gAiABQYAFahBeIANBgAdqIgUgAkHAABDRARogBCAFEKoBDAILIANBgAhqIgIgAUGABWoQXiADQYACaiIEIAIQXiACIABBgAVqEF4gA0GAB2oiBSACQcAAENEBGiAEIAUQqgEMAQsgA0GACGoiAiAAQYAFahBeIANBgAdqIgQgAkHAABDRARogA0GABmoiBSAEEJABIAIgAUGABWoQXiAEIAJBwAAQ0QEaIAUgBBBKIANBgAJqQTgQ0AEiAkEBNgI4IAJBQGtBOBDQASACQfgAakEBNgIAIAIgBRCuARDBAQsgA0GACGoiAiAAEF4gA0GAA2oiBCACEF4gAiABEF4gA0GABGoiBSACEF4gAiAKEF4gBCACEJoBIAQQqQEgAiALEF4gBSACEJoBIAUQqQEgA0GABWoiByAEEF4gByAFEBEgA0GABmoiBiADEF4gBiADQYABaiIIEJoBIAYQNiAHIAYQmgEgAiAAEF4gBCACEJkBIAIgAEGABWoiDBBeIAQgAhCaASAEEKkBIAIgARBeIAUgAhCZASACIAFBgAVqIg0QXiAFIAIQmgEgBRCpASADQYAHaiIJIAQQXiAJIAUQESAGIAMQmQEgBiADQYACaiIBEJoBIAYQNiAJIAYQmgEgAiAKEF4gBCACEJkBIAIgDBBeIAQgAhCaASAEEKkBIAIgCxBeIAUgAhCZASACIA0QXiAFIAIQmgEgBRCpASACIAQQXiACIAUQESAGIAgQmQEgBiABEJoBIAYQNiACIAYQmgEgCBB8IAMgCBCaASAAIAMgBxClASABEHwgARCpASAAQYACaiIEQYABaiABEJkBIAQQtgEgAhCpASACEHwgAEGABGoiASACIAkQpQEgABCwASABELABIABBBDYCgAYgA0GACWokAAuHBwEFfyAAENUBIgAgABDLASICENIBIQECQAJAAkAgABDMAQ0AIAAoAgAhAwJAIAAQxAFFBEAgAiADaiECIAAgAxDTASIAQfS+wAAoAgBHDQEgASgCBEEDcUEDRw0CQey+wAAgAjYCACAAIAIgARCDAQ8LIAIgA2pBEGohAAwCCyADQYACTwRAIAAQFwwBCyAAQQxqKAIAIgQgAEEIaigCACIFRwRAIAUgBDYCDCAEIAU2AggMAQtB3LvAAEHcu8AAKAIAQX4gA0EDdndxNgIACwJAIAEQvAEEQCAAIAIgARCDAQwBCwJAAkACQEH4vsAAKAIAIAFHBEAgAUH0vsAAKAIARw0BQfS+wAAgADYCAEHsvsAAQey+wAAoAgAgAmoiATYCACAAIAEQoAEPC0H4vsAAIAA2AgBB8L7AAEHwvsAAKAIAIAJqIgE2AgAgACABQQFyNgIEIABB9L7AACgCAEYNAQwCCyABEMsBIgMgAmohAgJAIANBgAJPBEAgARAXDAELIAFBDGooAgAiBCABQQhqKAIAIgFHBEAgASAENgIMIAQgATYCCAwBC0Hcu8AAQdy7wAAoAgBBfiADQQN2d3E2AgALIAAgAhCgASAAQfS+wAAoAgBHDQJB7L7AACACNgIADAMLQey+wABBADYCAEH0vsAAQQA2AgALQZS/wAAoAgAgAU8NAUGAgHxBCEEIEKMBQRRBCBCjAWpBEEEIEKMBamtBd3FBA2siAEEAQRBBCBCjAUECdGsiASAAIAFJG0UNAUH4vsAAKAIARQ0BQQhBCBCjASEAQRRBCBCjASEBQRBBCBCjASECQQACQEHwvsAAKAIAIgQgAiABIABBCGtqaiICTQ0AQfi+wAAoAgAhAUGEv8AAIQACQANAIAEgACgCAE8EQCAAEMYBIAFLDQILIAAoAggiAA0AC0EAIQALIAAQzQENACAAQQxqKAIAGgwAC0EAEBlrRw0BQfC+wAAoAgBBlL/AACgCAE0NAUGUv8AAQX82AgAPCyACQYACSQ0BIAAgAhAWQZy/wABBnL/AACgCAEEBayIANgIAIAANABAZGg8LDwsgAkEDdiIDQQN0QeS7wABqIQECf0Hcu8AAKAIAIgJBASADdCIDcQRAIAEoAggMAQtB3LvAACACIANyNgIAIAELIQMgASAANgIIIAMgADYCDCAAIAE2AgwgACADNgIIC4kHAgV+EH8jAEGQAmsiCSQAIABB6AAQ0AEhEiAJQTBqIgBB4AEQ0AEaA0AgCEE4RgRAIAFBCGohFCACQQhqIRUgAiENIAEhE0EBIQsgCSkDMCIDIQYgCUE4aikDACIEIQcFIAlBIGogAiAIaikDACIDIANCP4cgASAIaikDACIDIANCP4cQLyAAIAlBKGopAwA3AwggACAJKQMgNwMAIABBEGohACAIQQhqIQgMAQsLA0AgEiAQQQN0aiADQv//////////A4M3AwAgBEIGhiADQjqIhCEDIARCOochBAJAAkACQCALQQdGBEBBByEKQQAhDkEGIQsMAQsgECALQQF2IgBrIQwgDSAAQQN0IhFrIRYgEyARayEXIAQgCUEwaiALQQR0aiIKQQhqKQMAIAd8IAopAwAiBCAGfCIGIARUrXwiB3wgAyAGfCIDIAZUrXwhBCALQQFqIQ9BMCEIIBQhCiAVIQ4DQCAAIAtPDQMgCCARRg0CIAxBB0kEQCAJQRBqIAggFmpBMGspAwAgDiARaikDAH0iBSAFQj+HIAogEWopAwAgCCAXakEwaykDAH0iBSAFQj+HEC8gCSkDECIFIAN8IgMgBVStIAlBGGopAwAgBHx8IQQgAEEBaiEAIAxBAWshDCAKQQhqIQogDkEIaiEOIAhBCGshCAwBCwsgDEEHQdSbwAAQOwALA0ACQCAKQQ1HBEAgCyAKQQF2Ig1rIQwgDiANQQN0IgBrIQggAEEIaiEAIAQgByAKQQR0IAlqQUBqIg9BCGopAwB9IAYgDykDACIEVK19Igd8IAYgBH0iBiADfCIDIAZUrXwhBCAKQQFqIQ8DQCANQQVLDQIgDEEGTQRAIAkgAiAIakEwaikDACAAIAJqKQMAfSIFIAVCP4cgACABaikDACABIAhqQTBqKQMAfSIFIAVCP4cQLyAJKQMAIgUgA3wiAyAFVK0gCUEIaikDACAEfHwhBCANQQFqIQ0gCEEIayEIIAxBAWshDCAAQQhqIQAMAQsLIAxBB0Hkm8AAEDsACyASIAM3A2ggCUGQAmokAA8LIBIgCkEDdGogA0L//////////wODNwMAIARCBoYgA0I6iIQhAyAOQQhqIQ4gC0EBaiELIARCOochBCAPIQoMAAsAC0EHQQdBxJvAABA7AAsgDUEIaiENIBNBCGohEyAQQQFqIRAgDyELDAALAAuqAwEBfyMAQdAGayIGJAAgBkHAABDQASIGQUBrQagCENABEEQDQCABBEAgBkFAa0EAEDwgAUEBayEBDAEFIAIEQCAGQUBrIAIgAxB0CwsLIAQEQCAGQUBrIAQgBRB0CyAGQZAGaiIDQgA3AAAgA0EYakIANwAAIANBEGpCADcAACADQQhqQgA3AAAgBkFAayIBKAIEIQQgASgCACEFQYABIQIDQCABIAIQPEEAIQIgASgCAEH/A3FBwANHDQALIAFB5ABqIAU2AgAgAUHgAGogBDYCACABEA9BACEEA0AgAkEgRgRAIAEQRAUgAiADaiABIAJBfHFqQQhqKAIAIARBf3NBGHF2OgAAIARBCGohBCACQQFqIQIMAQsLQQAhAQNAIAFBIEcEQCABIAZqIAZBkAZqIAFqLQAAOgAAIAFBAWohAQwBCwtBACEBAkACQANAAkAgAUEgRg0DIAFBwABGDQAgAUHAAEYNAiAAIAFqIAEgBmotAAA6AAAgAUEBaiEBDAELC0HAAEHAAEH8qsAAEDsAC0HAAEHAAEGMq8AAEDsACyAGQdAGaiQAC74EAQl/IwBBgAxrIgIkACACIAAQjAEgAkGAAmoiCUE4ENABGiACQQE2ArgCIAJBwAJqQTgQ0AEaIAJB+AJqQQE2AgAgAkGAA2pBOBDQARogAkG4A2pBATYCACACQcADakE4ENABGiACQfgDakEBNgIAIAJBgARqIgYgAEGAAmoiBxCMASACQYAGaiIFQTgQ0AEaIAJBATYCuAYgAkHABmpBOBDQARogAkH4BmpBATYCACACQYAHakE4ENABGiACQbgHakEBNgIAIAJBwAdqQTgQ0AEaIAJB+AdqQQE2AgAgAkGACGoiAyAAEIwBIAJBgApqIgQgARCMASACIAEQGCAGIAFBgAJqIggQGCADIAcQlwEgBCAIEJcBIAMQsAEgBBCwASAJIAMQlgEgCSAEEBggAyAHEJYBIAMgAEGABGoiChCXASAEIAgQlgEgBCABQYAEaiIIEJcBIAMQsAEgBBCwASAFIAMQlgEgBSAEEBggAyACEJYBIAMQKyAEIAYQlgEgBBArIAkgAxCXASAHIAkQlgEgByAEEJcBIAUgBBCXASAGIAMQlwEgAyAAEJYBIAMgChCXASADELABIAQgARCWASAEIAgQlwEgBBCwASADIAQQGCAGIAMQlwEgAyAKEJYBIAMgCBAYIAQgAxCWASAEECsgCiAGEJYBIAogBBCXASAFIAQQlwEgAxBkIAcgAxCXASAFELABIAUQZCAAIAIQlgEgACAFEJcBIABBBTYCgAYgABCdASACQYAMaiQAC4oEAQp/IwBBgAhrIgIkACACIAAQXiACIAEQESACQYABaiIHIABBgAFqIgkQXiAHIAFBgAFqIgQQESACQYACaiIGIABBgAJqIgoQXiAGIAFBgAJqIgsQESACQYADaiIIIAAQXiAIIAkQmgEgCBCpASACQYAEaiIFIAEQXiAFIAQQmgEgBRCpASAIIAUQESAFIAIQmQEgBSAHEJoBIAggBRB7IAgQqQEgBSAJEJkBIAUgChCaASAFEKkBIAJBgAVqIgMgBBBeIAMgCxCaASADEKkBIAUgAxARIAMgBxCZASADIAYQmgEgBSADEHsgBRCpASADIAAQmQEgAyAKEJoBIAMQqQEgAkGABmoiBCABEF4gBCALEJoBIAQQqQEgAyAEEBEgBCACEJkBIAQgBhCaASAEIAMQvwEgBBCpASADIAIQmQEgAyACEJoBIAIgAxCaASACEKkBIAZBDBCrASAGEHwgBhCpASACQYAHaiIBIAcQXiABIAYQmgEgARCpASAHIAYQeyAHEKkBIARBDBCrASAEEHwgBBCpASADIAQQmQEgAyAFEBEgBiAIEJkBIAYgBxARIAMgBhC/ASAEIAIQESAHIAEQESAEIAcQmgEgAiAIEBEgASAFEBEgASACEJoBIAAgAxCZASAAEKkBIAkgBBCZASAJEKkBIAogARCZASAKEKkBIAJBgAhqJAAL8gMBCn8jAEGABGsiAiQAIAIgABCQASACIAEQSiACQUBrIgYgAEFAayIJEJABIAYgAUFAayIEEEogAkGAAWoiByAAQYABaiIKEJABIAcgAUGAAWoiCxBKIAJBwAFqIgggABCQASAIIAkQdyAIEEIgAkGAAmoiBSABEJABIAUgBBB3IAUQQiAIIAUQSiAFIAIQrgEgBSAGEHcgCCAFEH4gAkHAAWoQQiAFIAkQrgEgBSAKEHcgAkGAAmoQQiACQcACaiIDIAQQkAEgAyALEHcgAxBCIAUgAxBKIAMgBhCuASADIAcQdyAFIAMQfiACQYACahBCIAMgABCuASADIAoQdyACQcACahBCIAJBgANqIgQgARCQASAEIAsQdyAEEEIgAyAEEEogBCACEK4BIAQgBxB3IAQgAxDCASACQYADahBCIAMgAhCuASADIAIQdyACIAMQdyACEEIgB0EMEDQgAkHAA2oiASAGEJABIAEgBxB3IAEQQiAGIAcQfiAGEEIgBEEMEDQgAyAEEK4BIAMgBRBKIAcgCBCuASAHIAYQSiADIAcQwgEgBCACEEogBiABEEogBCAGEHcgAiAIEEogASAFEEogASACEHcgACADEK4BIAAQQiAJIAQQrgEgCRBCIAogARCuASAKEEIgAkGABGokAAu/BQEJfyMAQYALayIHJAAgB0E4ENABIgVBATYCOCAFQUBrQTgQ0AEaIAVB+ABqQQE2AgAgBUGAAWpBOBDQARogBUG4AWpBATYCACAFQcABakE4ENABGiAFQfgBakEBNgIAIAVBgAJqIg1BOBDQARogBUEBNgK4AiAFQcACakE4ENABGiAFQfgCakEBNgIAIAVBgANqQTgQ0AEaIAVBuANqQQE2AgAgBUHAA2pBOBDQARogBUH4A2pBATYCACAFQYAEaiILQTgQ0AEaIAVBATYCuAQgBUHABGpBOBDQARogBUH4BGpBATYCACAFQYAFakE4ENABGiAFQbgFakEBNgIAIAVBwAVqQTgQ0AEaIAVB+AVqQQE2AgAgBUGABmoiCEE4ENABGiAFQQE2ArgGIAVBwAZqQTgQ0AEaIAVB+AZqQQE2AgAgBUGAB2oiCUE4ENABGiAFQQE2ArgHIAVBwAdqQTgQ0AEaIAVB+AdqQQE2AgAgBUGACGoiB0E4ENABGiAFQQE2ArgIIAVBwAhqQTgQ0AEaIAVB+AhqQQE2AgAjAEGAAmsiCiQAIApBgAFqIgYgARBeIAggBhCZASAGIAFBgAFqEF4gByAGEJkBIAYgAUGAAmoiDBBeIAogBhBeIAYgDBBeIAkgBhCZASAGIAJBgAFqIgwQXiAKIAYQESAGIAIQXiAJIAYQESAIIAkQeyAIEKkBIAcgChB7IAcQqQEgCiAIEJkBIAgQfCAIEKkBIAYgDBBeIAogBhARIAkgBxCZASAGIAIQXiAJIAYQESAJIAoQeyAJEKkBIAcQNiAHEKkBIAEgAhAIIApBgAJqJAAgByADEKoBIAggBBCqASAFQYAJaiIBIAggCRCVASAFIAEQlgEgASAHEKEBIAsgARCWASALEGQgACAFIA0gCxB1IABBAzYCgAYgBUGAC2okAAuJBQEIfyMAQYALayIFJAAgBUE4ENABIgRBATYCOCAEQUBrQTgQ0AEaIARB+ABqQQE2AgAgBEGAAWpBOBDQARogBEG4AWpBATYCACAEQcABakE4ENABGiAEQfgBakEBNgIAIARBgAJqIgtBOBDQARogBEEBNgK4AiAEQcACakE4ENABGiAEQfgCakEBNgIAIARBgANqQTgQ0AEaIARBuANqQQE2AgAgBEHAA2pBOBDQARogBEH4A2pBATYCACAEQYAEaiIKQTgQ0AEaIARBATYCuAQgBEHABGpBOBDQARogBEH4BGpBATYCACAEQYAFakE4ENABGiAEQbgFakEBNgIAIARBwAVqQTgQ0AEaIARB+AVqQQE2AgAgBEGABmoiBkE4ENABGiAEQQE2ArgGIARBwAZqQTgQ0AEaIARB+AZqQQE2AgAgBEGAB2oiBUE4ENABGiAEQQE2ArgHIARBwAdqQTgQ0AEaIARB+AdqQQE2AgAgBEGACGoiCEE4ENABGiAEQQE2ArgIIARBwAhqQTgQ0AEaIARB+AhqQQE2AgAjAEGAAmsiByQAIAdBgAFqIgkgARBeIAggCRCZASAJIAFBgAFqEF4gByAJEF4gCSABQYACahBeIAUgCRCZASAGIAcQmQEgBiAFEBEgCBAtIAcQLSAFEC0gBhC4ASAGEDYgBhCpASAGEHwgBhCpASAFQQwQqwEgCEEDEKsBIAUQfCAFEKkBIAUgBxB7IAUQqQEgARASIAdBgAJqJAAgCCACEKoBIAYgAxCqASAEQYAJaiIBIAYgBRCVASAEIAEQlgEgASAIEKEBIAogARCWASAKEGQgACAEIAsgChB1IABBAzYCgAYgBEGAC2okAAuBBQELfyMAQTBrIgIkACACQSRqQai1wAA2AgAgAkEDOgAoIAJCgICAgIAENwMIIAIgADYCICACQQA2AhggAkEANgIQAkACQAJAIAEoAggiCkUEQCABQRRqKAIAIgRFDQEgASgCACEDIAEoAhAhACAEQQFrQf////8BcUEBaiIHIQUDQCADQQRqKAIAIgQEQCACKAIgIAMoAgAgBCACKAIkKAIMEQUADQQLIAAoAgAgAkEIaiAAQQRqKAIAEQQADQMgAEEIaiEAIANBCGohAyAFQQFrIgUNAAsMAQsgAUEMaigCACIARQ0AIABBBXQhCyAAQQFrQf///z9xQQFqIQcgASgCACEDA0AgA0EEaigCACIABEAgAigCICADKAIAIAAgAigCJCgCDBEFAA0DCyACIAUgCmoiBEEcai0AADoAKCACIARBBGopAgBCIIk3AwggBEEYaigCACEGIAEoAhAhCEEAIQlBACEAAkACQAJAIARBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQQ9HDQEgDCgCACgCACEGC0EBIQALIAIgBjYCFCACIAA2AhAgBEEQaigCACEAAkACQAJAIARBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQQ9HDQEgBigCACgCACEAC0EBIQkLIAIgADYCHCACIAk2AhggCCAEKAIAQQN0aiIAKAIAIAJBCGogACgCBBEEAA0CIANBCGohAyALIAVBIGoiBUcNAAsLQQAhACAHIAEoAgRJIgNFDQEgAigCICABKAIAIAdBA3RqQQAgAxsiASgCACABKAIEIAIoAiQoAgwRBQBFDQELQQEhAAsgAkEwaiQAIAAL1wQBBH8gACABENIBIQICQAJAAkAgABDMAQ0AIAAoAgAhAwJAIAAQxAFFBEAgASADaiEBIAAgAxDTASIAQfS+wAAoAgBHDQEgAigCBEEDcUEDRw0CQey+wAAgATYCACAAIAEgAhCDAQ8LIAEgA2pBEGohAAwCCyADQYACTwRAIAAQFwwBCyAAQQxqKAIAIgQgAEEIaigCACIFRwRAIAUgBDYCDCAEIAU2AggMAQtB3LvAAEHcu8AAKAIAQX4gA0EDdndxNgIACyACELwBBEAgACABIAIQgwEMAgsCQEH4vsAAKAIAIAJHBEAgAkH0vsAAKAIARw0BQfS+wAAgADYCAEHsvsAAQey+wAAoAgAgAWoiATYCACAAIAEQoAEPC0H4vsAAIAA2AgBB8L7AAEHwvsAAKAIAIAFqIgE2AgAgACABQQFyNgIEIABB9L7AACgCAEcNAUHsvsAAQQA2AgBB9L7AAEEANgIADwsgAhDLASIDIAFqIQECQCADQYACTwRAIAIQFwwBCyACQQxqKAIAIgQgAkEIaigCACICRwRAIAIgBDYCDCAEIAI2AggMAQtB3LvAAEHcu8AAKAIAQX4gA0EDdndxNgIACyAAIAEQoAEgAEH0vsAAKAIARw0BQey+wAAgATYCAAsPCyABQYACTwRAIAAgARAWDwsgAUEDdiICQQN0QeS7wABqIQECf0Hcu8AAKAIAIgNBASACdCICcQRAIAEoAggMAQtB3LvAACACIANyNgIAIAELIQIgASAANgIIIAIgADYCDCAAIAE2AgwgACACNgIIC+UDAQN/IwBB0CJrIgMkACADQcAWaiIEQcitwAAQSSADQcgcaiIFQYCuwAAQSSADQQhqIAQgBRBLIANBiAFqQTgQ0AEaIANBwAFqQTgQ0AEaIANB+AFqED0CQCACEIYBBEAgABBVDAELIANB+ARqIgQQPSAEIAEQfSAEEEcgA0H4B2oiARBnIAEgAhB4IAEQRiADQcgcaiICIAEQkAEgA0G4CWogAhCQASACIANBuAhqEJABIANB+AlqIAIQkAEgA0G4CmoiARA9IANBuA1qEFUgASAEEH0gA0HAE2oiARA9IAEgBBB9IAEQogEgA0HAAWogA0GIAWoQUEECayECA0AgAkEBakEBTQRAIANBuA1qIgEQngEgACABQYgGENEBGgUgA0G4DWoQGiADQcAWaiADQbgKaiADQbgJaiADQfgJahALAkACQAJAIANBwAFqIAIQUyADQYgBaiACEFNrQQFqDgMBAgACCyADQcgcaiIBIANBuApqIANB+ARqIANBuAlqIANB+AlqEAogA0HAFmogARADDAELIANByBxqIgEgA0G4CmogA0HAE2ogA0G4CWogA0H4CWoQCiADQcAWaiABEAMLIAJBAWshAiADQbgNaiADQcAWahABDAELCwsgA0HQImokAAvBAwEVfwNAIANBwAFGBEACQCAAQShqIQsgAEEUaigCACIMIQggAEEQaigCACINIQIgAEEMaigCACIOIQEgACgCCCIPIQMgAEEYaigCACIQIQogAEEcaigCACIRIQQgAEEgaigCACISIQcgAEEkaigCACITIQYDQCAHIQkgBCEHIAohBCAFQYACRg0BIAEgAnEhFCABIAJzIRUgBSALaigCACAFQcCiwABqKAIAIAkgBEF/c3EgBCAHcXIgBmogBEEadyAEQRV3cyAEQQd3c2pqaiIGIAhqIQogBUEEaiEFIAIhCCABIQIgAyIBQR53IAFBE3dzIAFBCndzIBQgASAVcXNqIAZqIQMgCSEGDAALAAsFIAAgA2oiAkHoAGogAkEoaigCACACQcwAaigCACACQeAAaigCACIBQQ93IAFBDXdzIAFBCnZzamogAkEsaigCACIBQRl3IAFBDndzIAFBA3ZzajYCACADQQRqIQMMAQsLIAAgBiATajYCJCAAIAkgEmo2AiAgACAHIBFqNgIcIAAgBCAQajYCGCAAIAggDGo2AhQgACACIA1qNgIQIAAgASAOajYCDCAAIAMgD2o2AggL5AEBAn8jAEGAA2siAyQAIAMQPSAAIAEgAkEfdSIEIAJzIARBf3NqQQJtIgJBAWtBH3YQbyAAIAFBgANqIAJBAXNBAWtBH3YQbyAAIAFBgAZqIAJBAnNBAWtBH3YQbyAAIAFBgAlqIAJBA3NBAWtBH3YQbyAAIAFBgAxqIAJBBHNBAWtBH3YQbyAAIAFBgA9qIAJBBXNBAWtBH3YQbyAAIAFBgBJqIAJBBnNBAWtBH3YQbyAAIAFBgBVqIAJBB3NBAWtBH3YQbyADIAAQfSADEKIBIAAgAyAEQQFxEG8gA0GAA2okAAvlAwEIfyMAQZAGayICJAAgAEFAayEIAkAgAUH4AGooAgAgASgCOGqsIABB+ABqKAIAIgcgACgCOCIEaqx+Qv///w9XDQAgBEEBSgR/IAAQHiAAKAJ4BSAHC0EBTA0AIAgQHgsgAkHYpMAAEEkgAkE4aiIHQfAAENABGiACIQNBACECA0AgAkE4RgRAAkAgB0E4aiEEQQAhAgNAIAJBOEYNASACIARqIAIgA2opAwA3AwAgAkEIaiECDAALAAsFIAIgB2pCADcDACACQQhqIQIMAQsLIANBqAFqIgYgABBdIANB4AFqIgUgARBdIANBmAJqIgIgACABEAUgA0GIA2oiBCAIIAFBQGsiARAFIAYgCBBgIAYQQiAFIAEQYCAFEEIgA0H4A2oiCSAGIAUQBUEAIQEgA0HoBGoiBkHwABDQASEFA0AgAUHwAEcEQCABIAVqIAEgAmopAwA3AwAgAUEIaiEBDAELCyAGIAQQYkEAIQEDQCABQfAARwRAIAEgBGoiBSABIAdqKQMAIAUpAwB9NwMAIAFBCGohAQwBCwsgAiAEEGIgAhBIIAkgBhBjIAkQSCADQdgFaiIBIAIQayAAIAEQaiAAQQM2AjggASAJEGsgCCABEGogAEECNgJ4IANBkAZqJAALowIBCH8jAEGABmsiAiQAIAIgAEGAAWoiBxBeIAJBgAFqIgQgBxBeIAQQLSACQYACaiIFIAIQXiAFIABBgAJqIgMQESACQYADaiIBIAMQXiABEC0gAyAEEJkBIAMgBBCaASADEKkBIAMQuAEgAxC4ASADEKkBIAFBDBCrASABEHwgARCpASACQYAEaiIIIAEQXiAIIAMQESACQYAFaiIGIAQQXiAGIAEQmgEgBhCpASADIAUQESAFIAEQmQEgBSABEJoBIAEgBRCaASABEKkBIAQgARB7IAQQqQEgBiAEEBEgBiAIEJoBIAUgABCZASAFIAIQESAAIAQQmQEgABCpASAAIAUQESAAELgBIAAQqQEgByAGEJkBIAcQqQEgAkGABmokAAu8AgEGfyMAQYAIayIBJAAgASAAEIwBIAFBgAJqIgMgAEGABGoiBRCMASABQYAEaiIEIABBgAJqIgYQjAEgAUGABmoiAkE4ENABGiABQQE2ArgGIAFBwAZqQTgQ0AEaIAFB+AZqQQE2AgAgAUGAB2pBOBDQARogAUG4B2pBATYCACABQcAHakE4ENABGiABQfgHakEBNgIAIAAQISACIAAQlgEgAiAAEJcBIAAgAhCXASAAELABIAEQyQEgARCzASAAIAEQlwEgAxAhIAMQZCACIAMQlgEgAiADEJcBIAMgAhCXASADELABIAQQISACIAQQlgEgAiAEEJcBIAQgAhCXASAEELABIAYQsgEgBhCzASAFEMkBIAUQswEgBiADEJcBIAUgBBCXASAAQQU2AoAGIAAQnAEgAUGACGokAAv/AQEHfyMAQcACayIBJAAgASAAQUBrIgYQkAEgARBMIAFBQGsiAyAGEJABIAMgAEGAAWoiAhBKIAFBgAFqIgQgAhCQASAEEEwgAiABEK4BIAIgARB3IAIQQiACEIIBIAIQggEgAhBCIARBDBA0IAFBwAFqIgcgBBCQASAHIAIQSiABQYACaiIFIAEQkAEgBSAEEHcgBRBCIAIgAxBKIAMgBBCuASADIAQQdyAEIAMQdyABIAQQfiABEEIgBSABEEogBSAHEHcgAyAAEK4BIAMgBhBKIAAgARCuASAAEEIgACADEEogABCCASAAEEIgBiAFEK4BIAYQQiABQcACaiQAC84CAgd/An4CQAJAAkBBDSABQTpuIgJrIgRBDU0EQEEMIAJrIgNBDk8NASAAIAAgA0EDdGopAwBBOiABIAJBOmxrIgNrrSIKhyAAIARBA3RqKQMAIAOtIgmGhDcDaCAEQQ1rIQUgAEHgAGohBCACQQFqIQZBACACQQN0ayEHQQshAwNAAkAgA0ECaiAGTQRAIAFBrAZPDQEgACACQQN0aiAAKQMAIAmGQv//////////A4M3AwADQCACRQ0HIABCADcDACACQQFrIQIgAEEIaiEADAALAAsgAyAFakEOTw0EIAQgBCAHaiIIQQhrKQMAIAqHIAgpAwAgCYZC//////////8Dg4Q3AwAgA0EBayEDIARBCGshBAwBCwsgAkEOQYCywAAQOwALIARBDkHQscAAEDsACyADQQ5B4LHAABA7AAtBf0EOQfCxwAAQOwALC6cCAQR/IABCADcCECAAAn9BACABQYACSQ0AGkEfIAFB////B0sNABogAUEGIAFBCHZnIgNrdkEBcSADQQF0a0E+agsiBDYCHCAEQQJ0Qey9wABqIQMgACECAkACQAJAAkBB4LvAACgCACIAQQEgBHQiBXEEQCADKAIAIQMgBBCfASEAIAMQywEgAUcNASADIQAMAgtB4LvAACAAIAVyNgIAIAMgAjYCAAwDCyABIAB0IQQDQCADIARBHXZBBHFqQRBqIgUoAgAiAEUNAiAEQQF0IQQgACIDEMsBIAFHDQALCyAAKAIIIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCCACQQA2AhgPCyAFIAI2AgALIAIgAzYCGCACIAI2AgggAiACNgIMC7YCAQV/IAAoAhghBAJAAkAgACAAKAIMRgRAIABBFEEQIABBFGoiASgCACIDG2ooAgAiAg0BQQAhAQwCCyAAKAIIIgIgACgCDCIBNgIMIAEgAjYCCAwBCyABIABBEGogAxshAwNAIAMhBSACIgFBFGoiAygCACICRQRAIAFBEGohAyABKAIQIQILIAINAAsgBUEANgIACwJAIARFDQACQCAAIAAoAhxBAnRB7L3AAGoiAigCAEcEQCAEQRBBFCAEKAIQIABGG2ogATYCACABDQEMAgsgAiABNgIAIAENAEHgu8AAQeC7wAAoAgBBfiAAKAIcd3E2AgAPCyABIAQ2AhggACgCECICBEAgASACNgIQIAIgATYCGAsgAEEUaigCACIARQ0AIAFBFGogADYCACAAIAE2AhgLC+UBAQZ/IwBBgARrIgIkACACIAAQXiACQYABaiIFIABBgAFqIgYQXiACQYACaiIDQTgQ0AEaIAJBATYCuAIgAkHAAmpBOBDQARogAkH4AmpBATYCACACQYADaiIEIAYQXiACIAEQESAFIAFBgAFqIgcQESADIAcQmQEgAyABEJoBIAQgABCaASADEKkBIAQQqQEgBCADEBEgAyACEJkBIAMQNiAEIAMQmgEgBBCpASADIAUQmQEgAxA2IAYgBBCZASAGIAMQmgEgBRB8IAAgBRCZASAAIAIQmgEgABCwASACQYAEaiQAC28BDH9BjL/AACgCACICRQRAQZy/wABB/x82AgBBAA8LQYS/wAAhBgNAIAIiASgCCCECIAEoAgQhAyABKAIAIQQgAUEMaigCABogASEGIAVBAWohBSACDQALQZy/wAAgBUH/HyAFQf8fSxs2AgBBAAuAAgEGfyMAQYAIayIBJAAgACgCgAZBAUcEQCABIAAQjAEgAUGAAmoiAiAAQYACaiIEEIwBIAFBgARqIgUgAEGABGoiAxCMASABQYAGaiIGIAAQjAEgARAhIAIgAxAYIAIQswEgAhCwASAFECEgBiAEEBggBhCzASADIAAQlwEgAyAEEJcBIAMQsAEgAxAhIAAgARCWASABIAIQlwEgARCwASABIAUQlwEgASAGEJcBIAEQsAEgARArIAIQZCAFEGQgACACEJcBIAQgBRCWASAEIAYQlwEgAyABEJcBIABBBEEFIAAoAoAGQX5xQQJGGzYCgAYgABCdAQsgAUGACGokAAuZAgEBfyMAQYANayIDJAAgAyABEGkgAxCdASADQYgGaiIBIAIQXSABEEIgA0HABmoiAiABEF0gAkEDECkaIAIQQiADQfgGaiADEGkCQCACEFdFBEAgA0HABmoQKkECayECA0AgAkEBakEBTQRAIANB+AZqIgEQnAEMAwUgA0H4BmoQEwJAAkACQCADQcAGaiACEFMgA0GIBmogAhBTa0EBag4DAQIAAgsgA0H4BmogAxAHDAELIAMQngEgA0H4BmogAxAHIAMQngELIAJBAWshAgwBCwALAAsgA0H4BmoiARC3ASABQYABahC2ASABQYACahCxASABQYAEahCxASABQQE2AoAGCyAAIAFBiAYQ0QEaIANBgA1qJAALhgICBH8BfiMAQTBrIgIkACABQQRqIQQgASgCBEUEQCABKAIAIQMgAkEQaiIFQQA2AgAgAkIBNwMIIAIgAkEIajYCFCACQShqIANBEGopAgA3AwAgAkEgaiADQQhqKQIANwMAIAIgAykCADcDGCACQRRqIAJBGGoQDBogBEEIaiAFKAIANgIAIAQgAikDCDcCAAsgAkEgaiIDIARBCGooAgA2AgAgAUEMakEANgIAIAQpAgAhBiABQgE3AgQgAiAGNwMYQQxBBBC5ASIBRQRAQQxBBBDPAQALIAEgAikDGDcCACABQQhqIAMoAgA2AgAgAEGEt8AANgIEIAAgATYCACACQTBqJAAL5AEBAn8jAEHAAWsiAyQAIAMQZyAAIAEgAkEfdSIEIAJzIARBf3NqQQJtIgJBAWtBH3YQbiAAIAFBwAFqIAJBAXNBAWtBH3YQbiAAIAFBgANqIAJBAnNBAWtBH3YQbiAAIAFBwARqIAJBA3NBAWtBH3YQbiAAIAFBgAZqIAJBBHNBAWtBH3YQbiAAIAFBwAdqIAJBBXNBAWtBH3YQbiAAIAFBgAlqIAJBBnNBAWtBH3YQbiAAIAFBwApqIAJBB3NBAWtBH3YQbiADIAAQeCADEKQBIAAgAyAEQQFxEG4gA0HAAWokAAvDAwIGfwN+IwBB8ABrIgEkACABQcCywAAQSSABQThqIAEQXSAAEEICQAJAAkAgAQJ/IAAoAjgiAkEQTARAIAJBAWsQNQwBCyABKQMwIghCAXwiByAIVA0BIAApAzAiCEKAgICAgICAgIB/USAHQn9RcQ0CIAFBOGoiAiAIIAd/pxApIQcgASABKQNoIAdCOoZ8NwNoIAAgAhBhIAAQQkECCyIEECgDQCAERQ0DQQAhAyABIAEpAwgiCEI5hkKAgICAgICAgAKDIAEpAwBCAYeEIgc3AwAgACkDACAHfSEHIABBCGohBSAAIAFBOGoiAkEBA38gAiADaiAHQv//////////A4M3AwAgB0I6hyEHIANBKEYEfyABIAEpAzBCAYciCDcDMCACIAApAzAgCH0gB3wiBzcDMCAHQj+IpwUgASADaiIGQQhqIAhCAYcgBkEQaikDACIIQjmGQoCAgICAgICAAoOEIgk3AwAgAyAFaikDACAHfCAJfSEHIANBCGohAwwBCwtrEDAgBEEBayEEDAALAAtB4LPAAEEZQcSzwAAQWQALQYC0wABBH0HEs8AAEFkACyAAQQE2AjggAUHwAGokAAvuAQECfyMAQbABayIDJAAgA0EwENABIQMCQAJAA0AgAkEwRgRAIANBMGogAxBwIAFBMGohAUEAIQIDQCACQTBGDQMgAkEwRg0EIAIgA2ogASACai0AADoAACACQQFqIQIMAAsACyACQeAARwRAIAIgA2ogASACai0AADoAACACQQFqIQIMAQsLQeAAQeAAQYCmwAAQOwALIANB8ABqIgEgAxBwIABBOBDQASIAQQE2AjggAEFAa0E4ENABIABB+ABqQQE2AgAgACABEK4BIANBMGoQrgEgA0GwAWokAA8LIAJBMGpB4ABBkKbAABA7AAuPAgEDfyMAQSBrIgUkAEEBIQZB2LvAAEHYu8AAKAIAIgdBAWo2AgACQEGgv8AALQAABEBBpL/AACgCAEEBaiEGDAELQaC/wABBAToAAAtBpL/AACAGNgIAAkACQCAHQQBIIAZBAktyDQAgBSAEOgAYIAUgAzYCFCAFIAI2AhBBzLvAACgCACICQQBIDQBBzLvAACACQQFqIgI2AgBBzLvAAEHUu8AAKAIAIgMEf0HQu8AAKAIAIAUgACABKAIQEQAAIAUgBSkDADcDCCAFQQhqIAMoAhQRAABBzLvAACgCAAUgAgtBAWs2AgAgBkEBSw0AIAQNAQsACyMAQRBrIgIkACACIAE2AgwgAiAANgIIAAucAQEEfyMAQYADayICJAAgAiAAEF4gAkGAAWoiASAAQYABaiIEEF4gAkGAAmoiAyAAEF4gAyAEEBEgAiAEEJoBIAEQfCABIAAQmgEgAhCpASABEKkBIAAgAhCZASAAIAEQESABIAMQmQEgARB8IAEgAxCaASABEKkBIAEQNiAAIAEQmgEgAxC4ASAEIAMQmQEgABCwASACQYADaiQAC7kBAQJ/IwBBIGsiAyQAAkAgASABIAJqIgFLDQAgAEEEaigCACICQQF0IgQgASABIARJGyIBQQggAUEISxshAQJAIAIEQCADQRhqQQE2AgAgAyACNgIUIAMgACgCADYCEAwBCyADQQA2AhALIAMgASADQRBqECYgAygCAARAIANBCGooAgAiAEUNASADKAIEIAAQzwEACyADKAIEIQIgAEEEaiABNgIAIAAgAjYCACADQSBqJAAPCxBlAAusAQECfyMAQYADayIDJAAgA0EIaiABEJABAkAgAgRAIANBCGogAhCuAQwBCyADQQhqEDoLIANByABqIgJB8LTAABBJIANBgAFqIAIQjgEgA0HAAWoiAiADQQhqIgQQkAEgAhBMIAIgARBKIAAgARCQASAAIAQQSiADQYACaiACEJABIAAQViEBIANBwAJqIgIgABCQASACEEMgAhBCIAAgAiABEHIgA0GAA2okAAueAQEFfyMAQYABayICJAAgAkE4ENABIgJBATYCOCACQUBrIgNBOBDQARogAkEBNgJ4IAIgABCuASACIAFBgAFqIgUQSiADIAEQrgEgAyAAQYABaiIGEEoCQCACIAMQWEUNACACIABBQGsQrgEgAiAFEEogAkFAayIAIAFBQGsQrgEgACAGEEogAiAAEFhFDQBBASEECyACQYABaiQAIAQLpwEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUaiACQRhqEAwaIANBCGogBCgCADYCACADIAIpAwg3AgALIABBhLfAADYCBCAAIAM2AgAgAkEwaiQAC5UBAQJ/AkACQAJAAkACfwJAAkACf0EBIgMgAUEASA0AGiACKAIAIgRFDQEgAigCBCICDQQgAQ0CQQEMAwshA0EAIQEMBgsgAQ0AQQEMAQsgAUEBELkBCyICRQ0BDAILIAQgARCsASICDQELIAAgATYCBEEBIQEMAQsgACACNgIEQQAhAwsgACADNgIAIABBCGogATYCAAvvMwISfwV+IwBBMGsiDiQAIA5BEGogACABEFsgDiAOKAIUIgA2AhwgDiAOKAIQIgg2AhggDkEIaiACIAMQWyAOIA4oAgwiATYCJCAOIA4oAggiAzYCICAOIAQgBRBbIA4gDigCBCIFNgIsIA4gDigCACINNgIoIAAhBCMAQZAVayICJAAjAEGwBmsiCiQAIApBEGpBOBDQARogCkHQAGpBOBDQASEVIApBiAFqQQE2AgAgCkEBNgJIIApBkAFqIgBB2KTAABBJIAAQKiEPIApByAFqIhNBgAIQ0AEaIApByANqQYABENABGiMAQdAAayIRJAAgEUEQakHAABDQARogASEJQQAhACMAQYAEayIHJAAgB0EvakGBAhDQARogB0GwAmpBwAAQ0AEaIAdB8AJqQcAAENABGiAHQbADakHAABDQARogByAPQf8AakEDdkEBaiISQQF0IgFBCHQgAUGA/gNxQQh2cjsALCABQQFrQQV2QQFqIQsCQANAIAYgB2pBLmogADoAACAGQStGBEAgB0EsaiIGQS5qQSs6AAAgB0EgaiAGQS8QX0EAIQAgB0GwAmpBwAAgAyAJIAcoAiAgBygCJBAGIAdBADoA+AMgByALNgL0A0EAIAFrIRQgB0EBNgLwAyAGQSxqIRYMAgsgBkGBAkcEQCAGQcClwABqLQAAIQAgBkEBaiEGDAELCyAGQQNqQYQCQfCrwAAQOwALA0ACQCAHQRhqIQlBACEGQQAhCwJAIAdB8ANqIgMtAAgNACADKAIAIgsgAygCBCIXSw0AIAsgF08EQEEBIQYgA0EBOgAIDAELQQEhBiADIAtBAWo2AgALIAkgCzYCBCAJIAY2AgACQCAHKAIYBEAgBygCHCEDQQAhBgNAIAZBIEYEQCAHIAM6ACxBACEGAkACQANAIAZBK0YEQCAWQSs6AAAjAEEQayIDJAAgA0EIaiAHQbADakHAAEEgEIEBIAMoAgwhCSAHQRBqIgYgAygCCDYCACAGIAk2AgQgA0EQaiQAIAcoAhQhAyAHKAIQIQkgB0EIaiAHQSxqQS0QX0EAIQYgB0HwAmpBACAJIAMgBygCCCAHKAIMEAZBAEGAAiAAayIDIANBgAJLGyEDIAAgE2ohCSAAIBRqIQsDQCAGQSBGDQggBkHAAEYNBCADIAZGDQMgBiAJaiAHQfACaiAGai0AADoAACAGQQFqIgYgC2oNAAsgASEADAkLIAZBgwJHBEAgBiAHakEtaiAGQcClwABqLQAAOgAAIAZBAWohBgwBCwsgBkEBakGEAkGwrMAAEDsACyAAIAZqQYACQYCtwAAQOwALQcAAQcAAQfCswAAQOwALIAZBwABHBEAgB0HwAmogBmoiCSAJLQAAIAdBsAJqIAZqLQAAcyIJOgAAIAdBsANqIAZqIAk6AAAgBkEBaiEGDAELC0HAAEHAAEGgrMAAEDsACyAHQYAEaiQADAELIAAgBmohAAwBCwsgEUHQAGokACASQQN0IA9rIQlBACEAAkACQANAIABBAkcEQCAAQQFqIApByAFqIBBqIQZBACEDAkADQCADIBJGDQEgAyAQaiIHQf8BSw0EIANBgAFHBEAgCkHIA2ogA2ogAyAGai0AADoAACADQQFqIQMMAQsLQYABQYABQaClwAAQOwALIwBBEGsiAyQAIANBCGogCkHIA2pBgAEgEhCBASADKAIMIQYgCkEIaiIHIAMoAgg2AgAgByAGNgIEIANBEGokACAKKAIIIQMgCigCDCELIApBwAVqIg9B8AAQ0AEhBgNAIAsEQCAGQQgQFSAGIAYpAwAgAzEAAHw3AwAgC0EBayELIANBAWohAwwBCwsgCkGIBWohEyMAQeABayILJAAgDxBIIAsgCkGQAWoQLiALQfAAakHwABDQARogCyAJIgMQFQNAIAtB8ABqIQZBACEHA0AgB0HwAEcEQCAGIAdqIAcgD2opAwA3AwAgB0EIaiEHDAELCyAGIAsQYyAGEEhBACEHQgAhGCAGKQMIIA8pAwCFIhlCAYZCAYchG0F/IAspA9gBQj+Hp2usIRwDfiAHQfAARgR+IBgFIAcgD2oiESARKQMAIhogGYUgBiAHaikDACAahSAcg4UiGiAbhTcDACAYIBqFIRggB0EIaiEHDAELCxogAwRAQQAhBkEAIQdBACERAkACQANAIAZB6ABGBEAgC0HoAGogCykDaEIBhzcDACALQfAAaiEGA0AgB0UNBCAGQgA3AwAgB0EBayEHIAZBCGohBgwACwALIAZB8ABGDQEgBkHwAEcEQCAGIAtqIhQgFEEIaikDAEI5hkL//////////wODIBQpAwBCAYeENwMAIBFBAWohESAGQQhqIQYMAQsLQQ5BDkGgssAAEDsACyARQQ5BkLLAABA7AAsgA0EBayEDDAEFIBMgDxBdIAtB4AFqJAALCyAKQcgEaiIDIBMQjgEgCkEQaiAAQQZ0aiADQcAAENEBGiAQIBJqIRAhAAwBCwsgAiAKQRBqEAIgCkHIAWoiACAVEAIgAiAAEAkjAEGAAmsiACQAIABBCGoiAUHYgcAAEEkgAEFAayIDIAIgARC9ASACIAMQeCAAQYACaiQAIAIQRiAKQbAGaiQADAELIAdBgAJBkKXAABA7AAsgAkHAAWohASMAQeACayIAJAAgAEEwENABIgBBMGpB0IDAABBJAkACQAJAAkADQAJAIAxBMEYEQCAAIAAtAABBH3E6AAAgAEHoAGogABC+ASAEDQFBAEEAQZiBwAAQOwALIAQgDEYNAiAAIAxqIAggDGotAAA6AAAgDEEBaiEMDAELC0EAIQwgCCwAACIJQQBIDQIgCEEwaiEDIARBMCAEQTBLG0EwayEIA0AgDEEwRgRAIABBoAFqIgQgABC+ASMAQYABayIDJAAgARBnIAEgAEHoAGoQwAEgAUFAayIIIAQQwAEgAUGAAWoQygEgARBCIAMgARBPIANBQGsiBCAIEJABIAQQTCAEIAMQWEUEQCABEJIBCyADQYABaiQADAULIAggDEYNAiAAIAxqIAMgDGotAAA6AAAgDEEBaiEMDAALAAsgBCAEQYiBwAAQOwALIAxBMGogBEGogcAAEDsACyMAQcABayIDJAAgAEGgAWoiBBBnIANBOBDQASIDQQE2AjggBCAAQegAahDAASAEEEIgBEGAAWoQygEgA0FAayIIIAQQTwJAAkACQCAIIAMQWkEBRgRAIANBgAFqIgggA0FAayADECMgCBBWDQEMAgsgBBCSAQwCCyADQYABaiIIEEMgCBBCCyAEQUBrIANBgAFqEK4BCyADQcABaiQAIAlBIHEiA0EAIABB4AFqEE0iBEEBRxtBASADIARBAUdyGwRAIABBoAFqEKQBCyABIABBoAFqQcABENEBGgsgAEHgAmokAAJ/QQAhAyMAQcAFayIAJAACQCABEIYBDQAgAEEIaiIIQZCtwAAQSSAAQYAEaiIEQbiuwAAQSSAAQUBrIgkgBBCOASAAQYABaiIEEGcgBCABEHggBCAJEEogAEHAAmoiBCABIAgQvQEgASAEECQNACAAQYAEaiIEIABBwAJqIgEgAEEIahC9ASABIARBwAEQ0QEaIAEQpAEgAEGAAWogARAkRQ0AQQEhAwsgAEHABWokAEF/IANFDQAaIAJBwAFqEKQBIAJBgANqIQhBACEAIwBB4ARrIgEkACABQeAAENABIQECQCAFBEADQCAAQeAARgRAIAEgAS0AAEEfcToAACABQeAAaiABEB9BACEAAkAgDSwAACILQQBOBEAgDUHgAGohAyAFQeAAIAVB4ABLG0HgAGshBANAIABB4ABGBEAgAUHgAWoiACABEB8gCCABQeAAaiAAED8MAwsgACAERwRAIAAgAWogACADai0AADoAACAAQQFqIQAMAQsLIABB4ABqIAVB1KfAABA7AAsjAEHAAWsiAyQAIAFB4AFqIgAQPSADQTgQ0AEiDUEBNgI4IAAgAUHgAGoQmQEgAEGAAWoiDxC3ASAAQYACahC3ASAAEKkBIA1BQGsiBCAAEDgjAEHAAWsiAyQAIAMgBBBeIAMQpAEgAyAEEBEgA0GAAWoiBCADQcAAENEBGiAEIA0QWiEEIANBwAFqJAACQAJAAkAgBEEBRgRAIwBBwANrIgAkACANQUBrIgQQiAFFBEAgACAEQUBrIgcQkAEgAEFAayIDIAQQkAEgAEGAAWoiBSAEEJABIABBwAFqIgZBOBDQARogAEEBNgL4ASAAQYACaiIKQTgQ0AEaIABBATYCuAIgABBMIAMQTCAAIAMQdyAAEEIgAEHAAmoiCSAAIA0QIyADIAkQrgEgACADEK4BIAMgBBCuASADIAAQdyADEEIgAxA3IAAgBxCuASAAEDcgAyAKEFohDCAFIAoQrgEgBRBDIAUQQiAGIAMQrgEgBhBDIAYQQiADIAZBASAMayIMEHIgCiAFIAwQciAJIAMgChAjIAQgCRCuASAFIAMQrgEgBSAKEDMgBSAEEEogByAFEK4BIAcgABBKIAYgBBCuASAEIAcgDBByIAcgBiAMEHIgBBCJASEDIAkgBBBeIAkQNiAJEKkBIAQgCSADEI0BCyAAQcADaiQAIAQQiQENAQwCCyAAEJsBDAILIA1BQGsQNgsgDUFAayIAELUBIA8gABCZAQsgDUHAAWokAEEAIQACQCABQeACaiIDEIgBDQAgA0FAaxBNIgANACADEE0hAAsgC0EgcSIDQQAgAEEBRyIAG0EBIAAgA3IbBEAgAUHgAWoQogELIAggAUHgAWpBgAMQ0QEaCyABQeAEaiQADAMLIAAgBUcEQCAAIAFqIAAgDWotAAA6AAAgAEEBaiEADAELCyAFIAVBxKfAABA7AAtBAEEAQbSnwAAQOwALIwBBwAdrIg0kACANQcABaiIDQcitwAAQSSANQcAEaiIFQYCuwAAQSSANQQhqIgEgAyAFEEsgARA+IAEQqQEgDUGIAWoiCUGQrcAAEEkgAxA9IAMgCBB9IwBBgAFrIgAkACAAIAEQXiAAEC0gAxCkASADQYABaiIEEKQBIANBgAJqIgYQpAEgBhC1ASADIAAQESAEIAAQESAEIAEQESAAQYABaiQAQQAhBCMAQfA2ayIAJAAgAEE4ENABIgFBOGpBOBDQARogAUHwAGoQPSABQfADahA9IAFB8AZqED0CQAJAIAgQigFFBEAgAUHwIWoiBhA9IAFB8CRqIgcQPSABQfAnaiIKED0gAUHwKmoiDBA9IAFB8C1qIgsQPSABQfAwaiIPED0gAUHwM2oiABA9IAFB8B5qED0gAUHwCWoiECAGQYADENEBGiABQfAMaiAHQYADENEBGiABQfAPaiAKQYADENEBGiABQfASaiAMQYADENEBGiABQfAVaiALQYADENEBGiABQfAYaiAPQYADENEBGiABQfAbaiAAQYADENEBGiAAQecAENABGiABQfADaiIAIAgQfSAAEBIgECAIEH0MAQsgBSABQfAAakGAAxDRARoMAQsDQCAEQYAVRwRAIAFB8AZqIgAgAUHwCWogBGoiBhB9IAZBgANqIgYgABB9IAYgAUHwA2oQCCAEQYADaiEEDAELCyABQThqIgAgCRBqIAEpAzghGCAAQQEQkwEgABBCIAEpAzghGSABIAAQaiABQQEQkwEgARBCIAAgASAYQgKBpxAwIAFB8ANqIgQgCCAZQgKBpxBvIAFB8AZqIAQQfSAAECpBA2oiBkECdiIAQQFqIQhBACEEAkACQANAIAFBOGpBBRCPASEJIAQgCEYEQCAGQZgDTw0CIAFB8DNqIAhqIAk6AAAgAUHwAGogAUHwCWogCUEYdEEYdRAQDAMLIARB5wBHBEAgAUHwM2ogBGogCUEQayIHOgAAIAFBOGoiCSAHQRh0QRh1EJQBIAkQQiAJQQQQLCAEQQFqIQQMAQsLQecAQecAQaCowAAQOwALIAhB5wBBsKjAABA7AAsDQCAAQX9HBEAgAUHwA2oiCCABQfAJaiABQfAzaiAAaiwAABAQIABBAWshACABQfAAaiIEEBIgBBASIAQQEiAEEBIgBCAIEAgMAQsLIwBBgANrIgAkACAAED0gACABQfAGahB9IAAQogEgAUHwAGoiBCAAEAggAEGAA2okACAFIARBgAMQ0QEaCyABQfA2aiQAIAUQogEjAEGAAmsiACQAIAAgAxBeIABBgAFqIgEgBRBeIAAgBUGAAmoiBBARIAEgA0GAAmoiCBARAn8CQCAAIAEQegRAIAAgA0GAAWoQmQEgACAEEBEgAEGAAWoiASAFQYABahCZASABIAgQESAAIAEQeg0BC0EADAELQQELIQEgAEGAAmokACANQcAHaiQAQX8gAUUNABojAEHgA2siACQAIABBgAFqIgFBwKjAABBJIABBuAFqIgNB+KjAABBJIAAgASADEEsgAEHwAmoiAUGwqcAAEEkgAEGoA2oiA0HoqcAAEEkgAEHwAWoiBCABIAMQSyACQYAGaiIBIAAgBBA/IABB4ANqJAAgAkGACWohByACQYADaiEIIwBBkDRrIgAkACAAQYAoaiIDQcitwAAQSSAAQYguaiIEQYCuwAAQSSAAIAMgBBBLIABBgAFqQTgQ0AEaIABBuAFqQTgQ0AEaIABB8AFqED0CQCACQcABaiIEEIYBRQRAIAIQhgEEQCAHIAEgBBAODAILIABB8ARqIgMQPSADIAEQfSADEEcgAEHwB2oiBRBnIAUgBBB4IAUQRiAAQbAJaiIEED0gBCAIEH0gBBBHIABBsAxqIggQZyAIIAIQeCAIEEYgAEGILmoiASAFEJABIABB8A1qIAEQkAEgASAAQbAIahCQASAAQbAOaiABEJABIAEgCBCQASAAQfAOaiABEJABIAEgAEHwDGoQkAEgAEGwD2ogARCQASAAQfAPaiIBED0gAEHwEmoiBRA9IABB8BVqEFUgASADEH0gBSAEEH0gAEH4G2oiARA9IAEgAxB9IAEQogEgAEH4HmoiARA9IAEgBBB9IAEQogEgAEG4AWogAEGAAWoQUEECayEBA0AgAUEBakEBTQRAIABB8BVqIgEQngEgByABQYgGENEBGgwDBSAAQfAVaiIEEBogAEH4IWoiAyAAQfAPaiAAQfANaiAAQbAOahALIABBgChqIgUgAEHwEmogAEHwDmogAEGwD2oQCyADIAUQAyAEIAMQAQJAAkACQCAAQbgBaiABEFMgAEGAAWogARBTa0EBag4DAQIAAgsgAEGILmoiAyAAQfAPaiAAQfAEaiAAQfANaiAAQbAOahAKIABB+CFqIgQgA0GIBhDRARogAyAAQfASaiAAQbAJaiAAQfAOaiAAQbAPahAKIAQgAxADIABB8BVqIAQQAQwBCyAAQYguaiIDIABB8A9qIABB+BtqIABB8A1qIABBsA5qEAogAEH4IWoiBCADQYgGENEBGiADIABB8BJqIABB+B5qIABB8A5qIABBsA9qEAogBCADEAMgAEHwFWogBBABCyABQQFrIQEMAQsACwALIAcgCCACEA4LIABBkDRqJAAjAEHgH2siCCQAIAhB0BNqIgFByK3AABBJIAhB2BlqIg1BgK7AABBJIAggASANEEsgCEGAAWoiC0GQrcAAEEkgAkGID2oiACAHEGkgCEG4AWoiBSAAEGkjAEGACGsiAyQAIAMgBRCMASADQYACaiIJIAVBgAJqIg8QjAEgA0GABGoiCiAFEIwBIANBgAZqIgRBOBDQARogA0EBNgK4BiADQcAGakE4ENABGiADQfgGakEBNgIAIANBgAdqQTgQ0AEaIANBuAdqQQE2AgAgA0HAB2pBOBDQARogA0H4B2pBATYCACAFEJ0BIAMQISAJIAVBgARqIgwQGCAJEGQgAyAJEHkgAxCwASAJIAwQlgEgCRAhIAkQZCAKIA8QGCAJIAoQeSAJELABIAogDxCWASAKECEgBCAFEJYBIAQgDBAYIAogBBB5IAoQsAEgBCAPEJYBIAQgChAYIAQQZCAFIAMQGCAEIAUQlwEgDCAJEBggDBBkIAQgDBCXASAEELABIwBBgAJrIgYkACAGIAQQXiAGQYABaiIQIARBgAFqIhIQXiAGEC0gEBAtIBAQfCAQEKkBIAYgEBB7IAYQPiAEIAYQESAGEDYgBhCpASASIAYQESAGQYACaiQAIAUgAxCWASAFIAQQGCAPIAkQlgEgDyAEEBggDCAKEJYBIAwgBBAYIAVBBTYCgAYgA0GACGokACAAEJ4BIAAgBRAHIAUgABBtIAAgCBAyIAAgCBAyIAAgBRAHIAhBwAdqIgQgABBpIAQQEyAEIAAQByANIAAgCxAbIAhByA1qIgMgDRBpIAMQngEgASAAEGkgARCeASAAIAMQbSAAIAEQByANIAAgCxAbIAMgDRBtIAMQngEgASAAEG0gARCeASAAIAMQbSAAIAEQByANIAAgCxAbIAMgDRBtIAMQngEgASAAEG0gASAIEDIgACADEG0gACABEAcgDSAAIAsQGyADIA0QbSANIAMgCxAbIAMgDRBtIAEgABBtIAEgCBAyIAEgCBAyIAMgARAHIAEgABBtIAEQngEgACADEG0gACABEAcgACAEEAcgABCcASAIQeAfaiQAIAcgAEGIBhDRARpBACEAIwBBgAJrIgEkACABEGwCQCAHIAEQegR/IAdBgAFqIAFBgAFqEHoFQQALRQ0AIAdBgAJqEIcBRQ0AIAdBgARqEIcBIQALIAFBgAJqJABBACAADQAaQX8LIAJBkBVqJAAgDkEoahC0ASAOQSBqELQBIA5BGGoQtAEgDkEwaiQAC58BAgJ/BX4gAEEwaiICKQMAIAFBP3GtIgSGIQUgACkDKCIGQTogAWtBP3GtIgiHIQdBBiEBA38gAiAFIAeENwMAIAFBAU0EfyAAIAApAwAgBIZC//////////8DgzcDACAAKQMwQiSHpwUgAUEBayEBIAJBEGsiA0EIaiECIAYgBIZC//////////8DgyEHIAMpAwAiBiAIhyEFDAELCxoLiAECA34DfyMAQRBrIgUkAAN+IAZBOEYEfiAFQRBqJAAgAwUgBSAAIAZqIgcpAwAiAiACQj+HIAGsIgIgAkI/hxAvIAcgBSkDACIEIAN8IgJC//////////8DgzcDACACIARUrSAFQQhqKQMAIANCP4d8fEIGhiACQjqIhCEDIAZBCGohBgwBCwsLigECA38BfiMAQUBqIgIkACACQQhqIgEgABBdIAEQQiACQThqIQFBBiEDQdwCIQACQAJAA0AgA0EATgRAIAEpAwAiBEIAUg0CIAFBCGshASAAQTprIQAgA0EBayEDDAELC0EAIQAMAQsDQCAEUA0BIABBAWohACAEQgJ/IQQMAAsACyACQUBrJAAgAAuHAQEDfyMAQYACayIBJAAgABCwASABIAAQXiABQYABaiICQTgQ0AEaIAFBATYCuAEgAUHAAWpBOBDQARogAUH4AWpBATYCACABIABBgAFqIgMQmgEgARA2IAIgARCZASACIAMQmgEgAyABEJkBIAMgABCaASAAIAIQmQEgABCwASABQYACaiQAC30CBH4BfyABQT9xrSECQTogAWtBP3GtIQRBACEBIAApAwAiBSEDA38gAUEwRgR/IAAgACkDMCAChzcDMCAFQn8gAoZCf4WDpwUgACABaiIGIAMgAocgBkEIaikDACIDIASGQv//////////A4OENwMAIAFBCGohAQwBCwsaC2kBBH8jAEHAAWsiASQAIAEgABCQASABQUBrIgIgABCQASABQYABaiIDIABBQGsiBBCQASABIAQQdyACIAAQdyACEEIgBCACEEogAxBDIAAgAxB3IAEQQiAAEEIgACABEEogAUHAAWokAAuCAQIBfwF+IABB8AAQ0AEhAANAIAJBOEYEQAJAIAAgASkDMCIDQjqHNwM4IAAgA0L//////////wODNwMwIABBQGshAEEAIQIDQCACQTBGDQEgACACakIANwMAIAJBCGohAgwACwALBSAAIAJqIAEgAmopAwA3AwAgAkEIaiECDAELCwtuAQZ+IAAgA0L/////D4MiBSABQv////8PgyIGfiIHIAUgAUIgiCIIfiIJIAYgA0IgiCIGfnwiBUIghnwiCjcDACAAIAcgClatIAYgCH4gBSAJVK1CIIYgBUIgiIR8fCABIAR+IAIgA358fDcDCAtqAgF/BX4gASkDCCAAKQMAhSIGQgGGQgGHIQdBACACa6whCAN+IANBOEYEfiAFBSAAIANqIgIgAikDACIEIAaFIAEgA2opAwAgBIUgCIOFIgQgB4U3AwAgBCAFhSEFIANBCGohAwwBCwsaC18CAX8EfkIBIQNBMCECA38gAkF4RgR/IARCAYYgA3ynQQFrBSABIAJqKQMAIgUgACACaikDACIGfUI6hyADgyAEhCEEIAJBCGshAiAFIAaFQgF9QjqHIAODIQMMAQsLC2kBBH8jAEGAAmsiAiQAIAIgARBeIAJBgAFqIgMgARBeIAIQLSADIAIQESAAIAMQmAEgAEGAAmoiBCADEJgBIABBgARqIgUgAxCYASAEIAEQpgEgBSACEKYBIABBBTYCgAYgAkGAAmokAAtiAQJ/IwBBQGoiAiQAIAAQQiACIAAQkAECQCABBEAgACABEK4BDAELIAAQOgtBACEBA0AgA0UEQCAAEExBASABQQFqIAFBAUYiAxshAQwBCwsgACACEEogABAeIAJBQGskAAtnAQJ/IwBBQGoiAyQAAkAgASABQR91IgJqIAJzIgIgACgCOGxBgICAEE4EQCADIAIQOSAAIAMQSgwBCyAAIAIQKRogACAAKAI4IAJsNgI4CyABQQBIBEAgABBDIAAQQgsgA0FAayQAC2cAIABBAXYgAHIiAEECdiAAciIAQQR2IAByIgBBCHYgAHIiAEEQdiAAciIAIABBAXZB1arVqgVxayIAQQJ2QbPmzJkDcSAAQbPmzJkDcWoiAEEEdiAAakGPnrz4AHFBgYKECGxBGHYLYQEDfyMAQYABayIBJAAgASAAEJABIAFBQGsiAkE4ENABGiABQQE2AnggASAAQUBrIgMQdyABEEMgAiABEK4BIAIgAxB3IAMgARCuASADIAAQdyAAIAIQrgEgAUGAAWokAAtVAgJ/AX4jAEHwAGsiASQAIAFBwLLAABBJIAApAwAhAyABQThqIgIgABBdIABBARAsIAIgARBgIAIQQiACQQEQLCAAIAIgA0ICgacQMCABQfAAaiQAC5gBAQZ/IwBBwAFrIgMkACAAIAEQXiAAEC0gA0GIAWoiBkHop8AAEEkjAEFAaiIEJAAgA0EIaiICQTgQ0AEiBUEBNgI4IAVBQGtBOBDQASAFQfgAakEBNgIAIAQgBhCOASAFIAQQrgEQwQEgBEFAayQAIAIQqQEgAhB8IAIQqQEgACABEBEgACACEJoBIAAQtQEgA0HAAWokAAtZAQJ/IwBBQGoiAyQAIABBOBDQASIAQQE2AjgCQCABQQBOBEAgACABEJMBDAELIANBCGoiAkHAssAAEEkgAiABEJMBIAIQQiAAIAIQagsgABBUIANBQGskAAu9CAEKfyMAQYABayIHJAAgB0EIaiIDQcCywAAQSSADQQEQlAECQAJAA0AgAUEwRgRAIANBMGogAykDMEIBhzcDACADQThqIQEDQCACRQ0EIAFCADcDACACQQFrIQIgAUEIaiEBDAALAAsgAUE4Rg0BIAFBOEcEQCABIANqIAEgA2oiBEEIaikDAEI5hkL//////////wODIAQpAwBCAYeENwMAIAVBAWohBSABQQhqIQEMAQsLQQdBB0GEm8AAEDsACyAFQQdB9JrAABA7AAsgA0EBEJQBIANBARAsIAdBQGshBUEAIQIjAEGgCmsiASQAIAFBOBDQASIBQUBrQTgQ0AEhBiABQYABakE4ENABGiABQcABakE4ENABGiABQYACakE4ENABGiABQcACakE4ENABGiABQYADakE4ENABGiABQcADakE4ENABGiABQYAEakE4ENABGiABQcAEakE4ENABGiABQYAFakE4ENABGiABQcAFakE4ENABGiABQYAGakE4ENABGiABQcAGakE4ENABGiABQYAHakE4ENABGiABQcAHakE4ENABGiABQfgHakEBNgIAIAFBuAdqQQE2AgAgAUH4BmpBATYCACABQbgGakEBNgIAIAFB+AVqQQE2AgAgAUG4BWpBATYCACABQfgEakEBNgIAIAFBuARqQQE2AgAgAUH4A2pBATYCACABQbgDakEBNgIAIAFB+AJqQQE2AgAgAUG4AmpBATYCACABQfgBakEBNgIAIAFBuAFqQQE2AgAgAUH4AGpBATYCACABQQE2AjggAUGBCGpB5wAQ0AEaIAFB6AhqIgQgABCQASAEEEIgAUGoCWoiBCADEF0gBBBCIAQQKkEDaiIIQQJ2IgNBAWohCQJAA0AgAiAJRgRAIAEQygEgBiABQegIahCuASABQeAJakE4ENABGiABQQE2ApgKQYB5IQIMAgsgAUGoCWoiBCAEQQQQjwEiChCUASAEEEIgAkHnAEcEQCABQYEIaiACaiAKOgAAIAFBqAlqQQQQLCACQQFqIQIMAQsLQecAQecAQaC0wAAQOwALA0AgAgRAIAFB4AlqIgQgASACaiIGQcAHahCuASAGQYAIaiIGIAQQrgEgBiABQegIahBKIAJBQGshAgwBCwsCQAJAAkACQCAIQZwDSQRAIAFBgQhqIANqLAAAIgJBEE8NASAFIAEgAkEGdGoQkAEgA0EBayICQeYASyEEA0AgAkF/Rg0DIAUQTCAFEEwgBRBMIAUQTCAEDQQgAUGBCGogAmotAAAiA0EQSQRAIAUgASADQQZ0ahBKIAJBAWshAgwBCwsgA0EYdEEYdUEQQeC0wAAQOwALIANB5wBBsLTAABA7AAsgAkEQQcC0wAAQOwALIAUQHiABQaAKaiQADAELIAJB5wBB0LTAABA7AAsgACAFEK4BIAdBgAFqJAALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQQE2AgAgA0ICNwIMIANB2LjAADYCCCADQQE2AiQgAyADQSBqNgIYIAMgAzYCKCADIANBBGo2AiAgA0EIaiACEGYAC2UBAn8gACAAKAIAIgJBCGoiAzYCACAAIAJBA3ZBPHFqQShqIgIgAUH/AXEgAigCAEEIdHI2AgACQAJAIANFBEAgAEEANgIAIAAgACgCBEEBajYCBAwBCyADQf8DcQ0BCyAAEA8LC1wAIABBOBDQASIAQQE2AjggAEFAa0E4ENABGiAAQfgAakEBNgIAIABBgAFqEFEgAEGAAmpBOBDQARogAEG4AmpBATYCACAAQcACakE4ENABGiAAQfgCakEBNgIAC1sBA38jAEGAAWsiASQAIAAQqQEgASAAEJABIAFBQGsiAiAAQUBrIgMQkAEgARBMIAIQTCABIAIQdyABQQAQMyAAIAEQSiABEEMgARBCIAMgARBKIAFBgAFqJAALYQEBfyMAQYACayIDJAAgABA9IAAgARCZASAAQYABaiIBIAIQmQEgAEGAAmoQtwEgABCpASADIAAQOCADQYABaiICIAEQXiACEC0gAiADEHpFBEAgABCbAQsgA0GAAmokAAtUAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqIAJBCGoQDCACQSBqJAALZwAjAEEwayIBJABBpLvAAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUGQtsAANgIIIAFBATYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQbi2wAAQZgALIAFBMGokAAtiAgF+An8gACkDACEBA34gACACaiIDIAFC//////////8DgzcDACABQjqHIQEgAkEoRgR+IAAgACkDMCABfCIBNwMwIAFCJIcFIAJBCGohAiADQQhqKQMAIAF8IQEMAQsLGgt8AQV/IwBBQGoiAyQAIANBCGoiAkHAssAAEEkgAiAAKAI4QQFrEDUiBBAoA0AgAUE4RwRAIAAgAWoiBSABIAJqKQMAIAUpAwB9NwMAIAFBCGohAQwBCwsgAEEBIARBAWp0IgI2AjggAkH///8PSgRAIAAQHgsgA0FAayQAC3sBAn8gAEEoaiECA0AgAUGAAkYEQCAAQufMp9DW0Ouzu383AgggAEIANwIAIABBIGpCq7OP/JGjs/DbADcCACAAQRhqQv+kuYjFkdqCm383AgAgAEEQakLy5rvjo6f9p6V/NwIABSABIAJqQQA2AgAgAUEEaiEBDAELCwtUACAAQTgQ0AEiAEEBNgI4IABBQGtBOBDQARogAEH4AGpBATYCACAAQYABakE4ENABGiAAQbgBakEBNgIAIABBwAFqQTgQ0AEaIABB+AFqQQE2AgALWAECfyMAQUBqIgEkAAJAIAAQhgENACABQQEQOSAAQYABaiICIAEQWA0AIAJBABAzIAAgAhBKIAAQHiAAQUBrIgAgAhBKIAAQHiACIAEQrgELIAFBQGskAAtZAQJ/IwBBgAFrIgEkAAJAIAAQigENACABEFEgAEGAAmoiAiABEHoNACACED4gACACEBEgABC1ASAAQYABaiIAIAIQESAAELUBIAIgARCZAQsgAUGAAWokAAtbAgF+An8gACkDACEBA0AgACACaiIDIAFC//////////8DgzcDACABQjqHIQEgAkHgAEYEQCAAIAApA2ggAXw3A2gFIAJBCGohAiADQQhqKQMAIAF8IQEMAQsLC08BAX8gAEE4ENABGgJAA0AgAkEHRwRAIAJBB0YNAiAAIAEpAwA3AwAgAEEIaiEAIAFBCGohASACQQFqIQIMAQsLDwtBB0EHQeSawAAQOwALVAECfyMAQbABayICJAAgATQCOCAANAI4fkL///8PVQRAIAAQHgsgAkEIaiIDIAAgARAFIAJB+ABqIgEgAxBrIAAgARBqIABBAjYCOCACQbABaiQAC1EBAn8jAEFAaiIDJAAgAEE4ENABIgBBATYCOCAAQUBrQTgQ0AEgAEH4AGpBATYCACADIAEQjgEgACADEK4BIAMgAhCOASADEK4BIANBQGskAAvwDAIRfwh+IwBBsAFrIg8kACAANAI4IhIgEn5C////D1YEQCAAEB4LIwBB0AFrIgEkACAPQQhqIgZBCGpB0AAQ0AEaIAFBwAFqIAApAwAiFyAXQj+HIhYgFyAWEC8gBiABKQPAASISQv//////////A4M3AwAgAUHIAWopAwAiFUIGhiASQjqIhCETIBVCOoghGCAAQQhqIgwhDSAAIQlBASEKQQEhBwJAA0AgCkEERgRAIABBGGohCiAAQRBqIQkgAEEoaiEMIAApAzAhF0EHIQUgAUHIAGohCwNAIAVBC0kEQCABQUBrIAVBA3QiCCAAakEwaykDACISIBJCP4cgFyAXQj+HIhYQLyAFQQFqIg1BAXYhByALKQMAIRUgASkDQCESIAkhAiAMIQQgBUEFayIOIQMDQCADIAdJBEAgASACKQMAIhQgFEI/hyAEKQMAIhQgFEI/hxAvIAEpAwAiFCASfCISIBRUrSABQQhqKQMAIBV8fCEVIAJBCGohAiAEQQhrIQQgA0EBaiEDDAELCyAGIAhqIBJCAYYiFCATfCITQv//////////A4M3AwAgAUEwaiAAIA5BA3RqKQMAIhkgGUI/hyAXIBYQLyATIBRUrSAVQgGGIBJCP4iEIBh8fCEYIAVBBGshAyAFQQJqIgVBAXYhCCABQThqKQMAIRUgASkDMCESIAohAiAMIQQDQCADIAhPBEAgAUEgaiAAIAdBA3RqKQMAIhYgFkI/hyIUIBYgFBAvIAYgDUEDdGogEkIBhiIUIBhCBoYgE0I6iIR8IhMgASkDIHwiFkL//////////wODNwMAIBMgFlatIAFBKGopAwAgEyAUVK0gFUIBhiASQj+IhCAYQjqHfHx8fCISQjqHIRggEkIGhiAWQjqIhCETIApBEGohCiAJQRBqIQkMAwUgAUEQaiACKQMAIhYgFkI/hyAEKQMAIhYgFkI/hxAvIAEpAxAiFiASfCISIBZUrSABQRhqKQMAIBV8fCEVIAJBCGohAiAEQQhrIQQgA0EBaiEDDAELAAsACwsgAUHQAGogFyAXQj+HIhIgACkDKCIVIBVCP4cQLyAGIBMgASkDUCIWQgGGIhR8IhVC//////////8DgzcDWCABQeAAaiAXIBIgFyASEC8gBiAUIBVWrSABQdgAaikDAEIBhiAWQj+IhCAYfHwiF0IGhiAVQjqIhCIVIAEpA2B8IhJC//////////8DgzcDYCAGIBIgFVStIAFB6ABqKQMAIBdCOod8fEIGhiASQjqIhDcDaCABQdABaiQADAILIAFBsAFqIAAgB0EDdCIOaikDACISIBJCP4cgFyAWEC8gB0EBaiIQQQF2IREgAUG4AWopAwAhFSABKQOwASESIAUhAyAMIQQgCSELIAghAgNAIANFBEAgBiAOaiASQgGGIhQgE3wiE0L//////////wODNwMAIAFBkAFqIAAgEEEDdCIOaikDACIZIBlCP4cgFyAWEC8gEyAUVK0gFUIBhiASQj+IhCAYfHwiEkI6hyEYIBJCBoYgE0I6iIQhFCAHQQJqIQsgAUGYAWopAwAhFUEAIQMgASkDkAEhEiAMIQIgDSEEA0AgAyAFakUEQCABQfAAaiAAIBFBA3RqKQMAIhMgE0I/hyIZIBMgGRAvIAYgDmogEkIBhiIZIBR8IhMgASkDcHwiFEL//////////wODNwMAIBMgFFatIAFB+ABqKQMAIBMgGVStIBVCAYYgEkI/iIQgGHx8fHwiEkI6hyEYIBJCBoYgFEI6iIQhEyANQRBqIQ0gBUEBaiEFIAlBEGohCSAIQQJqIQggCkEBaiEKIAshBwwECyADIAdqIhBBB0kEQCABQYABaiACKQMAIhMgE0I/hyAEKQMAIhMgE0I/hxAvIAEpA4ABIhMgEnwiEiATVK0gAUGIAWopAwAgFXx8IRUgAkEIaiECIARBCGshBCADQQFrIQMMAQsLIBBBB0GEnMAAEDsACyACQQdJBEAgAUGgAWogBCkDACIUIBRCP4cgCykDACIUIBRCP4cQLyABKQOgASIUIBJ8IhIgFFStIAFBqAFqKQMAIBV8fCEVIANBAWshAyAEQQhqIQQgC0EIayELIAJBAWshAgwBCwsLIAJBB0H0m8AAEDsACyAPQfgAaiICIAYQayAAIAIQaiAAQQI2AjggD0GwAWokAAtHAQJ/IwBB8ABrIgEkACAAEHZFBEAgAUHAssAAEEkgAUE4aiICIAAQhAEgASACEGEgARBCIAIgARAxIQILIAFB8ABqJAAgAgtPAQJ/IAIgACgCACIDQQRqKAIAIANBCGoiBCgCACIAa0sEQCADIAAgAhAiIAQoAgAhAAsgAygCACAAaiABIAIQ0QEaIAQgACACajYCAEEAC0wBA38jAEGAAWsiAiQAIAAgARCQASAAEEwgAkHIAGoiA0GAgMAAEEkgAkEIaiIEIAMQjgEgACABEEogACAEEHcgABAeIAJBgAFqJAALQQECfyMAQUBqIgIkACACQQhqIgNBkK3AABBJIAEgAxBqIAEQQiAAIAEQaiAAQQMQKRogABBCIAAQKiACQUBrJAALRwECfyMAQUBqIgEkACAAQTgQ0AEiAEEBNgI4IABBQGtBOBDQASAAQfgAakEBNgIAIAFBARA5IAAgARCuARDBASABQUBrJAALSwACQAJ/IAFBgIDEAEcEQEEBIAAoAhggASAAQRxqKAIAKAIQEQQADQEaCyACDQFBAAsPCyAAKAIYIAJBACAAQRxqKAIAKAIMEQUAC0MCAX8BfiABQTpuIQIgAUGVA00EQCAAIAJBA3RqKQMAQgEgAUH//wNxQTpwrSIDhoMgA4inDwsgAkEHQbSbwAAQOwALRQEDfyMAQeABayIBJAAgAUH4ssAAEEkgAUE4aiICIAAgARAFIAFBqAFqIgMgAhBrIAAgAxBqIABBAjYCOCABQeABaiQAC0ABAX8jAEGAAmsiASQAIAAQiwEgARBsIAAgARCWASAAQYACahCxASAAQYAEahCxASAAQQE2AoAGIAFBgAJqJAALPAICfwF+IwBBgAFrIgEkACABQQhqIgIgABCQASACEB4gAUHIAGogAhCEASABKQNIIAFBgAFqJABCAoGnCzwCAX8BfgN/IAFBOEYEfyACQgF9QoCAgICAgICABINCOoinBSAAIAFqKQMAIAKEIQIgAUEIaiEBDAELCws4AQF/IwBBgAFrIgIkACACIAAQkAEgAkFAayIAIAEQkAEgAhAeIAAQHiACIAAQMSACQYABaiQARQtHAQF/IwBBIGsiAyQAIANBFGpBADYCACADQZS4wAA2AhAgA0IBNwIEIAMgATYCHCADIAA2AhggAyADQRhqNgIAIAMgAhBmAAukAQICfwF+IwBBQGoiAiQAIAIgABCQASACEDogAQRAIAEgAhCuAQsgAhBMIAIgABBKIwBBgAFrIgEkACABQQhqIgAgAhCQASAAEB4gAUHIAGoiAyAAEIQBQQghAAN/IABBOEYEfyAEQgF9IAMpAwBCAYVCAX2DQjqIp0EBcQUgACADaikDACAEhCEEIABBCGohAAwBCwsgAUGAAWokACACQUBrJAALxQMBBn8jAEEgayIGJAAgBiACNgIYIAYgAjYCFCAGIAE2AhAgBkEQaiICKAIIIgEgAigCBEkEQAJAIwBBEGsiBSQAIwBBIGsiBCQAAkACQCABIAIoAgRNBEAgBEEIaiEDAkAgAigCBCIHBEAgAyAHNgIEIANBCGpBATYCACADIAIoAgA2AgAMAQsgA0EANgIACwJAAkAgBCgCCCIIBEAgBEEQaigCACEDIAQoAgwhBwJAAkAgAUUEQEEBIQMMAQsgA0EBRg0DIAFBARC5ASIDRQ0BIAMgCCABENEBGgsgCCAHEKgBDAULDAILIAVBADYCAAwECyAIIAEQrAEiAw0CCyAFIAE2AgQgBUEBNgIAIAVBCGpBATYCAAwCCyAEQRxqQQA2AgAgBEG0nMAANgIYIARCATcCDCAEQdicwAA2AgggBEEIakGsncAAEGYACyACIAE2AgQgAiADNgIAIAVBADYCAAsgBEEgaiQAAkAgBSgCAARAIAVBCGooAgAiAEUNASAFKAIEIAAQzwEACyAFQRBqJAAMAQsQZQALCyAGQQhqIgEgAigCCDYCBCABIAIoAgA2AgAgACAGKQMINwMAIAZBIGokAAtGAQJ/IAEoAgQhAiABKAIAIQNBCEEEELkBIgFFBEBBCEEEEM8BAAsgASACNgIEIAEgAzYCACAAQZS3wAA2AgQgACABNgIACzEBAX8gAEE4ENABIQADQCACQThHBEAgACACaiABIAJqKQMANwMAIAJBCGohAgwBCwsLNgEBfyAAQTgQ0AEiAEEBNgI4IABBQGtBOBDQASAAQfgAakEBNgIAIAAgARCuASABQUBrEK4BCzsBAX8jAEEQayIDJAAgA0EIaiABQYQCIAIQgQEgAygCDCEBIAAgAygCCDYCACAAIAE2AgQgA0EQaiQACwsAIAAgAUE4ENsBCwsAIAAgAUE4ENwBCwwAIAAgAUHwABDbAQsMACAAIAFB8AAQ3AELOQECfyMAQYABayIBJAAgASAAQYABaiICEF4gAiAAEJkBIAEQfCAAIAEQmQEgABCwASABQYABaiQACz8BAX8jAEEgayIAJAAgAEEcakEANgIAIABBzLfAADYCGCAAQgE3AgwgAEH8t8AANgIIIABBCGpBhLjAABBmAAu8AgEDfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQZS4wAA2AgwgAkGUuMAANgIIIwBBEGsiACQAIAJBCGoiASgCDCICRQRAQcC1wABBK0HktsAAEFkACyABKAIIIgRFBEBBwLXAAEErQfS2wAAQWQALIAAgAjYCCCAAIAE2AgQgACAENgIAIAAoAgAhASAAKAIEIQIgACgCCCEEIwBBEGsiACQAIAFBFGooAgAhAwJAAn8CQAJAIAFBBGooAgAOAgABAwsgAw0CQQAhAUHAtcAADAELIAMNASABKAIAIgMoAgQhASADKAIACyEDIAAgATYCBCAAIAM2AgAgAEG4t8AAIAIoAgggBCACLQAQECAACyAAQQA2AgQgACABNgIAIABBpLfAACACKAIIIAQgAi0AEBAgAAswACAAQTgQ0AEiAEEBNgI4IABBQGtBARA5IABBgAFqQTgQ0AEaIABBuAFqQQE2AgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0ELkBIgBFDQAgAA8LAAs4ACAAEIsBIAAgARCWASAAQYACaiABQYACahCWASAAQYAEaiABQYAEahCWASAAIAEoAoAGNgKABgsoAQF/A0AgAkE4RwRAIAAgAmogASACaikDADcDACACQQhqIQIMAQsLC4QJAg1/Cn4jAEFAaiILJAAgC0EIaiIJQcCywAAQSSMAQZACayICJAAgAEEwENABIQogAkHoAGpB8AAQ0AEaIAJB4AFqQTAQ0AEaIAoQcSACIAEiDCkDACIQQv3/8//P///5AX5C//////////8DgyISNwPYASACQdgAaiASQgAgCSkDACIXIBdCP4ciGBAvIBAgAikDWCIPfCITIA9UrSACQeAAaikDACAQQj+HfHwiEEI6hyABKQMIIg9CP4d8IA8gEEIGhiATQjqIhCITfCIQIBNUrXwhD0EBIQBCACETAkACQANAAkAgAEEHRgRAQQYhB0EAIQhBByEADAELIABBAXYiAUEBaiEGIAggAWshAyABQQN0IgFBCGohBCAHIAFrIQUgAkHIAGogCSAAQQN0Ig1qKQMAIhUgFUI/hyIWIBJCABAvIAJB0ABqKQMAIBAgECATfCIRVq0gDyAUfHx8IBEgAikDSHwiDyARVK18IRAgAEEBaiEBA0AgACAGTQRAIAJB2AFqIA1qIA9C/f/z/8////kBfkL//////////wODIhE3AwAgAkE4aiARQgAgFyAYEC8gAkEoaiARQgAgFSAWEC8gAkHoAGogAEEEdGoiACACQTBqKQMAIhE3AwggACACKQMoIhU3AwAgDyACKQM4IhZ8Ig8gFlStIAJBQGspAwAgEHx8IhBCOocgDCABQQN0aikDACIWQj+HfCAWIBBCBoYgD0I6iIQiD3wiECAPVK18IQ8gEyAVfCITIBVUrSARIBR8fCEUIAdBCGohByAIQQFqIQggASEADAMLIANBB08NAyACQRhqIAQgCWopAwAgBSAJaikDAH0iESARQj+HIAJB2AFqIg4gBWopAwAgBCAOaikDAH0iESARQj+HEC8gAikDGCIRIA98Ig8gEVStIAJBIGopAwAgEHx8IRAgBkEBaiEGIARBCGohBCAFQQhrIQUgA0EBayEDDAALAAsLA0ACQAJAIABBDUcEQCAHIABBAXYiBmshAyAIIAZBA3QiAWshBCABQQhqIQUgDyAUfCAQIBN8Ig8gEFStfCEQIABBAWohAQNAIAZBBUsNAyADQQdPDQIgAkEIaiAFIAlqKQMAIAQgCWpBMGopAwB9IhIgEkI/hyACIARqQYgCaikDACACQdgBaiAFaikDAH0iEiASQj+HEC8gAikDCCISIA98Ig8gElStIAJBEGopAwAgEHx8IRAgBkEBaiEGIARBCGshBCADQQFrIQMgBUEIaiEFDAALAAsgCiAQQv//////////A4M3AzAgAkGQAmokAAwECyADQQdBpJzAABA7AAsgAEEDdCAKakE4ayAPQv//////////A4M3AwAgEEI6hyAMIAFBA3RqKQMAIhJCP4d8IBIgEEIGhiAPQjqIhCIPfCIQIA9UrXwhDyAUIABBBHQgAmpBCGoiAEEIaikDAH0gEyAAKQMAIhJUrX0hFCAIQQhqIQggB0EBaiEHIBMgEn0hEyABIQAMAAsACyADQQdBlJzAABA7AAsgC0FAayQACy4BAX8jAEGAAWsiASQAIAAQRSABEFEgACABEJkBIABBgAFqELYBIAFBgAFqJAALMwAgACABEJYBIABBgAJqIAFBgAJqEJYBIABBgARqIAFBgARqEJYBIAAgASgCgAY2AoAGCygAIAAgASACEHIgAEFAayABQUBrIAIQciAAQYABaiABQYABaiACEHILLQAgACABIAIQjQEgAEGAAWogAUGAAWogAhCNASAAQYACaiABQYACaiACEI0BCycBAn8jAEFAaiICJAAgAkEIaiIDIAEQvgEgACADEI4BIAJBQGskAAsiAQF/A0AgAUE4RwRAIAAgAWpCADcDACABQQhqIQEMAQsLCyUAIAAgASACEDAgAEEAIAJrIAAoAjgiACABKAI4c3EgAHM2AjgLJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECyMAA0AgAgRAIAAgAS0AABA8IAJBAWshAiABQQFqIQEMAQsLCywAIAAQiwEgACABEJYBIABBgAJqIAIQlgEgAEGABGogAxCWASAAQQU2AoAGCyMBAX8jAEFAaiIBJAAgASAAEJABIAEQHiABEFcgAUFAayQACykAIAAgARBgIAAgACgCOCABKAI4aiIBNgI4IAFB////D0oEQCAAEB4LCyUAIAAgARCuASAAQUBrIAFBQGsQrgEgAEGAAWogAUGAAWoQrgELKAEBfyMAQYACayICJAAgAiABEIwBIAIQKyAAIAIQlwEgAkGAAmokAAscAQF/IAAgARBYBH8gAEFAayABQUBrEFgFQQALCycBAX8jAEGAAWsiAiQAIAIgARBeIAIQNiAAIAIQmgEgAkGAAWokAAtRAQN/IwBBgAFrIgEkACABIAAQXiMAQUBqIgIkACACIAAQkAEgACAAQUBrIgMQrgEgABBDIAMgAhCuASACQUBrJAAgACABEJoBIAFBgAFqJAALJwAgACABEJkBIABBgAFqIAFBgAFqEJkBIABBgAJqIAFBgAJqEJkBCyUBAX8jAEFAaiICJAAgAiABEJABIAIQQyAAIAIQdyACQUBrJAALHgACQCAAQQRqKAIARQ0AIAAoAgAiAEUNACAAEAQLCyABAX8CQCAAKAIEIgFFDQAgAEEIaigCAEUNACABEAQLC4MBACACIANJBEAjAEEwayIAJAAgACACNgIEIAAgAzYCACAAQRxqQQI2AgAgAEEsakEBNgIAIABCAjcCDCAAQYS7wAA2AgggAEEBNgIkIAAgAEEgajYCGCAAIABBBGo2AiggACAANgIgIABBCGpBlLvAABBmAAsgACADNgIEIAAgATYCAAtIAQJ/A0AgAUE4RwRAIAAgAWoiAiACKQMAQgGGNwMAIAFBCGohAQwBCwsgACAAKAI4QQF0IgE2AjggAUH///8PSgRAIAAQHgsLIwAgAiACKAIEQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgALIgEBfyMAQfAAayICJAAgAiABEC4gACACEGsgAkHwAGokAAseACAAIAFBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQLFgEBfyAAEHYEfyAAQYABahB2BUEACwsYAQF/IAAQiAEEfyAAQYABahCIAQVBAAsLFQEBfyAAEHYEfyAAQUBrEHYFQQALCxoBAX8gABBWIgEgAEFAaxBWIAFzIAAQdnFzCxgBAX8gABCIAQR/IABBgAJqEIgBBUEACwseACAAEEUgAEGAAmoQRSAAQYAEahBFIABBADYCgAYLHAAgABBFIAAgARCZASAAQYABaiABQYABahCZAQsYACAAIAEgAhByIABBQGsgAUFAayACEHILGgAgAEE4ENABIgBBATYCOCAAIAEQaiAAEFQLFAAgABBCIAAoAgBBfyABdEF/c3ELGQAgAEE4ENABIgAgARBqIAAgASgCODYCOAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxgAIAAQwQEgAEFAaxDKASAAQYABahDBAQsUACAAEEIgACAAKQMAIAGsfDcDAAsUACAAEEIgACAAKQMAIAGsfTcDAAsYACAAEEUgACABEJkBIABBgAFqIAIQmQELGAAgACABEJkBIABBgAFqIAFBgAFqEJkBCxgAIAAgARCaASAAQYABaiABQYABahCaAQsYACAAEKQBIABBgAFqIgAQpAEgACABEBELFgAgACABEK4BIABBQGsgAUFAaxCuAQsUACAAIAEQdyAAQUBrIAFBQGsQdwsZACAAELYBIABBgAFqELcBIABBgAJqELYBCxkAIAAQrwEgAEGAAmoQrwEgAEGABGoQrwELGQAgABCwASAAQYACahCwASAAQYAEahCwAQsZACAAELIBIABBgAJqEMkBIABBgARqELIBCxIAQQBBGSAAQQF2ayAAQR9GGwsWACAAIAFBAXI2AgQgACABaiABNgIACxYAIAAQRSAAIAEQmQEgAEGAAWoQtgELFgAgAEGAAWoiABCpASAAEDYgABCpAQsQACAAIAFqQQFrQQAgAWtxCw8AIABBQGsiABBDIAAQQgsUACAAIAEQmQEgAEGAAWogAhCZAQsSACAAIAEQESAAQYABaiABEBELFAAgACABEKoBIABBgAFqIAEQqgELCwAgAQRAIAAQBAsLDQAgABBCIABBQGsQQgsRACAAIAEQSiAAQUBrIAEQSgsRACAAIAEQNCAAQUBrIAEQNAu+BQEHfwJ/AkACQEGAgHxBCEEIEKMBQRRBCBCjAWpBEEEIEKMBamtBd3FBA2siAkEAQRBBCBCjAUECdGsiBCACIARJGyABTQ0AQRAgAUEEakEQQQgQowFBBWsgAUsbQQgQowEhAiAAENUBIgQgBBDLASIFENIBIQMCQAJAAkACQAJAAkACQCAEEMQBRQRAIAIgBU0NASADQfi+wAAoAgBGDQIgA0H0vsAAKAIARg0DIAMQvAENByADEMsBIgYgBWoiByACSQ0HIAcgAmshBSAGQYACSQ0EIAMQFwwFCyAEEMsBIQMgAkGAAkkNBiADIAJrQYGACEkgAkEEaiADTXENBSAEKAIAGiACQR9qQYCABBCjARoMBgtBEEEIEKMBIAUgAmsiA0sNBCAEIAIQ0gEhBSAEIAIQcyAFIAMQcyAFIAMQDQwEC0HwvsAAKAIAIAVqIgUgAk0NBCAEIAIQ0gEhAyAEIAIQcyADIAUgAmsiAkEBcjYCBEHwvsAAIAI2AgBB+L7AACADNgIADAMLQey+wAAoAgAgBWoiBSACSQ0DAkBBEEEIEKMBIAUgAmsiA0sEQCAEIAUQc0EAIQNBACEFDAELIAQgAhDSASIFIAMQ0gEhBiAEIAIQcyAFIAMQoAEgBiAGKAIEQX5xNgIEC0H0vsAAIAU2AgBB7L7AACADNgIADAILIANBDGooAgAiCCADQQhqKAIAIgNHBEAgAyAINgIMIAggAzYCCAwBC0Hcu8AAQdy7wAAoAgBBfiAGQQN2d3E2AgALQRBBCBCjASAFTQRAIAQgAhDSASEDIAQgAhBzIAMgBRBzIAMgBRANDAELIAQgBxBzCyAEDQILIAEQACICRQ0AIAIgACABIAQQywFBeEF8IAQQxAEbaiICIAEgAkkbENEBIAAQBAwCC0EADAELIAQQxAEaIAQQ1AELCw8AIABBAXQiAEEAIABrcgsSACAAIAEQaiAAIAEoAjg2AjgLEAAgABC1ASAAQYABahC1AQsQACAAEKkBIABBgAFqEKkBCxAAIAAQtgEgAEGAAWoQtgELDwAgAEGAAWoQNiAAELABCxAAIAAQuAEgAEGAAWoQuAELDwAgACgCACAAKAIEEKgBCw0AIAAQHiAAQUBrEB4LDwAgABDBASAAQUBrEMEBCw8AIAAQygEgAEFAaxDBAQsPACAAEIIBIABBQGsQggELgwMBA38CfwJAAkACQAJAIAFBCU8EQEEQQQgQowEgAUsNAQwCCyAAEAAhAwwCC0EQQQgQowEhAQtBgIB8QQhBCBCjAUEUQQgQowFqQRBBCBCjAWprQXdxQQNrIgRBAEEQQQgQowFBAnRrIgIgAiAESxsgAWsgAE0NACABQRAgAEEEakEQQQgQowFBBWsgAEsbQQgQowEiBGpBEEEIEKMBakEEaxAAIgJFDQAgAhDVASEAAkAgAUEBayIDIAJxRQRAIAAhAQwBCyACIANqQQAgAWtxENUBIQJBEEEIEKMBIQMgABDLASACQQAgASACIABrIANLG2oiASAAayICayEDIAAQxAFFBEAgASADEHMgACACEHMgACACEA0MAQsgACgCACEAIAEgAzYCBCABIAAgAmo2AgALIAEQxAENASABEMsBIgJBEEEIEKMBIARqTQ0BIAEgBBDSASEAIAEgBBBzIAAgAiAEayIEEHMgACAEEA0MAQsgAwwBCyABENQBIAEQxAEaCwuOBAEFfyAAKAIAIQAjAEEQayIEJAACQAJ/AkAgAUGAAU8EQCAEQQA2AgwgAUGAEE8NASAEIAFBP3FBgAFyOgANIAQgAUEGdkHAAXI6AAxBAgwCCyAAKAIIIgIgAEEEaigCAEYEQCMAQSBrIgMkAAJAAkAgAiACQQFqIgVLDQAgAEEEaigCACICQQF0IgYgBSAFIAZJGyIFQQggBUEISxshBQJAIAIEQCADQRhqQQE2AgAgAyACNgIUIAMgACgCADYCEAwBCyADQQA2AhALIAMgBSADQRBqECYgAygCAARAIANBCGooAgAiAEUNASADKAIEIAAQzwEACyADKAIEIQIgAEEEaiAFNgIAIAAgAjYCACADQSBqJAAMAQsQZQALIAAoAgghAgsgACACQQFqNgIIIAAoAgAgAmogAToAAAwCCyABQYCABE8EQCAEIAFBP3FBgAFyOgAPIAQgAUESdkHwAXI6AAwgBCABQQZ2QT9xQYABcjoADiAEIAFBDHZBP3FBgAFyOgANQQQMAQsgBCABQT9xQYABcjoADiAEIAFBDHZB4AFyOgAMIAQgAUEGdkE/cUGAAXI6AA1BAwshASABIABBBGooAgAgAEEIaiIDKAIAIgJrSwRAIAAgAiABECIgAygCACECCyAAKAIAIAJqIARBDGogARDRARogAyABIAJqNgIACyAEQRBqJABBAAsTACAAQZS3wAA2AgQgACABNgIACw0AIAAtAARBAnFBAXYL5QYCDH8CfiMAQbAcayIDJAACQAJAAkAgAhBXDQAgARCGAQ0AIANBCGoQZyADQcgBaiIFIAIQXQNAIARBOEcEQCAEIAVqIgYgBikDACACIARqKQMAhDcDACAEQQhqIQQMAQsLIAUQKiEHQQAhBCADQYACakE4ENABGiADQbgCakE4ENABGiADQfACaiIFEGcgA0GwBGoQZyADQfARaiIIEGcgA0GwE2oiCRBnIANB8BRqIgoQZyADQbAWaiILEGcgA0HwF2oiDBBnIANBsBlqIg0QZyADQfAaaiIGEGcgA0GwEGoQZyADQfAFaiIOIAhBwAEQ0QEaIANBsAdqIAlBwAEQ0QEaIANB8AhqIApBwAEQ0QEaIANBsApqIAtBwAEQ0QEaIANB8AtqIAxBwAEQ0QEaIANBsA1qIA1BwAEQ0QEaIANB8A5qIAZBwAEQ0QEaIAZB5wAQ0AEaIAUgARB4IAUQFCAOIAEQeAwBCyAAEGcMAQsDQCAEQcAKRwRAIANBsARqIgUgA0HwBWogBGoiBhB4IAZBwAFqIgYgBRB4IAYgA0HwAmoQCSAEQcABaiEEDAELCyADQbgCaiIEIAIQaiADKQO4AiEPIARBARCTASAEEEIgAykDuAIhECADQYACaiICIAQQaiACQQEQkwEgAhBCIAQgAiAPQgKBpxAwIANB8AJqIgQgASAQQgKBpxBuIAdBA2oiBkECdiIBQQFqIQIgA0GwBGogBBB4QQAhBAJAAkADQCADQbgCakEFEI8BIQUgAiAERgRAIAZBmANPDQIgA0HwGmogAmogBToAACADQQhqIANB8AVqIAVBGHRBGHUQHQwDCyAEQecARwRAIANB8BpqIARqIAVBEGsiBzoAACADQbgCaiIFIAdBGHRBGHUQlAEgBRBCIAVBBBAsIARBAWohBAwBCwtB5wBB5wBBuIHAABA7AAsgAkHnAEHIgcAAEDsACwNAIAFBf0cEQCADQfACaiIEIANB8AVqIANB8BpqIAFqLAAAEB0gAUEBayEBIANBCGoiAhAUIAIQFCACEBQgAhAUIAIgBBAJDAELCyMAQcABayIBJAAgARBnIAEgA0GwBGoQeCABEKQBIANBCGoiAiABEAkgAUHAAWokACAAIAJBwAEQ0QEaCyADQbAcaiQAC1ABAX8gAEE4ENABIQACQANAIAJBMEYNASAAQQgQKCACQTBHBEAgACAAKQMAIAEgAmoxAAB8NwMAIAJBAWohAgwBCwsgAkEwQaSbwAAQOwALCw0AIAAQNiAAIAEQmgELDAAgACABEGogABBUCw0AIAAQcSAAQQE2AjgLDAAgABBDIAAgARB3CwoAQQAgAGsgAHELCwAgAC0ABEEDcUULDAAgACABQQNyNgIECw0AIAAoAgAgACgCBGoLDgAgACgCABoDQAwACwALgQgCCX8CfiAANQIAIQsjAEEwayIGJABBJyEAAkAgC0KQzgBUBEAgCyEMDAELA0AgBkEJaiAAaiICQQRrIAsgC0KQzgCAIgxCkM4Afn2nIgNB//8DcUHkAG4iBEEBdEHouMAAai8AADsAACACQQJrIAMgBEHkAGxrQf//A3FBAXRB6LjAAGovAAA7AAAgAEEEayEAIAtC/8HXL1YgDCELDQALCyAMpyICQeMASwRAIABBAmsiACAGQQlqaiAMpyICIAJB//8DcUHkAG4iAkHkAGxrQf//A3FBAXRB6LjAAGovAAA7AAALAkAgAkEKTwRAIABBAmsiACAGQQlqaiACQQF0Qei4wABqLwAAOwAADAELIABBAWsiACAGQQlqaiACQTBqOgAACwJ/IAZBCWogAGohCEErQYCAxAAgASgCACIDQQFxIgIbIQQgAkEnIABrIglqIQJBlLjAAEEAIANBBHEbIQUCQAJAIAEoAghFBEBBASEAIAEgBCAFEFINAQwCCwJAAkACQAJAIAIgAUEMaigCACIDSQRAIAEtAABBCHENBEEAIQAgAyACayICIQNBASABLQAgIgcgB0EDRhtBA3FBAWsOAgECAwtBASEAIAEgBCAFEFINBAwFC0EAIQMgAiEADAELIAJBAXYhACACQQFqQQF2IQMLIABBAWohACABQRxqKAIAIQcgASgCBCECIAEoAhghCgJAA0AgAEEBayIARQ0BIAogAiAHKAIQEQQARQ0AC0EBDAQLQQEhACACQYCAxABGDQEgASAEIAUQUg0BIAEoAhggCCAJIAEoAhwoAgwRBQANASABKAIcIQQgASgCGCEBQQAhAAJ/A0AgAyAAIANGDQEaIABBAWohACABIAIgBCgCEBEEAEUNAAsgAEEBawsgA0khAAwBCyABKAIEIQcgAUEwNgIEIAEtACAhCkEBIQAgAUEBOgAgIAEgBCAFEFINAEEAIQAgAyACayICIQMCQAJAAkBBASABLQAgIgQgBEEDRhtBA3FBAWsOAgABAgtBACEDIAIhAAwBCyACQQF2IQAgAkEBakEBdiEDCyAAQQFqIQAgAUEcaigCACECIAEoAgQhBCABKAIYIQUCQANAIABBAWsiAEUNASAFIAQgAigCEBEEAEUNAAtBAQwDC0EBIQAgBEGAgMQARg0AIAEoAhggCCAJIAEoAhwoAgwRBQANACABKAIcIQAgASgCGCEFQQAhAgJAA0AgAiADRg0BIAJBAWohAiAFIAQgACgCEBEEAEUNAAtBASEAIAJBAWsgA0kNAQsgASAKOgAgIAEgBzYCBEEADAILIAAMAQsgASgCGCAIIAkgAUEcaigCACgCDBEFAAsgBkEwaiQACwsAIAAQNiAAELABCysCAX8BfkIBIQIDQCAAIAFqIAI3AwBCACECIAFBCGoiAUE4Rw0ACyAAEFQLCgAgACgCBEF4cQsKACAAKAIEQQFxCwoAIAAoAgxBAXELCgAgACgCDEEBdgsZACAAIAFByLvAACgCACIAQQIgABsRAAAAC58BAQN/AkAgASICQQ9NBEAgACEBDAELIABBACAAa0EDcSIEaiEDIAQEQCAAIQEDQCABQQA6AAAgAUEBaiIBIANJDQALCyADIAIgBGsiAkF8cSIEaiEBIARBAEoEQANAIANBADYCACADQQRqIgMgAUkNAAsLIAJBA3EhAgsgAgRAIAEgAmohAgNAIAFBADoAACABQQFqIgEgAkkNAAsLIAALuAIBB38CQCACIgRBD00EQCAAIQIMAQsgAEEAIABrQQNxIgNqIQUgAwRAIAAhAiABIQYDQCACIAYtAAA6AAAgBkEBaiEGIAJBAWoiAiAFSQ0ACwsgBSAEIANrIghBfHEiB2ohAgJAIAEgA2oiA0EDcQRAIAdBAEwNASADQQN0IgRBGHEhCSADQXxxIgZBBGohAUEAIARrQRhxIQQgBigCACEGA0AgBSAGIAl2IAEoAgAiBiAEdHI2AgAgAUEEaiEBIAVBBGoiBSACSQ0ACwwBCyAHQQBMDQAgAyEBA0AgBSABKAIANgIAIAFBBGohASAFQQRqIgUgAkkNAAsLIAhBA3EhBCADIAdqIQELIAQEQCACIARqIQMDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADSQ0ACwsgAAsHACAAIAFqCwcAIAAgAWsLBwAgAEEIagsHACAAQQhrCwQAQQALDQBC0oGc3sHF/O+ofwsNAEKL5OeV8riP17h/Cw0AQu7u59vMr5Ho5gALAwABCzABAn8DQCADIAJHBEAgACADaiIEIAQpAwAgASADaikDAHw3AwAgA0EIaiEDDAELCwswAQJ/A0AgAyACRwRAIAAgA2oiBCAEKQMAIAEgA2opAwB9NwMAIANBCGohAwwBCwsLC/k5BwBBgIDAAAsBBABBuIDAAAupAXNyYy9ibHMxMjM4MS9lY3AucnMAAAAAAKuq//////4B7v//VKz//wLqQWIPaw8qAcOc/UoUzhMCS3dk16xLQwLt6caSpvlfAqMeEaABAAAAOAAQABMAAADOAQAAFgAAADgAEAATAAAA0gEAABEAAAA4ABAAEwAAANQBAAAaAAAAOAAQABMAAAB0BAAAEQAAADgAEAATAAAAeQQAAA0AAAABAAEAAAABAjQAQZCCwAAL2SUdTFgtCCj0ANdfPjho49sAickaiP2ugQGiY6OauQ9OAZjqsIJJbckCgE5az1A67gCKaUQBAAAAAOArF47pSMwBdKk6W4xWyACiVe817/wUAOeCwgE9ycMDwRYgO+4+dQC6xGIADCBaANEIKS4BAAAAuCHovWIQxQDf/hWXO0ilAYsIMfwD1L0BuxH8JzRS0gMd8BLaG9ejASo9zjbdL9sCyGJ0HwAAAAAp0qKLLrrIAepHTpMt4MYCJIy2xiS88QMCj/DeIIv4AZ3XMT3u7YEDiKVHL5yDiQNIwghuAAAAAHv7BRY/32cCMnsXCuPH3QJpb4YUOwA2AytUW/7hmXcDzH36DVtW0gECO7ac+IFzAgfaIQMBAAAAngw5vmcQJANf3skAt8tCAjH6t7FLr0sBjJ1lcjHoAALLLt0ijxNdAdQNgwvx6fMC4fixaQEAAAAX45eEaphxAVul062lfKUA+uQdXYySbAEWi9JVfZ6zAXU7xA2ZvmMBzSzkHvHjaQIfz9OAAAAAAI7I8OMYVssA52sdPTI+8gGbM1MnD+9iAAuaxjZtnawC5W01U34R0QAhDh26+PZqAHDngXsBAAAAhO05oSXy1wG3sktBMEqUANqosoacjyECI0CGMz48mQCGFbG/UuaKA7DJjVpKE/kDU2Xt1gAAAACDKWVvxsETAXNGz7lyS8MBCAr5aH4JuQJOe27mSWX3AbE827VKp/cDBkh0wP/EXANQMgxjAQAAANmViKzpTBUBFPGdB8wbigKFicH6glm2Arsh/OxfSWgBmduZVI4R5AMsrZDZEH1mAKMml+kAAAAAYWibHWSIswHxZBzEOJe4ATM1CDMbnygDzMaX/DaqlQHk9dcSVOUHA3SCgdNtG/MDZnGOdwEAAACw3J6snZ8XAPinXIJKjw8DWMkljsYeUALjoZUPZqXMASQDzhuaCtEBMRJEBzueXQLbBUDVAAAAALuDy7Px7jQAutUwxrypPAKDtIYeDcczApfVXxCqvWwB5xd8HKhHIQKsLmLBy+pQAj7tlHIBAAAAt0lGc2IWrAKrW4u5fLUwAGGFLE7bbLUDicl/AVyLIgI+MGuFFZjZAQdEAi7QzKADsfIFGgEAAAAK3exo0YRjAQtAGd7SktMBMVnBMY+XMwF9291A31u6A7SC9oBmpbMCj1vbEbVKegKrE/yVAAAAAEHWoXk67HYDEdyQ7qqkmQA4UIOY82faAEDQrdmExXUAjX/gzKPHrwHPgqSX4FNpA2rPDqEAAAAAXlrMvZvZ9wHEtHhEJ1JuAfqAxSKY3xwCW2agoilvCANjf26ZAc90AGz9LIwsKlkDqcJ6SgEAAAA6SuhuSXQlADsbeMPj1OwAp87p7SoGcwC4OCWGTr1mAlcPVyFnWeADGIPPQ4ZNWgDPqix3AAAAAKUEY5+i+S0AcMSjCPGSNABA94KJS/LOAw4pNLVyOqcDNVc56cYGBQPfQ05V7pk5AY5fNecAAAAAHqIyNVs5nQNUB17NB+qmAL2pbTA7g04ArTXuioGEZgHH3/99oOdDA1fHmwIqRYoAIBaOOgEAAADYLMaNk+gNAwRxPbsPSbUBlwT91ii8igIyU0WVxVr8ACQIW1TrQHwD+6sOsr+4YgEaWCU0AAAAABk+uFy6OcIAP7c/JZ8l9ABqzeqsEQvgAJnyRzPGab0BQYlvH5nyvwGK+U2gl8joAeUvlrIAAAAA/zsryG4nyAF5ugksGyGqAj1x9YvEiCUAmwQwAMIzKAPoQXA2NuWYAkQcLdIQZ9UC3qVhJQEAAAAcG9JA+vk8ASZ+D41voDUCVSvGivwXhgBWcuoibY0uAe/VAW/600sDi7kshmvGPwNI1aiMAAAAAAS2yGm+VrQAwR0HsL+fQAFmKxvwWqlPAbde5WhZEj4CHRjLtS7fQgPOQqmT88BDAunka14BAAAASyJ1VHEeawLh7Wte2SZBALpGzqeW0/UArGajlaFfBwI9Z178o8RIA31WqEDEM5EDRZYSXAAAAAAzAZjb9dPZAhCZyghHK+QDbMxZBsTTMgKZTwBWMDUgADt7ddwV43sCKwC/3KayRwNKOVokAAAAAPgelwvwBEwBg3yEZGRwFAJs8DNGe4AOAZwAO8Ka0KgAsad6RD/1BABYQlV05uQGAMHKgrEAAAAAjk0H0KTIBwKzgTXRBn1zAp0kQ/YR+ecDr7kYCcOr4gJZNVLM7dL+A1AwRq63vc0DCKlGiwEAAAAywRHQGnETADq/7o8zl84DGwNhnjgW5ANgRP8kvbItA8svzZP7Qx0D40J/g2803wB55BOXAQAAADAcc8rrqq8DypuuU3cV3AOzuUNNHu3nAWEa+NtrRZ4CDCrEI0qhrQN5r45Iba9hAKGnu+EAAAAAh6Xbe1cONwDY6IHhcYCUAZ3mqwzyoeYCLXqwCXeeWQC9Oo+7oU0eAognI/oSmmUDiwHEnwAAAAAp+3AYo0xeAWhN+rc/VJEBL2RCyCZs2gAO9H9g947/AgUKF3TGpiwBr0mm9xuuzgBTjXyYAAAAAPLW6V+F+GEBslfQg5GwHgJ6dPM01sQTAMVILROGrygDuFvnPGt5JwD0XbIs7wbrA7y5sEoAAAAA8KUzNrE6sgGmHKBWssnYAwPiRFWt08MBQdn13ra+UgPQp3SgpvC4AUd4hIja0hgApPwDZgEAAADb/ujy7Nq2ARAqEGQCN/4B7sKtURMi/QMM5uFCOY/vAzZVGcQpFaIC+NMr18Q/+APeP8CMAAAAAMv05bB3XDUCKXuHsaeuFgDknc9RMsA+ApIncOStO+QCpyrUV2d02AJGHSZeCAcmAm43hh8AAAAA9uEtx0Di3wDuSAEsioVUAyZ92gAUueQDEg2Lc4xiWQPiUiWUSTtqADLhKL2Zm6UCuobHDAAAAACWxkEuWueXAPgv6otlxFkBbE3TerY+NAJBPvTgPJWwAekjEoNG+3YDtQ1EdQSWOwEQapk0AQAAADO7B5dxRZgCr/Dozqa7HgPQPD1UVsn2AkqtSKWhIjkCE60R+tyASQHCR2cJuJPoAoF82ZAAAAAAj0tjHTpHFQAR4CVNPFy9AMoFospWY80DO8lM4c6JlwEPxHHBGXgNAlcJyZoPcLcBgR364AAAAAD3Bu0mE9z6ATQgM8Vh70UBIOSAJJQn3wDSLQefpJxTAltWv/J2zVMBQ/ei2M6TywIOQGAmAAAAAMxFM1c4sZkCR7BC7vjYAQAwabjZAJrvAnP1mQh8K2YDRjNUlhRftABRTNjw+J8dAxSVa60AAAAAkhBW4im1hAKl+q7fGyZaAm9RE3nqjKgBPjBKCzm/KwL/lH9HDMVIAgdLYf3PQAcCdLbLrAAAAACoao+6nLT4AACBweDTp3ABGodcamNuswFkOaSYhu3mANBtnB2R0hoAKAQ8Um8BqQOeJS9NAAAAAFU/kbiL9G4AjddsSvWoFwJzvE996ueSASFM7R72hI8B9xYykIRK2QNlgaA6h5vCAdpcpWcBAAAASl1TVZ09IwPaIJLk7r34AyyFtDm/xFADFa+CZL0akwMM+/nETNfRA1P5hsZIGNsA045shgEAAADZLoEVWkHuABi5dwACbD0AkisTV2Mg/QDN+l8/feh7ATek5W7/prsCfjfvgPqpjwOL8D5qAQAAAFx3ahKZExoBT+7HYmkApwJfHQWgAMRbAk13veMzNOoD/exeS4LprADNoe7wy3amAgh8AGYBAAAArLf5qn9HxgKAOHPqd27jAJ9EpvXwtocBsxcHYkNVGQNSAbeCMXisArqZ7GfLtmEAl1KejQAAAAAdAKURIxQ5AnZ7u/QDd8UCIGqR7J38oAG7UMHupj18ApzRxtyNIvgCRDIDLPnQFwGVBw6+AAAAABZUX0SYbdIAauuloLA82QAnF/Rqcp5IAvZIOEzzdm8DxRXR0bTtiQPvSIN85ZRjAocofWsBAAAA8me/PbU4JQJH4lu+jTVfAWfKLs150l0C1jDE/LlGVQGFxHhXsY5uAZ+r6tuJNpABBjPfWAAAAAA9oEkuLBD2AkyNp9TYgQkBivcBPkVvNQCEknJWE8fcA0/IhbhIw0MAWy+DhgdI4ADCdS2WAQAAAMFjNrBTkkcBQBsIg70j2gB/oOdyvrUyAgy7my9g4pUDbRpg6erQ+gBQBIaULCanAsPEEmEBAAAAc3JjL2JsczEyMzgxL2JpZy5ycwBQDRAAEwAAAE4AAAAWAAAAUA0QABMAAADtAAAAGgAAAFANEAATAAAA7QAAAA0AAABQDRAAEwAAAO8AAAAJAAAAUA0QABMAAACmAQAAFwAAAFANEAATAAAALQIAABIAAABQDRAAEwAAAFIDAAAYAAAAUA0QABMAAABSAwAAIQAAAFANEAATAAAAXAMAACEAAABQDRAAEwAAAHUDAAAXAAAAUA0QABMAAAB+AwAAFwAAAFANEAATAAAAwQMAABgAAABQDRAAEwAAAM8DAAAYAAAAVHJpZWQgdG8gc2hyaW5rIHRvIGEgbGFyZ2VyIGNhcGFjaXR5NA4QACQAAAAvcnVzdGMvZmU1YjEzZDY4MWYyNWVlNjQ3NGJlMjlkNzQ4YzY1YWRjZDkxZjY5ZS9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjLnJzYA4QAEwAAACpAQAACQAAAAAAAAAirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsmC+KQpFEN3HP+8C1pdu16VvCVjnxEfFZpII/ktVeHKuYqgfYAVuDEr6FMSTDfQxVdF2+cv6x3oCnBtybdPGbwcFpm+SGR77vxp3BD8yhDCRvLOktqoR0StypsFzaiPl2UlE+mG3GMajIJwOwx39Zv/ML4MZHkafVUWPKBmcpKRSFCrcnOCEbLvxtLE0TDThTVHMKZbsKanYuycKBhSxykqHov6JLZhqocItLwqNRbMcZ6JLRJAaZ1oU1DvRwoGoQFsGkGQhsNx5Md0gntbywNLMMHDlKqthOT8qcW/NvLmjugo90b2OleBR4yIQIAseM+v++kOtsUKT3o/m+8nhxxnNyYy9ibHMxMjM4MS9ibHMucnMAAAAAAKuq//////4B7v//VKz//wLqQWIPaw8qAcOc/UoUzhMCS3dk16xLQwLt6caSpvlfAqMeEaABAAAAQBIQABMAAABBAAAAEwAAAEASEAATAAAAQQAAAA0AAABAEhAAEwAAAEMAAAAsAAAAQkxTX1NJR19CTFMxMjM4MUcxX1hNRDpTSEEtMjU2X1NTV1VfUk9fTlVMX3NyYy9ibHMxMjM4MS9mcDIucnMAAOsSEAATAAAAmwAAABIAAADrEhAAEwAAAJ8AAAASAAAAc3JjL2JsczEyMzgxL2VjcDIucnMgExAAFAAAAJMAAAAVAAAAIBMQABQAAACUAAAAFQAAACATEAAUAAAAlQAAABUAAAAgExAAFAAAAJYAAAAVAAAAIBMQABQAAACXAAAAFQAAACATEAAUAAAAmAAAABUAAAAgExAAFAAAAJkAAAAVAAAAIBMQABQAAACaAAAAFQAAACATEAAUAAAAGQEAABEAAAAgExAAFAAAACIBAAAWAAAAIBMQABQAAAAoAQAAGgAAAAAAAAAEAEGgqMAAC/kEIBMQABQAAABXAgAADQAAACATEAAUAAAAXAIAAAkAAAC4vSHByFaAAPX7bgGqyQADunAXPa5HtgBE0QrsAOlTA3rkxlEQxS0DSQGCSaTCIwAvK6okAAAAAH4rBF0FfawB+VUX5YREPAM0kwT1x70bAmnXatiCZEID0GtZZU8niADoNGsf2GecAAW2Aj4BAAAAASi4CIZUkwF4oijrDnOyAiPJEg0WlaYBCrWdTvcyqgKb/a0aNS7aAnFzMmOEW58Ad1JdzgAAAAC+eV/wXwepAmpoBzvXScMB87Oa6XK1KgHSmbyOnRb6ASg+y5mLwisArDSrDDPNqQMCSmxgAAAAAHNyYy9obWFjLnJzACAVEAALAAAAewAAABQAAAAgFRAACwAAAHsAAAANAAAAIBUQAAsAAAB/AAAAIAAAACAVEAALAAAAfwAAAA0AAAAgFRAACwAAAIIAAAANAAAAIBUQAAsAAAB3AAAAFAAAACAVEAALAAAAdwAAAA0AAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAACAVEAALAAAARAEAAAUAAABIMkMtT1ZFUlNJWkUtRFNULQAAACAVEAALAAAAWwEAADYAAAAgFRAACwAAAHABAAAJAAAAIBUQAAsAAAByAQAABQAAACAVEAALAAAAdAEAAEAAAAAgFRAACwAAAHkBAAAUAAAAIBUQAAsAAAB/AQAADQAAACAVEAALAAAAgQEAAAkAAAAgFRAACwAAAIMBAAAzAAAAIBUQAAsAAACDAQAASwAAACAVEAALAAAAhQEAABQAAAAgFRAACwAAAIUBAAANAAAAAAABAAAAAQI0AEHIrcAAC5wBuF8jku11BwFjT+D5WE+pA2dPnKtLeD0Akew9ffXy9AMD1g8fDSwgAK1vjPCZwa4A8DtNkAEAAADzStxtEor3AIuwH1tTsFYDgvLFYx+X7AAysL/NHtseAkehVLifHyMCQHo6ogw4sQGz4sMPAAAAAP7//v///wECiwCAgtgE9gHhjWiJb76TAs52q989qB0Axmm6Uc523wPLWcYXAEHwrsAAC+EEAQAAAAAAAACCgAAAAAAAAIqAAAAAAACAAIAAgAAAAICLgAAAAAAAAAEAAIAAAAAAgYAAgAAAAIAJgAAAAAAAgIoAAAAAAAAAiAAAAAAAAAAJgACAAAAAAAoAAIAAAAAAi4AAgAAAAACLAAAAAAAAgImAAAAAAACAA4AAAAAAAIACgAAAAAAAgIAAAAAAAACACoAAAAAAAAAKAACAAAAAgIGAAIAAAACAgIAAAAAAAIABAACAAAAAAAiAAIAAAACAc3JjL3NoYTMucnMAMBgQAAsAAAC/AAAACQAAADAYEAALAAAA2QAAABAAAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAADAYEAALAAAA3QAAABwAAAAwGBAACwAAAN8AAAAVAAAAMBgQAAsAAADpAAAAGAAAADAYEAALAAAA6wAAABEAAABzcmMvYmxzMTIzODEvZGJpZy5yc7wYEAAUAAAAXAAAAA4AAAC8GBAAFAAAAFwAAAAyAAAAvBgQABQAAABfAAAAOAAAALwYEAAUAAAAYgAAAAkAAAC8GBAAFAAAAG4AAAASAAAAvBgQABQAAABtAAAADQAAALwYEAAUAAAAcAAAAAkAAACrqv/////+Ae7//1Ss//8C6kFiD2sPKgHDnP1KFM4TAkt3ZNesS0MC7enGkqb5XwKjHhGgAQAAAK73vtWhOQYC6JPdYmRMJAHSLG5OtQktAtvlcDG2xBEBmWM2++htigO8nB/tzxZPACtqpp4BAAAAc3JjL2JsczEyMzgxL2ZwLnJzAACwGRAAEgAAAHoBAAANAEHgs8AAC8EHYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAAAAAABhdHRlbXB0IHRvIGRpdmlkZSB3aXRoIG92ZXJmbG93ALAZEAASAAAADAIAAA0AAACwGRAAEgAAABgCAAAmAAAAsBkQABIAAAAYAgAAIwAAALAZEAASAAAAHgIAABcAAACwGRAAEgAAAB4CAAAUAAAAqqr//////gHu//9UrP//AupBYg9rDyoBw5z9ShTOEwJLd2TXrEtDAu3pxpKm+V8Cox4RoAEAAAADAAAABAAAAAQAAAAEAAAABQAAAAYAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAoAAOsaEAAVAAAAABsQAA4AAABsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnMgGxAAGAAAAEkBAAAJAAAAbGlicmFyeS9zdGQvc3JjL3Bhbmlja2luZy5yc0gbEAAcAAAARgIAAB8AAABIGxAAHAAAAEcCAAAeAAAABwAAAAwAAAAEAAAACAAAAAMAAAAIAAAABAAAAAkAAAAKAAAAEAAAAAQAAAALAAAADAAAAAMAAAAIAAAABAAAAA0AAAAOAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA6BsQABEAAADMGxAAHAAAAAUCAAAFAAAAEAAAAAAAAAABAAAAEQAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAAAkHBAAIAAAAEQcEAASAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5yc3JhbmdlIGVuZCBpbmRleCAAAABxHRAAEAAAADAdEAAiAAAAUh0QAB8AAABJAAAABQB7CXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS42MS4wIChmZTViMTNkNjggMjAyMi0wNS0xOCkGd2FscnVzBjAuMTkuMAx3YXNtLWJpbmRnZW4SMC4yLjgxICgwNjJhYTVmNzAp`; diff --git a/packages/agent/tsconfig.json b/packages/agent/tsconfig.json index 5d74a0447..e1d01f082 100644 --- a/packages/agent/tsconfig.json +++ b/packages/agent/tsconfig.json @@ -23,6 +23,6 @@ "target": "es2017", "tsBuildInfoFile": "./build_info.json" }, - "include": ["types/*", "src/**/*.ts", "../candid/src/utils/bls.test.ts"], + "include": ["types/*", "src/**/*.ts"], "exclude": ["**/src/**/__certificates__/**", "**/src/**/*.test.ts"] } diff --git a/packages/bls-verify/README.md b/packages/bls-verify/README.md index 9d601693f..242a5d5e5 100644 --- a/packages/bls-verify/README.md +++ b/packages/bls-verify/README.md @@ -1,5 +1,7 @@ # @dfinity/bls-verify +`**Warning** this package is deprecated` + Package wrapping the @noble/bls-12-381 pure JS BLS verification implementation for use in `agent-js`. This is useful in contexts like React Native, where wasm implementations of BLS verification are not supported. Visit the [Dfinity Forum](https://forum.dfinity.org/) and [SDK Documentation](https://sdk.dfinity.org/docs/index.html) for more information and support building on the Internet Computer. diff --git a/packages/bls-verify/jest.config.ts b/packages/bls-verify/jest.config.ts deleted file mode 100644 index 221f7e932..000000000 --- a/packages/bls-verify/jest.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -import baseConfig from '../../jest.config.base'; -const packageName = 'bls-verify'; - -module.exports = { - ...baseConfig, - roots: [`/packages/${packageName}`], - moduleDirectories: ['node_modules'], - modulePaths: [`/packages/${packageName}/src/`], - setupFiles: [`/packages/${packageName}/test-setup.ts`], - transform: { - '^.+\\.ts$': 'ts-jest', - }, - collectCoverageFrom: ['src/**/*.{ts,tsx}'], - displayName: packageName, - rootDir: '../..', -}; diff --git a/packages/bls-verify/package.json b/packages/bls-verify/package.json index fb11172e4..8dfabb986 100644 --- a/packages/bls-verify/package.json +++ b/packages/bls-verify/package.json @@ -4,6 +4,7 @@ "author": "DFINITY Stiftung ", "license": "Apache-2.0", "description": "bls verification strategy in JavaScript", + "deprecation": "No longer needed. Use @noble/curves with verifyShortSignatures instead", "homepage": "https://internetcomputer.org", "repository": { "type": "git", @@ -14,24 +15,6 @@ "url": "https://github.com/dfinity/agent-js/issues" }, "type": "module", - "keywords": [ - "internet computer", - "ic", - "dfinity", - "canister", - "webauthn", - "identity", - "principal", - "dfx", - "candid", - "motoko", - "javascript", - "typescript", - "blockchain", - "crypto", - "distributed", - "api" - ], "main": "./lib/cjs/index.js", "module": "./lib/esm/index.js", "unpkg": "./lib/esm/index", @@ -47,15 +30,6 @@ "prettier": "prettier --check \"src/**/*.ts\"", "prettier:write": "npm run prettier -- --write" }, - "dependencies": { - "amcl-js": "file:src/vendor/amcl-js" - }, - "devDependencies": { - "@types/jest": "^29.5.5", - "esbuild": "^0.15.16", - "jest": "^29.7.0", - "size-limit": "^8.1.0" - }, "size-limit": [ { "path": "./dist/index.js", diff --git a/packages/bls-verify/src/index.test.ts b/packages/bls-verify/src/index.test.ts deleted file mode 100644 index fa835156f..000000000 --- a/packages/bls-verify/src/index.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { blsVerify } from './index'; -import * as Cert from '../../agent/src/certificate'; -import * as cbor from '../../agent/src/cbor'; -import { fromHex } from '../../agent/src/utils/buffer'; -import { Principal } from '@dfinity/principal'; - -// Root public key for the IC main net, encoded as hex -const IC_ROOT_KEY = - '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814' + - 'c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d968' + - '5f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484' + - 'b01291091c5f87b98883463f98091a0baaae'; - -// The sample certificate for testing delegation is extracted from the response used in agent-rs tests, where they were taken -// from an interaction with the IC mainnet. -const SAMPLE_CERT = - 'd9d9f7a364747265658301830182045820250f5e26868d9c1ea7ab29cbe9c15bf1c47c0d7605e803e39e375a7fe09c6ebb830183024e726571756573745f7374617475738301820458204b268227774ec77ff2b37ecb12157329d54cf376694bdd59ded7803efd82386f83025820edad510eaaa08ed2acd4781324e6446269da6753ec17760f206bbe81c465ff528301830183024b72656a6563745f636f64658203410383024e72656a6563745f6d6573736167658203584443616e69737465722069766733372d71696161612d61616161622d61616167612d63616920686173206e6f20757064617465206d6574686f64202772656769737465722783024673746174757382034872656a65637465648204582097232f31f6ab7ca4fe53eb6568fc3e02bc22fe94ab31d010e5fb3c642301f1608301820458203a48d1fc213d49307103104f7d72c2b5930edba8787b90631f343b3aa68a5f0a83024474696d65820349e2dc939091c696eb16697369676e6174757265583089a2be21b5fa8ac9fab1527e041327ce899d7da971436a1f2165393947b4d942365bfe5488710e61a619ba48388a21b16a64656c65676174696f6ea2697375626e65745f6964581dd77b2a2f7199b9a8aec93fe6fb588661358cf12223e9a3af7b4ebac4026b6365727469666963617465590231d9d9f7a26474726565830182045820ae023f28c3b9d966c8fb09f9ed755c828aadb5152e00aaf700b18c9c067294b483018302467375626e6574830182045820e83bb025f6574c8f31233dc0fe289ff546dfa1e49bd6116dd6e8896d90a4946e830182045820e782619092d69d5bebf0924138bd4116b0156b5a95e25c358ea8cf7e7161a661830183018204582062513fa926c9a9ef803ac284d620f303189588e1d3904349ab63b6470856fc4883018204582060e9a344ced2c9c4a96a0197fd585f2d259dbd193e4eada56239cac26087f9c58302581dd77b2a2f7199b9a8aec93fe6fb588661358cf12223e9a3af7b4ebac402830183024f63616e69737465725f72616e6765738203581bd9d9f781824a000000000020000001014a00000000002fffff010183024a7075626c69635f6b657982035885308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c050302010361009933e1f89e8a3c4d7fdcccdbd518089e2bd4d8180a261f18d9c247a52768ebce98dc7328a39814a8f911086a1dd50cbe015e2a53b7bf78b55288893daa15c346640e8831d72a12bdedd979d28470c34823b8d1c3f4795d9c3984a247132e94fe82045820996f17bb926be3315745dea7282005a793b58e76afeb5d43d1a28ce29d2d158583024474696d6582034995b8aac0e4eda2ea16697369676e61747572655830ace9fcdd9bc977e05d6328f889dc4e7c99114c737a494653cb27a1f55c06f4555e0f160980af5ead098acc195010b2f7'; - -beforeEach(() => { - jest.setTimeout(10_000); -}); -test('delegation works for canisters within the subnet range', async () => { - // The certificate specifies the range from - // 0x00000000002000000101 - // to - // 0x00000000002FFFFF0101 - const rangeStart = Principal.fromHex('00000000002000000101'); - const rangeInterior = Principal.fromHex('000000000020000C0101'); - const rangeEnd = Principal.fromHex('00000000002FFFFF0101'); - jest.useFakeTimers(); - async function verifies(canisterId) { - jest.setSystemTime(new Date(Date.parse('2022-02-23T07:38:00.652Z'))); - await expect( - Cert.Certificate.create({ - certificate: fromHex(SAMPLE_CERT), - rootKey: fromHex(IC_ROOT_KEY), - canisterId: canisterId, - blsVerify, - }), - ).resolves.not.toThrow(); - } - await verifies(rangeStart); - await verifies(rangeInterior); - await verifies(rangeEnd); -}); - -test('delegation check fails for canisters outside of the subnet range', async () => { - // Use a different principal than the happy path, which isn't in the delegation ranges. - // The certificate specifies the range from - // 0x00000000002000000101 - // to - // 0x00000000002FFFFF0101 - const beforeRange = Principal.fromHex('00000000000000020101'); - const afterRange = Principal.fromHex('00000000003000020101'); - async function certificateFails(canisterId) { - await expect( - Cert.Certificate.create({ - certificate: fromHex(SAMPLE_CERT), - rootKey: fromHex(IC_ROOT_KEY), - canisterId: canisterId, - blsVerify, - }), - ).rejects.toThrow(/Invalid certificate/); - } - await certificateFails(beforeRange); - await certificateFails(afterRange); -}); - -type FakeCert = { - tree: Cert.HashTree; - signature: ArrayBuffer; - delegation?: { subnet_id: ArrayBuffer; certificate: ArrayBuffer }; -}; - -test('certificate verification fails for an invalid signature', async () => { - const badCert: FakeCert = cbor.decode(fromHex(SAMPLE_CERT)); - badCert.signature = new ArrayBuffer(badCert.signature.byteLength); - const badCertEncoded = cbor.encode(badCert); - await expect( - Cert.Certificate.create({ - certificate: badCertEncoded, - rootKey: fromHex(IC_ROOT_KEY), - canisterId: Principal.fromText('ivg37-qiaaa-aaaab-aaaga-cai'), - blsVerify, - }), - ).rejects.toThrow('Invalid certificate'); -}); - -test('verify', async () => { - const pk = - 'a7623a93cdb56c4d23d99c14216afaab3dfd6d4f9eb3db23d038280b6d5cb2caaee2a19dd92c9df7001d' + - 'ede23bf036bc0f33982dfb41e8fa9b8e96b5dc3e83d55ca4dd146c7eb2e8b6859cb5a5db815db86810b8' + - 'd12cee1588b5dbf34a4dc9a5'; - const sig = - 'b89e13a212c830586eaa9ad53946cd968718ebecc27eda849d9232673dcd4f440e8b5df39bf14a88048c15e16cbcaabe'; - const msg = Buffer.from('hello').toString('hex'); - expect(await blsVerify(pk, sig, msg)).toBe(true); - expect(await blsVerify(pk, sig, Buffer.from('hallo').toString('hex'))).toBe(false); -}, 10000); // Default timer is flaky with WASM. diff --git a/packages/bls-verify/src/index.ts b/packages/bls-verify/src/index.ts index 7b566c846..7cedc7ce1 100644 --- a/packages/bls-verify/src/index.ts +++ b/packages/bls-verify/src/index.ts @@ -1,25 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { CTX } from 'amcl-js'; -import { toHex } from './utils'; - -export const blsVerify = async ( - primaryKey: Uint8Array | string, - signature: Uint8Array | string, - message: Uint8Array | string, -): Promise => { - const pk = typeof primaryKey === 'string' ? primaryKey : toHex(primaryKey); - const sig = typeof signature === 'string' ? signature : toHex(signature); - const msg = typeof message === 'string' ? message : toHex(message); - const ctx = new CTX('BLS12381'); - if (((ctx as any).BLS as any).init() !== 0) { - throw new Error('Cannot initialize BLS'); - } - - return ( - ((ctx as any).BLS as any).core_verify( - ((ctx as any).BLS as any).stringtobytes(sig), - ((ctx as any).BLS as any).stringtobytes(msg), - ((ctx as any).BLS as any).stringtobytes(pk), - ) == 0 - ); -}; +console.error( + '@dfinity/bls-verify is deprecated. You can simply use `@dfinity/agent` without it, and use @noble/curves instead.', +); diff --git a/packages/bls-verify/src/utils.ts b/packages/bls-verify/src/utils.ts deleted file mode 100644 index 1bc98d2e6..000000000 --- a/packages/bls-verify/src/utils.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Transforms a buffer to an hexadecimal string. This will use the buffer as an Uint8Array. - * @param buffer The buffer to return the hexadecimal string of. - */ -export function toHex(buffer: ArrayBuffer): string { - return [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, '0')).join(''); -} - -const hexRe = new RegExp(/^([0-9A-F]{2})*$/i); - -/** - * Transforms a hexadecimal string into an array buffer. - * @param hex The hexadecimal string to use. - */ -export function fromHex(hex: string): ArrayBuffer { - if (!hexRe.test(hex)) { - throw new Error('Invalid hexadecimal string.'); - } - const buffer = [...hex] - .reduce((acc, curr, i) => { - acc[(i / 2) | 0] = (acc[(i / 2) | 0] || '') + curr; - return acc; - }, [] as string[]) - .map(x => Number.parseInt(x, 16)); - - return new Uint8Array(buffer).buffer; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/index.js b/packages/bls-verify/src/vendor/amcl-js/index.js deleted file mode 100644 index b8e38afff..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports.CTX = require('./src/ctx'); diff --git a/packages/bls-verify/src/vendor/amcl-js/package.json b/packages/bls-verify/src/vendor/amcl-js/package.json deleted file mode 100644 index 43addfb1e..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "amcl-js", - "version": "3.0.0", - "description": "AMCL Library", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "Michael Scott, Alessandro Budroni, Kealan McCusker, Samuele Andreoli", - "license": "Apache License 2.0", - "dependencies": { - "prompt": "^1.0.0" - } -} diff --git a/packages/bls-verify/src/vendor/amcl-js/readme.md b/packages/bls-verify/src/vendor/amcl-js/readme.md deleted file mode 100644 index ce1ac3802..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/readme.md +++ /dev/null @@ -1,62 +0,0 @@ -# Installation and Testing - -Suppose you want to implement ECDH with NIST256 elliptic curve. First you need to initialize the context: - - var ctx = new CTX("NIST256"); - -then you can call the functions as follows: - - ctx.ECDH.KEY_PAIR_GENERATE(...); - ctx.ECDH.ECPSVDP_DH(...); - -If you need to use more than one elliptic curve in the same program you only need to initialize two different contexts, for example - - var ctx1 = new CTX("NIST256"); - var ctx2 = new CTX("C25519"); - -The following is the list of all elliptic curves supported by MIRACL Core JS - - ['ED25519', 'C25519', 'C41417', 'GOLDILOCKS', 'X448', 'NIST256', 'SECP160R1', 'C1174', 'C1665', 'MDC', 'NIST384','NIST521', 'BRAINPOOL', 'ANSSI', 'HIFIVE', 'JUBJUB', 'NUMS256W', 'SECP256K1','NUMS256E', 'NUMS384W', 'NUMS384E', 'NUMS512W', 'NUMS512E', 'TWEEDLEDUM', 'TWEEDLEDEE', 'BN254', 'BN254CX', 'BLS12383', 'BLS12381', 'FP256BN', 'FP512BN', 'BLS12461', 'BN462', 'BLS24479', 'BLS48556', 'BLS48581', 'BLS48286']; - -This library supports also RSA encryption/decryption and RSA signature. The following is a quick example on how to use RSA. First initialize the context - - var ctx = new CTX("RSA2048"); - -then you can call the RSA functions as follows: - - ctx.RSA.ENCRYPT(...); - ctx.RSA.DECRYPT(...); - -The following is the list of all the RSA security level supported by _MIRACL Core JS_ - - ['RSA2048','RSA3072','RSA4096']; - -MIRACL Core JS supports also SHA256, SHA384, SHA512, SHA3, AES-GCM encryption and a secure random number generator. Those functions are contained in every context initialized with RSA or with an elliptic curve. -If you want to create a context supporting only those general functions then initialize it with no parameter as follows: - - var ctx = new CTX(); - -To use this library in Node.js import it as follows: - -```javascript -var CTX = require('./index.js'); -``` - -It is also possible to use it as a npm package. Install it locally into your project with: - - npm install --save - -As an example in React it is possible to install the library with npm and import it with - -```javascript -const ctx = require('amcl-js').CTX; -``` - -After the import the library is used as described above. - ---- - -To see some running examples, load TestECC.html or TestMPIN.html or TestHPKE.html or TestHTP.html or TestBLS.html or TestNHS.html or BenchtestALL.html into your favourite browser. -You might have to wait a few seconds for the benchmarking scripts to complete. - -For TestMPIN.html the correct PIN number is 1234. diff --git a/packages/bls-verify/src/vendor/amcl-js/src/aes.js b/packages/bls-verify/src/vendor/amcl-js/src/aes.js deleted file mode 100644 index 0ce8d189a..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/aes.js +++ /dev/null @@ -1,882 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var AES = function () { - 'use strict'; - - var AES = function () { - this.Nk = 0; - this.Nr = 0; - this.mode = 0; - this.fkey = []; - this.rkey = []; - this.f = []; - }; - - // AES constants - AES.ECB = 0; - AES.CBC = 1; - AES.CFB1 = 2; - AES.CFB2 = 3; - AES.CFB4 = 5; - AES.OFB1 = 14; - AES.OFB2 = 15; - AES.OFB4 = 17; - AES.OFB8 = 21; - AES.OFB16 = 29; - AES.CTR1 = 30; - AES.CTR2 = 31; - AES.CTR4 = 33; - AES.CTR8 = 37; - AES.CTR16 = 45; - - AES.prototype = { - /* reset cipher */ - reset: function (m, iv) { - /* reset mode, or reset iv */ - var i; - - this.mode = m; - - for (i = 0; i < 16; i++) { - this.f[i] = 0; - } - - if (this.mode != AES.ECB && iv !== null) { - for (i = 0; i < 16; i++) { - this.f[i] = iv[i]; - } - } - }, - - getreg: function () { - var ir = [], - i; - - for (i = 0; i < 16; i++) { - ir[i] = this.f[i]; - } - - return ir; - }, - - increment: function () { - var i; - - for (i = 0; i < 16; i++) { - this.f[i]++; - - if ((this.f[i] & 0xff) != 0) { - break; - } - } - }, - - /* Initialise cipher */ - init: function (m, nk, key, iv) { - /* Key=16 bytes */ - /* Key Scheduler. Create expanded encryption key */ - var CipherKey = [], - b = [], - i, - j, - k, - N, - nr; - - nk /= 4; - - if (nk != 4 && nk != 6 && nk != 8) { - return false; - } - - nr = 6 + nk; - - this.Nk = nk; - this.Nr = nr; - - this.reset(m, iv); - N = 4 * (nr + 1); - - for (i = j = 0; i < nk; i++, j += 4) { - for (k = 0; k < 4; k++) { - b[k] = key[j + k]; - } - CipherKey[i] = AES.pack(b); - } - - for (i = 0; i < nk; i++) { - this.fkey[i] = CipherKey[i]; - } - - for (j = nk, k = 0; j < N; j += nk, k++) { - this.fkey[j] = - this.fkey[j - nk] ^ AES.SubByte(AES.ROTL24(this.fkey[j - 1])) ^ (AES.rco[k] & 0xff); - - if (nk <= 6) { - for (i = 1; i < nk && i + j < N; i++) { - this.fkey[i + j] = this.fkey[i + j - nk] ^ this.fkey[i + j - 1]; - } - } else { - for (i = 1; i < 4 && i + j < N; i++) { - this.fkey[i + j] = this.fkey[i + j - nk] ^ this.fkey[i + j - 1]; - } - if (j + 4 < N) { - this.fkey[j + 4] = this.fkey[j + 4 - nk] ^ AES.SubByte(this.fkey[j + 3]); - } - for (i = 5; i < nk && i + j < N; i++) { - this.fkey[i + j] = this.fkey[i + j - nk] ^ this.fkey[i + j - 1]; - } - } - } - - /* now for the expanded decrypt key in reverse order */ - - for (j = 0; j < 4; j++) { - this.rkey[j + N - 4] = this.fkey[j]; - } - - for (i = 4; i < N - 4; i += 4) { - k = N - 4 - i; - for (j = 0; j < 4; j++) { - this.rkey[k + j] = AES.InvMixCol(this.fkey[i + j]); - } - } - - for (j = N - 4; j < N; j++) { - this.rkey[j - N + 4] = this.fkey[j]; - } - }, - - /* Encrypt a single block */ - ecb_encrypt: function (buff) { - var b = [], - p = [], - q = [], - t, - i, - j, - k; - - for (i = j = 0; i < 4; i++, j += 4) { - for (k = 0; k < 4; k++) { - b[k] = buff[j + k]; - } - p[i] = AES.pack(b); - p[i] ^= this.fkey[i]; - } - - k = 4; - - /* State alternates between p and q */ - for (i = 1; i < this.Nr; i++) { - q[0] = - this.fkey[k] ^ - AES.ftable[p[0] & 0xff] ^ - AES.ROTL8(AES.ftable[(p[1] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.ftable[(p[2] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.ftable[(p[3] >>> 24) & 0xff]); - q[1] = - this.fkey[k + 1] ^ - AES.ftable[p[1] & 0xff] ^ - AES.ROTL8(AES.ftable[(p[2] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.ftable[(p[3] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.ftable[(p[0] >>> 24) & 0xff]); - q[2] = - this.fkey[k + 2] ^ - AES.ftable[p[2] & 0xff] ^ - AES.ROTL8(AES.ftable[(p[3] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.ftable[(p[0] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.ftable[(p[1] >>> 24) & 0xff]); - q[3] = - this.fkey[k + 3] ^ - AES.ftable[p[3] & 0xff] ^ - AES.ROTL8(AES.ftable[(p[0] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.ftable[(p[1] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.ftable[(p[2] >>> 24) & 0xff]); - - k += 4; - for (j = 0; j < 4; j++) { - t = p[j]; - p[j] = q[j]; - q[j] = t; - } - } - - /* Last Round */ - - q[0] = - this.fkey[k] ^ - (AES.fbsub[p[0] & 0xff] & 0xff) ^ - AES.ROTL8(AES.fbsub[(p[1] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.fbsub[(p[2] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.fbsub[(p[3] >>> 24) & 0xff] & 0xff); - - q[1] = - this.fkey[k + 1] ^ - (AES.fbsub[p[1] & 0xff] & 0xff) ^ - AES.ROTL8(AES.fbsub[(p[2] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.fbsub[(p[3] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.fbsub[(p[0] >>> 24) & 0xff] & 0xff); - - q[2] = - this.fkey[k + 2] ^ - (AES.fbsub[p[2] & 0xff] & 0xff) ^ - AES.ROTL8(AES.fbsub[(p[3] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.fbsub[(p[0] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.fbsub[(p[1] >>> 24) & 0xff] & 0xff); - - q[3] = - this.fkey[k + 3] ^ - (AES.fbsub[p[3] & 0xff] & 0xff) ^ - AES.ROTL8(AES.fbsub[(p[0] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.fbsub[(p[1] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.fbsub[(p[2] >>> 24) & 0xff] & 0xff); - - for (i = j = 0; i < 4; i++, j += 4) { - b = AES.unpack(q[i]); - for (k = 0; k < 4; k++) { - buff[j + k] = b[k]; - } - } - }, - - /* Decrypt a single block */ - ecb_decrypt: function (buff) { - var b = [], - p = [], - q = [], - t, - i, - j, - k; - - for (i = j = 0; i < 4; i++, j += 4) { - for (k = 0; k < 4; k++) { - b[k] = buff[j + k]; - } - p[i] = AES.pack(b); - p[i] ^= this.rkey[i]; - } - - k = 4; - - /* State alternates between p and q */ - for (i = 1; i < this.Nr; i++) { - q[0] = - this.rkey[k] ^ - AES.rtable[p[0] & 0xff] ^ - AES.ROTL8(AES.rtable[(p[3] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.rtable[(p[2] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.rtable[(p[1] >>> 24) & 0xff]); - q[1] = - this.rkey[k + 1] ^ - AES.rtable[p[1] & 0xff] ^ - AES.ROTL8(AES.rtable[(p[0] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.rtable[(p[3] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.rtable[(p[2] >>> 24) & 0xff]); - q[2] = - this.rkey[k + 2] ^ - AES.rtable[p[2] & 0xff] ^ - AES.ROTL8(AES.rtable[(p[1] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.rtable[(p[0] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.rtable[(p[3] >>> 24) & 0xff]); - q[3] = - this.rkey[k + 3] ^ - AES.rtable[p[3] & 0xff] ^ - AES.ROTL8(AES.rtable[(p[2] >>> 8) & 0xff]) ^ - AES.ROTL16(AES.rtable[(p[1] >>> 16) & 0xff]) ^ - AES.ROTL24(AES.rtable[(p[0] >>> 24) & 0xff]); - - k += 4; - - for (j = 0; j < 4; j++) { - t = p[j]; - p[j] = q[j]; - q[j] = t; - } - } - - /* Last Round */ - - q[0] = - this.rkey[k] ^ - (AES.rbsub[p[0] & 0xff] & 0xff) ^ - AES.ROTL8(AES.rbsub[(p[3] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.rbsub[(p[2] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.rbsub[(p[1] >>> 24) & 0xff] & 0xff); - q[1] = - this.rkey[k + 1] ^ - (AES.rbsub[p[1] & 0xff] & 0xff) ^ - AES.ROTL8(AES.rbsub[(p[0] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.rbsub[(p[3] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.rbsub[(p[2] >>> 24) & 0xff] & 0xff); - q[2] = - this.rkey[k + 2] ^ - (AES.rbsub[p[2] & 0xff] & 0xff) ^ - AES.ROTL8(AES.rbsub[(p[1] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.rbsub[(p[0] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.rbsub[(p[3] >>> 24) & 0xff] & 0xff); - q[3] = - this.rkey[k + 3] ^ - (AES.rbsub[p[3] & 0xff] & 0xff) ^ - AES.ROTL8(AES.rbsub[(p[2] >>> 8) & 0xff] & 0xff) ^ - AES.ROTL16(AES.rbsub[(p[1] >>> 16) & 0xff] & 0xff) ^ - AES.ROTL24(AES.rbsub[(p[0] >>> 24) & 0xff] & 0xff); - - for (i = j = 0; i < 4; i++, j += 4) { - b = AES.unpack(q[i]); - for (k = 0; k < 4; k++) { - buff[j + k] = b[k]; - } - } - }, - - /* Encrypt using selected mode of operation */ - encrypt: function (buff) { - var st = [], - bytes, - fell_off, - j; - - // Supported Modes of Operation - - fell_off = 0; - - switch (this.mode) { - case AES.ECB: - this.ecb_encrypt(buff); - return 0; - - case AES.CBC: - for (j = 0; j < 16; j++) { - buff[j] ^= this.f[j]; - } - this.ecb_encrypt(buff); - for (j = 0; j < 16; j++) { - this.f[j] = buff[j]; - } - return 0; - - case AES.CFB1: - case AES.CFB2: - case AES.CFB4: - bytes = this.mode - AES.CFB1 + 1; - for (j = 0; j < bytes; j++) { - fell_off = (fell_off << 8) | this.f[j]; - } - for (j = 0; j < 16; j++) { - st[j] = this.f[j]; - } - for (j = bytes; j < 16; j++) { - this.f[j - bytes] = this.f[j]; - } - this.ecb_encrypt(st); - for (j = 0; j < bytes; j++) { - buff[j] ^= st[j]; - this.f[16 - bytes + j] = buff[j]; - } - return fell_off; - - case AES.OFB1: - case AES.OFB2: - case AES.OFB4: - case AES.OFB8: - case AES.OFB16: - bytes = this.mode - AES.OFB1 + 1; - this.ecb_encrypt(this.f); - for (j = 0; j < bytes; j++) { - buff[j] ^= this.f[j]; - } - return 0; - - case AES.CTR1: - case AES.CTR2: - case AES.CTR4: - case AES.CTR8: - case AES.CTR16: - bytes = this.mode - AES.CTR1 + 1; - for (j = 0; j < 16; j++) { - st[j] = this.f[j]; - } - this.ecb_encrypt(st); - for (j = 0; j < bytes; j++) { - buff[j] ^= st[j]; - } - this.increment(); - return 0; - - default: - return 0; - } - }, - - /* Decrypt using selected mode of operation */ - decrypt: function (buff) { - var st = [], - bytes, - fell_off, - j; - - // Supported modes of operation - fell_off = 0; - switch (this.mode) { - case AES.ECB: - this.ecb_decrypt(buff); - return 0; - - case AES.CBC: - for (j = 0; j < 16; j++) { - st[j] = this.f[j]; - this.f[j] = buff[j]; - } - this.ecb_decrypt(buff); - for (j = 0; j < 16; j++) { - buff[j] ^= st[j]; - st[j] = 0; - } - return 0; - - case AES.CFB1: - case AES.CFB2: - case AES.CFB4: - bytes = this.mode - AES.CFB1 + 1; - for (j = 0; j < bytes; j++) { - fell_off = (fell_off << 8) | this.f[j]; - } - for (j = 0; j < 16; j++) { - st[j] = this.f[j]; - } - for (j = bytes; j < 16; j++) { - this.f[j - bytes] = this.f[j]; - } - this.ecb_encrypt(st); - for (j = 0; j < bytes; j++) { - this.f[16 - bytes + j] = buff[j]; - buff[j] ^= st[j]; - } - return fell_off; - - case AES.OFB1: - case AES.OFB2: - case AES.OFB4: - case AES.OFB8: - case AES.OFB16: - bytes = this.mode - AES.OFB1 + 1; - this.ecb_encrypt(this.f); - for (j = 0; j < bytes; j++) { - buff[j] ^= this.f[j]; - } - return 0; - - case AES.CTR1: - case AES.CTR2: - case AES.CTR4: - case AES.CTR8: - case AES.CTR16: - bytes = this.mode - AES.CTR1 + 1; - for (j = 0; j < 16; j++) { - st[j] = this.f[j]; - } - this.ecb_encrypt(st); - for (j = 0; j < bytes; j++) { - buff[j] ^= st[j]; - } - this.increment(); - return 0; - - default: - return 0; - } - }, - - /* Clean up and delete left-overs */ - end: function () { - // clean up - var i; - - for (i = 0; i < 4 * (this.Nr + 1); i++) { - this.fkey[i] = this.rkey[i] = 0; - } - - for (i = 0; i < 16; i++) { - this.f[i] = 0; - } - }, - }; - - /* static functions */ - - AES.ROTL8 = function (x) { - return (x << 8) | (x >>> 24); - }; - - AES.ROTL16 = function (x) { - return (x << 16) | (x >>> 16); - }; - - AES.ROTL24 = function (x) { - return (x << 24) | (x >>> 8); - }; - - AES.pack = function (b) { - /* pack 4 bytes into a 32-bit Word */ - return ((b[3] & 0xff) << 24) | ((b[2] & 0xff) << 16) | ((b[1] & 0xff) << 8) | (b[0] & 0xff); - }; - - AES.unpack = function (a) { - /* unpack bytes from a word */ - var b = []; - b[0] = a & 0xff; - b[1] = (a >>> 8) & 0xff; - b[2] = (a >>> 16) & 0xff; - b[3] = (a >>> 24) & 0xff; - return b; - }; - - AES.bmul = function (x, y) { - /* x.y= AntiLog(Log(x) + Log(y)) */ - var ix = x & 0xff, - iy = y & 0xff, - lx = AES.ltab[ix] & 0xff, - ly = AES.ltab[iy] & 0xff; - - if (x !== 0 && y !== 0) { - return AES.ptab[(lx + ly) % 255]; - } else { - return 0; - } - }; - - // if (x && y) - - AES.SubByte = function (a) { - var b = AES.unpack(a); - b[0] = AES.fbsub[b[0] & 0xff]; - b[1] = AES.fbsub[b[1] & 0xff]; - b[2] = AES.fbsub[b[2] & 0xff]; - b[3] = AES.fbsub[b[3] & 0xff]; - return AES.pack(b); - }; - - AES.product = function (x, y) { - /* dot product of two 4-byte arrays */ - var xb = AES.unpack(x), - yb = AES.unpack(y); - - return ( - (AES.bmul(xb[0], yb[0]) ^ - AES.bmul(xb[1], yb[1]) ^ - AES.bmul(xb[2], yb[2]) ^ - AES.bmul(xb[3], yb[3])) & - 0xff - ); - }; - - AES.InvMixCol = function (x) { - /* matrix Multiplication */ - var b = [], - y, - m; - - m = AES.pack(AES.InCo); - b[3] = AES.product(m, x); - m = AES.ROTL24(m); - b[2] = AES.product(m, x); - m = AES.ROTL24(m); - b[1] = AES.product(m, x); - m = AES.ROTL24(m); - b[0] = AES.product(m, x); - y = AES.pack(b); - - return y; - }; - - AES.CBC_IV0_ENCRYPT = function (K, M) { - /* ctx.AES CBC encryption, with Null IV and key K */ - /* Input is from an octet string M, output is to an octet string C */ - /* Input is padded as necessary to make up a full final block */ - var a = new AES(), - buff = [], - C = [], - fin, - padlen, - i, - j, - ipt, - opt; - - a.init(AES.CBC, K.length, K, null); - - ipt = opt = 0; - fin = false; - - for (;;) { - for (i = 0; i < 16; i++) { - if (ipt < M.length) { - buff[i] = M[ipt++]; - } else { - fin = true; - break; - } - } - - if (fin) { - break; - } - - a.encrypt(buff); - - for (i = 0; i < 16; i++) { - C[opt++] = buff[i]; - } - } - - /* last block, filled up to i-th index */ - - padlen = 16 - i; - for (j = i; j < 16; j++) { - buff[j] = padlen; - } - a.encrypt(buff); - for (i = 0; i < 16; i++) { - C[opt++] = buff[i]; - } - a.end(); - - return C; - }; - - AES.CBC_IV0_DECRYPT = function (K, C) { - /* padding is removed */ - var a = new AES(), - buff = [], - MM = [], - ipt = 0, - opt = 0, - M, - ch, - fin, - bad, - padlen, - i; - - a.init(AES.CBC, K.length, K, null); - - if (C.length === 0) { - return []; - } - ch = C[ipt++]; - - fin = false; - - for (;;) { - for (i = 0; i < 16; i++) { - buff[i] = ch; - if (ipt >= C.length) { - fin = true; - break; - } else { - ch = C[ipt++]; - } - } - a.decrypt(buff); - if (fin) { - break; - } - - for (i = 0; i < 16; i++) { - MM[opt++] = buff[i]; - } - } - - a.end(); - bad = false; - padlen = buff[15]; - - if (i != 15 || padlen < 1 || padlen > 16) { - bad = true; - } - - if (padlen >= 2 && padlen <= 16) { - for (i = 16 - padlen; i < 16; i++) { - if (buff[i] != padlen) { - bad = true; - } - } - } - - if (!bad) { - for (i = 0; i < 16 - padlen; i++) { - MM[opt++] = buff[i]; - } - } - - M = []; - if (bad) { - return M; - } - - for (i = 0; i < opt; i++) { - M[i] = MM[i]; - } - - return M; - }; - - AES.InCo = [0xb, 0xd, 0x9, 0xe]; /* Inverse Coefficients */ - AES.rco = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47]; - - AES.ptab = [ - 1, 3, 5, 15, 17, 51, 85, 255, 26, 46, 114, 150, 161, 248, 19, 53, 95, 225, 56, 72, 216, 115, - 149, 164, 247, 2, 6, 10, 30, 34, 102, 170, 229, 52, 92, 228, 55, 89, 235, 38, 106, 190, 217, - 112, 144, 171, 230, 49, 83, 245, 4, 12, 20, 60, 68, 204, 79, 209, 104, 184, 211, 110, 178, 205, - 76, 212, 103, 169, 224, 59, 77, 215, 98, 166, 241, 8, 24, 40, 120, 136, 131, 158, 185, 208, 107, - 189, 220, 127, 129, 152, 179, 206, 73, 219, 118, 154, 181, 196, 87, 249, 16, 48, 80, 240, 11, - 29, 39, 105, 187, 214, 97, 163, 254, 25, 43, 125, 135, 146, 173, 236, 47, 113, 147, 174, 233, - 32, 96, 160, 251, 22, 58, 78, 210, 109, 183, 194, 93, 231, 50, 86, 250, 21, 63, 65, 195, 94, - 226, 61, 71, 201, 64, 192, 91, 237, 44, 116, 156, 191, 218, 117, 159, 186, 213, 100, 172, 239, - 42, 126, 130, 157, 188, 223, 122, 142, 137, 128, 155, 182, 193, 88, 232, 35, 101, 175, 234, 37, - 111, 177, 200, 67, 197, 84, 252, 31, 33, 99, 165, 244, 7, 9, 27, 45, 119, 153, 176, 203, 70, - 202, 69, 207, 74, 222, 121, 139, 134, 145, 168, 227, 62, 66, 198, 81, 243, 14, 18, 54, 90, 238, - 41, 123, 141, 140, 143, 138, 133, 148, 167, 242, 13, 23, 57, 75, 221, 124, 132, 151, 162, 253, - 28, 36, 108, 180, 199, 82, 246, 1, - ]; - AES.ltab = [ - 0, 255, 25, 1, 50, 2, 26, 198, 75, 199, 27, 104, 51, 238, 223, 3, 100, 4, 224, 14, 52, 141, 129, - 239, 76, 113, 8, 200, 248, 105, 28, 193, 125, 194, 29, 181, 249, 185, 39, 106, 77, 228, 166, - 114, 154, 201, 9, 120, 101, 47, 138, 5, 33, 15, 225, 36, 18, 240, 130, 69, 53, 147, 218, 142, - 150, 143, 219, 189, 54, 208, 206, 148, 19, 92, 210, 241, 64, 70, 131, 56, 102, 221, 253, 48, - 191, 6, 139, 98, 179, 37, 226, 152, 34, 136, 145, 16, 126, 110, 72, 195, 163, 182, 30, 66, 58, - 107, 40, 84, 250, 133, 61, 186, 43, 121, 10, 21, 155, 159, 94, 202, 78, 212, 172, 229, 243, 115, - 167, 87, 175, 88, 168, 80, 244, 234, 214, 116, 79, 174, 233, 213, 231, 230, 173, 232, 44, 215, - 117, 122, 235, 22, 11, 245, 89, 203, 95, 176, 156, 169, 81, 160, 127, 12, 246, 111, 23, 196, 73, - 236, 216, 67, 31, 45, 164, 118, 123, 183, 204, 187, 62, 90, 251, 96, 177, 134, 59, 82, 161, 108, - 170, 85, 41, 157, 151, 178, 135, 144, 97, 190, 220, 252, 188, 149, 207, 205, 55, 63, 91, 209, - 83, 57, 132, 60, 65, 162, 109, 71, 20, 42, 158, 93, 86, 242, 211, 171, 68, 17, 146, 217, 35, 32, - 46, 137, 180, 124, 184, 38, 119, 153, 227, 165, 103, 74, 237, 222, 197, 49, 254, 24, 13, 99, - 140, 128, 192, 247, 112, 7, - ]; - AES.fbsub = [ - 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, - 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, - 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, - 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, - 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, - 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, - 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, - 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, - 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, - 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, - 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, - 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, - 176, 84, 187, 22, - ]; - AES.rbsub = [ - 82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, - 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, - 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, - 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, - 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, - 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, - 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, - 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, - 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, - 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, - 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, - 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, - 99, 85, 33, 12, 125, - ]; - AES.ftable = [ - 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6, 0xdf2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591, - 0x50303060, 0x3010102, 0xa96767ce, 0x7d2b2b56, 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec, - 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa, 0x15fafaef, 0xeb5959b2, 0xc947478e, 0xbf0f0fb, - 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45, 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b, - 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c, 0x5a36366c, 0x413f3f7e, 0x2f7f7f5, 0x4fcccc83, - 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x8f1f1f9, 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a, - 0xc040408, 0x52c7c795, 0x65232346, 0x5ec3c39d, 0x28181830, 0xa1969637, 0xf05050a, 0xb59a9a2f, - 0x907070e, 0x36121224, 0x9b80801b, 0x3de2e2df, 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea, - 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34, 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b, - 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d, 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413, - 0xf55353a6, 0x68d1d1b9, 0x0, 0x2cededc1, 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6, - 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972, 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85, - 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed, 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511, - 0xcf45458a, 0x10f9f9e9, 0x6020204, 0x817f7ffe, 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b, - 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05, 0xad92923f, 0xbc9d9d21, 0x48383870, 0x4f5f5f1, - 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142, 0x30101020, 0x1affffe5, 0xef3f3fd, 0x6dd2d2bf, - 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3, 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e, - 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a, 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6, - 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3, 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b, - 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428, 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad, - 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14, 0xdb494992, 0xa06060c, 0x6c242448, 0xe45c5cb8, - 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4, 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2, - 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda, 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949, - 0xb46c6cd8, 0xfa5656ac, 0x7f4f4f3, 0x25eaeacf, 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810, - 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c, 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697, - 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e, 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f, - 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc, 0xd8484890, 0x5030306, 0x1f6f6f7, 0x120e0e1c, - 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969, 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27, - 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122, 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433, - 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9, 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5, - 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a, 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0, - 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e, 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c, - ]; - AES.rtable = [ - 0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a, 0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b, - 0x55fa3020, 0xf66d76ad, 0x9176cc88, 0x254c02f5, 0xfcd7e54f, 0xd7cb2ac5, 0x80443526, 0x8fa362b5, - 0x495ab1de, 0x671bba25, 0x980eea45, 0xe1c0fe5d, 0x2752fc3, 0x12f04c81, 0xa397468d, 0xc6f9d36b, - 0xe75f8f03, 0x959c9215, 0xeb7a6dbf, 0xda595295, 0x2d83bed4, 0xd3217458, 0x2969e049, 0x44c8c98e, - 0x6a89c275, 0x78798ef4, 0x6b3e5899, 0xdd71b927, 0xb64fe1be, 0x17ad88f0, 0x66ac20c9, 0xb43ace7d, - 0x184adf63, 0x82311ae5, 0x60335197, 0x457f5362, 0xe07764b1, 0x84ae6bbb, 0x1ca081fe, 0x942b08f9, - 0x58684870, 0x19fd458f, 0x876cde94, 0xb7f87b52, 0x23d373ab, 0xe2024b72, 0x578f1fe3, 0x2aab5566, - 0x728ebb2, 0x3c2b52f, 0x9a7bc586, 0xa50837d3, 0xf2872830, 0xb2a5bf23, 0xba6a0302, 0x5c8216ed, - 0x2b1ccf8a, 0x92b479a7, 0xf0f207f3, 0xa1e2694e, 0xcdf4da65, 0xd5be0506, 0x1f6234d1, 0x8afea6c4, - 0x9d532e34, 0xa055f3a2, 0x32e18a05, 0x75ebf6a4, 0x39ec830b, 0xaaef6040, 0x69f715e, 0x51106ebd, - 0xf98a213e, 0x3d06dd96, 0xae053edd, 0x46bde64d, 0xb58d5491, 0x55dc471, 0x6fd40604, 0xff155060, - 0x24fb9819, 0x97e9bdd6, 0xcc434089, 0x779ed967, 0xbd42e8b0, 0x888b8907, 0x385b19e7, 0xdbeec879, - 0x470a7ca1, 0xe90f427c, 0xc91e84f8, 0x0, 0x83868009, 0x48ed2b32, 0xac70111e, 0x4e725a6c, - 0xfbff0efd, 0x5638850f, 0x1ed5ae3d, 0x27392d36, 0x64d90f0a, 0x21a65c68, 0xd1545b9b, 0x3a2e3624, - 0xb1670a0c, 0xfe75793, 0xd296eeb4, 0x9e919b1b, 0x4fc5c080, 0xa220dc61, 0x694b775a, 0x161a121c, - 0xaba93e2, 0xe52aa0c0, 0x43e0223c, 0x1d171b12, 0xb0d090e, 0xadc78bf2, 0xb9a8b62d, 0xc8a91e14, - 0x8519f157, 0x4c0775af, 0xbbdd99ee, 0xfd607fa3, 0x9f2601f7, 0xbcf5725c, 0xc53b6644, 0x347efb5b, - 0x7629438b, 0xdcc623cb, 0x68fcedb6, 0x63f1e4b8, 0xcadc31d7, 0x10856342, 0x40229713, 0x2011c684, - 0x7d244a85, 0xf83dbbd2, 0x1132f9ae, 0x6da129c7, 0x4b2f9e1d, 0xf330b2dc, 0xec52860d, 0xd0e3c177, - 0x6c16b32b, 0x99b970a9, 0xfa489411, 0x2264e947, 0xc48cfca8, 0x1a3ff0a0, 0xd82c7d56, 0xef903322, - 0xc74e4987, 0xc1d138d9, 0xfea2ca8c, 0x360bd498, 0xcf81f5a6, 0x28de7aa5, 0x268eb7da, 0xa4bfad3f, - 0xe49d3a2c, 0xd927850, 0x9bcc5f6a, 0x62467e54, 0xc2138df6, 0xe8b8d890, 0x5ef7392e, 0xf5afc382, - 0xbe805d9f, 0x7c93d069, 0xa92dd56f, 0xb31225cf, 0x3b99acc8, 0xa77d1810, 0x6e639ce8, 0x7bbb3bdb, - 0x97826cd, 0xf418596e, 0x1b79aec, 0xa89a4f83, 0x656e95e6, 0x7ee6ffaa, 0x8cfbc21, 0xe6e815ef, - 0xd99be7ba, 0xce366f4a, 0xd4099fea, 0xd67cb029, 0xafb2a431, 0x31233f2a, 0x3094a5c6, 0xc066a235, - 0x37bc4e74, 0xa6ca82fc, 0xb0d090e0, 0x15d8a733, 0x4a9804f1, 0xf7daec41, 0xe50cd7f, 0x2ff69117, - 0x8dd64d76, 0x4db0ef43, 0x544daacc, 0xdf0496e4, 0xe3b5d19e, 0x1b886a4c, 0xb81f2cc1, 0x7f516546, - 0x4ea5e9d, 0x5d358c01, 0x737487fa, 0x2e410bfb, 0x5a1d67b3, 0x52d2db92, 0x335610e9, 0x1347d66d, - 0x8c61d79a, 0x7a0ca137, 0x8e14f859, 0x893c13eb, 0xee27a9ce, 0x35c961b7, 0xede51ce1, 0x3cb1477a, - 0x59dfd29c, 0x3f73f255, 0x79ce1418, 0xbf37c773, 0xeacdf753, 0x5baafd5f, 0x146f3ddf, 0x86db4478, - 0x81f3afca, 0x3ec468b9, 0x2c342438, 0x5f40a3c2, 0x72c31d16, 0xc25e2bc, 0x8b493c28, 0x41950dff, - 0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664, 0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0, - ]; - - return AES; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - AES: AES, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/big.js b/packages/bls-verify/src/vendor/amcl-js/src/big.js deleted file mode 100644 index bd318cf77..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/big.js +++ /dev/null @@ -1,1505 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE BIG number class */ -var BIG, DBIG; - -BIG = function (ctx) { - 'use strict'; - - /* General purpose Constructor */ - var BIG = function (x) { - this.w = new Array(BIG.NLEN); - - switch (typeof x) { - case 'object': - this.copy(x); - break; - - case 'number': - this.zero(); - this.w[0] = x; - break; - - default: - this.zero(); - } - }; - - BIG.CHUNK = 32; - BIG.MODBYTES = ctx.config['@NB']; - BIG.BASEBITS = ctx.config['@BASE']; - BIG.NLEN = 1 + Math.floor((8 * BIG.MODBYTES - 1) / BIG.BASEBITS); - BIG.DNLEN = 2 * BIG.NLEN; - BIG.BMASK = (1 << BIG.BASEBITS) - 1; - BIG.BIGBITS = 8 * BIG.MODBYTES; - BIG.NEXCESS = 1 << (BIG.CHUNK - BIG.BASEBITS - 1); - BIG.MODINV = Math.pow(2, -BIG.BASEBITS); - - BIG.prototype = { - /* set to zero */ - zero: function () { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] = 0; - } - - return this; - }, - - /* set to one */ - one: function () { - var i; - - this.w[0] = 1; - for (i = 1; i < BIG.NLEN; i++) { - this.w[i] = 0; - } - - return this; - }, - - get: function (i) { - return this.w[i]; - }, - - set: function (i, x) { - this.w[i] = x; - }, - - /* test for zero */ - iszilch: function () { - var i; - var d = 0; - for (i = 0; i < BIG.NLEN; i++) { - d |= this.w[i]; - } - return (1 & ((d - 1) >> BIG.BASEBITS)) != 0; - }, - - /* test for unity */ - isunity: function () { - var i; - var d = 0; - - for (i = 1; i < BIG.NLEN; i++) { - d |= this.w[i]; - } - - return (1 & ((d - 1) >> BIG.BASEBITS) & (((this.w[0] ^ 1) - 1) >> BIG.BASEBITS)) != 0; - }, - - /* Conditional swap of two BIGs depending on d using XOR - no branches */ - cswap: function (b, d) { - var c = d, - t, - i; - - c = ~(c - 1); - - for (i = 0; i < BIG.NLEN; i++) { - t = c & (this.w[i] ^ b.w[i]); - this.w[i] ^= t; - b.w[i] ^= t; - } - }, - - /* Conditional move of BIG depending on d using XOR - no branches */ - cmove: function (b, d) { - var c = d, - i; - - c = ~(c - 1); - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] ^= (this.w[i] ^ b.w[i]) & c; - } - }, - - /* copy from another BIG */ - copy: function (y) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] = y.w[i]; - } - - return this; - }, - - /* copy from bottom half of ctx.DBIG */ - hcopy: function (y) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] = y.w[i]; - } - - return this; - }, - - /* copy from ROM */ - rcopy: function (y) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] = y[i]; - } - - return this; - }, - - xortop: function (x) { - this.w[BIG.NLEN - 1] ^= x; - }, - - ortop: function (x) { - this.w[BIG.NLEN - 1] |= x; - }, - - /* normalise BIG - force all digits < 2^BASEBITS */ - norm: function () { - var carry = 0, - d, - i; - - for (i = 0; i < BIG.NLEN - 1; i++) { - d = this.w[i] + carry; - this.w[i] = d & BIG.BMASK; - carry = d >> BIG.BASEBITS; - } - - this.w[BIG.NLEN - 1] = this.w[BIG.NLEN - 1] + carry; - - return this.w[BIG.NLEN - 1] >> (8 * BIG.MODBYTES) % BIG.BASEBITS; - }, - - /* quick shift right by less than a word */ - fshr: function (k) { - var r, i; - - r = this.w[0] & ((1 << k) - 1); /* shifted out part */ - - for (i = 0; i < BIG.NLEN - 1; i++) { - this.w[i] = (this.w[i] >> k) | ((this.w[i + 1] << (BIG.BASEBITS - k)) & BIG.BMASK); - } - - this.w[BIG.NLEN - 1] = this.w[BIG.NLEN - 1] >> k; - - return r; - }, - - /* General shift right by k bits */ - shr: function (k) { - var n = k % BIG.BASEBITS, - m = Math.floor(k / BIG.BASEBITS), - i; - - for (i = 0; i < BIG.NLEN - m - 1; i++) { - this.w[i] = (this.w[m + i] >> n) | ((this.w[m + i + 1] << (BIG.BASEBITS - n)) & BIG.BMASK); - } - - this.w[BIG.NLEN - m - 1] = this.w[BIG.NLEN - 1] >> n; - - for (i = BIG.NLEN - m; i < BIG.NLEN; i++) { - this.w[i] = 0; - } - - return this; - }, - - /* quick shift left by less than a word */ - fshl: function (k) { - var i; - - this.w[BIG.NLEN - 1] = - (this.w[BIG.NLEN - 1] << k) | (this.w[BIG.NLEN - 2] >> (BIG.BASEBITS - k)); - - for (i = BIG.NLEN - 2; i > 0; i--) { - this.w[i] = ((this.w[i] << k) & BIG.BMASK) | (this.w[i - 1] >> (BIG.BASEBITS - k)); - } - - this.w[0] = (this.w[0] << k) & BIG.BMASK; - - return ( - this.w[BIG.NLEN - 1] >> (8 * BIG.MODBYTES) % BIG.BASEBITS - ); /* return excess - only used in FF.java */ - }, - - /* General shift left by k bits */ - shl: function (k) { - var n = k % BIG.BASEBITS, - m = Math.floor(k / BIG.BASEBITS), - i; - - this.w[BIG.NLEN - 1] = this.w[BIG.NLEN - 1 - m] << n; - - if (BIG.NLEN > m + 2) { - this.w[BIG.NLEN - 1] |= this.w[BIG.NLEN - m - 2] >> (BIG.BASEBITS - n); - } - - for (i = BIG.NLEN - 2; i > m; i--) { - this.w[i] = ((this.w[i - m] << n) & BIG.BMASK) | (this.w[i - m - 1] >> (BIG.BASEBITS - n)); - } - - this.w[m] = (this.w[0] << n) & BIG.BMASK; - - for (i = 0; i < m; i++) { - this.w[i] = 0; - } - - return this; - }, - - /* return length in bits */ - nbits: function () { - var k = BIG.NLEN - 1, - bts, - c; - - var t = new BIG(0); - t.copy(this); - t.norm(); - - while (k >= 0 && t.w[k] === 0) { - k--; - } - - if (k < 0) { - return 0; - } - - bts = BIG.BASEBITS * k; - c = t.w[k]; - - while (c !== 0) { - c = Math.floor(c / 2); - bts++; - } - - return bts; - }, - - /* convert this to string */ - toString: function () { - var s = '', - len = this.nbits(), - b, - i; - - if (len % 4 === 0) { - len = Math.floor(len / 4); - } else { - len = Math.floor(len / 4); - len++; - } - - if (len < BIG.MODBYTES * 2) { - len = BIG.MODBYTES * 2; - } - - for (i = len - 1; i >= 0; i--) { - b = new BIG(0); - b.copy(this); - b.shr(i * 4); - s += (b.w[0] & 15).toString(16); - } - - return s; - }, - - /* this+=y */ - add: function (y) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] += y.w[i]; - } - - return this; - }, - - /* this|=y */ - or: function (y) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] |= y.w[i]; - } - - return this; - }, - - /* return this+x */ - plus: function (x) { - var s = new BIG(0), - i; - - for (i = 0; i < BIG.NLEN; i++) { - s.w[i] = this.w[i] + x.w[i]; - } - - return s; - }, - - /* this+=i, where i is int */ - inc: function (i) { - this.norm(); - this.w[0] += i; - return this; - }, - - /* this-=y */ - sub: function (y) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] -= y.w[i]; - } - - return this; - }, - - /* reverse subtract this=x-this */ - rsub: function (x) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] = x.w[i] - this.w[i]; - } - - return this; - }, - - /* this-=i, where i is int */ - dec: function (i) { - this.norm(); - this.w[0] -= i; - return this; - }, - - /* return this-x */ - minus: function (x) { - var d = new BIG(0), - i; - - for (i = 0; i < BIG.NLEN; i++) { - d.w[i] = this.w[i] - x.w[i]; - } - - return d; - }, - - /* multiply by small integer */ - imul: function (c) { - var i; - - for (i = 0; i < BIG.NLEN; i++) { - this.w[i] *= c; - } - - return this; - }, - - /* convert this BIG to byte array */ - tobytearray: function (b, n) { - var c = new BIG(0), - i; - - c.copy(this); - c.norm(); - - for (i = BIG.MODBYTES - 1; i >= 0; i--) { - b[i + n] = c.w[0] & 0xff; - c.fshr(8); - } - - return this; - }, - - /* convert this to byte array */ - toBytes: function (b) { - this.tobytearray(b, 0); - }, - - /* set this[i]+=x*y+c, and return high part */ - muladd: function (x, y, c, i) { - var prod = x * y + c + this.w[i]; - this.w[i] = prod & BIG.BMASK; - return (prod - this.w[i]) * BIG.MODINV; - }, - - /* multiply by larger int */ - pmul: function (c) { - var carry = 0, - ak, - i; - - for (i = 0; i < BIG.NLEN; i++) { - ak = this.w[i]; - this.w[i] = 0; - carry = this.muladd(ak, c, carry, i); - } - - return carry; - }, - - /* multiply by still larger int - results requires a ctx.DBIG */ - pxmul: function (c) { - var m = new ctx.DBIG(0), - carry = 0, - j; - - for (j = 0; j < BIG.NLEN; j++) { - carry = m.muladd(this.w[j], c, carry, j); - } - - m.w[BIG.NLEN] = carry; - - return m; - }, - - /* divide by 3 */ - div3: function () { - var carry = 0, - ak, - base, - i; - - this.norm(); - base = 1 << BIG.BASEBITS; - - for (i = BIG.NLEN - 1; i >= 0; i--) { - ak = carry * base + this.w[i]; - this.w[i] = Math.floor(ak / 3); - carry = ak % 3; - } - return carry; - }, - - /* set x = x mod 2^m */ - mod2m: function (m) { - var i, wd, bt, msk; - - wd = Math.floor(m / BIG.BASEBITS); - bt = m % BIG.BASEBITS; - msk = (1 << bt) - 1; - this.w[wd] &= msk; - - for (i = wd + 1; i < BIG.NLEN; i++) { - this.w[i] = 0; - } - }, - - /* a=1/a mod 2^256. This is very fast! */ - invmod2m: function () { - var U = new BIG(0), - b = new BIG(0), - c = new BIG(0), - i, - t1, - t2; - - U.inc(BIG.invmod256(this.lastbits(8))); - - for (i = 8; i < BIG.BIGBITS; i <<= 1) { - U.norm(); - b.copy(this); - b.mod2m(i); - t1 = BIG.smul(U, b); - t1.shr(i); - c.copy(this); - c.shr(i); - c.mod2m(i); - - t2 = BIG.smul(U, c); - t2.mod2m(i); - t1.add(t2); - t1.norm(); - b = BIG.smul(t1, U); - t1.copy(b); - t1.mod2m(i); - - t2.one(); - t2.shl(i); - t1.rsub(t2); - t1.norm(); - t1.shl(i); - U.add(t1); - } - - U.mod2m(BIG.BIGBITS); - this.copy(U); - this.norm(); - }, - - /* reduce this mod m */ - mod: function (m1) { - var k = 0, - r = new BIG(0); - var m = new BIG(0); - m.copy(m1); - - this.norm(); - - if (BIG.comp(this, m) < 0) { - return; - } - - do { - m.fshl(1); - k++; - } while (BIG.comp(this, m) >= 0); - - while (k > 0) { - m.fshr(1); - - r.copy(this); - r.sub(m); - r.norm(); - this.cmove(r, 1 - ((r.w[BIG.NLEN - 1] >> (BIG.CHUNK - 1)) & 1)); - - k--; - } - }, - /* this/=m */ - div: function (m1) { - var k = 0, - d = 0, - e = new BIG(1), - b = new BIG(0), - r = new BIG(0); - var m = new BIG(0); - m.copy(m1); - - this.norm(); - b.copy(this); - this.zero(); - - while (BIG.comp(b, m) >= 0) { - e.fshl(1); - m.fshl(1); - k++; - } - - while (k > 0) { - m.fshr(1); - e.fshr(1); - - r.copy(b); - r.sub(m); - r.norm(); - d = 1 - ((r.w[BIG.NLEN - 1] >> (BIG.CHUNK - 1)) & 1); - b.cmove(r, d); - r.copy(this); - r.add(e); - r.norm(); - this.cmove(r, d); - - k--; - } - }, - /* return parity of this */ - parity: function () { - return this.w[0] % 2; - }, - - /* return n-th bit of this */ - bit: function (n) { - if ((this.w[Math.floor(n / BIG.BASEBITS)] & (1 << n % BIG.BASEBITS)) > 0) { - return 1; - } else { - return 0; - } - }, - - /* return last n bits of this */ - lastbits: function (n) { - var msk = (1 << n) - 1; - this.norm(); - return this.w[0] & msk; - }, - - isok: function () { - var ok = true, - i; - - for (i = 0; i < BIG.NLEN; i++) { - if (this.w[i] >> BIG.BASEBITS != 0) { - ok = false; - } - } - - return ok; - }, - - /* Jacobi Symbol (this/p). Returns 0, 1 or -1 */ - jacobi: function (p) { - var m = 0, - t = new BIG(0), - x = new BIG(0), - n = new BIG(0), - zilch = new BIG(0), - one = new BIG(1), - n8, - k; - - if (p.parity() === 0 || BIG.comp(this, zilch) === 0 || BIG.comp(p, one) <= 0) { - return 0; - } - - this.norm(); - x.copy(this); - n.copy(p); - x.mod(p); - - while (BIG.comp(n, one) > 0) { - if (BIG.comp(x, zilch) === 0) { - return 0; - } - - n8 = n.lastbits(3); - k = 0; - - while (x.parity() === 0) { - k++; - x.shr(1); - } - - if (k % 2 == 1) { - m += (n8 * n8 - 1) / 8; - } - - m += ((n8 - 1) * (x.lastbits(2) - 1)) / 4; - t.copy(n); - t.mod(x); - n.copy(x); - x.copy(t); - m %= 2; - } - - if (m === 0) { - return 1; - } else { - return -1; - } - }, - - /* this=1/this mod p. Binary method */ - invmodp: function (p) { - if (this.iszilch()) { - return; - } - var u = new BIG(0), - v = new BIG(0), - x1 = new BIG(1), - x2 = new BIG(0), - t = new BIG(0), - one = new BIG(1); - - this.mod(p); - u.copy(this); - v.copy(p); - - while (BIG.comp(u, one) !== 0 && BIG.comp(v, one) !== 0) { - while (u.parity() === 0) { - u.fshr(1); - t.copy(x1); - t.add(p); - x1.cmove(t, x1.parity()); - x1.norm(); - x1.fshr(1); - } - while (v.parity() === 0) { - v.fshr(1); - t.copy(x2); - t.add(p); - x2.cmove(t, x2.parity()); - x2.norm(); - x2.fshr(1); - } - if (BIG.comp(u, v) >= 0) { - u.sub(v); - u.norm(); - t.copy(x1); - t.add(p); - x1.cmove(t, (BIG.comp(x1, x2) >> 1) & 1); - x1.sub(x2); - x1.norm(); - } else { - v.sub(u); - v.norm(); - t.copy(x2); - t.add(p); - x2.cmove(t, (BIG.comp(x2, x1) >> 1) & 1); - x2.sub(x1); - x2.norm(); - } - } - - this.copy(x1); - this.cmove(x2, BIG.comp(u, one) & 1); - }, - - /* return this^e mod m */ - powmod: function (e1, m) { - var a = new BIG(1), - z = new BIG(0), - s = new BIG(0), - bt; - - var e = new BIG(0); - e.copy(e1); - this.norm(); - e.norm(); - z.copy(e); - s.copy(this); - - for (;;) { - bt = z.parity(); - z.fshr(1); - if (bt == 1) { - a = BIG.modmul(a, s, m); - } - - if (z.iszilch()) { - break; - } - - s = BIG.modsqr(s, m); - } - - return a; - }, - }; - - BIG.ssn = function (r, a, m) { - var n = BIG.NLEN - 1; - m.w[0] = (m.w[0] >> 1) | ((m.w[1] << (BIG.BASEBITS - 1)) & BIG.BMASK); - r.w[0] = a.w[0] - m.w[0]; - var carry = r.w[0] >> BIG.BASEBITS; - r.w[0] &= BIG.BMASK; - for (var i = 1; i < n; i++) { - m.w[i] = (m.w[i] >> 1) | ((m.w[i + 1] << (BIG.BASEBITS - 1)) & BIG.BMASK); - r.w[i] = a.w[i] - m.w[i] + carry; - carry = r.w[i] >> BIG.BASEBITS; - r.w[i] &= BIG.BMASK; - } - m.w[n] >>= 1; - r.w[n] = a.w[n] - m.w[n] + carry; - return (r.w[n] >> (BIG.CHUNK - 1)) & 1; - }; - - /* convert from byte array to BIG */ - BIG.frombytearray = function (b, n) { - var m = new BIG(0), - i; - - for (i = 0; i < BIG.MODBYTES; i++) { - m.fshl(8); - m.w[0] += b[i + n] & 0xff; - } - - return m; - }; - - BIG.fromBytes = function (b) { - return BIG.frombytearray(b, 0); - }; - - /* return a*b where product fits a BIG */ - BIG.smul = function (a, b) { - var c = new BIG(0), - carry, - i, - j; - - for (i = 0; i < BIG.NLEN; i++) { - carry = 0; - - for (j = 0; j < BIG.NLEN; j++) { - if (i + j < BIG.NLEN) { - carry = c.muladd(a.w[i], b.w[j], carry, i + j); - } - } - } - - return c; - }; - - /* Compare a and b, return 0 if a==b, -1 if ab. Inputs must be normalised */ - BIG.comp = function (a, b) { - var i; - var gt = 0; - var eq = 1; - - for (i = BIG.NLEN - 1; i >= 0; i--) { - gt |= ((b.w[i] - a.w[i]) >> BIG.BASEBITS) & eq; - eq &= ((b.w[i] ^ a.w[i]) - 1) >> BIG.BASEBITS; - } - - return gt + gt + eq - 1; - }; - - /* get 8*MODBYTES size random number */ - BIG.random = function (rng) { - var m = new BIG(0), - j = 0, - r = 0, - i, - b; - - /* generate random BIG */ - for (i = 0; i < 8 * BIG.MODBYTES; i++) { - if (j === 0) { - r = rng.getByte(); - } else { - r >>= 1; - } - - b = r & 1; - m.shl(1); - m.w[0] += b; // m.inc(b); - j++; - j &= 7; - } - return m; - }; - - /* Create random BIG in portable way, one bit at a time */ - BIG.randomnum = function (q, rng) { - var d = new ctx.DBIG(0), - j = 0, - r = 0, - i, - b, - m; - - for (i = 0; i < 2 * q.nbits(); i++) { - if (j === 0) { - r = rng.getByte(); - } else { - r >>= 1; - } - - b = r & 1; - d.shl(1); - d.w[0] += b; - j++; - j &= 7; - } - - m = d.mod(q); - - return m; - }; - - BIG.randtrunc = function (q, trunc, rng) { - var m = BIG.randomnum(q, rng); - if (q.nbits() > trunc) m.mod2m(trunc); - return m; - }; - - /* return a*b as ctx.DBIG */ - BIG.mul = function (a, b) { - var c = new ctx.DBIG(0), - d = new Array(BIG.NLEN), //[], - n, - s, - t, - i, - k, - co; - - for (i = 0; i < BIG.NLEN; i++) { - d[i] = a.w[i] * b.w[i]; - } - - s = d[0]; - t = s; - c.w[0] = t; - - for (k = 1; k < BIG.NLEN; k++) { - s += d[k]; - t = s; - for (i = k; i >= 1 + Math.floor(k / 2); i--) { - t += (a.w[i] - a.w[k - i]) * (b.w[k - i] - b.w[i]); - } - c.w[k] = t; - } - for (k = BIG.NLEN; k < 2 * BIG.NLEN - 1; k++) { - s -= d[k - BIG.NLEN]; - t = s; - for (i = BIG.NLEN - 1; i >= 1 + Math.floor(k / 2); i--) { - t += (a.w[i] - a.w[k - i]) * (b.w[k - i] - b.w[i]); - } - c.w[k] = t; - } - - co = 0; - for (i = 0; i < BIG.DNLEN - 1; i++) { - n = c.w[i] + co; - c.w[i] = n & BIG.BMASK; - co = (n - c.w[i]) * BIG.MODINV; - } - c.w[BIG.DNLEN - 1] = co; - - return c; - }; - - /* return a^2 as ctx.DBIG */ - BIG.sqr = function (a) { - var c = new ctx.DBIG(0), - n, - t, - j, - i, - co; - - c.w[0] = a.w[0] * a.w[0]; - - for (j = 1; j < BIG.NLEN - 1; ) { - t = a.w[j] * a.w[0]; - for (i = 1; i < (j + 1) >> 1; i++) { - t += a.w[j - i] * a.w[i]; - } - t += t; - c.w[j] = t; - j++; - t = a.w[j] * a.w[0]; - for (i = 1; i < (j + 1) >> 1; i++) { - t += a.w[j - i] * a.w[i]; - } - t += t; - t += a.w[j >> 1] * a.w[j >> 1]; - c.w[j] = t; - j++; - } - - for (j = BIG.NLEN - 1 + (BIG.NLEN % 2); j < BIG.DNLEN - 3; ) { - t = a.w[BIG.NLEN - 1] * a.w[j - BIG.NLEN + 1]; - for (i = j - BIG.NLEN + 2; i < (j + 1) >> 1; i++) { - t += a.w[j - i] * a.w[i]; - } - t += t; - c.w[j] = t; - j++; - t = a.w[BIG.NLEN - 1] * a.w[j - BIG.NLEN + 1]; - for (i = j - BIG.NLEN + 2; i < (j + 1) >> 1; i++) { - t += a.w[j - i] * a.w[i]; - } - t += t; - t += a.w[j >> 1] * a.w[j >> 1]; - c.w[j] = t; - j++; - } - - t = a.w[BIG.NLEN - 2] * a.w[BIG.NLEN - 1]; - t += t; - c.w[BIG.DNLEN - 3] = t; - - t = a.w[BIG.NLEN - 1] * a.w[BIG.NLEN - 1]; - c.w[BIG.DNLEN - 2] = t; - - co = 0; - for (i = 0; i < BIG.DNLEN - 1; i++) { - n = c.w[i] + co; - c.w[i] = n & BIG.BMASK; - co = (n - c.w[i]) * BIG.MODINV; - } - c.w[BIG.DNLEN - 1] = co; - - return c; - }; - - BIG.monty = function (m, nd, d) { - var b = new BIG(0), - v = new Array(BIG.NLEN), - dd = new Array(BIG.NLEN), - s, - c, - t, - i, - k; - - t = d.w[0]; - v[0] = ((t & BIG.BMASK) * nd) & BIG.BMASK; - t += v[0] * m.w[0]; - c = d.w[1] + t * BIG.MODINV; - s = 0; - - for (k = 1; k < BIG.NLEN; k++) { - t = c + s + v[0] * m.w[k]; - for (i = k - 1; i > Math.floor(k / 2); i--) { - t += (v[k - i] - v[i]) * (m.w[i] - m.w[k - i]); - } - v[k] = ((t & BIG.BMASK) * nd) & BIG.BMASK; - t += v[k] * m.w[0]; - c = t * BIG.MODINV + d.w[k + 1]; - - dd[k] = v[k] * m.w[k]; - s += dd[k]; - } - - for (k = BIG.NLEN; k < 2 * BIG.NLEN - 1; k++) { - t = c + s; - for (i = BIG.NLEN - 1; i >= 1 + Math.floor(k / 2); i--) { - t += (v[k - i] - v[i]) * (m.w[i] - m.w[k - i]); - } - b.w[k - BIG.NLEN] = t & BIG.BMASK; - c = (t - b.w[k - BIG.NLEN]) * BIG.MODINV + d.w[k + 1]; - - s -= dd[k - BIG.NLEN + 1]; - } - - b.w[BIG.NLEN - 1] = c & BIG.BMASK; - - return b; - }; - - /* return a*b mod m */ - BIG.modmul = function (a1, b1, m) { - var d; - var a = new BIG(0); - a.copy(a1); - var b = new BIG(0); - b.copy(b1); - a.mod(m); - b.mod(m); - d = BIG.mul(a, b); - - return d.mod(m); - }; - - /* return a^2 mod m */ - BIG.modsqr = function (a1, m) { - var d; - var a = new BIG(0); - a.copy(a1); - a.mod(m); - d = BIG.sqr(a); - - return d.mod(m); - }; - - /* return -a mod m */ - BIG.modneg = function (a1, m) { - var a = new BIG(0); - a.copy(a1); - a.mod(m); - a.rsub(m); - a.mod(m); - return a; - }; - - /* return a+b mod m */ - BIG.modadd = function (a1, b1, m) { - var a = new BIG(0); - a.copy(a1); - var b = new BIG(0); - b.copy(b1); - a.mod(m); - b.mod(m); - a.add(b); - a.norm(); - a.mod(m); - return a; - }; - - /* Arazi and Qi inversion mod 256 */ - BIG.invmod256 = function (a) { - var U, t1, t2, b, c; - - t1 = 0; - c = (a >> 1) & 1; - t1 += c; - t1 &= 1; - t1 = 2 - t1; - t1 <<= 1; - U = t1 + 1; - - // i=2 - b = a & 3; - t1 = U * b; - t1 >>= 2; - c = (a >> 2) & 3; - t2 = (U * c) & 3; - t1 += t2; - t1 *= U; - t1 &= 3; - t1 = 4 - t1; - t1 <<= 2; - U += t1; - - // i=4 - b = a & 15; - t1 = U * b; - t1 >>= 4; - c = (a >> 4) & 15; - t2 = (U * c) & 15; - t1 += t2; - t1 *= U; - t1 &= 15; - t1 = 16 - t1; - t1 <<= 4; - U += t1; - - return U; - }; - return BIG; -}; - -/* CORE double length DBIG number class */ -DBIG = function (ctx) { - 'use strict'; - - /* constructor */ - var DBIG = function (x) { - this.w = new Array(BIG.DNLEN); - this.zero(); - this.w[0] = x; - }; - - DBIG.prototype = { - /* set this=0 */ - zero: function () { - for (var i = 0; i < ctx.BIG.DNLEN; i++) { - this.w[i] = 0; - } - return this; - }, - - /* set this=b */ - copy: function (b) { - for (var i = 0; i < ctx.BIG.DNLEN; i++) { - this.w[i] = b.w[i]; - } - return this; - }, - - /* copy from ctx.BIG */ - hcopy: function (b) { - var i; - - for (i = 0; i < ctx.BIG.NLEN; i++) { - this.w[i] = b.w[i]; - } - - for (i = ctx.BIG.NLEN; i < ctx.BIG.DNLEN; i++) { - this.w[i] = 0; - } - - return this; - }, - - ucopy: function (b) { - var i; - - for (i = 0; i < ctx.BIG.NLEN; i++) { - this.w[i] = 0; - } - - for (i = ctx.BIG.NLEN; i < ctx.BIG.DNLEN; i++) { - this.w[i] = b.w[i - ctx.BIG.NLEN]; - } - - return this; - }, - - /* normalise this */ - norm: function () { - var carry = 0, - d, - i; - - for (i = 0; i < ctx.BIG.DNLEN - 1; i++) { - d = this.w[i] + carry; - this.w[i] = d & ctx.BIG.BMASK; - carry = d >> ctx.BIG.BASEBITS; - } - this.w[ctx.BIG.DNLEN - 1] = this.w[ctx.BIG.DNLEN - 1] + carry; - - return this; - }, - - /* set this[i]+=x*y+c, and return high part */ - muladd: function (x, y, c, i) { - var prod = x * y + c + this.w[i]; - this.w[i] = prod & ctx.BIG.BMASK; - return (prod - this.w[i]) * ctx.BIG.MODINV; - }, - - /* shift this right by k bits */ - shr: function (k) { - var n = k % ctx.BIG.BASEBITS, - m = Math.floor(k / ctx.BIG.BASEBITS), - i; - - for (i = 0; i < ctx.BIG.DNLEN - m - 1; i++) { - this.w[i] = - (this.w[m + i] >> n) | ((this.w[m + i + 1] << (ctx.BIG.BASEBITS - n)) & ctx.BIG.BMASK); - } - - this.w[ctx.BIG.DNLEN - m - 1] = this.w[ctx.BIG.DNLEN - 1] >> n; - - for (i = ctx.BIG.DNLEN - m; i < ctx.BIG.DNLEN; i++) { - this.w[i] = 0; - } - - return this; - }, - - /* shift this left by k bits */ - shl: function (k) { - var n = k % ctx.BIG.BASEBITS, - m = Math.floor(k / ctx.BIG.BASEBITS), - i; - - this.w[ctx.BIG.DNLEN - 1] = - (this.w[ctx.BIG.DNLEN - 1 - m] << n) | - (this.w[ctx.BIG.DNLEN - m - 2] >> (ctx.BIG.BASEBITS - n)); - - for (i = ctx.BIG.DNLEN - 2; i > m; i--) { - this.w[i] = - ((this.w[i - m] << n) & ctx.BIG.BMASK) | (this.w[i - m - 1] >> (ctx.BIG.BASEBITS - n)); - } - - this.w[m] = (this.w[0] << n) & ctx.BIG.BMASK; - - for (i = 0; i < m; i++) { - this.w[i] = 0; - } - - return this; - }, - - /* Conditional move of ctx.BIG depending on d using XOR - no branches */ - cmove: function (b, d) { - var c = d, - i; - - c = ~(c - 1); - - for (i = 0; i < ctx.BIG.DNLEN; i++) { - this.w[i] ^= (this.w[i] ^ b.w[i]) & c; - } - }, - - /* this+=x */ - add: function (x) { - for (var i = 0; i < ctx.BIG.DNLEN; i++) { - this.w[i] += x.w[i]; - } - }, - - /* this-=x */ - sub: function (x) { - for (var i = 0; i < ctx.BIG.DNLEN; i++) { - this.w[i] -= x.w[i]; - } - }, - - rsub: function (x) { - for (var i = 0; i < ctx.BIG.DNLEN; i++) { - this.w[i] = x.w[i] - this.w[i]; - } - }, - - /* return number of bits in this */ - nbits: function () { - var k = ctx.BIG.DNLEN - 1, - bts, - c; - - var t = new DBIG(0); - t.copy(this); - t.norm(); - - while (k >= 0 && t.w[k] === 0) { - k--; - } - - if (k < 0) { - return 0; - } - - bts = ctx.BIG.BASEBITS * k; - c = t.w[k]; - - while (c !== 0) { - c = Math.floor(c / 2); - bts++; - } - - return bts; - }, - - /* convert this to string */ - toString: function () { - var s = '', - len = this.nbits(), - b, - i; - - if (len % 4 === 0) { - len = Math.floor(len / 4); - } else { - len = Math.floor(len / 4); - len++; - } - - for (i = len - 1; i >= 0; i--) { - b = new DBIG(0); - b.copy(this); - b.shr(i * 4); - s += (b.w[0] & 15).toString(16); - } - - return s; - }, - - /* reduces this DBIG mod a ctx.BIG, and returns the ctx.BIG */ - mod: function (c) { - var k = 0, - m = new DBIG(0), - dr = new DBIG(0), - r = new ctx.BIG(0); - - this.norm(); - m.hcopy(c); - r.hcopy(this); - - if (DBIG.comp(this, m) < 0) { - return r; - } - - do { - m.shl(1); - k++; - } while (DBIG.comp(this, m) >= 0); - - while (k > 0) { - m.shr(1); - - dr.copy(this); - dr.sub(m); - dr.norm(); - this.cmove(dr, 1 - ((dr.w[ctx.BIG.DNLEN - 1] >> (ctx.BIG.CHUNK - 1)) & 1)); - k--; - } - - r.hcopy(this); - - return r; - }, - - /* this/=c */ - div: function (c) { - var d = 0, - k = 0, - m = new DBIG(0), - dr = new DBIG(0), - r = new ctx.BIG(0), - a = new ctx.BIG(0), - e = new ctx.BIG(1); - - m.hcopy(c); - this.norm(); - - while (DBIG.comp(this, m) >= 0) { - e.fshl(1); - m.shl(1); - k++; - } - - while (k > 0) { - m.shr(1); - e.shr(1); - - dr.copy(this); - dr.sub(m); - dr.norm(); - d = 1 - ((dr.w[ctx.BIG.DNLEN - 1] >> (ctx.BIG.CHUNK - 1)) & 1); - this.cmove(dr, d); - r.copy(a); - r.add(e); - r.norm(); - a.cmove(r, d); - - k--; - } - return a; - }, - - /* split this DBIG at position n, return higher half, keep lower half */ - split: function (n) { - var t = new ctx.BIG(0), - m = n % ctx.BIG.BASEBITS, - carry = this.w[ctx.BIG.DNLEN - 1] << (ctx.BIG.BASEBITS - m), - nw, - i; - - for (i = ctx.BIG.DNLEN - 2; i >= ctx.BIG.NLEN - 1; i--) { - nw = (this.w[i] >> m) | carry; - carry = (this.w[i] << (ctx.BIG.BASEBITS - m)) & ctx.BIG.BMASK; - t.w[i - ctx.BIG.NLEN + 1] = nw; - } - - this.w[ctx.BIG.NLEN - 1] &= (1 << m) - 1; - - return t; - }, - }; - - /* Compare a and b, return 0 if a==b, -1 if ab. Inputs must be normalised */ - DBIG.comp = function (a, b) { - var i; - var gt = 0; - var eq = 1; - for (i = ctx.BIG.DNLEN - 1; i >= 0; i--) { - gt |= ((b.w[i] - a.w[i]) >> ctx.BIG.BASEBITS) & eq; - eq &= ((b.w[i] ^ a.w[i]) - 1) >> ctx.BIG.BASEBITS; - } - - return gt + gt + eq - 1; - }; - - /* convert from byte array to DBIG */ - DBIG.fromBytes = function (b) { - var m = new DBIG(0), - i; - - for (i = 0; i < b.length; i++) { - m.shl(8); - m.w[0] += b[i] & 0xff; - } - - return m; - }; - - return DBIG; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - BIG: BIG, - DBIG: DBIG, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/bls.js b/packages/bls-verify/src/vendor/amcl-js/src/bls.js deleted file mode 100644 index 1af3affb8..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/bls.js +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Boneh-Lynn-Shacham signature 128-bit API Functions */ - -var BLS = function (ctx) { - 'use strict'; - - var BLS = { - BLS_OK: 0, - BLS_FAIL: -1, - - BFS: ctx.BIG.MODBYTES, - BGS: ctx.BIG.MODBYTES, - G2_TAB: [], - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - - return s; - }, - - asciitobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i += 2) { - b.push(parseInt(s.substr(i, 2), 16)); - } - return b; - }, - - init: function () { - var G = ctx.ECP2.generator(); - if (G.is_infinity()) return this.BLS_FAIL; - this.G2_TAB = ctx.PAIR.precomp(G); - return this.BLS_OK; - }, - - ceil: function (a, b) { - return Math.floor((a - 1) / b + 1); - }, - - /* output u \in F_p */ - hash_to_field: function (hash, hlen, DST, M, ctr) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var L = this.ceil(q.nbits() + ctx.ECP.AESKEY * 8, 8); - var u = []; - var fd = []; - var OKM = ctx.HMAC.XMD_Expand(hash, hlen, L * ctr, DST, M); - - for (var i = 0; i < ctr; i++) { - for (var j = 0; j < L; j++) fd[j] = OKM[i * L + j]; - u[i] = new ctx.FP(ctx.DBIG.fromBytes(fd).mod(q)); - } - return u; - }, - - /* hash a message to an ECP point, using SHA2 */ - bls_hash_to_point: function (M) { - var dst = 'BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_'; - var u = this.hash_to_field(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, this.asciitobytes(dst), M, 2); - - var P = ctx.ECP.map2point(u[0]); - var P1 = ctx.ECP.map2point(u[1]); - P.add(P1); - P.cfp(); - P.affine(); - return P; - }, - - /* generate key pair, private key S, public key W */ - KeyPairGenerate: function (IKM, S, W) { - var r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - var L = this.ceil(3 * this.ceil(r.nbits(), 8), 2); - var G = ctx.ECP2.generator(); - var LEN = ctx.HMAC.inttobytes(L, 2); - var AIKM = []; - for (var i = 0; i < IKM.length; i++) AIKM[i] = IKM[i]; - AIKM[IKM.length] = 0; - - var salt = 'BLS-SIG-KEYGEN-SALT-'; - var PRK = ctx.HMAC.HKDF_Extract( - ctx.HMAC.MC_SHA2, - ctx.ECP.HASH_TYPE, - this.asciitobytes(salt), - AIKM, - ); - var OKM = ctx.HMAC.HKDF_Expand(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, L, PRK, LEN); - - var dx = ctx.DBIG.fromBytes(OKM); - var s = dx.mod(r); - s.toBytes(S); - // SkToPk - G = ctx.PAIR.G2mul(G, s); - G.toBytes(W, true); - return this.BLS_OK; - }, - - /* Sign message m using private key S to produce signature SIG */ - - core_sign: function (SIG, M, S) { - var D = this.bls_hash_to_point(M); - var s = ctx.BIG.fromBytes(S); - D = ctx.PAIR.G1mul(D, s); - D.toBytes(SIG, true); - return this.BLS_OK; - }, - - /* Verify signature given message m, the signature SIG, and the public key W */ - - core_verify: function (SIG, M, W) { - var HM = this.bls_hash_to_point(M); - - var D = ctx.ECP.fromBytes(SIG); - if (!ctx.PAIR.G1member(D)) return this.BLS_FAIL; - D.neg(); - - var PK = ctx.ECP2.fromBytes(W); - if (!ctx.PAIR.G2member(PK)) return this.BLS_FAIL; - - // Use new multi-pairing mechanism - //var r = ctx.PAIR.initmp(); - //ctx.PAIR.another_pc(r, this.G2_TAB, D); - // ctx.PAIR.another(r,G,D); - //ctx.PAIR.another(r, PK, HM); - //var v = ctx.PAIR.miller(r); - - //.. or alternatively - var G = ctx.ECP2.generator(); - var v = ctx.PAIR.ate2(G, D, PK, HM); - - v = ctx.PAIR.fexp(v); - if (v.isunity()) return this.BLS_OK; - return this.BLS_FAIL; - }, - }; - - return BLS; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - BLS: BLS, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/bls192.js b/packages/bls-verify/src/vendor/amcl-js/src/bls192.js deleted file mode 100644 index 61b26ca57..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/bls192.js +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Boneh-Lynn-Shacham signature 192-bit API Functions */ - -var BLS192 = function (ctx) { - 'use strict'; - - var BLS192 = { - BLS_OK: 0, - BLS_FAIL: -1, - - BFS: ctx.BIG.MODBYTES, - BGS: ctx.BIG.MODBYTES, - G2_TAB: [], - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - - return s; - }, - - asciitobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i += 2) { - b.push(parseInt(s.substr(i, 2), 16)); - } - - return b; - }, - - init: function () { - var G = ctx.ECP4.generator(); - if (G.is_infinity()) return this.BLS_FAIL; - this.G2_TAB = ctx.PAIR4.precomp(G); - return this.BLS_OK; - }, - - ceil: function (a, b) { - return Math.floor((a - 1) / b + 1); - }, - - /* output u \in F_p */ - hash_to_field: function (hash, hlen, DST, M, ctr) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var L = this.ceil(q.nbits() + ctx.ECP.AESKEY * 8, 8); - var u = []; - var fd = []; - var OKM = ctx.HMAC.XMD_Expand(hash, hlen, L * ctr, DST, M); - - for (var i = 0; i < ctr; i++) { - for (var j = 0; j < L; j++) fd[j] = OKM[i * L + j]; - u[i] = new ctx.FP(ctx.DBIG.fromBytes(fd).mod(q)); - } - return u; - }, - - /* hash a message to an ECP point, using SHA2 */ - bls_hash_to_point: function (M) { - var dst = 'BLS_SIG_ZZZG1_XMD:SHA-384_SVDW_RO_NUL_'; - var u = this.hash_to_field(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, this.asciitobytes(dst), M, 2); - - var P = ctx.ECP.map2point(u[0]); - var P1 = ctx.ECP.map2point(u[1]); - P.add(P1); - P.cfp(); - P.affine(); - return P; - }, - - /* generate key pair, private key S, public key W */ - KeyPairGenerate: function (IKM, S, W) { - var r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - var L = this.ceil(3 * this.ceil(r.nbits(), 8), 2); - var G = ctx.ECP4.generator(); - var LEN = ctx.HMAC.inttobytes(L, 2); - var AIKM = []; - for (var i = 0; i < IKM.length; i++) AIKM[i] = IKM[i]; - AIKM[IKM.length] = 0; - - var salt = 'BLS-SIG-KEYGEN-SALT-'; - var PRK = ctx.HMAC.HKDF_Extract( - ctx.HMAC.MC_SHA2, - ctx.ECP.HASH_TYPE, - this.asciitobytes(salt), - AIKM, - ); - var OKM = ctx.HMAC.HKDF_Expand(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, L, PRK, LEN); - - var dx = ctx.DBIG.fromBytes(OKM); - var s = dx.mod(r); - s.toBytes(S); - // SkToPk - G = ctx.PAIR4.G2mul(G, s); - G.toBytes(W, true); - return this.BLS_OK; - }, - - /* Sign message m using private key S to produce signature SIG */ - - core_sign: function (SIG, M, S) { - var D = this.bls_hash_to_point(M); - var s = ctx.BIG.fromBytes(S); - D = ctx.PAIR4.G1mul(D, s); - D.toBytes(SIG, true); - return this.BLS_OK; - }, - - /* Verify signature given message m, the signature SIG, and the public key W */ - - core_verify: function (SIG, M, W) { - var HM = this.bls_hash_to_point(M); - - var D = ctx.ECP.fromBytes(SIG); - if (!ctx.PAIR4.G1member(D)) return this.BLS_FAIL; - D.neg(); - - var PK = ctx.ECP4.fromBytes(W); - if (!ctx.PAIR4.G2member(PK)) return this.BLS_FAIL; - - // Use new multi-pairing mechanism - var r = ctx.PAIR4.initmp(); - // ctx.PAIR4.another(r,G,D); - ctx.PAIR4.another_pc(r, this.G2_TAB, D); - ctx.PAIR4.another(r, PK, HM); - var v = ctx.PAIR4.miller(r); - - //.. or alternatively - // var v=ctx.PAIR4.ate2(G,D,PK,HM); - v = ctx.PAIR4.fexp(v); - if (v.isunity()) return this.BLS_OK; - return this.BLS_FAIL; - }, - }; - - return BLS192; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - BLS192: BLS192, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/bls256.js b/packages/bls-verify/src/vendor/amcl-js/src/bls256.js deleted file mode 100644 index dd4077eba..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/bls256.js +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Boneh-Lynn-Shacham signature 256-bit API Functions */ - -var BLS256 = function (ctx) { - 'use strict'; - - var BLS256 = { - BLS_OK: 0, - BLS_FAIL: -1, - - BFS: ctx.BIG.MODBYTES, - BGS: ctx.BIG.MODBYTES, - G2_TAB: [], - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - - return s; - }, - - asciitobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i += 2) { - b.push(parseInt(s.substr(i, 2), 16)); - } - - return b; - }, - - init: function () { - var G = ctx.ECP8.generator(); - if (G.is_infinity()) return this.BLS_FAIL; - this.G2_TAB = ctx.PAIR8.precomp(G); - return this.BLS_OK; - }, - - ceil: function (a, b) { - return Math.floor((a - 1) / b + 1); - }, - - /* output u \in F_p */ - hash_to_field: function (hash, hlen, DST, M, ctr) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var L = this.ceil(q.nbits() + ctx.ECP.AESKEY * 8, 8); - var u = []; - var fd = []; - var OKM = ctx.HMAC.XMD_Expand(hash, hlen, L * ctr, DST, M); - - for (var i = 0; i < ctr; i++) { - for (var j = 0; j < L; j++) fd[j] = OKM[i * L + j]; - u[i] = new ctx.FP(ctx.DBIG.fromBytes(fd).mod(q)); - } - return u; - }, - - /* hash a message to an ECP point, using SHA2 */ - bls_hash_to_point: function (M) { - var dst = 'BLS_SIG_ZZZG1_XMD:SHA-512_SVDW_RO_NUL_'; - var u = this.hash_to_field(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, this.asciitobytes(dst), M, 2); - - var P = ctx.ECP.map2point(u[0]); - var P1 = ctx.ECP.map2point(u[1]); - P.add(P1); - P.cfp(); - P.affine(); - return P; - }, - - /* generate key pair, private key S, public key W */ - KeyPairGenerate: function (IKM, S, W) { - var r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - var L = this.ceil(3 * this.ceil(r.nbits(), 8), 2); - var G = ctx.ECP8.generator(); - var LEN = ctx.HMAC.inttobytes(L, 2); - var AIKM = []; - for (var i = 0; i < IKM.length; i++) AIKM[i] = IKM[i]; - AIKM[IKM.length] = 0; - - var salt = 'BLS-SIG-KEYGEN-SALT-'; - var PRK = ctx.HMAC.HKDF_Extract( - ctx.HMAC.MC_SHA2, - ctx.ECP.HASH_TYPE, - this.asciitobytes(salt), - AIKM, - ); - var OKM = ctx.HMAC.HKDF_Expand(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, L, PRK, LEN); - - var dx = ctx.DBIG.fromBytes(OKM); - var s = dx.mod(r); - s.toBytes(S); - // SkToPk - G = ctx.PAIR8.G2mul(G, s); - G.toBytes(W, true); - return this.BLS_OK; - }, - - /* Sign message m using private key S to produce signature SIG */ - - core_sign: function (SIG, M, S) { - var D = this.bls_hash_to_point(M); - var s = ctx.BIG.fromBytes(S); - D = ctx.PAIR8.G1mul(D, s); - D.toBytes(SIG, true); - return this.BLS_OK; - }, - - /* Verify signature given message m, the signature SIG, and the public key W */ - - core_verify: function (SIG, M, W) { - var HM = this.bls_hash_to_point(M); - - var D = ctx.ECP.fromBytes(SIG); - if (!ctx.PAIR8.G1member(D)) return this.BLS_FAIL; - D.neg(); - - var PK = ctx.ECP8.fromBytes(W); - if (!ctx.PAIR8.G2member(PK)) return this.BLS_FAIL; - - //if (!ctx.PAIR8.G2member(PK)) alert("Not a member"); - //alert("PK= "+PK.toString()); - - // Use new multi-pairing mechanism - var r = ctx.PAIR8.initmp(); - // ctx.PAIR8.another(r,G,D); - ctx.PAIR8.another_pc(r, this.G2_TAB, D); - ctx.PAIR8.another(r, PK, HM); - var v = ctx.PAIR8.miller(r); - - //.. or alternatively - //var G = ctx.ECP8.generator(); - //var v=ctx.PAIR8.ate2(G,D,PK,HM); - - v = ctx.PAIR8.fexp(v); - if (v.isunity()) return this.BLS_OK; - return this.BLS_FAIL; - }, - }; - - return BLS256; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - BLS256: BLS256, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/ctx.js b/packages/bls-verify/src/vendor/amcl-js/src/ctx.js deleted file mode 100644 index 5a2a51636..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/ctx.js +++ /dev/null @@ -1,1203 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var CTX = function (input_parameter) { - 'use strict'; - - var ctx = this, - CTXLIST, - prepareModule; - - CTXLIST = { - ED25519: { - 'BITS': '256', - 'FIELD': '25519', - 'CURVE': 'ED25519', - '@NB': 32 /* Number of bytes in Modulus */, - '@BASE': 24 /* Number base as power of 2 */, - '@NBT': 255 /* Number of bits in modulus */, - '@M8': 2 /* Modulus mod 8 */, - '@RZ': 1 /* Hash-to-point Z value */, - '@RZ2A': 0 /* Hash-to-point G2 Z value */, - '@RZ2B': 0 /* Hash-to-point G2 Z value */, - '@HC': 0 /* Isogeny degree G1 */, - '@HC2': 0 /* Isogeny degree G2 */, - '@MT': 1 /* Modulus Type (pseudo-mersenne,...) */, - '@QI': 0 /* Fp2 QNR */, - '@TW': 0 /* Tower type */, - '@CT': 1 /* Curve Type (Weierstrass,...) */, - '@CA': -1 /* Curve A parameter */, - '@PF': 0 /* Pairing Friendly */, - '@ST': 0 /* Sextic Twist Type */, - '@SX': 0 /* Sign of x parameter */, - '@AB': 0 /* ATE parameter size */, - '@HT': 32 /* Hash output size */, - '@SH': 9 /* Maximum field excess */, - '@AK': 16 /* AES key size */, - }, - - MDC: { - 'BITS': '256', - 'FIELD': 'MDC', - 'CURVE': 'MDC', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - X448: { - 'BITS': '448', - 'FIELD': 'GOLDILOCKS', - 'CURVE': 'X448', - '@NB': 56, - '@BASE': 23, - '@NBT': 448, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 2, - '@QI': 0, - '@TW': 0, - '@CT': 2, - '@CA': 156326, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 64, - '@SH': 11, - '@AK': 32, - }, - - SECP160R1: { - 'BITS': '160', - 'FIELD': 'SECP160R1', - 'CURVE': 'SECP160R1', - '@NB': 20, - '@BASE': 24, - '@NBT': 160, - '@M8': 1, - '@RZ': 3, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - C25519: { - 'BITS': '256', - 'FIELD': '25519', - 'CURVE': 'C25519', - '@NB': 32, - '@BASE': 24, - '@NBT': 255, - '@M8': 2, - '@RZ': 1, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 2, - '@CA': 486662, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 9, - '@AK': 16, - }, - - C13318: { - 'BITS': '256', - 'FIELD': '25519', - 'CURVE': 'C13318', - '@NB': 32, - '@BASE': 24, - '@NBT': 255, - '@M8': 2, - '@RZ': 2, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 9, - '@AK': 16, - }, - - JUBJUB: { - 'BITS': '256', - 'FIELD': 'JUBJUB', - 'CURVE': 'JUBJUB', - '@NB': 32, - '@BASE': 24, - '@NBT': 255, - '@M8': 32, - '@RZ': 1, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 5, - '@TW': 0, - '@CT': 1, - '@CA': -1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 9, - '@AK': 16, - }, - - SECP256K1: { - 'BITS': '256', - 'FIELD': 'SECP256K1', - 'CURVE': 'SECP256K1', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': -11, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 3, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - NIST256: { - 'BITS': '256', - 'FIELD': 'NIST256', - 'CURVE': 'NIST256', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': -10, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - SM2: { - 'BITS': '256', - 'FIELD': 'SM2', - 'CURVE': 'SM2', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': -9, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - NIST384: { - 'BITS': '384', - 'FIELD': 'NIST384', - 'CURVE': 'NIST384', - '@NB': 48, - '@BASE': 23, - '@NBT': 384, - '@M8': 1, - '@RZ': -12, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 48, - '@SH': 7, - '@AK': 24, - }, - - BRAINPOOL: { - 'BITS': '256', - 'FIELD': 'BRAINPOOL', - 'CURVE': 'BRAINPOOL', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': -3, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - ANSSI: { - 'BITS': '256', - 'FIELD': 'ANSSI', - 'CURVE': 'ANSSI', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': -5, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - HIFIVE: { - 'BITS': '336', - 'FIELD': 'HIFIVE', - 'CURVE': 'HIFIVE', - '@NB': 42, - '@BASE': 23, - '@NBT': 336, - '@M8': 2, - '@RZ': 1, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 48, - '@SH': 9, - '@AK': 24, - }, - - GOLDILOCKS: { - 'BITS': '448', - 'FIELD': 'GOLDILOCKS', - 'CURVE': 'GOLDILOCKS', - '@NB': 56, - '@BASE': 23, - '@NBT': 448, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 2, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 64, - '@SH': 11, - '@AK': 32, - }, - - C41417: { - 'BITS': '416', - 'FIELD': 'C41417', - 'CURVE': 'C41417', - '@NB': 52, - '@BASE': 22, - '@NBT': 414, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 64, - '@SH': 4, - '@AK': 32, - }, - - C1174: { - 'BITS': '256', - 'FIELD': 'C1174', - 'CURVE': 'C1174', - '@NB': 32, - '@BASE': 24, - '@NBT': 251, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 11, - '@AK': 16, - }, - - C1665: { - 'BITS': '168', - 'FIELD': 'C1665', - 'CURVE': 'C1665', - '@NB': 21, - '@BASE': 23, - '@NBT': 166, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 11, - '@AK': 16, - }, - - NIST521: { - 'BITS': '528', - 'FIELD': 'NIST521', - 'CURVE': 'NIST521', - '@NB': 66, - '@BASE': 23, - '@NBT': 521, - '@M8': 1, - '@RZ': -4, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 64, - '@SH': 8, - '@AK': 32, - }, - - NUMS256W: { - 'BITS': '256', - 'FIELD': '256PM', - 'CURVE': 'NUMS256W', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': 7, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - NUMS256E: { - 'BITS': '256', - 'FIELD': '256PM', - 'CURVE': 'NUMS256E', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - NUMS384W: { - 'BITS': '384', - 'FIELD': '384PM', - 'CURVE': 'NUMS384W', - '@NB': 48, - '@BASE': 23, - '@NBT': 384, - '@M8': 1, - '@RZ': -4, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 48, - '@SH': 7, - '@AK': 24, - }, - - NUMS384E: { - 'BITS': '384', - 'FIELD': '384PM', - 'CURVE': 'NUMS384E', - '@NB': 48, - '@BASE': 23, - '@NBT': 384, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 48, - '@SH': 7, - '@AK': 24, - }, - - NUMS512W: { - 'BITS': '512', - 'FIELD': '512PM', - 'CURVE': 'NUMS512W', - '@NB': 64, - '@BASE': 23, - '@NBT': 512, - '@M8': 1, - '@RZ': -4, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': -3, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 64, - '@SH': 11, - '@AK': 32, - }, - - NUMS512E: { - 'BITS': '512', - 'FIELD': '512PM', - 'CURVE': 'NUMS512E', - '@NB': 64, - '@BASE': 23, - '@NBT': 512, - '@M8': 1, - '@RZ': 0, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 1, - '@QI': 0, - '@TW': 0, - '@CT': 1, - '@CA': 1, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 64, - '@SH': 11, - '@AK': 32, - }, - - TWEEDLEDUM: { - 'BITS': '255', - 'FIELD': 'TWEEDLEDUM', - 'CURVE': 'TWEEDLEDUM', - '@NB': 32, - '@BASE': 24, - '@NBT': 255, - '@M8': 33, - '@RZ': 1, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 5, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 9, - '@AK': 16, - }, - - TWEEDLEDEE: { - 'BITS': '255', - 'FIELD': 'TWEEDLEDEE', - 'CURVE': 'TWEEDLEDEE', - '@NB': 32, - '@BASE': 24, - '@NBT': 255, - '@M8': 34, - '@RZ': 1, - '@RZ2A': 0, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 5, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 0, - '@ST': 0, - '@SX': 0, - '@AB': 0, - '@HT': 32, - '@SH': 9, - '@AK': 16, - }, - - FP256BN: { - 'BITS': '256', - 'FIELD': 'FP256BN', - 'CURVE': 'FP256BN', - '@NB': 32, - '@BASE': 24, - '@NBT': 256, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 1, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 1, - '@ST': 1, - '@SX': 1, - '@AB': 66, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - FP512BN: { - 'BITS': '512', - 'FIELD': 'FP512BN', - 'CURVE': 'FP512BN', - '@NB': 64, - '@BASE': 23, - '@NBT': 512, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 1, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 1, - '@ST': 1, - '@SX': 0, - '@AB': 130, - '@HT': 32, - '@SH': 11, - '@AK': 16, - }, - - BN254: { - 'BITS': '256', - 'FIELD': 'BN254', - 'CURVE': 'BN254', - '@NB': 32, - '@BASE': 24, - '@NBT': 254, - '@M8': 1, - '@RZ': -1, - '@RZ2A': -1, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 1, - '@ST': 0, - '@SX': 1, - '@AB': 66, - '@HT': 32, - '@SH': 10, - '@AK': 16, - }, - - BN254CX: { - 'BITS': '256', - 'FIELD': 'BN254CX', - 'CURVE': 'BN254CX', - '@NB': 32, - '@BASE': 24, - '@NBT': 254, - '@M8': 1, - '@RZ': -1, - '@RZ2A': -1, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 1, - '@ST': 0, - '@SX': 1, - '@AB': 66, - '@HT': 32, - '@SH': 10, - '@AK': 16, - }, - - BN462: { - 'BITS': '464', - 'FIELD': 'BN462', - 'CURVE': 'BN462', - '@NB': 58, - '@BASE': 23, - '@NBT': 462, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 1, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 1, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 1, - '@ST': 0, - '@SX': 0, - '@AB': 118, - '@HT': 32, - '@SH': 11, - '@AK': 16, - }, - - BLS12383: { - 'BITS': '384', - 'FIELD': 'BLS12383', - 'CURVE': 'BLS12383', - '@NB': 48, - '@BASE': 23, - '@NBT': 383, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 1, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 2, - '@ST': 1, - '@SX': 0, - '@AB': 65, - '@HT': 32, - '@SH': 8, - '@AK': 16, - }, - - BLS24479: { - 'BITS': '480', - 'FIELD': 'BLS24479', - 'CURVE': 'BLS24479', - '@NB': 60, - '@BASE': 23, - '@NBT': 479, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 4, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 3, - '@ST': 1, - '@SX': 0, - '@AB': 49, - '@HT': 48, - '@SH': 4, - '@AK': 24, - }, - - BLS48556: { - 'BITS': '560', - 'FIELD': 'BLS48556', - 'CURVE': 'BLS48556', - '@NB': 70, - '@BASE': 23, - '@NBT': 556, - '@M8': 1, - '@RZ': -1, - '@RZ2A': 2, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 4, - '@ST': 1, - '@SX': 0, - '@AB': 32, - '@HT': 64, - '@SH': 11, - '@AK': 32, - }, - - BLS48286: { - 'BITS': '288', - 'FIELD': 'BLS48286', - 'CURVE': 'BLS48286', - '@NB': 36, - '@BASE': 23, - '@NBT': 286, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 1, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 4, - '@ST': 1, - '@SX': 0, - '@AB': 17, - '@HT': 32, - '@SH': 11, - '@AK': 16, - }, - - BLS48581: { - 'BITS': '584', - 'FIELD': 'BLS48581', - 'CURVE': 'BLS48581', - '@NB': 73, - '@BASE': 23, - '@NBT': 581, - '@M8': 1, - '@RZ': 2, - '@RZ2A': 2, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 1, - '@CT': 0, - '@CA': 0, - '@PF': 4, - '@ST': 0, - '@SX': 1, - '@AB': 33, - '@HT': 64, - '@SH': 11, - '@AK': 32, - }, - - BLS12381: { - 'BITS': '381', - 'FIELD': 'BLS12381', - 'CURVE': 'BLS12381', - '@NB': 48, - '@BASE': 23, - '@NBT': 381, - '@M8': 1, - '@RZ': 11, - '@RZ2A': -2, - '@RZ2B': -1, - '@HC': 11, - '@HC2': 3, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 2, - '@ST': 1, - '@SX': 1, - '@AB': 65, - '@HT': 32, - '@SH': 10, - '@AK': 16, - }, - - BLS12461: { - 'BITS': '464', - 'FIELD': 'BLS12461', - 'CURVE': 'BLS12461', - '@NB': 58, - '@BASE': 23, - '@NBT': 461, - '@M8': 1, - '@RZ': 1, - '@RZ2A': 4, - '@RZ2B': 0, - '@HC': 0, - '@HC2': 0, - '@MT': 0, - '@QI': 0, - '@TW': 0, - '@CT': 0, - '@CA': 0, - '@PF': 2, - '@ST': 1, - '@SX': 1, - '@AB': 78, - '@HT': 32, - '@SH': 11, - '@AK': 16, - }, - - RSA2048: { - 'BITS': '1024', - 'TFF': '2048', - '@NB': 128, - '@BASE': 22, - '@ML': 2, - }, - - RSA3072: { - 'BITS': '384', - 'TFF': '3072', - '@NB': 48, - '@BASE': 23, - '@ML': 8, - }, - - RSA4096: { - 'BITS': '512', - 'TFF': '4096', - '@NB': 64, - '@BASE': 23, - '@ML': 8, - }, - }; - - prepareModule = function (moduleName, fileName, propertyName) { - if (!propertyName) { - propertyName = moduleName; - } - - if (typeof require !== 'undefined') { - if (!fileName) { - fileName = moduleName.toLowerCase(); - } - - ctx[propertyName] = require('./' + fileName)[moduleName](ctx); - } else { - ctx[propertyName] = window[moduleName](ctx); - } - }; - - prepareModule('AES'); - prepareModule('GCM'); - prepareModule('UInt64'); - prepareModule('HMAC'); - prepareModule('HASH256'); - prepareModule('HASH384'); - prepareModule('HASH512'); - prepareModule('SHA3'); - prepareModule('RAND'); - prepareModule('SHARE'); - prepareModule('NHS'); - - if (typeof input_parameter === 'undefined') { - return; - } - - ctx.config = CTXLIST[input_parameter]; - - // Set BIG parameters - prepareModule('BIG'); - prepareModule('DBIG', 'big'); - - // Set RSA parameters - if (typeof ctx.config['TFF'] !== 'undefined') { - prepareModule('FF'); - prepareModule('RSA'); - prepareModule('rsa_public_key', 'rsa'); - prepareModule('rsa_private_key', 'rsa'); - return; - } - - // Set Elliptic Curve parameters - if (typeof ctx.config['CURVE'] !== 'undefined') { - prepareModule('ROM_CURVE_' + ctx.config['CURVE'], 'rom_curve', 'ROM_CURVE'); - - prepareModule('ROM_FIELD_' + ctx.config['FIELD'], 'rom_field', 'ROM_FIELD'); - - prepareModule('FP'); - prepareModule('ECP'); - prepareModule('ECDH'); - prepareModule('HPKE'); - - if (ctx.config['@PF'] == 1 || ctx.config['@PF'] == 2) { - prepareModule('FP2'); - prepareModule('FP4'); - prepareModule('FP12'); - prepareModule('ECP2'); - prepareModule('PAIR'); - prepareModule('MPIN'); - prepareModule('BLS'); - } - - if (ctx.config['@PF'] == 3) { - prepareModule('FP2'); - prepareModule('FP4'); - prepareModule('FP8'); - prepareModule('FP24'); - prepareModule('ECP4'); - prepareModule('PAIR4'); - prepareModule('MPIN192'); - prepareModule('BLS192'); - } - - if (ctx.config['@PF'] == 4) { - prepareModule('FP2'); - prepareModule('FP4'); - prepareModule('FP8'); - prepareModule('FP16'); - prepareModule('FP48'); - prepareModule('ECP8'); - prepareModule('PAIR8'); - prepareModule('MPIN256'); - prepareModule('BLS256'); - } - - return; - } -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = CTX; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/ecdh.js b/packages/bls-verify/src/vendor/amcl-js/src/ecdh.js deleted file mode 100644 index f00493340..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/ecdh.js +++ /dev/null @@ -1,447 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* ECDH/ECIES/ECDSA API Functions */ - -var ECDH = function (ctx) { - 'use strict'; - - var ECDH = { - INVALID_PUBLIC_KEY: -2, - ERROR: -3, - //INVALID: -4, - EFS: ctx.BIG.MODBYTES, - EGS: ctx.BIG.MODBYTES, - SHA256: 32, - SHA384: 48, - SHA512: 64, - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - - return s; - }, - - asciitobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i += 2) { - b.push(parseInt(s.substr(i, 2), 16)); - } - - return b; - }, - - /* ctx.AES encryption/decryption */ - - IN_RANGE: function (S) { - var r, s; - r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - s = ctx.BIG.fromBytes(S); - if (s.iszilch()) return false; - if (ctx.BIG.comp(s, r) >= 0) return false; - return true; - }, - - KEY_PAIR_GENERATE: function (RNG, S, W) { - var res = 0, - r, - s, - G, - WP; - // var T=[]; - - G = ctx.ECP.generator(); - - r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - - if (RNG === null) { - s = ctx.BIG.fromBytes(S); - s.mod(r); - } else { - s = ctx.BIG.randtrunc(r, 16 * ctx.ECP.AESKEY, RNG); - } - - s.toBytes(S); - - WP = G.mul(s); - WP.toBytes(W, false); // To use point compression on public keys, change to true - - return res; - }, - - PUBLIC_KEY_VALIDATE: function (W) { - var WP = ctx.ECP.fromBytes(W), - res = 0, - r, - q, - nb, - k; - - r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - - if (WP.is_infinity()) { - res = this.INVALID_PUBLIC_KEY; - } - - if (res === 0) { - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - nb = q.nbits(); - k = new ctx.BIG(1); - k.shl(Math.floor((nb + 4) / 2)); - k.add(q); - k.div(r); - - while (k.parity() == 0) { - k.shr(1); - WP.dbl(); - } - - if (!k.isunity()) { - WP = WP.mul(k); - } - - if (WP.is_infinity()) { - res = this.INVALID_PUBLIC_KEY; - } - } - - return res; - }, - - ECPSVDP_DH: function (S, WD, Z, type) { - var res = 0, - r, - s, - i, - W; - - s = ctx.BIG.fromBytes(S); - - W = ctx.ECP.fromBytes(WD); - if (W.is_infinity()) { - res = this.ERROR; - } - - if (res === 0) { - r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - s.mod(r); - W = W.mul(s); - - if (W.is_infinity()) { - res = this.ERROR; - } else { - if (ctx.ECP.CURVETYPE != ctx.ECP.MONTGOMERY) { - if (type > 0) { - if (type == 1) W.toBytes(Z, true); - else W.toBytes(Z, false); - } else { - W.getX().toBytes(Z); - } - return res; - } else { - W.getX().toBytes(Z); - } - } - } - return res; - }, - - ECPSP_DSA: function (sha, RNG, S, F, C, D) { - var T = [], - i, - r, - s, - f, - c, - d, - u, - vx, - w, - G, - V, - B; - - B = ctx.HMAC.GPhashit(ctx.HMAC.MC_SHA2, sha, ctx.BIG.MODBYTES, 0, F, -1, null); - - G = ctx.ECP.generator(); - - r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - - s = ctx.BIG.fromBytes(S); - f = ctx.BIG.fromBytes(B); - - c = new ctx.BIG(0); - d = new ctx.BIG(0); - V = new ctx.ECP(); - - do { - u = ctx.BIG.randomnum(r, RNG); - w = ctx.BIG.randomnum(r, RNG); /* side channel masking */ - V.copy(G); - V = V.mul(u); - vx = V.getX(); - c.copy(vx); - c.mod(r); - if (c.iszilch()) { - continue; - } - u = ctx.BIG.modmul(u, w, r); - u.invmodp(r); - d = ctx.BIG.modmul(s, c, r); - d.add(f); - d = ctx.BIG.modmul(d, w, r); - d = ctx.BIG.modmul(u, d, r); - } while (d.iszilch()); - - c.toBytes(T); - for (i = 0; i < this.EFS; i++) { - C[i] = T[i]; - } - d.toBytes(T); - for (i = 0; i < this.EFS; i++) { - D[i] = T[i]; - } - - return 0; - }, - - ECPVP_DSA: function (sha, W, F, C, D) { - var B = [], - res = 0, - r, - f, - c, - d, - h2, - G, - WP, - P; - - B = ctx.HMAC.GPhashit(ctx.HMAC.MC_SHA2, sha, ctx.BIG.MODBYTES, 0, F, -1, null); - - G = ctx.ECP.generator(); - - r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - - c = ctx.BIG.fromBytes(C); - d = ctx.BIG.fromBytes(D); - f = ctx.BIG.fromBytes(B); - - if (c.iszilch() || ctx.BIG.comp(c, r) >= 0 || d.iszilch() || ctx.BIG.comp(d, r) >= 0) { - res = this.ERROR; - } - - if (res === 0) { - d.invmodp(r); - f = ctx.BIG.modmul(f, d, r); - h2 = ctx.BIG.modmul(c, d, r); - - WP = ctx.ECP.fromBytes(W); - if (WP.is_infinity()) { - res = this.ERROR; - } else { - P = new ctx.ECP(); - /* - var X=[]; X[0]=new ctx.ECP(); X[1]=new ctx.ECP(); - var e=[]; e[0]=new ctx.BIG(); e[1]=new ctx.BIG(); - X[0].copy(WP); X[1].copy(G); - e[0].copy(h2); e[1].copy(f); - P=ctx.ECP.muln(2,X,e); -*/ - - P.copy(WP); - P = P.mul2(h2, G, f); - - if (P.is_infinity()) { - res = this.ERROR; - } else { - d = P.getX(); - d.mod(r); - if (ctx.BIG.comp(d, c) !== 0) { - res = this.ERROR; - } - } - } - } - - return res; - }, - - ECIES_ENCRYPT: function (sha, P1, P2, RNG, W, M, V, T) { - var Z = [], - VZ = [], - K1 = [], - K2 = [], - U = [], - C = [], - K, - L2, - AC, - i; - - if (this.KEY_PAIR_GENERATE(RNG, U, V) !== 0) { - return C; - } - - if (this.ECPSVDP_DH(U, W, Z, 0) !== 0) { - return C; - } - - for (i = 0; i < 2 * this.EFS + 1; i++) { - VZ[i] = V[i]; - } - - for (i = 0; i < this.EFS; i++) { - VZ[2 * this.EFS + 1 + i] = Z[i]; - } - - K = ctx.HMAC.KDF2(ctx.HMAC.MC_SHA2, sha, VZ, P1, 2 * ctx.ECP.AESKEY); - - for (i = 0; i < ctx.ECP.AESKEY; i++) { - K1[i] = K[i]; - K2[i] = K[ctx.ECP.AESKEY + i]; - } - - C = ctx.AES.CBC_IV0_ENCRYPT(K1, M); - - L2 = ctx.HMAC.inttobytes(P2.length, 8); - - AC = []; - for (i = 0; i < C.length; i++) { - AC[i] = C[i]; - } - for (i = 0; i < P2.length; i++) { - AC[C.length + i] = P2[i]; - } - for (i = 0; i < 8; i++) { - AC[C.length + P2.length + i] = L2[i]; - } - - ctx.HMAC.HMAC1(ctx.HMAC.MC_SHA2, sha, T, T.length, K2, AC); - - return C; - }, - - ncomp: function (T1, T2, n) { - var res = 0; - for (var i = 0; i < n; i++) { - res |= T1[i] ^ T2[i]; - } - if (res == 0) return true; - return false; - }, - - ECIES_DECRYPT: function (sha, P1, P2, V, C, T, U) { - var Z = [], - VZ = [], - K1 = [], - K2 = [], - TAG = new Array(T.length), - M = [], - K, - L2, - AC, - i; - - if (this.ECPSVDP_DH(U, V, Z, 0) !== 0) { - return M; - } - - for (i = 0; i < 2 * this.EFS + 1; i++) { - VZ[i] = V[i]; - } - - for (i = 0; i < this.EFS; i++) { - VZ[2 * this.EFS + 1 + i] = Z[i]; - } - - K = ctx.HMAC.KDF2(ctx.HMAC.MC_SHA2, sha, VZ, P1, 2 * ctx.ECP.AESKEY); - - for (i = 0; i < ctx.ECP.AESKEY; i++) { - K1[i] = K[i]; - K2[i] = K[ctx.ECP.AESKEY + i]; - } - - M = ctx.AES.CBC_IV0_DECRYPT(K1, C); - - if (M.length === 0) { - return M; - } - - L2 = ctx.HMAC.inttobytes(P2.length, 8); - - AC = []; - - for (i = 0; i < C.length; i++) { - AC[i] = C[i]; - } - for (i = 0; i < P2.length; i++) { - AC[C.length + i] = P2[i]; - } - for (i = 0; i < 8; i++) { - AC[C.length + P2.length + i] = L2[i]; - } - - ctx.HMAC.HMAC1(ctx.HMAC.MC_SHA2, sha, TAG, TAG.length, K2, AC); - - if (!this.ncomp(T, TAG, T.length)) { - return []; - } - - return M; - }, - }; - - return ECDH; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - ECDH: ECDH, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/ecp.js b/packages/bls-verify/src/vendor/amcl-js/src/ecp.js deleted file mode 100644 index 28dbb0aae..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/ecp.js +++ /dev/null @@ -1,1966 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Elliptic Curve Point class */ - -var ECP = function (ctx) { - 'use strict'; - - /* Constructor */ - var ECP = function () { - this.x = new ctx.FP(0); - this.y = new ctx.FP(1); - if (ECP.CURVETYPE != ECP.EDWARDS) { - this.z = new ctx.FP(0); - } else { - this.z = new ctx.FP(1); - } - }; - - ECP.WEIERSTRASS = 0; - ECP.EDWARDS = 1; - ECP.MONTGOMERY = 2; - ECP.NOT = 0; - ECP.BN = 1; - ECP.BLS12 = 2; - ECP.BLS24 = 3; - ECP.BLS48 = 4; - ECP.D_TYPE = 0; - ECP.M_TYPE = 1; - ECP.POSITIVEX = 0; - ECP.NEGATIVEX = 1; - - ECP.CURVETYPE = ctx.config['@CT']; - ECP.CURVE_A = ctx.config['@CA']; - ECP.CURVE_PAIRING_TYPE = ctx.config['@PF']; - ECP.SEXTIC_TWIST = ctx.config['@ST']; - ECP.SIGN_OF_X = ctx.config['@SX']; - ECP.ATE_BITS = ctx.config['@AB']; - ECP.HTC_ISO = ctx.config['@HC']; - ECP.HTC_ISO_G2 = ctx.config['@HC2']; - - ECP.HASH_TYPE = ctx.config['@HT']; - ECP.AESKEY = ctx.config['@AK']; - ECP.ALLOW_ALT_COMPRESS = true; - - ECP.prototype = { - /* test this=O point-at-infinity */ - is_infinity: function () { - if (ECP.CURVETYPE == ECP.EDWARDS) { - return this.x.iszilch() && this.y.equals(this.z); - } else if (ECP.CURVETYPE == ECP.WEIERSTRASS) { - return this.x.iszilch() && this.z.iszilch(); - } else if (ECP.CURVETYPE == ECP.MONTGOMERY) { - return this.z.iszilch(); - } - - return true; - }, - - /* conditional swap of this and Q dependant on d */ - cswap: function (Q, d) { - this.x.cswap(Q.x, d); - if (ECP.CURVETYPE != ECP.MONTGOMERY) { - this.y.cswap(Q.y, d); - } - this.z.cswap(Q.z, d); - }, - - /* conditional move of Q to P dependant on d */ - cmove: function (Q, d) { - this.x.cmove(Q.x, d); - if (ECP.CURVETYPE != ECP.MONTGOMERY) { - this.y.cmove(Q.y, d); - } - this.z.cmove(Q.z, d); - }, - - /* Constant time select from pre-computed table */ - select: function (W, b) { - var MP = new ECP(), - m = b >> 31, - babs = (b ^ m) - m; - - babs = (babs - 1) / 2; - - this.cmove(W[0], ECP.teq(babs, 0)); // conditional move - this.cmove(W[1], ECP.teq(babs, 1)); - this.cmove(W[2], ECP.teq(babs, 2)); - this.cmove(W[3], ECP.teq(babs, 3)); - this.cmove(W[4], ECP.teq(babs, 4)); - this.cmove(W[5], ECP.teq(babs, 5)); - this.cmove(W[6], ECP.teq(babs, 6)); - this.cmove(W[7], ECP.teq(babs, 7)); - - MP.copy(this); - MP.neg(); - this.cmove(MP, m & 1); - }, - - /* Test P == Q */ - - equals: function (Q) { - var a, b; - - a = new ctx.FP(0); - b = new ctx.FP(0); - a.copy(this.x); - a.mul(Q.z); - a.reduce(); - b.copy(Q.x); - b.mul(this.z); - b.reduce(); - - if (!a.equals(b)) { - return false; - } - - if (ECP.CURVETYPE != ECP.MONTGOMERY) { - a.copy(this.y); - a.mul(Q.z); - a.reduce(); - b.copy(Q.y); - b.mul(this.z); - b.reduce(); - if (!a.equals(b)) { - return false; - } - } - - return true; - }, - - /* copy this=P */ - copy: function (P) { - this.x.copy(P.x); - if (ECP.CURVETYPE != ECP.MONTGOMERY) { - this.y.copy(P.y); - } - this.z.copy(P.z); - }, - - /* this=-this */ - neg: function () { - if (ECP.CURVETYPE == ECP.WEIERSTRASS) { - this.y.neg(); - this.y.norm(); - } else if (ECP.CURVETYPE == ECP.EDWARDS) { - this.x.neg(); - this.x.norm(); - } - - return; - }, - - /* set this=O */ - inf: function () { - this.x.zero(); - - if (ECP.CURVETYPE != ECP.MONTGOMERY) { - this.y.one(); - } - - if (ECP.CURVETYPE != ECP.EDWARDS) { - this.z.zero(); - } else { - this.z.one(); - } - }, - - /* set this=(x,y) where x and y are BIGs */ - setxy: function (ix, iy) { - var rhs, y2; - - this.x = new ctx.FP(0); - this.x.bcopy(ix); - - this.y = new ctx.FP(0); - this.y.bcopy(iy); - this.z = new ctx.FP(1); - this.x.norm(); - rhs = ECP.RHS(this.x); - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - if (rhs.qr(null) != 1) { - this.inf(); - } - } else { - y2 = new ctx.FP(0); - y2.copy(this.y); - y2.sqr(); - - if (!y2.equals(rhs)) { - this.inf(); - } - } - }, - - /* set this=x, where x is ctx.BIG, y is derived from sign s */ - setxi: function (ix, s) { - var rhs, ny; - - this.x = new ctx.FP(0); - this.x.bcopy(ix); - this.x.norm(); - rhs = ECP.RHS(this.x); - this.z = new ctx.FP(1); - var hint = new ctx.FP(0); - if (rhs.qr(hint) == 1) { - ny = rhs.sqrt(hint); - if (ny.sign() != s) { - ny.neg(); - ny.norm(); - } - this.y = ny; - } else { - this.inf(); - } - }, - - /* set this=x, y calculated from curve equation */ - setx: function (ix) { - var rhs; - - this.x = new ctx.FP(0); - this.x.bcopy(ix); - this.x.norm(); - rhs = ECP.RHS(this.x); - this.z = new ctx.FP(1); - var hint = new ctx.FP(0); - - if (rhs.qr(hint) == 1) { - if (ECP.CURVETYPE != ECP.MONTGOMERY) { - this.y = rhs.sqrt(hint); - } - } else { - this.inf(); - } - }, - - /* set this to affine - from (x,y,z) to (x,y) */ - affine: function () { - var one; - - if (this.is_infinity()) { - return; - } - - one = new ctx.FP(1); - - if (this.z.equals(one)) { - return; - } - - this.z.inverse(null); - - if (ECP.CURVETYPE == ECP.EDWARDS || ECP.CURVETYPE == ECP.WEIERSTRASS) { - this.x.mul(this.z); - this.x.reduce(); - this.y.mul(this.z); - this.y.reduce(); - this.z = one; - } - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - this.x.mul(this.z); - this.x.reduce(); - this.z = one; - } - }, - - /* extract x as ctx.BIG */ - getX: function () { - var W = new ECP(); - W.copy(this); - W.affine(); - return W.x.redc(); - }, - - /* extract y as ctx.BIG */ - getY: function () { - var W = new ECP(); - W.copy(this); - W.affine(); - return W.y.redc(); - }, - - /* get sign of Y */ - getS: function () { - var W = new ECP(); - W.copy(this); - W.affine(); - return W.y.sign(); - }, - - /* extract x as ctx.FP */ - getx: function () { - return this.x; - }, - - /* extract y as ctx.FP */ - gety: function () { - return this.y; - }, - - /* extract z as ctx.FP */ - getz: function () { - return this.z; - }, - - /* convert to byte array */ - toBytes: function (b, compress) { - var t = []; - var alt = false; - var W = new ECP(); - W.copy(this); - W.affine(); - W.x.redc().toBytes(t); - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - for (i = 0; i < ctx.BIG.MODBYTES; i++) { - b[i] = t[i]; - } - return; - } - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (var i = 0; i < ctx.BIG.MODBYTES; i++) b[i] = t[i]; - if (compress) { - b[0] |= 0x80; - if (W.y.islarger() == 1) b[0] |= 0x20; - } else { - W.y.redc().toBytes(t); - for (var i = 0; i < ctx.BIG.MODBYTES; i++) b[i + ctx.BIG.MODBYTES] = t[i]; - } - } else { - for (var i = 0; i < ctx.BIG.MODBYTES; i++) b[i + 1] = t[i]; - if (compress) { - b[0] = 0x02; - if (W.y.sign() == 1) b[0] = 0x03; - return; - } - b[0] = 0x04; - W.y.redc().toBytes(t); - for (var i = 0; i < ctx.BIG.MODBYTES; i++) b[i + ctx.BIG.MODBYTES + 1] = t[i]; - } - }, - /* convert to hex string */ - toString: function () { - var W = new ECP(); - W.copy(this); - if (W.is_infinity()) { - return 'infinity'; - } - - W.affine(); - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - return '(' + W.x.redc().toString() + ')'; - } else { - return '(' + W.x.redc().toString() + ',' + W.y.redc().toString() + ')'; - } - }, - - /* this+=this */ - dbl: function () { - var t0, t1, t2, t3, x3, y3, z3, b, C, D, H, J, A, B, AA, BB; - - if (ECP.CURVETYPE == ECP.WEIERSTRASS) { - if (ECP.CURVE_A == 0) { - t0 = new ctx.FP(0); - t0.copy(this.y); - t0.sqr(); - t1 = new ctx.FP(0); - t1.copy(this.y); - t1.mul(this.z); - t2 = new ctx.FP(0); - t2.copy(this.z); - t2.sqr(); - - this.z.copy(t0); - this.z.add(t0); - this.z.norm(); - this.z.add(this.z); - this.z.add(this.z); - this.z.norm(); - - t2.imul(3 * ctx.ROM_CURVE.CURVE_B_I); - - x3 = new ctx.FP(0); - x3.copy(t2); - x3.mul(this.z); - y3 = new ctx.FP(0); - y3.copy(t0); - y3.add(t2); - y3.norm(); - this.z.mul(t1); - t1.copy(t2); - t1.add(t2); - t2.add(t1); - t0.sub(t2); - t0.norm(); - y3.mul(t0); - y3.add(x3); - t1.copy(this.x); - t1.mul(this.y); - this.x.copy(t0); - this.x.norm(); - this.x.mul(t1); - this.x.add(this.x); - - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - } else { - t0 = new ctx.FP(0); - t0.copy(this.x); - t1 = new ctx.FP(0); - t1.copy(this.y); - t2 = new ctx.FP(0); - t2.copy(this.z); - t3 = new ctx.FP(0); - t3.copy(this.x); - z3 = new ctx.FP(0); - z3.copy(this.z); - y3 = new ctx.FP(0); - x3 = new ctx.FP(0); - b = new ctx.FP(0); - - if (ctx.ROM_CURVE.CURVE_B_I == 0) { - b.rcopy(ctx.ROM_CURVE.CURVE_B); - } - - t0.sqr(); //1 x^2 - t1.sqr(); //2 y^2 - t2.sqr(); //3 - - t3.mul(this.y); //4 - t3.add(t3); - t3.norm(); //5 - z3.mul(this.x); //6 - z3.add(z3); - z3.norm(); //7 - y3.copy(t2); - - if (ctx.ROM_CURVE.CURVE_B_I == 0) { - y3.mul(b); //8 - } else { - y3.imul(ctx.ROM_CURVE.CURVE_B_I); - } - - y3.sub(z3); //9 *** - x3.copy(y3); - x3.add(y3); - x3.norm(); //10 - - y3.add(x3); //11 - x3.copy(t1); - x3.sub(y3); - x3.norm(); //12 - y3.add(t1); - y3.norm(); //13 - y3.mul(x3); //14 - x3.mul(t3); //15 - t3.copy(t2); - t3.add(t2); //16 - t2.add(t3); //17 - - if (ctx.ROM_CURVE.CURVE_B_I == 0) { - z3.mul(b); //18 - } else { - z3.imul(ctx.ROM_CURVE.CURVE_B_I); - } - - z3.sub(t2); //19 - z3.sub(t0); - z3.norm(); //20 *** - t3.copy(z3); - t3.add(z3); //21 - - z3.add(t3); - z3.norm(); //22 - t3.copy(t0); - t3.add(t0); //23 - t0.add(t3); //24 - t0.sub(t2); - t0.norm(); //25 - - t0.mul(z3); //26 - y3.add(t0); //27 - t0.copy(this.y); - t0.mul(this.z); //28 - t0.add(t0); - t0.norm(); //29 - z3.mul(t0); //30 - x3.sub(z3); //31 - t0.add(t0); - t0.norm(); //32 - t1.add(t1); - t1.norm(); //33 - z3.copy(t0); - z3.mul(t1); //34 - - this.x.copy(x3); - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - this.z.copy(z3); - this.z.norm(); - } - } - - if (ECP.CURVETYPE == ECP.EDWARDS) { - C = new ctx.FP(0); - C.copy(this.x); - D = new ctx.FP(0); - D.copy(this.y); - H = new ctx.FP(0); - H.copy(this.z); - J = new ctx.FP(0); - - this.x.mul(this.y); - this.x.add(this.x); - this.x.norm(); - C.sqr(); - D.sqr(); - if (ECP.CURVE_A == -1) { - C.neg(); - } - - this.y.copy(C); - this.y.add(D); - this.y.norm(); - H.sqr(); - H.add(H); - - this.z.copy(this.y); - J.copy(this.y); - - J.sub(H); - J.norm(); - - this.x.mul(J); - C.sub(D); - C.norm(); - this.y.mul(C); - this.z.mul(J); - } - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - A = new ctx.FP(0); - A.copy(this.x); - B = new ctx.FP(0); - B.copy(this.x); - AA = new ctx.FP(0); - BB = new ctx.FP(0); - C = new ctx.FP(0); - - A.add(this.z); - A.norm(); - AA.copy(A); - AA.sqr(); - B.sub(this.z); - B.norm(); - BB.copy(B); - BB.sqr(); - C.copy(AA); - C.sub(BB); - C.norm(); - this.x.copy(AA); - this.x.mul(BB); - - A.copy(C); - A.imul((ECP.CURVE_A + 2) >> 2); - - BB.add(A); - BB.norm(); - this.z.copy(BB); - this.z.mul(C); - } - - return; - }, - - /* this+=Q */ - add: function (Q) { - var b, t0, t1, t2, t3, t4, x3, y3, z3, A, B, C, D, E, F, G; - - if (ECP.CURVETYPE == ECP.WEIERSTRASS) { - if (ECP.CURVE_A == 0) { - b = 3 * ctx.ROM_CURVE.CURVE_B_I; - t0 = new ctx.FP(0); - t0.copy(this.x); - t0.mul(Q.x); - t1 = new ctx.FP(0); - t1.copy(this.y); - t1.mul(Q.y); - t2 = new ctx.FP(0); - t2.copy(this.z); - t2.mul(Q.z); - t3 = new ctx.FP(0); - t3.copy(this.x); - t3.add(this.y); - t3.norm(); - t4 = new ctx.FP(0); - t4.copy(Q.x); - t4.add(Q.y); - t4.norm(); - t3.mul(t4); - t4.copy(t0); - t4.add(t1); - - t3.sub(t4); - t3.norm(); - t4.copy(this.y); - t4.add(this.z); - t4.norm(); - x3 = new ctx.FP(0); - x3.copy(Q.y); - x3.add(Q.z); - x3.norm(); - - t4.mul(x3); - x3.copy(t1); - x3.add(t2); - - t4.sub(x3); - t4.norm(); - x3.copy(this.x); - x3.add(this.z); - x3.norm(); - y3 = new ctx.FP(0); - y3.copy(Q.x); - y3.add(Q.z); - y3.norm(); - x3.mul(y3); - y3.copy(t0); - y3.add(t2); - y3.rsub(x3); - y3.norm(); - x3.copy(t0); - x3.add(t0); - t0.add(x3); - t0.norm(); - t2.imul(b); - - z3 = new ctx.FP(0); - z3.copy(t1); - z3.add(t2); - z3.norm(); - t1.sub(t2); - t1.norm(); - y3.imul(b); - - x3.copy(y3); - x3.mul(t4); - t2.copy(t3); - t2.mul(t1); - x3.rsub(t2); - y3.mul(t0); - t1.mul(z3); - y3.add(t1); - t0.mul(t3); - z3.mul(t4); - z3.add(t0); - - this.x.copy(x3); - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - this.z.copy(z3); - this.z.norm(); - } else { - t0 = new ctx.FP(0); - t0.copy(this.x); - t1 = new ctx.FP(0); - t1.copy(this.y); - t2 = new ctx.FP(0); - t2.copy(this.z); - t3 = new ctx.FP(0); - t3.copy(this.x); - t4 = new ctx.FP(0); - t4.copy(Q.x); - z3 = new ctx.FP(0); - y3 = new ctx.FP(0); - y3.copy(Q.x); - x3 = new ctx.FP(0); - x3.copy(Q.y); - b = new ctx.FP(0); - - if (ctx.ROM_CURVE.CURVE_B_I == 0) { - b.rcopy(ctx.ROM_CURVE.CURVE_B); - } - t0.mul(Q.x); //1 - t1.mul(Q.y); //2 - t2.mul(Q.z); //3 - - t3.add(this.y); - t3.norm(); //4 - t4.add(Q.y); - t4.norm(); //5 - t3.mul(t4); //6 - t4.copy(t0); - t4.add(t1); //7 - t3.sub(t4); - t3.norm(); //8 - t4.copy(this.y); - t4.add(this.z); - t4.norm(); //9 - x3.add(Q.z); - x3.norm(); //10 - t4.mul(x3); //11 - x3.copy(t1); - x3.add(t2); //12 - - t4.sub(x3); - t4.norm(); //13 - x3.copy(this.x); - x3.add(this.z); - x3.norm(); //14 - y3.add(Q.z); - y3.norm(); //15 - - x3.mul(y3); //16 - y3.copy(t0); - y3.add(t2); //17 - - y3.rsub(x3); - y3.norm(); //18 - z3.copy(t2); - - if (ctx.ROM_CURVE.CURVE_B_I == 0) { - z3.mul(b); //18 - } else { - z3.imul(ctx.ROM_CURVE.CURVE_B_I); - } - - x3.copy(y3); - x3.sub(z3); - x3.norm(); //20 - z3.copy(x3); - z3.add(x3); //21 - - x3.add(z3); //22 - z3.copy(t1); - z3.sub(x3); - z3.norm(); //23 - x3.add(t1); - x3.norm(); //24 - - if (ctx.ROM_CURVE.CURVE_B_I == 0) { - y3.mul(b); //18 - } else { - y3.imul(ctx.ROM_CURVE.CURVE_B_I); - } - - t1.copy(t2); - t1.add(t2); //26 - t2.add(t1); //27 - - y3.sub(t2); //28 - - y3.sub(t0); - y3.norm(); //29 - t1.copy(y3); - t1.add(y3); //30 - y3.add(t1); - y3.norm(); //31 - - t1.copy(t0); - t1.add(t0); //32 - t0.add(t1); //33 - t0.sub(t2); - t0.norm(); //34 - t1.copy(t4); - t1.mul(y3); //35 - t2.copy(t0); - t2.mul(y3); //36 - y3.copy(x3); - y3.mul(z3); //37 - y3.add(t2); //38 - x3.mul(t3); //39 - x3.sub(t1); //40 - z3.mul(t4); //41 - t1.copy(t3); - t1.mul(t0); //42 - z3.add(t1); - - this.x.copy(x3); - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - this.z.copy(z3); - this.z.norm(); - } - } - - if (ECP.CURVETYPE == ECP.EDWARDS) { - A = new ctx.FP(0); - A.copy(this.z); - B = new ctx.FP(0); - C = new ctx.FP(0); - C.copy(this.x); - D = new ctx.FP(0); - D.copy(this.y); - E = new ctx.FP(0); - F = new ctx.FP(0); - G = new ctx.FP(0); - - A.mul(Q.z); //A=2 - B.copy(A); - B.sqr(); //B=2 - C.mul(Q.x); //C=2 - D.mul(Q.y); //D=2 - - E.copy(C); - E.mul(D); //E=2 - - if (ctx.ROM_CURVE.CURVE_B_I == 0) { - b = new ctx.FP(0); - b.rcopy(ctx.ROM_CURVE.CURVE_B); - E.mul(b); - } else { - E.imul(ctx.ROM_CURVE.CURVE_B_I); //E=22222 - } - - F.copy(B); - F.sub(E); //F=22224 - G.copy(B); - G.add(E); //G=22224 - - if (ECP.CURVE_A == 1) { - E.copy(D); - E.sub(C); //E=4 - } - C.add(D); //C=4 - - B.copy(this.x); - B.add(this.y); //B=4 - D.copy(Q.x); - D.add(Q.y); - B.norm(); - D.norm(); //D=4 - B.mul(D); //B=2 - B.sub(C); - B.norm(); - F.norm(); // B=6 - B.mul(F); //B=2 - this.x.copy(A); - this.x.mul(B); - G.norm(); // x=2 - - if (ECP.CURVE_A == 1) { - E.norm(); - C.copy(E); - C.mul(G); //C=2 - } - - if (ECP.CURVE_A == -1) { - C.norm(); - C.mul(G); - } - - this.y.copy(A); - this.y.mul(C); //y=2 - this.z.copy(F); - this.z.mul(G); - } - - return; - }, - - /* Differential Add for Montgomery curves. this+=Q where W is this-Q and is affine. */ - dadd: function (Q, W) { - var A, B, C, D, DA, CB; - - A = new ctx.FP(0); - A.copy(this.x); - B = new ctx.FP(0); - B.copy(this.x); - C = new ctx.FP(0); - C.copy(Q.x); - D = new ctx.FP(0); - D.copy(Q.x); - DA = new ctx.FP(0); - CB = new ctx.FP(0); - - A.add(this.z); - B.sub(this.z); - - C.add(Q.z); - D.sub(Q.z); - - D.norm(); - A.norm(); - DA.copy(D); - DA.mul(A); - C.norm(); - B.norm(); - CB.copy(C); - CB.mul(B); - - A.copy(DA); - A.add(CB); - A.norm(); - A.sqr(); - B.copy(DA); - B.sub(CB); - B.norm(); - B.sqr(); - - this.x.copy(A); - this.z.copy(W.x); - this.z.mul(B); - - // this.x.norm(); - }, - - /* this-=Q */ - sub: function (Q) { - var NQ = new ECP(); - NQ.copy(Q); - NQ.neg(); - this.add(NQ); - }, - - /* constant time multiply by small integer of length bts - use ladder */ - pinmul: function (e, bts) { - var i, b, P, R0, R1; - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - return this.mul(new ctx.BIG(e)); - } else { - P = new ECP(); - R0 = new ECP(); - R1 = new ECP(); - R1.copy(this); - - for (i = bts - 1; i >= 0; i--) { - b = (e >> i) & 1; - P.copy(R1); - P.add(R0); - R0.cswap(R1, b); - R1.copy(P); - R0.dbl(); - R0.cswap(R1, b); - } - - P.copy(R0); - - return P; - } - }, - - // multiply this by the curves cofactor - cfp: function () { - var cf = ctx.ROM_CURVE.CURVE_Cof_I, - c = new ctx.BIG(0); - - if (cf == 1) { - return; - } - if (cf == 4) { - this.dbl(); - this.dbl(); - return; - } - if (cf == 8) { - this.dbl(); - this.dbl(); - this.dbl(); - return; - } - c.rcopy(ctx.ROM_CURVE.CURVE_Cof); - this.copy(this.mul(c)); - }, - - /* return e.this - SPA immune, using Ladder */ - mul: function (e) { - var P, D, R0, R1, mt, t, Q, C, W, w, i, b, nb, s, ns; - - if (e.iszilch() || this.is_infinity()) { - return new ECP(); - } - - P = new ECP(); - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - /* use ladder */ - D = new ECP(); - R0 = new ECP(); - R0.copy(this); - R1 = new ECP(); - R1.copy(this); - R1.dbl(); - D.copy(this); - D.affine(); - nb = e.nbits(); - for (i = nb - 2; i >= 0; i--) { - b = e.bit(i); - P.copy(R1); - P.dadd(R0, D); - - R0.cswap(R1, b); - R1.copy(P); - R0.dbl(); - R0.cswap(R1, b); - } - P.copy(R0); - } else { - // fixed size windows - mt = new ctx.BIG(); - t = new ctx.BIG(); - Q = new ECP(); - C = new ECP(); - W = []; - w = []; - - // precompute table - Q.copy(this); - Q.dbl(); - W[0] = new ECP(); - W[0].copy(this); - - for (i = 1; i < 8; i++) { - W[i] = new ECP(); - W[i].copy(W[i - 1]); - W[i].add(Q); - } - - // make exponent odd - add 2P if even, P if odd - t.copy(e); - s = t.parity(); - t.inc(1); - t.norm(); - ns = t.parity(); - mt.copy(t); - mt.inc(1); - mt.norm(); - t.cmove(mt, s); - Q.cmove(this, ns); - C.copy(Q); - - nb = 1 + Math.floor((t.nbits() + 3) / 4); - - // convert exponent to signed 4-bit window - for (i = 0; i < nb; i++) { - w[i] = t.lastbits(5) - 16; - t.dec(w[i]); - t.norm(); - t.fshr(4); - } - w[nb] = t.lastbits(5); - - P.copy(W[Math.floor((w[nb] - 1) / 2)]); - for (i = nb - 1; i >= 0; i--) { - Q.select(W, w[i]); - P.dbl(); - P.dbl(); - P.dbl(); - P.dbl(); - P.add(Q); - } - P.sub(C); - } - - return P; - }, - - /* Return e.this+f.Q */ - - mul2: function (e, Q, f) { - var te = new ctx.BIG(), - tf = new ctx.BIG(), - mt = new ctx.BIG(), - S = new ECP(), - T = new ECP(), - C = new ECP(), - W = [], - w = [], - i, - s, - ns, - nb, - a, - b; - - te.copy(e); - tf.copy(f); - - // precompute table - W[1] = new ECP(); - W[1].copy(this); - W[1].sub(Q); - W[2] = new ECP(); - W[2].copy(this); - W[2].add(Q); - S.copy(Q); - S.dbl(); - W[0] = new ECP(); - W[0].copy(W[1]); - W[0].sub(S); - W[3] = new ECP(); - W[3].copy(W[2]); - W[3].add(S); - T.copy(this); - T.dbl(); - W[5] = new ECP(); - W[5].copy(W[1]); - W[5].add(T); - W[6] = new ECP(); - W[6].copy(W[2]); - W[6].add(T); - W[4] = new ECP(); - W[4].copy(W[5]); - W[4].sub(S); - W[7] = new ECP(); - W[7].copy(W[6]); - W[7].add(S); - - // if multiplier is odd, add 2, else add 1 to multiplier, and add 2P or P to correction - - s = te.parity(); - te.inc(1); - te.norm(); - ns = te.parity(); - mt.copy(te); - mt.inc(1); - mt.norm(); - te.cmove(mt, s); - T.cmove(this, ns); - C.copy(T); - - s = tf.parity(); - tf.inc(1); - tf.norm(); - ns = tf.parity(); - mt.copy(tf); - mt.inc(1); - mt.norm(); - tf.cmove(mt, s); - S.cmove(Q, ns); - C.add(S); - - mt.copy(te); - mt.add(tf); - mt.norm(); - nb = 1 + Math.floor((mt.nbits() + 1) / 2); - - // convert exponent to signed 2-bit window - for (i = 0; i < nb; i++) { - a = te.lastbits(3) - 4; - te.dec(a); - te.norm(); - te.fshr(2); - b = tf.lastbits(3) - 4; - tf.dec(b); - tf.norm(); - tf.fshr(2); - w[i] = 4 * a + b; - } - w[nb] = 4 * te.lastbits(3) + tf.lastbits(3); - S.copy(W[Math.floor((w[nb] - 1) / 2)]); - - for (i = nb - 1; i >= 0; i--) { - T.select(W, w[i]); - S.dbl(); - S.dbl(); - S.add(T); - } - S.sub(C); /* apply correction */ - - return S; - }, - }; - - // set to group generator - ECP.generator = function () { - var G = new ECP(), - gx = new ctx.BIG(0), - gy = new ctx.BIG(0); - - gx.rcopy(ctx.ROM_CURVE.CURVE_Gx); - - if (ctx.ECP.CURVETYPE != ctx.ECP.MONTGOMERY) { - gy.rcopy(ctx.ROM_CURVE.CURVE_Gy); - G.setxy(gx, gy); - } else { - G.setx(gx); - } - return G; - }; - - /* return 1 if b==c, no branching */ - ECP.teq = function (b, c) { - var x = b ^ c; - x -= 1; // if x=0, x now -1 - return (x >> 31) & 1; - }; - - /* convert from byte array to ECP */ - ECP.fromBytes = function (b) { - var t = [], - P = new ECP(), - p = new ctx.BIG(0), - px, - py, - i; - var alt = false; - - p.rcopy(ctx.ROM_FIELD.Modulus); - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - for (i = 0; i < ctx.BIG.MODBYTES; i++) { - t[i] = b[i]; - } - px = ctx.BIG.fromBytes(t); - if (ctx.BIG.comp(px, p) >= 0) { - return P; - } - P.setx(px); - return P; - } - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (i = 0; i < ctx.BIG.MODBYTES; i++) t[i] = b[i]; - t[0] &= 0x1f; - px = ctx.BIG.fromBytes(t); - if ((b[0] & 0x80) == 0) { - for (i = 0; i < ctx.BIG.MODBYTES; i++) t[i] = b[i + ctx.BIG.MODBYTES]; - py = ctx.BIG.fromBytes(t); - P.setxy(px, py); - return P; - } else { - var sgn = (b[0] & 0x20) >> 5; - P.setxi(px, 0); - var cmp = P.y.islarger(); - if ((sgn == 1 && cmp != 1) || (sgn == 0 && cmp == 1)) P.neg(); - return P; - } - } else { - for (i = 0; i < ctx.BIG.MODBYTES; i++) { - t[i] = b[i + 1]; - } - px = ctx.BIG.fromBytes(t); - if (ctx.BIG.comp(px, p) >= 0) { - return P; - } - - if (b[0] == 0x04) { - for (i = 0; i < ctx.BIG.MODBYTES; i++) { - t[i] = b[i + ctx.BIG.MODBYTES + 1]; - } - - py = ctx.BIG.fromBytes(t); - - if (ctx.BIG.comp(py, p) >= 0) { - return P; - } - - P.setxy(px, py); - - return P; - } - - if (b[0] == 0x02 || b[0] == 0x03) { - P.setxi(px, b[0] & 1); - return P; - } - } - - return P; - }; - - /* Calculate RHS of curve equation */ - ECP.RHS = function (x) { - var r = new ctx.FP(0), - b, - cx, - one, - x3; - - //x.norm(); - r.copy(x); - r.sqr(); - - if (ECP.CURVETYPE == ECP.WEIERSTRASS) { - // x^3+Ax+B - b = new ctx.FP(0); - b.rcopy(ctx.ROM_CURVE.CURVE_B); - r.mul(x); - if (ECP.CURVE_A == -3) { - cx = new ctx.FP(0); - cx.copy(x); - cx.imul(3); - cx.neg(); - cx.norm(); - r.add(cx); - } - r.add(b); - } else if (ECP.CURVETYPE == ECP.EDWARDS) { - // (Ax^2-1)/(Bx^2-1) - b = new ctx.FP(0); - b.rcopy(ctx.ROM_CURVE.CURVE_B); - - one = new ctx.FP(1); - b.mul(r); - b.sub(one); - b.norm(); - if (ECP.CURVE_A == -1) { - r.neg(); - } - r.sub(one); - r.norm(); - b.inverse(null); - - r.mul(b); - } else if (ECP.CURVETYPE == ECP.MONTGOMERY) { - // x^3+Ax^2+x - x3 = new ctx.FP(0); - x3.copy(r); - x3.mul(x); - r.imul(ECP.CURVE_A); - r.add(x3); - r.add(x); - } - - r.reduce(); - - return r; - }; - - // Generic multi-multiplication, fixed 4-bit window, P=Sigma e_i*X_i - ECP.muln = function (n, X, e) { - var B = []; - var P = new ECP(); - var R = new ECP(); - var S = new ECP(); - var t = new ctx.BIG(); - var mr = new ctx.BIG(); - - for (var i = 0; i < 16; i++) { - B[i] = new ECP(); - } - var mt = new ctx.BIG(); - mt.copy(e[0]); - mt.norm(); - for (var i = 1; i < n; i++) { - // find biggest - t.copy(e[i]); - t.norm(); - var k = ctx.BIG.comp(t, mt); - mt.cmove(t, (k + 1) >> 1); - } - var nb = (mt.nbits() + 3) >> 2; - for (var i = nb - 1; i >= 0; i--) { - for (var j = 0; j < 16; j++) { - B[j].inf(); - } - for (var j = 0; j < n; j++) { - mt.copy(e[j]); - mt.norm(); - mt.shr(4 * i); - var k = mt.lastbits(4); - B[k].add(X[j]); - } - R.inf(); - S.inf(); - for (var j = 15; j >= 1; j--) { - R.add(B[j]); - S.add(R); - } - for (var j = 0; j < 4; j++) { - P.dbl(); - } - P.add(S); - } - return P; - }; - - /* Hunt and Peck a BIG to a curve point - ECP.hap2point = function(h) { - var P = new ECP(); - var x=new ctx.BIG(h); - for (;;) { - if (ECP.CURVETYPE != ECP.MONTGOMERY) { - P.setxi(x, 0); - } else { - P.setx(x); - } - x.inc(1); - x.norm(); - if (!P.is_infinity()) break; - } - return P; - }; */ - - /* Constant time Map to Point */ - ECP.map2point = function (h) { - var P = new ECP(); - - if (ECP.CURVETYPE == ECP.MONTGOMERY) { - var X1 = new ctx.FP(0); - var X2 = new ctx.FP(0); - var t = new ctx.FP(h); - var w = new ctx.FP(0); - var one = new ctx.FP(1); - var N = new ctx.FP(0); - var D = new ctx.FP(0); - var hint = new ctx.FP(0); - var A = new ctx.FP(ECP.CURVE_A); - t.sqr(); - - if (ctx.FP.PM1D2 == 2) { - t.add(t); - } - if (ctx.FP.PM1D2 == 1) { - t.neg(); - } - if (ctx.FP.PM1D2 > 2) { - t.imul(ctx.FP.PM1D2); - } - t.norm(); - D.copy(t); - D.add(one); - D.norm(); - - X1.copy(A); - X1.neg(); - X1.norm(); - X2.copy(X1); - X2.mul(t); - - w.copy(X1); - w.sqr(); - N.copy(w); - N.mul(X1); - w.mul(A); - w.mul(D); - N.add(w); - t.copy(D); - t.sqr(); - t.mul(X1); - N.add(t); - N.norm(); - - t.copy(N); - t.mul(D); - var qres = t.qr(hint); - w.copy(t); - w.inverse(hint); - D.copy(w); - D.mul(N); - X1.mul(D); - X2.mul(D); - X1.cmove(X2, 1 - qres); - - var a = X1.redc(); - P.setx(a); - } - if (ECP.CURVETYPE == ECP.EDWARDS) { - // Elligator 2 - map to Montgomery, place point, map back - var X1 = new ctx.FP(0); - var X2 = new ctx.FP(0); - var t = new ctx.FP(h); - var w = new ctx.FP(0); - var one = new ctx.FP(1); - var A = new ctx.FP(0); - var w1 = new ctx.FP(0); - var w2 = new ctx.FP(0); - var B = new ctx.FP(0); - B.rcopy(ctx.ROM_CURVE.CURVE_B); - var Y = new ctx.FP(0); - var K = new ctx.FP(0); - var D = new ctx.FP(0); - var hint = new ctx.FP(0); - //var Y3 = new ctx.FP(0); - - var qres, - qnr, - rfc = 0; - - if (ctx.FP.MODTYPE != ctx.FP.GENERALISED_MERSENNE) { - A.copy(B); - if (ECP.CURVE_A == 1) { - A.add(one); - B.sub(one); - } else { - A.sub(one); - B.add(one); - } - A.norm(); - B.norm(); - - A.div2(); - B.div2(); - B.div2(); - - K.copy(B); - K.neg(); - K.norm(); - //K.inverse(null); - K.invsqrt(K, w1); - - rfc = ctx.FP.RIADZ; - if (rfc == 1) { - // RFC7748 - A.mul(K); - K.mul(w1); - //K=K.sqrt(null); - } else { - B.sqr(); - } - } else { - A.copy(new ctx.FP(156326)); - rfc = 1; - } - - t.sqr(); - if (ctx.FP.PM1D2 == 2) { - t.add(t); - qnr = 2; - } - if (ctx.FP.PM1D2 == 1) { - t.neg(); - qnr = -1; - } - if (ctx.FP.PM1D2 > 2) { - t.imul(ctx.FP.PM1D2); - qnr = ctx.FP.PM1D2; - } - t.norm(); - D.copy(t); - D.add(one); - D.norm(); - X1.copy(A); - X1.neg(); - X1.norm(); - X2.copy(X1); - X2.mul(t); - - // Figure out RHS of Montgomery curve in rational form gx1/d^3 - - w.copy(X1); - w.sqr(); - w1.copy(w); - w1.mul(X1); - w.mul(A); - w.mul(D); - w1.add(w); - w2.copy(D); - w2.sqr(); - - if (rfc == 0) { - w.copy(X1); - w.mul(B); - w2.mul(w); - w1.add(w2); - } else { - w2.mul(X1); - w1.add(w2); - } - w1.norm(); - - B.copy(w1); - B.mul(D); - qres = B.qr(hint); - w.copy(B); - w.inverse(hint); - D.copy(w); - D.mul(w1); - X1.mul(D); - X2.mul(D); - D.sqr(); - - w1.copy(B); - w1.imul(qnr); - w.rcopy(ctx.ROM_CURVE.CURVE_HTPC); - w.mul(hint); - w2.copy(D); - w2.mul(h); - - X1.cmove(X2, 1 - qres); - B.cmove(w1, 1 - qres); - hint.cmove(w, 1 - qres); - D.cmove(w2, 1 - qres); - - Y.copy(B.sqrt(hint)); - Y.mul(D); - - /* - Y.copy(B.sqrt(hint)); - Y.mul(D); - - B.imul(qnr); - w.rcopy(ctx.ROM_CURVE.CURVE_HTPC); - hint.mul(w); - - Y3.copy(B.sqrt(hint)); - D.mul(h); - Y3.mul(D); - - X1.cmove(X2,1-qres); - Y.cmove(Y3,1-qres); -*/ - w.copy(Y); - w.neg(); - w.norm(); - Y.cmove(w, qres ^ Y.sign()); - - if (rfc == 0) { - X1.mul(K); - Y.mul(K); - } - - if (ctx.FP.MODTYPE == ctx.FP.GENERALISED_MERSENNE) { - // GOLDILOCKS isogeny - t.copy(X1); - t.sqr(); - w.copy(t); - w.add(one); - w.norm(); - t.sub(one); - t.norm(); - w1.copy(t); - w1.mul(Y); - w1.add(w1); - X2.copy(w1); - X2.add(w1); - X2.norm(); - t.sqr(); - Y.sqr(); - Y.add(Y); - Y.add(Y); - Y.norm(); - B.copy(t); - B.add(Y); - B.norm(); - - w2.copy(Y); - w2.sub(t); - w2.norm(); - w2.mul(X1); - t.mul(X1); - Y.div2(); - w1.copy(Y); - w1.mul(w); - w1.rsub(t); - w1.norm(); - - t.copy(X2); - t.mul(w1); - P = new ECP(); - P.x.copy(t); - t.copy(w2); - t.mul(B); - P.y.copy(t); - t.copy(w1); - t.mul(B); - P.z.copy(t); - - return P; - } else { - w1.copy(X1); - w1.add(one); - w1.norm(); - w2.copy(X1); - w2.sub(one); - w2.norm(); - t.copy(w1); - t.mul(Y); - X1.mul(w1); - - if (rfc == 1) X1.mul(K); - - Y.mul(w2); - P = new ECP(); - P.x.copy(X1); - P.y.copy(Y); - P.z.copy(t); - - return P; - } - } - if (ECP.CURVETYPE == ECP.WEIERSTRASS) { - // swu method - var A = new ctx.FP(0); - var B = new ctx.FP(0); - var X1 = new ctx.FP(0); - var X2 = new ctx.FP(0); - var X3 = new ctx.FP(0); - var one = new ctx.FP(1); - var Y = new ctx.FP(0); - var D = new ctx.FP(0); - var t = new ctx.FP(h); - var w = new ctx.FP(0); - var D2 = new ctx.FP(0); - var hint = new ctx.FP(0); - var GX1 = new ctx.FP(0); - //var Y3=new ctx.FP(0); - var sgn = t.sign(); - - if (ECP.CURVE_A != 0 || ECP.HTC_ISO != 0) { - if (ECP.HTC_ISO != 0) { - A.rcopy(ctx.ROM_CURVE.CURVE_Ad); - B.rcopy(ctx.ROM_CURVE.CURVE_Bd); - } else { - A.copy(new ctx.FP(ECP.CURVE_A)); - B.rcopy(ctx.ROM_CURVE.CURVE_B); - } - // SSWU Method - t.sqr(); - t.imul(ctx.FP.RIADZ); - w.copy(t); - w.add(one); - w.norm(); - - w.mul(t); - D.copy(A); - D.mul(w); - - w.add(one); - w.norm(); - w.mul(B); - w.neg(); - w.norm(); - - X2.copy(w); - X3.copy(t); - X3.mul(X2); - - // x^3+Ad^2x+Bd^3 - GX1.copy(X2); - GX1.sqr(); - D2.copy(D); - D2.sqr(); - w.copy(A); - w.mul(D2); - GX1.add(w); - GX1.norm(); - GX1.mul(X2); - D2.mul(D); - w.copy(B); - w.mul(D2); - GX1.add(w); - GX1.norm(); - - w.copy(GX1); - w.mul(D); - var qr = w.qr(hint); - D.copy(w); - D.inverse(hint); - D.mul(GX1); - X2.mul(D); - X3.mul(D); - t.mul(h); - D2.copy(D); - D2.sqr(); - - D.copy(D2); - D.mul(t); - t.copy(w); - t.imul(ctx.FP.RIADZ); - X1.rcopy(ctx.ROM_CURVE.CURVE_HTPC); - X1.mul(hint); - - X2.cmove(X3, 1 - qr); - D2.cmove(D, 1 - qr); - w.cmove(t, 1 - qr); - hint.cmove(X1, 1 - qr); - - Y.copy(w.sqrt(hint)); - Y.mul(D2); - - /* - Y.copy(w.sqrt(hint)); - Y.mul(D2); - - D2.mul(t); - w.imul(ctx.FP.RIADZ); - - X1.rcopy(ctx.ROM_CURVE.CURVE_HTPC); - hint.mul(X1); - - Y3.copy(w.sqrt(hint)); - Y3.mul(D2); - - X2.cmove(X3,1-qr); - Y.cmove(Y3,1-qr); -*/ - var ne = Y.sign() ^ sgn; - w.copy(Y); - w.neg(); - w.norm(); - Y.cmove(w, ne); - - if (ECP.HTC_ISO != 0) { - var k = 0; - var isox = ECP.HTC_ISO; - var isoy = (3 * (isox - 1)) / 2; - // xnum - var xnum = new ctx.FP(0); - xnum.rcopy(ctx.ROM_CURVE.PC[k++]); - for (var i = 0; i < isox; i++) { - xnum.mul(X2); - w.rcopy(ctx.ROM_CURVE.PC[k++]); - xnum.add(w); - xnum.norm(); - } - // xden - var xden = new ctx.FP(X2); - w.rcopy(ctx.ROM_CURVE.PC[k++]); - xden.add(w); - xden.norm(); - for (var i = 0; i < isox - 2; i++) { - xden.mul(X2); - w.rcopy(ctx.ROM_CURVE.PC[k++]); - xden.add(w); - xden.norm(); - } - // ynum - var ynum = new ctx.FP(0); - ynum.rcopy(ctx.ROM_CURVE.PC[k++]); - for (var i = 0; i < isoy; i++) { - ynum.mul(X2); - w.rcopy(ctx.ROM_CURVE.PC[k++]); - ynum.add(w); - ynum.norm(); - } - // yden - var yden = new ctx.FP(X2); - w.rcopy(ctx.ROM_CURVE.PC[k++]); - yden.add(w); - yden.norm(); - for (var i = 0; i < isoy - 1; i++) { - yden.mul(X2); - w.rcopy(ctx.ROM_CURVE.PC[k++]); - yden.add(w); - yden.norm(); - } - ynum.mul(Y); - w.copy(xnum); - w.mul(yden); - P.x.copy(w); - w.copy(ynum); - w.mul(xden); - P.y.copy(w); - w.copy(xden); - w.mul(yden); - P.z.copy(w); - return P; - } else { - var x = X2.redc(); - var y = Y.redc(); - P.setxy(x, y); - return P; - } - } else { - // Shallue and van de Woestijne - var Z = ctx.FP.RIADZ; - X1.copy(new ctx.FP(Z)); - X3.copy(X1); - var A = ECP.RHS(X1); - B.rcopy(ctx.ROM_FIELD.SQRTm3); - B.imul(Z); - - t.sqr(); - Y.copy(A); - Y.mul(t); - t.copy(one); - t.add(Y); - t.norm(); - Y.rsub(one); - Y.norm(); - D.copy(t); - D.mul(Y); - D.mul(B); - - var w = new ctx.FP(A); - ctx.FP.tpo(D, w); - - w.mul(B); - if (w.sign() == 1) { - w.neg(); - w.norm(); - } - w.mul(B); - w.mul(h); - w.mul(Y); - w.mul(D); - - X1.neg(); - X1.norm(); - X1.div2(); - X2.copy(X1); - X1.sub(w); - X1.norm(); - X2.add(w); - X2.norm(); - A.add(A); - A.add(A); - A.norm(); - t.sqr(); - t.mul(D); - t.sqr(); - A.mul(t); - X3.add(A); - X3.norm(); - - var rhs = ECP.RHS(X2); - X3.cmove(X2, rhs.qr(null)); - rhs.copy(ECP.RHS(X1)); - X3.cmove(X1, rhs.qr(null)); - rhs.copy(ECP.RHS(X3)); - Y.copy(rhs.sqrt(null)); - - var ne = Y.sign() ^ sgn; - w.copy(Y); - w.neg(); - w.norm(); - Y.cmove(w, ne); - - var x = X3.redc(); - var y = Y.redc(); - P.setxy(x, y); - return P; - } - } - return P; - }; - - /* - ECP.mapit = function(h) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var dx = ctx.DBIG.fromBytes(h); - var x=dx.mod(q); - var P=ctx.ECP.hap2point(x); - P.cfp(); - return P; - }; -*/ - return ECP; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.ECP = ECP; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/ecp2.js b/packages/bls-verify/src/vendor/amcl-js/src/ecp2.js deleted file mode 100644 index 544ca7601..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/ecp2.js +++ /dev/null @@ -1,1094 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE Weierstrass elliptic curve functions over ctx.FP2 */ - -var ECP2 = function (ctx) { - 'use strict'; - - /* Constructor, set this=O */ - var ECP2 = function () { - this.x = new ctx.FP2(0); - this.y = new ctx.FP2(1); - this.z = new ctx.FP2(0); - }; - - ECP2.prototype = { - /* Test this=O? */ - is_infinity: function () { - return this.x.iszilch() && this.z.iszilch(); - }, - - /* copy this=P */ - copy: function (P) { - this.x.copy(P.x); - this.y.copy(P.y); - this.z.copy(P.z); - }, - - /* set this=O */ - inf: function () { - this.x.zero(); - this.y.one(); - this.z.zero(); - }, - - /* conditional move of Q to P dependant on d */ - cmove: function (Q, d) { - this.x.cmove(Q.x, d); - this.y.cmove(Q.y, d); - this.z.cmove(Q.z, d); - }, - - /* Constant time select from pre-computed table */ - select: function (W, b) { - var MP = new ECP2(), - m, - babs; - - (m = b >> 31), (babs = (b ^ m) - m); - babs = (babs - 1) / 2; - - this.cmove(W[0], ECP2.teq(babs, 0)); // conditional move - this.cmove(W[1], ECP2.teq(babs, 1)); - this.cmove(W[2], ECP2.teq(babs, 2)); - this.cmove(W[3], ECP2.teq(babs, 3)); - this.cmove(W[4], ECP2.teq(babs, 4)); - this.cmove(W[5], ECP2.teq(babs, 5)); - this.cmove(W[6], ECP2.teq(babs, 6)); - this.cmove(W[7], ECP2.teq(babs, 7)); - - MP.copy(this); - MP.neg(); - this.cmove(MP, m & 1); - }, - - /* Test P == Q */ - equals: function (Q) { - var a, b; - - a = new ctx.FP2(0); - a.copy(this.x); - b = new ctx.FP2(0); - b.copy(Q.x); - - a.copy(this.x); - a.mul(Q.z); - a.reduce(); - b.copy(Q.x); - b.mul(this.z); - b.reduce(); - if (!a.equals(b)) { - return false; - } - - a.copy(this.y); - a.mul(Q.z); - a.reduce(); - b.copy(Q.y); - b.mul(this.z); - b.reduce(); - if (!a.equals(b)) { - return false; - } - - return true; - }, - - /* set this=-this */ - neg: function () { - this.y.norm(); - this.y.neg(); - this.y.norm(); - return; - }, - - /* convert this to affine, from (x,y,z) to (x,y) */ - affine: function () { - var one; - - if (this.is_infinity()) { - return; - } - - one = new ctx.FP2(1); - - if (this.z.equals(one)) { - this.x.reduce(); - this.y.reduce(); - return; - } - - this.z.inverse(null); - - this.x.mul(this.z); - this.x.reduce(); - this.y.mul(this.z); - this.y.reduce(); - this.z.copy(one); - }, - - /* extract affine x as ctx.FP2 */ - getX: function () { - var W = new ECP2(); - W.copy(this); - W.affine(); - return W.x; - }, - - /* extract affine y as ctx.FP2 */ - getY: function () { - var W = new ECP2(); - W.copy(this); - W.affine(); - return W.y; - }, - - /* extract projective x */ - getx: function () { - return this.x; - }, - - /* extract projective y */ - gety: function () { - return this.y; - }, - - /* extract projective z */ - getz: function () { - return this.z; - }, - - /* convert this to byte array */ - toBytes: function (b, compress) { - var t = []; - var alt = false; - var W = new ECP2(); - W.copy(this); - W.affine(); - W.x.toBytes(t); - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ctx.ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) b[i] = t[i]; - if (!compress) { - W.y.toBytes(t); - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) b[i + 2 * ctx.BIG.MODBYTES] = t[i]; - } else { - b[0] |= 0x80; - if (W.y.islarger() == 1) b[0] |= 0x20; - } - } else { - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) b[i + 1] = t[i]; - if (!compress) { - b[0] = 0x04; - W.y.toBytes(t); - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) b[i + 2 * ctx.BIG.MODBYTES + 1] = t[i]; - } else { - b[0] = 0x02; - if (W.y.sign() == 1) b[0] = 0x03; - } - } - }, - - /* convert this to hex string */ - toString: function () { - var W = new ECP2(); - W.copy(this); - if (W.is_infinity()) { - return 'infinity'; - } - W.affine(); - return '(' + W.x.toString() + ',' + W.y.toString() + ')'; - }, - - /* set this=(x,y) */ - setxy: function (ix, iy) { - var rhs, y2; - - this.x.copy(ix); - this.y.copy(iy); - this.z.one(); - this.x.norm(); - - rhs = ECP2.RHS(this.x); - - y2 = new ctx.FP2(this.y); - y2.sqr(); - - if (!y2.equals(rhs)) { - this.inf(); - } - }, - - /* set this=(x,.) */ - setx: function (ix, s) { - var rhs, h; - - this.x.copy(ix); - this.z.one(); - this.x.norm(); - - rhs = ECP2.RHS(this.x); - //alert("Into setx= rhs= "+rhs.toString()); - if (rhs.qr(h) == 1) { - rhs.sqrt(h); - if (rhs.sign() != s) rhs.neg(); - rhs.reduce(); - this.y.copy(rhs); - } else { - this.inf(); - } - }, - - /* set this*=q, where q is Modulus, using Frobenius */ - frob: function (X) { - var X2; - - X2 = new ctx.FP2(X); //X2.copy(X); - X2.sqr(); - this.x.conj(); - this.y.conj(); - this.z.conj(); - this.z.reduce(); - this.x.mul(X2); - this.y.mul(X2); - this.y.mul(X); - }, - - /* this+=this */ - dbl: function () { - var iy, t0, t1, t2, x3, y3; - - iy = new ctx.FP2(0); - iy.copy(this.y); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - iy.mul_ip(); - iy.norm(); - } - - t0 = new ctx.FP2(0); - t0.copy(this.y); - t0.sqr(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t0.mul_ip(); - } - t1 = new ctx.FP2(0); - t1.copy(iy); - t1.mul(this.z); - t2 = new ctx.FP2(0); - t2.copy(this.z); - t2.sqr(); - - this.z.copy(t0); - this.z.add(t0); - this.z.norm(); - this.z.add(this.z); - this.z.add(this.z); - this.z.norm(); - - t2.imul(3 * ctx.ROM_CURVE.CURVE_B_I); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - t2.mul_ip(); - t2.norm(); - } - - x3 = new ctx.FP2(0); - x3.copy(t2); - x3.mul(this.z); - - y3 = new ctx.FP2(0); - y3.copy(t0); - - y3.add(t2); - y3.norm(); - this.z.mul(t1); - t1.copy(t2); - t1.add(t2); - t2.add(t1); - t2.norm(); - t0.sub(t2); - t0.norm(); //y^2-9bz^2 - y3.mul(t0); - y3.add(x3); //(y^2+3z*2)(y^2-9z^2)+3b.z^2.8y^2 - t1.copy(this.x); - t1.mul(iy); // - this.x.copy(t0); - this.x.norm(); - this.x.mul(t1); - this.x.add(this.x); //(y^2-9bz^2)xy2 - - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - - return 1; - }, - - /* this+=Q - return 0 for add, 1 for double, -1 for O */ - /* this+=Q */ - add: function (Q) { - var b, t0, t1, t2, t3, t4, x3, y3, z3; - - b = 3 * ctx.ROM_CURVE.CURVE_B_I; - t0 = new ctx.FP2(0); - t0.copy(this.x); - t0.mul(Q.x); // x.Q.x - t1 = new ctx.FP2(0); - t1.copy(this.y); - t1.mul(Q.y); // y.Q.y - - t2 = new ctx.FP2(0); - t2.copy(this.z); - t2.mul(Q.z); - t3 = new ctx.FP2(0); - t3.copy(this.x); - t3.add(this.y); - t3.norm(); //t3=X1+Y1 - t4 = new ctx.FP2(0); - t4.copy(Q.x); - t4.add(Q.y); - t4.norm(); //t4=X2+Y2 - t3.mul(t4); //t3=(X1+Y1)(X2+Y2) - t4.copy(t0); - t4.add(t1); //t4=X1.X2+Y1.Y2 - - t3.sub(t4); - t3.norm(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t3.mul_ip(); - t3.norm(); //t3=(X1+Y1)(X2+Y2)-(X1.X2+Y1.Y2) = X1.Y2+X2.Y1 - } - - t4.copy(this.y); - t4.add(this.z); - t4.norm(); //t4=Y1+Z1 - x3 = new ctx.FP2(0); - x3.copy(Q.y); - x3.add(Q.z); - x3.norm(); //x3=Y2+Z2 - - t4.mul(x3); //t4=(Y1+Z1)(Y2+Z2) - x3.copy(t1); // - x3.add(t2); //X3=Y1.Y2+Z1.Z2 - - t4.sub(x3); - t4.norm(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t4.mul_ip(); - t4.norm(); //t4=(Y1+Z1)(Y2+Z2) - (Y1.Y2+Z1.Z2) = Y1.Z2+Y2.Z1 - } - - x3.copy(this.x); - x3.add(this.z); - x3.norm(); // x3=X1+Z1 - y3 = new ctx.FP2(0); - y3.copy(Q.x); - y3.add(Q.z); - y3.norm(); // y3=X2+Z2 - x3.mul(y3); // x3=(X1+Z1)(X2+Z2) - y3.copy(t0); - y3.add(t2); // y3=X1.X2+Z1+Z2 - y3.rsub(x3); - y3.norm(); // y3=(X1+Z1)(X2+Z2) - (X1.X2+Z1.Z2) = X1.Z2+X2.Z1 - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t0.mul_ip(); - t0.norm(); // x.Q.x - t1.mul_ip(); - t1.norm(); // y.Q.y - } - - x3.copy(t0); - x3.add(t0); - t0.add(x3); - t0.norm(); - t2.imul(b); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - t2.mul_ip(); - t2.norm(); - } - - z3 = new ctx.FP2(0); - z3.copy(t1); - z3.add(t2); - z3.norm(); - t1.sub(t2); - t1.norm(); - y3.imul(b); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - y3.mul_ip(); - y3.norm(); - } - - x3.copy(y3); - x3.mul(t4); - t2.copy(t3); - t2.mul(t1); - x3.rsub(t2); - y3.mul(t0); - t1.mul(z3); - y3.add(t1); - t0.mul(t3); - z3.mul(t4); - z3.add(t0); - - this.x.copy(x3); - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - this.z.copy(z3); - this.z.norm(); - - return 0; - }, - - /* this-=Q */ - sub: function (Q) { - var D; - var NQ = new ECP2(); - NQ.copy(Q); - NQ.neg(); - D = this.add(NQ); - return D; - }, - - /* P*=e */ - mul: function (e) { - /* fixed size windows */ - var mt = new ctx.BIG(), - t = new ctx.BIG(), - C = new ECP2(), - P = new ECP2(), - Q = new ECP2(), - W = [], - w = [], - i, - nb, - s, - ns; - - if (this.is_infinity()) { - return new ECP2(); - } - - // precompute table - Q.copy(this); - Q.dbl(); - W[0] = new ECP2(); - W[0].copy(this); - - for (i = 1; i < 8; i++) { - W[i] = new ECP2(); - W[i].copy(W[i - 1]); - W[i].add(Q); - } - - // make exponent odd - add 2P if even, P if odd - t.copy(e); - s = t.parity(); - t.inc(1); - t.norm(); - ns = t.parity(); - mt.copy(t); - mt.inc(1); - mt.norm(); - t.cmove(mt, s); - Q.cmove(this, ns); - C.copy(Q); - - nb = 1 + Math.floor((t.nbits() + 3) / 4); - - // convert exponent to signed 4-bit window - for (i = 0; i < nb; i++) { - w[i] = t.lastbits(5) - 16; - t.dec(w[i]); - t.norm(); - t.fshr(4); - } - w[nb] = t.lastbits(5); - - P.copy(W[Math.floor((w[nb] - 1) / 2)]); - for (i = nb - 1; i >= 0; i--) { - Q.select(W, w[i]); - P.dbl(); - P.dbl(); - P.dbl(); - P.dbl(); - P.add(Q); - } - P.sub(C); - - return P; - }, - - // clear cofactor - cfp: function () { - var fa = new ctx.BIG(0), - fb = new ctx.BIG(0), - x, - T, - K, - X, - xQ, - x2Q; - - // Fast Hashing to G2 - Fuentes-Castaneda, Knapp and Rodriguez-Henriquez - fa.rcopy(ctx.ROM_FIELD.Fra); - fb.rcopy(ctx.ROM_FIELD.Frb); - X = new ctx.FP2(fa, fb); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - X.inverse(null); - X.norm(); - } - - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - T = new ECP2(); - T.copy(this); - T = T.mul(x); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - T.neg(); - } - K = new ECP2(); - K.copy(T); - K.dbl(); - K.add(T); //K.affine(); - - K.frob(X); - this.frob(X); - this.frob(X); - this.frob(X); - this.add(T); - this.add(K); - T.frob(X); - T.frob(X); - this.add(T); - } - - if (ctx.ECP.CURVE_PAIRING_TYPE > ctx.ECP.BN) { - xQ = this.mul(x); - x2Q = xQ.mul(x); - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - xQ.neg(); - } - - x2Q.sub(xQ); - x2Q.sub(this); - - xQ.sub(this); - xQ.frob(X); - - this.dbl(); - this.frob(X); - this.frob(X); - - this.add(x2Q); - this.add(xQ); - } - }, - }; - - // set to group generator - ECP2.generator = function () { - var G = new ECP2(), - A = new ctx.BIG(0), - B = new ctx.BIG(0), - QX, - QY; - - A.rcopy(ctx.ROM_CURVE.CURVE_Pxa); - B.rcopy(ctx.ROM_CURVE.CURVE_Pxb); - QX = new ctx.FP2(0); - QX.bset(A, B); - A.rcopy(ctx.ROM_CURVE.CURVE_Pya); - B.rcopy(ctx.ROM_CURVE.CURVE_Pyb); - QY = new ctx.FP2(0); - QY.bset(A, B); - G.setxy(QX, QY); - return G; - }; - - /* convert from byte array to point */ - ECP2.fromBytes = function (b) { - var t = []; - var alt = false; - var typ = b[0]; - var P = new ECP2(); - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ctx.ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) t[i] = b[i]; - t[0] &= 0x1f; - var rx = ctx.FP2.fromBytes(t); - if ((b[0] & 0x80) == 0) { - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 2 * ctx.BIG.MODBYTES]; - var ry = ctx.FP2.fromBytes(t); - P.setxy(rx, ry); - } else { - var sgn = (b[0] & 0x20) >> 5; - P.setx(rx, 0); - var cmp = P.y.islarger(); - if ((sgn == 1 && cmp != 1) || (sgn == 0 && cmp == 1)) P.neg(); - } - } else { - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 1]; - var rx = ctx.FP2.fromBytes(t); - if (typ == 0x04) { - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 2 * ctx.BIG.MODBYTES + 1]; - var ry = ctx.FP2.fromBytes(t); - P.setxy(rx, ry); - } else { - P.setx(rx, typ & 1); - } - } - return P; - }; - - /* Calculate RHS of curve equation x^3+B */ - ECP2.RHS = function (x) { - var r, c, b; - - //x.norm(); - r = new ctx.FP2(x); //r.copy(x); - r.sqr(); - - c = new ctx.BIG(0); - c.rcopy(ctx.ROM_CURVE.CURVE_B); - b = new ctx.FP2(c); //b.bseta(c); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b.div_ip(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b.norm(); - b.mul_ip(); - b.norm(); - } - - r.mul(x); - r.add(b); - - r.reduce(); - - return r; - }; - - /* P=u0.Q0+u1*Q1+u2*Q2+u3*Q3 */ - // Bos & Costello https://eprint.iacr.org/2013/458.pdf - // Faz-Hernandez & Longa & Sanchez https://eprint.iacr.org/2013/158.pdf - // Side channel attack secure - ECP2.mul4 = function (Q, u) { - var W = new ECP2(), - P = new ECP2(), - T = [], - mt = new ctx.BIG(), - t = [], - w = [], - s = [], - i, - j, - k, - nb, - bt, - pb; - - for (i = 0; i < 4; i++) { - t[i] = new ctx.BIG(u[i]); - t[i].norm(); - //Q[i].affine(); - } - - T[0] = new ECP2(); - T[0].copy(Q[0]); // Q[0] - T[1] = new ECP2(); - T[1].copy(T[0]); - T[1].add(Q[1]); // Q[0]+Q[1] - T[2] = new ECP2(); - T[2].copy(T[0]); - T[2].add(Q[2]); // Q[0]+Q[2] - T[3] = new ECP2(); - T[3].copy(T[1]); - T[3].add(Q[2]); // Q[0]+Q[1]+Q[2] - T[4] = new ECP2(); - T[4].copy(T[0]); - T[4].add(Q[3]); // Q[0]+Q[3] - T[5] = new ECP2(); - T[5].copy(T[1]); - T[5].add(Q[3]); // Q[0]+Q[1]+Q[3] - T[6] = new ECP2(); - T[6].copy(T[2]); - T[6].add(Q[3]); // Q[0]+Q[2]+Q[3] - T[7] = new ECP2(); - T[7].copy(T[3]); - T[7].add(Q[3]); // Q[0]+Q[1]+Q[2]+Q[3] - - // Make it odd - pb = 1 - t[0].parity(); - t[0].inc(pb); - t[0].norm(); - - // Number of bits - mt.zero(); - for (i = 0; i < 4; i++) { - mt.or(t[i]); - } - - nb = 1 + mt.nbits(); - - // Sign pivot - s[nb - 1] = 1; - for (i = 0; i < nb - 1; i++) { - t[0].fshr(1); - s[i] = 2 * t[0].parity() - 1; - } - - // Recoded exponent - for (i = 0; i < nb; i++) { - w[i] = 0; - k = 1; - for (j = 1; j < 4; j++) { - bt = s[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w[i] += bt * k; - k *= 2; - } - } - - // Main loop - P.select(T, 2 * w[nb - 1] + 1); - for (i = nb - 2; i >= 0; i--) { - P.dbl(); - W.select(T, 2 * w[i] + s[i]); - P.add(W); - } - - // apply correction - W.copy(P); - W.sub(Q[0]); - P.cmove(W, pb); - return P; - }; - - /* return 1 if b==c, no branching */ - ECP2.teq = function (b, c) { - var x = b ^ c; - x -= 1; // if x=0, x now -1 - return (x >> 31) & 1; - }; - - /* Hunt and Peck a BIG to a curve point - ECP2.hap2point = function(h) - { - var one=new ctx.BIG(1); - var x=new ctx.BIG(h); - var Q,X2; - for (;;) { - X2 = new ctx.FP2(one, x); - Q = new ECP2(); - Q.setx(X2,0); - if (!Q.is_infinity()) break; - x.inc(1); - x.norm(); - } - return Q; - }; */ - - /* Constant time Map to Point */ - ECP2.map2point = function (H) { - // Shallue and van de Woestijne method. - var sgn, ne; - var NY = new ctx.FP2(1); - var T = new ctx.FP2(H); - sgn = T.sign(); - if (ctx.ECP.HTC_ISO_G2 == 0) { - var Z = new ctx.FP(ctx.FP.RIADZG2A); - var X1 = new ctx.FP2(Z); - var A = ECP2.RHS(X1); - var W = new ctx.FP2(A); - if ( - ctx.FP.RIADZG2A == -1 && - ctx.FP.RIADZG2B == 0 && - ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE && - ctx.ROM_CURVE.CURVE_B_I == 4 - ) { - // special case for BLS12381 - W.copy(new ctx.FP2(2, 1)); - } else { - W.sqrt(null); - } - var s = new ctx.FP(0); - s.rcopy(ctx.ROM_FIELD.SQRTm3); - Z.mul(s); - - T.sqr(); - var Y = new ctx.FP2(A); - Y.mul(T); - T.copy(NY); - T.add(Y); - T.norm(); - Y.rsub(NY); - Y.norm(); - NY.copy(T); - NY.mul(Y); - - NY.pmul(Z); - NY.inverse(null); - - W.pmul(Z); - if (W.sign() == 1) { - W.neg(); - W.norm(); - } - W.pmul(Z); - W.mul(H); - W.mul(Y); - W.mul(NY); - - var X3 = new ctx.FP2(X1); - X1.neg(); - X1.norm(); - X1.div2(); - var X2 = new ctx.FP2(X1); - X1.sub(W); - X1.norm(); - X2.add(W); - X2.norm(); - A.add(A); - A.add(A); - A.norm(); - T.sqr(); - T.mul(NY); - T.sqr(); - A.mul(T); - X3.add(A); - X3.norm(); - - Y.copy(ECP2.RHS(X2)); - X3.cmove(X2, Y.qr(null)); - Y.copy(ECP2.RHS(X1)); - X3.cmove(X1, Y.qr(null)); - Y.copy(ECP2.RHS(X3)); - Y.sqrt(null); - - ne = Y.sign() ^ sgn; - W.copy(Y); - W.neg(); - W.norm(); - Y.cmove(W, ne); - - var P = new ECP2(); - P.setxy(X3, Y); - return P; - } else { - var Q = new ctx.ECP2(); - var ra = new ctx.FP(0); - var rb = new ctx.FP(0); - ra.rcopy(ctx.ROM_CURVE.CURVE_Adr); - rb.rcopy(ctx.ROM_CURVE.CURVE_Adi); - var Ad = new ctx.FP2(ra, rb); - ra.rcopy(ctx.ROM_CURVE.CURVE_Bdr); - rb.rcopy(ctx.ROM_CURVE.CURVE_Bdi); - var Bd = new ctx.FP2(ra, rb); - var ZZ = new ctx.FP2(ctx.FP.RIADZG2A, ctx.FP.RIADZG2B); - var hint = new ctx.FP(0); - - T.sqr(); - T.mul(ZZ); - var W = new ctx.FP2(T); - W.add(NY); - W.norm(); - - W.mul(T); - var D = new ctx.FP2(Ad); - D.mul(W); - - W.add(NY); - W.norm(); - W.mul(Bd); - W.neg(); - W.norm(); - - var X2 = new ctx.FP2(W); - var X3 = new ctx.FP2(T); - X3.mul(X2); - - var GX1 = new ctx.FP2(X2); - GX1.sqr(); - var D2 = new ctx.FP2(D); - D2.sqr(); - W.copy(Ad); - W.mul(D2); - GX1.add(W); - GX1.norm(); - GX1.mul(X2); - D2.mul(D); - W.copy(Bd); - W.mul(D2); - GX1.add(W); - GX1.norm(); // x^3+Ax+b - - W.copy(GX1); - W.mul(D); - var qr = W.qr(hint); - D.copy(W); - D.inverse(hint); - D.mul(GX1); - X2.mul(D); - X3.mul(D); - T.mul(H); - D2.copy(D); - D2.sqr(); - - D.copy(D2); - D.mul(T); - T.copy(W); - T.mul(ZZ); - - var s = new ctx.FP(0); - s.rcopy(ctx.ROM_CURVE.CURVE_HTPC2); - s.mul(hint); - - X2.cmove(X3, 1 - qr); - W.cmove(T, 1 - qr); - D2.cmove(D, 1 - qr); - hint.cmove(s, 1 - qr); - - var Y = new ctx.FP2(W); - Y.sqrt(hint); - Y.mul(D2); - - ne = Y.sign() ^ sgn; - W.copy(Y); - W.neg(); - W.norm(); - Y.cmove(W, ne); - - var k = 0; - var isox = ctx.ECP.HTC_ISO_G2; - var isoy = (3 * (isox - 1)) / 2; - - // xnum - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - var xnum = new ctx.FP2(ra, rb); - k++; - for (var i = 0; i < isox; i++) { - xnum.mul(X2); - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - W.copy(new ctx.FP2(ra, rb)); - k++; - xnum.add(W); - xnum.norm(); - } - - //xden - var xden = new ctx.FP2(X2); - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - W.copy(new ctx.FP2(ra, rb)); - k++; - xden.add(W); - xden.norm(); - for (var i = 0; i < isox - 2; i++) { - xden.mul(X2); - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - W.copy(new ctx.FP2(ra, rb)); - k++; - xden.add(W); - xden.norm(); - } - - //ynum - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - var ynum = new ctx.FP2(ra, rb); - k++; - for (var i = 0; i < isoy; i++) { - ynum.mul(X2); - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - W.copy(new ctx.FP2(ra, rb)); - k++; - ynum.add(W); - ynum.norm(); - } - - //yden - var yden = new ctx.FP2(X2); - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - W.copy(new ctx.FP2(ra, rb)); - k++; - yden.add(W); - yden.norm(); - for (var i = 0; i < isoy - 1; i++) { - yden.mul(X2); - ra.rcopy(ctx.ROM_CURVE.PCR[k]); - rb.rcopy(ctx.ROM_CURVE.PCI[k]); - W.copy(new ctx.FP2(ra, rb)); - k++; - yden.add(W); - yden.norm(); - } - - ynum.mul(Y); - - T.copy(xnum); - T.mul(yden); - Q.x.copy(T); - T.copy(ynum); - T.mul(xden); - Q.y.copy(T); - T.copy(xden); - T.mul(yden); - Q.z.copy(T); - - return Q; - } - }; - - /* Map octet string to curve point - ECP2.mapit = function(h) - { - var q=new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var dx=ctx.DBIG.fromBytes(h); - var x=dx.mod(q); - - var Q=ECP2.hap2point(x); - Q.cfp(); - return Q; - };*/ - - return ECP2; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.ECP2 = ECP2; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/ecp4.js b/packages/bls-verify/src/vendor/amcl-js/src/ecp4.js deleted file mode 100644 index a1cb9407b..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/ecp4.js +++ /dev/null @@ -1,970 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE Weierstrass elliptic curve functions over ctx.FP4 */ - -var ECP4 = function (ctx) { - 'use strict'; - - /* Constructor, set this=O */ - var ECP4 = function () { - this.x = new ctx.FP4(0); - this.y = new ctx.FP4(1); - this.z = new ctx.FP4(0); - }; - - ECP4.prototype = { - /* Test this=O? */ - is_infinity: function () { - return this.x.iszilch() && this.z.iszilch(); - }, - - /* copy this=P */ - copy: function (P) { - this.x.copy(P.x); - this.y.copy(P.y); - this.z.copy(P.z); - }, - - /* set this=O */ - inf: function () { - this.x.zero(); - this.y.one(); - this.z.zero(); - }, - - /* conditional move of Q to P dependant on d */ - cmove: function (Q, d) { - this.x.cmove(Q.x, d); - this.y.cmove(Q.y, d); - this.z.cmove(Q.z, d); - }, - - /* Constant time select from pre-computed table */ - select: function (W, b) { - var MP = new ECP4(), - m = b >> 31, - babs = (b ^ m) - m; - - babs = (babs - 1) / 2; - - this.cmove(W[0], ECP4.teq(babs, 0)); // conditional move - this.cmove(W[1], ECP4.teq(babs, 1)); - this.cmove(W[2], ECP4.teq(babs, 2)); - this.cmove(W[3], ECP4.teq(babs, 3)); - this.cmove(W[4], ECP4.teq(babs, 4)); - this.cmove(W[5], ECP4.teq(babs, 5)); - this.cmove(W[6], ECP4.teq(babs, 6)); - this.cmove(W[7], ECP4.teq(babs, 7)); - - MP.copy(this); - MP.neg(); - this.cmove(MP, m & 1); - }, - - /* Test P == Q */ - equals: function (Q) { - var a, b; - - a = new ctx.FP4(this.x); - b = new ctx.FP4(Q.x); - - a.mul(Q.z); - b.mul(this.z); - if (!a.equals(b)) { - return false; - } - - a.copy(this.y); - a.mul(Q.z); - b.copy(Q.y); - b.mul(this.z); - if (!a.equals(b)) { - return false; - } - - return true; - }, - - /* set this=-this */ - neg: function () { - this.y.norm(); - this.y.neg(); - this.y.norm(); - return; - }, - - /* convert this to affine, from (x,y,z) to (x,y) */ - affine: function () { - var one; - - if (this.is_infinity()) { - return; - } - - one = new ctx.FP4(1); - - if (this.z.equals(one)) { - this.x.reduce(); - this.y.reduce(); - return; - } - - this.z.inverse(null); - - this.x.mul(this.z); - this.x.reduce(); - this.y.mul(this.z); - this.y.reduce(); - this.z.copy(one); - }, - - /* extract affine x as ctx.FP4 */ - getX: function () { - var W = new ECP4(); - W.copy(this); - W.affine(); - return W.x; - }, - - /* extract affine y as ctx.FP4 */ - getY: function () { - var W = new ECP4(); - W.copy(this); - W.affine(); - return W.y; - }, - - /* extract projective x */ - getx: function () { - return this.x; - }, - - /* extract projective y */ - gety: function () { - return this.y; - }, - - /* extract projective z */ - getz: function () { - return this.z; - }, - - /* convert this to byte array */ - toBytes: function (b, compress) { - var t = []; - var alt = false; - var W = new ECP4(); - W.copy(this); - W.affine(); - W.x.toBytes(t); - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) b[i] = t[i]; - if (!compress) { - W.y.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) b[i + 4 * ctx.BIG.MODBYTES] = t[i]; - } else { - b[0] |= 0x80; - if (W.y.islarger() == 1) b[0] |= 0x20; - } - } else { - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) b[i + 1] = t[i]; - if (!compress) { - b[0] = 0x04; - W.y.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) b[i + 4 * ctx.BIG.MODBYTES + 1] = t[i]; - } else { - b[0] = 0x02; - if (W.y.sign() == 1) b[0] = 0x03; - } - } - }, - - /* convert this to hex string */ - toString: function () { - var W = new ECP4(); - W.copy(this); - if (W.is_infinity()) { - return 'infinity'; - } - W.affine(); - return '(' + W.x.toString() + ',' + W.y.toString() + ')'; - }, - - /* set this=(x,y) */ - setxy: function (ix, iy) { - var rhs, y2; - - this.x.copy(ix); - this.y.copy(iy); - this.z.one(); - this.x.norm(); - - rhs = ECP4.RHS(this.x); - - y2 = new ctx.FP4(this.y); //y2.copy(this.y); - y2.sqr(); - - if (!y2.equals(rhs)) { - this.inf(); - } - }, - - /* set this=(x,.) */ - setx: function (ix, s) { - var rhs, h; - - this.x.copy(ix); - this.z.one(); - this.x.norm(); - rhs = ECP4.RHS(this.x); - - if (rhs.qr(h) == 1) { - rhs.sqrt(h); - if (rhs.sign() != s) rhs.neg(); - rhs.reduce(); - this.y.copy(rhs); - } else { - this.inf(); - } - }, - - /* set this*=q, where q is Modulus, using Frobenius */ - frob: function (F, n) { - for (var i = 0; i < n; i++) { - this.x.frob(F[2]); - this.x.pmul(F[0]); - - this.y.frob(F[2]); - this.y.pmul(F[1]); - this.y.times_i(); - - this.z.frob(F[2]); - } - }, - - /* this+=this */ - dbl: function () { - var iy, t0, t1, t2, x3, y3; - - iy = new ctx.FP4(this.y); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - iy.times_i(); - iy.norm(); - } - - t0 = new ctx.FP4(this.y); - t0.sqr(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t0.times_i(); - } - t1 = new ctx.FP4(iy); - t1.mul(this.z); - t2 = new ctx.FP4(this.z); - t2.sqr(); - - this.z.copy(t0); - this.z.add(t0); - this.z.norm(); - this.z.add(this.z); - this.z.add(this.z); - this.z.norm(); - - t2.imul(3 * ctx.ROM_CURVE.CURVE_B_I); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - t2.times_i(); - } - - x3 = new ctx.FP4(t2); - x3.mul(this.z); - - y3 = new ctx.FP4(t0); - - y3.add(t2); - y3.norm(); - this.z.mul(t1); - t1.copy(t2); - t1.add(t2); - t2.add(t1); - t2.norm(); - t0.sub(t2); - t0.norm(); //y^2-9bz^2 - y3.mul(t0); - y3.add(x3); //(y^2+3z*2)(y^2-9z^2)+3b.z^2.8y^2 - t1.copy(this.x); - t1.mul(iy); // - this.x.copy(t0); - this.x.norm(); - this.x.mul(t1); - this.x.add(this.x); //(y^2-9bz^2)xy2 - - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - - return 1; - }, - - /* this+=Q */ - add: function (Q) { - var b, t0, t1, t2, t3, t4, x3, y3, z3; - - b = 3 * ctx.ROM_CURVE.CURVE_B_I; - t0 = new ctx.FP4(this.x); - t0.mul(Q.x); // x.Q.x - t1 = new ctx.FP4(this.y); - t1.mul(Q.y); // y.Q.y - - t2 = new ctx.FP4(this.z); - t2.mul(Q.z); - t3 = new ctx.FP4(this.x); - t3.add(this.y); - t3.norm(); //t3=X1+Y1 - t4 = new ctx.FP4(Q.x); - t4.add(Q.y); - t4.norm(); //t4=X2+Y2 - t3.mul(t4); //t3=(X1+Y1)(X2+Y2) - t4.copy(t0); - t4.add(t1); //t4=X1.X2+Y1.Y2 - - t3.sub(t4); - t3.norm(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t3.times_i(); //t3=(X1+Y1)(X2+Y2)-(X1.X2+Y1.Y2) = X1.Y2+X2.Y1 - } - - t4.copy(this.y); - t4.add(this.z); - t4.norm(); //t4=Y1+Z1 - x3 = new ctx.FP4(Q.y); - x3.add(Q.z); - x3.norm(); //x3=Y2+Z2 - - t4.mul(x3); //t4=(Y1+Z1)(Y2+Z2) - x3.copy(t1); // - x3.add(t2); //X3=Y1.Y2+Z1.Z2 - - t4.sub(x3); - t4.norm(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t4.times_i(); //t4=(Y1+Z1)(Y2+Z2) - (Y1.Y2+Z1.Z2) = Y1.Z2+Y2.Z1 - } - - x3.copy(this.x); - x3.add(this.z); - x3.norm(); // x3=X1+Z1 - y3 = new ctx.FP4(Q.x); - y3.add(Q.z); - y3.norm(); // y3=X2+Z2 - x3.mul(y3); // x3=(X1+Z1)(X2+Z2) - y3.copy(t0); - y3.add(t2); // y3=X1.X2+Z1+Z2 - y3.rsub(x3); - y3.norm(); // y3=(X1+Z1)(X2+Z2) - (X1.X2+Z1.Z2) = X1.Z2+X2.Z1 - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t0.times_i(); - t1.times_i(); - } - - x3.copy(t0); - x3.add(t0); - t0.add(x3); - t0.norm(); - t2.imul(b); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - t2.times_i(); - } - - z3 = new ctx.FP4(t1); - z3.add(t2); - z3.norm(); - t1.sub(t2); - t1.norm(); - y3.imul(b); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - y3.times_i(); - } - - x3.copy(y3); - x3.mul(t4); - t2.copy(t3); - t2.mul(t1); - x3.rsub(t2); - y3.mul(t0); - t1.mul(z3); - y3.add(t1); - t0.mul(t3); - z3.mul(t4); - z3.add(t0); - - this.x.copy(x3); - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - this.z.copy(z3); - this.z.norm(); - - return 0; - }, - - /* this-=Q */ - sub: function (Q) { - var D; - var NQ = new ECP4(); - NQ.copy(Q); - NQ.neg(); - D = this.add(NQ); - return D; - }, - - /* P*=e */ - mul: function (e) { - /* fixed size windows */ - var mt = new ctx.BIG(), - t = new ctx.BIG(), - C = new ECP4(), - P = new ECP4(), - Q = new ECP4(), - W = [], - w = [], - i, - nb, - s, - ns; - - if (this.is_infinity()) { - return new ECP4(); - } - - // precompute table - Q.copy(this); - Q.dbl(); - W[0] = new ECP4(); - W[0].copy(this); - - for (i = 1; i < 8; i++) { - W[i] = new ECP4(); - W[i].copy(W[i - 1]); - W[i].add(Q); - } - - // make exponent odd - add 2P if even, P if odd - t.copy(e); - s = t.parity(); - t.inc(1); - t.norm(); - ns = t.parity(); - mt.copy(t); - mt.inc(1); - mt.norm(); - t.cmove(mt, s); - Q.cmove(this, ns); - C.copy(Q); - - nb = 1 + Math.floor((t.nbits() + 3) / 4); - - // convert exponent to signed 4-bit window - for (i = 0; i < nb; i++) { - w[i] = t.lastbits(5) - 16; - t.dec(w[i]); - t.norm(); - t.fshr(4); - } - w[nb] = t.lastbits(5); - - P.copy(W[Math.floor((w[nb] - 1) / 2)]); - for (i = nb - 1; i >= 0; i--) { - Q.select(W, w[i]); - P.dbl(); - P.dbl(); - P.dbl(); - P.dbl(); - P.add(Q); - } - P.sub(C); - P.affine(); - - return P; - }, - - cfp: function () { - var F = ECP4.frob_constants(), - x, - xQ, - x2Q, - x3Q, - x4Q; - - /* Fast Hashing to G2 - Fuentes-Castaneda, Knapp and Rodriguez-Henriquez */ - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - - xQ = this.mul(x); - x2Q = xQ.mul(x); - x3Q = x2Q.mul(x); - x4Q = x3Q.mul(x); - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - xQ.neg(); - x3Q.neg(); - } - - x4Q.sub(x3Q); - x4Q.sub(this); - - x3Q.sub(x2Q); - x3Q.frob(F, 1); - - x2Q.sub(xQ); - x2Q.frob(F, 2); - - xQ.sub(this); - xQ.frob(F, 3); - - this.dbl(); - this.frob(F, 4); - - this.add(x4Q); - this.add(x3Q); - this.add(x2Q); - this.add(xQ); - - this.affine(); - }, - }; - - // set to group generator - ECP4.generator = function () { - var G = new ECP4(), - A = new ctx.BIG(0), - B = new ctx.BIG(0), - XA, - XB, - X, - YA, - YB, - Y; - - A.rcopy(ctx.ROM_CURVE.CURVE_Pxaa); - B.rcopy(ctx.ROM_CURVE.CURVE_Pxab); - XA = new ctx.FP2(A, B); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pxba); - B.rcopy(ctx.ROM_CURVE.CURVE_Pxbb); - - XB = new ctx.FP2(A, B); - X = new ctx.FP4(XA, XB); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pyaa); - B.rcopy(ctx.ROM_CURVE.CURVE_Pyab); - YA = new ctx.FP2(A, B); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pyba); - B.rcopy(ctx.ROM_CURVE.CURVE_Pybb); - - YB = new ctx.FP2(A, B); - Y = new ctx.FP4(YA, YB); - - G.setxy(X, Y); - - return G; - }; - - /* convert from byte array to point */ - ECP4.fromBytes = function (b) { - var t = []; - var alt = false; - var typ = b[0]; - var P = new ECP4(); - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = b[i]; - t[0] &= 0x1f; - var rx = ctx.FP4.fromBytes(t); - if ((b[0] & 0x80) == 0) { - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 4 * ctx.BIG.MODBYTES]; - var ry = ctx.FP4.fromBytes(t); - P.setxy(rx, ry); - } else { - var sgn = (b[0] & 0x20) >> 5; - P.setx(rx, 0); - var cmp = P.y.islarger(); - if ((sgn == 1 && cmp != 1) || (sgn == 0 && cmp == 1)) P.neg(); - } - } else { - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 1]; - var rx = ctx.FP4.fromBytes(t); - if (typ == 0x04) { - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 4 * ctx.BIG.MODBYTES + 1]; - var ry = ctx.FP4.fromBytes(t); - P.setxy(rx, ry); - } else { - P.setx(rx, typ & 1); - } - } - return P; - }; - - /* Calculate RHS of curve equation x^3+B */ - ECP4.RHS = function (x) { - var r, c, b; - - //x.norm(); - r = new ctx.FP4(x); //r.copy(x); - r.sqr(); - - c = new ctx.BIG(0); - c.rcopy(ctx.ROM_CURVE.CURVE_B); - b = new ctx.FP4(c); //b.bseta(c); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b.div_i(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b.times_i(); - } - - r.mul(x); - r.add(b); - - r.reduce(); - return r; - }; - - /* P=u0.Q0+u1*Q1+u2*Q2+u3*Q3... */ - // Bos & Costello https://eprint.iacr.org/2013/458.pdf - // Faz-Hernandez & Longa & Sanchez https://eprint.iacr.org/2013/158.pdf - // Side channel attack secure - ECP4.mul8 = function (Q, u) { - var W = new ECP4(), - P = new ECP4(), - T1 = [], - T2 = [], - mt = new ctx.BIG(), - t = [], - w1 = [], - s1 = [], - w2 = [], - s2 = [], - i, - j, - k, - nb, - bt, - pb1, - pb2; - - for (i = 0; i < 8; i++) { - t[i] = new ctx.BIG(u[i]); - t[i].norm(); - //Q[i].affine(); - } - - T1[0] = new ECP4(); - T1[0].copy(Q[0]); // Q[0] - T1[1] = new ECP4(); - T1[1].copy(T1[0]); - T1[1].add(Q[1]); // Q[0]+Q[1] - T1[2] = new ECP4(); - T1[2].copy(T1[0]); - T1[2].add(Q[2]); // Q[0]+Q[2] - T1[3] = new ECP4(); - T1[3].copy(T1[1]); - T1[3].add(Q[2]); // Q[0]+Q[1]+Q[2] - T1[4] = new ECP4(); - T1[4].copy(T1[0]); - T1[4].add(Q[3]); // Q[0]+Q[3] - T1[5] = new ECP4(); - T1[5].copy(T1[1]); - T1[5].add(Q[3]); // Q[0]+Q[1]+Q[3] - T1[6] = new ECP4(); - T1[6].copy(T1[2]); - T1[6].add(Q[3]); // Q[0]+Q[2]+Q[3] - T1[7] = new ECP4(); - T1[7].copy(T1[3]); - T1[7].add(Q[3]); // Q[0]+Q[1]+Q[2]+Q[3] - - T2[0] = new ECP4(); - T2[0].copy(Q[4]); // Q[0] - T2[1] = new ECP4(); - T2[1].copy(T2[0]); - T2[1].add(Q[5]); // Q[0]+Q[1] - T2[2] = new ECP4(); - T2[2].copy(T2[0]); - T2[2].add(Q[6]); // Q[0]+Q[2] - T2[3] = new ECP4(); - T2[3].copy(T2[1]); - T2[3].add(Q[6]); // Q[0]+Q[1]+Q[2] - T2[4] = new ECP4(); - T2[4].copy(T2[0]); - T2[4].add(Q[7]); // Q[0]+Q[3] - T2[5] = new ECP4(); - T2[5].copy(T2[1]); - T2[5].add(Q[7]); // Q[0]+Q[1]+Q[3] - T2[6] = new ECP4(); - T2[6].copy(T2[2]); - T2[6].add(Q[7]); // Q[0]+Q[2]+Q[3] - T2[7] = new ECP4(); - T2[7].copy(T2[3]); - T2[7].add(Q[7]); // Q[0]+Q[1]+Q[2]+Q[3] - - // Make it odd - pb1 = 1 - t[0].parity(); - t[0].inc(pb1); - t[0].norm(); - - pb2 = 1 - t[4].parity(); - t[4].inc(pb2); - t[4].norm(); - - // Number of bits - mt.zero(); - for (i = 0; i < 8; i++) { - mt.or(t[i]); - } - - nb = 1 + mt.nbits(); - - // Sign pivot - s1[nb - 1] = 1; - s2[nb - 1] = 1; - for (i = 0; i < nb - 1; i++) { - t[0].fshr(1); - s1[i] = 2 * t[0].parity() - 1; - t[4].fshr(1); - s2[i] = 2 * t[4].parity() - 1; - } - - // Recoded exponent - for (i = 0; i < nb; i++) { - w1[i] = 0; - k = 1; - for (j = 1; j < 4; j++) { - bt = s1[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w1[i] += bt * k; - k *= 2; - } - w2[i] = 0; - k = 1; - for (j = 5; j < 8; j++) { - bt = s2[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w2[i] += bt * k; - k *= 2; - } - } - - // Main loop - P.select(T1, 2 * w1[nb - 1] + 1); - W.select(T2, 2 * w2[nb - 1] + 1); - P.add(W); - for (i = nb - 2; i >= 0; i--) { - P.dbl(); - W.select(T1, 2 * w1[i] + s1[i]); - P.add(W); - W.select(T2, 2 * w2[i] + s2[i]); - P.add(W); - } - - // apply correction - W.copy(P); - W.sub(Q[0]); - P.cmove(W, pb1); - - W.copy(P); - W.sub(Q[4]); - P.cmove(W, pb2); - - P.affine(); - return P; - }; - - /* return 1 if b==c, no branching */ - ECP4.teq = function (b, c) { - var x = b ^ c; - x -= 1; // if x=0, x now -1 - return (x >> 31) & 1; - }; - - /* Hunt and Peck a BIG to a curve point - ECP4.hap2point = function(h) - { - var one=new ctx.BIG(1); - var x=new ctx.BIG(h); - var Q,X2,X4; - for (;;) { - X2 = new ctx.FP2(one, x); - X4 = new ctx.FP4(X2); - Q = new ECP4(); - Q.setx(X4,0); - if (!Q.is_infinity()) break; - x.inc(1); - x.norm(); - } - return Q; - }; */ - - /* Constant time Map to Point */ - ECP4.map2point = function (H) { - // Shallue and van de Woestijne method. - var sgn, ne; - var NY = new ctx.FP4(1); - var T = new ctx.FP4(H); - sgn = T.sign(); - - var Z = new ctx.FP(ctx.FP.RIADZG2A); - var X1 = new ctx.FP4(Z); - var A = ECP4.RHS(X1); - var W = new ctx.FP4(A); - - W.sqrt(null); - - var s = new ctx.FP(0); - s.rcopy(ctx.ROM_FIELD.SQRTm3); - Z.mul(s); - - T.sqr(); - var Y = new ctx.FP4(A); - Y.mul(T); - T.copy(NY); - T.add(Y); - T.norm(); - Y.rsub(NY); - Y.norm(); - NY.copy(T); - NY.mul(Y); - - NY.qmul(Z); - NY.inverse(null); - - W.qmul(Z); - if (W.sign() == 1) { - W.neg(); - W.norm(); - } - W.qmul(Z); - W.mul(H); - W.mul(Y); - W.mul(NY); - - var X3 = new ctx.FP4(X1); - X1.neg(); - X1.norm(); - X1.div2(); - var X2 = new ctx.FP4(X1); - X1.sub(W); - X1.norm(); - X2.add(W); - X2.norm(); - A.add(A); - A.add(A); - A.norm(); - T.sqr(); - T.mul(NY); - T.sqr(); - A.mul(T); - X3.add(A); - X3.norm(); - - Y.copy(ECP4.RHS(X2)); - X3.cmove(X2, Y.qr(null)); - Y.copy(ECP4.RHS(X1)); - X3.cmove(X1, Y.qr(null)); - Y.copy(ECP4.RHS(X3)); - Y.sqrt(null); - - ne = Y.sign() ^ sgn; - W.copy(Y); - W.neg(); - W.norm(); - Y.cmove(W, ne); - - var P = new ECP4(); - P.setxy(X3, Y); - return P; - }; - - /* Map octet string to curve point - ECP4.mapit = function(h) - { - var q=new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var dx=ctx.DBIG.fromBytes(h); - var x=dx.mod(q); - - var Q=ECP4.hap2point(x); - Q.cfp(); - return Q; - }; */ - - ECP4.frob_constants = function () { - var fa = new ctx.BIG(0), - fb = new ctx.BIG(0), - F = [], - X, - F0, - F1, - F2; - - fa.rcopy(ctx.ROM_FIELD.Fra); - fb.rcopy(ctx.ROM_FIELD.Frb); - X = new ctx.FP2(fa, fb); - - F0 = new ctx.FP2(X); - F0.sqr(); - F2 = new ctx.FP2(F0); - F2.mul_ip(); - F2.norm(); - F1 = new ctx.FP2(F2); - F1.sqr(); - F2.mul(F1); - F1.copy(X); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - F1.mul_ip(); - F1.inverse(null); - F0.copy(F1); - F0.sqr(); - } - F0.mul_ip(); - F0.norm(); - F1.mul(F0); - - F[0] = new ctx.FP2(F0); - F[1] = new ctx.FP2(F1); - F[2] = new ctx.FP2(F2); - return F; - }; - - return ECP4; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.ECP4 = ECP4; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/ecp8.js b/packages/bls-verify/src/vendor/amcl-js/src/ecp8.js deleted file mode 100644 index 7edfaba54..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/ecp8.js +++ /dev/null @@ -1,1172 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE Weierstrass elliptic curve functions over ctx.FP8 */ - -var ECP8 = function (ctx) { - 'use strict'; - - /* Constructor, set this=O */ - var ECP8 = function () { - this.x = new ctx.FP8(0); - this.y = new ctx.FP8(1); - this.z = new ctx.FP8(0); - }; - - ECP8.prototype = { - /* Test this=O? */ - is_infinity: function () { - return this.x.iszilch() && this.z.iszilch(); - }, - - /* copy this=P */ - copy: function (P) { - this.x.copy(P.x); - this.y.copy(P.y); - this.z.copy(P.z); - }, - - /* set this=O */ - inf: function () { - this.x.zero(); - this.y.one(); - this.z.zero(); - }, - - /* conditional move of Q to P dependant on d */ - cmove: function (Q, d) { - this.x.cmove(Q.x, d); - this.y.cmove(Q.y, d); - this.z.cmove(Q.z, d); - }, - - /* Constant time select from pre-computed table */ - select: function (W, b) { - var MP = new ECP8(), - m = b >> 31, - babs = (b ^ m) - m; - - babs = (babs - 1) / 2; - - this.cmove(W[0], ECP8.teq(babs, 0)); // conditional move - this.cmove(W[1], ECP8.teq(babs, 1)); - this.cmove(W[2], ECP8.teq(babs, 2)); - this.cmove(W[3], ECP8.teq(babs, 3)); - this.cmove(W[4], ECP8.teq(babs, 4)); - this.cmove(W[5], ECP8.teq(babs, 5)); - this.cmove(W[6], ECP8.teq(babs, 6)); - this.cmove(W[7], ECP8.teq(babs, 7)); - - MP.copy(this); - MP.neg(); - this.cmove(MP, m & 1); - }, - - /* Test P == Q */ - equals: function (Q) { - var a, b; - - a = new ctx.FP8(this.x); - b = new ctx.FP8(Q.x); - - a.mul(Q.z); - b.mul(this.z); - if (!a.equals(b)) { - return false; - } - - a.copy(this.y); - a.mul(Q.z); - b.copy(Q.y); - b.mul(this.z); - if (!a.equals(b)) { - return false; - } - - return true; - }, - - /* set this=-this */ - neg: function () { - this.y.norm(); - this.y.neg(); - this.y.norm(); - return; - }, - - /* convert this to affine, from (x,y,z) to (x,y) */ - affine: function () { - var one; - - if (this.is_infinity()) { - return; - } - - one = new ctx.FP8(1); - - if (this.z.equals(one)) { - this.x.reduce(); - this.y.reduce(); - return; - } - - this.z.inverse(null); - this.x.mul(this.z); - this.x.reduce(); - this.y.mul(this.z); - this.y.reduce(); - this.z.copy(one); - }, - - /* extract affine x as ctx.FP8 */ - getX: function () { - var W = new ECP8(); - W.copy(this); - W.affine(); - return W.x; - }, - - /* extract affine y as ctx.FP8 */ - getY: function () { - var W = new ECP8(); - W.copy(this); - W.affine(); - return W.y; - }, - - /* extract projective x */ - getx: function () { - return this.x; - }, - - /* extract projective y */ - gety: function () { - return this.y; - }, - - /* extract projective z */ - getz: function () { - return this.z; - }, - - /* convert this to byte array */ - toBytes: function (b, compress) { - var t = []; - var alt = false; - var W = new ECP8(); - W.copy(this); - W.affine(); - W.x.toBytes(t); - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) b[i] = t[i]; - if (!compress) { - W.y.toBytes(t); - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) b[i + 8 * ctx.BIG.MODBYTES] = t[i]; - } else { - b[0] |= 0x80; - if (W.y.islarger() == 1) b[0] |= 0x20; - } - } else { - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) b[i + 1] = t[i]; - if (!compress) { - b[0] = 0x04; - W.y.toBytes(t); - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) b[i + 8 * ctx.BIG.MODBYTES + 1] = t[i]; - } else { - b[0] = 0x02; - if (W.y.sign() == 1) b[0] = 0x03; - } - } - }, - - /* convert this to hex string */ - toString: function () { - var W = new ECP8(); - W.copy(this); - if (W.is_infinity()) { - return 'infinity'; - } - W.affine(); - return '(' + W.x.toString() + ',' + W.y.toString() + ')'; - }, - - /* set this=(x,y) */ - setxy: function (ix, iy) { - var rhs, y2; - - this.x.copy(ix); - this.y.copy(iy); - this.z.one(); - this.x.norm(); - - rhs = ECP8.RHS(this.x); - - y2 = new ctx.FP8(this.y); //y2.copy(this.y); - y2.sqr(); - - if (!y2.equals(rhs)) { - this.inf(); - } - }, - - /* set this=(x,.) */ - setx: function (ix, s) { - var rhs, h; - - this.x.copy(ix); - this.z.one(); - this.x.norm(); - rhs = ECP8.RHS(this.x); - - //alert("0. rhs= "+rhs.toString()); - if (rhs.qr(h) == 1) { - rhs.sqrt(h); - //alert("1. rhs= "+rhs.toString()); - if (rhs.sign() != s) rhs.neg(); - rhs.reduce(); - this.y.copy(rhs); - } else { - this.inf(); - } - }, - - /* set this*=q, where q is Modulus, using Frobenius */ - frob: function (F, n) { - for (var i = 0; i < n; i++) { - this.x.frob(F[2]); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - this.x.qmul(F[0]); - this.x.times_i2(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - this.x.qmul(F[0]); - this.x.times_i2(); - } - - this.y.frob(F[2]); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - this.y.qmul(F[1]); - this.y.times_i2(); - this.y.times_i(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - this.y.qmul(F[1]); - this.y.times_i(); - } - - this.z.frob(F[2]); - } - }, - - /* this+=this */ - dbl: function () { - var iy, t0, t1, t2, x3, y3; - - iy = new ctx.FP8(this.y); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - iy.times_i(); - iy.norm(); - } - - t0 = new ctx.FP8(this.y); - t0.sqr(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t0.times_i(); - } - t1 = new ctx.FP8(iy); - t1.mul(this.z); - t2 = new ctx.FP8(this.z); - t2.sqr(); - - this.z.copy(t0); - this.z.add(t0); - this.z.norm(); - this.z.add(this.z); - this.z.add(this.z); - this.z.norm(); - - t2.imul(3 * ctx.ROM_CURVE.CURVE_B_I); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - t2.times_i(); - } - - x3 = new ctx.FP8(t2); - x3.mul(this.z); - - y3 = new ctx.FP8(t0); - - y3.add(t2); - y3.norm(); - this.z.mul(t1); - t1.copy(t2); - t1.add(t2); - t2.add(t1); - t2.norm(); - t0.sub(t2); - t0.norm(); //y^2-9bz^2 - y3.mul(t0); - y3.add(x3); //(y^2+3z*2)(y^2-9z^2)+3b.z^2.8y^2 - t1.copy(this.x); - t1.mul(iy); // - this.x.copy(t0); - this.x.norm(); - this.x.mul(t1); - this.x.add(this.x); //(y^2-9bz^2)xy2 - - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - - return 1; - }, - - /* this+=Q */ - add: function (Q) { - var b, t0, t1, t2, t3, t4, x3, y3, z3; - - b = 3 * ctx.ROM_CURVE.CURVE_B_I; - t0 = new ctx.FP8(this.x); - t0.mul(Q.x); // x.Q.x - t1 = new ctx.FP8(this.y); - t1.mul(Q.y); // y.Q.y - - t2 = new ctx.FP8(this.z); - t2.mul(Q.z); - t3 = new ctx.FP8(this.x); - t3.add(this.y); - t3.norm(); //t3=X1+Y1 - t4 = new ctx.FP8(Q.x); - t4.add(Q.y); - t4.norm(); //t4=X2+Y2 - t3.mul(t4); //t3=(X1+Y1)(X2+Y2) - t4.copy(t0); - t4.add(t1); //t4=X1.X2+Y1.Y2 - - t3.sub(t4); - t3.norm(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t3.times_i(); //t3=(X1+Y1)(X2+Y2)-(X1.X2+Y1.Y2) = X1.Y2+X2.Y1 - } - - t4.copy(this.y); - t4.add(this.z); - t4.norm(); //t4=Y1+Z1 - x3 = new ctx.FP8(Q.y); - x3.add(Q.z); - x3.norm(); //x3=Y2+Z2 - - t4.mul(x3); //t4=(Y1+Z1)(Y2+Z2) - x3.copy(t1); // - x3.add(t2); //X3=Y1.Y2+Z1.Z2 - - t4.sub(x3); - t4.norm(); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t4.times_i(); //t4=(Y1+Z1)(Y2+Z2) - (Y1.Y2+Z1.Z2) = Y1.Z2+Y2.Z1 - } - - x3.copy(this.x); - x3.add(this.z); - x3.norm(); // x3=X1+Z1 - y3 = new ctx.FP8(Q.x); - y3.add(Q.z); - y3.norm(); // y3=X2+Z2 - x3.mul(y3); // x3=(X1+Z1)(X2+Z2) - y3.copy(t0); - y3.add(t2); // y3=X1.X2+Z1+Z2 - y3.rsub(x3); - y3.norm(); // y3=(X1+Z1)(X2+Z2) - (X1.X2+Z1.Z2) = X1.Z2+X2.Z1 - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - t0.times_i(); - t1.times_i(); - } - - x3.copy(t0); - x3.add(t0); - t0.add(x3); - t0.norm(); - t2.imul(b); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - t2.times_i(); - } - - z3 = new ctx.FP8(t1); - z3.add(t2); - z3.norm(); - t1.sub(t2); - t1.norm(); - y3.imul(b); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - y3.times_i(); - } - - x3.copy(y3); - x3.mul(t4); - t2.copy(t3); - t2.mul(t1); - x3.rsub(t2); - y3.mul(t0); - t1.mul(z3); - y3.add(t1); - t0.mul(t3); - z3.mul(t4); - z3.add(t0); - - this.x.copy(x3); - this.x.norm(); - this.y.copy(y3); - this.y.norm(); - this.z.copy(z3); - this.z.norm(); - - return 0; - }, - - /* this-=Q */ - sub: function (Q) { - var D; - var NQ = new ECP8(); - NQ.copy(Q); - NQ.neg(); - D = this.add(NQ); - return D; - }, - - /* P*=e */ - mul: function (e) { - /* fixed size windows */ - var mt = new ctx.BIG(), - t = new ctx.BIG(), - C = new ECP8(), - P = new ECP8(), - Q = new ECP8(), - W = [], - w = [], - i, - nb, - s, - ns; - - if (this.is_infinity()) { - return new ECP8(); - } - - // precompute table - Q.copy(this); - Q.dbl(); - W[0] = new ECP8(); - W[0].copy(this); - - for (i = 1; i < 8; i++) { - W[i] = new ECP8(); - W[i].copy(W[i - 1]); - W[i].add(Q); - } - - // make exponent odd - add 2P if even, P if odd - t.copy(e); - s = t.parity(); - t.inc(1); - t.norm(); - ns = t.parity(); - mt.copy(t); - mt.inc(1); - mt.norm(); - t.cmove(mt, s); - Q.cmove(this, ns); - C.copy(Q); - - nb = 1 + Math.floor((t.nbits() + 3) / 4); - - // convert exponent to signed 4-bit window - for (i = 0; i < nb; i++) { - w[i] = t.lastbits(5) - 16; - t.dec(w[i]); - t.norm(); - t.fshr(4); - } - w[nb] = t.lastbits(5); - - P.copy(W[Math.floor((w[nb] - 1) / 2)]); - for (i = nb - 1; i >= 0; i--) { - Q.select(W, w[i]); - P.dbl(); - P.dbl(); - P.dbl(); - P.dbl(); - P.add(Q); - } - P.sub(C); - P.affine(); - - return P; - }, - /* clear cofactor */ - cfp: function (h) { - var F = ECP8.frob_constants(), - x, - xQ, - x2Q, - x3Q, - x4Q, - x5Q, - x6Q, - x7Q, - x8Q; - - /* Fast Hashing to G2 - Fuentes-Castaneda, Knapp and Rodriguez-Henriquez */ - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - - xQ = this.mul(x); - x2Q = xQ.mul(x); - x3Q = x2Q.mul(x); - x4Q = x3Q.mul(x); - x5Q = x4Q.mul(x); - x6Q = x5Q.mul(x); - x7Q = x6Q.mul(x); - x8Q = x7Q.mul(x); - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - xQ.neg(); - x3Q.neg(); - x5Q.neg(); - x7Q.neg(); - } - - x8Q.sub(x7Q); - x8Q.sub(this); - - x7Q.sub(x6Q); - x7Q.frob(F, 1); - - x6Q.sub(x5Q); - x6Q.frob(F, 2); - - x5Q.sub(x4Q); - x5Q.frob(F, 3); - - x4Q.sub(x3Q); - x4Q.frob(F, 4); - - x3Q.sub(x2Q); - x3Q.frob(F, 5); - - x2Q.sub(xQ); - x2Q.frob(F, 6); - - xQ.sub(this); - xQ.frob(F, 7); - - this.dbl(); - this.frob(F, 8); - - this.add(x8Q); - this.add(x7Q); - this.add(x6Q); - this.add(x5Q); - - this.add(x4Q); - this.add(x3Q); - this.add(x2Q); - this.add(xQ); - - this.affine(); - }, - }; - - // set to group generator - ECP8.generator = function () { - var G = new ECP8(), - A = new ctx.BIG(0), - B = new ctx.BIG(0), - XAA, - XAB, - XA, - XBA, - XBB, - XB, - X, - YAA, - YAB, - YA, - YBA, - YBB, - YB, - Y; - - A.rcopy(ctx.ROM_CURVE.CURVE_Pxaaa); - B.rcopy(ctx.ROM_CURVE.CURVE_Pxaab); - XAA = new ctx.FP2(A, B); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pxaba); - B.rcopy(ctx.ROM_CURVE.CURVE_Pxabb); - - XAB = new ctx.FP2(A, B); - XA = new ctx.FP4(XAA, XAB); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pxbaa); - B.rcopy(ctx.ROM_CURVE.CURVE_Pxbab); - XBA = new ctx.FP2(A, B); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pxbba); - B.rcopy(ctx.ROM_CURVE.CURVE_Pxbbb); - - XBB = new ctx.FP2(A, B); - XB = new ctx.FP4(XBA, XBB); - - X = new ctx.FP8(XA, XB); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pyaaa); - B.rcopy(ctx.ROM_CURVE.CURVE_Pyaab); - YAA = new ctx.FP2(A, B); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pyaba); - B.rcopy(ctx.ROM_CURVE.CURVE_Pyabb); - - YAB = new ctx.FP2(A, B); - YA = new ctx.FP4(YAA, YAB); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pybaa); - B.rcopy(ctx.ROM_CURVE.CURVE_Pybab); - YBA = new ctx.FP2(A, B); - - A.rcopy(ctx.ROM_CURVE.CURVE_Pybba); - B.rcopy(ctx.ROM_CURVE.CURVE_Pybbb); - - YBB = new ctx.FP2(A, B); - YB = new ctx.FP4(YBA, YBB); - - Y = new ctx.FP8(YA, YB); - - G.setxy(X, Y); - - return G; - }; - - /* convert from byte array to point */ - ECP8.fromBytes = function (b) { - var t = []; - var alt = false; - var typ = b[0]; - var P = new ECP8(); - - if ((ctx.FP.MODBITS - 1) % 8 <= 4 && ECP.ALLOW_ALT_COMPRESS) alt = true; - - if (alt) { - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = b[i]; - t[0] &= 0x1f; - var rx = ctx.FP8.fromBytes(t); - if ((b[0] & 0x80) == 0) { - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 8 * ctx.BIG.MODBYTES]; - var ry = ctx.FP8.fromBytes(t); - P.setxy(rx, ry); - } else { - var sgn = (b[0] & 0x20) >> 5; - P.setx(rx, 0); - var cmp = P.y.islarger(); - if ((sgn == 1 && cmp != 1) || (sgn == 0 && cmp == 1)) P.neg(); - } - } else { - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 1]; - var rx = ctx.FP8.fromBytes(t); - if (typ == 0x04) { - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = b[i + 8 * ctx.BIG.MODBYTES + 1]; - var ry = ctx.FP8.fromBytes(t); - P.setxy(rx, ry); - } else { - P.setx(rx, typ & 1); - } - } - return P; - }; - - /* Calculate RHS of curve equation x^3+B */ - ECP8.RHS = function (x) { - var r, c, b; - - //x.norm(); - r = new ctx.FP8(x); //r.copy(x); - r.sqr(); - - c = new ctx.BIG(0); - c.rcopy(ctx.ROM_CURVE.CURVE_B); - b = new ctx.FP8(c); //b.bseta(c); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b.div_i(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b.times_i(); - } - - r.mul(x); - r.add(b); - - r.reduce(); - return r; - }; - - /* P=u0.Q0+u1*Q1+u2*Q2+u3*Q3... */ - // Bos & Costello https://eprint.iacr.org/2013/458.pdf - // Faz-Hernandez & Longa & Sanchez https://eprint.iacr.org/2013/158.pdf - // Side channel attack secure - ECP8.mul16 = function (Q, u) { - var W = new ECP8(), - P = new ECP8(), - T1 = [], - T2 = [], - T3 = [], - T4 = [], - mt = new ctx.BIG(), - t = [], - w1 = [], - s1 = [], - w2 = [], - s2 = [], - w3 = [], - s3 = [], - w4 = [], - s4 = [], - i, - j, - k, - nb, - bt, - pb1, - pb2, - pb3, - pb4; - - for (i = 0; i < 16; i++) { - t[i] = new ctx.BIG(u[i]); - t[i].norm(); - //Q[i].affine(); - } - - T1[0] = new ECP8(); - T1[0].copy(Q[0]); // Q[0] - T1[1] = new ECP8(); - T1[1].copy(T1[0]); - T1[1].add(Q[1]); // Q[0]+Q[1] - T1[2] = new ECP8(); - T1[2].copy(T1[0]); - T1[2].add(Q[2]); // Q[0]+Q[2] - T1[3] = new ECP8(); - T1[3].copy(T1[1]); - T1[3].add(Q[2]); // Q[0]+Q[1]+Q[2] - T1[4] = new ECP8(); - T1[4].copy(T1[0]); - T1[4].add(Q[3]); // Q[0]+Q[3] - T1[5] = new ECP8(); - T1[5].copy(T1[1]); - T1[5].add(Q[3]); // Q[0]+Q[1]+Q[3] - T1[6] = new ECP8(); - T1[6].copy(T1[2]); - T1[6].add(Q[3]); // Q[0]+Q[2]+Q[3] - T1[7] = new ECP8(); - T1[7].copy(T1[3]); - T1[7].add(Q[3]); // Q[0]+Q[1]+Q[2]+Q[3] - - T2[0] = new ECP8(); - T2[0].copy(Q[4]); // Q[0] - T2[1] = new ECP8(); - T2[1].copy(T2[0]); - T2[1].add(Q[5]); // Q[0]+Q[1] - T2[2] = new ECP8(); - T2[2].copy(T2[0]); - T2[2].add(Q[6]); // Q[0]+Q[2] - T2[3] = new ECP8(); - T2[3].copy(T2[1]); - T2[3].add(Q[6]); // Q[0]+Q[1]+Q[2] - T2[4] = new ECP8(); - T2[4].copy(T2[0]); - T2[4].add(Q[7]); // Q[0]+Q[3] - T2[5] = new ECP8(); - T2[5].copy(T2[1]); - T2[5].add(Q[7]); // Q[0]+Q[1]+Q[3] - T2[6] = new ECP8(); - T2[6].copy(T2[2]); - T2[6].add(Q[7]); // Q[0]+Q[2]+Q[3] - T2[7] = new ECP8(); - T2[7].copy(T2[3]); - T2[7].add(Q[7]); // Q[0]+Q[1]+Q[2]+Q[3] - - T3[0] = new ECP8(); - T3[0].copy(Q[8]); // Q[0] - T3[1] = new ECP8(); - T3[1].copy(T3[0]); - T3[1].add(Q[9]); // Q[0]+Q[1] - T3[2] = new ECP8(); - T3[2].copy(T3[0]); - T3[2].add(Q[10]); // Q[0]+Q[2] - T3[3] = new ECP8(); - T3[3].copy(T3[1]); - T3[3].add(Q[10]); // Q[0]+Q[1]+Q[2] - T3[4] = new ECP8(); - T3[4].copy(T3[0]); - T3[4].add(Q[11]); // Q[0]+Q[3] - T3[5] = new ECP8(); - T3[5].copy(T3[1]); - T3[5].add(Q[11]); // Q[0]+Q[1]+Q[3] - T3[6] = new ECP8(); - T3[6].copy(T3[2]); - T3[6].add(Q[11]); // Q[0]+Q[2]+Q[3] - T3[7] = new ECP8(); - T3[7].copy(T3[3]); - T3[7].add(Q[11]); // Q[0]+Q[1]+Q[2]+Q[3] - - T4[0] = new ECP8(); - T4[0].copy(Q[12]); // Q[0] - T4[1] = new ECP8(); - T4[1].copy(T4[0]); - T4[1].add(Q[13]); // Q[0]+Q[1] - T4[2] = new ECP8(); - T4[2].copy(T4[0]); - T4[2].add(Q[14]); // Q[0]+Q[2] - T4[3] = new ECP8(); - T4[3].copy(T4[1]); - T4[3].add(Q[14]); // Q[0]+Q[1]+Q[2] - T4[4] = new ECP8(); - T4[4].copy(T4[0]); - T4[4].add(Q[15]); // Q[0]+Q[3] - T4[5] = new ECP8(); - T4[5].copy(T4[1]); - T4[5].add(Q[15]); // Q[0]+Q[1]+Q[3] - T4[6] = new ECP8(); - T4[6].copy(T4[2]); - T4[6].add(Q[15]); // Q[0]+Q[2]+Q[3] - T4[7] = new ECP8(); - T4[7].copy(T4[3]); - T4[7].add(Q[15]); // Q[0]+Q[1]+Q[2]+Q[3] - - // Make it odd - pb1 = 1 - t[0].parity(); - t[0].inc(pb1); - t[0].norm(); - - pb2 = 1 - t[4].parity(); - t[4].inc(pb2); - t[4].norm(); - - pb3 = 1 - t[8].parity(); - t[8].inc(pb3); - t[8].norm(); - - pb4 = 1 - t[12].parity(); - t[12].inc(pb4); - t[12].norm(); - - // Number of bits - mt.zero(); - for (i = 0; i < 16; i++) { - mt.or(t[i]); - } - - nb = 1 + mt.nbits(); - - // Sign pivot - s1[nb - 1] = 1; - s2[nb - 1] = 1; - s3[nb - 1] = 1; - s4[nb - 1] = 1; - for (i = 0; i < nb - 1; i++) { - t[0].fshr(1); - s1[i] = 2 * t[0].parity() - 1; - t[4].fshr(1); - s2[i] = 2 * t[4].parity() - 1; - - t[8].fshr(1); - s3[i] = 2 * t[8].parity() - 1; - t[12].fshr(1); - s4[i] = 2 * t[12].parity() - 1; - } - - // Recoded exponent - for (i = 0; i < nb; i++) { - w1[i] = 0; - k = 1; - for (j = 1; j < 4; j++) { - bt = s1[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w1[i] += bt * k; - k *= 2; - } - w2[i] = 0; - k = 1; - for (j = 5; j < 8; j++) { - bt = s2[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w2[i] += bt * k; - k *= 2; - } - - w3[i] = 0; - k = 1; - for (j = 9; j < 12; j++) { - bt = s3[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w3[i] += bt * k; - k *= 2; - } - w4[i] = 0; - k = 1; - for (j = 13; j < 16; j++) { - bt = s4[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w4[i] += bt * k; - k *= 2; - } - } - - // Main loop - P.select(T1, 2 * w1[nb - 1] + 1); - W.select(T2, 2 * w2[nb - 1] + 1); - P.add(W); - W.select(T3, 2 * w3[nb - 1] + 1); - P.add(W); - W.select(T4, 2 * w4[nb - 1] + 1); - P.add(W); - for (i = nb - 2; i >= 0; i--) { - P.dbl(); - W.select(T1, 2 * w1[i] + s1[i]); - P.add(W); - W.select(T2, 2 * w2[i] + s2[i]); - P.add(W); - W.select(T3, 2 * w3[i] + s3[i]); - P.add(W); - W.select(T4, 2 * w4[i] + s4[i]); - P.add(W); - } - - // apply correction - W.copy(P); - W.sub(Q[0]); - P.cmove(W, pb1); - - W.copy(P); - W.sub(Q[4]); - P.cmove(W, pb2); - - W.copy(P); - W.sub(Q[8]); - P.cmove(W, pb3); - - W.copy(P); - W.sub(Q[12]); - P.cmove(W, pb4); - - P.affine(); - return P; - }; - - /* return 1 if b==c, no branching */ - ECP8.teq = function (b, c) { - var x = b ^ c; - x -= 1; // if x=0, x now -1 - return (x >> 31) & 1; - }; - - /* Hunt and Peck a BIG to a curve point - ECP8.hap2point = function(h) - { - var one=new ctx.BIG(1); - var x=new ctx.BIG(h); - var Q,X2,X4,X4; - for (;;) { - X2 = new ctx.FP2(one, x); - X4 = new ctx.FP4(X2); - X8 = new ctx.FP8(X4); - Q = new ECP8(); - Q.setx(X8,0); - if (!Q.is_infinity()) break; - x.inc(1); - x.norm(); - } - return Q; - }; */ - - /* Constant time Map to Point */ - ECP8.map2point = function (H) { - // Shallue and van de Woestijne method. - var sgn, ne; - var NY = new ctx.FP8(1); - var T = new ctx.FP8(H); - sgn = T.sign(); - - var Z = new ctx.FP(ctx.FP.RIADZG2A); - var X1 = new ctx.FP8(Z); - var A = ECP8.RHS(X1); - var W = new ctx.FP8(A); - - W.sqrt(null); - - var s = new ctx.FP(0); - s.rcopy(ctx.ROM_FIELD.SQRTm3); - Z.mul(s); - - T.sqr(); - var Y = new ctx.FP8(A); - Y.mul(T); - T.copy(NY); - T.add(Y); - T.norm(); - Y.rsub(NY); - Y.norm(); - NY.copy(T); - NY.mul(Y); - - NY.tmul(Z); - NY.inverse(null); - - W.tmul(Z); - if (W.sign() == 1) { - W.neg(); - W.norm(); - } - W.tmul(Z); - W.mul(H); - W.mul(Y); - W.mul(NY); - - var X3 = new ctx.FP8(X1); - X1.neg(); - X1.norm(); - X1.div2(); - var X2 = new ctx.FP8(X1); - X1.sub(W); - X1.norm(); - X2.add(W); - X2.norm(); - A.add(A); - A.add(A); - A.norm(); - T.sqr(); - T.mul(NY); - T.sqr(); - A.mul(T); - X3.add(A); - X3.norm(); - - Y.copy(ECP8.RHS(X2)); - X3.cmove(X2, Y.qr(null)); - Y.copy(ECP8.RHS(X1)); - X3.cmove(X1, Y.qr(null)); - Y.copy(ECP8.RHS(X3)); - Y.sqrt(null); - - ne = Y.sign() ^ sgn; - W.copy(Y); - W.neg(); - W.norm(); - Y.cmove(W, ne); - - var P = new ECP8(); - P.setxy(X3, Y); - return P; - }; - - /* Map octet string to curve point - ECP8.mapit = function(h) - { - var q=new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var dx=ctx.DBIG.fromBytes(h); - var x=dx.mod(q); - - var Q=ECP8.hap2point(x); - Q.cfp(); - return Q; - }; */ - - ECP8.frob_constants = function () { - var fa = new ctx.BIG(0), - fb = new ctx.BIG(0), - F = [], - X, - F0, - F1, - F2; - - fa.rcopy(ctx.ROM_FIELD.Fra); - fb.rcopy(ctx.ROM_FIELD.Frb); - X = new ctx.FP2(fa, fb); - - F0 = new ctx.FP2(X); - F0.sqr(); - F2 = new ctx.FP2(F0); - F2.mul_ip(); - F2.norm(); - F1 = new ctx.FP2(F2); - F1.sqr(); - F2.mul(F1); - - F2.mul_ip(); - F2.norm(); - - F1.copy(X); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - F1.mul_ip(); - F1.norm(); - F1.inverse(null); - F0.copy(F1); - F0.sqr(); - - F1.mul(F0); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - F0.copy(F1); - F0.sqr(); - F1.mul(F0); - F0.mul_ip(); - F0.norm(); - F1.mul_ip(); - F1.norm(); - F1.mul_ip(); - F1.norm(); - } - /* - } - F0.mul_ip(); F0.norm(); - F1.mul(F0); */ - - F[0] = new ctx.FP2(F0); - F[1] = new ctx.FP2(F1); - F[2] = new ctx.FP2(F2); - return F; - }; - - return ECP8; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.ECP8 = ECP8; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/ff.js b/packages/bls-verify/src/vendor/amcl-js/src/ff.js deleted file mode 100644 index 772c36c7e..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/ff.js +++ /dev/null @@ -1,1024 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE FF number class */ - -var FF = function (ctx) { - 'use strict'; - - /* General purpose Constructor */ - var FF = function (n) { - this.v = new Array(n); - this.length = n; - for (var i = 0; i < n; i++) { - this.v[i] = new ctx.BIG(0); - } - }; - - FF.FFLEN = ctx.config['@ML']; - FF.P_MBITS = ctx.BIG.MODBYTES * 8; - FF.P_OMASK = -1 << FF.P_MBITS % ctx.BIG.BASEBITS; - FF.P_FEXCESS = 1 << (ctx.BIG.BASEBITS * ctx.BIG.NLEN - FF.P_MBITS - 1); - FF.P_TBITS = FF.P_MBITS % ctx.BIG.BASEBITS; - FF.FF_BITS = ctx.BIG.BIGBITS * FF.FFLEN; - FF.HFLEN = FF.FFLEN / 2; /* Useful for half-size RSA private key operations */ - - FF.prototype = { - /* set to zero */ - - P_EXCESS: function () { - return ((this.v[this.length - 1].get(ctx.BIG.NLEN - 1) & FF.P_OMASK) >> FF.P_TBITS) + 1; - }, - - zero: function () { - for (var i = 0; i < this.length; i++) { - this.v[i].zero(); - } - - return this; - }, - - getlen: function () { - return this.length; - }, - - /* set to integer */ - set: function (m) { - this.zero(); - this.v[0].set(0, m & ctx.BIG.BMASK); - this.v[0].set(1, m >> ctx.BIG.BASEBITS); - }, - /* copy from FF b */ - copy: function (b) { - for (var i = 0; i < this.length; i++) { - this.v[i].copy(b.v[i]); - } - }, - /* copy from FF b */ - rcopy: function (b) { - for (var i = 0; i < this.length; i++) { - this.v[i].rcopy(b[i]); - } - }, - /* x=y<>n */ - sducopy: function (b) { - for (var i = 0; i < this.length; i++) { - this.v[i].copy(b.v[this.length + i]); - } - }, - one: function () { - this.v[0].one(); - for (var i = 1; i < this.length; i++) { - this.v[i].zero(); - } - }, - /* test equals 0 */ - iszilch: function () { - for (var i = 0; i < this.length; i++) { - if (!this.v[i].iszilch()) { - return false; - } - } - - return true; - }, - /* shift right by BIGBITS-bit words */ - shrw: function (n) { - for (var i = 0; i < n; i++) { - this.v[i].copy(this.v[i + n]); - this.v[i + n].zero(); - } - }, - - /* shift left by BIGBITS-bit words */ - shlw: function (n) { - for (var i = 0; i < n; i++) { - this.v[n + i].copy(this.v[i]); - this.v[i].zero(); - } - }, - /* extract last bit */ - parity: function () { - return this.v[0].parity(); - }, - - lastbits: function (m) { - return this.v[0].lastbits(m); - }, - - /* recursive add */ - radd: function (vp, x, xp, y, yp, n) { - for (var i = 0; i < n; i++) { - this.v[vp + i].copy(x.v[xp + i]); - this.v[vp + i].add(y.v[yp + i]); - } - }, - - /* recursive inc */ - rinc: function (vp, y, yp, n) { - for (var i = 0; i < n; i++) { - this.v[vp + i].add(y.v[yp + i]); - } - }, - - /* recursive sub */ - rsub: function (vp, x, xp, y, yp, n) { - for (var i = 0; i < n; i++) { - this.v[vp + i].copy(x.v[xp + i]); - this.v[vp + i].sub(y.v[yp + i]); - } - }, - - /* recursive dec */ - rdec: function (vp, y, yp, n) { - for (var i = 0; i < n; i++) { - this.v[vp + i].sub(y.v[yp + i]); - } - }, - - /* simple add */ - add: function (b) { - for (var i = 0; i < this.length; i++) { - this.v[i].add(b.v[i]); - } - }, - - /* simple sub */ - sub: function (b) { - for (var i = 0; i < this.length; i++) { - this.v[i].sub(b.v[i]); - } - }, - - /* reverse sub */ - revsub: function (b) { - for (var i = 0; i < this.length; i++) { - this.v[i].rsub(b.v[i]); - } - }, - - /* increment/decrement by a small integer */ - inc: function (m) { - this.v[0].inc(m); - this.norm(); - }, - - dec: function (m) { - this.v[0].dec(m); - this.norm(); - }, - - /* normalise - but hold any overflow in top part unless n<0 */ - rnorm: function (vp, n) { - var trunc = false, - i, - carry; - - if (n < 0) { - /* -v n signals to do truncation */ - n = -n; - trunc = true; - } - - for (i = 0; i < n - 1; i++) { - carry = this.v[vp + i].norm(); - this.v[vp + i].xortop(carry << FF.P_TBITS); - this.v[vp + i + 1].inc(carry); - } - carry = this.v[vp + n - 1].norm(); - - if (trunc) { - this.v[vp + n - 1].xortop(carry << FF.P_TBITS); - } - - return this; - }, - - norm: function () { - this.rnorm(0, this.length); - }, - - /* shift left by one bit */ - shl: function () { - var delay_carry = 0, - i, - carry; - - for (i = 0; i < this.length - 1; i++) { - carry = this.v[i].fshl(1); - this.v[i].inc(delay_carry); - this.v[i].xortop(carry << FF.P_TBITS); - delay_carry = carry; - } - - this.v[this.length - 1].fshl(1); - this.v[this.length - 1].inc(delay_carry); - }, - - /* shift right by one bit */ - shr: function () { - var i, carry; - - for (i = this.length - 1; i > 0; i--) { - carry = this.v[i].fshr(1); - this.v[i - 1].ortop(carry << FF.P_TBITS); - } - - this.v[0].fshr(1); - }, - - /* Convert to Hex String */ - toString: function () { - var s = '', - i; - - this.norm(); - - for (i = this.length - 1; i >= 0; i--) { - s += this.v[i].toString(); - } - - return s; - }, - /* Convert FFs to/from byte arrays */ - toBytes: function (b) { - var i; - - for (i = 0; i < this.length; i++) { - this.v[i].tobytearray(b, (this.length - i - 1) * ctx.BIG.MODBYTES); - } - }, - - /* z=x*y, t is workspace */ - karmul: function (vp, x, xp, y, yp, t, tp, n) { - var nd2, d; - - if (n === 1) { - x.v[xp].norm(); - y.v[yp].norm(); - d = ctx.BIG.mul(x.v[xp], y.v[yp]); - this.v[vp + 1] = d.split(8 * ctx.BIG.MODBYTES); - this.v[vp].copy(d); - - return; - } - - nd2 = n / 2; - this.radd(vp, x, xp, x, xp + nd2, nd2); - this.rnorm(vp, nd2); /* Important - required for 32-bit build */ - this.radd(vp + nd2, y, yp, y, yp + nd2, nd2); - this.rnorm(vp + nd2, nd2); /* Important - required for 32-bit build */ - t.karmul(tp, this, vp, this, vp + nd2, t, tp + n, nd2); - this.karmul(vp, x, xp, y, yp, t, tp + n, nd2); - this.karmul(vp + n, x, xp + nd2, y, yp + nd2, t, tp + n, nd2); - t.rdec(tp, this, vp, n); - t.rdec(tp, this, vp + n, n); - this.rinc(vp + nd2, t, tp, n); - this.rnorm(vp, 2 * n); - }, - - karsqr: function (vp, x, xp, t, tp, n) { - var nd2, d; - - if (n === 1) { - x.v[xp].norm(); - d = ctx.BIG.sqr(x.v[xp]); - this.v[vp + 1].copy(d.split(8 * ctx.BIG.MODBYTES)); - this.v[vp].copy(d); - - return; - } - - nd2 = n / 2; - this.karsqr(vp, x, xp, t, tp + n, nd2); - this.karsqr(vp + n, x, xp + nd2, t, tp + n, nd2); - t.karmul(tp, x, xp, x, xp + nd2, t, tp + n, nd2); - this.rinc(vp + nd2, t, tp, n); - this.rinc(vp + nd2, t, tp, n); - this.rnorm(vp + nd2, n); - }, - - karmul_lower: function (vp, x, xp, y, yp, t, tp, n) { - /* Calculates Least Significant bottom half of x*y */ - var nd2; - - if (n === 1) { - /* only calculate bottom half of product */ - this.v[vp].copy(ctx.BIG.smul(x.v[xp], y.v[yp])); - - return; - } - - nd2 = n / 2; - - this.karmul(vp, x, xp, y, yp, t, tp + n, nd2); - t.karmul_lower(tp, x, xp + nd2, y, yp, t, tp + n, nd2); - this.rinc(vp + nd2, t, tp, nd2); - t.karmul_lower(tp, x, xp, y, yp + nd2, t, tp + n, nd2); - - this.rinc(vp + nd2, t, tp, nd2); - this.rnorm(vp + nd2, -nd2); /* truncate it */ - }, - - karmul_upper: function (x, y, t, n) { - /* Calculates Most Significant upper half of x*y, given lower part */ - var nd2; - - nd2 = n / 2; - this.radd(n, x, 0, x, nd2, nd2); - this.radd(n + nd2, y, 0, y, nd2, nd2); - this.rnorm(n, nd2); - this.rnorm(n + nd2, nd2); - - t.karmul(0, this, n + nd2, this, n, t, n, nd2); /* t = (a0+a1)(b0+b1) */ - this.karmul(n, x, nd2, y, nd2, t, n, nd2); /* z[n]= a1*b1 */ - /* z[0-nd2]=l(a0b0) z[nd2-n]= h(a0b0)+l(t)-l(a0b0)-l(a1b1) */ - t.rdec(0, this, n, n); /* t=t-a1b1 */ - this.rinc(nd2, this, 0, nd2); /* z[nd2-n]+=l(a0b0) = h(a0b0)+l(t)-l(a1b1) */ - this.rdec(nd2, t, 0, nd2); /* z[nd2-n]=h(a0b0)+l(t)-l(a1b1)-l(t-a1b1)=h(a0b0) */ - this.rnorm(0, -n); /* a0b0 now in z - truncate it */ - t.rdec(0, this, 0, n); /* (a0+a1)(b0+b1) - a0b0 */ - this.rinc(nd2, t, 0, n); - - this.rnorm(nd2, n); - }, - - /* return low part of product this*y */ - lmul: function (y) { - var n = this.length, - t = new FF(2 * n), - x = new FF(n); - - x.copy(this); - this.karmul_lower(0, x, 0, y, 0, t, 0, n); - }, - - /* Set b=b mod c */ - mod: function (c) { - var k = 0; - - this.norm(); - if (FF.comp(this, c) < 0) { - return; - } - - do { - c.shl(); - k++; - } while (FF.comp(this, c) >= 0); - - while (k > 0) { - c.shr(); - - if (FF.comp(this, c) >= 0) { - this.sub(c); - this.norm(); - } - - k--; - } - }, - - /* return This mod modulus, N is modulus, ND is Montgomery Constant */ - reduce: function (N, ND) { - /* fast karatsuba Montgomery reduction */ - var n = N.length, - t = new FF(2 * n), - r = new FF(n), - m = new FF(n); - - r.sducopy(this); - m.karmul_lower(0, this, 0, ND, 0, t, 0, n); - this.karmul_upper(N, m, t, n); - m.sducopy(this); - - r.add(N); - r.sub(m); - r.norm(); - - return r; - }, - - /* Set r=this mod b */ - /* this is of length - 2*n */ - /* r,b is of length - n */ - dmod: function (b) { - var n = b.length, - m = new FF(2 * n), - x = new FF(2 * n), - r = new FF(n), - k; - - x.copy(this); - x.norm(); - m.dsucopy(b); - k = ctx.BIG.BIGBITS * n; - - while (FF.comp(x, m) >= 0) { - x.sub(m); - x.norm(); - } - - while (k > 0) { - m.shr(); - - if (FF.comp(x, m) >= 0) { - x.sub(m); - x.norm(); - } - - k--; - } - - r.copy(x); - r.mod(b); - - return r; - }, - - /* Set return=1/this mod p. Binary method - a

= 0) { - u.sub(v); - u.norm(); - - if (FF.comp(x1, x2) >= 0) { - x1.sub(x2); - } else { - t.copy(p); - t.sub(x2); - x1.add(t); - } - - x1.norm(); - } else { - v.sub(u); - v.norm(); - - if (FF.comp(x2, x1) >= 0) { - x2.sub(x1); - } else { - t.copy(p); - t.sub(x1); - x2.add(t); - } - - x2.norm(); - } - } - - if (FF.comp(u, one) === 0) { - this.copy(x1); - } else { - this.copy(x2); - } - }, - - /* nresidue mod m */ - nres: function (m) { - var n = m.length, - d; - - if (n === 1) { - d = new ctx.DBIG(0); - d.hcopy(this.v[0]); - d.shl(ctx.BIG.NLEN * ctx.BIG.BASEBITS); - this.v[0].copy(d.mod(m.v[0])); - } else { - d = new FF(2 * n); - d.dsucopy(this); - this.copy(d.dmod(m)); - } - }, - - redc: function (m, ND) { - var n = m.length, - d; - - if (n === 1) { - d = new ctx.DBIG(0); - d.hcopy(this.v[0]); - this.v[0].copy(ctx.BIG.monty(m.v[0], (1 << ctx.BIG.BASEBITS) - ND.v[0].w[0], d)); - } else { - d = new FF(2 * n); - this.mod(m); - d.dscopy(this); - this.copy(d.reduce(m, ND)); - this.mod(m); - } - }, - - mod2m: function (m) { - for (var i = m; i < this.length; i++) { - this.v[i].zero(); - } - }, - - /* U=1/a mod 2^m - Arazi & Qi */ - invmod2m: function () { - var n = this.length, - b = new FF(n), - c = new FF(n), - U = new FF(n), - t, - i; - - U.zero(); - U.v[0].copy(this.v[0]); - U.v[0].invmod2m(); - - for (i = 1; i < n; i <<= 1) { - b.copy(this); - b.mod2m(i); - t = FF.mul(U, b); - t.shrw(i); - b.copy(t); - c.copy(this); - c.shrw(i); - c.mod2m(i); - c.lmul(U); - c.mod2m(i); - - b.add(c); - b.norm(); - b.lmul(U); - b.mod2m(i); - - c.one(); - c.shlw(i); - b.revsub(c); - b.norm(); - b.shlw(i); - U.add(b); - } - U.norm(); - - return U; - }, - - random: function (rng) { - var n = this.length, - i; - - for (i = 0; i < n; i++) { - this.v[i].copy(ctx.BIG.random(rng)); - } - - /* make sure top bit is 1 */ - while (this.v[n - 1].nbits() < ctx.BIG.MODBYTES * 8) { - this.v[n - 1].copy(ctx.BIG.random(rng)); - } - }, - - /* generate random x */ - randomnum: function (p, rng) { - var n = this.length, - d = new FF(2 * n), - i; - - for (i = 0; i < 2 * n; i++) { - d.v[i].copy(ctx.BIG.random(rng)); - } - - this.copy(d.dmod(p)); - }, - - /* this*=y mod p */ - modmul: function (y, p, nd) { - var ex = this.P_EXCESS(), - ey = y.P_EXCESS(), - n = p.length, - d; - - if (ex + 1 >= Math.floor((FF.P_FEXCESS - 1) / (ey + 1))) { - this.mod(p); - } - - if (n === 1) { - d = ctx.BIG.mul(this.v[0], y.v[0]); - this.v[0].copy(ctx.BIG.monty(p.v[0], (1 << ctx.BIG.BASEBITS) - nd.v[0].w[0], d)); - } else { - d = FF.mul(this, y); - this.copy(d.reduce(p, nd)); - } - }, - - /* this*=y mod p */ - modsqr: function (p, nd) { - var ex = this.P_EXCESS(), - n, - d; - - if (ex + 1 >= Math.floor((FF.P_FEXCESS - 1) / (ex + 1))) { - this.mod(p); - } - n = p.length; - - if (n === 1) { - d = ctx.BIG.sqr(this.v[0]); - this.v[0].copy(ctx.BIG.monty(p.v[0], (1 << ctx.BIG.BASEBITS) - nd.v[0].w[0], d)); - } else { - d = FF.sqr(this); - this.copy(d.reduce(p, nd)); - } - }, - - /* this=this^e mod p using side-channel resistant Montgomery Ladder, for large e */ - skpow: function (e, p) { - var n = p.length, - R0 = new FF(n), - R1 = new FF(n), - ND = p.invmod2m(), - i, - b; - - this.mod(p); - R0.one(); - R1.copy(this); - R0.nres(p); - R1.nres(p); - - for (i = 8 * ctx.BIG.MODBYTES * n - 1; i >= 0; i--) { - b = e.v[Math.floor(i / ctx.BIG.BIGBITS)].bit(i % ctx.BIG.BIGBITS); - - this.copy(R0); - this.modmul(R1, p, ND); - - FF.cswap(R0, R1, b); - R0.modsqr(p, ND); - - R1.copy(this); - FF.cswap(R0, R1, b); - } - - this.copy(R0); - this.redc(p, ND); - }, - - /* this =this^e mod p using side-channel resistant Montgomery Ladder, for short e */ - skspow: function (e, p) { - var n = p.length, - R0 = new FF(n), - R1 = new FF(n), - ND = p.invmod2m(), - i, - b; - - this.mod(p); - R0.one(); - R1.copy(this); - R0.nres(p); - R1.nres(p); - - for (i = 8 * ctx.BIG.MODBYTES - 1; i >= 0; i--) { - b = e.bit(i); - this.copy(R0); - this.modmul(R1, p, ND); - - FF.cswap(R0, R1, b); - R0.modsqr(p, ND); - - R1.copy(this); - FF.cswap(R0, R1, b); - } - this.copy(R0); - this.redc(p, ND); - }, - - /* raise to an integer power - right-to-left method */ - power: function (e, p) { - var n = p.length, - f = true, - w = new FF(n), - ND = p.invmod2m(); - - w.copy(this); - w.nres(p); - - if (e == 2) { - this.copy(w); - this.modsqr(p, ND); - } else { - for (;;) { - if (e % 2 == 1) { - if (f) { - this.copy(w); - } else { - this.modmul(w, p, ND); - } - f = false; - } - e >>= 1; - if (e === 0) { - break; - } - w.modsqr(p, ND); - } - } - - this.redc(p, ND); - }, - - /* this=this^e mod p, faster but not side channel resistant */ - pow: function (e, p) { - var n = p.length, - w = new FF(n), - ND = p.invmod2m(), - i, - b; - - w.copy(this); - this.one(); - this.nres(p); - w.nres(p); - - for (i = 8 * ctx.BIG.MODBYTES * n - 1; i >= 0; i--) { - this.modsqr(p, ND); - b = e.v[Math.floor(i / ctx.BIG.BIGBITS)].bit(i % ctx.BIG.BIGBITS); - if (b === 1) { - this.modmul(w, p, ND); - } - } - - this.redc(p, ND); - }, - - /* double exponentiation r=x^e.y^f mod p */ - pow2: function (e, y, f, p) { - var n = p.length, - xn = new FF(n), - yn = new FF(n), - xy = new FF(n), - ND = p.invmod2m(), - i, - eb, - fb; - - xn.copy(this); - yn.copy(y); - xn.nres(p); - yn.nres(p); - xy.copy(xn); - xy.modmul(yn, p, ND); - this.one(); - this.nres(p); - - for (i = 8 * ctx.BIG.MODBYTES - 1; i >= 0; i--) { - eb = e.bit(i); - fb = f.bit(i); - this.modsqr(p, ND); - - if (eb == 1) { - if (fb == 1) { - this.modmul(xy, p, ND); - } else { - this.modmul(xn, p, ND); - } - } else { - if (fb == 1) { - this.modmul(yn, p, ND); - } - } - } - this.redc(p, ND); - }, - - /* quick and dirty check for common factor with n */ - cfactor: function (s) { - var n = this.length, - x = new FF(n), - y = new FF(n), - r, - g; - - y.set(s); - - x.copy(this); - x.norm(); - - do { - x.sub(y); - x.norm(); - while (!x.iszilch() && x.parity() === 0) { - x.shr(); - } - } while (FF.comp(x, y) > 0); - - g = x.v[0].get(0); - r = FF.igcd(s, g); - if (r > 1) { - return true; - } - - return false; - }, - }; - - /* compare x and y - must be normalised, and of same length */ - FF.comp = function (a, b) { - var i, j; - - for (i = a.length - 1; i >= 0; i--) { - j = ctx.BIG.comp(a.v[i], b.v[i]); - if (j !== 0) { - return j; - } - } - - return 0; - }; - - FF.fromBytes = function (x, b) { - var i; - - for (i = 0; i < x.length; i++) { - x.v[i] = ctx.BIG.frombytearray(b, (x.length - i - 1) * ctx.BIG.MODBYTES); - } - }; - - /* in-place swapping using xor - side channel resistant - lengths must be the same */ - FF.cswap = function (a, b, d) { - var i; - - for (i = 0; i < a.length; i++) { - a.v[i].cswap(b.v[i], d); - } - }; - - /* z=x*y. Assumes x and y are of same length. */ - FF.mul = function (x, y) { - var n = x.length, - z = new FF(2 * n), - t = new FF(2 * n); - - z.karmul(0, x, 0, y, 0, t, 0, n); - - return z; - }; - - /* z=x^2 */ - FF.sqr = function (x) { - var n = x.length, - z = new FF(2 * n), - t = new FF(2 * n); - - z.karsqr(0, x, 0, t, 0, n); - - return z; - }; - - FF.igcd = function (x, y) { - /* integer GCD, returns GCD of x and y */ - var r; - - if (y === 0) { - return x; - } - - while ((r = x % y) !== 0) { - x = y; - y = r; - } - - return y; - }; - - /* Miller-Rabin test for primality. Slow. */ - FF.prime = function (p, rng) { - var n = p.length, - s = 0, - loop, - d = new FF(n), - x = new FF(n), - unity = new FF(n), - nm1 = new FF(n), - sf = 4849845 /* 3*5*.. *19 */, - i, - j; - - p.norm(); - - if (p.cfactor(sf)) { - return false; - } - - unity.one(); - nm1.copy(p); - nm1.sub(unity); - nm1.norm(); - d.copy(nm1); - - while (d.parity() === 0) { - d.shr(); - s++; - } - - if (s === 0) { - return false; - } - - for (i = 0; i < 10; i++) { - x.randomnum(p, rng); - x.pow(d, p); - - if (FF.comp(x, unity) === 0 || FF.comp(x, nm1) === 0) { - continue; - } - - loop = false; - - for (j = 1; j < s; j++) { - x.power(2, p); - - if (FF.comp(x, unity) === 0) { - return false; - } - - if (FF.comp(x, nm1) === 0) { - loop = true; - break; - } - } - if (loop) { - continue; - } - - return false; - } - - return true; - }; - - return FF; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FF: FF, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp.js b/packages/bls-verify/src/vendor/amcl-js/src/fp.js deleted file mode 100644 index 2dee274e0..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp.js +++ /dev/null @@ -1,833 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Finite Field arithmetic */ -/* CORE mod p functions */ - -var FP = function (ctx) { - 'use strict'; - - /* General purpose Constructor */ - var FP = function (x) { - if (x instanceof FP) { - this.f = new ctx.BIG(x.f); - this.XES = x.XES; - } else { - if (x instanceof ctx.BIG) { - this.f = new ctx.BIG(x); - } else { - if (x < 0) { - var m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.Modulus); - m.inc(x); - m.norm(); - this.f = new ctx.BIG(m); - } else { - this.f = new ctx.BIG(x); - } - } - this.XES = 1; - //if (x!=0) - if (!this.f.iszilch()) this.nres(); - } - }; - - FP.NOT_SPECIAL = 0; - FP.PSEUDO_MERSENNE = 1; - FP.GENERALISED_MERSENNE = 2; - FP.MONTGOMERY_FRIENDLY = 3; - - FP.ZERO = 0; - FP.ONE = 1; - FP.SPARSEST = 2; - FP.SPARSER = 3; - FP.SPARSE = 4; - FP.DENSE = 5; - - FP.NEGATOWER = 0; - FP.POSITOWER = 1; - - FP.MODBITS = ctx.config['@NBT']; - FP.PM1D2 = ctx.config['@M8']; - FP.RIADZ = ctx.config['@RZ']; - FP.RIADZG2A = ctx.config['@RZ2A']; - FP.RIADZG2B = ctx.config['@RZ2B']; - FP.MODTYPE = ctx.config['@MT']; - FP.QNRI = ctx.config['@QI']; - FP.TOWER = ctx.config['@TW']; - - FP.FEXCESS = (1 << ctx.config['@SH']) - 1; // 2^(BASEBITS*NLEN-MODBITS)-1 - FP.OMASK = -1 << FP.TBITS; - FP.TBITS = FP.MODBITS % ctx.BIG.BASEBITS; - FP.TMASK = (1 << FP.TBITS) - 1; - - FP.BIG_ENDIAN_SIGN = false; - - FP.prototype = { - /* set this=0 */ - zero: function () { - this.XES = 1; - this.f.zero(); - }, - - /* copy from a ctx.BIG in ROM */ - rcopy: function (y) { - this.f.rcopy(y); - this.nres(); - }, - - /* copy from another ctx.BIG */ - bcopy: function (y) { - this.f.copy(y); - this.nres(); - }, - - /* copy from another FP */ - copy: function (y) { - this.XES = y.XES; - this.f.copy(y.f); - }, - - /* conditional swap of a and b depending on d */ - cswap: function (b, d) { - this.f.cswap(b.f, d); - var t, - c = d; - c = ~(c - 1); - t = c & (this.XES ^ b.XES); - this.XES ^= t; - b.XES ^= t; - }, - - /* conditional copy of b to a depending on d */ - cmove: function (b, d) { - var c = d; - - c = ~(c - 1); - - this.f.cmove(b.f, d); - this.XES ^= (this.XES ^ b.XES) & c; - }, - - /* convert to Montgomery n-residue form */ - nres: function () { - var r, d; - - if (FP.MODTYPE != FP.PSEUDO_MERSENNE && FP.MODTYPE != FP.GENERALISED_MERSENNE) { - r = new ctx.BIG(); - r.rcopy(ctx.ROM_FIELD.R2modp); - - d = ctx.BIG.mul(this.f, r); - this.f.copy(FP.mod(d)); - this.XES = 2; - } else { - var m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.Modulus); - this.f.mod(m); - this.XES = 1; - } - - return this; - }, - - /* convert back to regular form */ - redc: function () { - var r = new ctx.BIG(0), - d, - w; - - r.copy(this.f); - - if (FP.MODTYPE != FP.PSEUDO_MERSENNE && FP.MODTYPE != FP.GENERALISED_MERSENNE) { - d = new ctx.DBIG(0); - d.hcopy(this.f); - w = FP.mod(d); - r.copy(w); - } - - return r; - }, - - /* convert this to string */ - toString: function () { - var s = this.redc().toString(); - return s; - }, - - /* test this=0 */ - iszilch: function () { - var c = new FP(0); - c.copy(this); - c.reduce(); - return c.f.iszilch(); - }, - - islarger: function () { - if (this.iszilch()) return; - var sx = new ctx.BIG(0); - sx.rcopy(ctx.ROM_FIELD.Modulus); - var fx = this.redc(); - sx.sub(fx); - sx.norm(); - return ctx.BIG.comp(fx, sx); - }, - - toBytes: function (b) { - this.redc().toBytes(b); - }, - - /* test this=1 */ - isunity: function () { - var c = new FP(0); - c.copy(this); - c.reduce(); - return c.redc().isunity(); - }, - - sign: function () { - if (FP.BIG_ENDIAN_SIGN) { - var m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.Modulus); - m.dec(1); - m.fshr(1); - var n = new FP(0); - n.copy(this); - n.reduce(); - var w = n.redc(); - var cp = ctx.BIG.comp(w, m); - return ((cp + 1) & 2) >> 1; - } else { - var c = new FP(0); - c.copy(this); - c.reduce(); - return c.redc().parity(); - } - }, - - /* reduce this mod Modulus */ - reduce: function () { - var q, - carry, - sr, - sb, - m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.Modulus); - var r = new ctx.BIG(0); - r.rcopy(ctx.ROM_FIELD.Modulus); - this.f.norm(); - - if (this.XES > 16) { - q = FP.quo(this.f, m); - carry = r.pmul(q); - r.w[ctx.BIG.NLEN - 1] += carry << ctx.BIG.BASEBITS; // correction - put any carry out back in again - this.f.sub(r); - this.f.norm(); - sb = 2; - } else { - sb = FP.logb2(this.XES - 1); - } - m.fshl(sb); - - while (sb > 0) { - // constant time... - sr = ctx.BIG.ssn(r, this.f, m); // optimized combined shift, subtract and norm - this.f.cmove(r, 1 - sr); - sb--; - } - - this.XES = 1; - }, - - /* set this=1 */ - one: function () { - this.f.one(); - this.nres(); - }, - - /* normalise this */ - norm: function () { - return this.f.norm(); - }, - - /* this*=b mod Modulus */ - mul: function (b) { - var d; - - if (this.XES * b.XES > FP.FEXCESS) { - this.reduce(); - } - - d = ctx.BIG.mul(this.f, b.f); - this.f.copy(FP.mod(d)); - this.XES = 2; - - return this; - }, - - /* this*=c mod Modulus where c is an int */ - imul: function (c) { - var s = false, - d, - n; - - if (c < 0) { - c = -c; - s = true; - } - - if (FP.MODTYPE == FP.PSEUDO_MERSENNE || FP.MODTYPE == FP.GENERALISED_MERSENNE) { - d = this.f.pxmul(c); - this.f.copy(FP.mod(d)); - this.XES = 2; - } else { - if (this.XES * c <= FP.FEXCESS) { - this.f.pmul(c); - this.XES *= c; - } else { - n = new FP(c); - this.mul(n); - } - } - - if (s) { - this.neg(); - this.norm(); - } - return this; - }, - - /* this*=this mod Modulus */ - sqr: function () { - var d, t; - - if (this.XES * this.XES > FP.FEXCESS) { - this.reduce(); - } - - d = ctx.BIG.sqr(this.f); - t = FP.mod(d); - this.f.copy(t); - this.XES = 2; - - return this; - }, - - /* this+=b */ - add: function (b) { - this.f.add(b.f); - this.XES += b.XES; - - if (this.XES > FP.FEXCESS) { - this.reduce(); - } - - return this; - }, - /* this=-this mod Modulus */ - neg: function () { - var m = new ctx.BIG(0), - sb; - - m.rcopy(ctx.ROM_FIELD.Modulus); - - sb = FP.logb2(this.XES - 1); - - m.fshl(sb); - this.XES = (1 << sb) + 1; - this.f.rsub(m); - - if (this.XES > FP.FEXCESS) { - this.reduce(); - } - - return this; - }, - - /* this-=b */ - sub: function (b) { - var n = new FP(0); - - n.copy(b); - n.neg(); - this.add(n); - - return this; - }, - - rsub: function (b) { - var n = new FP(0); - - n.copy(this); - n.neg(); - this.copy(b); - this.add(n); - }, - - /* this/=2 mod Modulus */ - div2: function () { - var p; - p = new ctx.BIG(0); - p.rcopy(ctx.ROM_FIELD.Modulus); - var pr = this.f.parity(); - var w = new ctx.BIG(0); - w.copy(this.f); - this.f.fshr(1); - w.add(p); - w.norm(); - w.fshr(1); - this.f.cmove(w, pr); - return this; - }, - - /* return jacobi symbol (this/Modulus) */ - jacobi: function () { - var p = new ctx.BIG(0), - w = this.redc(); - - p.rcopy(ctx.ROM_FIELD.Modulus); - - return w.jacobi(p); - }, - - /* return TRUE if this==a */ - equals: function (a) { - var ft = new FP(0); - ft.copy(this); - var sd = new FP(0); - sd.copy(a); - ft.reduce(); - sd.reduce(); - - if (ctx.BIG.comp(ft.f, sd.f) === 0) { - return true; - } - - return false; - }, - - /* return this^e mod Modulus */ - pow: function (e) { - var i, - w = [], - tb = [], - t = new ctx.BIG(e), - nb, - lsbs, - r; - this.norm(); - t.norm(); - nb = 1 + Math.floor((t.nbits() + 3) / 4); - - for (i = 0; i < nb; i++) { - lsbs = t.lastbits(4); - t.dec(lsbs); - t.norm(); - w[i] = lsbs; - t.fshr(4); - } - tb[0] = new FP(1); - tb[1] = new FP(this); - for (i = 2; i < 16; i++) { - tb[i] = new FP(tb[i - 1]); - tb[i].mul(this); - } - r = new FP(tb[w[nb - 1]]); - for (i = nb - 2; i >= 0; i--) { - r.sqr(); - r.sqr(); - r.sqr(); - r.sqr(); - r.mul(tb[w[i]]); - } - r.reduce(); - return r; - }, - - // return this^(p-3)/4 or this^(p-5)/8 - // See https://eprint.iacr.org/2018/1038 - fpow: function () { - var i, j, k, bw, w, c, nw, lo, m, n, nd, e; - var xp = []; - var ac = [1, 2, 3, 6, 12, 15, 30, 60, 120, 240, 255]; - // phase 1 - - xp[0] = new FP(this); // 1 - xp[1] = new FP(this); - xp[1].sqr(); // 2 - xp[2] = new FP(xp[1]); - xp[2].mul(this); //3 - xp[3] = new FP(xp[2]); - xp[3].sqr(); // 6 - xp[4] = new FP(xp[3]); - xp[4].sqr(); // 12 - xp[5] = new FP(xp[4]); - xp[5].mul(xp[2]); // 15 - xp[6] = new FP(xp[5]); - xp[6].sqr(); // 30 - xp[7] = new FP(xp[6]); - xp[7].sqr(); // 60 - xp[8] = new FP(xp[7]); - xp[8].sqr(); // 120 - xp[9] = new FP(xp[8]); - xp[9].sqr(); // 240 - xp[10] = new FP(xp[9]); - xp[10].mul(xp[5]); // 255 - - n = FP.MODBITS; - if (FP.MODTYPE == FP.GENERALISED_MERSENNE) - // Goldilocks ONLY - n /= 2; - - e = FP.PM1D2; - - n -= e + 1; - c = (ctx.ROM_FIELD.MConst + (1 << e) + 1) / (1 << (e + 1)); - - nd = 0; - while (c % 2 == 0) { - c /= 2; - n -= 1; - nd++; - } - - bw = 0; - w = 1; - while (w < c) { - w *= 2; - bw += 1; - } - k = w - c; - - i = 10; - var key = new FP(0); - if (k != 0) { - while (ac[i] > k) i--; - key.copy(xp[i]); - k -= ac[i]; - } - while (k != 0) { - i--; - if (ac[i] > k) continue; - key.mul(xp[i]); - k -= ac[i]; - } - - // phase 2 - xp[1].copy(xp[2]); - xp[2].copy(xp[5]); - xp[3].copy(xp[10]); - - j = 3; - m = 8; - nw = n - bw; - var t = new FP(0); - while (2 * m < nw) { - t.copy(xp[j++]); - for (i = 0; i < m; i++) t.sqr(); - xp[j].copy(xp[j - 1]); - xp[j].mul(t); - m *= 2; - } - lo = nw - m; - var r = new FP(xp[j]); - - while (lo != 0) { - m /= 2; - j--; - if (lo < m) continue; - lo -= m; - t.copy(r); - for (i = 0; i < m; i++) t.sqr(); - r.copy(t); - r.mul(xp[j]); - } - - // phase 3 - if (bw != 0) { - for (i = 0; i < bw; i++) r.sqr(); - r.mul(key); - } - - if (FP.MODTYPE == FP.GENERALISED_MERSENNE) { - // Goldilocks ONLY - key.copy(r); - r.sqr(); - r.mul(this); - for (i = 0; i < n + 1; i++) r.sqr(); - r.mul(key); - } - - for (i = 0; i < nd; i++) r.sqr(); - - return r; - }, - - // calculates r=x^(p-1-2^e)/2^{e+1) where 2^e|p-1 - progen: function () { - if (FP.MODTYPE == FP.PSEUDO_MERSENNE || FP.MODTYPE == FP.GENERALISED_MERSENNE) { - this.copy(this.fpow()); - return; - } - var e = FP.PM1D2; - var m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.Modulus); - m.dec(1); - m.shr(e); - m.dec(1); - m.fshr(1); - - this.copy(this.pow(m)); - }, - - /* this=1/this mod Modulus */ - inverse: function (h) { - var e = FP.PM1D2; - this.norm(); - var s = new FP(this); - for (var i = 0; i < e - 1; i++) { - s.sqr(); - s.mul(this); - } - if (h == null) this.progen(); - else this.copy(h); - - for (var i = 0; i <= e; i++) this.sqr(); - this.mul(s); - this.reduce(); - return this; - }, - - // Calculate both inverse and square root of x, return QR - invsqrt: function (i, s) { - var h = new FP(0); - var qr = this.qr(h); - s.copy(this.sqrt(h)); - i.copy(this); - i.inverse(h); - return qr; - }, - - /* test for Quadratic residue */ - qr: function (h) { - var r = new FP(this); - var e = FP.PM1D2; - r.progen(); - if (h != null) h.copy(r); - - r.sqr(); - r.mul(this); - for (var i = 0; i < e - 1; i++) r.sqr(); - - return r.isunity() ? 1 : 0; - }, - - /* return sqrt(this) mod Modulus */ - sqrt: function (h) { - var e = FP.PM1D2; - var g = new FP(this); - if (h == null) g.progen(); - else g.copy(h); - - var m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.ROI); - - var v = new FP(m); - - var t = new FP(g); - t.sqr(); - t.mul(this); - - var r = new FP(this); - r.mul(g); - var b = new FP(t); - - for (var k = e; k > 1; k--) { - for (var j = 1; j < k - 1; j++) b.sqr(); - var u = b.isunity() ? 0 : 1; - g.copy(r); - g.mul(v); - r.cmove(g, u); - v.sqr(); - g.copy(t); - g.mul(v); - t.cmove(g, u); - b.copy(t); - } - var sgn = r.sign(); - var nr = new FP(r); - nr.neg(); - nr.norm(); - r.cmove(nr, sgn); - return r; - }, - }; - - // Two for the price of One - See Hamburg https://eprint.iacr.org/2012/309.pdf - // Calculate inverse of i and square root of s, return QR - FP.tpo = function (i, s) { - var w = new FP(s); - var t = new FP(i); - w.mul(i); - t.mul(w); - var qr = t.invsqrt(i, s); - i.mul(w); - s.mul(i); - return qr; - }; - - FP.fromBytes = function (b) { - var t = ctx.BIG.fromBytes(b); - return new FP(t); - }; - - FP.rand = function (rng) { - var m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.Modulus); - var w = ctx.BIG.randomnum(m, rng); - return new FP(w); - }; - - FP.logb2 = function (v) { - var r; - - v |= v >>> 1; - v |= v >>> 2; - v |= v >>> 4; - v |= v >>> 8; - v |= v >>> 16; - - v = v - ((v >>> 1) & 0x55555555); - v = (v & 0x33333333) + ((v >>> 2) & 0x33333333); - r = (((v + (v >>> 4)) & 0xf0f0f0f) * 0x1010101) >>> 24; - - return r; - }; - - FP.quo = function (n, m) { - var num, - den, - hb = ctx.BIG.CHUNK >> 1; - if (FP.TBITS < hb) { - var sh = hb - FP.TBITS; - num = (n.w[ctx.BIG.NLEN - 1] << sh) | (n.w[ctx.BIG.NLEN - 2] >> (ctx.BIG.BASEBITS - sh)); - den = (m.w[ctx.BIG.NLEN - 1] << sh) | (m.w[ctx.BIG.NLEN - 2] >> (ctx.BIG.BASEBITS - sh)); - } else { - num = n.w[ctx.BIG.NLEN - 1]; - den = m.w[ctx.BIG.NLEN - 1]; - } - return Math.floor(num / (den + 1)); - }; - - /* reduce a ctx.DBIG to a ctx.BIG using a "special" modulus */ - FP.mod = function (d) { - var b = new ctx.BIG(0), - i, - t, - v, - tw, - tt, - lo, - carry, - m, - dd; - - if (FP.MODTYPE == FP.PSEUDO_MERSENNE) { - t = d.split(FP.MODBITS); - b.hcopy(d); - - if (ctx.ROM_FIELD.MConst != 1) { - v = t.pmul(ctx.ROM_FIELD.MConst); - } else { - v = 0; - } - - t.add(b); - t.norm(); - - tw = t.w[ctx.BIG.NLEN - 1]; - t.w[ctx.BIG.NLEN - 1] &= FP.TMASK; - t.inc(ctx.ROM_FIELD.MConst * ((tw >> FP.TBITS) + (v << (ctx.BIG.BASEBITS - FP.TBITS)))); - // b.add(t); - t.norm(); - - return t; - } - - if (FP.MODTYPE == FP.MONTGOMERY_FRIENDLY) { - for (i = 0; i < ctx.BIG.NLEN; i++) { - d.w[ctx.BIG.NLEN + i] += d.muladd( - d.w[i], - ctx.ROM_FIELD.MConst - 1, - d.w[i], - ctx.BIG.NLEN + i - 1, - ); - } - - for (i = 0; i < ctx.BIG.NLEN; i++) { - b.w[i] = d.w[ctx.BIG.NLEN + i]; - } - - b.norm(); - } - - if (FP.MODTYPE == FP.GENERALISED_MERSENNE) { - // GoldiLocks Only - t = d.split(FP.MODBITS); - b.hcopy(d); - b.add(t); - dd = new ctx.DBIG(0); - dd.hcopy(t); - dd.shl(FP.MODBITS / 2); - - tt = dd.split(FP.MODBITS); - lo = new ctx.BIG(); - lo.hcopy(dd); - - b.add(tt); - b.add(lo); - //b.norm(); - tt.shl(FP.MODBITS / 2); - b.add(tt); - - carry = b.w[ctx.BIG.NLEN - 1] >> FP.TBITS; - b.w[ctx.BIG.NLEN - 1] &= FP.TMASK; - b.w[0] += carry; - - b.w[Math.floor(224 / ctx.BIG.BASEBITS)] += carry << 224 % ctx.BIG.BASEBITS; - b.norm(); - } - - if (FP.MODTYPE == FP.NOT_SPECIAL) { - m = new ctx.BIG(0); - m.rcopy(ctx.ROM_FIELD.Modulus); - - b.copy(ctx.BIG.monty(m, ctx.ROM_FIELD.MConst, d)); - } - - return b; - }; - - return FP; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP: FP, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp12.js b/packages/bls-verify/src/vendor/amcl-js/src/fp12.js deleted file mode 100644 index 3c1c3f016..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp12.js +++ /dev/null @@ -1,1069 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE Fp^12 functions */ - -/* FP12 elements are of the form a+i.b+i^2.c */ - -var FP12 = function (ctx) { - 'use strict'; - - /* general purpose constructor */ - var FP12 = function (d, e, f) { - /* - if (!isNaN(d)) - { - this.a = new ctx.FP4(d); - this.b = new ctx.FP4(0); - this.c = new ctx.FP4(0); - if (d==1) this.stype=ctx.FP.ONE; - else this.stype=ctx.FP.SPARSEST; - } - else - { - if (d instanceof FP12) { - this.a = new ctx.FP4(d.a); - this.b = new ctx.FP4(d.b); - this.c = new ctx.FP4(d.c); - } else { - this.a = new ctx.FP4(d); - this.b = new ctx.FP4(e); - this.c = new ctx.FP4(f); - } - this.stype=ctx.FP.DENSE; - } -*/ - if (d instanceof FP12) { - // ignore e, d, which are assumed be undefined in this case - this.a = new ctx.FP4(d.a); - this.b = new ctx.FP4(d.b); - this.c = new ctx.FP4(d.c); - this.stype = ctx.FP.DENSE; - } else if (typeof d !== 'undefined' && typeof e !== 'undefined' && typeof f !== 'undefined') { - // all 3 components set to (can be anything that the FP4 constructor supports) - this.a = new ctx.FP4(d); - this.b = new ctx.FP4(e); - this.c = new ctx.FP4(f); - this.stype = ctx.FP.DENSE; - } else if (typeof d === 'number') { - // first component is number - this.a = new ctx.FP4(d); - this.b = new ctx.FP4(0); - this.c = new ctx.FP4(0); - if (d == 1) this.stype = ctx.FP.ONE; - else this.stype = ctx.FP.SPARSER; - } else { - // other cases, including `new ctx.FP12()` fall back to zero - this.a = new ctx.FP4(0); - this.b = new ctx.FP4(0); - this.c = new ctx.FP4(0); - this.stype = ctx.FP.ZERO; - } - }; - - FP12.prototype = { - /* reduce all components of this mod Modulus */ - reduce: function () { - this.a.reduce(); - this.b.reduce(); - this.c.reduce(); - }, - - /* normalize all components of this mod Modulus */ - norm: function () { - this.a.norm(); - this.b.norm(); - this.c.norm(); - }, - - /* test x==0 ? */ - iszilch: function () { - return this.a.iszilch() && this.b.iszilch() && this.c.iszilch(); - }, - - /* test x==1 ? */ - isunity: function () { - var one = new ctx.FP4(1); - return this.a.equals(one) && this.b.iszilch() && this.c.iszilch(); - }, - - /* conditional copy of g to this depending on d */ - cmove: function (g, d) { - this.a.cmove(g.a, d); - this.b.cmove(g.b, d); - this.c.cmove(g.c, d); - d = ~(d - 1); - this.stype ^= (this.stype ^ g.stype) & d; - }, - - /* Constant time select from pre-computed table */ - select: function (g, b) { - var invf = new FP12(0), - m, - babs; - - m = b >> 31; - babs = (b ^ m) - m; - babs = (babs - 1) / 2; - - this.cmove(g[0], FP12.teq(babs, 0)); // conditional move - this.cmove(g[1], FP12.teq(babs, 1)); - this.cmove(g[2], FP12.teq(babs, 2)); - this.cmove(g[3], FP12.teq(babs, 3)); - this.cmove(g[4], FP12.teq(babs, 4)); - this.cmove(g[5], FP12.teq(babs, 5)); - this.cmove(g[6], FP12.teq(babs, 6)); - this.cmove(g[7], FP12.teq(babs, 7)); - - invf.copy(this); - invf.conj(); - this.cmove(invf, m & 1); - }, - - settype: function (w) { - this.stype = w; - }, - - gettype: function () { - return this.stype; - }, - - /* extract a from this */ - geta: function () { - return this.a; - }, - - /* extract b */ - getb: function () { - return this.b; - }, - - /* extract c */ - getc: function () { - return this.c; - }, - - /* return 1 if x==y, else 0 */ - equals: function (x) { - return this.a.equals(x.a) && this.b.equals(x.b) && this.c.equals(x.c); - }, - - /* copy this=x */ - copy: function (x) { - this.a.copy(x.a); - this.b.copy(x.b); - this.c.copy(x.c); - this.stype = x.stype; - }, - - /* set this=1 */ - one: function () { - this.a.one(); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.ONE; - }, - - /* set this=0 */ - zero: function () { - this.a.zero(); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.ZERO; - }, - - /* this=conj(this) */ - conj: function () { - this.a.conj(); - this.b.nconj(); - this.c.conj(); - }, - - /* set this from 3 FP4s */ - set: function (d, e, f) { - this.a.copy(d); - this.b.copy(e); - this.c.copy(f); - this.stype = ctx.FP.DENSE; - }, - - /* set this from one ctx.FP4 */ - seta: function (d) { - this.a.copy(d); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.SPARSEST; - }, - - /* Granger-Scott Unitary Squaring */ - usqr: function () { - var A = new ctx.FP4(this.a), - B = new ctx.FP4(this.c), - C = new ctx.FP4(this.b), - D = new ctx.FP4(0); - - this.a.sqr(); - D.copy(this.a); - D.add(this.a); - this.a.add(D); - - A.nconj(); - - A.add(A); - this.a.add(A); - B.sqr(); - B.times_i(); - - D.copy(B); - D.add(B); - B.add(D); - - C.sqr(); - D.copy(C); - D.add(C); - C.add(D); - - this.b.conj(); - this.b.add(this.b); - this.c.nconj(); - - this.c.add(this.c); - this.b.add(B); - this.c.add(C); - this.stype = ctx.FP.DENSE; - this.reduce(); - }, - - /* Chung-Hasan SQR2 method from http://cacr.uwaterloo.ca/techreports/2006/cacr2006-24.pdf */ - sqr: function () { - if (this.stype == ctx.FP.ONE) return; - - var A = new ctx.FP4(this.a), - B = new ctx.FP4(this.b), - C = new ctx.FP4(this.c), - D = new ctx.FP4(this.a); - - A.sqr(); - B.mul(this.c); - B.add(B); - C.sqr(); - D.mul(this.b); - D.add(D); - - this.c.add(this.a); - this.c.add(this.b); - this.c.norm(); - this.c.sqr(); - - this.a.copy(A); - - A.add(B); - A.add(C); - A.add(D); - A.neg(); - B.times_i(); - C.times_i(); - - this.a.add(B); - this.b.copy(C); - this.b.add(D); - this.c.add(A); - if (this.stype == ctx.FP.SPARSER || this.stype == ctx.FP.SPARSEST) this.stype = ctx.FP.SPARSE; - else this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* FP12 full multiplication this=this*y */ - mul: function (y) { - var z0 = new ctx.FP4(this.a), - z1 = new ctx.FP4(0), - z2 = new ctx.FP4(this.b), - z3 = new ctx.FP4(0), - t0 = new ctx.FP4(this.a), - t1 = new ctx.FP4(y.a); - - z0.mul(y.a); - z2.mul(y.b); - - t0.add(this.b); - t1.add(y.b); - - t0.norm(); - t1.norm(); - - z1.copy(t0); - z1.mul(t1); - t0.copy(this.b); - t0.add(this.c); - - t1.copy(y.b); - t1.add(y.c); - - t0.norm(); - t1.norm(); - z3.copy(t0); - z3.mul(t1); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - z1.add(t0); - this.b.copy(z1); - this.b.add(t1); - - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t1.copy(y.a); - t1.add(y.c); - - t0.norm(); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - - t0.copy(this.c); - t0.mul(y.c); - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* FP12 multiplication w=w*y */ - /* catering for special case that arises from special form of ATE pairing line function */ - /* w and y are both sparser line functions - cost = 6m */ - smul: function (y) { - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - var w1 = new ctx.FP2(this.a.geta()); - var w2 = new ctx.FP2(this.a.getb()); - var w3; - - w1.mul(y.a.geta()); - w2.mul(y.a.getb()); - - if (y.stype == ctx.FP.SPARSEST || this.stype == ctx.FP.SPARSEST) { - if (y.stype == ctx.FP.SPARSEST && this.stype == ctx.FP.SPARSEST) { - var t = new ctx.FP(this.b.geta().geta()); - t.mul(y.b.geta().geta()); - w3 = new ctx.FP2(t); - } else { - if (y.stype != ctx.FP.SPARSEST) { - w3 = new ctx.FP2(y.b.geta()); - w3.pmul(this.b.geta().geta()); - } else { - w3 = new ctx.FP2(this.b.geta()); - w3.pmul(y.b.geta().geta()); - } - } - } else { - w3 = new ctx.FP2(this.b.geta()); - w3.mul(y.b.geta()); - } - - var ta = new ctx.FP2(this.a.geta()); - var tb = new ctx.FP2(y.a.geta()); - ta.add(this.a.getb()); - ta.norm(); - tb.add(y.a.getb()); - tb.norm(); - var tc = new ctx.FP2(ta); - tc.mul(tb); - var t = new ctx.FP2(w1); - t.add(w2); - t.neg(); - tc.add(t); - - ta.copy(this.a.geta()); - ta.add(this.b.geta()); - ta.norm(); - tb.copy(y.a.geta()); - tb.add(y.b.geta()); - tb.norm(); - var td = new ctx.FP2(ta); - td.mul(tb); - t.copy(w1); - t.add(w3); - t.neg(); - td.add(t); - - ta.copy(this.a.getb()); - ta.add(this.b.geta()); - ta.norm(); - tb.copy(y.a.getb()); - tb.add(y.b.geta()); - tb.norm(); - var te = new ctx.FP2(ta); - te.mul(tb); - t.copy(w2); - t.add(w3); - t.neg(); - te.add(t); - - w2.mul_ip(); - w1.add(w2); - - this.a.geta().copy(w1); - this.a.getb().copy(tc); - this.b.geta().copy(td); - this.b.getb().copy(te); - this.c.geta().copy(w3); - this.c.getb().zero(); - - this.a.norm(); - this.b.norm(); - } else { - var w1 = new ctx.FP2(this.a.geta()); - var w2 = new ctx.FP2(this.a.getb()); - var w3; - - w1.mul(y.a.geta()); - w2.mul(y.a.getb()); - - if (y.stype == ctx.FP.SPARSEST || this.stype == ctx.FP.SPARSEST) { - if (y.stype == ctx.FP.SPARSEST && this.stype == ctx.FP.SPARSEST) { - var t = new ctx.FP(this.c.getb().geta()); - t.mul(y.c.getb().geta()); - w3 = new ctx.FP2(t); - } else { - if (y.type != ctx.FP.SPARSEST) { - w3 = new ctx.FP2(y.c.getb()); - w3.pmul(this.c.getb().geta()); - } else { - w3 = new ctx.FP2(this.c.getb()); - w3.pmul(y.c.getb().geta()); - } - } - } else { - w3 = new ctx.FP2(this.c.getb()); - w3.mul(y.c.getb()); - } - - var ta = new ctx.FP2(this.a.geta()); - var tb = new ctx.FP2(y.a.geta()); - ta.add(this.a.getb()); - ta.norm(); - tb.add(y.a.getb()); - tb.norm(); - var tc = new ctx.FP2(ta); - tc.mul(tb); - var t = new ctx.FP2(w1); - t.add(w2); - t.neg(); - tc.add(t); - - ta.copy(this.a.geta()); - ta.add(this.c.getb()); - ta.norm(); - tb.copy(y.a.geta()); - tb.add(y.c.getb()); - tb.norm(); - var td = new ctx.FP2(ta); - td.mul(tb); - t.copy(w1); - t.add(w3); - t.neg(); - td.add(t); - - ta.copy(this.a.getb()); - ta.add(this.c.getb()); - ta.norm(); - tb.copy(y.a.getb()); - tb.add(y.c.getb()); - tb.norm(); - var te = new ctx.FP2(ta); - te.mul(tb); - t.copy(w2); - t.add(w3); - t.neg(); - te.add(t); - - w2.mul_ip(); - w1.add(w2); - this.a.geta().copy(w1); - this.a.getb().copy(tc); - - w3.mul_ip(); - w3.norm(); - this.b.geta().zero(); - this.b.getb().copy(w3); - - te.norm(); - te.mul_ip(); - this.c.geta().copy(te); - this.c.getb().copy(td); - - this.a.norm(); - this.c.norm(); - } - this.stype = ctx.FP.SPARSE; - }, - - /* FP12 full multiplication w=w*y */ - /* Supports sparse multiplicands */ - /* Usually w is denser than y */ - ssmul: function (y) { - if (this.stype == ctx.FP.ONE) { - this.copy(y); - return; - } - if (y.stype == ctx.FP.ONE) return; - - if (y.stype >= ctx.FP.SPARSE) { - var z0 = new ctx.FP4(this.a); - var z1 = new ctx.FP4(0); - var z2 = new ctx.FP4(0); - var z3 = new ctx.FP4(0); - z0.mul(y.a); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - if (y.stype == ctx.FP.SPARSE || this.stype == ctx.FP.SPARSE) { - z2.getb().copy(this.b.getb()); - z2.getb().mul(y.b.getb()); - z2.geta().zero(); - if (y.stype != ctx.FP.SPARSE) { - z2.geta().copy(this.b.getb()); - z2.geta().mul(y.b.geta()); - } - if (this.stype != ctx.FP.SPARSE) { - z2.geta().copy(this.b.geta()); - z2.geta().mul(y.b.getb()); - } - z2.times_i(); - } else { - z2.copy(this.b); - z2.mul(y.b); - } - } else { - z2.copy(this.b); - z2.mul(y.b); - } - var t0 = new ctx.FP4(this.a); - var t1 = new ctx.FP4(y.a); - t0.add(this.b); - t0.norm(); - t1.add(y.b); - t1.norm(); - - z1.copy(t0); - z1.mul(t1); - t0.copy(this.b); - t0.add(this.c); - t0.norm(); - t1.copy(y.b); - t1.add(y.c); - t1.norm(); - - z3.copy(t0); - z3.mul(t1); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - z1.add(t0); - this.b.copy(z1); - this.b.add(t1); - - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - t1.copy(y.a); - t1.add(y.c); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - if (y.stype == ctx.FP.SPARSE || this.stype == ctx.FP.SPARSE) { - t0.geta().copy(this.c.geta()); - t0.geta().mul(y.c.geta()); - t0.getb().zero(); - if (y.stype != ctx.FP.SPARSE) { - t0.getb().copy(this.c.geta()); - t0.getb().mul(y.c.getb()); - } - if (this.stype != ctx.FP.SPARSE) { - t0.getb().copy(this.c.getb()); - t0.getb().mul(y.c.geta()); - } - } else { - t0.copy(this.c); - t0.mul(y.c); - } - } else { - t0.copy(this.c); - t0.mul(y.c); - } - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - z3.norm(); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } else { - if (this.stype == ctx.FP.SPARSER || this.stype == ctx.FP.SPARSEST) { - this.smul(y); - return; - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - // dense by sparser - 13m - var z0 = new ctx.FP4(this.a); - var z2 = new ctx.FP4(this.b); - var z3 = new ctx.FP4(this.b); - var t0 = new ctx.FP4(0); - var t1 = new ctx.FP4(y.a); - z0.mul(y.a); - - if (y.stype == ctx.FP.SPARSEST) z2.qmul(y.b.geta().geta()); - else z2.pmul(y.b.geta()); - - this.b.add(this.a); - t1.real().add(y.b.geta()); - - t1.norm(); - this.b.norm(); - this.b.mul(t1); - z3.add(this.c); - z3.norm(); - if (y.stype == ctx.FP.SPARSEST) z3.qmul(y.b.geta().geta()); - else z3.pmul(y.b.geta()); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - this.b.add(t0); - - this.b.add(t1); - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - z3.norm(); - t0.mul(y.a); - this.c.copy(z2); - this.c.add(t0); - - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - var z0 = new ctx.FP4(this.a); - var z1 = new ctx.FP4(0); - var z2 = new ctx.FP4(0); - var z3 = new ctx.FP4(0); - var t0 = new ctx.FP4(this.a); - var t1 = new ctx.FP4(0); - - z0.mul(y.a); - t0.add(this.b); - t0.norm(); - - z1.copy(t0); - z1.mul(y.a); - t0.copy(this.b); - t0.add(this.c); - t0.norm(); - - z3.copy(t0); - - if (y.stype == ctx.FP.SPARSEST) z3.qmul(y.c.getb().geta()); - else z3.pmul(y.c.getb()); - z3.times_i(); - - t0.copy(z0); - t0.neg(); - z1.add(t0); - this.b.copy(z1); - z2.copy(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - t1.copy(y.a); - t1.add(y.c); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - t0.copy(this.c); - - if (y.stype == ctx.FP.SPARSEST) t0.qmul(y.c.getb().geta()); - else t0.pmul(y.c.getb()); - t0.times_i(); - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - z3.norm(); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } - } - this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* this=1/this */ - inverse: function () { - var f0 = new ctx.FP4(this.a), - f1 = new ctx.FP4(this.b), - f2 = new ctx.FP4(this.a), - f3 = new ctx.FP4(0); - - f0.sqr(); - f1.mul(this.c); - f1.times_i(); - f0.sub(f1); - f0.norm(); - - f1.copy(this.c); - f1.sqr(); - f1.times_i(); - f2.mul(this.b); - f1.sub(f2); - f1.norm(); - - f2.copy(this.b); - f2.sqr(); - f3.copy(this.a); - f3.mul(this.c); - f2.sub(f3); - f2.norm(); - - f3.copy(this.b); - f3.mul(f2); - f3.times_i(); - this.a.mul(f0); - f3.add(this.a); - this.c.mul(f1); - this.c.times_i(); - - f3.add(this.c); - f3.norm(); - f3.inverse(null); - this.a.copy(f0); - this.a.mul(f3); - this.b.copy(f1); - this.b.mul(f3); - this.c.copy(f2); - this.c.mul(f3); - this.stype = ctx.FP.DENSE; - }, - - /* this=this^p, where p=Modulus, using Frobenius */ - frob: function (f) { - var f2 = new ctx.FP2(f), - f3 = new ctx.FP2(f); - - f2.sqr(); - f3.mul(f2); - - this.a.frob(f3); - this.b.frob(f3); - this.c.frob(f3); - - this.b.pmul(f); - this.c.pmul(f2); - this.stype = ctx.FP.DENSE; - }, - - /* trace function */ - trace: function () { - var t = new ctx.FP4(0); - - t.copy(this.a); - t.imul(3); - t.reduce(); - - return t; - }, - - /* convert this to hex string */ - toString: function () { - return '[' + this.a.toString() + ',' + this.b.toString() + ',' + this.c.toString() + ']'; - }, - - /* convert this to byte array */ - toBytes: function (w) { - var t = []; - this.c.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i] = t[i]; - this.b.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i + 4 * ctx.BIG.MODBYTES] = t[i]; - this.a.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i + 8 * ctx.BIG.MODBYTES] = t[i]; - }, - - /* set this=this^e */ - pow: function (e) { - var e1, e3, w, nb, i, bt, sf; - e1 = new ctx.BIG(e); - e1.norm(); - e3 = new ctx.BIG(e1); - e3.pmul(3); - e3.norm(); - - sf = new FP12(this); - sf.norm(); - w = new FP12(sf); - if (e3.iszilch()) { - w.one(); - return w; - } - nb = e3.nbits(); - - for (i = nb - 2; i >= 1; i--) { - w.usqr(); - bt = e3.bit(i) - e1.bit(i); - - if (bt == 1) { - w.mul(sf); - } - if (bt == -1) { - sf.conj(); - w.mul(sf); - sf.conj(); - } - } - w.reduce(); - - return w; - }, - - /* constant time powering by small integer of max length bts */ - pinpow: function (e, bts) { - var R = [], - i, - b; - - R[0] = new FP12(1); - R[1] = new FP12(this); - - for (i = bts - 1; i >= 0; i--) { - b = (e >> i) & 1; - R[1 - b].mul(R[b]); - R[b].usqr(); - } - - this.copy(R[0]); - }, - - /* Faster compressed powering for unitary elements */ - compow: function (e, r) { - var fa, fb, f, q, m, a, b, g1, g2, c, cp, cpm1, cpm2; - - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - - m = new ctx.BIG(q); - m.mod(r); - - a = new ctx.BIG(e); - a.mod(m); - - b = new ctx.BIG(e); - b.div(m); - - g1 = new FP12(0); - g2 = new FP12(0); - g1.copy(this); - - c = g1.trace(); - - if (b.iszilch()) { - c = c.xtr_pow(e); - return c; - } - - g2.copy(g1); - g2.frob(f); - cp = g2.trace(); - g1.conj(); - g2.mul(g1); - cpm1 = g2.trace(); - g2.mul(g1); - cpm2 = g2.trace(); - - c = c.xtr_pow2(cp, cpm1, cpm2, a, b); - return c; - }, - }; - - /* convert from byte array to FP12 */ - FP12.fromBytes = function (w) { - var a, b, c; - var t = []; - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = w[i]; - c = ctx.FP4.fromBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = w[i + 4 * ctx.BIG.MODBYTES]; - b = ctx.FP4.fromBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = w[i + 8 * ctx.BIG.MODBYTES]; - a = ctx.FP4.fromBytes(t); - return new FP12(a, b, c); - }; - - /* return 1 if b==c, no branching */ - FP12.teq = function (b, c) { - var x = b ^ c; - x -= 1; // if x=0, x now -1 - return (x >> 31) & 1; - }; - - /* p=q0^u0.q1^u1.q2^u2.q3^u3 */ - // Bos & Costello https://eprint.iacr.org/2013/458.pdf - // Faz-Hernandez & Longa & Sanchez https://eprint.iacr.org/2013/158.pdf - // Side channel attack secure - FP12.pow4 = function (q, u) { - var g = [], - r = new FP12(0), - p = new FP12(0), - t = [], - mt = new ctx.BIG(0), - w = [], - s = [], - i, - j, - k, - nb, - bt, - pb; - - for (i = 0; i < 4; i++) { - t[i] = new ctx.BIG(u[i]); - t[i].norm(); - } - - g[0] = new FP12(q[0]); // q[0] - g[1] = new FP12(g[0]); - g[1].mul(q[1]); // q[0].q[1] - g[2] = new FP12(g[0]); - g[2].mul(q[2]); // q[0].q[2] - g[3] = new FP12(g[1]); - g[3].mul(q[2]); // q[0].q[1].q[2] - g[4] = new FP12(q[0]); - g[4].mul(q[3]); // q[0].q[3] - g[5] = new FP12(g[1]); - g[5].mul(q[3]); // q[0].q[1].q[3] - g[6] = new FP12(g[2]); - g[6].mul(q[3]); // q[0].q[2].q[3] - g[7] = new FP12(g[3]); - g[7].mul(q[3]); // q[0].q[1].q[2].q[3] - - // Make it odd - pb = 1 - t[0].parity(); - t[0].inc(pb); - t[0].norm(); - - // Number of bits - mt.zero(); - for (i = 0; i < 4; i++) { - mt.or(t[i]); - } - - nb = 1 + mt.nbits(); - - // Sign pivot - s[nb - 1] = 1; - for (i = 0; i < nb - 1; i++) { - t[0].fshr(1); - s[i] = 2 * t[0].parity() - 1; - } - - // Recoded exponent - for (i = 0; i < nb; i++) { - w[i] = 0; - k = 1; - for (j = 1; j < 4; j++) { - bt = s[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w[i] += bt * k; - k *= 2; - } - } - - // Main loop - p.select(g, 2 * w[nb - 1] + 1); - for (i = nb - 2; i >= 0; i--) { - p.usqr(); - r.select(g, 2 * w[i] + s[i]); - p.mul(r); - } - - // apply correction - r.copy(q[0]); - r.conj(); - r.mul(p); - p.cmove(r, pb); - - p.reduce(); - return p; - }; - - return FP12; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP12: FP12, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp16.js b/packages/bls-verify/src/vendor/amcl-js/src/fp16.js deleted file mode 100644 index 8ce7919e0..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp16.js +++ /dev/null @@ -1,594 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Finite Field arithmetic Fp^16 functions */ - -/* FP16 elements are of the form a+ib, where i is sqrt(sqrt(-1+sqrt(-1))) */ - -var FP16 = function (ctx) { - 'use strict'; - - /* general purpose constructor */ - var FP16 = function (c, d) { - if (c instanceof FP16) { - this.a = new ctx.FP8(c.a); - this.b = new ctx.FP8(c.b); - } else { - this.a = new ctx.FP8(c); - this.b = new ctx.FP8(d); - } - }; - - FP16.prototype = { - /* reduce all components of this mod Modulus */ - reduce: function () { - this.a.reduce(); - this.b.reduce(); - }, - - /* normalise all components of this mod Modulus */ - norm: function () { - this.a.norm(); - this.b.norm(); - }, - - /* test this==0 ? */ - iszilch: function () { - return this.a.iszilch() && this.b.iszilch(); - }, - - toBytes: function (bf) { - var t = []; - this.b.toBytes(t); - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) bf[i] = t[i]; - this.a.toBytes(t); - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) bf[i + 2 * ctx.BIG.MODBYTES] = t[i]; - }, - - /* test this==1 ? */ - isunity: function () { - var one = new ctx.FP8(1); - return this.a.equals(one) && this.b.iszilch(); - }, - - /* conditional copy of g to this depending on d */ - cmove: function (g, d) { - this.a.cmove(g.a, d); - this.b.cmove(g.b, d); - }, - - /* test is w real? That is in a+ib test b is zero */ - isreal: function () { - return this.b.iszilch(); - }, - - /* extract real part a */ - real: function () { - return this.a; - }, - - geta: function () { - return this.a; - }, - - /* extract imaginary part b */ - getb: function () { - return this.b; - }, - - /* test this=x? */ - equals: function (x) { - return this.a.equals(x.a) && this.b.equals(x.b); - }, - - /* copy this=x */ - copy: function (x) { - this.a.copy(x.a); - this.b.copy(x.b); - }, - - /* this=0 */ - zero: function () { - this.a.zero(); - this.b.zero(); - }, - - /* this=1 */ - one: function () { - this.a.one(); - this.b.zero(); - }, - - /* set from two FP8s */ - set: function (c, d) { - this.a.copy(c); - this.b.copy(d); - }, - - /* set a */ - seta: function (c) { - this.a.copy(c); - this.b.zero(); - }, - - /* this=-this */ - neg: function () { - var m = new ctx.FP8(this.a), - t = new ctx.FP8(0); - - this.norm(); - m.add(this.b); - m.neg(); - - t.copy(m); - t.add(this.b); - this.b.copy(m); - this.b.add(this.a); - this.a.copy(t); - this.norm(); - }, - - /* this=conjugate(this) */ - conj: function () { - this.b.neg(); - this.norm(); - }, - - /* this=-conjugate(this) */ - nconj: function () { - this.a.neg(); - this.norm(); - }, - - /* this+=x */ - add: function (x) { - this.a.add(x.a); - this.b.add(x.b); - }, - - /* this-=x */ - sub: function (x) { - var m = new FP16(x); - m.neg(); - this.add(m); - }, - - /* this*=s where s is FP8 */ - pmul: function (s) { - this.a.mul(s); - this.b.mul(s); - }, - - /* this*=s where s is FP2 */ - qmul: function (s) { - this.a.qmul(s); - this.b.qmul(s); - }, - - /* this*=c where s is int */ - imul: function (c) { - this.a.imul(c); - this.b.imul(c); - }, - - /* this*=this */ - sqr: function () { - var t1 = new ctx.FP8(this.a), - t2 = new ctx.FP8(this.b), - t3 = new ctx.FP8(this.a); - - t3.mul(this.b); - t1.add(this.b); - t1.norm(); - t2.times_i(); - - t2.add(this.a); - t2.norm(); - this.a.copy(t1); - - this.a.mul(t2); - - t2.copy(t3); - t2.times_i(); - t2.add(t3); - - t2.neg(); - - this.a.add(t2); - - this.b.copy(t3); - this.b.add(t3); - - this.norm(); - }, - - /* this*=y */ - mul: function (y) { - var t1 = new ctx.FP8(this.a), - t2 = new ctx.FP8(this.b), - t3 = new ctx.FP8(0), - t4 = new ctx.FP8(this.b); - - t1.mul(y.a); - t2.mul(y.b); - t3.copy(y.b); - t3.add(y.a); - t4.add(this.a); - - t3.norm(); - t4.norm(); - - t4.mul(t3); - - t3.copy(t1); - t3.neg(); - t4.add(t3); - - t3.copy(t2); - t3.neg(); - this.b.copy(t4); - this.b.add(t3); - - t2.times_i(); - this.a.copy(t2); - this.a.add(t1); - - this.norm(); - }, - - /* convert to hex string */ - toString: function () { - return '[' + this.a.toString() + ',' + this.b.toString() + ']'; - }, - - /* this=1/this */ - inverse: function () { - //this.norm(); - - var t1 = new ctx.FP8(this.a), - t2 = new ctx.FP8(this.b); - - t1.sqr(); - t2.sqr(); - t2.times_i(); - t2.norm(); // ?? - t1.sub(t2); - t1.inverse(null); - this.a.mul(t1); - t1.neg(); - t1.norm(); - this.b.mul(t1); - }, - - /* this*=i where i = sqrt(-1+sqrt(-1)) */ - times_i: function () { - var s = new ctx.FP8(this.b), - t = new ctx.FP8(this.a); - - s.times_i(); - this.b.copy(t); - - this.a.copy(s); - this.norm(); - }, - - times_i2: function () { - this.a.times_i(); - this.b.times_i(); - }, - - times_i4: function () { - this.a.times_i2(); - this.b.times_i2(); - }, - - /* this=this^q using Frobenius, where q is Modulus */ - frob: function (f) { - var ff = new ctx.FP2(f); - ff.sqr(); - ff.norm(); - this.a.frob(ff); - this.b.frob(ff); - this.b.qmul(f); - this.b.times_i(); - }, - - /* this=this^e */ - pow: function (e) { - var w = new FP16(this), - z = new ctx.BIG(e), - r = new FP16(1), - bt; - w.norm(); - z.norm(); - for (;;) { - bt = z.parity(); - z.fshr(1); - - if (bt === 1) { - r.mul(w); - } - - if (z.iszilch()) { - break; - } - - w.sqr(); - } - r.reduce(); - - return r; - }, - - /* XTR xtr_a function */ - /* - xtr_A: function(w, y, z) { - var r = new FP16(w), - t = new FP16(w); - - r.sub(y); - r.norm(); - r.pmul(this.a); - t.add(y); - t.norm(); - t.pmul(this.b); - t.times_i(); - - this.copy(r); - this.add(t); - this.add(z); - - this.reduce(); - }, -*/ - /* XTR xtr_d function */ - /* - xtr_D: function() { - var w = new FP16(this); - this.sqr(); - w.conj(); - w.add(w); - this.sub(w); - this.reduce(); - }, -*/ - /* r=x^n using XTR method on traces of FP48s */ - /* - xtr_pow: function(n) { - var sf = new FP16(this); - sf.norm(); - var a = new FP16(3), - b = new FP16(sf), - c = new FP16(b), - t = new FP16(0), - r = new FP16(0), - par, v, nb, i; - - c.xtr_D(); - - - par = n.parity(); - v = new ctx.BIG(n); - v.norm(); - v.fshr(1); - - if (par === 0) { - v.dec(1); - v.norm(); - } - - nb = v.nbits(); - for (i = nb - 1; i >= 0; i--) { - if (v.bit(i) != 1) { - t.copy(b); - sf.conj(); - c.conj(); - b.xtr_A(a, sf, c); - sf.conj(); - c.copy(t); - c.xtr_D(); - a.xtr_D(); - } else { - t.copy(a); - t.conj(); - a.copy(b); - a.xtr_D(); - b.xtr_A(c, sf, t); - c.xtr_D(); - } - } - - if (par === 0) { - r.copy(c); - } else { - r.copy(b); - } - r.reduce(); - - return r; - }, -*/ - /* r=ck^a.cl^n using XTR double exponentiation method on traces of FP48s. See Stam thesis. */ - /* - xtr_pow2: function(ck, ckml, ckm2l, a, b) { - - var e = new ctx.BIG(a), - d = new ctx.BIG(b), - w = new ctx.BIG(0), - cu = new FP16(ck), - cv = new FP16(this), - cumv = new FP16(ckml), - cum2v = new FP16(ckm2l), - r = new FP16(0), - t = new FP16(0), - f2 = 0, - i; - - d.norm(); - e.norm(); - - while (d.parity() === 0 && e.parity() === 0) { - d.fshr(1); - e.fshr(1); - f2++; - } - - while (ctx.BIG.comp(d, e) !== 0) { - if (ctx.BIG.comp(d, e) > 0) { - w.copy(e); - w.imul(4); - w.norm(); - - if (ctx.BIG.comp(d, w) <= 0) { - w.copy(d); - d.copy(e); - e.rsub(w); - e.norm(); - - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cum2v.copy(cumv); - cum2v.conj(); - cumv.copy(cv); - cv.copy(cu); - cu.copy(t); - - } else if (d.parity() === 0) { - d.fshr(1); - r.copy(cum2v); - r.conj(); - t.copy(cumv); - t.xtr_A(cu, cv, r); - cum2v.copy(cumv); - cum2v.xtr_D(); - cumv.copy(t); - cu.xtr_D(); - } else if (e.parity() == 1) { - d.sub(e); - d.norm(); - d.fshr(1); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cu.xtr_D(); - cum2v.copy(cv); - cum2v.xtr_D(); - cum2v.conj(); - cv.copy(t); - } else { - w.copy(d); - d.copy(e); - d.fshr(1); - e.copy(w); - t.copy(cumv); - t.xtr_D(); - cumv.copy(cum2v); - cumv.conj(); - cum2v.copy(t); - cum2v.conj(); - t.copy(cv); - t.xtr_D(); - cv.copy(cu); - cu.copy(t); - } - } - if (ctx.BIG.comp(d, e) < 0) { - w.copy(d); - w.imul(4); - w.norm(); - - if (ctx.BIG.comp(e, w) <= 0) { - e.sub(d); - e.norm(); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cum2v.copy(cumv); - cumv.copy(cu); - cu.copy(t); - } else if (e.parity() === 0) { - w.copy(d); - d.copy(e); - d.fshr(1); - e.copy(w); - t.copy(cumv); - t.xtr_D(); - cumv.copy(cum2v); - cumv.conj(); - cum2v.copy(t); - cum2v.conj(); - t.copy(cv); - t.xtr_D(); - cv.copy(cu); - cu.copy(t); - } else if (d.parity() == 1) { - w.copy(e); - e.copy(d); - w.sub(d); - w.norm(); - d.copy(w); - d.fshr(1); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cumv.conj(); - cum2v.copy(cu); - cum2v.xtr_D(); - cum2v.conj(); - cu.copy(cv); - cu.xtr_D(); - cv.copy(t); - } else { - d.fshr(1); - r.copy(cum2v); - r.conj(); - t.copy(cumv); - t.xtr_A(cu, cv, r); - cum2v.copy(cumv); - cum2v.xtr_D(); - cumv.copy(t); - cu.xtr_D(); - } - } - } - r.copy(cv); - r.xtr_A(cu, cumv, cum2v); - for (i = 0; i < f2; i++) { - r.xtr_D(); - } - r = r.xtr_pow(d); - return r; - } -*/ - }; - - FP16.fromBytes = function (bf) { - var t = []; - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = bf[i]; - var tb = ctx.FP8.fromBytes(t); - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = bf[i + 8 * ctx.BIG.MODBYTES]; - var ta = ctx.FP8.fromBytes(t); - return new FP16(ta, tb); - }; - - return FP16; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP16: FP16, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp2.js b/packages/bls-verify/src/vendor/amcl-js/src/fp2.js deleted file mode 100644 index baf3edf14..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp2.js +++ /dev/null @@ -1,483 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Finite Field arithmetic Fp^2 functions */ - -/* FP2 elements are of the form a+ib, where i is sqrt(-1) */ - -var FP2 = function (ctx) { - 'use strict'; - - /* general purpose constructor */ - var FP2 = function (c, d) { - if (c instanceof FP2) { - this.a = new ctx.FP(c.a); - this.b = new ctx.FP(c.b); - } else { - this.a = new ctx.FP(c); - this.b = new ctx.FP(d); - } - }; - - FP2.prototype = { - /* reduce components mod Modulus */ - reduce: function () { - this.a.reduce(); - this.b.reduce(); - }, - - /* normalise components of w */ - norm: function () { - this.a.norm(); - this.b.norm(); - }, - - /* test this=0 ? */ - iszilch: function () { - return this.a.iszilch() && this.b.iszilch(); - }, - - islarger: function () { - if (this.iszilch()) return 0; - var cmp = this.b.islarger(); - if (cmp != 0) return cmp; - return this.a.islarger(); - }, - - toBytes: function (bf) { - var t = []; - this.b.toBytes(t); - for (var i = 0; i < ctx.BIG.MODBYTES; i++) bf[i] = t[i]; - this.a.toBytes(t); - for (var i = 0; i < ctx.BIG.MODBYTES; i++) bf[i + ctx.BIG.MODBYTES] = t[i]; - }, - - /* test this=1 ? */ - isunity: function () { - var one = new ctx.FP(1); - return this.a.equals(one) && this.b.iszilch(); - }, - - /* conditional copy of g to this depending on d */ - cmove: function (g, d) { - this.a.cmove(g.a, d); - this.b.cmove(g.b, d); - }, - - /* test this=x */ - equals: function (x) { - return this.a.equals(x.a) && this.b.equals(x.b); - }, - - /* extract a */ - - geta: function () { - return this.a; - }, - - getA: function () { - return this.a.redc(); - }, - - /* extract b */ - getb: function () { - return this.b; - }, - - getB: function () { - return this.b.redc(); - }, - - /* set from pair of FPs */ - set: function (c, d) { - this.a.copy(c); - this.b.copy(d); - }, - - /* set a */ - seta: function (c) { - this.a.copy(c); - this.b.zero(); - }, - - /* set from two BIGs */ - bset: function (c, d) { - this.a.bcopy(c); - this.b.bcopy(d); - }, - - /* set from one ctx.BIG */ - bseta: function (c) { - this.a.bcopy(c); - this.b.zero(); - }, - - /* copy this=x */ - copy: function (x) { - this.a.copy(x.a); - this.b.copy(x.b); - }, - - /* set this=0 */ - zero: function () { - this.a.zero(); - this.b.zero(); - }, - - /* set this=1 */ - one: function () { - this.a.one(); - this.b.zero(); - }, - - sign: function () { - var p1 = this.a.sign(); - var p2 = this.b.sign(); - if (ctx.FP.BIG_ENDIAN_SIGN) { - var u = this.b.iszilch() ? 1 : 0; - p2 ^= (p1 ^ p2) & u; - return p2; - } else { - var u = this.a.iszilch() ? 1 : 0; - p1 ^= (p1 ^ p2) & u; - return p1; - } - }, - - /* negate this */ - neg: function () { - var m = new ctx.FP(this.a), - t = new ctx.FP(0); - - m.add(this.b); - m.neg(); - t.copy(m); - t.add(this.b); - this.b.copy(m); - this.b.add(this.a); - this.a.copy(t); - }, - - /* conjugate this */ - conj: function () { - this.b.neg(); - this.b.norm(); - }, - - /* this+=a */ - add: function (x) { - this.a.add(x.a); - this.b.add(x.b); - }, - - /* this-=x */ - sub: function (x) { - var m = new FP2(x); - m.neg(); - this.add(m); - }, - - rsub: function (x) { - this.neg(); - this.add(x); - }, - - /* this*=s, where s is FP */ - pmul: function (s) { - this.a.mul(s); - this.b.mul(s); - }, - - /* this*=c, where s is int */ - imul: function (c) { - this.a.imul(c); - this.b.imul(c); - }, - - /* this*=this */ - sqr: function () { - var w1 = new ctx.FP(this.a), - w3 = new ctx.FP(this.a), - mb = new ctx.FP(this.b); - - w1.add(this.b); - w3.add(this.a); - w3.norm(); - this.b.mul(w3); - - mb.neg(); - this.a.add(mb); - - this.a.norm(); - w1.norm(); - - this.a.mul(w1); - }, - - /* this*=y */ - /* Now using Lazy reduction - inputs must be normed */ - mul: function (y) { - var p = new ctx.BIG(0), - pR = new ctx.DBIG(0), - A, - B, - C, - D, - E, - F; - - p.rcopy(ctx.ROM_FIELD.Modulus); - pR.ucopy(p); - - if ((this.a.XES + this.b.XES) * (y.a.XES + y.b.XES) > ctx.FP.FEXCESS) { - if (this.a.XES > 1) { - this.a.reduce(); - } - - if (this.b.XES > 1) { - this.b.reduce(); - } - } - - A = ctx.BIG.mul(this.a.f, y.a.f); - B = ctx.BIG.mul(this.b.f, y.b.f); - - C = new ctx.BIG(this.a.f); - D = new ctx.BIG(y.a.f); - - C.add(this.b.f); - C.norm(); - D.add(y.b.f); - D.norm(); - - E = ctx.BIG.mul(C, D); - F = new ctx.DBIG(0); - F.copy(A); - F.add(B); - B.rsub(pR); - - A.add(B); - A.norm(); - E.sub(F); - E.norm(); - - this.a.f.copy(ctx.FP.mod(A)); - this.a.XES = 3; - this.b.f.copy(ctx.FP.mod(E)); - this.b.XES = 2; - }, - - /* this^e */ - /* - pow: function(e) { - var r = new FP2(1), - w = new FP2(this), - z = new ctx.BIG(e), - bt; - - for (;;) { - bt = z.parity(); - z.fshr(1); - if (bt == 1) { - r.mul(w); - } - - if (z.iszilch()) { - break; - } - w.sqr(); - } - - r.reduce(); - this.copy(r); - }, */ - - qr: function (h) { - var c = new FP2(this); - c.conj(); - c.mul(this); - - return c.geta().qr(h); - }, - - /* sqrt(a+ib) = sqrt(a+sqrt(a*a-n*b*b)/2)+ib/(2*sqrt(a+sqrt(a*a-n*b*b)/2)) */ - sqrt: function (h) { - var w1, w2, w3, w4, hint; - - if (this.iszilch()) { - return; - } - - w1 = new ctx.FP(this.b); - w2 = new ctx.FP(this.a); - w3 = new ctx.FP(this.a); - w4 = new ctx.FP(this.a); - hint = new ctx.FP(this.a); - - w1.sqr(); - w2.sqr(); - w1.add(w2); - w1.norm(); - - w1 = w1.sqrt(h); - - w2.copy(this.a); - w2.add(w1); - w2.norm(); - w2.div2(); - - w1.copy(this.b); - w1.div2(); - var qr = w2.qr(hint); - - // tweak hint - w3.copy(hint); - w3.neg(); - w3.norm(); - w4.copy(w2); - w4.neg(); - w4.norm(); - - w2.cmove(w4, 1 - qr); - hint.cmove(w3, 1 - qr); - - this.a.copy(w2.sqrt(hint)); - w3.copy(w2); - w3.inverse(hint); - w3.mul(this.a); - this.b.copy(w3); - this.b.mul(w1); - w4.copy(this.a); - - this.a.cmove(this.b, 1 - qr); - this.b.cmove(w4, 1 - qr); - - /* - this.a.copy(w2.sqrt(hint)); - w3.copy(w2); w3.inverse(hint); - w3.mul(this.a); - this.b.copy(w3); this.b.mul(w1); - - hint.neg(); hint.norm(); - w2.neg(); w2.norm(); - - w4.copy(w2.sqrt(hint)); - w3.copy(w2); w3.inverse(hint); - w3.mul(w4); - w3.mul(w1); - - this.a.cmove(w3,1-qr); - this.b.cmove(w4,1-qr); -*/ - var sgn = this.sign(); - var nr = new FP2(this); - nr.neg(); - nr.norm(); - this.cmove(nr, sgn); - }, - - /* convert this to hex string */ - toString: function () { - return '[' + this.a.toString() + ',' + this.b.toString() + ']'; - }, - - /* this=1/this */ - inverse: function (h) { - var w1, w2; - - this.norm(); - - w1 = new ctx.FP(this.a); - w2 = new ctx.FP(this.b); - - w1.sqr(); - w2.sqr(); - w1.add(w2); - w1.inverse(h); - this.a.mul(w1); - w1.neg(); - w1.norm(); - this.b.mul(w1); - }, - - /* this/=2 */ - div2: function () { - this.a.div2(); - this.b.div2(); - }, - - /* this*=sqrt(-1) */ - times_i: function () { - var z = new ctx.FP(this.a); //z.copy(this.a); - this.a.copy(this.b); - this.a.neg(); - this.b.copy(z); - }, - - /* w*=(1+sqrt(-1)) */ - /* where X*2-(1+sqrt(-1)) is irreducible for FP4, assumes p=3 mod 8 */ - mul_ip: function () { - var t = new FP2(this); - var i = ctx.FP.QNRI; - this.times_i(); - while (i > 0) { - t.add(t); - t.norm(); - i--; - } - this.add(t); - if (ctx.FP.TOWER == ctx.FP.POSITOWER) { - this.norm(); - this.neg(); - } - }, - - /* w/=(1+sqrt(-1)) */ - div_ip: function () { - var z = new FP2(1 << ctx.FP.QNRI, 1); - z.inverse(null); - this.mul(z); - if (ctx.FP.TOWER == ctx.FP.POSITOWER) { - this.neg(); - this.norm(); - } - }, - }; - - FP2.rand = function (rng) { - return new FP2(ctx.FP.rand(rng), ctx.FP.rand(rng)); - }; - - FP2.fromBytes = function (bf) { - var t = []; - for (var i = 0; i < ctx.BIG.MODBYTES; i++) t[i] = bf[i]; - var tb = ctx.FP.fromBytes(t); - for (var i = 0; i < ctx.BIG.MODBYTES; i++) t[i] = bf[i + ctx.BIG.MODBYTES]; - var ta = ctx.FP.fromBytes(t); - return new FP2(ta, tb); - }; - - return FP2; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP2: FP2, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp24.js b/packages/bls-verify/src/vendor/amcl-js/src/fp24.js deleted file mode 100644 index 768bf1cd4..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp24.js +++ /dev/null @@ -1,1131 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE Fp^24 functions */ - -/* FP24 elements are of the form a+i.b+i^2.c */ - -var FP24 = function (ctx) { - 'use strict'; - - /* general purpose constructor */ - var FP24 = function (d, e, f) { - /* - if (!isNaN(d)) - { - this.a = new ctx.FP8(d); - this.b = new ctx.FP8(0); - this.c = new ctx.FP8(0); - if (d==1) this.stype=ctx.FP.ONE; - else this.stype=ctx.FP.SPARSEST; - } - else - { - if (d instanceof FP24) { - this.a = new ctx.FP8(d.a); - this.b = new ctx.FP8(d.b); - this.c = new ctx.FP8(d.c); - } else { - this.a = new ctx.FP8(d); - this.b = new ctx.FP8(e); - this.c = new ctx.FP8(f); - } - this.stype=ctx.FP.DENSE; - } -*/ - - if (d instanceof FP24) { - // ignore e, d, which are assumed be undefined in this case - this.a = new ctx.FP8(d.a); - this.b = new ctx.FP8(d.b); - this.c = new ctx.FP8(d.c); - this.stype = ctx.FP.DENSE; - } else if (typeof d !== 'undefined' && typeof e !== 'undefined' && typeof f !== 'undefined') { - // all 3 components set to (can be anything that the FP8 constructor supports) - this.a = new ctx.FP8(d); - this.b = new ctx.FP8(e); - this.c = new ctx.FP8(f); - this.stype = ctx.FP.DENSE; - } else if (typeof d === 'number') { - // first component is number - this.a = new ctx.FP8(d); - this.b = new ctx.FP8(0); - this.c = new ctx.FP8(0); - if (d == 1) this.stype = ctx.FP.ONE; - else this.stype = ctx.FP.SPARSER; - } else { - // other cases, including `new ctx.FP24()` fall back to zero - this.a = new ctx.FP8(0); - this.b = new ctx.FP8(0); - this.c = new ctx.FP8(0); - this.stype = ctx.FP.ZERO; - } - }; - - FP24.prototype = { - /* reduce all components of this mod Modulus */ - reduce: function () { - this.a.reduce(); - this.b.reduce(); - this.c.reduce(); - }, - - /* normalize all components of this mod Modulus */ - norm: function () { - this.a.norm(); - this.b.norm(); - this.c.norm(); - }, - - /* test x==0 ? */ - iszilch: function () { - return this.a.iszilch() && this.b.iszilch() && this.c.iszilch(); - }, - - /* test x==1 ? */ - isunity: function () { - var one = new ctx.FP8(1); - return this.a.equals(one) && this.b.iszilch() && this.c.iszilch(); - }, - - /* conditional copy of g to this depending on d */ - cmove: function (g, d) { - this.a.cmove(g.a, d); - this.b.cmove(g.b, d); - this.c.cmove(g.c, d); - d = ~(d - 1); - this.stype ^= (this.stype ^ g.stype) & d; - }, - - /* Constant time select from pre-computed table */ - select: function (g, b) { - var invf = new FP24(0), - m, - babs; - - m = b >> 31; - babs = (b ^ m) - m; - babs = (babs - 1) / 2; - - this.cmove(g[0], FP24.teq(babs, 0)); // conditional move - this.cmove(g[1], FP24.teq(babs, 1)); - this.cmove(g[2], FP24.teq(babs, 2)); - this.cmove(g[3], FP24.teq(babs, 3)); - this.cmove(g[4], FP24.teq(babs, 4)); - this.cmove(g[5], FP24.teq(babs, 5)); - this.cmove(g[6], FP24.teq(babs, 6)); - this.cmove(g[7], FP24.teq(babs, 7)); - - invf.copy(this); - invf.conj(); - this.cmove(invf, m & 1); - }, - - settype: function (w) { - this.stype = w; - }, - - gettype: function () { - return this.stype; - }, - /* extract a from this */ - geta: function () { - return this.a; - }, - - /* extract b */ - getb: function () { - return this.b; - }, - - /* extract c */ - getc: function () { - return this.c; - }, - - /* return 1 if x==y, else 0 */ - equals: function (x) { - return this.a.equals(x.a) && this.b.equals(x.b) && this.c.equals(x.c); - }, - - /* copy this=x */ - copy: function (x) { - this.a.copy(x.a); - this.b.copy(x.b); - this.c.copy(x.c); - this.stype = x.stype; - }, - - /* set this=1 */ - one: function () { - this.a.one(); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.ONE; - }, - - /* set this=0 */ - zero: function () { - this.a.zero(); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.ZERO; - }, - - /* this=conj(this) */ - conj: function () { - this.a.conj(); - this.b.nconj(); - this.c.conj(); - }, - - /* set this from 3 FP8s */ - set: function (d, e, f) { - this.a.copy(d); - this.b.copy(e); - this.c.copy(f); - this.stype = ctx.FP.DENSE; - }, - - /* set this from one ctx.FP8 */ - seta: function (d) { - this.a.copy(d); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.SPARSEST; - }, - - /* Granger-Scott Unitary Squaring */ - usqr: function () { - var A = new ctx.FP8(this.a), - B = new ctx.FP8(this.c), - C = new ctx.FP8(this.b), - D = new ctx.FP8(0); - - this.a.sqr(); - D.copy(this.a); - D.add(this.a); - this.a.add(D); - - A.nconj(); - - A.add(A); - this.a.add(A); - B.sqr(); - B.times_i(); - - D.copy(B); - D.add(B); - B.add(D); - - C.sqr(); - D.copy(C); - D.add(C); - C.add(D); - - this.b.conj(); - this.b.add(this.b); - this.c.nconj(); - - this.c.add(this.c); - this.b.add(B); - this.c.add(C); - this.stype = ctx.FP.DENSE; - this.reduce(); - }, - - /* Chung-Hasan SQR2 method from http://cacr.uwaterloo.ca/techreports/2006/cacr2006-24.pdf */ - sqr: function () { - if (this.stype == ctx.FP.ONE) return; - - var A = new ctx.FP8(this.a), - B = new ctx.FP8(this.b), - C = new ctx.FP8(this.c), - D = new ctx.FP8(this.a); - - A.sqr(); - B.mul(this.c); - B.add(B); - C.sqr(); - D.mul(this.b); - D.add(D); - - this.c.add(this.a); - this.c.add(this.b); - this.c.norm(); - this.c.sqr(); - - this.a.copy(A); - - A.add(B); - A.add(C); - A.add(D); - A.neg(); - B.times_i(); - C.times_i(); - - this.a.add(B); - this.b.copy(C); - this.b.add(D); - this.c.add(A); - if (this.stype == ctx.FP.SPARSER || this.stype == ctx.FP.SPARSEST) this.stype = ctx.FP.SPARSE; - else this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* FP24 full multiplication this=this*y */ - mul: function (y) { - var z0 = new ctx.FP8(this.a), - z1 = new ctx.FP8(0), - z2 = new ctx.FP8(this.b), - z3 = new ctx.FP8(0), - t0 = new ctx.FP8(this.a), - t1 = new ctx.FP8(y.a); - - z0.mul(y.a); - z2.mul(y.b); - - t0.add(this.b); - t1.add(y.b); - - t0.norm(); - t1.norm(); - - z1.copy(t0); - z1.mul(t1); - t0.copy(this.b); - t0.add(this.c); - - t1.copy(y.b); - t1.add(y.c); - - t0.norm(); - t1.norm(); - z3.copy(t0); - z3.mul(t1); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - z1.add(t0); - this.b.copy(z1); - this.b.add(t1); - - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t1.copy(y.a); - t1.add(y.c); - - t0.norm(); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - - t0.copy(this.c); - t0.mul(y.c); - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - // z3.norm(); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* FP24 multiplication w=w*y */ - /* catering for special case that arises from special form of ATE pairing line function */ - /* w and y are both sparser line functions - cost = 6m */ - smul: function (y) { - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - var w1 = new ctx.FP4(this.a.geta()); - var w2 = new ctx.FP4(this.a.getb()); - var w3; - - w1.mul(y.a.geta()); - w2.mul(y.a.getb()); - - if (y.stype == ctx.FP.SPARSEST || this.stype == ctx.FP.SPARSEST) { - if (y.stype == ctx.FP.SPARSEST && this.stype == ctx.FP.SPARSEST) { - var t = new ctx.FP(this.b.geta().geta().geta()); - t.mul(y.b.geta().geta().geta()); - w3 = new ctx.FP4(t); - } else { - if (y.stype != ctx.FP.SPARSEST) { - w3 = new ctx.FP4(y.b.geta()); - w3.qmul(this.b.geta().geta().geta()); - } else { - w3 = new ctx.FP4(this.b.geta()); - w3.qmul(y.b.geta().geta().geta()); - } - } - } else { - w3 = new ctx.FP4(this.b.geta()); - w3.mul(y.b.geta()); - } - - var ta = new ctx.FP4(this.a.geta()); - var tb = new ctx.FP4(y.a.geta()); - ta.add(this.a.getb()); - ta.norm(); - tb.add(y.a.getb()); - tb.norm(); - var tc = new ctx.FP4(ta); - tc.mul(tb); - var t = new ctx.FP4(w1); - t.add(w2); - t.neg(); - tc.add(t); - - ta.copy(this.a.geta()); - ta.add(this.b.geta()); - ta.norm(); - tb.copy(y.a.geta()); - tb.add(y.b.geta()); - tb.norm(); - var td = new ctx.FP4(ta); - td.mul(tb); - t.copy(w1); - t.add(w3); - t.neg(); - td.add(t); - - ta.copy(this.a.getb()); - ta.add(this.b.geta()); - ta.norm(); - tb.copy(y.a.getb()); - tb.add(y.b.geta()); - tb.norm(); - var te = new ctx.FP4(ta); - te.mul(tb); - t.copy(w2); - t.add(w3); - t.neg(); - te.add(t); - - w2.times_i(); - w1.add(w2); - - this.a.geta().copy(w1); - this.a.getb().copy(tc); - this.b.geta().copy(td); - this.b.getb().copy(te); - this.c.geta().copy(w3); - this.c.getb().zero(); - - this.a.norm(); - this.b.norm(); - } else { - var w1 = new ctx.FP4(this.a.geta()); - var w2 = new ctx.FP4(this.a.getb()); - var w3; - - w1.mul(y.a.geta()); - w2.mul(y.a.getb()); - if (y.stype == ctx.FP.SPARSEST || this.stype == ctx.FP.SPARSEST) { - if (y.stype == ctx.FP.SPARSEST && this.stype == ctx.FP.SPARSEST) { - var t = new ctx.FP(this.c.getb().geta().geta()); - t.mul(y.c.getb().geta().geta()); - w3 = new ctx.FP4(t); - } else { - if (y.type != ctx.FP.SPARSEST) { - w3 = new ctx.FP4(y.c.getb()); - w3.qmul(this.c.getb().geta().geta()); - } else { - w3 = new ctx.FP4(this.c.getb()); - w3.qmul(y.c.getb().geta().geta()); - } - } - } else { - w3 = new ctx.FP4(this.c.getb()); - w3.mul(y.c.getb()); - } - - var ta = new ctx.FP4(this.a.geta()); - var tb = new ctx.FP4(y.a.geta()); - ta.add(this.a.getb()); - ta.norm(); - tb.add(y.a.getb()); - tb.norm(); - var tc = new ctx.FP4(ta); - tc.mul(tb); - var t = new ctx.FP4(w1); - t.add(w2); - t.neg(); - tc.add(t); - - ta.copy(this.a.geta()); - ta.add(this.c.getb()); - ta.norm(); - tb.copy(y.a.geta()); - tb.add(y.c.getb()); - tb.norm(); - var td = new ctx.FP4(ta); - td.mul(tb); - t.copy(w1); - t.add(w3); - t.neg(); - td.add(t); - - ta.copy(this.a.getb()); - ta.add(this.c.getb()); - ta.norm(); - tb.copy(y.a.getb()); - tb.add(y.c.getb()); - tb.norm(); - var te = new ctx.FP4(ta); - te.mul(tb); - t.copy(w2); - t.add(w3); - t.neg(); - te.add(t); - - w2.times_i(); - w1.add(w2); - this.a.geta().copy(w1); - this.a.getb().copy(tc); - - w3.times_i(); - w3.norm(); - this.b.geta().zero(); - this.b.getb().copy(w3); - - te.norm(); - te.times_i(); - this.c.geta().copy(te); - this.c.getb().copy(td); - - this.a.norm(); - this.c.norm(); - } - this.stype = ctx.FP.SPARSE; - }, - - /* FP24 full multiplication w=w*y */ - /* Supports sparse multiplicands */ - /* Usually w is denser than y */ - ssmul: function (y) { - if (this.stype == ctx.FP.ONE) { - this.copy(y); - return; - } - if (y.stype == ctx.FP.ONE) return; - - if (y.stype >= ctx.FP.SPARSE) { - var z0 = new ctx.FP8(this.a); - var z1 = new ctx.FP8(0); - var z2 = new ctx.FP8(0); - var z3 = new ctx.FP8(0); - z0.mul(y.a); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - if (y.stype == ctx.FP.SPARSE || this.stype == ctx.FP.SPARSE) { - z2.getb().copy(this.b.getb()); - z2.getb().mul(y.b.getb()); - z2.geta().zero(); - if (y.stype != ctx.FP.SPARSE) { - z2.geta().copy(this.b.getb()); - z2.geta().mul(y.b.geta()); - } - if (this.stype != ctx.FP.SPARSE) { - z2.geta().copy(this.b.geta()); - z2.geta().mul(y.b.getb()); - } - z2.times_i(); - } else { - z2.copy(this.b); - z2.mul(y.b); - } - } else { - z2.copy(this.b); - z2.mul(y.b); - } - var t0 = new ctx.FP8(this.a); - var t1 = new ctx.FP8(y.a); - t0.add(this.b); - t0.norm(); - t1.add(y.b); - t1.norm(); - - z1.copy(t0); - z1.mul(t1); - t0.copy(this.b); - t0.add(this.c); - t0.norm(); - t1.copy(y.b); - t1.add(y.c); - t1.norm(); - - z3.copy(t0); - z3.mul(t1); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - z1.add(t0); - this.b.copy(z1); - this.b.add(t1); - - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - t1.copy(y.a); - t1.add(y.c); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - if (y.stype == ctx.FP.SPARSE || this.stype == ctx.FP.SPARSE) { - t0.geta().copy(this.c.geta()); - t0.geta().mul(y.c.geta()); - t0.getb().zero(); - if (y.stype != ctx.FP.SPARSE) { - t0.getb().copy(this.c.geta()); - t0.getb().mul(y.c.getb()); - } - if (this.stype != ctx.FP.SPARSE) { - t0.getb().copy(this.c.getb()); - t0.getb().mul(y.c.geta()); - } - } else { - t0.copy(this.c); - t0.mul(y.c); - } - } else { - t0.copy(this.c); - t0.mul(y.c); - } - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - z3.norm(); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } else { - if (this.stype == ctx.FP.SPARSER || this.stype == ctx.FP.SPARSEST) { - this.smul(y); - return; - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - // dense by sparser - 13m - var z0 = new ctx.FP8(this.a); - var z2 = new ctx.FP8(this.b); - var z3 = new ctx.FP8(this.b); - var t0 = new ctx.FP8(0); - var t1 = new ctx.FP8(y.a); - z0.mul(y.a); - - if (y.stype == ctx.FP.SPARSEST) z2.tmul(y.b.geta().geta().geta()); - else z2.pmul(y.b.geta()); - - this.b.add(this.a); - t1.geta().add(y.b.geta()); - - t1.norm(); - this.b.norm(); - this.b.mul(t1); - z3.add(this.c); - z3.norm(); - - if (y.stype == ctx.FP.SPARSEST) z3.tmul(y.b.geta().geta().geta()); - else z3.pmul(y.b.geta()); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - this.b.add(t0); - - this.b.add(t1); - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - z3.norm(); - t0.mul(y.a); - this.c.copy(z2); - this.c.add(t0); - - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - var z0 = new ctx.FP8(this.a); - var z1 = new ctx.FP8(0); - var z2 = new ctx.FP8(0); - var z3 = new ctx.FP8(0); - var t0 = new ctx.FP8(this.a); - var t1 = new ctx.FP8(0); - - z0.mul(y.a); - t0.add(this.b); - t0.norm(); - - z1.copy(t0); - z1.mul(y.a); - t0.copy(this.b); - t0.add(this.c); - t0.norm(); - - z3.copy(t0); - - if (y.stype == ctx.FP.SPARSEST) z3.tmul(y.c.getb().geta().geta()); - else z3.pmul(y.c.getb()); - - z3.times_i(); - - t0.copy(z0); - t0.neg(); - z1.add(t0); - this.b.copy(z1); - z2.copy(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - t1.copy(y.a); - t1.add(y.c); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - t0.copy(this.c); - - if (y.stype == ctx.FP.SPARSEST) t0.tmul(y.c.getb().geta().geta()); - else t0.pmul(y.c.getb()); - - t0.times_i(); - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - z3.norm(); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } - } - this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* this=1/this */ - inverse: function () { - var f0 = new ctx.FP8(this.a), - f1 = new ctx.FP8(this.b), - f2 = new ctx.FP8(this.a), - f3 = new ctx.FP8(0); - - f0.sqr(); - f1.mul(this.c); - f1.times_i(); - f0.sub(f1); - f0.norm(); - - f1.copy(this.c); - f1.sqr(); - f1.times_i(); - f2.mul(this.b); - f1.sub(f2); - f1.norm(); - - f2.copy(this.b); - f2.sqr(); - f3.copy(this.a); - f3.mul(this.c); - f2.sub(f3); - f2.norm(); - - f3.copy(this.b); - f3.mul(f2); - f3.times_i(); - this.a.mul(f0); - f3.add(this.a); - this.c.mul(f1); - this.c.times_i(); - - f3.add(this.c); - f3.norm(); - f3.inverse(null); - this.a.copy(f0); - this.a.mul(f3); - this.b.copy(f1); - this.b.mul(f3); - this.c.copy(f2); - this.c.mul(f3); - this.stype = ctx.FP.DENSE; - }, - - /* this=this^p, where p=Modulus, using Frobenius */ - frob: function (f, n) { - var f2 = new ctx.FP2(f), - f3 = new ctx.FP2(f), - i; - - f2.sqr(); - f3.mul(f2); - - f3.mul_ip(); - f3.norm(); - - for (i = 0; i < n; i++) { - this.a.frob(f3); - this.b.frob(f3); - this.c.frob(f3); - - this.b.qmul(f); - this.b.times_i2(); - this.c.qmul(f2); - this.c.times_i2(); - this.c.times_i2(); - } - this.stype = ctx.FP.DENSE; - }, - - /* trace function */ - trace: function () { - var t = new ctx.FP8(0); - - t.copy(this.a); - t.imul(3); - t.reduce(); - - return t; - }, - - /* convert this to hex string */ - toString: function () { - return '[' + this.a.toString() + ',' + this.b.toString() + ',' + this.c.toString() + ']'; - }, - - /* convert this to byte array */ - toBytes: function (w) { - var t = []; - this.c.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i] = t[i]; - this.b.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i + 8 * ctx.BIG.MODBYTES] = t[i]; - this.a.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i + 16 * ctx.BIG.MODBYTES] = t[i]; - }, - - /* set this=this^e */ - pow: function (e) { - var e1, e3, w, nb, i, bt, sf; - - sf = new FP24(this); - sf.norm(); - e1 = new ctx.BIG(e); - e1.norm(); - - e3 = new ctx.BIG(e1); - e3.pmul(3); - e3.norm(); - - w = new FP24(sf); - if (e3.iszilch()) { - w.one(); - return w; - } - nb = e3.nbits(); - - for (i = nb - 2; i >= 1; i--) { - w.usqr(); - bt = e3.bit(i) - e1.bit(i); - - if (bt == 1) { - w.mul(sf); - } - if (bt == -1) { - sf.conj(); - w.mul(sf); - sf.conj(); - } - } - w.reduce(); - - return w; - }, - - /* constant time powering by small integer of max length bts */ - pinpow: function (e, bts) { - var R = [], - i, - b; - - R[0] = new FP24(1); - R[1] = new FP24(this); - - for (i = bts - 1; i >= 0; i--) { - b = (e >> i) & 1; - R[1 - b].mul(R[b]); - R[b].usqr(); - } - - this.copy(R[0]); - }, - - /* Faster compressed powering for unitary elements */ - /* - compow: function(e, r) { - var fa, fb, f, q, m, a, b, g1, g2, c, cp, cpm1, cpm2; - - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - - m = new ctx.BIG(q); - m.mod(r); - - a = new ctx.BIG(e); - a.mod(m); - - b = new ctx.BIG(e); - b.div(m); - - g1 = new FP24(0); - g2 = new FP24(0); - g1.copy(this); - - c = g1.trace(); - - if (b.iszilch()) { - c=c.xtr_pow(e); - return c; - } - - g2.copy(g1); - g2.frob(f,1); - cp = g2.trace(); - g1.conj(); - g2.mul(g1); - cpm1 = g2.trace(); - g2.mul(g1); - cpm2 = g2.trace(); - - c = c.xtr_pow2(cp, cpm1, cpm2, a, b); - return c; - } -*/ - }; - - /* convert from byte array to FP12 */ - FP24.fromBytes = function (w) { - var a, b, c; - var t = []; - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = w[i]; - c = ctx.FP8.fromBytes(t); - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = w[i + 8 * ctx.BIG.MODBYTES]; - b = ctx.FP8.fromBytes(t); - for (var i = 0; i < 8 * ctx.BIG.MODBYTES; i++) t[i] = w[i + 16 * ctx.BIG.MODBYTES]; - a = ctx.FP8.fromBytes(t); - return new FP24(a, b, c); - }; - - /* return 1 if b==c, no branching */ - FP24.teq = function (b, c) { - var x = b ^ c; - x -= 1; // if x=0, x now -1 - return (x >> 31) & 1; - }; - - /* p=q0^u0.q1^u1.q2^u2.q3^u3... */ - // Bos & Costello https://eprint.iacr.org/2013/458.pdf - // Faz-Hernandez & Longa & Sanchez https://eprint.iacr.org/2013/158.pdf - // Side channel attack secure - FP24.pow8 = function (q, u) { - var g1 = [], - g2 = [], - r = new FP24(0), - p = new FP24(0), - t = [], - mt = new ctx.BIG(0), - w1 = [], - s1 = [], - w2 = [], - s2 = [], - i, - j, - k, - nb, - bt, - pb1, - pb2; - - for (i = 0; i < 8; i++) { - t[i] = new ctx.BIG(u[i]); - t[i].norm(); - } - - g1[0] = new FP24(q[0]); // q[0] - g1[1] = new FP24(g1[0]); - g1[1].mul(q[1]); // q[0].q[1] - g1[2] = new FP24(g1[0]); - g1[2].mul(q[2]); // q[0].q[2] - g1[3] = new FP24(g1[1]); - g1[3].mul(q[2]); // q[0].q[1].q[2] - g1[4] = new FP24(q[0]); - g1[4].mul(q[3]); // q[0].q[3] - g1[5] = new FP24(g1[1]); - g1[5].mul(q[3]); // q[0].q[1].q[3] - g1[6] = new FP24(g1[2]); - g1[6].mul(q[3]); // q[0].q[2].q[3] - g1[7] = new FP24(g1[3]); - g1[7].mul(q[3]); // q[0].q[1].q[2].q[3] - - g2[0] = new FP24(q[4]); // q[0] - g2[1] = new FP24(g2[0]); - g2[1].mul(q[5]); // q[0].q[1] - g2[2] = new FP24(g2[0]); - g2[2].mul(q[6]); // q[0].q[2] - g2[3] = new FP24(g2[1]); - g2[3].mul(q[6]); // q[0].q[1].q[2] - g2[4] = new FP24(q[4]); - g2[4].mul(q[7]); // q[0].q[3] - g2[5] = new FP24(g2[1]); - g2[5].mul(q[7]); // q[0].q[1].q[3] - g2[6] = new FP24(g2[2]); - g2[6].mul(q[7]); // q[0].q[2].q[3] - g2[7] = new FP24(g2[3]); - g2[7].mul(q[7]); // q[0].q[1].q[2].q[3] - - // Make it odd - pb1 = 1 - t[0].parity(); - t[0].inc(pb1); - t[0].norm(); - - pb2 = 1 - t[4].parity(); - t[4].inc(pb2); - t[4].norm(); - - // Number of bits - mt.zero(); - for (i = 0; i < 8; i++) { - mt.or(t[i]); - } - - nb = 1 + mt.nbits(); - - // Sign pivot - s1[nb - 1] = 1; - s2[nb - 1] = 1; - for (i = 0; i < nb - 1; i++) { - t[0].fshr(1); - s1[i] = 2 * t[0].parity() - 1; - t[4].fshr(1); - s2[i] = 2 * t[4].parity() - 1; - } - - // Recoded exponent - for (i = 0; i < nb; i++) { - w1[i] = 0; - k = 1; - for (j = 1; j < 4; j++) { - bt = s1[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w1[i] += bt * k; - k *= 2; - } - w2[i] = 0; - k = 1; - for (j = 5; j < 8; j++) { - bt = s2[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w2[i] += bt * k; - k *= 2; - } - } - - // Main loop - p.select(g1, 2 * w1[nb - 1] + 1); - r.select(g2, 2 * w2[nb - 1] + 1); - p.mul(r); - for (i = nb - 2; i >= 0; i--) { - p.usqr(); - r.select(g1, 2 * w1[i] + s1[i]); - p.mul(r); - r.select(g2, 2 * w2[i] + s2[i]); - p.mul(r); - } - - // apply correction - r.copy(q[0]); - r.conj(); - r.mul(p); - p.cmove(r, pb1); - - r.copy(q[4]); - r.conj(); - r.mul(p); - p.cmove(r, pb2); - - p.reduce(); - return p; - }; - - return FP24; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP24: FP24, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp4.js b/packages/bls-verify/src/vendor/amcl-js/src/fp4.js deleted file mode 100644 index 7ad95fa59..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp4.js +++ /dev/null @@ -1,722 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Finite Field arithmetic Fp^4 functions */ - -/* FP4 elements are of the form a+ib, where i is sqrt(-1+sqrt(-1)) */ - -var FP4 = function (ctx) { - 'use strict'; - - /* general purpose constructor */ - var FP4 = function (c, d) { - if (c instanceof FP4) { - this.a = new ctx.FP2(c.a); - this.b = new ctx.FP2(c.b); - } else { - this.a = new ctx.FP2(c); - this.b = new ctx.FP2(d); - } - }; - - FP4.prototype = { - /* reduce all components of this mod Modulus */ - reduce: function () { - this.a.reduce(); - this.b.reduce(); - }, - - /* normalise all components of this mod Modulus */ - norm: function () { - this.a.norm(); - this.b.norm(); - }, - - /* test this==0 ? */ - iszilch: function () { - return this.a.iszilch() && this.b.iszilch(); - }, - - islarger: function () { - if (this.iszilch()) return 0; - var cmp = this.b.larger(); - if (cmp != 0) return cmp; - return this.a.larger(); - }, - - toBytes: function (bf) { - var t = []; - this.b.toBytes(t); - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) bf[i] = t[i]; - this.a.toBytes(t); - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) bf[i + 2 * ctx.BIG.MODBYTES] = t[i]; - }, - - /* test this==1 ? */ - isunity: function () { - var one = new ctx.FP2(1); - return this.a.equals(one) && this.b.iszilch(); - }, - - /* conditional copy of g to this depending on d */ - cmove: function (g, d) { - this.a.cmove(g.a, d); - this.b.cmove(g.b, d); - }, - - /* test is w real? That is in a+ib test b is zero */ - isreal: function () { - return this.b.iszilch(); - }, - - /* extract real part a */ - real: function () { - return this.a; - }, - - geta: function () { - return this.a; - }, - - /* extract imaginary part b */ - getb: function () { - return this.b; - }, - - /* test this=x? */ - equals: function (x) { - return this.a.equals(x.a) && this.b.equals(x.b); - }, - - /* copy this=x */ - copy: function (x) { - this.a.copy(x.a); - this.b.copy(x.b); - }, - - /* this=0 */ - zero: function () { - this.a.zero(); - this.b.zero(); - }, - - /* this=1 */ - one: function () { - this.a.one(); - this.b.zero(); - }, - - /* set from two FP2s */ - set: function (c, d) { - this.a.copy(c); - this.b.copy(d); - }, - - /* set a */ - seta: function (c) { - this.a.copy(c); - this.b.zero(); - }, - - sign: function () { - var p1 = this.a.sign(); - var p2 = this.b.sign(); - if (ctx.FP.BIG_ENDIAN_SIGN) { - var u = this.b.iszilch() ? 1 : 0; - p2 ^= (p1 ^ p2) & u; - return p2; - } else { - var u = this.a.iszilch() ? 1 : 0; - p1 ^= (p1 ^ p2) & u; - return p1; - } - }, - - /* this=-this */ - neg: function () { - this.norm(); - var m = new ctx.FP2(this.a), - t = new ctx.FP2(0); - - m.add(this.b); - m.neg(); - t.copy(m); - t.add(this.b); - this.b.copy(m); - this.b.add(this.a); - this.a.copy(t); - this.norm(); - }, - - /* this=conjugate(this) */ - conj: function () { - this.b.neg(); - this.norm(); - }, - - /* this=-conjugate(this) */ - nconj: function () { - this.a.neg(); - this.norm(); - }, - - /* this+=x */ - add: function (x) { - this.a.add(x.a); - this.b.add(x.b); - }, - - /* this-=x */ - sub: function (x) { - var m = new FP4(x); - m.neg(); - this.add(m); - }, - - rsub: function (x) { - this.neg(); - this.add(x); - }, - - /* this*=s where s is FP2 */ - pmul: function (s) { - this.a.mul(s); - this.b.mul(s); - }, - - /* this*=c where s is int */ - imul: function (c) { - this.a.imul(c); - this.b.imul(c); - }, - - /* this*=this */ - sqr: function () { - // this.norm(); - - var t1 = new ctx.FP2(this.a), - t2 = new ctx.FP2(this.b), - t3 = new ctx.FP2(this.a); - - t3.mul(this.b); - t1.add(this.b); - t1.norm(); - t2.mul_ip(); - - t2.add(this.a); - t2.norm(); - this.a.copy(t1); - - this.a.mul(t2); - - t2.copy(t3); - t2.mul_ip(); - t2.add(t3); - t2.norm(); // ?? - - t2.neg(); - - this.a.add(t2); - - this.b.copy(t3); - this.b.add(t3); - - this.norm(); - }, - - /* this*=y */ - mul: function (y) { - // this.norm(); - - var t1 = new ctx.FP2(this.a), - t2 = new ctx.FP2(this.b), - t3 = new ctx.FP2(0), - t4 = new ctx.FP2(this.b); - - t1.mul(y.a); - t2.mul(y.b); - t3.copy(y.b); - t3.add(y.a); - t4.add(this.a); - - t3.norm(); - t4.norm(); - - t4.mul(t3); - - t3.copy(t1); - t3.neg(); - t4.add(t3); - - t3.copy(t2); - t3.neg(); - this.b.copy(t4); - this.b.add(t3); - - t2.mul_ip(); - this.a.copy(t2); - this.a.add(t1); - - this.norm(); - }, - - /* convert to hex string */ - toString: function () { - return '[' + this.a.toString() + ',' + this.b.toString() + ']'; - }, - - /* this=1/this */ - inverse: function (h) { - this.norm(); - - var t1 = new ctx.FP2(this.a), - t2 = new ctx.FP2(this.b); - - t1.sqr(); - t2.sqr(); - t2.mul_ip(); - t2.norm(); // ?? - t1.sub(t2); - t1.inverse(h); - this.a.mul(t1); - t1.neg(); - t1.norm(); - this.b.mul(t1); - }, - - /* this*=i where i = sqrt(-1+sqrt(-1)) */ - times_i: function () { - var t = new ctx.FP2(this.b); - this.b.copy(this.a); - t.mul_ip(); - this.a.copy(t); - this.norm(); - if (ctx.FP.TOWER == ctx.FP.POSITOWER) { - this.neg(); - this.norm(); - } - }, - - /* this=this^q using Frobenius, where q is Modulus */ - frob: function (f) { - this.a.conj(); - this.b.conj(); - this.b.mul(f); - }, - - /* this=this^e */ - /* - pow: function(e) { - var w = new FP4(this), - z = new ctx.BIG(e), - r = new FP4(1), - bt; - w.norm(); - z.norm(); - for (;;) { - bt = z.parity(); - z.fshr(1); - - if (bt === 1) { - r.mul(w); - } - - if (z.iszilch()) { - break; - } - - w.sqr(); - } - r.reduce(); - - return r; - }, */ - - /* XTR xtr_a function */ - xtr_A: function (w, y, z) { - var r = new FP4(w), - t = new FP4(w); - - //y.norm(); // ?? - r.sub(y); - r.norm(); - r.pmul(this.a); - t.add(y); - t.norm(); - t.pmul(this.b); - t.times_i(); - - this.copy(r); - this.add(t); - this.add(z); - - this.reduce(); - }, - - /* XTR xtr_d function */ - xtr_D: function () { - var w = new FP4(this); - this.sqr(); - w.conj(); - w.add(w); - this.sub(w); - this.reduce(); - }, - - /* r=x^n using XTR method on traces of FP12s */ - xtr_pow: function (n) { - var sf = new FP4(this); - sf.norm(); - var a = new FP4(3), - b = new FP4(sf), - c = new FP4(b), - t = new FP4(0), - r = new FP4(0), - par, - v, - nb, - i; - - c.xtr_D(); - - //n.norm(); - par = n.parity(); - v = new ctx.BIG(n); - v.norm(); - v.fshr(1); - - if (par === 0) { - v.dec(1); - v.norm(); - } - - nb = v.nbits(); - for (i = nb - 1; i >= 0; i--) { - if (v.bit(i) != 1) { - t.copy(b); - sf.conj(); - c.conj(); - b.xtr_A(a, sf, c); - sf.conj(); - c.copy(t); - c.xtr_D(); - a.xtr_D(); - } else { - t.copy(a); - t.conj(); - a.copy(b); - a.xtr_D(); - b.xtr_A(c, sf, t); - c.xtr_D(); - } - } - - if (par === 0) { - r.copy(c); - } else { - r.copy(b); - } - r.reduce(); - - return r; - }, - - /* r=ck^a.cl^n using XTR double exponentiation method on traces of FP12s. See Stam thesis. */ - xtr_pow2: function (ck, ckml, ckm2l, a, b) { - var e = new ctx.BIG(a), - d = new ctx.BIG(b), - w = new ctx.BIG(0), - cu = new FP4(ck), - cv = new FP4(this), - cumv = new FP4(ckml), - cum2v = new FP4(ckm2l), - r = new FP4(0), - t = new FP4(0), - f2 = 0, - i; - - e.norm(); - d.norm(); - - while (d.parity() === 0 && e.parity() === 0) { - d.fshr(1); - e.fshr(1); - f2++; - } - - while (ctx.BIG.comp(d, e) !== 0) { - if (ctx.BIG.comp(d, e) > 0) { - w.copy(e); - w.imul(4); - w.norm(); - - if (ctx.BIG.comp(d, w) <= 0) { - w.copy(d); - d.copy(e); - e.rsub(w); - e.norm(); - - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cum2v.copy(cumv); - cum2v.conj(); - cumv.copy(cv); - cv.copy(cu); - cu.copy(t); - } else if (d.parity() === 0) { - d.fshr(1); - r.copy(cum2v); - r.conj(); - t.copy(cumv); - t.xtr_A(cu, cv, r); - cum2v.copy(cumv); - cum2v.xtr_D(); - cumv.copy(t); - cu.xtr_D(); - } else if (e.parity() == 1) { - d.sub(e); - d.norm(); - d.fshr(1); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cu.xtr_D(); - cum2v.copy(cv); - cum2v.xtr_D(); - cum2v.conj(); - cv.copy(t); - } else { - w.copy(d); - d.copy(e); - d.fshr(1); - e.copy(w); - t.copy(cumv); - t.xtr_D(); - cumv.copy(cum2v); - cumv.conj(); - cum2v.copy(t); - cum2v.conj(); - t.copy(cv); - t.xtr_D(); - cv.copy(cu); - cu.copy(t); - } - } - if (ctx.BIG.comp(d, e) < 0) { - w.copy(d); - w.imul(4); - w.norm(); - - if (ctx.BIG.comp(e, w) <= 0) { - e.sub(d); - e.norm(); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cum2v.copy(cumv); - cumv.copy(cu); - cu.copy(t); - } else if (e.parity() === 0) { - w.copy(d); - d.copy(e); - d.fshr(1); - e.copy(w); - t.copy(cumv); - t.xtr_D(); - cumv.copy(cum2v); - cumv.conj(); - cum2v.copy(t); - cum2v.conj(); - t.copy(cv); - t.xtr_D(); - cv.copy(cu); - cu.copy(t); - } else if (d.parity() == 1) { - w.copy(e); - e.copy(d); - w.sub(d); - w.norm(); - d.copy(w); - d.fshr(1); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cumv.conj(); - cum2v.copy(cu); - cum2v.xtr_D(); - cum2v.conj(); - cu.copy(cv); - cu.xtr_D(); - cv.copy(t); - } else { - d.fshr(1); - r.copy(cum2v); - r.conj(); - t.copy(cumv); - t.xtr_A(cu, cv, r); - cum2v.copy(cumv); - cum2v.xtr_D(); - cumv.copy(t); - cu.xtr_D(); - } - } - } - r.copy(cv); - r.xtr_A(cu, cumv, cum2v); - for (i = 0; i < f2; i++) { - r.xtr_D(); - } - r = r.xtr_pow(d); - return r; - }, - - /* New stuff for ecp4.js */ - - div2: function () { - this.a.div2(); - this.b.div2(); - }, - - div_i: function () { - var u = new ctx.FP2(this.a), - v = new ctx.FP2(this.b); - u.div_ip(); - this.a.copy(v); - this.b.copy(u); - if (ctx.FP.TOWER == ctx.FP.POSITOWER) { - this.neg(); - this.norm(); - } - }, - - qmul: function (s) { - this.a.pmul(s); - this.b.pmul(s); - }, - - /* this^e */ - /* - pow: function(e) { - var r = new FP4(1), - w = new FP4(this), - z = new ctx.BIG(e), - bt; - - for (;;) { - bt = z.parity(); - z.fshr(1); - if (bt == 1) { - r.mul(w); - } - - if (z.iszilch()) { - break; - } - w.sqr(); - } - - r.reduce(); - this.copy(r); - },*/ - - qr: function (h) { - var c = new FP4(this); - c.conj(); - c.mul(this); - return c.geta().qr(h); - }, - - sqrt: function (h) { - if (this.iszilch()) { - return; - } - var wa = new ctx.FP2(this.a), - wb = new ctx.FP2(this.a), - ws = new ctx.FP2(this.b), - wt = new ctx.FP2(this.a); - var hint = new ctx.FP(0); - - ws.sqr(); - wa.sqr(); - ws.mul_ip(); - ws.norm(); - wa.sub(ws); - - ws.copy(wa); - ws.norm(); - ws.sqrt(h); - - wa.copy(wt); - wa.add(ws); - wa.norm(); - wa.div2(); - - wb.copy(this.b); - wb.div2(); - var qr = wa.qr(hint); - - // tweak hint - multiply old hint by Norm(1/Beta)^e where Beta is irreducible polynomial - ws.copy(wa); - var twk = new ctx.FP(0); - twk.rcopy(ctx.ROM_FIELD.TWK); - twk.mul(hint); - ws.div_ip(); - ws.norm(); - - wa.cmove(ws, 1 - qr); - hint.cmove(twk, 1 - qr); - - this.a.copy(wa); - this.a.sqrt(hint); - ws.copy(wa); - ws.inverse(hint); - ws.mul(this.a); - this.b.copy(ws); - this.b.mul(wb); - wt.copy(this.a); - - this.a.cmove(this.b, 1 - qr); - this.b.cmove(wt, 1 - qr); - - var sgn = this.sign(); - var nr = new FP4(this); - nr.neg(); - nr.norm(); - this.cmove(nr, sgn); - }, - }; - - FP4.rand = function (rng) { - return new FP4(ctx.FP2.rand(rng), ctx.FP2.rand(rng)); - }; - - FP4.fromBytes = function (bf) { - var t = []; - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) t[i] = bf[i]; - var tb = ctx.FP2.fromBytes(t); - for (var i = 0; i < 2 * ctx.BIG.MODBYTES; i++) t[i] = bf[i + 2 * ctx.BIG.MODBYTES]; - var ta = ctx.FP2.fromBytes(t); - return new FP4(ta, tb); - }; - - return FP4; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP4: FP4, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp48.js b/packages/bls-verify/src/vendor/amcl-js/src/fp48.js deleted file mode 100644 index 3e4ebb85f..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp48.js +++ /dev/null @@ -1,1225 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* CORE Fp^48 functions */ - -/* FP48 elements are of the form a+i.b+i^2.c */ - -var FP48 = function (ctx) { - 'use strict'; - - /* general purpose constructor */ - var FP48 = function (d, e, f) { - /* - if (!isNaN(d)) - { - this.a = new ctx.FP16(d); - this.b = new ctx.FP16(0); - this.c = new ctx.FP16(0); - if (d==1) this.stype=ctx.FP.ONE; - else this.stype=ctx.FP.SPARSEST; - } - else - { - if (d instanceof FP48) { - this.a = new ctx.FP16(d.a); - this.b = new ctx.FP16(d.b); - this.c = new ctx.FP16(d.c); - } else { - this.a = new ctx.FP16(d); - this.b = new ctx.FP16(e); - this.c = new ctx.FP16(f); - } - this.stype=ctx.FP.DENSE; - } -*/ - - if (d instanceof FP48) { - // ignore e, d, which are assumed be undefined in this case - this.a = new ctx.FP16(d.a); - this.b = new ctx.FP16(d.b); - this.c = new ctx.FP16(d.c); - this.stype = ctx.FP.DENSE; - } else if (typeof d !== 'undefined' && typeof e !== 'undefined' && typeof f !== 'undefined') { - // all 3 components set to (can be anything that the FP16 constructor supports) - this.a = new ctx.FP16(d); - this.b = new ctx.FP16(e); - this.c = new ctx.FP16(f); - this.stype = ctx.FP.DENSE; - } else if (typeof d === 'number') { - // first component is number - this.a = new ctx.FP16(d); - this.b = new ctx.FP16(0); - this.c = new ctx.FP16(0); - if (d == 1) this.stype = ctx.FP.ONE; - else this.stype = ctx.FP.SPARSER; - } else { - // other cases, including `new ctx.FP48()` fall back to zero - this.a = new ctx.FP16(0); - this.b = new ctx.FP16(0); - this.c = new ctx.FP16(0); - this.stype = ctx.FP.ZERO; - } - }; - - FP48.prototype = { - /* reduce all components of this mod Modulus */ - reduce: function () { - this.a.reduce(); - this.b.reduce(); - this.c.reduce(); - }, - - /* normalize all components of this mod Modulus */ - norm: function () { - this.a.norm(); - this.b.norm(); - this.c.norm(); - }, - - /* test x==0 ? */ - iszilch: function () { - return this.a.iszilch() && this.b.iszilch() && this.c.iszilch(); - }, - - /* test x==1 ? */ - isunity: function () { - var one = new ctx.FP16(1); - return this.a.equals(one) && this.b.iszilch() && this.c.iszilch(); - }, - - /* conditional copy of g to this depending on d */ - cmove: function (g, d) { - this.a.cmove(g.a, d); - this.b.cmove(g.b, d); - this.c.cmove(g.c, d); - d = ~(d - 1); - this.stype ^= (this.stype ^ g.stype) & d; - }, - - /* Constant time select from pre-computed table */ - select: function (g, b) { - var invf = new FP48(0), - m, - babs; - - m = b >> 31; - babs = (b ^ m) - m; - babs = (babs - 1) / 2; - - this.cmove(g[0], FP48.teq(babs, 0)); // conditional move - this.cmove(g[1], FP48.teq(babs, 1)); - this.cmove(g[2], FP48.teq(babs, 2)); - this.cmove(g[3], FP48.teq(babs, 3)); - this.cmove(g[4], FP48.teq(babs, 4)); - this.cmove(g[5], FP48.teq(babs, 5)); - this.cmove(g[6], FP48.teq(babs, 6)); - this.cmove(g[7], FP48.teq(babs, 7)); - - invf.copy(this); - invf.conj(); - this.cmove(invf, m & 1); - }, - - settype: function (w) { - this.stype = w; - }, - - gettype: function () { - return this.stype; - }, - - /* extract a from this */ - geta: function () { - return this.a; - }, - - /* extract b */ - getb: function () { - return this.b; - }, - - /* extract c */ - getc: function () { - return this.c; - }, - - /* return 1 if x==y, else 0 */ - equals: function (x) { - return this.a.equals(x.a) && this.b.equals(x.b) && this.c.equals(x.c); - }, - - /* copy this=x */ - copy: function (x) { - this.a.copy(x.a); - this.b.copy(x.b); - this.c.copy(x.c); - this.stype = x.stype; - }, - - /* set this=1 */ - one: function () { - this.a.one(); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.ONE; - }, - - /* set this=0 */ - zero: function () { - this.a.zero(); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.ZERO; - }, - - /* this=conj(this) */ - conj: function () { - this.a.conj(); - this.b.nconj(); - this.c.conj(); - }, - - /* set this from 3 FP16s */ - set: function (d, e, f) { - this.a.copy(d); - this.b.copy(e); - this.c.copy(f); - this.stype = ctx.FP.DENSE; - }, - - /* set this from one ctx.FP16 */ - seta: function (d) { - this.a.copy(d); - this.b.zero(); - this.c.zero(); - this.stype = ctx.FP.SPARSEST; - }, - - /* Granger-Scott Unitary Squaring */ - usqr: function () { - var A = new ctx.FP16(this.a), - B = new ctx.FP16(this.c), - C = new ctx.FP16(this.b), - D = new ctx.FP16(0); - - this.a.sqr(); - D.copy(this.a); - D.add(this.a); - this.a.add(D); - - A.nconj(); - - A.add(A); - this.a.add(A); - B.sqr(); - B.times_i(); - - D.copy(B); - D.add(B); - B.add(D); - - C.sqr(); - D.copy(C); - D.add(C); - C.add(D); - - this.b.conj(); - this.b.add(this.b); - this.c.nconj(); - - this.c.add(this.c); - this.b.add(B); - this.c.add(C); - this.stype = ctx.FP.DENSE; - this.reduce(); - }, - - /* Chung-Hasan SQR2 method from http://cacr.uwaterloo.ca/techreports/2006/cacr2006-24.pdf */ - sqr: function () { - if (this.stype == ctx.FP.ONE) return; - - var A = new ctx.FP16(this.a), - B = new ctx.FP16(this.b), - C = new ctx.FP16(this.c), - D = new ctx.FP16(this.a); - - A.sqr(); - B.mul(this.c); - B.add(B); - C.sqr(); - D.mul(this.b); - D.add(D); - - this.c.add(this.a); - this.c.add(this.b); - this.c.norm(); - this.c.sqr(); - - this.a.copy(A); - - A.add(B); - A.add(C); - A.add(D); - A.neg(); - B.times_i(); - C.times_i(); - - this.a.add(B); - this.b.copy(C); - this.b.add(D); - this.c.add(A); - if (this.stype == ctx.FP.SPARSER || this.stype == ctx.FP.SPARSEST) this.stype = ctx.FP.SPARSE; - else this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* FP48 full multiplication this=this*y */ - mul: function (y) { - var z0 = new ctx.FP16(this.a), - z1 = new ctx.FP16(0), - z2 = new ctx.FP16(this.b), - z3 = new ctx.FP16(0), - t0 = new ctx.FP16(this.a), - t1 = new ctx.FP16(y.a); - - z0.mul(y.a); - z2.mul(y.b); - - t0.add(this.b); - t1.add(y.b); - - t0.norm(); - t1.norm(); - - z1.copy(t0); - z1.mul(t1); - t0.copy(this.b); - t0.add(this.c); - - t1.copy(y.b); - t1.add(y.c); - - t0.norm(); - t1.norm(); - z3.copy(t0); - z3.mul(t1); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - z1.add(t0); - this.b.copy(z1); - this.b.add(t1); - - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t1.copy(y.a); - t1.add(y.c); - - t0.norm(); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - - t0.copy(this.c); - t0.mul(y.c); - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* FP48 multiplication w=w*y */ - /* catering for special case that arises from special form of ATE pairing line function */ - /* w and y are both sparser line functions - cost = 6m */ - smul: function (y) { - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - var w1 = new ctx.FP8(this.a.geta()); - var w2 = new ctx.FP8(this.a.getb()); - var w3; - - w1.mul(y.a.geta()); - w2.mul(y.a.getb()); - if (y.stype == ctx.FP.SPARSEST || this.stype == ctx.FP.SPARSEST) { - if (y.stype == ctx.FP.SPARSEST && this.stype == ctx.FP.SPARSEST) { - var t = new ctx.FP(this.b.geta().geta().geta().geta()); - t.mul(y.b.geta().geta().geta().geta()); - w3 = new ctx.FP8(t); - } else { - if (y.stype != ctx.FP.SPARSEST) { - w3 = new ctx.FP8(y.b.geta()); - w3.tmul(this.b.geta().geta().geta().geta()); - } else { - w3 = new ctx.FP8(this.b.geta()); - w3.tmul(y.b.geta().geta().geta().geta()); - } - } - } else { - w3 = new ctx.FP8(this.b.geta()); - w3.mul(y.b.geta()); - } - - var ta = new ctx.FP8(this.a.geta()); - var tb = new ctx.FP8(y.a.geta()); - ta.add(this.a.getb()); - ta.norm(); - tb.add(y.a.getb()); - tb.norm(); - var tc = new ctx.FP8(ta); - tc.mul(tb); - var t = new ctx.FP8(w1); - t.add(w2); - t.neg(); - tc.add(t); - - ta.copy(this.a.geta()); - ta.add(this.b.geta()); - ta.norm(); - tb.copy(y.a.geta()); - tb.add(y.b.geta()); - tb.norm(); - var td = new ctx.FP8(ta); - td.mul(tb); - t.copy(w1); - t.add(w3); - t.neg(); - td.add(t); - - ta.copy(this.a.getb()); - ta.add(this.b.geta()); - ta.norm(); - tb.copy(y.a.getb()); - tb.add(y.b.geta()); - tb.norm(); - var te = new ctx.FP8(ta); - te.mul(tb); - t.copy(w2); - t.add(w3); - t.neg(); - te.add(t); - - w2.times_i(); - w1.add(w2); - - this.a.geta().copy(w1); - this.a.getb().copy(tc); - this.b.geta().copy(td); - this.b.getb().copy(te); - this.c.geta().copy(w3); - this.c.getb().zero(); - - this.a.norm(); - this.b.norm(); - } else { - var w1 = new ctx.FP8(this.a.geta()); - var w2 = new ctx.FP8(this.a.getb()); - var w3; - - w1.mul(y.a.geta()); - w2.mul(y.a.getb()); - if (y.stype == ctx.FP.SPARSEST || this.stype == ctx.FP.SPARSEST) { - if (y.stype == ctx.FP.SPARSEST && this.stype == ctx.FP.SPARSEST) { - var t = new ctx.FP(this.c.getb().geta().geta().geta()); - t.mul(y.c.getb().geta().geta().geta()); - w3 = new ctx.FP8(t); - } else { - if (y.type != ctx.FP.SPARSEST) { - w3 = new ctx.FP8(y.c.getb()); - w3.tmul(this.c.getb().geta().geta().geta()); - } else { - w3 = new ctx.FP8(this.c.getb()); - w3.tmul(y.c.getb().geta().geta().geta()); - } - } - } else { - w3 = new ctx.FP8(this.c.getb()); - w3.mul(y.c.getb()); - } - var ta = new ctx.FP8(this.a.geta()); - var tb = new ctx.FP8(y.a.geta()); - ta.add(this.a.getb()); - ta.norm(); - tb.add(y.a.getb()); - tb.norm(); - var tc = new ctx.FP8(ta); - tc.mul(tb); - var t = new ctx.FP8(w1); - t.add(w2); - t.neg(); - tc.add(t); - - ta.copy(this.a.geta()); - ta.add(this.c.getb()); - ta.norm(); - tb.copy(y.a.geta()); - tb.add(y.c.getb()); - tb.norm(); - var td = new ctx.FP8(ta); - td.mul(tb); - t.copy(w1); - t.add(w3); - t.neg(); - td.add(t); - - ta.copy(this.a.getb()); - ta.add(this.c.getb()); - ta.norm(); - tb.copy(y.a.getb()); - tb.add(y.c.getb()); - tb.norm(); - var te = new ctx.FP8(ta); - te.mul(tb); - t.copy(w2); - t.add(w3); - t.neg(); - te.add(t); - - w2.times_i(); - w1.add(w2); - this.a.geta().copy(w1); - this.a.getb().copy(tc); - - w3.times_i(); - w3.norm(); - this.b.geta().zero(); - this.b.getb().copy(w3); - - te.norm(); - te.times_i(); - this.c.geta().copy(te); - this.c.getb().copy(td); - - this.a.norm(); - this.c.norm(); - } - this.stype = ctx.FP.SPARSE; - }, - - /* FP48 full multiplication w=w*y */ - /* Supports sparse multiplicands */ - /* Usually w is denser than y */ - ssmul: function (y) { - if (this.stype == ctx.FP.ONE) { - this.copy(y); - return; - } - if (y.stype == ctx.FP.ONE) return; - - if (y.stype >= ctx.FP.SPARSE) { - var z0 = new ctx.FP16(this.a); - var z1 = new ctx.FP16(0); - var z2 = new ctx.FP16(0); - var z3 = new ctx.FP16(0); - z0.mul(y.a); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - if (y.stype == ctx.FP.SPARSE || this.stype == ctx.FP.SPARSE) { - z2.getb().copy(this.b.getb()); - z2.getb().mul(y.b.getb()); - z2.geta().zero(); - if (y.stype != ctx.FP.SPARSE) { - z2.geta().copy(this.b.getb()); - z2.geta().mul(y.b.geta()); - } - if (this.stype != ctx.FP.SPARSE) { - z2.geta().copy(this.b.geta()); - z2.geta().mul(y.b.getb()); - } - z2.times_i(); - } else { - z2.copy(this.b); - z2.mul(y.b); - } - } else { - z2.copy(this.b); - z2.mul(y.b); - } - var t0 = new ctx.FP16(this.a); - var t1 = new ctx.FP16(y.a); - t0.add(this.b); - t0.norm(); - t1.add(y.b); - t1.norm(); - - z1.copy(t0); - z1.mul(t1); - t0.copy(this.b); - t0.add(this.c); - t0.norm(); - t1.copy(y.b); - t1.add(y.c); - t1.norm(); - - z3.copy(t0); - z3.mul(t1); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - z1.add(t0); - this.b.copy(z1); - this.b.add(t1); - - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - t1.copy(y.a); - t1.add(y.c); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - if (y.stype == ctx.FP.SPARSE || this.stype == ctx.FP.SPARSE) { - t0.geta().copy(this.c.geta()); - t0.geta().mul(y.c.geta()); - t0.getb().zero(); - if (y.stype != ctx.FP.SPARSE) { - t0.getb().copy(this.c.geta()); - t0.getb().mul(y.c.getb()); - } - if (this.stype != ctx.FP.SPARSE) { - t0.getb().copy(this.c.getb()); - t0.getb().mul(y.c.geta()); - } - } else { - t0.copy(this.c); - t0.mul(y.c); - } - } else { - t0.copy(this.c); - t0.mul(y.c); - } - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - z3.norm(); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } else { - if (this.stype == ctx.FP.SPARSER || this.stype == ctx.FP.SPARSEST) { - this.smul(y); - return; - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - // dense by sparser - 13m - var z0 = new ctx.FP16(this.a); - var z2 = new ctx.FP16(this.b); - var z3 = new ctx.FP16(this.b); - var t0 = new ctx.FP16(0); - var t1 = new ctx.FP16(y.a); - z0.mul(y.a); - - if (y.stype == ctx.FP.SPARSEST) z2.tmul(y.b.geta().geta().geta().geta()); - else z2.pmul(y.b.geta()); - - this.b.add(this.a); - t1.geta().add(y.b.geta()); - - t1.norm(); - this.b.norm(); - this.b.mul(t1); - z3.add(this.c); - z3.norm(); - - if (y.stype == ctx.FP.SPARSEST) z3.tmul(y.b.geta().geta().geta().geta()); - else z3.pmul(y.b.real()); - - t0.copy(z0); - t0.neg(); - t1.copy(z2); - t1.neg(); - - this.b.add(t0); - - this.b.add(t1); - z3.add(t1); - z2.add(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - z3.norm(); - t0.mul(y.a); - this.c.copy(z2); - this.c.add(t0); - - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - var z0 = new ctx.FP16(this.a); - var z1 = new ctx.FP16(0); - var z2 = new ctx.FP16(0); - var z3 = new ctx.FP16(0); - var t0 = new ctx.FP16(this.a); - var t1 = new ctx.FP16(0); - - z0.mul(y.a); - t0.add(this.b); - t0.norm(); - - z1.copy(t0); - z1.mul(y.a); - t0.copy(this.b); - t0.add(this.c); - t0.norm(); - - z3.copy(t0); - - if (y.stype == ctx.FP.SPARSEST) z3.tmul(y.c.getb().geta().geta().geta()); - else z3.pmul(y.c.getb()); - z3.times_i(); - - t0.copy(z0); - t0.neg(); - z1.add(t0); - this.b.copy(z1); - z2.copy(t0); - - t0.copy(this.a); - t0.add(this.c); - t0.norm(); - t1.copy(y.a); - t1.add(y.c); - t1.norm(); - - t0.mul(t1); - z2.add(t0); - t0.copy(this.c); - - if (y.stype == ctx.FP.SPARSEST) t0.tmul(y.c.getb().geta().geta().geta()); - else t0.pmul(y.c.getb()); - t0.times_i(); - t1.copy(t0); - t1.neg(); - - this.c.copy(z2); - this.c.add(t1); - z3.add(t1); - t0.times_i(); - this.b.add(t0); - z3.norm(); - z3.times_i(); - this.a.copy(z0); - this.a.add(z3); - } - } - this.stype = ctx.FP.DENSE; - this.norm(); - }, - - /* this=1/this */ - inverse: function () { - var f0 = new ctx.FP16(this.a), - f1 = new ctx.FP16(this.b), - f2 = new ctx.FP16(this.a), - f3 = new ctx.FP16(0); - - f0.sqr(); - f1.mul(this.c); - f1.times_i(); - f0.sub(f1); - f0.norm(); - - f1.copy(this.c); - f1.sqr(); - f1.times_i(); - f2.mul(this.b); - f1.sub(f2); - f1.norm(); - - f2.copy(this.b); - f2.sqr(); - f3.copy(this.a); - f3.mul(this.c); - f2.sub(f3); - f2.norm(); - - f3.copy(this.b); - f3.mul(f2); - f3.times_i(); - this.a.mul(f0); - f3.add(this.a); - this.c.mul(f1); - this.c.times_i(); - - f3.add(this.c); - f3.norm(); - f3.inverse(); - this.a.copy(f0); - this.a.mul(f3); - this.b.copy(f1); - this.b.mul(f3); - this.c.copy(f2); - this.c.mul(f3); - this.stype = ctx.FP.DENSE; - }, - - /* this=this^p, where p=Modulus, using Frobenius */ - frob: function (f, n) { - var f2 = new ctx.FP2(f), - f3 = new ctx.FP2(f), - i; - - f2.sqr(); - f3.mul(f2); - - f3.mul_ip(); - f3.norm(); - f3.mul_ip(); - f3.norm(); - - for (i = 0; i < n; i++) { - this.a.frob(f3); - this.b.frob(f3); - this.c.frob(f3); - - this.b.qmul(f); - this.b.times_i4(); - this.b.times_i2(); - this.c.qmul(f2); - this.c.times_i4(); - this.c.times_i4(); - this.c.times_i4(); - } - this.stype = ctx.FP.DENSE; - }, - - /* trace function */ - trace: function () { - var t = new ctx.FP16(0); - - t.copy(this.a); - t.imul(3); - t.reduce(); - - return t; - }, - - /* convert this to hex string */ - toString: function () { - return '[' + this.a.toString() + ',' + this.b.toString() + ',' + this.c.toString() + ']'; - }, - - /* convert this to byte array */ - toBytes: function (w) { - var t = []; - this.c.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i] = t[i]; - this.b.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i + 16 * ctx.BIG.MODBYTES] = t[i]; - this.a.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) w[i + 32 * ctx.BIG.MODBYTES] = t[i]; - }, - - /* set this=this^e */ - pow: function (e) { - var e1, e3, w, nb, i, bt, sf; - - sf = new FP48(this); - sf.norm(); - e1 = new ctx.BIG(e); - e1.norm(); - - e3 = new ctx.BIG(e1); - e3.pmul(3); - e3.norm(); - - w = new FP48(sf); //w.copy(this); - - if (e3.iszilch()) { - w.one(); - return w; - } - nb = e3.nbits(); - - for (i = nb - 2; i >= 1; i--) { - w.usqr(); - bt = e3.bit(i) - e1.bit(i); - - if (bt == 1) { - w.mul(sf); - } - if (bt == -1) { - sf.conj(); - w.mul(sf); - sf.conj(); - } - } - w.reduce(); - - return w; - }, - - /* constant time powering by small integer of max length bts */ - pinpow: function (e, bts) { - var R = [], - i, - b; - - R[0] = new FP48(1); - R[1] = new FP48(this); - - for (i = bts - 1; i >= 0; i--) { - b = (e >> i) & 1; - R[1 - b].mul(R[b]); - R[b].usqr(); - } - - this.copy(R[0]); - }, - - /* Faster compressed powering for unitary elements */ - /* - compow: function(e, r) { - var fa, fb, f, q, m, a, b, g1, g2, c, cp, cpm1, cpm2; - - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - - m = new ctx.BIG(q); - m.mod(r); - - a = new ctx.BIG(e); - a.mod(m); - - b = new ctx.BIG(e); - b.div(m); - - g1 = new FP48(0); - g2 = new FP48(0); - g1.copy(this); - - c = g1.trace(); - - if (b.iszilch()) { - c=c.xtr_pow(e); - return c; - } - - g2.copy(g1); - g2.frob(f,1); - cp = g2.trace(); - g1.conj(); - g2.mul(g1); - cpm1 = g2.trace(); - g2.mul(g1); - cpm2 = g2.trace(); - - c = c.xtr_pow2(cp, cpm1, cpm2, a, b); - return c; - } -*/ - }; - - /* convert from byte array to FP12 */ - FP48.fromBytes = function (w) { - var a, b, c; - var t = []; - for (var i = 0; i < 16 * ctx.BIG.MODBYTES; i++) t[i] = w[i]; - c = ctx.FP16.fromBytes(t); - for (var i = 0; i < 16 * ctx.BIG.MODBYTES; i++) t[i] = w[i + 16 * ctx.BIG.MODBYTES]; - b = ctx.FP16.fromBytes(t); - for (var i = 0; i < 16 * ctx.BIG.MODBYTES; i++) t[i] = w[i + 32 * ctx.BIG.MODBYTES]; - a = ctx.FP16.fromBytes(t); - return new FP48(a, b, c); - }; - - /* return 1 if b==c, no branching */ - FP48.teq = function (b, c) { - var x = b ^ c; - x -= 1; // if x=0, x now -1 - return (x >> 31) & 1; - }; - - /* p=q0^u0.q1^u1.q2^u2.q3^u3... */ - // Bos & Costello https://eprint.iacr.org/2013/458.pdf - // Faz-Hernandez & Longa & Sanchez https://eprint.iacr.org/2013/158.pdf - // Side channel attack secure - FP48.pow16 = function (q, u) { - var g1 = [], - g2 = [], - g3 = [], - g4 = [], - r = new FP48(0), - p = new FP48(0), - t = [], - mt = new ctx.BIG(0), - w1 = [], - s1 = [], - w2 = [], - s2 = [], - w3 = [], - s3 = [], - w4 = [], - s4 = [], - i, - j, - k, - nb, - bt, - pb1, - pb2, - pb3, - pb4; - - for (i = 0; i < 16; i++) { - t[i] = new ctx.BIG(u[i]); - t[i].norm(); - } - - g1[0] = new FP48(q[0]); // q[0] - g1[1] = new FP48(g1[0]); - g1[1].mul(q[1]); // q[0].q[1] - g1[2] = new FP48(g1[0]); - g1[2].mul(q[2]); // q[0].q[2] - g1[3] = new FP48(g1[1]); - g1[3].mul(q[2]); // q[0].q[1].q[2] - g1[4] = new FP48(q[0]); - g1[4].mul(q[3]); // q[0].q[3] - g1[5] = new FP48(g1[1]); - g1[5].mul(q[3]); // q[0].q[1].q[3] - g1[6] = new FP48(g1[2]); - g1[6].mul(q[3]); // q[0].q[2].q[3] - g1[7] = new FP48(g1[3]); - g1[7].mul(q[3]); // q[0].q[1].q[2].q[3] - - g2[0] = new FP48(q[4]); // q[0] - g2[1] = new FP48(g2[0]); - g2[1].mul(q[5]); // q[0].q[1] - g2[2] = new FP48(g2[0]); - g2[2].mul(q[6]); // q[0].q[2] - g2[3] = new FP48(g2[1]); - g2[3].mul(q[6]); // q[0].q[1].q[2] - g2[4] = new FP48(q[4]); - g2[4].mul(q[7]); // q[0].q[3] - g2[5] = new FP48(g2[1]); - g2[5].mul(q[7]); // q[0].q[1].q[3] - g2[6] = new FP48(g2[2]); - g2[6].mul(q[7]); // q[0].q[2].q[3] - g2[7] = new FP48(g2[3]); - g2[7].mul(q[7]); // q[0].q[1].q[2].q[3] - - g3[0] = new FP48(q[8]); // q[0] - g3[1] = new FP48(g3[0]); - g3[1].mul(q[9]); // q[0].q[1] - g3[2] = new FP48(g3[0]); - g3[2].mul(q[10]); // q[0].q[2] - g3[3] = new FP48(g3[1]); - g3[3].mul(q[10]); // q[0].q[1].q[2] - g3[4] = new FP48(q[8]); - g3[4].mul(q[11]); // q[0].q[3] - g3[5] = new FP48(g3[1]); - g3[5].mul(q[11]); // q[0].q[1].q[3] - g3[6] = new FP48(g3[2]); - g3[6].mul(q[11]); // q[0].q[2].q[3] - g3[7] = new FP48(g3[3]); - g3[7].mul(q[11]); // q[0].q[1].q[2].q[3] - - g4[0] = new FP48(q[12]); // q[0] - g4[1] = new FP48(g4[0]); - g4[1].mul(q[13]); // q[0].q[1] - g4[2] = new FP48(g4[0]); - g4[2].mul(q[14]); // q[0].q[2] - g4[3] = new FP48(g4[1]); - g4[3].mul(q[14]); // q[0].q[1].q[2] - g4[4] = new FP48(q[12]); - g4[4].mul(q[15]); // q[0].q[3] - g4[5] = new FP48(g4[1]); - g4[5].mul(q[15]); // q[0].q[1].q[3] - g4[6] = new FP48(g4[2]); - g4[6].mul(q[15]); // q[0].q[2].q[3] - g4[7] = new FP48(g4[3]); - g4[7].mul(q[15]); // q[0].q[1].q[2].q[3] - - // Make it odd - pb1 = 1 - t[0].parity(); - t[0].inc(pb1); - t[0].norm(); - - pb2 = 1 - t[4].parity(); - t[4].inc(pb2); - t[4].norm(); - - pb3 = 1 - t[8].parity(); - t[8].inc(pb3); - t[8].norm(); - - pb4 = 1 - t[12].parity(); - t[12].inc(pb4); - t[12].norm(); - - // Number of bits - mt.zero(); - for (i = 0; i < 16; i++) { - mt.or(t[i]); - } - - nb = 1 + mt.nbits(); - - // Sign pivot - s1[nb - 1] = 1; - s2[nb - 1] = 1; - s3[nb - 1] = 1; - s4[nb - 1] = 1; - for (i = 0; i < nb - 1; i++) { - t[0].fshr(1); - s1[i] = 2 * t[0].parity() - 1; - t[4].fshr(1); - s2[i] = 2 * t[4].parity() - 1; - t[8].fshr(1); - s3[i] = 2 * t[8].parity() - 1; - t[12].fshr(1); - s4[i] = 2 * t[12].parity() - 1; - } - - // Recoded exponent - for (i = 0; i < nb; i++) { - w1[i] = 0; - k = 1; - for (j = 1; j < 4; j++) { - bt = s1[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w1[i] += bt * k; - k *= 2; - } - w2[i] = 0; - k = 1; - for (j = 5; j < 8; j++) { - bt = s2[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w2[i] += bt * k; - k *= 2; - } - w3[i] = 0; - k = 1; - for (j = 9; j < 12; j++) { - bt = s3[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w3[i] += bt * k; - k *= 2; - } - w4[i] = 0; - k = 1; - for (j = 13; j < 16; j++) { - bt = s4[i] * t[j].parity(); - t[j].fshr(1); - t[j].dec(bt >> 1); - t[j].norm(); - w4[i] += bt * k; - k *= 2; - } - } - - // Main loop - p.select(g1, 2 * w1[nb - 1] + 1); - r.select(g2, 2 * w2[nb - 1] + 1); - p.mul(r); - r.select(g3, 2 * w3[nb - 1] + 1); - p.mul(r); - r.select(g4, 2 * w4[nb - 1] + 1); - p.mul(r); - for (i = nb - 2; i >= 0; i--) { - p.usqr(); - r.select(g1, 2 * w1[i] + s1[i]); - p.mul(r); - r.select(g2, 2 * w2[i] + s2[i]); - p.mul(r); - r.select(g3, 2 * w3[i] + s3[i]); - p.mul(r); - r.select(g4, 2 * w4[i] + s4[i]); - p.mul(r); - } - - // apply correction - r.copy(q[0]); - r.conj(); - r.mul(p); - p.cmove(r, pb1); - - r.copy(q[4]); - r.conj(); - r.mul(p); - p.cmove(r, pb2); - - r.copy(q[8]); - r.conj(); - r.mul(p); - p.cmove(r, pb3); - - r.copy(q[12]); - r.conj(); - r.mul(p); - p.cmove(r, pb4); - - p.reduce(); - return p; - }; - - return FP48; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP48: FP48, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/fp8.js b/packages/bls-verify/src/vendor/amcl-js/src/fp8.js deleted file mode 100644 index 0be8b39d0..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/fp8.js +++ /dev/null @@ -1,737 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Finite Field arithmetic Fp^8 functions */ - -/* FP8 elements are of the form a+ib, where i is sqrt(sqrt(-1+sqrt(-1))) */ - -var FP8 = function (ctx) { - 'use strict'; - - /* general purpose constructor */ - var FP8 = function (c, d) { - if (c instanceof FP8) { - this.a = new ctx.FP4(c.a); - this.b = new ctx.FP4(c.b); - } else { - this.a = new ctx.FP4(c); - this.b = new ctx.FP4(d); - } - }; - - FP8.prototype = { - /* reduce all components of this mod Modulus */ - reduce: function () { - this.a.reduce(); - this.b.reduce(); - }, - - /* normalise all components of this mod Modulus */ - norm: function () { - this.a.norm(); - this.b.norm(); - }, - - /* test this==0 ? */ - iszilch: function () { - return this.a.iszilch() && this.b.iszilch(); - }, - - islarger: function () { - if (this.iszilch()) return 0; - var cmp = this.b.larger(); - if (cmp != 0) return cmp; - return this.a.larger(); - }, - - toBytes: function (bf) { - var t = []; - this.b.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) bf[i] = t[i]; - this.a.toBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) bf[i + 4 * ctx.BIG.MODBYTES] = t[i]; - }, - - /* test this==1 ? */ - isunity: function () { - var one = new ctx.FP4(1); - return this.a.equals(one) && this.b.iszilch(); - }, - - /* conditional copy of g to this depending on d */ - cmove: function (g, d) { - this.a.cmove(g.a, d); - this.b.cmove(g.b, d); - }, - - /* test is w real? That is in a+ib test b is zero */ - isreal: function () { - return this.b.iszilch(); - }, - - /* extract real part a */ - real: function () { - return this.a; - }, - - geta: function () { - return this.a; - }, - - /* extract imaginary part b */ - getb: function () { - return this.b; - }, - - /* test this=x? */ - equals: function (x) { - return this.a.equals(x.a) && this.b.equals(x.b); - }, - - /* copy this=x */ - copy: function (x) { - this.a.copy(x.a); - this.b.copy(x.b); - }, - - /* this=0 */ - zero: function () { - this.a.zero(); - this.b.zero(); - }, - - /* this=1 */ - one: function () { - this.a.one(); - this.b.zero(); - }, - - /* set from two FP4s */ - set: function (c, d) { - this.a.copy(c); - this.b.copy(d); - }, - - /* set a */ - seta: function (c) { - this.a.copy(c); - this.b.zero(); - }, - - sign: function () { - var p1 = this.a.sign(); - var p2 = this.b.sign(); - if (ctx.FP.BIG_ENDIAN_SIGN) { - var u = this.b.iszilch() ? 1 : 0; - p2 ^= (p1 ^ p2) & u; - return p2; - } else { - var u = this.a.iszilch() ? 1 : 0; - p1 ^= (p1 ^ p2) & u; - return p1; - } - }, - - /* this=-this */ - neg: function () { - this.norm(); - var m = new ctx.FP4(this.a), - t = new ctx.FP4(0); - - m.add(this.b); - m.neg(); - t.copy(m); - t.add(this.b); - this.b.copy(m); - this.b.add(this.a); - this.a.copy(t); - this.norm(); - }, - - /* this=conjugate(this) */ - conj: function () { - this.b.neg(); - this.norm(); - }, - - /* this=-conjugate(this) */ - nconj: function () { - this.a.neg(); - this.norm(); - }, - - /* this+=x */ - add: function (x) { - this.a.add(x.a); - this.b.add(x.b); - }, - - /* this-=x */ - sub: function (x) { - var m = new FP8(x); - m.neg(); - this.add(m); - }, - - rsub: function (x) { - this.neg(); - this.add(x); - }, - - /* this*=s where s is FP4 */ - pmul: function (s) { - this.a.mul(s); - this.b.mul(s); - }, - - /* this*=c where s is int */ - imul: function (c) { - this.a.imul(c); - this.b.imul(c); - }, - - /* this*=this */ - sqr: function () { - var t1 = new ctx.FP4(this.a), - t2 = new ctx.FP4(this.b), - t3 = new ctx.FP4(this.a); - - t3.mul(this.b); - t1.add(this.b); - t1.norm(); - t2.times_i(); - - t2.add(this.a); - t2.norm(); - this.a.copy(t1); - - this.a.mul(t2); - - t2.copy(t3); - t2.times_i(); - t2.add(t3); - - t2.neg(); - - this.a.add(t2); - - this.b.copy(t3); - this.b.add(t3); - - this.norm(); - }, - - /* this*=y */ - mul: function (y) { - var t1 = new ctx.FP4(this.a), - t2 = new ctx.FP4(this.b), - t3 = new ctx.FP4(0), - t4 = new ctx.FP4(this.b); - - t1.mul(y.a); - t2.mul(y.b); - t3.copy(y.b); - t3.add(y.a); - t4.add(this.a); - - t3.norm(); - t4.norm(); - - t4.mul(t3); - - t3.copy(t1); - t3.neg(); - t4.add(t3); - - t3.copy(t2); - t3.neg(); - this.b.copy(t4); - this.b.add(t3); - - t2.times_i(); - this.a.copy(t2); - this.a.add(t1); - - this.norm(); - }, - - /* convert to hex string */ - toString: function () { - return '[' + this.a.toString() + ',' + this.b.toString() + ']'; - }, - - /* this=1/this */ - inverse: function (h) { - this.norm(); - - var t1 = new ctx.FP4(this.a), - t2 = new ctx.FP4(this.b); - - t1.sqr(); - t2.sqr(); - t2.times_i(); - t2.norm(); // ?? - t1.sub(t2); - t1.inverse(h); - this.a.mul(t1); - t1.neg(); - t1.norm(); - this.b.mul(t1); - }, - - /* this*=i where i = sqrt(-1+sqrt(-1)) */ - times_i: function () { - var s = new ctx.FP4(this.b), - t = new ctx.FP4(this.a); - - s.times_i(); - this.b.copy(t); - - this.a.copy(s); - this.norm(); - if (ctx.FP.TOWER == ctx.FP.POSITOWER) { - this.neg(); - this.norm(); - } - }, - - times_i2: function () { - this.a.times_i(); - this.b.times_i(); - }, - - /* this=this^q using Frobenius, where q is Modulus */ - frob: function (f) { - var ff = new ctx.FP2(f); - ff.sqr(); - ff.mul_ip(); - ff.norm(); - this.a.frob(ff); - this.b.frob(ff); - this.b.pmul(f); - this.b.times_i(); - }, - - /* this=this^e */ - /* - pow: function(e) { - var w = new FP8(this), - z = new ctx.BIG(e), - r = new FP8(1), - bt; - w.norm(); - z.norm(); - for (;;) { - bt = z.parity(); - z.fshr(1); - - if (bt === 1) { - r.mul(w); - } - - if (z.iszilch()) { - break; - } - - w.sqr(); - } - r.reduce(); - - return r; - }, */ - - /* XTR xtr_a function */ - /* - xtr_A: function(w, y, z) { - var r = new FP8(w), - t = new FP8(w); - - r.sub(y); - r.norm(); - r.pmul(this.a); - t.add(y); - t.norm(); - t.pmul(this.b); - t.times_i(); - - this.copy(r); - this.add(t); - this.add(z); - - this.reduce(); - }, -*/ - /* XTR xtr_d function */ - /* - xtr_D: function() { - var w = new FP8(this); //w.copy(this); - this.sqr(); - w.conj(); - w.add(w); - this.sub(w); - this.reduce(); - }, -*/ - /* r=x^n using XTR method on traces of FP24s */ - /* - xtr_pow: function(n) { - var sf = new FP8(this); - sf.norm(); - var a = new FP8(3), - b = new FP8(sf), - c = new FP8(b), - t = new FP8(0), - r = new FP8(0), - par, v, nb, i; - - c.xtr_D(); - - - par = n.parity(); - v = new ctx.BIG(n); - v.norm(); - v.fshr(1); - - if (par === 0) { - v.dec(1); - v.norm(); - } - - nb = v.nbits(); - for (i = nb - 1; i >= 0; i--) { - if (v.bit(i) != 1) { - t.copy(b); - sf.conj(); - c.conj(); - b.xtr_A(a, sf, c); - sf.conj(); - c.copy(t); - c.xtr_D(); - a.xtr_D(); - } else { - t.copy(a); - t.conj(); - a.copy(b); - a.xtr_D(); - b.xtr_A(c, sf, t); - c.xtr_D(); - } - } - - if (par === 0) { - r.copy(c); - } else { - r.copy(b); - } - r.reduce(); - - return r; - }, -*/ - /* r=ck^a.cl^n using XTR double exponentiation method on traces of FP24s. See Stam thesis. */ - /* - xtr_pow2: function(ck, ckml, ckm2l, a, b) { - - var e = new ctx.BIG(a), - d = new ctx.BIG(b), - w = new ctx.BIG(0), - cu = new FP8(ck), - cv = new FP8(this), - cumv = new FP8(ckml), - cum2v = new FP8(ckm2l), - r = new FP8(0), - t = new FP8(0), - f2 = 0, - i; - - e.norm(); - d.norm(); - - while (d.parity() === 0 && e.parity() === 0) { - d.fshr(1); - e.fshr(1); - f2++; - } - - while (ctx.BIG.comp(d, e) !== 0) { - if (ctx.BIG.comp(d, e) > 0) { - w.copy(e); - w.imul(4); - w.norm(); - - if (ctx.BIG.comp(d, w) <= 0) { - w.copy(d); - d.copy(e); - e.rsub(w); - e.norm(); - - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cum2v.copy(cumv); - cum2v.conj(); - cumv.copy(cv); - cv.copy(cu); - cu.copy(t); - - } else if (d.parity() === 0) { - d.fshr(1); - r.copy(cum2v); - r.conj(); - t.copy(cumv); - t.xtr_A(cu, cv, r); - cum2v.copy(cumv); - cum2v.xtr_D(); - cumv.copy(t); - cu.xtr_D(); - } else if (e.parity() == 1) { - d.sub(e); - d.norm(); - d.fshr(1); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cu.xtr_D(); - cum2v.copy(cv); - cum2v.xtr_D(); - cum2v.conj(); - cv.copy(t); - } else { - w.copy(d); - d.copy(e); - d.fshr(1); - e.copy(w); - t.copy(cumv); - t.xtr_D(); - cumv.copy(cum2v); - cumv.conj(); - cum2v.copy(t); - cum2v.conj(); - t.copy(cv); - t.xtr_D(); - cv.copy(cu); - cu.copy(t); - } - } - if (ctx.BIG.comp(d, e) < 0) { - w.copy(d); - w.imul(4); - w.norm(); - - if (ctx.BIG.comp(e, w) <= 0) { - e.sub(d); - e.norm(); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cum2v.copy(cumv); - cumv.copy(cu); - cu.copy(t); - } else if (e.parity() === 0) { - w.copy(d); - d.copy(e); - d.fshr(1); - e.copy(w); - t.copy(cumv); - t.xtr_D(); - cumv.copy(cum2v); - cumv.conj(); - cum2v.copy(t); - cum2v.conj(); - t.copy(cv); - t.xtr_D(); - cv.copy(cu); - cu.copy(t); - } else if (d.parity() == 1) { - w.copy(e); - e.copy(d); - w.sub(d); - w.norm(); - d.copy(w); - d.fshr(1); - t.copy(cv); - t.xtr_A(cu, cumv, cum2v); - cumv.conj(); - cum2v.copy(cu); - cum2v.xtr_D(); - cum2v.conj(); - cu.copy(cv); - cu.xtr_D(); - cv.copy(t); - } else { - d.fshr(1); - r.copy(cum2v); - r.conj(); - t.copy(cumv); - t.xtr_A(cu, cv, r); - cum2v.copy(cumv); - cum2v.xtr_D(); - cumv.copy(t); - cu.xtr_D(); - } - } - } - r.copy(cv); - r.xtr_A(cu, cumv, cum2v); - for (i = 0; i < f2; i++) { - r.xtr_D(); - } - r = r.xtr_pow(d); - return r; - }, -*/ - /* New stuff for ecp4.js */ - - div2: function () { - this.a.div2(); - this.b.div2(); - }, - - div_i: function () { - var u = new ctx.FP4(this.a), - v = new ctx.FP4(this.b); - u.div_i(); - this.a.copy(v); - this.b.copy(u); - if (ctx.FP.TOWER == ctx.FP.POSITOWER) { - this.neg(); - this.norm(); - } - }, - - qmul: function (s) { - this.a.pmul(s); - this.b.pmul(s); - }, - - tmul: function (s) { - this.a.qmul(s); - this.b.qmul(s); - }, - - /* this^e */ - /* - pow: function(e) { - var r = new FP8(1), - w = new FP8(this), - z = new ctx.BIG(e), - bt; - - for (;;) { - bt = z.parity(); - z.fshr(1); - if (bt == 1) { - r.mul(w); - } - - if (z.iszilch()) { - break; - } - w.sqr(); - } - - r.reduce(); - this.copy(r); - },*/ - - qr: function (h) { - var c = new FP8(this); - c.conj(); - c.mul(this); - return c.geta().qr(h); - }, - - sqrt: function (h) { - if (this.iszilch()) { - return; - } - var wa = new ctx.FP4(this.a), - wb = new ctx.FP4(this.a), - ws = new ctx.FP4(this.b), - wt = new ctx.FP4(this.a); - var hint = new ctx.FP(0); - - ws.sqr(); - wa.sqr(); - ws.times_i(); - ws.norm(); - wa.sub(ws); - - ws.copy(wa); - ws.norm(); - ws.sqrt(h); - - wa.copy(wt); - wa.add(ws); - wa.norm(); - wa.div2(); - - wb.copy(this.b); - wb.div2(); - var qr = wa.qr(hint); - - // tweak hint - multiply old hint by Norm(1/Beta)^e where Beta is irreducible polynomial - ws.copy(wa); - var twk = new ctx.FP(0); - twk.rcopy(ctx.ROM_FIELD.TWK); - twk.mul(hint); - ws.div_i(); - ws.norm(); - - wa.cmove(ws, 1 - qr); - hint.cmove(twk, 1 - qr); - - this.a.copy(wa); - this.a.sqrt(hint); - ws.copy(wa); - ws.inverse(hint); - ws.mul(this.a); - this.b.copy(ws); - this.b.mul(wb); - wt.copy(this.a); - - this.a.cmove(this.b, 1 - qr); - this.b.cmove(wt, 1 - qr); - - var sgn = this.sign(); - var nr = new FP8(this); - nr.neg(); - nr.norm(); - this.cmove(nr, sgn); - }, - }; - - FP8.rand = function (rng) { - return new FP8(ctx.FP4.rand(rng), ctx.FP4.rand(rng)); - }; - - FP8.fromBytes = function (bf) { - var t = []; - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = bf[i]; - var tb = ctx.FP4.fromBytes(t); - for (var i = 0; i < 4 * ctx.BIG.MODBYTES; i++) t[i] = bf[i + 4 * ctx.BIG.MODBYTES]; - var ta = ctx.FP4.fromBytes(t); - return new FP8(ta, tb); - }; - - return FP8; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - FP8: FP8, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/gcm.js b/packages/bls-verify/src/vendor/amcl-js/src/gcm.js deleted file mode 100644 index a66c0b39a..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/gcm.js +++ /dev/null @@ -1,471 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Implementation of the ctx.AES-GCM Encryption/Authentication - * - * Some restrictions.. - * 1. Only for use with ctx.AES - * 2. Returned tag is always 128-bits. Truncate at your own risk. - * 3. The order of function calls must follow some rules - * - * Typical sequence of calls.. - * 1. call GCM_init - * 2. call GCM_add_header any number of times, as long as length of header is multiple of 16 bytes (block size) - * 3. call GCM_add_header one last time with any length of header - * 4. call GCM_add_cipher any number of times, as long as length of cipher/plaintext is multiple of 16 bytes - * 5. call GCM_add_cipher one last time with any length of cipher/plaintext - * 6. call GCM_finish to extract the tag. - * - * See http://www.mindspring.com/~dmcgrew/gcm-nist-6.pdf - */ - -var GCM = function (ctx) { - 'use strict'; - - var GCM = function () { - this.table = new Array(128); - for (var i = 0; i < 128; i++) { - this.table[i] = new Array(4); /* 2k bytes */ - } - this.stateX = []; - this.Y_0 = []; - this.counter = 0; - this.lenA = []; - this.lenC = []; - this.status = 0; - this.a = new ctx.AES(); - }; - - // GCM constants - - GCM.ACCEPTING_HEADER = 0; - GCM.ACCEPTING_CIPHER = 1; - GCM.NOT_ACCEPTING_MORE = 2; - GCM.FINISHED = 3; - GCM.ENCRYPTING = 0; - GCM.DECRYPTING = 1; - - GCM.prototype = { - precompute: function (H) { - var b = [], - i, - j, - c; - - for (i = j = 0; i < 4; i++, j += 4) { - b[0] = H[j]; - b[1] = H[j + 1]; - b[2] = H[j + 2]; - b[3] = H[j + 3]; - this.table[0][i] = GCM.pack(b); - } - for (i = 1; i < 128; i++) { - c = 0; - for (j = 0; j < 4; j++) { - this.table[i][j] = c | (this.table[i - 1][j] >>> 1); - c = this.table[i - 1][j] << 31; - } - - if (c !== 0) { - this.table[i][0] ^= 0xe1000000; /* irreducible polynomial */ - } - } - }, - - gf2mul: function () { - /* gf2m mul - Z=H*X mod 2^128 */ - var P = [], - b = [], - i, - j, - m, - k, - c; - - P[0] = P[1] = P[2] = P[3] = 0; - j = 8; - m = 0; - - for (i = 0; i < 128; i++) { - c = (this.stateX[m] >>> --j) & 1; - c = ~c + 1; - for (k = 0; k < 4; k++) { - P[k] ^= this.table[i][k] & c; - } - - if (j === 0) { - j = 8; - m++; - if (m == 16) { - break; - } - } - } - - for (i = j = 0; i < 4; i++, j += 4) { - b = GCM.unpack(P[i]); - this.stateX[j] = b[0]; - this.stateX[j + 1] = b[1]; - this.stateX[j + 2] = b[2]; - this.stateX[j + 3] = b[3]; - } - }, - - wrap: function () { - /* Finish off GHASH */ - var F = [], - L = [], - b = [], - i, - j; - - /* convert lengths from bytes to bits */ - F[0] = (this.lenA[0] << 3) | ((this.lenA[1] & 0xe0000000) >>> 29); - F[1] = this.lenA[1] << 3; - F[2] = (this.lenC[0] << 3) | ((this.lenC[1] & 0xe0000000) >>> 29); - F[3] = this.lenC[1] << 3; - - for (i = j = 0; i < 4; i++, j += 4) { - b = GCM.unpack(F[i]); - L[j] = b[0]; - L[j + 1] = b[1]; - L[j + 2] = b[2]; - L[j + 3] = b[3]; - } - - for (i = 0; i < 16; i++) { - this.stateX[i] ^= L[i]; - } - - this.gf2mul(); - }, - - /* Initialize GCM mode */ - init: function (nk, key, niv, iv) { - /* iv size niv is usually 12 bytes (96 bits). ctx.AES key size nk can be 16,24 or 32 bytes */ - var H = [], - b = [], - i; - - for (i = 0; i < 16; i++) { - H[i] = 0; - this.stateX[i] = 0; - } - - this.a.init(ctx.AES.ECB, nk, key, iv); - this.a.ecb_encrypt(H); /* E(K,0) */ - this.precompute(H); - - this.lenA[0] = this.lenC[0] = this.lenA[1] = this.lenC[1] = 0; - - if (niv == 12) { - for (i = 0; i < 12; i++) { - this.a.f[i] = iv[i]; - } - - b = GCM.unpack(1); - this.a.f[12] = b[0]; - this.a.f[13] = b[1]; - this.a.f[14] = b[2]; - this.a.f[15] = b[3]; /* initialise IV */ - - for (i = 0; i < 16; i++) { - this.Y_0[i] = this.a.f[i]; - } - } else { - this.status = GCM.ACCEPTING_CIPHER; - this.ghash(iv, niv); /* GHASH(H,0,IV) */ - this.wrap(); - - for (i = 0; i < 16; i++) { - this.a.f[i] = this.stateX[i]; - this.Y_0[i] = this.a.f[i]; - this.stateX[i] = 0; - } - - this.lenA[0] = this.lenC[0] = this.lenA[1] = this.lenC[1] = 0; - } - - this.status = GCM.ACCEPTING_HEADER; - }, - - /* Add Header data - included but not encrypted */ - add_header: function (header, len) { - /* Add some header. Won't be encrypted, but will be authenticated. len is length of header */ - var i, - j = 0; - - if (this.status != GCM.ACCEPTING_HEADER) { - return false; - } - - while (j < len) { - for (i = 0; i < 16 && j < len; i++) { - this.stateX[i] ^= header[j++]; - this.lenA[1]++; - this.lenA[1] |= 0; - - if (this.lenA[1] === 0) { - this.lenA[0]++; - } - } - - this.gf2mul(); - } - - if (len % 16 !== 0) { - this.status = GCM.ACCEPTING_CIPHER; - } - - return true; - }, - - ghash: function (plain, len) { - var i, - j = 0; - - if (this.status == GCM.ACCEPTING_HEADER) { - this.status = GCM.ACCEPTING_CIPHER; - } - - if (this.status != GCM.ACCEPTING_CIPHER) { - return false; - } - - while (j < len) { - for (i = 0; i < 16 && j < len; i++) { - this.stateX[i] ^= plain[j++]; - this.lenC[1]++; - this.lenC[1] |= 0; - - if (this.lenC[1] === 0) { - this.lenC[0]++; - } - } - this.gf2mul(); - } - - if (len % 16 !== 0) { - this.status = GCM.NOT_ACCEPTING_MORE; - } - - return true; - }, - - /* Add Plaintext - included and encrypted */ - add_plain: function (plain, len) { - var B = [], - b = [], - cipher = [], - i, - j = 0; - - if (this.status == GCM.ACCEPTING_HEADER) { - this.status = GCM.ACCEPTING_CIPHER; - } - - if (this.status != GCM.ACCEPTING_CIPHER) { - return cipher; - } - - while (j < len) { - b[0] = this.a.f[12]; - b[1] = this.a.f[13]; - b[2] = this.a.f[14]; - b[3] = this.a.f[15]; - this.counter = GCM.pack(b); - this.counter++; - b = GCM.unpack(this.counter); - this.a.f[12] = b[0]; - this.a.f[13] = b[1]; - this.a.f[14] = b[2]; - this.a.f[15] = b[3]; /* increment counter */ - - for (i = 0; i < 16; i++) { - B[i] = this.a.f[i]; - } - - this.a.ecb_encrypt(B); /* encrypt it */ - - for (i = 0; i < 16 && j < len; i++) { - cipher[j] = plain[j] ^ B[i]; - this.stateX[i] ^= cipher[j++]; - this.lenC[1]++; - this.lenC[1] |= 0; - - if (this.lenC[1] === 0) { - this.lenC[0]++; - } - } - - this.gf2mul(); - } - - if (len % 16 !== 0) { - this.status = GCM.NOT_ACCEPTING_MORE; - } - - return cipher; - }, - - /* Add Ciphertext - decrypts to plaintext */ - add_cipher: function (cipher, len) { - var B = [], - b = [], - plain = [], - j = 0, - i, - oc; - - if (this.status == GCM.ACCEPTING_HEADER) { - this.status = GCM.ACCEPTING_CIPHER; - } - - if (this.status != GCM.ACCEPTING_CIPHER) { - return plain; - } - - while (j < len) { - b[0] = this.a.f[12]; - b[1] = this.a.f[13]; - b[2] = this.a.f[14]; - b[3] = this.a.f[15]; - this.counter = GCM.pack(b); - this.counter++; - b = GCM.unpack(this.counter); - this.a.f[12] = b[0]; - this.a.f[13] = b[1]; - this.a.f[14] = b[2]; - this.a.f[15] = b[3]; /* increment counter */ - - for (i = 0; i < 16; i++) { - B[i] = this.a.f[i]; - } - - this.a.ecb_encrypt(B); /* encrypt it */ - - for (i = 0; i < 16 && j < len; i++) { - oc = cipher[j]; - plain[j] = cipher[j] ^ B[i]; - this.stateX[i] ^= oc; - j++; - this.lenC[1]++; - this.lenC[1] |= 0; - - if (this.lenC[1] === 0) { - this.lenC[0]++; - } - } - - this.gf2mul(); - } - - if (len % 16 !== 0) { - this.status = GCM.NOT_ACCEPTING_MORE; - } - - return plain; - }, - - /* Finish and extract Tag */ - finish: function (extract) { - /* Finish off GHASH and extract tag (MAC) */ - var tag = [], - i; - - this.wrap(); - /* extract tag */ - if (extract) { - this.a.ecb_encrypt(this.Y_0); /* E(K,Y0) */ - - for (i = 0; i < 16; i++) { - this.Y_0[i] ^= this.stateX[i]; - } - - for (i = 0; i < 16; i++) { - tag[i] = this.Y_0[i]; - this.Y_0[i] = this.stateX[i] = 0; - } - } - - this.status = GCM.FINISHED; - this.a.end(); - - return tag; - }, - }; - - GCM.pack = function (b) { - /* pack 4 bytes into a 32-bit Word */ - return ((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16) | ((b[2] & 0xff) << 8) | (b[3] & 0xff); - }; - - GCM.unpack = function (a) { - /* unpack bytes from a word */ - var b = []; - - b[3] = a & 0xff; - b[2] = (a >>> 8) & 0xff; - b[1] = (a >>> 16) & 0xff; - b[0] = (a >>> 24) & 0xff; - - return b; - }; - - GCM.hex2bytes = function (s) { - var len = s.length, - data = [], - i; - - for (i = 0; i < len; i += 2) { - data[i / 2] = parseInt(s.substr(i, 2), 16); - } - - return data; - }; - - GCM.encrypt = function (C, T, K, IV, H, P) { - var g = new GCM(); - g.init(K.length, K, IV.length, IV); - g.add_header(H, H.length); - var b = g.add_plain(P, P.length); - for (var i = 0; i < b.length; i++) C[i] = b[i]; - b = g.finish(true); - for (var i = 0; i < b.length; i++) T[i] = b[i]; - }; - - GCM.decrypt = function (P, T, K, IV, H, C) { - var g = new GCM(); - g.init(K.length, K, IV.length, IV); - g.add_header(H, H.length); - var b = g.add_cipher(C, C.length); - for (var i = 0; i < b.length; i++) P[i] = b[i]; - b = g.finish(true); - for (var i = 0; i < b.length; i++) T[i] = b[i]; - }; - - return GCM; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - GCM: GCM, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/hash256.js b/packages/bls-verify/src/vendor/amcl-js/src/hash256.js deleted file mode 100644 index 7a629e5d1..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/hash256.js +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var HASH256 = function () { - 'use strict'; - - var HASH256 = function () { - this.length = []; - this.h = []; - this.w = []; - this.init(); - }; - - HASH256.prototype = { - transform: function () { - /* basic transformation step */ - var a, b, c, d, e, f, g, hh, t1, t2, j; - - for (j = 16; j < 64; j++) { - this.w[j] = - (HASH256.theta1(this.w[j - 2]) + - this.w[j - 7] + - HASH256.theta0(this.w[j - 15]) + - this.w[j - 16]) | - 0; - } - - a = this.h[0]; - b = this.h[1]; - c = this.h[2]; - d = this.h[3]; - e = this.h[4]; - f = this.h[5]; - g = this.h[6]; - hh = this.h[7]; - - for (j = 0; j < 64; j++) { - /* 64 times - mush it up */ - t1 = (hh + HASH256.Sig1(e) + HASH256.Ch(e, f, g) + HASH256.HK[j] + this.w[j]) | 0; - t2 = (HASH256.Sig0(a) + HASH256.Maj(a, b, c)) | 0; - hh = g; - g = f; - f = e; - e = (d + t1) | 0; // Need to knock these back down to prevent 52-bit overflow - d = c; - c = b; - b = a; - a = (t1 + t2) | 0; - } - this.h[0] += a; - this.h[1] += b; - this.h[2] += c; - this.h[3] += d; - this.h[4] += e; - this.h[5] += f; - this.h[6] += g; - this.h[7] += hh; - }, - - /* Initialise Hash function */ - init: function () { - /* initialise */ - var i; - - for (i = 0; i < 64; i++) { - this.w[i] = 0; - } - this.length[0] = this.length[1] = 0; - this.h[0] = HASH256.H[0]; - this.h[1] = HASH256.H[1]; - this.h[2] = HASH256.H[2]; - this.h[3] = HASH256.H[3]; - this.h[4] = HASH256.H[4]; - this.h[5] = HASH256.H[5]; - this.h[6] = HASH256.H[6]; - this.h[7] = HASH256.H[7]; - }, - - copy: function (b) { - for (var i = 0; i < 64; i++) { - this.w[i] = b.w[i]; - } - this.length[0] = b.length[0]; - this.length[1] = b.length[1]; - for (var i = 0; i < 8; i++) { - this.h[i] = b.h[i]; - } - }, - - /* process a single byte */ - process: function (byt) { - /* process the next message byte */ - var cnt; - - cnt = (this.length[0] >>> 5) % 16; - this.w[cnt] <<= 8; - this.w[cnt] |= byt & 0xff; - this.length[0] += 8; - - if ((this.length[0] & 0xffffffff) === 0) { - this.length[1]++; - this.length[0] = 0; - } - - if (this.length[0] % 512 === 0) { - this.transform(); - } - }, - - /* process an array of bytes */ - process_array: function (b) { - for (var i = 0; i < b.length; i++) { - this.process(b[i]); - } - }, - - /* process a 32-bit integer */ - process_num: function (n) { - this.process((n >> 24) & 0xff); - this.process((n >> 16) & 0xff); - this.process((n >> 8) & 0xff); - this.process(n & 0xff); - }, - - hash: function () { - /* pad message and finish - supply digest */ - var digest = [], - len0, - len1, - i; - - len0 = this.length[0]; - len1 = this.length[1]; - this.process(0x80); - - while (this.length[0] % 512 != 448) { - this.process(0); - } - - this.w[14] = len1; - this.w[15] = len0; - this.transform(); - - for (i = 0; i < HASH256.len; i++) { - /* convert to bytes */ - digest[i] = (this.h[i >>> 2] >> (8 * (3 - (i % 4)))) & 0xff; - } - this.init(); - - return digest; - }, - - continuing_hash() { - var sh = new HASH256(); - sh.copy(this); - return sh.hash(); - }, - }; - - /* static functions */ - - HASH256.S = function (n, x) { - return (x >>> n) | (x << (32 - n)); - }; - - HASH256.R = function (n, x) { - return x >>> n; - }; - - HASH256.Ch = function (x, y, z) { - return (x & y) ^ (~x & z); - }; - - HASH256.Maj = function (x, y, z) { - return (x & y) ^ (x & z) ^ (y & z); - }; - - HASH256.Sig0 = function (x) { - return HASH256.S(2, x) ^ HASH256.S(13, x) ^ HASH256.S(22, x); - }; - - HASH256.Sig1 = function (x) { - return HASH256.S(6, x) ^ HASH256.S(11, x) ^ HASH256.S(25, x); - }; - - HASH256.theta0 = function (x) { - return HASH256.S(7, x) ^ HASH256.S(18, x) ^ HASH256.R(3, x); - }; - - HASH256.theta1 = function (x) { - return HASH256.S(17, x) ^ HASH256.S(19, x) ^ HASH256.R(10, x); - }; - - /* constants */ - HASH256.len = 32; - - HASH256.H = [ - 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, - ]; - - HASH256.HK = [ - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, - ]; - - return HASH256; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - HASH256: HASH256, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/hash384.js b/packages/bls-verify/src/vendor/amcl-js/src/hash384.js deleted file mode 100644 index d27028ae3..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/hash384.js +++ /dev/null @@ -1,361 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var HASH384 = function (ctx) { - 'use strict'; - - var HASH384 = function () { - this.length = []; - this.h = []; - this.w = []; - this.init(); - }; - - HASH384.prototype = { - transform: function () { - /* basic transformation step */ - var a, b, c, d, e, f, g, hh, t1, t2, j; - - for (j = 16; j < 80; j++) { - this.w[j] = HASH384.theta1(this.w[j - 2]) - .add(this.w[j - 7]) - .add(HASH384.theta0(this.w[j - 15])) - .add(this.w[j - 16]); - } - - a = this.h[0].copy(); - b = this.h[1].copy(); - c = this.h[2].copy(); - d = this.h[3].copy(); - e = this.h[4].copy(); - f = this.h[5].copy(); - g = this.h[6].copy(); - hh = this.h[7].copy(); - - for (j = 0; j < 80; j++) { - /* 80 times - mush it up */ - t1 = hh.copy(); - t1.add(HASH384.Sig1(e)).add(HASH384.Ch(e, f, g)).add(HASH384.HK[j]).add(this.w[j]); - - t2 = HASH384.Sig0(a); - t2.add(HASH384.Maj(a, b, c)); - hh = g; - g = f; - f = e; - e = d.copy(); - e.add(t1); - - d = c; - c = b; - b = a; - a = t1.copy(); - a.add(t2); - } - - this.h[0].add(a); - this.h[1].add(b); - this.h[2].add(c); - this.h[3].add(d); - this.h[4].add(e); - this.h[5].add(f); - this.h[6].add(g); - this.h[7].add(hh); - }, - - copy: function (b) { - for (var i = 0; i < 80; i++) { - this.w[i] = b.w[i].copy(); - } - this.length[0] = b.length[0].copy(); - this.length[1] = b.length[1].copy(); - for (var i = 0; i < 8; i++) { - this.h[i] = b.h[i].copy(); - } - }, - - /* Initialise Hash function */ - init: function () { - /* initialise */ - var i; - - for (i = 0; i < 80; i++) { - this.w[i] = new ctx.UInt64(0, 0); - } - this.length[0] = new ctx.UInt64(0, 0); - this.length[1] = new ctx.UInt64(0, 0); - this.h[0] = HASH384.H[0].copy(); - this.h[1] = HASH384.H[1].copy(); - this.h[2] = HASH384.H[2].copy(); - this.h[3] = HASH384.H[3].copy(); - this.h[4] = HASH384.H[4].copy(); - this.h[5] = HASH384.H[5].copy(); - this.h[6] = HASH384.H[6].copy(); - this.h[7] = HASH384.H[7].copy(); - }, - - /* process a single byte */ - process: function (byt) { - /* process the next message byte */ - var cnt, e; - - cnt = (this.length[0].bot >>> 6) % 16; - this.w[cnt].shlb(); - this.w[cnt].bot |= byt & 0xff; - - e = new ctx.UInt64(0, 8); - this.length[0].add(e); - - if (this.length[0].top === 0 && this.length[0].bot == 0) { - e = new ctx.UInt64(0, 1); - this.length[1].add(e); - } - - if (this.length[0].bot % 1024 === 0) { - this.transform(); - } - }, - - /* process an array of bytes */ - process_array: function (b) { - for (var i = 0; i < b.length; i++) { - this.process(b[i]); - } - }, - - /* process a 32-bit integer */ - process_num: function (n) { - this.process((n >> 24) & 0xff); - this.process((n >> 16) & 0xff); - this.process((n >> 8) & 0xff); - this.process(n & 0xff); - }, - - hash: function () { - /* pad message and finish - supply digest */ - var digest = [], - len0, - len1, - i; - - len0 = this.length[0].copy(); - len1 = this.length[1].copy(); - this.process(0x80); - while (this.length[0].bot % 1024 != 896) { - this.process(0); - } - - this.w[14] = len1; - this.w[15] = len0; - this.transform(); - - for (i = 0; i < HASH384.len; i++) { - /* convert to bytes */ - digest[i] = HASH384.R(8 * (7 - (i % 8)), this.h[i >>> 3]).bot & 0xff; - } - - this.init(); - - return digest; - }, - - continuing_hash() { - var sh = new HASH384(); - sh.copy(this); - return sh.hash(); - }, - }; - - /* static functions */ - HASH384.S = function (n, x) { - if (n == 0) { - return x; - } - - if (n < 32) { - return new ctx.UInt64( - (x.top >>> n) | (x.bot << (32 - n)), - (x.bot >>> n) | (x.top << (32 - n)), - ); - } else { - return new ctx.UInt64( - (x.bot >>> (n - 32)) | (x.top << (64 - n)), - (x.top >>> (n - 32)) | (x.bot << (64 - n)), - ); - } - }; - - HASH384.R = function (n, x) { - if (n == 0) { - return x; - } - - if (n < 32) { - return new ctx.UInt64(x.top >>> n, (x.bot >>> n) | (x.top << (32 - n))); - } else { - return new ctx.UInt64(0, x.top >>> (n - 32)); - } - }; - - HASH384.Ch = function (x, y, z) { - return new ctx.UInt64((x.top & y.top) ^ (~x.top & z.top), (x.bot & y.bot) ^ (~x.bot & z.bot)); - }; - - HASH384.Maj = function (x, y, z) { - return new ctx.UInt64( - (x.top & y.top) ^ (x.top & z.top) ^ (y.top & z.top), - (x.bot & y.bot) ^ (x.bot & z.bot) ^ (y.bot & z.bot), - ); - }; - - HASH384.Sig0 = function (x) { - var r1 = HASH384.S(28, x), - r2 = HASH384.S(34, x), - r3 = HASH384.S(39, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - HASH384.Sig1 = function (x) { - var r1 = HASH384.S(14, x), - r2 = HASH384.S(18, x), - r3 = HASH384.S(41, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - HASH384.theta0 = function (x) { - var r1 = HASH384.S(1, x), - r2 = HASH384.S(8, x), - r3 = HASH384.R(7, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - HASH384.theta1 = function (x) { - var r1 = HASH384.S(19, x), - r2 = HASH384.S(61, x), - r3 = HASH384.R(6, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - HASH384.len = 48; - - HASH384.H = [ - new ctx.UInt64(0xcbbb9d5d, 0xc1059ed8), - new ctx.UInt64(0x629a292a, 0x367cd507), - new ctx.UInt64(0x9159015a, 0x3070dd17), - new ctx.UInt64(0x152fecd8, 0xf70e5939), - new ctx.UInt64(0x67332667, 0xffc00b31), - new ctx.UInt64(0x8eb44a87, 0x68581511), - new ctx.UInt64(0xdb0c2e0d, 0x64f98fa7), - new ctx.UInt64(0x47b5481d, 0xbefa4fa4), - ]; - - HASH384.HK = [ - new ctx.UInt64(0x428a2f98, 0xd728ae22), - new ctx.UInt64(0x71374491, 0x23ef65cd), - new ctx.UInt64(0xb5c0fbcf, 0xec4d3b2f), - new ctx.UInt64(0xe9b5dba5, 0x8189dbbc), - new ctx.UInt64(0x3956c25b, 0xf348b538), - new ctx.UInt64(0x59f111f1, 0xb605d019), - new ctx.UInt64(0x923f82a4, 0xaf194f9b), - new ctx.UInt64(0xab1c5ed5, 0xda6d8118), - new ctx.UInt64(0xd807aa98, 0xa3030242), - new ctx.UInt64(0x12835b01, 0x45706fbe), - new ctx.UInt64(0x243185be, 0x4ee4b28c), - new ctx.UInt64(0x550c7dc3, 0xd5ffb4e2), - new ctx.UInt64(0x72be5d74, 0xf27b896f), - new ctx.UInt64(0x80deb1fe, 0x3b1696b1), - new ctx.UInt64(0x9bdc06a7, 0x25c71235), - new ctx.UInt64(0xc19bf174, 0xcf692694), - new ctx.UInt64(0xe49b69c1, 0x9ef14ad2), - new ctx.UInt64(0xefbe4786, 0x384f25e3), - new ctx.UInt64(0x0fc19dc6, 0x8b8cd5b5), - new ctx.UInt64(0x240ca1cc, 0x77ac9c65), - new ctx.UInt64(0x2de92c6f, 0x592b0275), - new ctx.UInt64(0x4a7484aa, 0x6ea6e483), - new ctx.UInt64(0x5cb0a9dc, 0xbd41fbd4), - new ctx.UInt64(0x76f988da, 0x831153b5), - new ctx.UInt64(0x983e5152, 0xee66dfab), - new ctx.UInt64(0xa831c66d, 0x2db43210), - new ctx.UInt64(0xb00327c8, 0x98fb213f), - new ctx.UInt64(0xbf597fc7, 0xbeef0ee4), - new ctx.UInt64(0xc6e00bf3, 0x3da88fc2), - new ctx.UInt64(0xd5a79147, 0x930aa725), - new ctx.UInt64(0x06ca6351, 0xe003826f), - new ctx.UInt64(0x14292967, 0x0a0e6e70), - new ctx.UInt64(0x27b70a85, 0x46d22ffc), - new ctx.UInt64(0x2e1b2138, 0x5c26c926), - new ctx.UInt64(0x4d2c6dfc, 0x5ac42aed), - new ctx.UInt64(0x53380d13, 0x9d95b3df), - new ctx.UInt64(0x650a7354, 0x8baf63de), - new ctx.UInt64(0x766a0abb, 0x3c77b2a8), - new ctx.UInt64(0x81c2c92e, 0x47edaee6), - new ctx.UInt64(0x92722c85, 0x1482353b), - new ctx.UInt64(0xa2bfe8a1, 0x4cf10364), - new ctx.UInt64(0xa81a664b, 0xbc423001), - new ctx.UInt64(0xc24b8b70, 0xd0f89791), - new ctx.UInt64(0xc76c51a3, 0x0654be30), - new ctx.UInt64(0xd192e819, 0xd6ef5218), - new ctx.UInt64(0xd6990624, 0x5565a910), - new ctx.UInt64(0xf40e3585, 0x5771202a), - new ctx.UInt64(0x106aa070, 0x32bbd1b8), - new ctx.UInt64(0x19a4c116, 0xb8d2d0c8), - new ctx.UInt64(0x1e376c08, 0x5141ab53), - new ctx.UInt64(0x2748774c, 0xdf8eeb99), - new ctx.UInt64(0x34b0bcb5, 0xe19b48a8), - new ctx.UInt64(0x391c0cb3, 0xc5c95a63), - new ctx.UInt64(0x4ed8aa4a, 0xe3418acb), - new ctx.UInt64(0x5b9cca4f, 0x7763e373), - new ctx.UInt64(0x682e6ff3, 0xd6b2b8a3), - new ctx.UInt64(0x748f82ee, 0x5defb2fc), - new ctx.UInt64(0x78a5636f, 0x43172f60), - new ctx.UInt64(0x84c87814, 0xa1f0ab72), - new ctx.UInt64(0x8cc70208, 0x1a6439ec), - new ctx.UInt64(0x90befffa, 0x23631e28), - new ctx.UInt64(0xa4506ceb, 0xde82bde9), - new ctx.UInt64(0xbef9a3f7, 0xb2c67915), - new ctx.UInt64(0xc67178f2, 0xe372532b), - new ctx.UInt64(0xca273ece, 0xea26619c), - new ctx.UInt64(0xd186b8c7, 0x21c0c207), - new ctx.UInt64(0xeada7dd6, 0xcde0eb1e), - new ctx.UInt64(0xf57d4f7f, 0xee6ed178), - new ctx.UInt64(0x06f067aa, 0x72176fba), - new ctx.UInt64(0x0a637dc5, 0xa2c898a6), - new ctx.UInt64(0x113f9804, 0xbef90dae), - new ctx.UInt64(0x1b710b35, 0x131c471b), - new ctx.UInt64(0x28db77f5, 0x23047d84), - new ctx.UInt64(0x32caab7b, 0x40c72493), - new ctx.UInt64(0x3c9ebe0a, 0x15c9bebc), - new ctx.UInt64(0x431d67c4, 0x9c100d4c), - new ctx.UInt64(0x4cc5d4be, 0xcb3e42b6), - new ctx.UInt64(0x597f299c, 0xfc657e2a), - new ctx.UInt64(0x5fcb6fab, 0x3ad6faec), - new ctx.UInt64(0x6c44198c, 0x4a475817), - ]; - - return HASH384; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - HASH384: HASH384, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/hash512.js b/packages/bls-verify/src/vendor/amcl-js/src/hash512.js deleted file mode 100644 index 6a2797177..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/hash512.js +++ /dev/null @@ -1,364 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var HASH512 = function (ctx) { - 'use strict'; - - var HASH512 = function () { - this.length = []; - this.h = []; - this.w = []; - this.init(); - }; - - HASH512.prototype = { - transform: function () { - /* basic transformation step */ - var a, b, c, d, e, f, g, hh, t1, t2, j; - - for (j = 16; j < 80; j++) { - this.w[j] = HASH512.theta1(this.w[j - 2]) - .add(this.w[j - 7]) - .add(HASH512.theta0(this.w[j - 15])) - .add(this.w[j - 16]); - } - - a = this.h[0].copy(); - b = this.h[1].copy(); - c = this.h[2].copy(); - d = this.h[3].copy(); - e = this.h[4].copy(); - f = this.h[5].copy(); - g = this.h[6].copy(); - hh = this.h[7].copy(); - - for (j = 0; j < 80; j++) { - /* 80 times - mush it up */ - t1 = hh.copy(); - t1.add(HASH512.Sig1(e)).add(HASH512.Ch(e, f, g)).add(HASH512.HK[j]).add(this.w[j]); - - t2 = HASH512.Sig0(a); - t2.add(HASH512.Maj(a, b, c)); - hh = g; - g = f; - f = e; - e = d.copy(); - e.add(t1); - - d = c; - c = b; - b = a; - a = t1.copy(); - a.add(t2); - } - - this.h[0].add(a); - this.h[1].add(b); - this.h[2].add(c); - this.h[3].add(d); - this.h[4].add(e); - this.h[5].add(f); - this.h[6].add(g); - this.h[7].add(hh); - }, - - copy: function (b) { - for (var i = 0; i < 80; i++) { - this.w[i] = b.w[i].copy(); - } - this.length[0] = b.length[0].copy(); - this.length[1] = b.length[1].copy(); - for (var i = 0; i < 8; i++) { - this.h[i] = b.h[i].copy(); - } - }, - - /* Initialise Hash function */ - init: function () { - /* initialise */ - var i; - - for (i = 0; i < 80; i++) { - this.w[i] = new ctx.UInt64(0, 0); - } - - this.length[0] = new ctx.UInt64(0, 0); - this.length[1] = new ctx.UInt64(0, 0); - this.h[0] = HASH512.H[0].copy(); - this.h[1] = HASH512.H[1].copy(); - this.h[2] = HASH512.H[2].copy(); - this.h[3] = HASH512.H[3].copy(); - this.h[4] = HASH512.H[4].copy(); - this.h[5] = HASH512.H[5].copy(); - this.h[6] = HASH512.H[6].copy(); - this.h[7] = HASH512.H[7].copy(); - }, - - /* process a single byte */ - process: function (byt) { - /* process the next message byte */ - var cnt, e; - - cnt = (this.length[0].bot >>> 6) % 16; - this.w[cnt].shlb(); - this.w[cnt].bot |= byt & 0xff; - - e = new ctx.UInt64(0, 8); - this.length[0].add(e); - - if (this.length[0].top === 0 && this.length[0].bot == 0) { - e = new ctx.UInt64(0, 1); - this.length[1].add(e); - } - - if (this.length[0].bot % 1024 === 0) { - this.transform(); - } - }, - - /* process an array of bytes */ - process_array: function (b) { - for (var i = 0; i < b.length; i++) { - this.process(b[i]); - } - }, - - /* process a 32-bit integer */ - process_num: function (n) { - this.process((n >> 24) & 0xff); - this.process((n >> 16) & 0xff); - this.process((n >> 8) & 0xff); - this.process(n & 0xff); - }, - - hash: function () { - /* pad message and finish - supply digest */ - var digest = [], - len0, - len1, - i; - - len0 = this.length[0].copy(); - len1 = this.length[1].copy(); - this.process(0x80); - - while (this.length[0].bot % 1024 != 896) { - this.process(0); - } - - this.w[14] = len1; - this.w[15] = len0; - this.transform(); - - for (i = 0; i < HASH512.len; i++) { - /* convert to bytes */ - digest[i] = HASH512.R(8 * (7 - (i % 8)), this.h[i >>> 3]).bot & 0xff; - } - - this.init(); - - return digest; - }, - - continuing_hash() { - var sh = new HASH256(); - sh.copy(this); - return sh.hash(); - }, - }; - - /* static functions */ - HASH512.S = function (n, x) { - if (n == 0) { - return x; - } - - if (n < 32) { - return new ctx.UInt64( - (x.top >>> n) | (x.bot << (32 - n)), - (x.bot >>> n) | (x.top << (32 - n)), - ); - } else { - return new ctx.UInt64( - (x.bot >>> (n - 32)) | (x.top << (64 - n)), - (x.top >>> (n - 32)) | (x.bot << (64 - n)), - ); - } - }; - - HASH512.R = function (n, x) { - if (n == 0) { - return x; - } - - if (n < 32) { - return new ctx.UInt64(x.top >>> n, (x.bot >>> n) | (x.top << (32 - n))); - } else { - return new ctx.UInt64(0, x.top >>> (n - 32)); - } - }; - - HASH512.Ch = function (x, y, z) { - return new ctx.UInt64((x.top & y.top) ^ (~x.top & z.top), (x.bot & y.bot) ^ (~x.bot & z.bot)); - }; - - HASH512.Maj = function (x, y, z) { - return new ctx.UInt64( - (x.top & y.top) ^ (x.top & z.top) ^ (y.top & z.top), - (x.bot & y.bot) ^ (x.bot & z.bot) ^ (y.bot & z.bot), - ); - }; - - HASH512.Sig0 = function (x) { - var r1 = HASH512.S(28, x), - r2 = HASH512.S(34, x), - r3 = HASH512.S(39, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - HASH512.Sig1 = function (x) { - var r1 = HASH512.S(14, x), - r2 = HASH512.S(18, x), - r3 = HASH512.S(41, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - HASH512.theta0 = function (x) { - var r1 = HASH512.S(1, x), - r2 = HASH512.S(8, x), - r3 = HASH512.R(7, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - HASH512.theta1 = function (x) { - var r1 = HASH512.S(19, x), - r2 = HASH512.S(61, x), - r3 = HASH512.R(6, x); - - return new ctx.UInt64(r1.top ^ r2.top ^ r3.top, r1.bot ^ r2.bot ^ r3.bot); - }; - - /* constants */ - HASH512.len = 64; - - HASH512.H = [ - new ctx.UInt64(0x6a09e667, 0xf3bcc908), - new ctx.UInt64(0xbb67ae85, 0x84caa73b), - new ctx.UInt64(0x3c6ef372, 0xfe94f82b), - new ctx.UInt64(0xa54ff53a, 0x5f1d36f1), - new ctx.UInt64(0x510e527f, 0xade682d1), - new ctx.UInt64(0x9b05688c, 0x2b3e6c1f), - new ctx.UInt64(0x1f83d9ab, 0xfb41bd6b), - new ctx.UInt64(0x5be0cd19, 0x137e2179), - ]; - - HASH512.HK = [ - new ctx.UInt64(0x428a2f98, 0xd728ae22), - new ctx.UInt64(0x71374491, 0x23ef65cd), - new ctx.UInt64(0xb5c0fbcf, 0xec4d3b2f), - new ctx.UInt64(0xe9b5dba5, 0x8189dbbc), - new ctx.UInt64(0x3956c25b, 0xf348b538), - new ctx.UInt64(0x59f111f1, 0xb605d019), - new ctx.UInt64(0x923f82a4, 0xaf194f9b), - new ctx.UInt64(0xab1c5ed5, 0xda6d8118), - new ctx.UInt64(0xd807aa98, 0xa3030242), - new ctx.UInt64(0x12835b01, 0x45706fbe), - new ctx.UInt64(0x243185be, 0x4ee4b28c), - new ctx.UInt64(0x550c7dc3, 0xd5ffb4e2), - new ctx.UInt64(0x72be5d74, 0xf27b896f), - new ctx.UInt64(0x80deb1fe, 0x3b1696b1), - new ctx.UInt64(0x9bdc06a7, 0x25c71235), - new ctx.UInt64(0xc19bf174, 0xcf692694), - new ctx.UInt64(0xe49b69c1, 0x9ef14ad2), - new ctx.UInt64(0xefbe4786, 0x384f25e3), - new ctx.UInt64(0x0fc19dc6, 0x8b8cd5b5), - new ctx.UInt64(0x240ca1cc, 0x77ac9c65), - new ctx.UInt64(0x2de92c6f, 0x592b0275), - new ctx.UInt64(0x4a7484aa, 0x6ea6e483), - new ctx.UInt64(0x5cb0a9dc, 0xbd41fbd4), - new ctx.UInt64(0x76f988da, 0x831153b5), - new ctx.UInt64(0x983e5152, 0xee66dfab), - new ctx.UInt64(0xa831c66d, 0x2db43210), - new ctx.UInt64(0xb00327c8, 0x98fb213f), - new ctx.UInt64(0xbf597fc7, 0xbeef0ee4), - new ctx.UInt64(0xc6e00bf3, 0x3da88fc2), - new ctx.UInt64(0xd5a79147, 0x930aa725), - new ctx.UInt64(0x06ca6351, 0xe003826f), - new ctx.UInt64(0x14292967, 0x0a0e6e70), - new ctx.UInt64(0x27b70a85, 0x46d22ffc), - new ctx.UInt64(0x2e1b2138, 0x5c26c926), - new ctx.UInt64(0x4d2c6dfc, 0x5ac42aed), - new ctx.UInt64(0x53380d13, 0x9d95b3df), - new ctx.UInt64(0x650a7354, 0x8baf63de), - new ctx.UInt64(0x766a0abb, 0x3c77b2a8), - new ctx.UInt64(0x81c2c92e, 0x47edaee6), - new ctx.UInt64(0x92722c85, 0x1482353b), - new ctx.UInt64(0xa2bfe8a1, 0x4cf10364), - new ctx.UInt64(0xa81a664b, 0xbc423001), - new ctx.UInt64(0xc24b8b70, 0xd0f89791), - new ctx.UInt64(0xc76c51a3, 0x0654be30), - new ctx.UInt64(0xd192e819, 0xd6ef5218), - new ctx.UInt64(0xd6990624, 0x5565a910), - new ctx.UInt64(0xf40e3585, 0x5771202a), - new ctx.UInt64(0x106aa070, 0x32bbd1b8), - new ctx.UInt64(0x19a4c116, 0xb8d2d0c8), - new ctx.UInt64(0x1e376c08, 0x5141ab53), - new ctx.UInt64(0x2748774c, 0xdf8eeb99), - new ctx.UInt64(0x34b0bcb5, 0xe19b48a8), - new ctx.UInt64(0x391c0cb3, 0xc5c95a63), - new ctx.UInt64(0x4ed8aa4a, 0xe3418acb), - new ctx.UInt64(0x5b9cca4f, 0x7763e373), - new ctx.UInt64(0x682e6ff3, 0xd6b2b8a3), - new ctx.UInt64(0x748f82ee, 0x5defb2fc), - new ctx.UInt64(0x78a5636f, 0x43172f60), - new ctx.UInt64(0x84c87814, 0xa1f0ab72), - new ctx.UInt64(0x8cc70208, 0x1a6439ec), - new ctx.UInt64(0x90befffa, 0x23631e28), - new ctx.UInt64(0xa4506ceb, 0xde82bde9), - new ctx.UInt64(0xbef9a3f7, 0xb2c67915), - new ctx.UInt64(0xc67178f2, 0xe372532b), - new ctx.UInt64(0xca273ece, 0xea26619c), - new ctx.UInt64(0xd186b8c7, 0x21c0c207), - new ctx.UInt64(0xeada7dd6, 0xcde0eb1e), - new ctx.UInt64(0xf57d4f7f, 0xee6ed178), - new ctx.UInt64(0x06f067aa, 0x72176fba), - new ctx.UInt64(0x0a637dc5, 0xa2c898a6), - new ctx.UInt64(0x113f9804, 0xbef90dae), - new ctx.UInt64(0x1b710b35, 0x131c471b), - new ctx.UInt64(0x28db77f5, 0x23047d84), - new ctx.UInt64(0x32caab7b, 0x40c72493), - new ctx.UInt64(0x3c9ebe0a, 0x15c9bebc), - new ctx.UInt64(0x431d67c4, 0x9c100d4c), - new ctx.UInt64(0x4cc5d4be, 0xcb3e42b6), - new ctx.UInt64(0x597f299c, 0xfc657e2a), - new ctx.UInt64(0x5fcb6fab, 0x3ad6faec), - new ctx.UInt64(0x6c44198c, 0x4a475817), - ]; - - return HASH512; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - HASH512: HASH512, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/hmac.js b/packages/bls-verify/src/vendor/amcl-js/src/hmac.js deleted file mode 100644 index b4b85ae3d..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/hmac.js +++ /dev/null @@ -1,764 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var HMAC = function (ctx) { - 'use strict'; - - var HMAC = { - MC_SHA2: 2, - MC_SHA3: 3, - - /* Convert Integer to n-byte array */ - inttobytes: function (n, len) { - var b = [], - i; - - for (i = 0; i < len; i++) { - b[i] = 0; - } - - i = len; - while (n > 0 && i > 0) { - i--; - b[i] = n & 0xff; - n = Math.floor(n / 256); - } - - return b; - }, - - GPhashit: function (hash, sha, pad, zpad, A, n, B) { - var R = [], - H, - W, - i, - len; - - if (hash == this.MC_SHA2) { - if (sha == 32) { - H = new ctx.HASH256(); - } else if (sha == 48) { - H = new ctx.HASH384(); - } else if (sha == 64) { - H = new ctx.HASH512(); - } - } - if (hash == this.MC_SHA3) { - H = new ctx.SHA3(sha); - } - - for (i = 0; i < zpad; i++) H.process(0); - - if (A != null) { - H.process_array(A); - } - - if (n >= 0) { - H.process_num(n); - } - if (B != null) { - H.process_array(B); - } - R = H.hash(); - - if (R.length == 0) { - return null; - } - - if (pad == 0) { - return R; - } - - W = []; - - len = pad; - - if (sha >= len) { - for (i = 0; i < len; i++) { - W[i] = R[i]; - } - } else { - for (i = 0; i < sha; i++) { - W[i + len - sha] = R[i]; - } - - for (i = 0; i < len - sha; i++) { - W[i] = 0; - } - } - - return W; - }, - - SPhashit: function (hash, sha, A) { - return this.GPhashit(hash, sha, 0, 0, A, -1, null); - }, - - KDF2: function (hash, sha, Z, P, olen) { - /* NOTE: the parameter olen is the length of the output k in bytes */ - var hlen = sha, - K = [], - B = [], - k = 0, - counter, - cthreshold, - i; - - for (i = 0; i < K.length; i++) { - K[i] = 0; // redundant? - } - - cthreshold = Math.floor(olen / hlen); - if (olen % hlen !== 0) { - cthreshold++; - } - - for (counter = 1; counter <= cthreshold; counter++) { - B = this.GPhashit(hash, sha, 0, 0, Z, counter, P); - - if (k + hlen > olen) { - for (i = 0; i < olen % hlen; i++) { - K[k++] = B[i]; - } - } else { - for (i = 0; i < hlen; i++) { - K[k++] = B[i]; - } - } - } - - return K; - }, - - /* Password based Key Derivation Function */ - /* Input password p, salt s, and repeat count */ - /* Output key of length olen */ - - PBKDF2: function (hash, sha, Pass, Salt, rep, olen) { - var F = new Array(sha), - U = [], - S = [], - K = [], - opt = 0, - i, - j, - k, - d, - N, - key; - - d = Math.floor(olen / sha); - - if (olen % sha !== 0) { - d++; - } - - opt = 0; - - for (i = 1; i <= d; i++) { - for (j = 0; j < Salt.length; j++) { - S[j] = Salt[j]; - } - - N = this.inttobytes(i, 4); - - for (j = 0; j < 4; j++) { - S[Salt.length + j] = N[j]; - } - - this.HMAC1(hash, sha, F, sha, Pass, S); - - for (j = 0; j < sha; j++) { - U[j] = F[j]; - } - - for (j = 2; j <= rep; j++) { - this.HMAC1(hash, sha, U, sha, Pass, U); - for (k = 0; k < sha; k++) { - F[k] ^= U[k]; - } - } - - for (j = 0; j < sha; j++) { - K[opt++] = F[j]; - } - } - - key = []; - for (i = 0; i < olen; i++) { - key[i] = K[i]; - } - - return key; - }, - - blksize: function (hash, sha) { - var b = 0; - if (hash == this.MC_SHA2) { - b = 64; - if (sha > 32) b = 128; - } - if (hash == this.MC_SHA3) { - b = 200 - 2 * sha; - } - return b; - }, - - HMAC1: function (hash, sha, tag, olen, K, M) { - /* Input is from an octet m * - * olen is requested output length in bytes. k is the key * - * The output is the calculated tag */ - var B = [], - b = 0, - K0, - i; - - b = this.blksize(hash, sha); - if (b == 0) return 0; - - K0 = new Array(b); - - for (i = 0; i < b; i++) { - K0[i] = 0; - } - - if (K.length > b) { - B = this.SPhashit(hash, sha, K); - for (i = 0; i < sha; i++) { - K0[i] = B[i]; - } - } else { - for (i = 0; i < K.length; i++) { - K0[i] = K[i]; - } - } - - for (i = 0; i < b; i++) { - K0[i] ^= 0x36; - } - - B = this.GPhashit(hash, sha, 0, 0, K0, -1, M); - - for (i = 0; i < b; i++) { - K0[i] ^= 0x6a; - } - - B = this.GPhashit(hash, sha, olen, 0, K0, -1, B); - - for (i = 0; i < olen; i++) { - tag[i] = B[i]; - } - - return 1; - }, - - HKDF_Extract: function (hash, hlen, SALT, IKM) { - var PRK = []; - if (SALT == null) { - var H = []; - for (var i = 0; i < hlen; i++) H[i] = 0; - this.HMAC1(hash, hlen, PRK, hlen, H, IKM); - } else { - this.HMAC1(hash, hlen, PRK, hlen, SALT, IKM); - } - return PRK; - }, - - HKDF_Expand: function (hash, hlen, olen, PRK, INFO) { - var i, - j, - k, - m, - n = Math.floor(olen / hlen); - var flen = olen % hlen; - - var OKM = []; - var T = []; - var K = []; - - k = m = 0; - for (i = 1; i <= n; i++) { - for (j = 0; j < INFO.length; j++) T[k++] = INFO[j]; - T[k++] = i; - this.HMAC1(hash, hlen, K, hlen, PRK, T); - k = 0; - T = []; - for (j = 0; j < hlen; j++) { - OKM[m++] = K[j]; - T[k++] = K[j]; - } - } - if (flen > 0) { - for (j = 0; j < INFO.length; j++) T[k++] = INFO[j]; - T[k++] = n + 1; - this.HMAC1(hash, hlen, K, flen, PRK, T); - for (j = 0; j < flen; j++) OKM[m++] = K[j]; - } - return OKM; - }, - - ceil: function (a, b) { - return Math.floor((a - 1) / b + 1); - }, - - XOF_Expand: function (hlen, olen, DST, MSG) { - var OKM = []; - var H = new ctx.SHA3(hlen); - for (var i = 0; i < MSG.length; i++) H.process(MSG[i]); - H.process((olen >> 8) & 0xff); - H.process(olen & 0xff); - - for (var i = 0; i < DST.length; i++) H.process(DST[i]); - H.process(DST.length); - - H.shake(OKM, olen); - return OKM; - }, - - XMD_Expand(hash, hlen, olen, DST, MSG) { - var OKM = []; - var H1 = []; - var TMP = []; - var TMP2 = []; - - var ell = this.ceil(olen, hlen); - var blk = this.blksize(hash, hlen); - TMP[0] = (olen >> 8) & 0xff; - TMP[1] = olen & 0xff; - TMP[2] = 0; - for (var j = 0; j < DST.length; j++) TMP[3 + j] = DST[j]; - TMP[3 + DST.length] = DST.length; - - var H0 = this.GPhashit(hash, hlen, 0, blk, MSG, -1, TMP); - - var k = 0; - for (var j = 0; j < hlen; j++) H1[j] = 0; - - for (var i = 1; i <= ell; i++) { - for (var j = 0; j < hlen; j++) H1[j] ^= H0[j]; - TMP2[0] = i; - for (var j = 0; j < DST.length; j++) TMP2[1 + j] = DST[j]; - TMP2[1 + DST.length] = DST.length; - H1 = this.GPhashit(hash, hlen, 0, 0, H1, -1, TMP2); - for (var j = 0; j < hlen && k < olen; j++) OKM[k++] = H1[j]; - } - - return OKM; - }, - - SHA256: 32, - SHA384: 48, - SHA512: 64, - - /* SHAXXX identifier strings */ - SHA256ID: [ - 0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, - 0x05, 0x00, 0x04, 0x20, - ], - SHA384ID: [ - 0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, - 0x05, 0x00, 0x04, 0x30, - ], - SHA512ID: [ - 0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, - 0x05, 0x00, 0x04, 0x40, - ], - - /* Mask Generation Function */ - MGF1: function (sha, Z, olen, K) { - var hlen = sha, - B = [], - k = 0, - counter, - cthreshold, - i; - - for (i = 0; i < K.length; i++) { - K[i] = 0; - } - - cthreshold = Math.floor(olen / hlen); - if (olen % hlen !== 0) { - cthreshold++; - } - - for (counter = 0; counter < cthreshold; counter++) { - B = this.GPhashit(this.MC_SHA2, sha, 0, 0, Z, counter, null); - //B = this.hashit(sha, Z, counter); - - if (k + hlen > olen) { - for (i = 0; i < olen % hlen; i++) { - K[k++] = B[i]; - } - } else { - for (i = 0; i < hlen; i++) { - K[k++] = B[i]; - } - } - } - }, - - MGF1XOR: function (sha, Z, K) { - var hlen = sha, - B = [], - k = 0, - counter, - cthreshold, - i; - var olen = K.length; - - cthreshold = Math.floor(olen / hlen); - if (olen % hlen !== 0) { - cthreshold++; - } - - for (counter = 0; counter < cthreshold; counter++) { - B = this.GPhashit(this.MC_SHA2, sha, 0, 0, Z, counter, null); - //B = this.hashit(sha, Z, counter); - - if (k + hlen > olen) { - for (i = 0; i < olen % hlen; i++) { - K[k++] ^= B[i]; - } - } else { - for (i = 0; i < hlen; i++) { - K[k++] ^= B[i]; - } - } - } - }, - - PKCS15: function (sha, m, w, RFS) { - var olen = RFS, - hlen = sha, - idlen = 19, - H, - i, - j; - - if (olen < idlen + hlen + 10) { - return false; - } - H = this.SPhashit(this.MC_SHA2, sha, m); - //H = this.hashit(sha, m, -1); - - for (i = 0; i < w.length; i++) { - w[i] = 0; - } - - i = 0; - w[i++] = 0; - w[i++] = 1; - for (j = 0; j < olen - idlen - hlen - 3; j++) { - w[i++] = 0xff; - } - w[i++] = 0; - - if (hlen == this.SHA256) { - for (j = 0; j < idlen; j++) { - w[i++] = this.SHA256ID[j]; - } - } else if (hlen == this.SHA384) { - for (j = 0; j < idlen; j++) { - w[i++] = this.SHA384ID[j]; - } - } else if (hlen == this.SHA512) { - for (j = 0; j < idlen; j++) { - w[i++] = this.SHA512ID[j]; - } - } - - for (j = 0; j < hlen; j++) { - w[i++] = H[j]; - } - - return true; - }, - - PSS_ENCODE: function (sha, m, rng, RFS) { - var emlen = RFS; - var embits = 8 * emlen - 1; - var hlen = sha; - var SALT = []; - for (i = 0; i < hlen; i++) { - SALT[i] = rng.getByte(); - } - var mask = 0xff >> (8 * emlen - embits); - - var H = this.SPhashit(this.MC_SHA2, sha, m); - - if (emlen < hlen + hlen + 2) return null; - - var MD = []; - - for (var i = 0; i < 8; i++) MD[i] = 0; - for (var i = 0; i < hlen; i++) MD[8 + i] = H[i]; - for (var i = 0; i < hlen; i++) MD[8 + hlen + i] = SALT[i]; - - H = this.SPhashit(this.MC_SHA2, sha, MD); - - var f = []; - for (var i = 0; i < emlen - hlen - hlen - 2; i++) f[i] = 0; - f[emlen - hlen - hlen - 2] = 0x1; - for (var i = 0; i < hlen; i++) f[emlen + i - hlen - hlen - 1] = SALT[i]; - this.MGF1XOR(sha, H, f); - f[0] &= mask; - for (var i = 0; i < hlen; i++) f[emlen + i - hlen - 1] = H[i]; - f[emlen - 1] = 0xbc; - return f; - }, - - PSS_VERIFY: function (sha, m, f) { - var emlen = f.length; - var embits = 8 * emlen - 1; - var hlen = sha; - var SALT = []; - var mask = 0xff >> (8 * emlen - embits); - - var HMASK = this.SPhashit(this.MC_SHA2, sha, m); - if (emlen < hlen + hlen + 2) return false; - if (f[emlen - 1] != 0xbc) return false; - if ((f[0] & ~mask) != 0) return false; - - var DB = []; - for (var i = 0; i < emlen - hlen - 1; i++) DB[i] = f[i]; - var H = []; - for (var i = 0; i < hlen; i++) H[i] = f[emlen + i - hlen - 1]; - this.MGF1XOR(sha, H, DB); - DB[0] &= mask; - var k = 0; - for (var i = 0; i < emlen - hlen - hlen - 2; i++) k |= DB[i]; - if (k != 0) return false; - if (DB[emlen - hlen - hlen - 2] != 0x01) return false; - - for (var i = 0; i < hlen; i++) SALT[i] = DB[emlen + i - hlen - hlen - 1]; - - var MD = []; - for (var i = 0; i < 8; i++) MD[i] = 0; - for (var i = 0; i < hlen; i++) MD[8 + i] = HMASK[i]; - for (var i = 0; i < hlen; i++) MD[8 + hlen + i] = SALT[i]; - - HMASK = this.SPhashit(this.MC_SHA2, sha, MD); - - k = 0; - for (var i = 0; i < hlen; i++) k |= H[i] - HMASK[i]; - if (k != 0) return false; - return true; - }, - /* OAEP Message Encoding for Encryption */ - OAEP_ENCODE: function (sha, m, rng, p, RFS) { - var olen = RFS - 1, - mlen = m.length, - SEED = [], - DBMASK = [], - f = [], - hlen, - seedlen, - slen, - i, - d, - h; - - seedlen = hlen = sha; - - if (mlen > olen - hlen - seedlen - 1) { - return null; - } - - h = this.SPhashit(this.MC_SHA2, sha, p); - //h = this.hashit(sha, p, -1); - for (i = 0; i < hlen; i++) { - f[i] = h[i]; - } - - slen = olen - mlen - hlen - seedlen - 1; - - for (i = 0; i < slen; i++) { - f[hlen + i] = 0; - } - f[hlen + slen] = 1; - for (i = 0; i < mlen; i++) { - f[hlen + slen + 1 + i] = m[i]; - } - - for (i = 0; i < seedlen; i++) { - SEED[i] = rng.getByte(); - } - this.MGF1(sha, SEED, olen - seedlen, DBMASK); - - for (i = 0; i < olen - seedlen; i++) { - DBMASK[i] ^= f[i]; - } - this.MGF1(sha, DBMASK, seedlen, f); - - for (i = 0; i < seedlen; i++) { - f[i] ^= SEED[i]; - } - - for (i = 0; i < olen - seedlen; i++) { - f[i + seedlen] = DBMASK[i]; - } - - /* pad to length RFS */ - d = 1; - for (i = RFS - 1; i >= d; i--) { - f[i] = f[i - d]; - } - for (i = d - 1; i >= 0; i--) { - f[i] = 0; - } - - return f; - }, - - /* OAEP Message Decoding for Decryption */ - OAEP_DECODE: function (sha, p, f, RFS) { - var olen = RFS - 1, - SEED = [], - CHASH = [], - DBMASK = [], - comp, - hlen, - seedlen, - x, - t, - d, - i, - k, - h, - r; - - seedlen = hlen = sha; - if (olen < seedlen + hlen + 1) { - return null; - } - - for (i = 0; i < olen - seedlen; i++) { - DBMASK[i] = 0; - } - - if (f.length < RFS) { - d = RFS - f.length; - for (i = RFS - 1; i >= d; i--) { - f[i] = f[i - d]; - } - for (i = d - 1; i >= 0; i--) { - f[i] = 0; - } - } - h = this.SPhashit(this.MC_SHA2, sha, p); - //h = this.hashit(sha, p, -1); - for (i = 0; i < hlen; i++) { - CHASH[i] = h[i]; - } - - x = f[0]; - - for (i = seedlen; i < olen; i++) { - DBMASK[i - seedlen] = f[i + 1]; - } - - this.MGF1(sha, DBMASK, seedlen, SEED); - for (i = 0; i < seedlen; i++) { - SEED[i] ^= f[i + 1]; - } - this.MGF1(sha, SEED, olen - seedlen, f); - for (i = 0; i < olen - seedlen; i++) { - DBMASK[i] ^= f[i]; - } - - comp = true; - for (i = 0; i < hlen; i++) { - if (CHASH[i] != DBMASK[i]) { - comp = false; - } - } - - for (i = 0; i < olen - seedlen - hlen; i++) { - DBMASK[i] = DBMASK[i + hlen]; - } - - for (i = 0; i < hlen; i++) { - SEED[i] = CHASH[i] = 0; - } - - for (k = 0; ; k++) { - if (k >= olen - seedlen - hlen) { - return null; - } - - if (DBMASK[k] !== 0) { - break; - } - } - - t = DBMASK[k]; - if (!comp || x !== 0 || t != 0x01) { - for (i = 0; i < olen - seedlen; i++) { - DBMASK[i] = 0; - } - return null; - } - r = []; - - for (i = 0; i < olen - seedlen - hlen - k - 1; i++) { - r[i] = DBMASK[i + k + 1]; - } - - for (i = 0; i < olen - seedlen; i++) { - DBMASK[i] = 0; - } - - return r; - }, - }; - - return HMAC; -}; - -/* - var MSG=ctx.ECDH.asciitobytes("abc"); - var DST=ctx.ECDH.asciitobytes("P256_XMD:SHA-256_SSWU_RO_TESTGEN"); - - var OKM=ctx.HMAC.XOF_Expand(ctx.SHA3.SHAKE128,48,DST,MSG); - mywindow.document.write("OKM : 0x"+ctx.ECDH.bytestostring(OKM) + "
"); - - OKM=ctx.HMAC.XMD_Expand(ctx.HMAC.MC_SHA2,32,48,DST,MSG); - mywindow.document.write("OKM : 0x"+ctx.ECDH.bytestostring(OKM) + "
"); - - ikm=[]; - salt=[]; - info=[]; - - for (i=0;i<22;i++) ikm[i]=0x0b; - for (i=0;i<13;i++) salt[i]=i; - for (i=0;i<10;i++) info[i]=(0xf0+i); - - var prk=ctx.HMAC.HKDF_Extract(ctx.HMAC.MC_SHA2,32,salt,ikm); - window.document.write("PRK= "+ctx.NHS.bytestostring(prk)+ "
"); - - var okm=ctx.HMAC.HKDF_Expand(ctx.HMAC.MC_SHA2,32,42,prk,info); - window.document.write("PRK= "+ctx.NHS.bytestostring(okm)+ "
"); -*/ - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - HMAC: HMAC, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/hpke.js b/packages/bls-verify/src/vendor/amcl-js/src/hpke.js deleted file mode 100644 index 9a5927f50..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/hpke.js +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Hybrid Public Key Encryption */ - -/* Following https://datatracker.ietf.org/doc/draft-irtf-cfrg-hpke/?include_text=1 */ - -var HPKE = function (ctx) { - 'use strict'; - - var HPKE = { - reverse: function (X) { - var i, - ch, - lx = X.length; - for (i = 0; i < lx / 2; i++) { - ch = X[i]; - X[i] = X[lx - i - 1]; - X[lx - i - 1] = ch; - } - }, - - LabeledExtract: function (SALT, SUITE_ID, label, IKM) { - var rfc = 'HPKE-07'; - var RFC = ctx.ECDH.asciitobytes(rfc); - var LABEL = ctx.ECDH.asciitobytes(label); - var LIKM = []; - var k = 0; - for (var i = 0; i < RFC.length; i++) LIKM[k++] = RFC[i]; - for (var i = 0; i < SUITE_ID.length; i++) LIKM[k++] = SUITE_ID[i]; - for (var i = 0; i < LABEL.length; i++) LIKM[k++] = LABEL[i]; - if (IKM != null) { - for (var i = 0; i < IKM.length; i++) LIKM[k++] = IKM[i]; - } - return ctx.HMAC.HKDF_Extract(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, SALT, LIKM); - }, - - LabeledExpand: function (PRK, SUITE_ID, label, INFO, L) { - var AR = ctx.HMAC.inttobytes(L, 2); - var rfc = 'HPKE-07'; - var RFC = ctx.ECDH.asciitobytes(rfc); - var LABEL = ctx.ECDH.asciitobytes(label); - var LINFO = []; - LINFO[0] = AR[0]; - LINFO[1] = AR[1]; - var k = 2; - for (var i = 0; i < RFC.length; i++) LINFO[k++] = RFC[i]; - for (var i = 0; i < SUITE_ID.length; i++) LINFO[k++] = SUITE_ID[i]; - for (var i = 0; i < LABEL.length; i++) LINFO[k++] = LABEL[i]; - if (INFO != null) { - for (var i = 0; i < INFO.length; i++) LINFO[k++] = INFO[i]; - } - return ctx.HMAC.HKDF_Expand(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, L, PRK, LINFO); - }, - - ExtractAndExpand: function (config_id, DH, CONTEXT) { - var kem = config_id & 255; - var txt = 'KEM'; - var KEM_ID = ctx.HMAC.inttobytes(kem, 2); - var KEM = ctx.ECDH.asciitobytes(txt); - var SUITE_ID = []; - var k = KEM.length; - for (var i = 0; i < k; i++) SUITE_ID[i] = KEM[i]; - SUITE_ID[k] = KEM_ID[0]; - SUITE_ID[k + 1] = KEM_ID[1]; - var PRK = this.LabeledExtract(null, SUITE_ID, 'eae_prk', DH); - return this.LabeledExpand(PRK, SUITE_ID, 'shared_secret', CONTEXT, ctx.ECP.HASH_TYPE); - }, - - DeriveKeyPair: function (config_id, SK, PK, SEED) { - var counter = 0; - var INFO = []; - var kem = config_id & 255; - var txt = 'KEM'; - var KEM_ID = ctx.HMAC.inttobytes(kem, 2); - var KEM = ctx.ECDH.asciitobytes(txt); - var SUITE_ID = []; - var k = KEM.length; - for (var i = 0; i < k; i++) SUITE_ID[i] = KEM[i]; - SUITE_ID[k] = KEM_ID[0]; - SUITE_ID[k + 1] = KEM_ID[1]; - - var PRK = this.LabeledExtract(null, SUITE_ID, 'dkp_prk', SEED); - var S; - if (kem == 32 || kem == 33) { - S = this.LabeledExpand(PRK, SUITE_ID, 'sk', null, ctx.ECDH.EGS); - this.reverse(S); - if (kem == 32) { - S[ctx.ECDH.EGS - 1] &= 248; - S[0] &= 127; - S[0] |= 64; - } else { - S[ctx.ECDH.EGS - 1] &= 252; - S[0] |= 128; - } - } else { - var bit_mask; - if (kem == 18) bit_mask = 1; - else bit_mask = 0xff; - S = []; - for (var i = 0; i < ctx.ECDH.EGS; i++) S[i] = 0; - while (!ctx.ECDH.IN_RANGE(S) && counter < 256) { - INFO[0] = counter; - S = this.LabeledExpand(PRK, SUITE_ID, 'candidate', INFO, ctx.ECDH.EGS); - S[0] &= bit_mask; - counter++; - } - } - for (var i = 0; i < ctx.ECDH.EGS; i++) SK[i] = S[i]; - ctx.ECDH.KEY_PAIR_GENERATE(null, SK, PK); - if (kem == 32 || kem == 33) this.reverse(PK); - if (counter < 256) return true; - return false; - }, - - encap: function (config_id, skE, pkE, pkR) { - var DH = []; - var KEMCONTEXT = []; - var kem = config_id & 255; - - if (kem == 32 || kem == 33) { - this.reverse(pkR); - ctx.ECDH.ECPSVDP_DH(skE, pkR, DH, 0); - this.reverse(pkR); - this.reverse(DH); - } else { - ctx.ECDH.ECPSVDP_DH(skE, pkR, DH, 0); - } - var k = 0; - for (var i = 0; i < pkE.length; i++) KEMCONTEXT[k++] = pkE[i]; - for (var i = 0; i < pkR.length; i++) KEMCONTEXT[k++] = pkR[i]; - - return this.ExtractAndExpand(config_id, DH, KEMCONTEXT); - }, - - decap: function (config_id, skR, pkE, pkR) { - var DH = []; - var KEMCONTEXT = []; - var kem = config_id & 255; - - if (kem == 32 || kem == 33) { - this.reverse(pkE); - ctx.ECDH.ECPSVDP_DH(skR, pkE, DH, 0); - this.reverse(pkE); - this.reverse(DH); - } else { - ctx.ECDH.ECPSVDP_DH(skR, pkE, DH, 0); - } - - var k = 0; - for (var i = 0; i < pkE.length; i++) KEMCONTEXT[k++] = pkE[i]; - for (var i = 0; i < pkR.length; i++) KEMCONTEXT[k++] = pkR[i]; - - return this.ExtractAndExpand(config_id, DH, KEMCONTEXT); - }, - - authEncap: function (config_id, skE, skS, pkE, pkR, pkS) { - var pklen = pkE.length; - var DH = []; - var DH1 = []; - var KEMCONTEXT = []; - - var kem = config_id & 255; - - if (kem == 32 || kem == 33) { - this.reverse(pkR); - ctx.ECDH.ECPSVDP_DH(skE, pkR, DH, 0); - ctx.ECDH.ECPSVDP_DH(skS, pkR, DH1, 0); - this.reverse(pkR); - this.reverse(DH); - this.reverse(DH1); - } else { - ctx.ECDH.ECPSVDP_DH(skE, pkR, DH, 0); - ctx.ECDH.ECPSVDP_DH(skS, pkR, DH1, 0); - } - var ZZ = []; - for (var i = 0; i < ctx.ECDH.EFS; i++) { - ZZ[i] = DH[i]; - ZZ[ctx.ECDH.EFS + i] = DH1[i]; - } - - for (var i = 0; i < pklen; i++) { - KEMCONTEXT[i] = pkE[i]; - KEMCONTEXT[pklen + i] = pkR[i]; - KEMCONTEXT[2 * pklen + i] = pkS[i]; - } - - return this.ExtractAndExpand(config_id, ZZ, KEMCONTEXT); - }, - - authDecap: function (config_id, skR, pkE, pkR, pkS) { - var pklen = pkE.length; - var DH = []; - var DH1 = []; - var KEMCONTEXT = []; - - var kem = config_id & 255; - - if (kem == 32 || kem == 33) { - this.reverse(pkE); - this.reverse(pkS); - ctx.ECDH.ECPSVDP_DH(skR, pkE, DH, 0); - ctx.ECDH.ECPSVDP_DH(skR, pkS, DH1, 0); - this.reverse(pkE); - this.reverse(pkS); - this.reverse(DH); - this.reverse(DH1); - } else { - ctx.ECDH.ECPSVDP_DH(skR, pkE, DH, 0); - ctx.ECDH.ECPSVDP_DH(skR, pkS, DH1, 0); - } - - var ZZ = []; - for (var i = 0; i < ctx.ECDH.EFS; i++) { - ZZ[i] = DH[i]; - ZZ[ctx.ECDH.EFS + i] = DH1[i]; - } - - for (var i = 0; i < pklen; i++) { - KEMCONTEXT[i] = pkE[i]; - KEMCONTEXT[pklen + i] = pkR[i]; - KEMCONTEXT[2 * pklen + i] = pkS[i]; - } - - return this.ExtractAndExpand(config_id, ZZ, KEMCONTEXT); - }, - - keySchedule: function (config_id, key, nonce, exp_secret, mode, Z, info, psk, pskID) { - var context = []; - var kem = config_id & 255; - var kdf = (config_id >> 8) & 3; - var aead = (config_id >> 10) & 3; - var num, k; - var txt = 'HPKE'; - var KEM = ctx.ECDH.asciitobytes(txt); - var SUITE_ID = []; - k = KEM.length; - for (var i = 0; i < k; i++) SUITE_ID[i] = KEM[i]; - num = ctx.HMAC.inttobytes(kem, 2); - SUITE_ID[k++] = num[0]; - SUITE_ID[k++] = num[1]; - num = ctx.HMAC.inttobytes(kdf, 2); - SUITE_ID[k++] = num[0]; - SUITE_ID[k++] = num[1]; - num = ctx.HMAC.inttobytes(aead, 2); - SUITE_ID[k++] = num[0]; - SUITE_ID[k++] = num[1]; - k = 0; - var ar = ctx.HMAC.inttobytes(mode, 1); - for (var i = 0; i < ar.length; i++) context[k++] = ar[i]; - - var H = this.LabeledExtract(null, SUITE_ID, 'psk_id_hash', pskID); - for (var i = 0; i < ctx.ECP.HASH_TYPE; i++) context[k++] = H[i]; - H = this.LabeledExtract(null, SUITE_ID, 'info_hash', info); - for (var i = 0; i < ctx.ECP.HASH_TYPE; i++) context[k++] = H[i]; - - //H=this.LabeledExtract(null,SUITE_ID,"psk_hash",psk); - //var secret=this.LabeledExtract(H,SUITE_ID,"secret",Z); - - var secret = this.LabeledExtract(Z, SUITE_ID, 'secret', psk); - - var ex = this.LabeledExpand(secret, SUITE_ID, 'key', context, ctx.ECP.AESKEY); - for (var i = 0; i < ex.length; i++) key[i] = ex[i]; - - ex = this.LabeledExpand(secret, SUITE_ID, 'base_nonce', context, 12); - for (var i = 0; i < ex.length; i++) nonce[i] = ex[i]; - - if (exp_secret != null) { - ex = this.LabeledExpand(secret, SUITE_ID, 'exp', context, ctx.ECP.HASH_TYPE); - for (var i = 0; i < ex.length; i++) exp_secret[i] = ex[i]; - } - }, - }; - return HPKE; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - HPKE: HPKE, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/mpin.js b/packages/bls-verify/src/vendor/amcl-js/src/mpin.js deleted file mode 100644 index 399e3a8cd..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/mpin.js +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* MPIN 128-bit API Functions */ - -var MPIN = function (ctx) { - 'use strict'; - - var MPIN = { - BAD_PARAMS: -11, - INVALID_POINT: -14, - WRONG_ORDER: -18, - BAD_PIN: -19, - /* configure PIN here */ - MAXPIN: 10000, - /* max PIN */ - PBLEN: 14, - /* MAXPIN length in bits */ - TS: 12, - /* 10 for 4 digit PIN, 14 for 6-digit PIN - 2^TS/TS approx = sqrt(MAXPIN) */ - - EFS: ctx.BIG.MODBYTES, - EGS: ctx.BIG.MODBYTES, - - SHA256: 32, - SHA384: 48, - SHA512: 64, - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - return s; - }, - - asciitobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i += 2) { - b.push(parseInt(s.substr(i, 2), 16)); - } - - return b; - }, - - comparebytes: function (a, b) { - if (a.length != b.length) { - return false; - } - - for (var i = 0; i < a.length; i++) { - if (a[i] != b[i]) { - return false; - } - } - - return true; - }, - - ceil: function (a, b) { - return Math.floor((a - 1) / b + 1); - }, - - ENCODE_TO_CURVE: function (DST, ID, HCID) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var k = q.nbits(); - var r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - var m = r.nbits(); - var L = this.ceil(k + this.ceil(m, 2), 8); - var OKM = ctx.HMAC.XMD_Expand(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, L, DST, ID); - var fd = []; - - for (var j = 0; j < L; j++) fd[j] = OKM[j]; - var dx = ctx.DBIG.fromBytes(fd); - var u = new ctx.FP(dx.mod(q)); - var P = ctx.ECP.map2point(u); - P.cfp(); - P.affine(); - P.toBytes(HCID, false); - }, - - /* create random secret S */ - RANDOM_GENERATE: function (rng, S) { - var r = new ctx.BIG(0), - s; - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - s = ctx.BIG.randtrunc(r, 16 * ctx.ECP.AESKEY, rng); - s.toBytes(S); - return 0; - }, - - /* Extract PIN from TOKEN for identity CID */ - EXTRACT_PIN: function (CID, pin, TOKEN) { - var P, R; - P = ctx.ECP.fromBytes(TOKEN); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - R = ctx.ECP.fromBytes(CID); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - pin %= this.MAXPIN; - R = R.pinmul(pin, this.PBLEN); - P.sub(R); - P.toBytes(TOKEN, false); - return 0; - }, - - /* Extract Server Secret SST=S*Q where Q is fixed generator in G2 and S is master secret */ - GET_SERVER_SECRET: function (S, SST) { - var s, Q; - Q = ctx.ECP2.generator(); - s = ctx.BIG.fromBytes(S); - Q = ctx.PAIR.G2mul(Q, s); - Q.toBytes(SST, false); - return 0; - }, - - /* Client secret CST=S*H(CID) where CID is client ID and S is master secret */ - GET_CLIENT_SECRET: function (S, IDHTC, CST) { - var s = ctx.BIG.fromBytes(S); - var P = ctx.ECP.fromBytes(IDHTC); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - ctx.PAIR.G1mul(P, s).toBytes(CST, false); - return 0; - }, - - /* Implement step 1 on client side of MPin protocol */ - CLIENT_1: function (CID, rng, X, pin, TOKEN, SEC, xID) { - var r = new ctx.BIG(0), - x, - P, - T, - W; - - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (rng !== null) { - x = ctx.BIG.randtrunc(r, 16 * ctx.ECP.AESKEY, rng); - x.toBytes(X); - } else { - x = ctx.BIG.fromBytes(X); - } - P = ctx.ECP.fromBytes(CID); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - T = ctx.ECP.fromBytes(TOKEN); - if (T.is_infinity()) { - return this.INVALID_POINT; - } - - pin %= this.MAXPIN; - W = P.pinmul(pin, this.PBLEN); - T.add(W); - - P = ctx.PAIR.G1mul(P, x); - P.toBytes(xID, false); - - T.toBytes(SEC, false); - return 0; - }, - - /* Implement step 2 on client side of MPin protocol */ - CLIENT_2: function (X, Y, SEC) { - var r = new ctx.BIG(0), - P, - px, - py; - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - - P = ctx.ECP.fromBytes(SEC); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - px = ctx.BIG.fromBytes(X); - py = ctx.BIG.fromBytes(Y); - px.add(py); - px.mod(r); - - P = ctx.PAIR.G1mul(P, px); - P.neg(); - P.toBytes(SEC, false); - return 0; - }, - - /* Implement step 2 of MPin protocol on server side. */ - SERVER: function (HID, Y, SST, xID, mSEC) { - var Q, sQ, R, y, P, g; - Q = ctx.ECP2.generator(); - sQ = ctx.ECP2.fromBytes(SST); - if (sQ.is_infinity()) { - return this.INVALID_POINT; - } - if (xID == null) { - return this.BAD_PARAMS; - } - R = ctx.ECP.fromBytes(xID); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - y = ctx.BIG.fromBytes(Y); - if (HID == null) { - return this.BAD_PARAMS; - } - P = ctx.ECP.fromBytes(HID); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - - P = ctx.PAIR.G1mul(P, y); - P.add(R); - R = ctx.ECP.fromBytes(mSEC); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - - g = ctx.PAIR.ate2(Q, R, sQ, P); - g = ctx.PAIR.fexp(g); - - if (!g.isunity()) { - return this.BAD_PIN; - } - return 0; - }, - }; - - return MPIN; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - MPIN: MPIN, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/mpin192.js b/packages/bls-verify/src/vendor/amcl-js/src/mpin192.js deleted file mode 100644 index 478bc05c8..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/mpin192.js +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* MPIN 192-bit API Functions */ - -var MPIN192 = function (ctx) { - 'use strict'; - - var MPIN192 = { - BAD_PARAMS: -11, - INVALID_POINT: -14, - WRONG_ORDER: -18, - BAD_PIN: -19, - /* configure PIN here */ - MAXPIN: 10000, - /* max PIN */ - PBLEN: 14, - /* MAXPIN length in bits */ - TS: 12, - /* 10 for 4 digit PIN, 14 for 6-digit PIN - 2^TS/TS approx = sqrt(MAXPIN) */ - EFS: ctx.BIG.MODBYTES, - EGS: ctx.BIG.MODBYTES, - - SHA256: 32, - SHA384: 48, - SHA512: 64, - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - return s; - }, - - asciitobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i += 2) { - b.push(parseInt(s.substr(i, 2), 16)); - } - - return b; - }, - - comparebytes: function (a, b) { - if (a.length != b.length) { - return false; - } - - for (var i = 0; i < a.length; i++) { - if (a[i] != b[i]) { - return false; - } - } - - return true; - }, - - ceil: function (a, b) { - return Math.floor((a - 1) / b + 1); - }, - - ENCODE_TO_CURVE: function (DST, ID, HCID) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var k = q.nbits(); - var r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - var m = r.nbits(); - var L = this.ceil(k + this.ceil(m, 2), 8); - var OKM = ctx.HMAC.XMD_Expand(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, L, DST, ID); - var fd = []; - - for (var j = 0; j < L; j++) fd[j] = OKM[j]; - var dx = ctx.DBIG.fromBytes(fd); - var u = new ctx.FP(dx.mod(q)); - var P = ctx.ECP.map2point(u); - P.cfp(); - P.affine(); - P.toBytes(HCID, false); - }, - - /* create random secret S */ - RANDOM_GENERATE: function (rng, S) { - var r = new ctx.BIG(0), - s; - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - s = ctx.BIG.randtrunc(r, 16 * ctx.ECP.AESKEY, rng); - s.toBytes(S); - return 0; - }, - - /* Extract PIN from TOKEN for identity CID */ - EXTRACT_PIN: function (CID, pin, TOKEN) { - var P, R; - P = ctx.ECP.fromBytes(TOKEN); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - R = ctx.ECP.fromBytes(CID); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - pin %= this.MAXPIN; - R = R.pinmul(pin, this.PBLEN); - P.sub(R); - P.toBytes(TOKEN, false); - return 0; - }, - - /* Extract Server Secret SST=S*Q where Q is fixed generator in G2 and S is master secret */ - GET_SERVER_SECRET: function (S, SST) { - var s, Q; - Q = ctx.ECP4.generator(); - s = ctx.BIG.fromBytes(S); - Q = ctx.PAIR4.G2mul(Q, s); - Q.toBytes(SST, false); - return 0; - }, - - /* Client secret CST=S*H(CID) where CID is client ID and S is master secret */ - GET_CLIENT_SECRET: function (S, IDHTC, CST) { - var s = ctx.BIG.fromBytes(S); - var P = ctx.ECP.fromBytes(IDHTC); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - ctx.PAIR4.G1mul(P, s).toBytes(CST, false); - return 0; - }, - - /* Implement step 1 on client side of MPin protocol */ - CLIENT_1: function (CID, rng, X, pin, TOKEN, SEC, xID) { - var r = new ctx.BIG(0), - x, - P, - T, - W; - - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (rng !== null) { - x = ctx.BIG.randtrunc(r, 16 * ctx.ECP.AESKEY, rng); - x.toBytes(X); - } else { - x = ctx.BIG.fromBytes(X); - } - P = ctx.ECP.fromBytes(CID); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - T = ctx.ECP.fromBytes(TOKEN); - if (T.is_infinity()) { - return this.INVALID_POINT; - } - - pin %= this.MAXPIN; - W = P.pinmul(pin, this.PBLEN); - T.add(W); - - P = ctx.PAIR4.G1mul(P, x); - P.toBytes(xID, false); - - T.toBytes(SEC, false); - return 0; - }, - - /* Implement step 2 on client side of MPin protocol */ - CLIENT_2: function (X, Y, SEC) { - var r = new ctx.BIG(0), - P, - px, - py; - - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - - P = ctx.ECP.fromBytes(SEC); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - px = ctx.BIG.fromBytes(X); - py = ctx.BIG.fromBytes(Y); - px.add(py); - px.mod(r); - - P = ctx.PAIR4.G1mul(P, px); - P.neg(); - P.toBytes(SEC, false); - return 0; - }, - - /* Implement step 2 of MPin protocol on server side. */ - SERVER: function (HID, Y, SST, xID, mSEC) { - var Q, sQ, R, y, P, g; - Q = ctx.ECP4.generator(); - sQ = ctx.ECP4.fromBytes(SST); - if (sQ.is_infinity()) { - return this.INVALID_POINT; - } - if (xID == null) { - return this.BAD_PARAMS; - } - R = ctx.ECP.fromBytes(xID); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - y = ctx.BIG.fromBytes(Y); - if (HID == null) { - return this.BAD_PARAMS; - } - P = ctx.ECP.fromBytes(HID); - - if (P.is_infinity()) { - return this.INVALID_POINT; - } - - P = ctx.PAIR4.G1mul(P, y); - P.add(R); - R = ctx.ECP.fromBytes(mSEC); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - - g = ctx.PAIR4.ate2(Q, R, sQ, P); - g = ctx.PAIR4.fexp(g); - - if (!g.isunity()) { - return this.BAD_PIN; - } - return 0; - }, - }; - - return MPIN192; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - MPIN192: MPIN192, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/mpin256.js b/packages/bls-verify/src/vendor/amcl-js/src/mpin256.js deleted file mode 100644 index 09f3a0d81..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/mpin256.js +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* MPIN 256-bit API Functions */ - -var MPIN256 = function (ctx) { - 'use strict'; - - var MPIN256 = { - BAD_PARAMS: -11, - INVALID_POINT: -14, - WRONG_ORDER: -18, - BAD_PIN: -19, - /* configure PIN here */ - MAXPIN: 10000, - /* max PIN */ - PBLEN: 14, - /* MAXPIN length in bits */ - TS: 12, - /* 10 for 4 digit PIN, 14 for 6-digit PIN - 2^TS/TS approx = sqrt(MAXPIN) */ - - EFS: ctx.BIG.MODBYTES, - EGS: ctx.BIG.MODBYTES, - - SHA256: 32, - SHA384: 48, - SHA512: 64, - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - - return s; - }, - - asciitobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i += 2) { - b.push(parseInt(s.substr(i, 2), 16)); - } - - return b; - }, - - comparebytes: function (a, b) { - if (a.length != b.length) { - return false; - } - - for (var i = 0; i < a.length; i++) { - if (a[i] != b[i]) { - return false; - } - } - - return true; - }, - - ceil: function (a, b) { - return Math.floor((a - 1) / b + 1); - }, - - ENCODE_TO_CURVE: function (DST, ID, HCID) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_FIELD.Modulus); - var k = q.nbits(); - var r = new ctx.BIG(0); - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - var m = r.nbits(); - var L = this.ceil(k + this.ceil(m, 2), 8); - var OKM = ctx.HMAC.XMD_Expand(ctx.HMAC.MC_SHA2, ctx.ECP.HASH_TYPE, L, DST, ID); - var fd = []; - - for (var j = 0; j < L; j++) fd[j] = OKM[j]; - var dx = ctx.DBIG.fromBytes(fd); - var u = new ctx.FP(dx.mod(q)); - var P = ctx.ECP.map2point(u); - P.cfp(); - P.affine(); - P.toBytes(HCID, false); - }, - - /* create random secret S */ - RANDOM_GENERATE: function (rng, S) { - var r = new ctx.BIG(0), - s; - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - s = ctx.BIG.randtrunc(r, 16 * ctx.ECP.AESKEY, rng); - s.toBytes(S); - return 0; - }, - - /* Extract PIN from TOKEN for identity CID */ - EXTRACT_PIN: function (CID, pin, TOKEN) { - var P, R; - P = ctx.ECP.fromBytes(TOKEN); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - R = ctx.ECP.fromBytes(CID); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - pin %= this.MAXPIN; - R = R.pinmul(pin, this.PBLEN); - P.sub(R); - P.toBytes(TOKEN, false); - return 0; - }, - - /* Extract Server Secret SST=S*Q where Q is fixed generator in G2 and S is master secret */ - GET_SERVER_SECRET: function (S, SST) { - var s, Q; - Q = ctx.ECP8.generator(); - s = ctx.BIG.fromBytes(S); - Q = ctx.PAIR8.G2mul(Q, s); - Q.toBytes(SST, false); - return 0; - }, - - /* Client secret CST=S*H(CID) where CID is client ID and S is master secret */ - GET_CLIENT_SECRET: function (S, IDHTC, CST) { - var s = ctx.BIG.fromBytes(S); - var P = ctx.ECP.fromBytes(IDHTC); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - ctx.PAIR8.G1mul(P, s).toBytes(CST, false); - return 0; - }, - - /* Implement step 1 on client side of MPin protocol */ - CLIENT_1: function (CID, rng, X, pin, TOKEN, SEC, xID) { - var r = new ctx.BIG(0), - x, - P, - T, - W; - - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (rng !== null) { - x = ctx.BIG.randtrunc(r, 16 * ctx.ECP.AESKEY, rng); - x.toBytes(X); - } else { - x = ctx.BIG.fromBytes(X); - } - P = ctx.ECP.fromBytes(CID); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - T = ctx.ECP.fromBytes(TOKEN); - if (T.is_infinity()) { - return this.INVALID_POINT; - } - - pin %= this.MAXPIN; - W = P.pinmul(pin, this.PBLEN); - T.add(W); - - P = ctx.PAIR8.G1mul(P, x); - P.toBytes(xID, false); - - T.toBytes(SEC, false); - return 0; - }, - - /* Implement step 2 on client side of MPin protocol */ - CLIENT_2: function (X, Y, SEC) { - var r = new ctx.BIG(0), - P, - px, - py; - - r.rcopy(ctx.ROM_CURVE.CURVE_Order); - - P = ctx.ECP.fromBytes(SEC); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - px = ctx.BIG.fromBytes(X); - py = ctx.BIG.fromBytes(Y); - px.add(py); - px.mod(r); - - P = ctx.PAIR8.G1mul(P, px); - P.neg(); - P.toBytes(SEC, false); - return 0; - }, - - /* Implement step 2 of MPin protocol on server side. */ - SERVER: function (HID, Y, SST, xID, mSEC) { - var Q, sQ, R, y, P, g; - Q = ctx.ECP8.generator(); - sQ = ctx.ECP8.fromBytes(SST); - if (sQ.is_infinity()) { - return this.INVALID_POINT; - } - if (xID == null) { - return this.BAD_PARAMS; - } - R = ctx.ECP.fromBytes(xID); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - y = ctx.BIG.fromBytes(Y); - if (HID == null) { - return this.BAD_PARAMS; - } - P = ctx.ECP.fromBytes(HID); - if (P.is_infinity()) { - return this.INVALID_POINT; - } - - P = ctx.PAIR8.G1mul(P, y); - P.add(R); - R = ctx.ECP.fromBytes(mSEC); - if (R.is_infinity()) { - return this.INVALID_POINT; - } - - g = ctx.PAIR8.ate2(Q, R, sQ, P); - g = ctx.PAIR8.fexp(g); - - if (!g.isunity()) { - return this.BAD_PIN; - } - return 0; - }, - }; - - return MPIN256; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - MPIN256: MPIN256, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/nhs.js b/packages/bls-verify/src/vendor/amcl-js/src/nhs.js deleted file mode 100644 index bf86f040c..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/nhs.js +++ /dev/null @@ -1,766 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* NewHope API high-level functions */ - -var NHS = function (ctx) { - 'use strict'; - - var NHS = { - round: function (a, b) { - return Math.floor((a + (b >> 1)) / b); - }, - - /* constant time absolute value */ - nabs: function (x) { - var mask = x >> 31; - return (x + mask) ^ mask; - }, - - /* Montgomery stuff */ - - redc: function (T) { - var m = ((T & 0x3ffffff) * NHS.ND) & 0x3ffffff; - return (m * NHS.PRIME + T) * NHS.MODINV; - }, - - nres: function (x) { - return NHS.redc(x * NHS.R2MODP); - }, - - modmul: function (a, b) { - return NHS.redc(a * b); - }, - - /* NTT code */ - /* Cooley-Tukey NTT */ - - ntt: function (x) { - var t = NHS.DEGREE / 2, - q = NHS.PRIME, - m, - i, - j, - k, - S, - U, - V; - - /* Convert to Montgomery form */ - for (j = 0; j < NHS.DEGREE; j++) { - x[j] = NHS.nres(x[j]); - } - - m = 1; - while (m < NHS.DEGREE) { - k = 0; - - for (i = 0; i < m; i++) { - S = NHS.roots[m + i]; - - for (j = k; j < k + t; j++) { - U = x[j]; - V = NHS.modmul(x[j + t], S); - x[j] = U + V; - x[j + t] = U + 2 * q - V; - } - - k += 2 * t; - } - - t /= 2; - m *= 2; - } - }, - - /* Gentleman-Sande INTT */ - intt: function (x) { - var q = NHS.PRIME, - t = 1, - m, - i, - j, - k, - S, - U, - V, - W; - - m = NHS.DEGREE / 2; - while (m > 1) { - k = 0; - - for (i = 0; i < m; i++) { - S = NHS.iroots[m + i]; - - for (j = k; j < k + t; j++) { - U = x[j]; - V = x[j + t]; - x[j] = U + V; - W = U + NHS.DEGREE * q - V; - x[j + t] = NHS.modmul(W, S); - } - - k += 2 * t; - } - - t *= 2; - m /= 2; - } - /* Last iteration merged with n^-1 */ - - t = NHS.DEGREE / 2; - for (j = 0; j < t; j++) { - U = x[j]; - V = x[j + t]; - W = U + NHS.DEGREE * q - V; - x[j + t] = NHS.modmul(W, NHS.invpr); - x[j] = NHS.modmul(U + V, NHS.inv); - } - - /* convert back from Montgomery to "normal" form */ - for (j = 0; j < NHS.DEGREE; j++) { - x[j] = NHS.redc(x[j]); - x[j] -= q; - x[j] += (x[j] >> (NHS.WL - 1)) & q; - } - }, - - /* See https://eprint.iacr.org/2016/1157.pdf */ - - Encode: function (key, poly) { - var i, j, b, k, kj, q2; - - q2 = NHS.PRIME / 2; - for (i = j = 0; i < 256; ) { - kj = key[j++]; - - for (k = 0; k < 8; k++) { - b = kj & 1; - poly[i] = b * q2; - poly[i + 256] = b * q2; - poly[i + 512] = b * q2; - poly[i + 768] = b * q2; - kj >>= 1; - i++; - } - } - }, - - Decode: function (poly, key) { - var q2 = NHS.PRIME / 2, - i, - j, - k, - b, - t; - - for (i = 0; i < 32; i++) { - key[i] = 0; - } - - for (i = j = 0; i < 256; ) { - for (k = 0; k < 8; k++) { - t = - NHS.nabs(poly[i] - q2) + - NHS.nabs(poly[i + 256] - q2) + - NHS.nabs(poly[i + 512] - q2) + - NHS.nabs(poly[i + 768] - q2); - - b = t - NHS.PRIME; - b = (b >> 31) & 1; - key[j] = ((key[j] & 0xff) >> 1) + (b << 7); - i++; - } - - j++; - } - }, - - /* convert 32-byte seed to random polynomial */ - - Parse: function (seed, poly) { - var sh = new ctx.SHA3(ctx.SHA3.SHAKE128), - hash = [], - i, - j, - n; - - for (i = 0; i < 32; i++) { - sh.process(seed[i]); - } - sh.shake(hash, 4 * NHS.DEGREE); - - for (i = j = 0; i < NHS.DEGREE; i++) { - n = hash[j] & 0x7f; - n <<= 8; - n += hash[j + 1] & 0xff; - n <<= 8; - n += hash[j + 2] & 0xff; - n <<= 8; - n += hash[j + 3] & 0xff; - j += 4; - poly[i] = NHS.nres(n); - //poly[i] = NHS.modmul(n, NHS.ONE); // reduce 31-bit random number mod q - } - }, - - /* Compress 14 bits polynomial coefficients into byte array */ - /* 7 bytes is 3x14 */ - pack: function (poly, array) { - var i, j, a, b, c, d; - - for (i = j = 0; i < NHS.DEGREE; ) { - a = poly[i++]; - b = poly[i++]; - c = poly[i++]; - d = poly[i++]; - array[j++] = a & 0xff; - array[j++] = ((a >> 8) | (b << 6)) & 0xff; - array[j++] = (b >> 2) & 0xff; - array[j++] = ((b >> 10) | (c << 4)) & 0xff; - array[j++] = (c >> 4) & 0xff; - array[j++] = ((c >> 12) | (d << 2)) & 0xff; - array[j++] = d >> 6; - } - }, - - unpack: function (array, poly) { - var i, j, a, b, c, d, e, f, g; - - for (i = j = 0; i < NHS.DEGREE; ) { - a = array[j++] & 0xff; - b = array[j++] & 0xff; - c = array[j++] & 0xff; - d = array[j++] & 0xff; - e = array[j++] & 0xff; - f = array[j++] & 0xff; - g = array[j++] & 0xff; - poly[i++] = a | ((b & 0x3f) << 8); - poly[i++] = (b >> 6) | (c << 2) | ((d & 0xf) << 10); - poly[i++] = (d >> 4) | (e << 4) | ((f & 3) << 12); - poly[i++] = (f >> 2) | (g << 6); - } - }, - - /* See https://eprint.iacr.org/2016/1157.pdf */ - - Compress: function (poly, array) { - var col = 0, - i, - j, - k, - b; - - for (i = j = 0; i < NHS.DEGREE; ) { - for (k = 0; k < 8; k++) { - b = NHS.round(poly[i] * 8, NHS.PRIME) & 7; - col = (col << 3) + b; - i++; - } - - array[j] = col & 0xff; - array[j + 1] = (col >>> 8) & 0xff; - array[j + 2] = (col >>> 16) & 0xff; - j += 3; - col = 0; - } - }, - - Decompress: function (array, poly) { - var col = 0, - i, - j, - k, - b; - - for (i = j = 0; i < NHS.DEGREE; ) { - col = array[j + 2] & 0xff; - col = (col << 8) + (array[j + 1] & 0xff); - col = (col << 8) + (array[j] & 0xff); - j += 3; - - for (k = 0; k < 8; k++) { - b = (col & 0xe00000) >>> 21; - col <<= 3; - poly[i] = NHS.round(b * NHS.PRIME, 8); - i++; - } - } - }, - - /* generate centered binomial distribution */ - - Error: function (RNG, poly) { - var n1, n2, r, i, j; - - for (i = 0; i < NHS.DEGREE; i++) { - n1 = RNG.getByte() + (RNG.getByte() << 8); - n2 = RNG.getByte() + (RNG.getByte() << 8); - r = 0; - - for (j = 0; j < 16; j++) { - r += (n1 & 1) - (n2 & 1); - n1 >>= 1; - n2 >>= 1; - } - - poly[i] = r + NHS.PRIME; - } - }, - - redc_it: function (p) { - var i; - for (i = 0; i < NHS.DEGREE; i++) { - p[i] = NHS.redc(p[i]); - } - }, - - nres_it: function (p) { - var i; - for (i = 0; i < NHS.DEGREE; i++) { - p[i] = NHS.nres(p[i]); - } - }, - - poly_mul: function (p1, p2, p3) { - var i; - - for (i = 0; i < NHS.DEGREE; i++) { - p1[i] = NHS.modmul(p2[i], p3[i]); - } - }, - - poly_add: function (p1, p2, p3) { - var i; - - for (i = 0; i < NHS.DEGREE; i++) { - p1[i] = p2[i] + p3[i]; - } - }, - - poly_sub: function (p1, p2, p3) { - var i; - - for (i = 0; i < NHS.DEGREE; i++) { - p1[i] = p2[i] + NHS.PRIME - p3[i]; - } - }, - - /* reduces inputs < 2q */ - poly_soft_reduce: function (poly) { - var i, e; - - for (i = 0; i < NHS.DEGREE; i++) { - e = poly[i] - NHS.PRIME; - poly[i] = e + ((e >> (NHS.WL - 1)) & NHS.PRIME); - } - }, - - /* fully reduces modulo q */ - poly_hard_reduce: function (poly) { - var i, e; - - for (i = 0; i < NHS.DEGREE; i++) { - e = NHS.modmul(poly[i], NHS.ONE); - e = e - NHS.PRIME; - poly[i] = e + ((e >> (NHS.WL - 1)) & NHS.PRIME); - } - }, - - bytestostring: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - - return s; - }, - /* API files */ - - SERVER_1: function (RNG, SB, S) { - var seed = new Uint8Array(32), - array = new Uint8Array(1792), - s = new Int32Array(NHS.DEGREE), - e = new Int32Array(NHS.DEGREE), - b = new Int32Array(NHS.DEGREE), - i; - - for (i = 0; i < 32; i++) { - seed[i] = RNG.getByte(); - } - - NHS.Parse(seed, b); - - NHS.Error(RNG, e); - NHS.Error(RNG, s); - - NHS.ntt(s); - NHS.ntt(e); - NHS.poly_mul(b, b, s); - NHS.poly_add(b, b, e); - NHS.poly_hard_reduce(b); - - NHS.redc_it(b); - NHS.pack(b, array); - - for (i = 0; i < 32; i++) { - SB[i] = seed[i]; - } - - for (i = 0; i < 1792; i++) { - SB[i + 32] = array[i]; - } - - NHS.poly_hard_reduce(s); - - NHS.pack(s, array); - - for (i = 0; i < 1792; i++) { - S[i] = array[i]; - } - }, - - CLIENT: function (RNG, SB, UC, KEY) { - var sh = new ctx.SHA3(ctx.SHA3.HASH256), - seed = new Uint8Array(32), - array = new Uint8Array(1792), - key = new Uint8Array(32), - cc = new Uint8Array(384), - sd = new Int32Array(NHS.DEGREE), - ed = new Int32Array(NHS.DEGREE), - u = new Int32Array(NHS.DEGREE), - k = new Int32Array(NHS.DEGREE), - c = new Int32Array(NHS.DEGREE), - i; - - NHS.Error(RNG, sd); - NHS.Error(RNG, ed); - - NHS.ntt(sd); - NHS.ntt(ed); - - for (i = 0; i < 32; i++) { - seed[i] = SB[i]; - } - - for (i = 0; i < 1792; i++) { - array[i] = SB[i + 32]; - } - - NHS.Parse(seed, u); - - NHS.poly_mul(u, u, sd); - NHS.poly_add(u, u, ed); - NHS.poly_hard_reduce(u); - - for (i = 0; i < 32; i++) { - key[i] = RNG.getByte(); - } - - for (i = 0; i < 32; i++) { - sh.process(key[i]); - } - - key = sh.hash(); - - NHS.Encode(key, k); - - NHS.unpack(array, c); - NHS.nres_it(c); - - NHS.poly_mul(c, c, sd); - NHS.intt(c); - NHS.Error(RNG, ed); - NHS.poly_add(c, c, ed); - NHS.poly_add(c, c, k); - - NHS.Compress(c, cc); - - sh.init(ctx.SHA3.HASH256); - for (i = 0; i < 32; i++) { - sh.process(key[i]); - } - key = sh.hash(); - - for (i = 0; i < 32; i++) { - KEY[i] = key[i]; - } - - NHS.redc_it(u); - NHS.pack(u, array); - - for (i = 0; i < 1792; i++) { - UC[i] = array[i]; - } - - for (i = 0; i < 384; i++) { - UC[i + 1792] = cc[i]; - } - }, - - SERVER_2: function (S, UC, KEY) { - var sh = new ctx.SHA3(ctx.SHA3.HASH256), - c = new Int32Array(NHS.DEGREE), - s = new Int32Array(NHS.DEGREE), - k = new Int32Array(NHS.DEGREE), - array = new Uint8Array(1792), - key = new Uint8Array(32), - cc = new Uint8Array(384), - i; - - for (i = 0; i < 1792; i++) { - array[i] = UC[i]; - } - - NHS.unpack(array, k); - NHS.nres_it(k); - - for (i = 0; i < 384; i++) { - cc[i] = UC[i + 1792]; - } - - NHS.Decompress(cc, c); - - for (i = 0; i < 1792; i++) { - array[i] = S[i]; - } - - NHS.unpack(array, s); - - NHS.poly_mul(k, k, s); - NHS.intt(k); - NHS.poly_sub(k, c, k); - NHS.poly_soft_reduce(k); - - NHS.Decode(k, key); - - for (i = 0; i < 32; i++) { - sh.process(key[i]); - } - key = sh.hash(); - - for (i = 0; i < 32; i++) { - KEY[i] = key[i]; - } - }, - }; - - //q=12289 - NHS.PRIME = 0x3001; // q in Hex - NHS.LGN = 10; // Degree n=2^LGN - NHS.ND = 0x3002fff; // 1/(R-q) mod R - NHS.ONE = 0x2aac; // R mod q - NHS.R2MODP = 0x1da2; // R^2 mod q - - NHS.MODINV = Math.pow(2, -26); - - NHS.DEGREE = 1024; // 1<< LGN - NHS.WL = 26; - - NHS.inv = 0xffb; - NHS.invpr = 0x1131; - - NHS.roots = [ - 0x2aac, 0xd6f, 0x1c67, 0x2c5b, 0x2dbd, 0x2697, 0x29f6, 0x8d3, 0x1b7c, 0x9eb, 0x20eb, 0x264a, - 0x27d0, 0x121b, 0x58c, 0x4d7, 0x17a2, 0x29eb, 0x1b72, 0x13b0, 0x19b1, 0x1581, 0x2ac9, 0x25e8, - 0x249d, 0x2d5e, 0x363, 0x1f74, 0x1f8f, 0x20a4, 0x2cb2, 0x2d04, 0x1407, 0x2df9, 0x3ad, 0x23f7, - 0x1a72, 0xa91, 0x37f, 0xdb3, 0x2315, 0x5e6, 0xa8f, 0x211d, 0xdad, 0x1f2b, 0x2e29, 0x26b0, - 0x2009, 0x2fdd, 0x2881, 0x399, 0x586, 0x2781, 0x2ab5, 0x971, 0x234b, 0x1df3, 0x1d2a, 0x15dd, - 0x1a6d, 0x2774, 0x7ff, 0x1ebe, 0x230, 0x1cf4, 0x180b, 0xb58, 0x198c, 0x2b40, 0x127b, 0x1d9d, - 0x137f, 0xfa0, 0x144, 0x4b, 0x2fac, 0xb09, 0x1c7f, 0x1b5, 0xeec, 0xc58, 0x1248, 0x243c, 0x108a, - 0x14b8, 0xe9, 0x2dfe, 0xfb, 0x2602, 0x2aec, 0x1bb7, 0x1098, 0x23d8, 0x783, 0x1b13, 0x2067, - 0x20d6, 0x171c, 0x4, 0x662, 0x1097, 0x24b9, 0x1b9d, 0x27c4, 0x276e, 0x6bf, 0x757, 0x2e16, 0x472, - 0x1d11, 0x1649, 0x2904, 0xed4, 0x6c5, 0x14ae, 0x2ef8, 0x2ae0, 0x2e7c, 0x2735, 0x1186, 0x4f2, - 0x17bb, 0x297f, 0x1dc7, 0x1ae5, 0x2a43, 0x2c02, 0xed6, 0x2b70, 0x1c7b, 0x18d1, 0x20ae, 0x6ad, - 0x2404, 0x113a, 0x209e, 0x31b, 0x159d, 0x48f, 0xe09, 0x1bb2, 0x14f7, 0x385, 0x1c4, 0x1cdb, - 0x22d6, 0x21d8, 0xc, 0x1aae, 0x2ece, 0x2d81, 0xd56, 0x5c1, 0x12da, 0x8cf, 0x1605, 0x1bc4, - 0x18b7, 0x19b9, 0x21be, 0x135e, 0x28d6, 0x2891, 0x2208, 0x17e1, 0x2971, 0x926, 0x211b, 0xff, - 0x51f, 0xa85, 0xe1, 0x2c35, 0x2585, 0x121, 0xe27, 0x2e64, 0x29f8, 0x2d46, 0xcb2, 0x292a, 0x33d, - 0xaf9, 0xb86, 0x2e3a, 0x2138, 0x1978, 0x2324, 0xf3f, 0x2d10, 0x1dfd, 0x13c3, 0x6cc, 0x1a79, - 0x1221, 0x250f, 0xacd, 0xfff, 0x7b4, 0x650, 0x1893, 0xe85, 0x1f5d, 0x12dc, 0x2d42, 0xd8e, - 0x1240, 0x1082, 0x12ef, 0x11b6, 0xfa8, 0xb0f, 0xdac, 0x191c, 0x1242, 0x1ea, 0x155, 0x270a, - 0x9ed, 0x2e5b, 0x25d8, 0x222c, 0x7e9, 0x1fb3, 0x10ac, 0x2919, 0x2584, 0xbe3, 0x24fa, 0x23ed, - 0x618, 0x2d80, 0x6fa, 0x140e, 0x588, 0x355, 0x1054, 0x26c4, 0x1e4f, 0x1681, 0x1f6f, 0x1c53, - 0xfe4, 0xacb, 0x1680, 0x2fe8, 0x6c, 0x165a, 0x10bb, 0x2c39, 0x1804, 0x1196, 0x884, 0x2622, - 0x629, 0x1ac1, 0x2232, 0x2f9b, 0xd3e, 0x20ff, 0x12c0, 0x27ec, 0x5a, 0x2a0, 0x5f1, 0x1cda, 0x403, - 0x1ea8, 0x1719, 0x1fc7, 0x2d23, 0x5ea, 0x25d1, 0xb6, 0x49c, 0xac7, 0x2d9c, 0x204e, 0x2142, - 0x11e8, 0xed0, 0x15f0, 0x514, 0xa3f, 0xf43, 0x1de5, 0x2d97, 0x1543, 0x2c7b, 0x241a, 0x2223, - 0x2fb8, 0x25b7, 0x1b4c, 0x2f36, 0x26e2, 0x100, 0x2555, 0x266c, 0x2e10, 0x271c, 0x5aa, 0x1789, - 0x2199, 0x291d, 0x1088, 0x2046, 0x1ea1, 0xf89, 0x1c7a, 0x1e98, 0x137, 0x1b65, 0x24ed, 0xf37, - 0x2ec3, 0xd0c, 0x7c7, 0x123f, 0xb2e, 0x1a97, 0x1a03, 0x1bcd, 0x3b2, 0x714, 0x2979, 0xaef, - 0x2b3c, 0x2d91, 0xe03, 0xe5b, 0x1fbc, 0xcae, 0x432, 0x23a4, 0xb1d, 0x1ccc, 0x1fb6, 0x2f58, - 0x2a5a, 0x723, 0x2c99, 0x2d70, 0xa, 0x263c, 0x2701, 0xdeb, 0x2d08, 0x1c34, 0x200c, 0x1e88, - 0x396, 0x18d5, 0x1c45, 0xc4, 0x18bc, 0x2cd7, 0x1744, 0x8f1, 0x1c5c, 0xbe6, 0x2a89, 0x17a0, - 0x207, 0x19ce, 0x2024, 0x23e3, 0x299b, 0x685, 0x2baf, 0x539, 0x2d49, 0x24b5, 0x158d, 0xfd, - 0x2a95, 0x24d, 0xab3, 0x1125, 0x12f9, 0x15ba, 0x6a8, 0x2c36, 0x6e7, 0x1044, 0x36e, 0xfe8, - 0x112d, 0x2717, 0x24a0, 0x1c09, 0xe1d, 0x828, 0x2f7, 0x1f5b, 0xfab, 0xcf6, 0x1332, 0x1c72, - 0x2683, 0x15ce, 0x1ad3, 0x1a36, 0x24c, 0xb33, 0x253f, 0x1583, 0x1d69, 0x29ec, 0xba7, 0x2f97, - 0x16df, 0x1068, 0xaee, 0xc4f, 0x153c, 0x24eb, 0x20cd, 0x1398, 0x2366, 0x11f9, 0xe77, 0x103d, - 0x260a, 0xce, 0xaea, 0x236b, 0x2b11, 0x5f8, 0xe4f, 0x750, 0x1569, 0x10f5, 0x284e, 0xa38, 0x2e06, - 0xe0, 0xeaa, 0x99e, 0x249b, 0x8eb, 0x2b97, 0x2fdf, 0x29c1, 0x1b00, 0x2fe3, 0x1d4f, 0x83f, - 0x2d06, 0x10e, 0x183f, 0x27ba, 0x132, 0xfbf, 0x296d, 0x154a, 0x40a, 0x2767, 0xad, 0xc09, 0x974, - 0x2821, 0x1e2e, 0x28d2, 0xfac, 0x3c4, 0x2f19, 0xdd4, 0x2ddf, 0x1e43, 0x1e90, 0x2dc9, 0x1144, - 0x28c3, 0x653, 0xf3c, 0x1e32, 0x2a4a, 0x391, 0x1123, 0xdb, 0x2da0, 0xe1e, 0x667, 0x23b5, 0x2039, - 0xa92, 0x1552, 0x5d3, 0x169a, 0x1f03, 0x1342, 0x2004, 0x1b5d, 0x2d01, 0x2e9b, 0x41f, 0x2bc7, - 0xa94, 0xd0, 0x2e6a, 0x2b38, 0x14ac, 0x2724, 0x3ba, 0x6bc, 0x18ac, 0x2da5, 0x213c, 0x2c5c, - 0xdd3, 0xaae, 0x2e08, 0x6cd, 0x1677, 0x2025, 0x1e1c, 0x5b4, 0xdc4, 0x60, 0x156c, 0x2669, 0x1c01, - 0x26ab, 0x1ebb, 0x26d4, 0x21e1, 0x156b, 0x567, 0x1a, 0x29ce, 0x23d4, 0x684, 0xb79, 0x1953, - 0x1046, 0x1d8c, 0x17b5, 0x1c28, 0x1ce5, 0x2478, 0x18d8, 0x1b16, 0x2c2f, 0x21c9, 0x19bb, 0xbbc, - 0x291b, 0x19f6, 0x1879, 0x2fe4, 0x58e, 0x294a, 0x19e8, 0x27c7, 0x2fba, 0x1a29, 0x2319, 0x1ecb, - 0x203b, 0x2f05, 0x2b82, 0x192f, 0x26aa, 0x2482, 0xaed, 0x1216, 0x708, 0x11a1, 0xc22, 0x908, - 0x28f8, 0x2427, 0x7f8, 0x172e, 0xf50, 0xaa8, 0x184a, 0x1f67, 0x22d1, 0xeba, 0x215b, 0xf47, - 0x2877, 0xd5e, 0x8dc, 0x20d, 0x2dae, 0x1d3e, 0x775, 0xbf3, 0x872, 0x2667, 0x1ff6, 0xd9f, 0x13c4, - 0x105, 0x65f, 0x21ec, 0x6dd, 0x1a09, 0xc6e, 0x1fd, 0x1426, 0xae3, 0x494, 0x2d82, 0x22cd, 0x25d6, - 0x11c1, 0x1c, 0x2cae, 0x141f, 0x110a, 0x147, 0x2657, 0x23fd, 0x2f39, 0x360, 0x2294, 0x1f1e, - 0xb73, 0xbfc, 0x2f17, 0x7ca, 0x2f63, 0xbf, 0x28c2, 0xc1a, 0x255e, 0x226e, 0x1aa8, 0x229e, - 0x161a, 0x273, 0x106d, 0x2c40, 0x7cf, 0x1408, 0x7d8, 0x100a, 0x759, 0x1db4, 0x24be, 0x2ebb, - 0xc17, 0x1894, 0x244e, 0x15bd, 0x748, 0x1fe9, 0x23d, 0x1da, 0x2be, 0x18a3, 0xc5c, 0x9f9, 0x3d5, - 0x2ce4, 0x54, 0x2abf, 0x279c, 0x1e81, 0x2d59, 0x2847, 0x23f4, 0xda8, 0xa20, 0x258, 0x1cfe, - 0x240c, 0x2c2e, 0x2790, 0x2dd5, 0x2bf2, 0x2e34, 0x1724, 0x211, 0x1009, 0x27b9, 0x6f9, 0x23d9, - 0x19a2, 0x627, 0x156d, 0x169e, 0x7e7, 0x30f, 0x24b6, 0x5c2, 0x1ce4, 0x28dd, 0x20, 0x16ab, - 0x1cce, 0x20a9, 0x2390, 0x2884, 0x2245, 0x5f7, 0xab7, 0x1b6a, 0x11e7, 0x2a53, 0x2f94, 0x294c, - 0x1ee5, 0x1364, 0x1b9a, 0xff7, 0x5eb, 0x2c30, 0x1c02, 0x5a1, 0x1b87, 0x2402, 0x1cc8, 0x2ee1, - 0x1fbe, 0x138c, 0x2487, 0x1bf8, 0xd96, 0x1d68, 0x2fb3, 0x1fc1, 0x1fcc, 0xd66, 0x953, 0x2141, - 0x157a, 0x2477, 0x18e3, 0x2f30, 0x75e, 0x1de1, 0x14b2, 0x2faa, 0x1697, 0x2334, 0x12d1, 0xb76, - 0x2aa8, 0x1e7a, 0xd5, 0x2c60, 0x26b8, 0x1753, 0x124a, 0x1f57, 0x1425, 0xd84, 0x1c05, 0x641, - 0xf3a, 0x1b8c, 0xd7d, 0x2f52, 0x2f4, 0xc73, 0x151b, 0x1589, 0x1819, 0x1b18, 0xb9b, 0x1ae9, - 0x2b1f, 0x2b44, 0x2f5a, 0x2d37, 0x2cb1, 0x26f5, 0x233e, 0x276f, 0x276, 0x1260, 0x2997, 0x9f2, - 0x1c15, 0x1694, 0x11ac, 0x1e6d, 0x1bef, 0x2966, 0x18b2, 0x4fa, 0x2044, 0x1b70, 0x1f3e, 0x221e, - 0x28ca, 0x1d56, 0x7ae, 0x98d, 0x238c, 0x17b8, 0xad3, 0x113f, 0x1f1b, 0x4d2, 0x1757, 0xcb1, - 0x2ef1, 0x2e02, 0x17fc, 0x2f11, 0x2a74, 0x2029, 0x700, 0x154e, 0x1cef, 0x226a, 0x21bf, 0x27a6, - 0x14bc, 0x2b2b, 0x2fc6, 0x13b6, 0x21e6, 0x1663, 0xcbd, 0x752, 0x1624, 0x881, 0x2fc0, 0x1276, - 0xa7f, 0x274f, 0x2b53, 0x670, 0x1fb7, 0x1e41, 0x2a1e, 0x2612, 0x297, 0x19de, 0x18b, 0x249, - 0x1c88, 0xe9e, 0x1ef1, 0x213, 0x47b, 0x1e20, 0x28c1, 0x1d5e, 0x977, 0x1dca, 0x990, 0x1df6, - 0x2b62, 0x870, 0x1f4, 0x1829, 0x1e0a, 0x46, 0x1b9f, 0x2102, 0x16b, 0x1b32, 0x568, 0x2050, - 0x15b4, 0x191a, 0x1dd0, 0x5df, 0x55c, 0x1d21, 0x19db, 0x12d9, 0xe96, 0x680, 0x2349, 0x9b9, - 0x155d, 0xe31, 0x249f, 0x20f8, 0xb30, 0x337, 0x2da3, 0x11c3, 0x248f, 0x1cf9, 0x10ee, 0x6d8, - 0x6eb, 0xa0d, 0x101b, 0x1ae4, 0x1801, 0x24cd, 0x813, 0x2e98, 0x1574, 0x50, 0x11da, 0x1802, - 0xf56, 0x1839, 0x219c, 0x105b, 0x43b, 0x2c9, 0x917, 0x14c1, 0x1b79, 0xdab, 0x2ab9, 0x265c, - 0x71a, 0x1d90, 0x89f, 0x2bc2, 0x2777, 0x1014, 0x1e64, 0x14b4, 0x692, 0xddb, 0x56e, 0x2190, - 0x2d1b, 0x1016, 0x12d6, 0x1c81, 0x2628, 0x4a1, 0x1268, 0x2597, 0x2926, 0x7c5, 0x1dcd, 0x53f, - 0x11a9, 0x1a41, 0x5a2, 0x1c65, 0x7e8, 0xd71, 0x29c8, 0x427, 0x32f, 0x5dc, 0x16b1, 0x2a1d, - 0x1787, 0x2224, 0x620, 0x6a4, 0x1351, 0x1038, 0xe6c, 0x111b, 0x2f13, 0x441, 0x2cfd, 0x2f2f, - 0xd25, 0x9b8, 0x1b24, 0x762, 0x19b6, 0x2611, 0x85e, 0xe37, 0x1f5, 0x503, 0x1c46, 0x23cc, 0x4bb, - 0x243e, 0x122b, 0x28e2, 0x133e, 0x2db9, 0xdb2, 0x1a5c, 0x29a9, 0xca, 0x2113, 0x13d1, 0x15ec, - 0x2079, 0x18da, 0x2d50, 0x2c45, 0xaa2, 0x135a, 0x800, 0x18f7, 0x17f3, 0x5fd, 0x1f5a, 0x2d0, - 0x2cd1, 0x9ee, 0x218b, 0x19fd, 0x53b, 0x28c5, 0xe33, 0x1911, 0x26cc, 0x2018, 0x2f88, 0x1b01, - 0x2637, 0x1cd9, 0x126b, 0x1a0b, 0x5b0, 0x24e0, 0xe82, 0xb1, 0x21f7, 0x1a16, 0x2f24, 0x1cb1, - 0x1f7d, 0x28a0, 0x167e, 0xc3, - ]; - NHS.iroots = [ - 0x2aac, 0x2292, 0x3a6, 0x139a, 0x272e, 0x60b, 0x96a, 0x244, 0x2b2a, 0x2a75, 0x1de6, 0x831, - 0x9b7, 0xf16, 0x2616, 0x1485, 0x2fd, 0x34f, 0xf5d, 0x1072, 0x108d, 0x2c9e, 0x2a3, 0xb64, 0xa19, - 0x538, 0x1a80, 0x1650, 0x1c51, 0x148f, 0x616, 0x185f, 0x1143, 0x2802, 0x88d, 0x1594, 0x1a24, - 0x12d7, 0x120e, 0xcb6, 0x2690, 0x54c, 0x880, 0x2a7b, 0x2c68, 0x780, 0x24, 0xff8, 0x951, 0x1d8, - 0x10d6, 0x2254, 0xee4, 0x2572, 0x2a1b, 0xcec, 0x224e, 0x2c82, 0x2570, 0x158f, 0xc0a, 0x2c54, - 0x208, 0x1bfa, 0x3ff, 0x5be, 0x151c, 0x123a, 0x682, 0x1846, 0x2b0f, 0x1e7b, 0x8cc, 0x185, 0x521, - 0x109, 0x1b53, 0x293c, 0x212d, 0x6fd, 0x19b8, 0x12f0, 0x2b8f, 0x1eb, 0x28aa, 0x2942, 0x893, - 0x83d, 0x1464, 0xb48, 0x1f6a, 0x299f, 0x2ffd, 0x18e5, 0xf2b, 0xf9a, 0x14ee, 0x287e, 0xc29, - 0x1f69, 0x144a, 0x515, 0x9ff, 0x2f06, 0x203, 0x2f18, 0x1b49, 0x1f77, 0xbc5, 0x1db9, 0x23a9, - 0x2115, 0x2e4c, 0x1382, 0x24f8, 0x55, 0x2fb6, 0x2ebd, 0x2061, 0x1c82, 0x1264, 0x1d86, 0x4c1, - 0x1675, 0x24a9, 0x17f6, 0x130d, 0x2dd1, 0x29d8, 0x9df, 0x277d, 0x1e6b, 0x17fd, 0x3c8, 0x1f46, - 0x19a7, 0x2f95, 0x19, 0x1981, 0x2536, 0x201d, 0x13ae, 0x1092, 0x1980, 0x11b2, 0x93d, 0x1fad, - 0x2cac, 0x2a79, 0x1bf3, 0x2907, 0x281, 0x29e9, 0xc14, 0xb07, 0x241e, 0xa7d, 0x6e8, 0x1f55, - 0x104e, 0x2818, 0xdd5, 0xa29, 0x1a6, 0x2614, 0x8f7, 0x2eac, 0x2e17, 0x1dbf, 0x16e5, 0x2255, - 0x24f2, 0x2059, 0x1e4b, 0x1d12, 0x1f7f, 0x1dc1, 0x2273, 0x2bf, 0x1d25, 0x10a4, 0x217c, 0x176e, - 0x29b1, 0x284d, 0x2002, 0x2534, 0xaf2, 0x1de0, 0x1588, 0x2935, 0x1c3e, 0x1204, 0x2f1, 0x20c2, - 0xcdd, 0x1689, 0xec9, 0x1c7, 0x247b, 0x2508, 0x2cc4, 0x6d7, 0x234f, 0x2bb, 0x609, 0x19d, 0x21da, - 0x2ee0, 0xa7c, 0x3cc, 0x2f20, 0x257c, 0x2ae2, 0x2f02, 0xee6, 0x26db, 0x690, 0x1820, 0xdf9, - 0x770, 0x72b, 0x1ca3, 0xe43, 0x1648, 0x174a, 0x143d, 0x19fc, 0x2732, 0x1d27, 0x2a40, 0x22ab, - 0x280, 0x133, 0x1553, 0x2ff5, 0xe29, 0xd2b, 0x1326, 0x2e3d, 0x2c7c, 0x1b0a, 0x144f, 0x21f8, - 0x2b72, 0x1a64, 0x2ce6, 0xf63, 0x1ec7, 0xbfd, 0x2954, 0xf53, 0x1730, 0x1386, 0x491, 0x212b, - 0x222e, 0x3a5, 0xec5, 0x25c, 0x1755, 0x2945, 0x2c47, 0x8dd, 0x1b55, 0x4c9, 0x197, 0x2f31, - 0x256d, 0x43a, 0x2be2, 0x166, 0x300, 0x14a4, 0xffd, 0x1cbf, 0x10fe, 0x1967, 0x2a2e, 0x1aaf, - 0x256f, 0xfc8, 0xc4c, 0x299a, 0x21e3, 0x261, 0x2f26, 0x1ede, 0x2c70, 0x5b7, 0x11cf, 0x20c5, - 0x29ae, 0x73e, 0x1ebd, 0x238, 0x1171, 0x11be, 0x222, 0x222d, 0xe8, 0x2c3d, 0x2055, 0x72f, - 0x11d3, 0x7e0, 0x268d, 0x23f8, 0x2f54, 0x89a, 0x2bf7, 0x1ab7, 0x694, 0x2042, 0x2ecf, 0x847, - 0x17c2, 0x2ef3, 0x2fb, 0x27c2, 0x12b2, 0x1e, 0x1501, 0x640, 0x22, 0x46a, 0x2716, 0xb66, 0x2663, - 0x2157, 0x2f21, 0x1fb, 0x25c9, 0x7b3, 0x1f0c, 0x1a98, 0x28b1, 0x21b2, 0x2a09, 0x4f0, 0xc96, - 0x2517, 0x2f33, 0x9f7, 0x1fc4, 0x218a, 0x1e08, 0xc9b, 0x1c69, 0xf34, 0xb16, 0x1ac5, 0x23b2, - 0x2513, 0x1f99, 0x1922, 0x6a, 0x245a, 0x615, 0x1298, 0x1a7e, 0xac2, 0x24ce, 0x2db5, 0x15cb, - 0x152e, 0x1a33, 0x97e, 0x138f, 0x1ccf, 0x230b, 0x2056, 0x10a6, 0x2d0a, 0x27d9, 0x21e4, 0x13f8, - 0xb61, 0x8ea, 0x1ed4, 0x2019, 0x2c93, 0x1fbd, 0x291a, 0x3cb, 0x2959, 0x1a47, 0x1d08, 0x1edc, - 0x254e, 0x2db4, 0x56c, 0x2f04, 0x1a74, 0xb4c, 0x2b8, 0x2ac8, 0x452, 0x297c, 0x666, 0xc1e, 0xfdd, - 0x1633, 0x2dfa, 0x1861, 0x578, 0x241b, 0x13a5, 0x2710, 0x18bd, 0x32a, 0x1745, 0x2f3d, 0x13bc, - 0x172c, 0x2c6b, 0x1179, 0xff5, 0x13cd, 0x2f9, 0x2216, 0x900, 0x9c5, 0x2ff7, 0x291, 0x368, - 0x28de, 0x5a7, 0xa9, 0x104b, 0x1335, 0x24e4, 0xc5d, 0x2bcf, 0x2353, 0x1045, 0x21a6, 0x21fe, - 0x270, 0x4c5, 0x2512, 0x688, 0x28ed, 0x2c4f, 0x1434, 0x15fe, 0x156a, 0x24d3, 0x1dc2, 0x283a, - 0x22f5, 0x13e, 0x20ca, 0xb14, 0x149c, 0x2eca, 0x1169, 0x1387, 0x2078, 0x1160, 0xfbb, 0x1f79, - 0x6e4, 0xe68, 0x1878, 0x2a57, 0x8e5, 0x1f1, 0x995, 0xaac, 0x2f01, 0x91f, 0xcb, 0x14b5, 0xa4a, - 0x49, 0xdde, 0xbe7, 0x386, 0x1abe, 0x26a, 0x121c, 0x20be, 0x25c2, 0x2aed, 0x1a11, 0x2131, - 0x1e19, 0xebf, 0xfb3, 0x265, 0x253a, 0x2b65, 0x2f4b, 0xa30, 0x2a17, 0x2de, 0x103a, 0x18e8, - 0x1159, 0x2bfe, 0x1327, 0x2a10, 0x2d61, 0x2fa7, 0x815, 0x1d41, 0xf02, 0x22c3, 0x66, 0xdcf, - 0x1540, 0x2f3e, 0x1983, 0x761, 0x1084, 0x1350, 0xdd, 0x15eb, 0xe0a, 0x2f50, 0x217f, 0xb21, - 0x2a51, 0x15f6, 0x1d96, 0x1328, 0x9ca, 0x1500, 0x79, 0xfe9, 0x935, 0x16f0, 0x21ce, 0x73c, - 0x2ac6, 0x1604, 0xe76, 0x2613, 0x330, 0x2d31, 0x10a7, 0x2a04, 0x180e, 0x170a, 0x2801, 0x1ca7, - 0x255f, 0x3bc, 0x2b1, 0x1727, 0xf88, 0x1a15, 0x1c30, 0xeee, 0x2f37, 0x658, 0x15a5, 0x224f, - 0x248, 0x1cc3, 0x71f, 0x1dd6, 0xbc3, 0x2b46, 0xc35, 0x13bb, 0x2afe, 0x2e0c, 0x21ca, 0x27a3, - 0x9f0, 0x164b, 0x289f, 0x14dd, 0x2649, 0x22dc, 0xd2, 0x304, 0x2bc0, 0xee, 0x1ee6, 0x2195, - 0x1fc9, 0x1cb0, 0x295d, 0x29e1, 0xddd, 0x187a, 0x5e4, 0x1950, 0x2a25, 0x2cd2, 0x2bda, 0x639, - 0x2290, 0x2819, 0x139c, 0x2a5f, 0x15c0, 0x1e58, 0x2ac2, 0x1234, 0x283c, 0x6db, 0xa6a, 0x1d99, - 0x2b60, 0x9d9, 0x1380, 0x1d2b, 0x1feb, 0x2e6, 0xe71, 0x2a93, 0x2226, 0x296f, 0x1b4d, 0x119d, - 0x1fed, 0x88a, 0x43f, 0x2762, 0x1271, 0x28e7, 0x9a5, 0x548, 0x2256, 0x1488, 0x1b40, 0x26ea, - 0x2d38, 0x2bc6, 0x1fa6, 0xe65, 0x17c8, 0x20ab, 0x17ff, 0x1e27, 0x2fb1, 0x1a8d, 0x169, 0x27ee, - 0xb34, 0x1800, 0x151d, 0x1fe6, 0x25f4, 0x2916, 0x2929, 0x1f13, 0x1308, 0xb72, 0x1e3e, 0x25e, - 0x2cca, 0x24d1, 0xf09, 0xb62, 0x21d0, 0x1aa4, 0x2648, 0xcb8, 0x2981, 0x216b, 0x1d28, 0x1626, - 0x12e0, 0x2aa5, 0x2a22, 0x1231, 0x16e7, 0x1a4d, 0xfb1, 0x2a99, 0x14cf, 0x2e96, 0xeff, 0x1462, - 0x2fbb, 0x11f7, 0x17d8, 0x2e0d, 0x2791, 0x49f, 0x120b, 0x2671, 0x1237, 0x268a, 0x12a3, 0x740, - 0x11e1, 0x2b86, 0x2dee, 0x1110, 0x2163, 0x1379, 0x2db8, 0x2e76, 0x1623, 0x2d6a, 0x9ef, 0x5e3, - 0x11c0, 0x104a, 0x2991, 0x4ae, 0x8b2, 0x2582, 0x1d8b, 0x41, 0x2780, 0x19dd, 0x28af, 0x2344, - 0x199e, 0xe1b, 0x1c4b, 0x3b, 0x4d6, 0x1b45, 0x85b, 0xe42, 0xd97, 0x1312, 0x1ab3, 0x2901, 0xfd8, - 0x58d, 0xf0, 0x1805, 0x1ff, 0x110, 0x2350, 0x18aa, 0x2b2f, 0x10e6, 0x1ec2, 0x252e, 0x1849, - 0xc75, 0x2674, 0x2853, 0x12ab, 0x737, 0xde3, 0x10c3, 0x1491, 0xfbd, 0x2b07, 0x174f, 0x69b, - 0x1412, 0x1194, 0x1e55, 0x196d, 0x13ec, 0x260f, 0x66a, 0x1da1, 0x2d8b, 0x892, 0xcc3, 0x90c, - 0x350, 0x2ca, 0xa7, 0x4bd, 0x4e2, 0x1518, 0x2466, 0x14e9, 0x17e8, 0x1a78, 0x1ae6, 0x238e, - 0x2d0d, 0xaf, 0x2284, 0x1475, 0x20c7, 0x29c0, 0x13fc, 0x227d, 0x1bdc, 0x10aa, 0x1db7, 0x18ae, - 0x949, 0x3a1, 0x2f2c, 0x1187, 0x559, 0x248b, 0x1d30, 0xccd, 0x196a, 0x57, 0x1b4f, 0x1220, - 0x28a3, 0xd1, 0x171e, 0xb8a, 0x1a87, 0xec0, 0x26ae, 0x229b, 0x1035, 0x1040, 0x4e, 0x1299, - 0x226b, 0x1409, 0xb7a, 0x1c75, 0x1043, 0x120, 0x1339, 0xbff, 0x147a, 0x2a60, 0x13ff, 0x3d1, - 0x2a16, 0x200a, 0x1467, 0x1c9d, 0x111c, 0x6b5, 0x6d, 0x5ae, 0x1e1a, 0x1497, 0x254a, 0x2a0a, - 0xdbc, 0x77d, 0xc71, 0xf58, 0x1333, 0x1956, 0x2fe1, 0x724, 0x131d, 0x2a3f, 0xb4b, 0x2cf2, - 0x281a, 0x1963, 0x1a94, 0x29da, 0x165f, 0xc28, 0x2908, 0x848, 0x1ff8, 0x2df0, 0x18dd, 0x1cd, - 0x40f, 0x22c, 0x871, 0x3d3, 0xbf5, 0x1303, 0x2da9, 0x25e1, 0x2259, 0xc0d, 0x7ba, 0x2a8, 0x1180, - 0x865, 0x542, 0x2fad, 0x31d, 0x2c2c, 0x2608, 0x23a5, 0x175e, 0x2d43, 0x2e27, 0x2dc4, 0x1018, - 0x28b9, 0x1a44, 0xbb3, 0x176d, 0x23ea, 0x146, 0xb43, 0x124d, 0x28a8, 0x1ff7, 0x2829, 0x1bf9, - 0x2832, 0x3c1, 0x1f94, 0x2d8e, 0x19e7, 0xd63, 0x1559, 0xd93, 0xaa3, 0x23e7, 0x73f, 0x2f42, 0x9e, - 0x2837, 0xea, 0x2405, 0x248e, 0x10e3, 0xd6d, 0x2ca1, 0xc8, 0xc04, 0x9aa, 0x2eba, 0x1ef7, 0x1be2, - 0x353, 0x2fe5, 0x1e40, 0xa2b, 0xd34, 0x27f, 0x2b6d, 0x251e, 0x1bdb, 0x2e04, 0x2393, 0x15f8, - 0x2924, 0xe15, 0x29a2, 0x2efc, 0x1c3d, 0x2262, 0x100b, 0x99a, 0x278f, 0x240e, 0x288c, 0x12c3, - 0x253, 0x2df4, 0x2725, 0x22a3, 0x78a, 0x20ba, 0xea6, 0x2147, 0xd30, 0x109a, 0x17b7, 0x2559, - 0x20b1, 0x18d3, 0x2809, 0xbda, 0x709, 0x26f9, 0x23df, 0x1e60, 0x28f9, 0x1deb, 0x2514, 0xb7f, - 0x957, 0x16d2, 0x47f, 0xfc, 0xfc6, 0x1136, 0xce8, 0x15d8, 0x47, 0x83a, 0x1619, 0x6b7, 0x2a73, - 0x1d, 0x1788, 0x160b, 0x6e6, 0x2445, 0x1646, 0xe38, 0x3d2, 0x14eb, 0x1729, 0xb89, 0x131c, - 0x13d9, 0x184c, 0x1275, 0x1fbb, 0x16ae, 0x2488, 0x297d, 0xc2d, 0x633, 0x2fe7, 0x2a9a, 0x1a96, - 0xe20, 0x92d, 0x1146, 0x956, 0x1400, 0x998, 0x1a95, 0x2fa1, 0x223d, 0x2a4d, 0x11e5, 0xfdc, - 0x198a, 0x2934, 0x1f9, 0x2553, - ]; - - return NHS; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.NHS = NHS; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/pair.js b/packages/bls-verify/src/vendor/amcl-js/src/pair.js deleted file mode 100644 index 057dbe517..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/pair.js +++ /dev/null @@ -1,1076 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var PAIR = function (ctx) { - 'use strict'; - - var PAIR = { - dbl: function (A, AA, BB, CC) { - CC.copy(A.getx()); - var YY = new ctx.FP2(A.gety()); - BB.copy(A.getz()); - AA.copy(YY); - - AA.mul(BB); //YZ - CC.sqr(); //X^2 - YY.sqr(); //Y^2 - BB.sqr(); //Z^2 - - AA.add(AA); - AA.neg(); - AA.norm(); //-2AA - AA.mul_ip(); - AA.norm(); - - var sb = 3 * ctx.ROM_CURVE.CURVE_B_I; - BB.imul(sb); - CC.imul(3); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - YY.mul_ip(); - YY.norm(); - CC.mul_ip(); - CC.norm(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - BB.mul_ip(); - BB.norm(); - } - BB.sub(YY); - BB.norm(); - - A.dbl(); - }, - - add: function (A, B, AA, BB, CC) { - AA.copy(A.getx()); // X1 - CC.copy(A.gety()); // Y1 - var T1 = new ctx.FP2(A.getz()); // Z1 - BB.copy(A.getz()); // Z1 - - T1.mul(B.gety()); // T1=Z1.Y2 - BB.mul(B.getx()); // T2=Z1.X2 - - AA.sub(BB); - AA.norm(); // X1=X1-Z1.X2 - CC.sub(T1); - CC.norm(); // Y1=Y1-Z1.Y2 - - T1.copy(AA); // T1=X1-Z1.X2 - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - AA.mul_ip(); - AA.norm(); - } - - T1.mul(B.gety()); // T1=(X1-Z1.X2).Y2 - - BB.copy(CC); // T2=Y1-Z1.Y2 - BB.mul(B.getx()); // T2=(Y1-Z1.Y2).X2 - BB.sub(T1); - BB.norm(); // T2=(Y1-Z1.Y2).X2 - (X1-Z1.X2).Y2 - CC.neg(); - CC.norm(); // Y1=-(Y1-Z1.Y2).Xs - - A.add(B); - }, - - /* Line function */ - line: function (A, B, Qx, Qy) { - var r = new ctx.FP12(1); - - var a, b, c; - var AA = new ctx.FP2(0); - var BB = new ctx.FP2(0); - var CC = new ctx.FP2(0); - if (A == B) PAIR.dbl(A, AA, BB, CC); - else PAIR.add(A, B, AA, BB, CC); - - CC.pmul(Qx); - AA.pmul(Qy); - - a = new ctx.FP4(AA, BB); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b = new ctx.FP4(CC); // L(0,1) | L(0,0) | L(1,0) - c = new ctx.FP4(0); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b = new ctx.FP4(0); - c = new ctx.FP4(CC); - c.times_i(); - } - - r.set(a, b, c); - r.settype(ctx.FP.SPARSER); - - return r; - }, - - /* prepare for multi-pairing */ - initmp: function () { - var r = []; - for (var i = 0; i < ctx.ECP.ATE_BITS; i++) r[i] = new ctx.FP12(1); - return r; - }, - - /* basic Miller loop */ - miller: function (r) { - var res = new ctx.FP12(1); - for (var i = ctx.ECP.ATE_BITS - 1; i >= 1; i--) { - res.sqr(); - res.ssmul(r[i]); - r[i].zero(); - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) res.conj(); - res.ssmul(r[0]); - r[0].zero(); - - return res; - }, - - // Store precomputed line details in an FP4 - pack: function (AA, BB, CC) { - var i = new ctx.FP2(CC); - i.inverse(null); - var a = new ctx.FP2(AA); - a.mul(i); - var b = new ctx.FP2(BB); - b.mul(i); - return new ctx.FP4(a, b); - }, - - unpack: function (T, Qx, Qy) { - var a, b, c; - a = new ctx.FP4(T); - a.geta().pmul(Qy); - var t = new ctx.FP2(Qx); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b = new ctx.FP4(t); - c = new ctx.FP4(0); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b = new ctx.FP4(0); - c = new ctx.FP4(t); - c.times_i(); - } - var v = new ctx.FP12(a, b, c); - v.settype(ctx.FP.SPARSEST); - return v; - }, - - precomp: function (GV) { - var f; - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var nb = PAIR.lbits(n3, n); - var P = new ctx.ECP2(); - P.copy(GV); - var AA = new ctx.FP2(0); - var BB = new ctx.FP2(0); - var CC = new ctx.FP2(0); - var j, bt; - - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - var fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - var fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - f.inverse(null); - f.norm(); - } - } - var A = new ctx.ECP2(); - A.copy(P); - var MP = new ctx.ECP2(); - MP.copy(P); - MP.neg(); - j = 0; - - var T = []; - for (var i = nb - 2; i >= 1; i--) { - PAIR.dbl(A, AA, BB, CC); - T[j++] = PAIR.pack(AA, BB, CC); - - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - PAIR.add(A, P, AA, BB, CC); - T[j++] = PAIR.pack(AA, BB, CC); - } - if (bt == -1) { - PAIR.add(A, MP, AA, BB, CC); - T[j++] = PAIR.pack(AA, BB, CC); - } - } - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - A.neg(); - } - var K = new ctx.ECP2(); - K.copy(P); - K.frob(f); - PAIR.add(A, K, AA, BB, CC); - T[j++] = PAIR.pack(AA, BB, CC); - K.frob(f); - K.neg(); - PAIR.add(A, K, AA, BB, CC); - T[j++] = PAIR.pack(AA, BB, CC); - } - return T; - }, - - /* Accumulate another set of line functions for n-pairing, assuming precomputation on G2 */ - another_pc(r, T, QV) { - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var nb = PAIR.lbits(n3, n); - var lv, lv2; - var j, bt; - - if (QV.is_infinity()) return; - - var Q = new ctx.ECP(); - Q.copy(QV); - Q.affine(); - var Qx = new ctx.FP(Q.getx()); - var Qy = new ctx.FP(Q.gety()); - - j = 0; - for (var i = nb - 2; i >= 1; i--) { - lv = PAIR.unpack(T[j++], Qx, Qy); - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - lv2 = PAIR.unpack(T[j++], Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR.unpack(T[j++], Qx, Qy); - lv.smul(lv2); - } - r[i].ssmul(lv); - } - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - lv = PAIR.unpack(T[j++], Qx, Qy); - lv2 = PAIR.unpack(T[j++], Qx, Qy); - lv.smul(lv2); - r[0].ssmul(lv); - } - }, - - /* Accumulate another set of line functions for n-pairing */ - another: function (r, P1, Q1) { - var f; - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var K = new ctx.ECP2(); - var lv, lv2; - var bt; - - if (Q1.is_infinity()) return; - // P is needed in affine form for line function, Q for (Qx,Qy) extraction - var P = new ctx.ECP2(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - - P.affine(); - Q.affine(); - - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - var fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - var fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - f.inverse(null); - f.norm(); - } - } - - var Qx = new ctx.FP(Q.getx()); - var Qy = new ctx.FP(Q.gety()); - - var A = new ctx.ECP2(); - A.copy(P); - - var MP = new ctx.ECP2(); - MP.copy(P); - MP.neg(); - - var nb = PAIR.lbits(n3, n); - - for (var i = nb - 2; i >= 1; i--) { - lv = PAIR.line(A, A, Qx, Qy); - - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - lv2 = PAIR.line(A, P, Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR.line(A, MP, Qx, Qy); - lv.smul(lv2); - } - r[i].ssmul(lv); - } - - /* R-ate fixup required for BN curves */ - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - A.neg(); - } - K.copy(P); - K.frob(f); - lv = PAIR.line(A, K, Qx, Qy); - K.frob(f); - K.neg(); - lv2 = PAIR.line(A, K, Qx, Qy); - lv.smul(lv2); - r[0].ssmul(lv); - } - }, - - /* Optimal R-ate pairing */ - ate: function (P1, Q1) { - var fa, fb, f, n, n3, K, lv, lv2, Qx, Qy, A, NP, r, nb, bt, i; - - if (Q1.is_infinity()) return new ctx.FP12(1); - - n = new ctx.BIG(0); - n3 = new ctx.BIG(0); - K = new ctx.ECP2(); - - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - f.inverse(null); - f.norm(); - } - } - - var P = new ctx.ECP2(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - - Qx = new ctx.FP(Q.getx()); - Qy = new ctx.FP(Q.gety()); - - A = new ctx.ECP2(); - r = new ctx.FP12(1); - A.copy(P); - - NP = new ctx.ECP2(); - NP.copy(P); - NP.neg(); - - nb = PAIR.lbits(n3, n); - - for (i = nb - 2; i >= 1; i--) { - r.sqr(); - lv = PAIR.line(A, A, Qx, Qy); - bt = n3.bit(i) - n.bit(i); - - if (bt == 1) { - lv2 = PAIR.line(A, P, Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR.line(A, NP, Qx, Qy); - lv.smul(lv2); - } - r.ssmul(lv); - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - r.conj(); - } - - /* R-ate fixup */ - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - A.neg(); - } - - K.copy(P); - K.frob(f); - - lv = PAIR.line(A, K, Qx, Qy); - K.frob(f); - K.neg(); - lv2 = PAIR.line(A, K, Qx, Qy); - lv.smul(lv2); - r.ssmul(lv); - } - - return r; - }, - - /* Optimal R-ate double pairing e(P,Q).e(R,S) */ - - ate2: function (P1, Q1, R1, S1) { - var fa, fb, f, n, n3, K, lv, lv2, Qx, Qy, Sx, Sy, A, B, NP, NR, r, nb, bt, i; - - if (Q1.is_infinity()) return PAIR.ate(R1, S1); - if (S1.is_infinity()) return PAIR.ate(P1, Q1); - - n = new ctx.BIG(0); - n3 = new ctx.BIG(0); - K = new ctx.ECP2(); - - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - f.inverse(null); - f.norm(); - } - } - - var P = new ctx.ECP2(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - var R = new ctx.ECP2(); - R.copy(R1); - R.affine(); - var S = new ctx.ECP(); - S.copy(S1); - S.affine(); - - Qx = new ctx.FP(Q.getx()); - Qy = new ctx.FP(Q.gety()); - - Sx = new ctx.FP(S.getx()); - Sy = new ctx.FP(S.gety()); - - A = new ctx.ECP2(); - B = new ctx.ECP2(); - r = new ctx.FP12(1); - - A.copy(P); - B.copy(R); - - NP = new ctx.ECP2(); - NP.copy(P); - NP.neg(); - NR = new ctx.ECP2(); - NR.copy(R); - NR.neg(); - - nb = PAIR.lbits(n3, n); - - for (i = nb - 2; i >= 1; i--) { - r.sqr(); - lv = PAIR.line(A, A, Qx, Qy); - lv2 = PAIR.line(B, B, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - - bt = n3.bit(i) - n.bit(i); - - if (bt == 1) { - lv = PAIR.line(A, P, Qx, Qy); - lv2 = PAIR.line(B, R, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - } - if (bt == -1) { - lv = PAIR.line(A, NP, Qx, Qy); - lv2 = PAIR.line(B, NR, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - } - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - r.conj(); - } - - // R-ate fixup required for BN curves - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - A.neg(); - B.neg(); - } - K.copy(P); - K.frob(f); - - lv = PAIR.line(A, K, Qx, Qy); - K.frob(f); - K.neg(); - lv2 = PAIR.line(A, K, Qx, Qy); - lv.smul(lv2); - r.ssmul(lv); - - K.copy(R); - K.frob(f); - - lv = PAIR.line(B, K, Sx, Sy); - K.frob(f); - K.neg(); - lv2 = PAIR.line(B, K, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - } - - return r; - }, - - /* final exponentiation - keep separate for multi-pairings */ - fexp: function (m) { - var fa, fb, f, x, r, lv; - - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - - r = new ctx.FP12(m); - - /* Easy part of final exp */ - lv = new ctx.FP12(r); - lv.inverse(); - r.conj(); - r.mul(lv); - lv.copy(r); - r.frob(f); - r.frob(f); - r.mul(lv); - - /* Hard part of final exp */ - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - var x0, x1, x2, x3, x4, x5; - - lv.copy(r); - lv.frob(f); - x0 = new ctx.FP12(lv); //x0.copy(lv); - x0.frob(f); - lv.mul(r); - x0.mul(lv); - x0.frob(f); - x1 = new ctx.FP12(r); //x1.copy(r); - x1.conj(); - - x4 = r.pow(x); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.POSITIVEX) { - x4.conj(); - } - - x3 = new ctx.FP12(x4); //x3.copy(x4); - x3.frob(f); - x2 = x4.pow(x); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.POSITIVEX) { - x2.conj(); - } - x5 = new ctx.FP12(x2); /*x5.copy(x2);*/ - x5.conj(); - lv = x2.pow(x); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.POSITIVEX) { - lv.conj(); - } - x2.frob(f); - r.copy(x2); - r.conj(); - - x4.mul(r); - x2.frob(f); - - r.copy(lv); - r.frob(f); - lv.mul(r); - - lv.usqr(); - lv.mul(x4); - lv.mul(x5); - r.copy(x3); - r.mul(x5); - r.mul(lv); - lv.mul(x2); - r.usqr(); - r.mul(lv); - r.usqr(); - lv.copy(r); - lv.mul(x1); - r.mul(x0); - lv.usqr(); - r.mul(lv); - r.reduce(); - } else { - // See https://eprint.iacr.org/2020/875.pdf - var t0, y0, y1; - y1 = new ctx.FP12(r); - y1.usqr(); - y1.mul(r); // y1=r^3 - - y0 = new ctx.FP12(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0 = new ctx.FP12(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - y0.copy(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0.copy(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - // ^(x+p) - y0.copy(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0.copy(r); - t0.frob(f); - r.copy(y0); - r.mul(t0); - - // ^(x^2+p^2-1) - y0.copy(r.pow(x)); - y0.copy(y0.pow(x)); - t0.copy(r); - t0.frob(f); - t0.frob(f); - y0.mul(t0); - t0.copy(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - r.mul(y1); - r.reduce(); - - /* - var y0, y1, y2, y3; - // Ghamman & Fouotsa Method - y0 = new ctx.FP12(r); - y0.usqr(); - y1 = y0.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - y1.conj(); - } - x.fshr(1); - y2 = y1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - y2.conj(); - } - x.fshl(1); - y3 = new ctx.FP12(r); - y3.conj(); - y1.mul(y3); - - y1.conj(); - y1.mul(y2); - - y2 = y1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - y2.conj(); - } - - y3 = y2.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - y3.conj(); - } - y1.conj(); - y3.mul(y1); - - y1.conj(); - y1.frob(f); - y1.frob(f); - y1.frob(f); - y2.frob(f); - y2.frob(f); - y1.mul(y2); - - y2 = y3.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - y2.conj(); - } - y2.mul(y0); - y2.mul(r); - - y1.mul(y2); - y2.copy(y3); - y2.frob(f); - y1.mul(y2); - r.copy(y1); - r.reduce(); -*/ - } - - return r; - }, - }; - - /* prepare ate parameter, n=6u+2 (BN) or n=u (BLS), n3=3*n */ - PAIR.lbits = function (n3, n) { - n.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - n.pmul(6); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.POSITIVEX) { - n.inc(2); - } else { - n.dec(2); - } - } - - n.norm(); - n3.copy(n); - n3.pmul(3); - n3.norm(); - return n3.nbits(); - }; - - /* GLV method */ - PAIR.glv = function (e) { - var u = [], - t, - q, - v, - d, - x, - x2, - i, - j; - - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - t = new ctx.BIG(0); - q = new ctx.BIG(0); - v = []; - - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - for (i = 0; i < 2; i++) { - t.rcopy(ctx.ROM_CURVE.CURVE_W[i]); - d = ctx.BIG.mul(t, e); - v[i] = new ctx.BIG(d.div(q)); - u[i] = new ctx.BIG(0); - } - - u[0].copy(e); - - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { - t.rcopy(ctx.ROM_CURVE.CURVE_SB[j][i]); - t.copy(ctx.BIG.modmul(v[j], t, q)); - u[i].add(q); - u[i].sub(t); - u[i].mod(q); - } - } - } else { - // -(x^2).P = (Beta.x,y) - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - x2 = ctx.BIG.smul(x, x); - u[0] = new ctx.BIG(e); - u[0].mod(x2); - u[1] = new ctx.BIG(e); - u[1].div(x2); - u[1].rsub(q); - } - - return u; - }; - - /* Galbraith & Scott Method */ - PAIR.gs = function (e) { - var u = [], - i, - j, - t, - q, - v, - d, - x, - w; - - if (ctx.ECP.CURVE_PAIRING_TYPE == ctx.ECP.BN) { - t = new ctx.BIG(0); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - v = []; - - for (i = 0; i < 4; i++) { - t.rcopy(ctx.ROM_CURVE.CURVE_WB[i]); - d = ctx.BIG.mul(t, e); - v[i] = new ctx.BIG(d.div(q)); - u[i] = new ctx.BIG(0); - } - - u[0].copy(e); - - for (i = 0; i < 4; i++) { - for (j = 0; j < 4; j++) { - t.rcopy(ctx.ROM_CURVE.CURVE_BB[j][i]); - t.copy(ctx.BIG.modmul(v[j], t, q)); - u[i].add(q); - u[i].sub(t); - u[i].mod(q); - } - } - } else { - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - w = new ctx.BIG(e); - - for (i = 0; i < 3; i++) { - u[i] = new ctx.BIG(w); - u[i].mod(x); - w.div(x); - } - - u[3] = new ctx.BIG(w); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - u[1].copy(ctx.BIG.modneg(u[1], q)); - u[3].copy(ctx.BIG.modneg(u[3], q)); - } - } - - return u; - }; - - /* Multiply P by e in group G1 */ - PAIR.G1mul = function (P, e) { - var R, Q, q, bcru, cru, t, u, np, nn; - - if (ctx.ROM_CURVE.USE_GLV) { - R = new ctx.ECP(); - R.copy(P); - Q = new ctx.ECP(); - Q.copy(P); - Q.affine(); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - bcru = new ctx.BIG(0); - bcru.rcopy(ctx.ROM_FIELD.CRu); - cru = new ctx.FP(bcru); - t = new ctx.BIG(0); - u = PAIR.glv(e); - - Q.getx().mul(cru); - - np = u[0].nbits(); - t.copy(ctx.BIG.modneg(u[0], q)); - nn = t.nbits(); - if (nn < np) { - u[0].copy(t); - R.neg(); - } - - np = u[1].nbits(); - t.copy(ctx.BIG.modneg(u[1], q)); - nn = t.nbits(); - if (nn < np) { - u[1].copy(t); - Q.neg(); - } - u[0].norm(); - u[1].norm(); - R = R.mul2(u[0], Q, u[1]); - } else { - R = P.mul(e); - } - - return R; - }; - - /* Multiply P by e in group G2 */ - PAIR.G2mul = function (P, e) { - var R, Q, fa, fb, f, q, u, t, i, np, nn; - - if (ctx.ROM_CURVE.USE_GS_G2) { - Q = []; - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - f.inverse(null); - f.norm(); - } - - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - u = PAIR.gs(e); - t = new ctx.BIG(0); - Q[0] = new ctx.ECP2(); - Q[0].copy(P); - - for (i = 1; i < 4; i++) { - Q[i] = new ctx.ECP2(); - Q[i].copy(Q[i - 1]); - Q[i].frob(f); - } - - for (i = 0; i < 4; i++) { - np = u[i].nbits(); - t.copy(ctx.BIG.modneg(u[i], q)); - nn = t.nbits(); - - if (nn < np) { - u[i].copy(t); - Q[i].neg(); - } - u[i].norm(); - } - - R = ctx.ECP2.mul4(Q, u); - } else { - R = P.mul(e); - } - return R; - }; - - /* Note that this method requires a lot of RAM! Better to use compressed XTR method, see ctx.FP4.js */ - PAIR.GTpow = function (d, e) { - var r, g, fa, fb, f, q, t, u, i, np, nn; - - if (ctx.ROM_CURVE.USE_GS_GT) { - g = []; - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - t = new ctx.BIG(0); - u = PAIR.gs(e); - - g[0] = new ctx.FP12(d); - - for (i = 1; i < 4; i++) { - g[i] = new ctx.FP12(0); - g[i].copy(g[i - 1]); - g[i].frob(f); - } - - for (i = 0; i < 4; i++) { - np = u[i].nbits(); - t.copy(ctx.BIG.modneg(u[i], q)); - nn = t.nbits(); - - if (nn < np) { - u[i].copy(t); - g[i].conj(); - } - u[i].norm(); - } - - r = ctx.FP12.pow4(g, u); - } else { - r = d.pow(e); - } - - return r; - }; - - /* test G1 group membership */ - PAIR.G1member = function (P) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (P.is_infinity()) return false; - var W = PAIR.G1mul(P, q); - if (!W.is_infinity()) return false; - return true; - }; - /* test G2 group membership */ - PAIR.G2member = function (P) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (P.is_infinity()) return false; - var W = PAIR.G2mul(P, q); - if (!W.is_infinity()) return false; - return true; - }; - /* test group membership - no longer needed */ - /* Check that m!=1, conj(m)*m==1, and m.m^{p^4}=m^{p^2} */ - - PAIR.GTmember = function (m) { - if (m.isunity()) return false; - var r = new ctx.FP12(m); - r.conj(); - r.mul(m); - if (!r.isunity()) return false; - - var fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - var fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - var f = new ctx.FP2(fa, fb); - - r.copy(m); - r.frob(f); - r.frob(f); - var w = new ctx.FP12(r); - w.frob(f); - w.frob(f); - w.mul(m); - if (!w.equals(r)) return false; - - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - w.copy(m); - r.copy(PAIR.GTpow(w, q)); - if (!r.isunity()) return false; - return true; - }; - - return PAIR; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.PAIR = PAIR; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/pair4.js b/packages/bls-verify/src/vendor/amcl-js/src/pair4.js deleted file mode 100644 index 3eac108d0..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/pair4.js +++ /dev/null @@ -1,819 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var PAIR4 = function (ctx) { - 'use strict'; - var PAIR4 = { - dbl: function (A, AA, BB, CC) { - CC.copy(A.getx()); - var YY = new ctx.FP4(A.gety()); - BB.copy(A.getz()); - AA.copy(YY); - - AA.mul(BB); //YZ - CC.sqr(); //X^2 - YY.sqr(); //Y^2 - BB.sqr(); //Z^2 - - AA.add(AA); - AA.neg(); - AA.norm(); //-2AA - AA.times_i(); - - var sb = 3 * ctx.ROM_CURVE.CURVE_B_I; - BB.imul(sb); - CC.imul(3); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - YY.times_i(); - CC.times_i(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - BB.times_i(); - } - BB.sub(YY); - BB.norm(); - - A.dbl(); - }, - - add: function (A, B, AA, BB, CC) { - AA.copy(A.getx()); // X1 - CC.copy(A.gety()); // Y1 - var T1 = new ctx.FP4(A.getz()); // Z1 - BB.copy(A.getz()); // Z1 - - T1.mul(B.gety()); // T1=Z1.Y2 - BB.mul(B.getx()); // T2=Z1.X2 - - AA.sub(BB); - AA.norm(); // X1=X1-Z1.X2 - CC.sub(T1); - CC.norm(); // Y1=Y1-Z1.Y2 - - T1.copy(AA); // T1=X1-Z1.X2 - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - AA.times_i(); - AA.norm(); - } - - T1.mul(B.gety()); // T1=(X1-Z1.X2).Y2 - - BB.copy(CC); // T2=Y1-Z1.Y2 - BB.mul(B.getx()); // T2=(Y1-Z1.Y2).X2 - BB.sub(T1); - BB.norm(); // T2=(Y1-Z1.Y2).X2 - (X1-Z1.X2).Y2 - CC.neg(); - CC.norm(); // Y1=-(Y1-Z1.Y2).Xs - - A.add(B); - }, - - /* Line function */ - line: function (A, B, Qx, Qy) { - var r = new ctx.FP24(1); - - var a, b, c; - var AA = new ctx.FP4(0); - var BB = new ctx.FP4(0); - var CC = new ctx.FP4(0); - if (A == B) PAIR4.dbl(A, AA, BB, CC); - else PAIR4.add(A, B, AA, BB, CC); - - CC.qmul(Qx); - AA.qmul(Qy); - - a = new ctx.FP8(AA, BB); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b = new ctx.FP8(CC); // L(0,1) | L(0,0) | L(1,0) - c = new ctx.FP8(0); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b = new ctx.FP8(0); - c = new ctx.FP8(CC); - c.times_i(); - } - - r.set(a, b, c); - r.settype(ctx.FP.SPARSER); - - return r; - }, - - /* prepare for multi-pairing */ - initmp: function () { - var r = []; - for (var i = 0; i < ctx.ECP.ATE_BITS; i++) r[i] = new ctx.FP24(1); - return r; - }, - - /* basic Miller loop */ - miller: function (r) { - var res = new ctx.FP24(1); - for (var i = ctx.ECP.ATE_BITS - 1; i >= 1; i--) { - res.sqr(); - res.ssmul(r[i]); - r[i].zero(); - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) res.conj(); - res.ssmul(r[0]); - r[0].zero(); - - return res; - }, - - // Store precomputed line details in an FP8 - pack: function (AA, BB, CC) { - var i = new ctx.FP4(CC); - i.inverse(null); - var a = new ctx.FP4(AA); - a.mul(i); - var b = new ctx.FP4(BB); - b.mul(i); - return new ctx.FP8(a, b); - }, - - unpack: function (T, Qx, Qy) { - var a, b, c; - a = new ctx.FP8(T); - a.geta().qmul(Qy); - var t = new ctx.FP4(Qx); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b = new ctx.FP8(t); - c = new ctx.FP8(0); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b = new ctx.FP8(0); - c = new ctx.FP8(t); - c.times_i(); - } - var v = new ctx.FP24(a, b, c); - v.settype(ctx.FP.SPARSEST); - return v; - }, - - precomp: function (QV) { - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var nb = PAIR4.lbits(n3, n); - var P = new ctx.ECP4(); - P.copy(QV); - var AA = new ctx.FP4(0); - var BB = new ctx.FP4(0); - var CC = new ctx.FP4(0); - var j, bt; - - var A = new ctx.ECP4(); - A.copy(P); - var MP = new ctx.ECP4(); - MP.copy(P); - MP.neg(); - j = 0; - - var T = []; - for (var i = nb - 2; i >= 1; i--) { - PAIR4.dbl(A, AA, BB, CC); - T[j++] = PAIR4.pack(AA, BB, CC); - - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - PAIR4.add(A, P, AA, BB, CC); - T[j++] = PAIR4.pack(AA, BB, CC); - } - if (bt == -1) { - PAIR4.add(A, MP, AA, BB, CC); - T[j++] = PAIR4.pack(AA, BB, CC); - } - } - return T; - }, - - /* Accumulate another set of line functions for n-pairing, assuming precomputation on G2 */ - another_pc(r, T, QV) { - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var nb = PAIR4.lbits(n3, n); - var lv, lv2; - var j, bt; - - if (QV.is_infinity()) return; - - var Q = new ctx.ECP(); - Q.copy(QV); - Q.affine(); - var Qx = new ctx.FP(Q.getx()); - var Qy = new ctx.FP(Q.gety()); - - j = 0; - for (var i = nb - 2; i >= 1; i--) { - lv = PAIR4.unpack(T[j++], Qx, Qy); - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - lv2 = PAIR4.unpack(T[j++], Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR4.unpack(T[j++], Qx, Qy); - lv.smul(lv2); - } - r[i].ssmul(lv); - } - }, - - /* Accumulate another set of line functions for n-pairing */ - another: function (r, P1, Q1) { - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var lv, lv2; - var bt; - - if (Q1.is_infinity()) return; - // P is needed in affine form for line function, Q for (Qx,Qy) extraction - var P = new ctx.ECP4(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - - P.affine(); - Q.affine(); - - var Qx = new ctx.FP(Q.getx()); - var Qy = new ctx.FP(Q.gety()); - - var A = new ctx.ECP4(); - A.copy(P); - - var MP = new ctx.ECP4(); - MP.copy(P); - MP.neg(); - - var nb = PAIR4.lbits(n3, n); - - for (var i = nb - 2; i >= 1; i--) { - lv = PAIR4.line(A, A, Qx, Qy); - - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - lv2 = PAIR4.line(A, P, Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR4.line(A, MP, Qx, Qy); - lv.smul(lv2); - } - r[i].ssmul(lv); - } - }, - - /* Optimal R-ate pairing */ - ate: function (P1, Q1) { - var n, n3, lv, lv2, Qx, Qy, A, NP, r, nb, bt, i; - - if (Q1.is_infinity()) return new ctx.FP24(1); - n = new ctx.BIG(0); - n3 = new ctx.BIG(0); - - var P = new ctx.ECP4(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - - Qx = new ctx.FP(Q.getx()); - Qy = new ctx.FP(Q.gety()); - - A = new ctx.ECP4(); - r = new ctx.FP24(1); - - A.copy(P); - NP = new ctx.ECP4(); - NP.copy(P); - NP.neg(); - - nb = PAIR4.lbits(n3, n); - - for (i = nb - 2; i >= 1; i--) { - r.sqr(); - lv = PAIR4.line(A, A, Qx, Qy); - bt = n3.bit(i) - n.bit(i); - - if (bt == 1) { - lv2 = PAIR4.line(A, P, Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR4.line(A, NP, Qx, Qy); - lv.smul(lv2); - } - r.ssmul(lv); - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - r.conj(); - } - - return r; - }, - - /* Optimal R-ate double pairing e(P,Q).e(R,S) */ - ate2: function (P1, Q1, R1, S1) { - var n, n3, lv, lv2, Qx, Qy, Sx, Sy, A, B, NP, NR, r, nb, bt, i; - - if (Q1.is_infinity()) return PAIR4.ate(R1, S1); - if (S1.is_infinity()) return PAIR4.ate(P1, Q1); - - n = new ctx.BIG(0); - n3 = new ctx.BIG(0); - - var P = new ctx.ECP4(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - var R = new ctx.ECP4(); - R.copy(R1); - R.affine(); - var S = new ctx.ECP(); - S.copy(S1); - S.affine(); - - Qx = new ctx.FP(Q.getx()); - Qy = new ctx.FP(Q.gety()); - - Sx = new ctx.FP(S.getx()); - Sy = new ctx.FP(S.gety()); - - A = new ctx.ECP4(); - B = new ctx.ECP4(); - r = new ctx.FP24(1); - - A.copy(P); - B.copy(R); - NP = new ctx.ECP4(); - NP.copy(P); - NP.neg(); - NR = new ctx.ECP4(); - NR.copy(R); - NR.neg(); - - nb = PAIR4.lbits(n3, n); - - for (i = nb - 2; i >= 1; i--) { - r.sqr(); - lv = PAIR4.line(A, A, Qx, Qy); - lv2 = PAIR4.line(B, B, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - - bt = n3.bit(i) - n.bit(i); - - if (bt == 1) { - lv = PAIR4.line(A, P, Qx, Qy); - lv2 = PAIR4.line(B, R, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - } - if (bt == -1) { - lv = PAIR4.line(A, NP, Qx, Qy); - lv2 = PAIR4.line(B, NR, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - } - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - r.conj(); - } - - return r; - }, - - /* final exponentiation - keep separate for multi-pairings and to avoid thrashing stack */ - fexp: function (m) { - var fa, fb, f, x, r, lv; - // t0,t1,t2,t3,t4,t5,t6,t7; - - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - - r = new ctx.FP24(m); //r.copy(m); - - /* Easy part of final exp */ - lv = new ctx.FP24(r); //lv.copy(r); - lv.inverse(); - r.conj(); - r.mul(lv); - lv.copy(r); - r.frob(f, 4); - r.mul(lv); - - /* Hard part of final exp */ - // See https://eprint.iacr.org/2020/875.pdf - var t0, y0, y1; - y1 = new ctx.FP24(r); - y1.usqr(); - y1.mul(r); // y1=r^3 - - y0 = new ctx.FP24(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0 = new ctx.FP24(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - y0.copy(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0.copy(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - // ^(x+p) - y0.copy(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0.copy(r); - t0.frob(f, 1); - r.copy(y0); - r.mul(t0); - - // ^(x^2+p^2) - y0.copy(r.pow(x)); - y0.copy(y0.pow(x)); - t0.copy(r); - t0.frob(f, 2); - r.copy(y0); - r.mul(t0); - - // ^(x^4+p^4-1) - y0.copy(r.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - t0.copy(r); - t0.frob(f, 4); - y0.mul(t0); - t0.copy(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - r.mul(y1); - r.reduce(); - - /* - // Ghamman & Fouotsa Method - t7=new ctx.FP24(r); t7.usqr(); - t1=t7.pow(x); - - x.fshr(1); - t2=t1.pow(x); - x.fshl(1); - - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - t3=new ctx.FP24(t1); t3.conj(); - t2.mul(t3); - t2.mul(r); - - t3=t2.pow(x); - t4=t3.pow(x); - t5=t4.pow(x); - - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t3.conj(); t5.conj(); - } - - t3.frob(f,6); t4.frob(f,5); - t3.mul(t4); - - t6=t5.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t6.conj(); - } - - t5.frob(f,4); - t3.mul(t5); - - t0=new ctx.FP24(t2); t0.conj(); - t6.mul(t0); - - t5.copy(t6); - t5.frob(f,3); - - t3.mul(t5); - t5=t6.pow(x); - t6=t5.pow(x); - - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t5.conj(); - } - - t0.copy(t5); - t0.frob(f,2); - t3.mul(t0); - t0.copy(t6); - t0.frob(f,1); - - t3.mul(t0); - t5=t6.pow(x); - - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t5.conj(); - } - t2.frob(f,7); - - t5.mul(t7); - t3.mul(t2); - t3.mul(t5); - - r.mul(t3); - - r.reduce(); -*/ - return r; - }, - }; - - /* prepare ate parameter, n=6u+2 (BN) or n=u (BLS), n3=3*n */ - PAIR4.lbits = function (n3, n) { - n.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - n3.copy(n); - n3.pmul(3); - n3.norm(); - return n3.nbits(); - }; - - /* GLV method */ - PAIR4.glv = function (e) { - var u = [], - q, - x, - x2; - - // -(x^2).P = (Beta.x,y) - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - x2 = ctx.BIG.smul(x, x); - x = ctx.BIG.smul(x2, x2); - u[0] = new ctx.BIG(e); - u[0].mod(x); - u[1] = new ctx.BIG(e); - u[1].div(x); - u[1].rsub(q); - - return u; - }; - - /* Galbraith & Scott Method */ - PAIR4.gs = function (e) { - var u = [], - i, - q, - x, - w; - - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - w = new ctx.BIG(e); - - for (i = 0; i < 7; i++) { - u[i] = new ctx.BIG(w); - u[i].mod(x); - w.div(x); - } - - u[7] = new ctx.BIG(w); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - u[1].copy(ctx.BIG.modneg(u[1], q)); - u[3].copy(ctx.BIG.modneg(u[3], q)); - u[5].copy(ctx.BIG.modneg(u[5], q)); - u[7].copy(ctx.BIG.modneg(u[7], q)); - } - - return u; - }; - - /* Multiply P by e in group G1 */ - PAIR4.G1mul = function (P, e) { - var R, Q, q, bcru, cru, t, u, np, nn; - - if (ctx.ROM_CURVE.USE_GLV) { - R = new ctx.ECP(); - R.copy(P); - Q = new ctx.ECP(); - Q.copy(P); - Q.affine(); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - bcru = new ctx.BIG(0); - bcru.rcopy(ctx.ROM_FIELD.CRu); - cru = new ctx.FP(bcru); - t = new ctx.BIG(0); - u = PAIR4.glv(e); - - Q.getx().mul(cru); - - np = u[0].nbits(); - t.copy(ctx.BIG.modneg(u[0], q)); - nn = t.nbits(); - if (nn < np) { - u[0].copy(t); - R.neg(); - } - - np = u[1].nbits(); - t.copy(ctx.BIG.modneg(u[1], q)); - nn = t.nbits(); - if (nn < np) { - u[1].copy(t); - Q.neg(); - } - u[0].norm(); - u[1].norm(); - R = R.mul2(u[0], Q, u[1]); - } else { - R = P.mul(e); - } - - return R; - }; - - /* Multiply P by e in group G2 */ - PAIR4.G2mul = function (P, e) { - var R, Q, F, q, u, t, i, np, nn; - - if (ctx.ROM_CURVE.USE_GS_G2) { - Q = []; - F = ctx.ECP4.frob_constants(); - - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - u = PAIR4.gs(e); - t = new ctx.BIG(0); - - Q[0] = new ctx.ECP4(); - Q[0].copy(P); - - for (i = 1; i < 8; i++) { - Q[i] = new ctx.ECP4(); - Q[i].copy(Q[i - 1]); - Q[i].frob(F, 1); - } - - for (i = 0; i < 8; i++) { - np = u[i].nbits(); - t.copy(ctx.BIG.modneg(u[i], q)); - nn = t.nbits(); - - if (nn < np) { - u[i].copy(t); - Q[i].neg(); - } - u[i].norm(); - } - - R = ctx.ECP4.mul8(Q, u); - } else { - R = P.mul(e); - } - return R; - }; - - /* Note that this method requires a lot of RAM */ - PAIR4.GTpow = function (d, e) { - var r, g, fa, fb, f, q, t, u, i, np, nn; - - if (ctx.ROM_CURVE.USE_GS_GT) { - g = []; - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - t = new ctx.BIG(0); - u = PAIR4.gs(e); - - g[0] = new ctx.FP24(d); - - for (i = 1; i < 8; i++) { - g[i] = new ctx.FP24(0); - g[i].copy(g[i - 1]); - g[i].frob(f, 1); - } - - for (i = 0; i < 8; i++) { - np = u[i].nbits(); - t.copy(ctx.BIG.modneg(u[i], q)); - nn = t.nbits(); - - if (nn < np) { - u[i].copy(t); - g[i].conj(); - } - u[i].norm(); - } - - r = ctx.FP24.pow8(g, u); - } else { - r = d.pow(e); - } - - return r; - }; - - /* test G1 group membership */ - PAIR4.G1member = function (P) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (P.is_infinity()) return false; - var W = PAIR4.G1mul(P, q); - if (!W.is_infinity()) return false; - return true; - }; - /* test G2 group membership */ - PAIR4.G2member = function (P) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (P.is_infinity()) return false; - var W = PAIR4.G2mul(P, q); - if (!W.is_infinity()) return false; - return true; - }; - /* test group membership - no longer needed */ - /* Check that m!=1, conj(m)*m==1, and m.m^{p^8}=m^{p^4} */ - - PAIR4.GTmember = function (m) { - if (m.isunity()) return false; - var r = new ctx.FP24(m); - r.conj(); - r.mul(m); - if (!r.isunity()) return false; - - var fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - var fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - var f = new ctx.FP2(fa, fb); - - r.copy(m); - r.frob(f, 4); - var w = new ctx.FP24(r); - w.frob(f, 4); - w.mul(m); - if (!w.equals(r)) return false; - - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - w.copy(m); - r.copy(PAIR4.GTpow(w, q)); - if (!r.isunity()) return false; - return true; - }; - - return PAIR4; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.PAIR4 = PAIR4; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/pair8.js b/packages/bls-verify/src/vendor/amcl-js/src/pair8.js deleted file mode 100644 index d23f941e3..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/pair8.js +++ /dev/null @@ -1,918 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var PAIR8 = function (ctx) { - 'use strict'; - - var PAIR8 = { - dbl: function (A, AA, BB, CC) { - CC.copy(A.getx()); - var YY = new ctx.FP8(A.gety()); - BB.copy(A.getz()); - AA.copy(YY); - - AA.mul(BB); //YZ - CC.sqr(); //X^2 - YY.sqr(); //Y^2 - BB.sqr(); //Z^2 - - AA.add(AA); - AA.neg(); - AA.norm(); //-2AA - AA.times_i(); - - var sb = 3 * ctx.ROM_CURVE.CURVE_B_I; - BB.imul(sb); - CC.imul(3); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - YY.times_i(); - CC.times_i(); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - BB.times_i(); - } - BB.sub(YY); - BB.norm(); - - A.dbl(); - }, - - add: function (A, B, AA, BB, CC) { - AA.copy(A.getx()); // X1 - CC.copy(A.gety()); // Y1 - var T1 = new ctx.FP8(A.getz()); // Z1 - BB.copy(A.getz()); // Z1 - - T1.mul(B.gety()); // T1=Z1.Y2 - BB.mul(B.getx()); // T2=Z1.X2 - - AA.sub(BB); - AA.norm(); // X1=X1-Z1.X2 - CC.sub(T1); - CC.norm(); // Y1=Y1-Z1.Y2 - - T1.copy(AA); // T1=X1-Z1.X2 - - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - AA.times_i(); - AA.norm(); - } - - T1.mul(B.gety()); // T1=(X1-Z1.X2).Y2 - - BB.copy(CC); // T2=Y1-Z1.Y2 - BB.mul(B.getx()); // T2=(Y1-Z1.Y2).X2 - BB.sub(T1); - BB.norm(); // T2=(Y1-Z1.Y2).X2 - (X1-Z1.X2).Y2 - CC.neg(); - CC.norm(); // Y1=-(Y1-Z1.Y2).Xs - - A.add(B); - }, - - /* Line function */ - line: function (A, B, Qx, Qy) { - var r = new ctx.FP48(1); - - var a, b, c; - var AA = new ctx.FP8(0); - var BB = new ctx.FP8(0); - var CC = new ctx.FP8(0); - if (A == B) PAIR8.dbl(A, AA, BB, CC); - else PAIR8.add(A, B, AA, BB, CC); - - CC.tmul(Qx); - AA.tmul(Qy); - - a = new ctx.FP16(AA, BB); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b = new ctx.FP16(CC); // L(0,1) | L(0,0) | L(1,0) - c = new ctx.FP16(0); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b = new ctx.FP16(0); - c = new ctx.FP16(CC); - c.times_i(); - } - - r.set(a, b, c); - r.settype(ctx.FP.SPARSER); - - return r; - }, - - /* prepare for multi-pairing */ - initmp: function () { - var r = []; - for (var i = 0; i < ctx.ECP.ATE_BITS; i++) r[i] = new ctx.FP48(1); - return r; - }, - - /* basic Miller loop */ - miller: function (r) { - var res = new ctx.FP48(1); - for (var i = ctx.ECP.ATE_BITS - 1; i >= 1; i--) { - res.sqr(); - res.ssmul(r[i]); - r[i].zero(); - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) res.conj(); - res.ssmul(r[0]); - r[0].zero(); - - return res; - }, - - // Store precomputed line details in an FP8 - pack: function (AA, BB, CC) { - var i = new ctx.FP8(CC); - i.inverse(null); - var a = new ctx.FP8(AA); - a.mul(i); - var b = new ctx.FP8(BB); - b.mul(i); - return new ctx.FP16(a, b); - }, - - unpack: function (T, Qx, Qy) { - var a, b, c; - a = new ctx.FP16(T); - a.geta().tmul(Qy); - var t = new ctx.FP8(Qx); - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.D_TYPE) { - b = new ctx.FP16(t); - c = new ctx.FP16(0); - } - if (ctx.ECP.SEXTIC_TWIST == ctx.ECP.M_TYPE) { - b = new ctx.FP16(0); - c = new ctx.FP16(t); - c.times_i(); - } - var v = new ctx.FP48(a, b, c); - v.settype(ctx.FP.SPARSEST); - return v; - }, - - precomp: function (QV) { - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var nb = PAIR8.lbits(n3, n); - var P = new ctx.ECP8(); - P.copy(QV); - var AA = new ctx.FP8(0); - var BB = new ctx.FP8(0); - var CC = new ctx.FP8(0); - var j, bt; - - var A = new ctx.ECP8(); - A.copy(P); - var MP = new ctx.ECP8(); - MP.copy(P); - MP.neg(); - j = 0; - - var T = []; - for (var i = nb - 2; i >= 1; i--) { - PAIR8.dbl(A, AA, BB, CC); - T[j++] = PAIR8.pack(AA, BB, CC); - - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - PAIR8.add(A, P, AA, BB, CC); - T[j++] = PAIR8.pack(AA, BB, CC); - } - if (bt == -1) { - PAIR8.add(A, MP, AA, BB, CC); - T[j++] = PAIR8.pack(AA, BB, CC); - } - } - return T; - }, - - /* Accumulate another set of line functions for n-pairing, assuming precomputation on G2 */ - another_pc(r, T, QV) { - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var nb = PAIR8.lbits(n3, n); - var lv, lv2; - var j, bt; - - if (QV.is_infinity()) return; - - var Q = new ctx.ECP(); - Q.copy(QV); - Q.affine(); - var Qx = new ctx.FP(Q.getx()); - var Qy = new ctx.FP(Q.gety()); - - j = 0; - for (var i = nb - 2; i >= 1; i--) { - lv = PAIR8.unpack(T[j++], Qx, Qy); - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - lv2 = PAIR8.unpack(T[j++], Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR8.unpack(T[j++], Qx, Qy); - lv.smul(lv2); - } - r[i].ssmul(lv); - } - }, - - /* Accumulate another set of line functions for n-pairing */ - another: function (r, P1, Q1) { - var n = new ctx.BIG(0); - var n3 = new ctx.BIG(0); - var lv, lv2; - var bt; - - if (Q1.is_infinity()) return; - // P is needed in affine form for line function, Q for (Qx,Qy) extraction - var P = new ctx.ECP8(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - - P.affine(); - Q.affine(); - - var Qx = new ctx.FP(Q.getx()); - var Qy = new ctx.FP(Q.gety()); - - var A = new ctx.ECP8(); - A.copy(P); - - var MP = new ctx.ECP8(); - MP.copy(P); - MP.neg(); - - var nb = PAIR8.lbits(n3, n); - - for (var i = nb - 2; i >= 1; i--) { - lv = PAIR8.line(A, A, Qx, Qy); - - bt = n3.bit(i) - n.bit(i); - if (bt == 1) { - lv2 = PAIR8.line(A, P, Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR8.line(A, MP, Qx, Qy); - lv.smul(lv2); - } - r[i].ssmul(lv); - } - }, - - /* Optimal R-ate pairing */ - ate: function (P1, Q1) { - var n, n3, lv, lv2, Qx, Qy, A, NP, r, nb, bt, i; - - if (Q1.is_infinity()) return new ctx.FP48(1); - n = new ctx.BIG(0); - n3 = new ctx.BIG(0); - - var P = new ctx.ECP8(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - - Qx = new ctx.FP(Q.getx()); - Qy = new ctx.FP(Q.gety()); - - A = new ctx.ECP8(); - r = new ctx.FP48(1); - - A.copy(P); - NP = new ctx.ECP8(); - NP.copy(P); - NP.neg(); - - nb = PAIR8.lbits(n3, n); - - for (i = nb - 2; i >= 1; i--) { - r.sqr(); - lv = PAIR8.line(A, A, Qx, Qy); - bt = n3.bit(i) - n.bit(i); - - if (bt == 1) { - lv2 = PAIR8.line(A, P, Qx, Qy); - lv.smul(lv2); - } - if (bt == -1) { - lv2 = PAIR8.line(A, NP, Qx, Qy); - lv.smul(lv2); - } - r.ssmul(lv); - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - r.conj(); - } - - return r; - }, - - /* Optimal R-ate double pairing e(P,Q).e(R,S) */ - ate2: function (P1, Q1, R1, S1) { - var n, n3, lv, lv2, Qx, Qy, Sx, Sy, A, B, NP, NR, r, nb, bt, i; - - if (Q1.is_infinity()) return PAIR8.ate(R1, S1); - if (S1.is_infinity()) return PAIR8.ate(P1, Q1); - - n = new ctx.BIG(0); - n3 = new ctx.BIG(0); - - var P = new ctx.ECP8(); - P.copy(P1); - P.affine(); - var Q = new ctx.ECP(); - Q.copy(Q1); - Q.affine(); - var R = new ctx.ECP8(); - R.copy(R1); - R.affine(); - var S = new ctx.ECP(); - S.copy(S1); - S.affine(); - - Qx = new ctx.FP(Q.getx()); - Qy = new ctx.FP(Q.gety()); - - Sx = new ctx.FP(S.getx()); - Sy = new ctx.FP(S.gety()); - - A = new ctx.ECP8(); - B = new ctx.ECP8(); - r = new ctx.FP48(1); - - A.copy(P); - B.copy(R); - NP = new ctx.ECP8(); - NP.copy(P); - NP.neg(); - NR = new ctx.ECP8(); - NR.copy(R); - NR.neg(); - - nb = PAIR8.lbits(n3, n); - - for (i = nb - 2; i >= 1; i--) { - r.sqr(); - lv = PAIR8.line(A, A, Qx, Qy); - lv2 = PAIR8.line(B, B, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - - bt = n3.bit(i) - n.bit(i); - - if (bt == 1) { - lv = PAIR8.line(A, P, Qx, Qy); - lv2 = PAIR8.line(B, R, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - } - if (bt == -1) { - lv = PAIR8.line(A, NP, Qx, Qy); - lv2 = PAIR8.line(B, NR, Sx, Sy); - lv.smul(lv2); - r.ssmul(lv); - } - } - - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - r.conj(); - } - - return r; - }, - - /* final exponentiation - keep separate for multi-pairings and to avoid thrashing stack */ - fexp: function (m) { - var fa, fb, f, x, r, lv; - // t1,t2,t3,t7; - - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - - r = new ctx.FP48(m); //r.copy(m); - - /* Easy part of final exp */ - lv = new ctx.FP48(r); //lv.copy(r); - lv.inverse(); - r.conj(); - r.mul(lv); - lv.copy(r); - r.frob(f, 8); - r.mul(lv); - - /* Hard part of final exp */ - - // See https://eprint.iacr.org/2020/875.pdf - var t0, y0, y1; - y1 = new ctx.FP48(r); - y1.usqr(); - y1.mul(r); // y1=r^3 - - y0 = new ctx.FP48(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0 = new ctx.FP48(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - y0.copy(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0.copy(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - // ^(x+p) - y0.copy(r.pow(x)); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - y0.conj(); - } - t0.copy(r); - t0.frob(f, 1); - r.copy(y0); - r.mul(t0); - - // ^(x^2+p^2) - y0.copy(r.pow(x)); - y0.copy(y0.pow(x)); - t0.copy(r); - t0.frob(f, 2); - r.copy(y0); - r.mul(t0); - - // ^(x^4+p^4) - y0.copy(r.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - t0.copy(r); - t0.frob(f, 4); - r.copy(y0); - r.mul(t0); - - // ^(x^8+p^8-1) - y0.copy(r.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - y0.copy(y0.pow(x)); - t0.copy(r); - t0.frob(f, 8); - y0.mul(t0); - t0.copy(r); - t0.conj(); - r.copy(y0); - r.mul(t0); - - r.mul(y1); - r.reduce(); - - /* - // Ghamman & Fouotsa Method - t7=new ctx.FP48(r); t7.usqr(); - - if (x.parity()==1) - { - t2=r.pow(x); - t1=new ctx.FP48(t2); t1.usqr(); - t2=t2.pow(x); - } else { - t1=t7.pow(x); - x.fshr(1); - t2=t1.pow(x); - x.fshl(1); - } - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3=new ctx.FP48(t1); t3.conj(); - t2.mul(t3); - t2.mul(r); - - r.mul(t7); - - t1=t2.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - t3.copy(t1); - t3.frob(f,14); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,13); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,12); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,11); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,10); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,9); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,8); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t2); t3.conj(); - t1.mul(t3); - t3.copy(t1); - t3.frob(f,7); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,6); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,5); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,4); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,3); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,2); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - t3.copy(t1); - t3.frob(f,1); - r.mul(t3); - t1=t1.pow(x); - if (ctx.ECP.SIGN_OF_X==ctx.ECP.NEGATIVEX) { - t1.conj(); - } - - r.mul(t1); - t2.frob(f,15); - r.mul(t2); - - r.reduce(); -*/ - return r; - }, - }; - - /* prepare ate parameter, n=6u+2 (BN) or n=u (BLS), n3=3*n */ - PAIR8.lbits = function (n3, n) { - n.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - n3.copy(n); - n3.pmul(3); - n3.norm(); - return n3.nbits(); - }; - - /* GLV method */ - PAIR8.glv = function (e) { - var u = [], - q, - x, - x2; - - // -(x^2).P = (Beta.x,y) - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - x2 = ctx.BIG.smul(x, x); - x = ctx.BIG.smul(x2, x2); - x2 = ctx.BIG.smul(x, x); - u[0] = new ctx.BIG(e); - u[0].mod(x2); - u[1] = new ctx.BIG(e); - u[1].div(x2); - u[1].rsub(q); - - return u; - }; - - /* Galbraith & Scott Method */ - PAIR8.gs = function (e) { - var u = [], - i, - q, - x, - w; - - x = new ctx.BIG(0); - x.rcopy(ctx.ROM_CURVE.CURVE_Bnx); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - w = new ctx.BIG(e); - - for (i = 0; i < 15; i++) { - u[i] = new ctx.BIG(w); - u[i].mod(x); - w.div(x); - } - - u[15] = new ctx.BIG(w); - if (ctx.ECP.SIGN_OF_X == ctx.ECP.NEGATIVEX) { - u[1].copy(ctx.BIG.modneg(u[1], q)); - u[3].copy(ctx.BIG.modneg(u[3], q)); - u[5].copy(ctx.BIG.modneg(u[5], q)); - u[7].copy(ctx.BIG.modneg(u[7], q)); - u[9].copy(ctx.BIG.modneg(u[9], q)); - u[11].copy(ctx.BIG.modneg(u[11], q)); - u[13].copy(ctx.BIG.modneg(u[13], q)); - u[15].copy(ctx.BIG.modneg(u[15], q)); - } - - return u; - }; - - /* Multiply P by e in group G1 */ - PAIR8.G1mul = function (P, e) { - var R, Q, q, bcru, cru, t, u, np, nn; - - if (ctx.ROM_CURVE.USE_GLV) { - R = new ctx.ECP(); - R.copy(P); - Q = new ctx.ECP(); - Q.copy(P); - Q.affine(); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - bcru = new ctx.BIG(0); - bcru.rcopy(ctx.ROM_FIELD.CRu); - cru = new ctx.FP(bcru); - t = new ctx.BIG(0); - u = PAIR8.glv(e); - - Q.getx().mul(cru); - - np = u[0].nbits(); - t.copy(ctx.BIG.modneg(u[0], q)); - nn = t.nbits(); - if (nn < np) { - u[0].copy(t); - R.neg(); - } - - np = u[1].nbits(); - t.copy(ctx.BIG.modneg(u[1], q)); - nn = t.nbits(); - if (nn < np) { - u[1].copy(t); - Q.neg(); - } - u[0].norm(); - u[1].norm(); - R = R.mul2(u[0], Q, u[1]); - } else { - R = P.mul(e); - } - - return R; - }; - - /* Multiply P by e in group G2 */ - PAIR8.G2mul = function (P, e) { - var R, Q, F, q, u, t, i, np, nn; - - if (ctx.ROM_CURVE.USE_GS_G2) { - Q = []; - F = ctx.ECP8.frob_constants(); - - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - u = PAIR8.gs(e); - t = new ctx.BIG(0); - - Q[0] = new ctx.ECP8(); - Q[0].copy(P); - - for (i = 1; i < 16; i++) { - Q[i] = new ctx.ECP8(); - Q[i].copy(Q[i - 1]); - Q[i].frob(F, 1); - } - - for (i = 0; i < 16; i++) { - np = u[i].nbits(); - t.copy(ctx.BIG.modneg(u[i], q)); - nn = t.nbits(); - - if (nn < np) { - u[i].copy(t); - Q[i].neg(); - } - u[i].norm(); - } - - R = ctx.ECP8.mul16(Q, u); - } else { - R = P.mul(e); - } - return R; - }; - - /* Note that this method requires a lot of RAM! */ - PAIR8.GTpow = function (d, e) { - var r, g, fa, fb, f, q, t, u, i, np, nn; - - if (ctx.ROM_CURVE.USE_GS_GT) { - g = []; - fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - f = new ctx.FP2(fa, fb); - q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - t = new ctx.BIG(0); - u = PAIR8.gs(e); - - g[0] = new ctx.FP48(d); - - for (i = 1; i < 16; i++) { - g[i] = new ctx.FP48(0); - g[i].copy(g[i - 1]); - g[i].frob(f, 1); - } - - for (i = 0; i < 16; i++) { - np = u[i].nbits(); - t.copy(ctx.BIG.modneg(u[i], q)); - nn = t.nbits(); - - if (nn < np) { - u[i].copy(t); - g[i].conj(); - } - u[i].norm(); - } - - r = ctx.FP48.pow16(g, u); - } else { - r = d.pow(e); - } - - return r; - }; - - /* test G1 group membership */ - PAIR8.G1member = function (P) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (P.is_infinity()) return false; - var W = PAIR8.G1mul(P, q); - if (!W.is_infinity()) return false; - return true; - }; - /* test G2 group membership */ - PAIR8.G2member = function (P) { - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - if (P.is_infinity()) return false; - var W = PAIR8.G2mul(P, q); - if (!W.is_infinity()) return false; - return true; - }; - /* test group membership - no longer needed */ - /* Check that m!=1, conj(m)*m==1, and m.m^{p^16}=m^{p^8} */ - - PAIR8.GTmember = function (m) { - if (m.isunity()) return false; - var r = new ctx.FP48(m); - r.conj(); - r.mul(m); - if (!r.isunity()) return false; - - var fa = new ctx.BIG(0); - fa.rcopy(ctx.ROM_FIELD.Fra); - var fb = new ctx.BIG(0); - fb.rcopy(ctx.ROM_FIELD.Frb); - var f = new ctx.FP2(fa, fb); - - r.copy(m); - r.frob(f, 8); - var w = new ctx.FP48(r); - w.frob(f, 8); - w.mul(m); - if (!w.equals(r)) return false; - - var q = new ctx.BIG(0); - q.rcopy(ctx.ROM_CURVE.CURVE_Order); - - w.copy(m); - r.copy(PAIR8.GTpow(w, q)); - if (!r.isunity()) return false; - return true; - }; - - return PAIR8; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports.PAIR8 = PAIR8; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/rand.js b/packages/bls-verify/src/vendor/amcl-js/src/rand.js deleted file mode 100644 index 5f2932fc7..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/rand.js +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Cryptographic strong random number generator - * - * Unguessable seed -> SHA -> PRNG internal state -> SHA -> random numbers - * Slow - but secure - * - * See ftp://ftp.rsasecurity.com/pub/pdfs/bull-1.pdf for a justification - */ - -/* Marsaglia & Zaman Random number generator constants */ - -var RAND = function (ctx) { - 'use strict'; - - var RAND = function () { - /* Cryptographically strong pseudo-random number generator */ - this.ira = []; /* random number... */ - this.rndptr = 0; /* ...array & pointer */ - this.borrow = 0; - this.pool_ptr = 0; - this.pool = []; /* random pool */ - this.clean(); - }; - - RAND.prototype = { - NK: 21, - NJ: 6, - NV: 8, - - /* Terminate and clean up */ - clean: function () { - var i; - - for (i = 0; i < 32; i++) { - this.pool[i] = 0; - } - - for (i = 0; i < this.NK; i++) { - this.ira[i] = 0; - } - - this.rndptr = 0; - this.borrow = 0; - this.pool_ptr = 0; - }, - - sbrand: function () { - /* Marsaglia & Zaman random number generator */ - var i, k, pdiff, t; - - this.rndptr++; - if (this.rndptr < this.NK) { - return this.ira[this.rndptr]; - } - - this.rndptr = 0; - - for (i = 0, k = this.NK - this.NJ; i < this.NK; i++, k++) { - /* calculate next NK values */ - if (k == this.NK) { - k = 0; - } - - t = this.ira[k] >>> 0; - pdiff = (t - this.ira[i] - this.borrow) | 0; - pdiff >>>= 0; /* This is seriously weird shit. I got to do this to get a proper unsigned comparison... */ - - if (pdiff < t) { - this.borrow = 0; - } - - if (pdiff > t) { - this.borrow = 1; - } - - this.ira[i] = pdiff | 0; - } - - return this.ira[0]; - }, - - sirand: function (seed) { - var m = 1, - i, - inn, - t; - - this.borrow = 0; - this.rndptr = 0; - seed >>>= 0; - this.ira[0] ^= seed; - - for (i = 1; i < this.NK; i++) { - /* fill initialisation vector */ - inn = (this.NV * i) % this.NK; - this.ira[inn] ^= m; /* note XOR */ - t = m; - m = (seed - m) | 0; - seed = t; - } - - /* "warm-up" & stir the generator */ - for (i = 0; i < 10000; i++) { - this.sbrand(); - } - }, - - fill_pool: function () { - var sh = new ctx.HASH256(), - i; - - for (i = 0; i < 128; i++) { - sh.process(this.sbrand()); - } - - this.pool = sh.hash(); - this.pool_ptr = 0; - }, - - /* Initialize RNG with some real entropy from some external source */ - seed: function (rawlen, raw) { - /* initialise from at least 128 byte string of raw random entropy */ - var sh = new ctx.HASH256(), - digest = [], - b = [], - i; - - this.pool_ptr = 0; - - for (i = 0; i < this.NK; i++) { - this.ira[i] = 0; - } - - if (rawlen > 0) { - for (i = 0; i < rawlen; i++) { - sh.process(raw[i]); - } - - digest = sh.hash(); - - /* initialise PRNG from distilled randomness */ - for (i = 0; i < 8; i++) { - b[0] = digest[4 * i]; - b[1] = digest[4 * i + 1]; - b[2] = digest[4 * i + 2]; - b[3] = digest[4 * i + 3]; - this.sirand(RAND.pack(b)); - } - } - - this.fill_pool(); - }, - - /* get random byte */ - getByte: function () { - var r = this.pool[this.pool_ptr++]; - - if (this.pool_ptr >= 32) { - this.fill_pool(); - } - - return r & 0xff; - }, - }; - - RAND.pack = function (b) { - /* pack 4 bytes into a 32-bit Word */ - return ((b[3] & 0xff) << 24) | ((b[2] & 0xff) << 16) | ((b[1] & 0xff) << 8) | (b[0] & 0xff); - }; - - return RAND; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - RAND: RAND, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/rom_curve.js b/packages/bls-verify/src/vendor/amcl-js/src/rom_curve.js deleted file mode 100644 index dd62b296c..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/rom_curve.js +++ /dev/null @@ -1,2705 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Fixed Data in ROM - Field and Curve parameters */ - -var ROM_CURVE_ANSSI, - ROM_CURVE_BLS12383, - ROM_CURVE_BLS24479, - ROM_CURVE_BLS48556, - ROM_CURVE_BLS48286, - ROM_CURVE_BLS48581, - ROM_CURVE_BLS12381, - ROM_CURVE_BLS12461, - ROM_CURVE_BN462, - ROM_CURVE_FP256BN, - ROM_CURVE_FP512BN, - ROM_CURVE_BN254, - ROM_CURVE_BN254CX, - ROM_CURVE_BRAINPOOL, - ROM_CURVE_C25519, - ROM_CURVE_C41417, - ROM_CURVE_C1174, - ROM_CURVE_C1665, - ROM_CURVE_MDC, - ROM_CURVE_ED25519, - ROM_CURVE_GOLDILOCKS, - ROM_CURVE_X448, - ROM_CURVE_HIFIVE, - ROM_CURVE_NIST256, - ROM_CURVE_NIST384, - ROM_CURVE_NIST521, - ROM_CURVE_NUMS256E, - ROM_CURVE_NUMS256W, - ROM_CURVE_NUMS384E, - ROM_CURVE_NUMS384W, - ROM_CURVE_NUMS512E, - ROM_CURVE_NUMS512W, - ROM_CURVE_SECP256K1, - ROM_CURVE_SECP160R1, - ROM_CURVE_SM2, - ROM_CURVE_C13318, - ROM_CURVE_JUBJUB, - ROM_CURVE_TWEEDLEDUM, - ROM_CURVE_TWEEDLEDEE; - -ROM_CURVE_ANSSI = function () { - var ROM_CURVE_ANSSI = { - // ANSSI curve - - CURVE_Cof_I: 1, - CURVE_B_I: 0, - CURVE_B: [ - 0x7bb73f, 0xed967b, 0x803075, 0xe4b1a1, 0xec0c9a, 0xc00fdf, 0x754a44, 0xd4aba, 0x28a930, - 0x3fca54, 0xee35, - ], - CURVE_Order: [ - 0xd655e1, 0xd459c6, 0x941ffd, 0x40d2bf, 0xdc67e1, 0x435b53, 0xe8ce42, 0x10126d, 0x3ad58f, - 0x178c0b, 0xf1fd, - ], - CURVE_Gx: [ - 0x8f5cff, 0x7a2dd9, 0x164c9, 0xaf98b7, 0x27d2dc, 0x23958c, 0x4749d4, 0x31183d, 0xc139eb, - 0xd4c356, 0xb6b3, - ], - CURVE_Gy: [ - 0x62cfb, 0x5a1554, 0xe18311, 0xe8e4c9, 0x1c307, 0xef8c27, 0xf0f3ec, 0x1f9271, 0xb20491, - 0xe0f7c8, 0x6142, - ], - CURVE_HTPC: [ - 0xa725d0, 0x983e21, 0x349ea8, 0xbb477b, 0x4c66d2, 0x5676b5, 0x119a09, 0xac6dc7, 0x18a3ac, - 0x6d4dfd, 0x7290, - ], - }; - return ROM_CURVE_ANSSI; -}; - -ROM_CURVE_BLS12383 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BLS12383 = { - // BLS12383 Curve - // Base Bits= 23 - - CURVE_Cof_I: 0, - CURVE_B_I: 15, - CURVE_B: [0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0x3c0001, 0x33d7fd, 0x5cec82, 0x9069c, 0x5f095a, 0x703bc0, 0x5a62c, 0x2200e4, 0x3809c0, - 0x1801, 0x8006, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Gx: [ - 0x734573, 0x6e7210, 0x11e311, 0x1fa3b8, 0x5dbf08, 0x688b8a, 0x12bc78, 0x43dd6c, 0x742c2f, - 0x6d6103, 0x4c767d, 0x6d8287, 0x74052d, 0x1c706b, 0x5e7b39, 0x5d2adc, 0x41fc, - ], - CURVE_Gy: [ - 0x3f224, 0x2cbd00, 0x7484b4, 0x43fcc7, 0x7d49ec, 0x25bbca, 0x2b7ad3, 0x29854a, 0x449107, - 0xcd76c, 0x7436b7, 0x6236cc, 0x1cdc31, 0x495d, 0x33ecc0, 0xb393a, 0x68f, - ], - CURVE_HTPC: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - - CURVE_Bnx: [ - 0x1200, 0x2, 0x40020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Cof: [ - 0x11ff, 0x2, 0x40020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - //CURVE_Cof: [0x169EAB, 0x2AC2AA, 0x7ED541, 0x555DF, 0x2AAC00, 0xAAB, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Pxa: [ - 0x7f2d86, 0x676c5a, 0x7850f2, 0x4ae8e9, 0x7dab67, 0x65dd03, 0x3d5895, 0x3f8e48, 0x725bd4, - 0x10a5aa, 0xc9407, 0xf3a32, 0x967cb, 0x180f32, 0x7b00fa, 0x691203, 0x634, - ], - CURVE_Pxb: [ - 0x52de15, 0x483d88, 0x37bf67, 0x2bff30, 0x4ab28d, 0x3aeb6a, 0x23a4b5, 0x6cc5d4, 0x4c89df, - 0x5b3a0b, 0x13d263, 0x1b0ee9, 0x717288, 0x5e6f4e, 0x592e, 0x3c0030, 0x300d, - ], - CURVE_Pya: [ - 0x8cb41, 0x617728, 0x5971a3, 0x106b0c, 0x1ede4f, 0x5ceb69, 0x2a44e8, 0x4bc1d6, 0x1b3e68, - 0x2ce793, 0x3a643b, 0x31a3db, 0x573fe, 0x79293b, 0x4894d1, 0x167c9e, 0x3379, - ], - CURVE_Pyb: [ - 0x479093, 0xc86fe, 0x18eb61, 0x731124, 0x43cb0d, 0x131602, 0x127def, 0x78597a, 0x7a8f7a, - 0x8d67d, 0x73835, 0x53d700, 0x3a7d15, 0x649dcf, 0x33631a, 0x123ee9, 0x20e5, - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: true, - - //debug: false, - }; - - return ROM_CURVE_BLS12383; -}; - -ROM_CURVE_BLS24479 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BLS24479 = { - // BLS24479 Curve - // Base Bits= 23 - CURVE_Cof_I: 0, - CURVE_B_I: 19, - CURVE_B: [ - 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, - ], - CURVE_Order: [ - 0x1, 0x11ffe0, 0x464068, 0x1ffaa8, 0x71e703, 0x645bb5, 0x379fb8, 0x689d35, 0x49d0ce, 0x49091f, - 0x4a7308, 0x286c0b, 0x3b44a0, 0x60b731, 0x6807c3, 0x8002, 0x10010, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Gx: [ - 0x63ccd4, 0x41ebd7, 0x15919d, 0x576cfa, 0x1efe2d, 0x743f98, 0xfc23a, 0x409a3c, 0x595af8, - 0x6f8df1, 0x38b611, 0x65468d, 0x7e4bfd, 0x6b0d9d, 0x7641d, 0x2eccde, 0xb7fea, 0x5bd3c3, - 0x2be521, 0x71a0be, 0x1ab2b, - ], - CURVE_Gy: [ - 0x1e5245, 0x4b95a4, 0x5b132e, 0x462aef, 0x36d660, 0x672e8d, 0x7b4a53, 0x79e459, 0x24920f, - 0x4828b0, 0x58f969, 0x1d527e, 0x4e00f6, 0x457ef3, 0x66924a, 0x294ffb, 0x66a7a4, 0x70c394, - 0x4f91de, 0x386362, 0x47fcb, - ], - CURVE_HTPC: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, - ], - - CURVE_Bnx: [ - 0x11ff80, 0x400, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Cof: [ - 0x11ff7f, 0x400, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - //CURVE_Cof: [0x7415AB, 0x7F7FF3, 0x5FFF07, 0x2AB555, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Pxaa: [ - 0x624678, 0x26a6e9, 0x22f8a, 0x212c12, 0x60c343, 0x3df8d3, 0x5d9733, 0x6bfc87, 0x2d2888, - 0x758675, 0x259d1c, 0x7e922c, 0x4bab37, 0x11daab, 0x6214a4, 0x758a55, 0x786671, 0x72b190, - 0x32581d, 0x729d1f, 0x959d, - ], - CURVE_Pxab: [ - 0x3099b8, 0x3d75ff, 0x40e1fe, 0x9523, 0x63775a, 0x78470a, 0x5746c7, 0x7cf1b5, 0x26a730, - 0x14fe14, 0x76ca97, 0x61c7c2, 0x669261, 0x6a7c2f, 0x3e5da9, 0x5f2d68, 0x2d39d1, 0x4a3c98, - 0x4cf7f1, 0x68418b, 0x3b0de, - ], - CURVE_Pxba: [ - 0x2d15d3, 0x1bce23, 0x5bb687, 0x46fb70, 0x185317, 0x47c134, 0x2fd0fa, 0x3597b2, 0x56de56, - 0x165b19, 0x1d3f6e, 0x10e136, 0x76b1ef, 0x1913c7, 0x4011ef, 0x1f994f, 0x3fe210, 0x545186, - 0x41ebca, 0x7d6a72, 0x3ec27, - ], - CURVE_Pxbb: [ - 0x60f480, 0x650ebd, 0x2e31ea, 0x21eb62, 0x14556e, 0x1c3973, 0x48b7e0, 0xffefd, 0x50122f, - 0x55ee1f, 0x263bd7, 0x2ed92b, 0x1ba3ad, 0x39c35e, 0x2dd201, 0x17232e, 0x1da7ce, 0x4cb0aa, - 0x1e67df, 0x46de50, 0xa5b3, - ], - CURVE_Pyaa: [ - 0x781aa0, 0x132628, 0x2ac619, 0x181db8, 0x3609da, 0x3f8897, 0x4a9851, 0x189252, 0x4c42a, - 0x768c5c, 0x66b9a2, 0x1c1d70, 0x4fcadc, 0x69ed7c, 0x7d286c, 0xd685, 0x198f9, 0x459da0, - 0x30250d, 0x1aeb9b, 0x5057f, - ], - CURVE_Pyab: [ - 0x2e08fa, 0x58afdd, 0x5ab6ef, 0x5d52fc, 0x78774, 0x348594, 0x32bc26, 0x23c32, 0x3bccf7, - 0xb913f, 0x3e1549, 0x5b907f, 0x77b3e6, 0x22c6ed, 0x7865fe, 0x3daefb, 0x60f558, 0x702d7a, - 0x3a258d, 0x24b30f, 0x2ce2b, - ], - CURVE_Pyba: [ - 0x70cc41, 0x4ed4b, 0x7d5cc, 0x2a9855, 0x7f8932, 0x5f1428, 0x7361e6, 0x14406c, 0x68a9fe, - 0x21dca7, 0x4dc54e, 0x10783e, 0x71f3a4, 0x3aa336, 0x6c5305, 0x1e5adc, 0x1a39dd, 0x7c73f0, - 0x18c69a, 0x2331f7, 0x18070, - ], - CURVE_Pybb: [ - 0x5c1cae, 0x65cca2, 0x2373c6, 0x2ad84c, 0x2d40d3, 0x714eee, 0x10ff70, 0x3ae561, 0x136b6, - 0x3eba67, 0x75cbf3, 0x327450, 0x161ac1, 0x5cb9a1, 0x2c42ee, 0x48bb8f, 0x56d046, 0x725081, - 0x77b22d, 0x2756cd, 0x499d1, - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: true, - - //debug: false, - }; - - return ROM_CURVE_BLS24479; -}; - -ROM_CURVE_BLS48581 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BLS48581 = { - // Base Bits= 23 - // Ate Bits= 33 - // G2 Table size= 36 - - CURVE_Cof_I: 0, - CURVE_Cof: [ - 0x382, 0x280, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_B_I: 1, - CURVE_B: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Order: [ - 0x671c01, 0x7cdf9a, 0x46297, 0x3e126d, 0x659946, 0x789997, 0x1588c0, 0x2e3e68, 0x2016a8, - 0x698992, 0x65a74, 0x17373a, 0x3c972c, 0x7f5ad, 0x4f2f80, 0x3d1f85, 0x463538, 0x2b81ad, - 0x733058, 0x7119d4, 0x5e2885, 0x5f1524, 0x8e1, 0x0, 0x0, 0x0, - ], - CURVE_Gx: [ - 0x5af640, 0xe6462, 0x30ef3a, 0x50f36c, 0x4da5d3, 0x70d96e, 0x5a2c45, 0x62bed9, 0x36ebdb, - 0x3b0b24, 0x611d99, 0x37cb22, 0x46a9df, 0x8aa0a, 0x6e7dd5, 0x5d76ff, 0x761abd, 0xd0d19, - 0x15f83a, 0x6f1f9, 0x693f86, 0x6e7be3, 0x4aebca, 0x561a07, 0x2f59b7, 0x5, - ], - CURVE_Gy: [ - 0x587a70, 0x3bc7c4, 0x5db6ed, 0x5c935a, 0x37aef7, 0x65c6be, 0x21db46, 0x3fbbe1, 0x722f48, - 0x30987d, 0x3d9e1, 0x7729f4, 0x7fb98a, 0x776f7d, 0x5c83bd, 0x4eea0d, 0x699127, 0x5714a5, - 0x4f27bf, 0x24452a, 0x7b398a, 0x6745a3, 0x647e1a, 0x7b298f, 0x6fda44, 0x19, - ], - CURVE_HTPC: [ - 0x1193ec, 0x617c06, 0x10ce4f, 0x203ac1, 0x288964, 0x28c418, 0x2a39c3, 0x76df25, 0x6fd560, - 0x4f7aab, 0x41c1ac, 0x25f766, 0x24a962, 0x2766c2, 0x1ab5f1, 0x2af131, 0x30c7, 0x308b53, - 0xb0b77, 0x5a7353, 0x429389, 0x3153fa, 0x653c17, 0x2ee2d7, 0x2348cd, 0x12, - ], - - CURVE_Bnx: [ - 0x381, 0x280, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Pxaaa: [ - 0x68bfab, 0x216959, 0x7b0d3f, 0x110aa6, 0x797663, 0x2062f6, 0x1247d4, 0x26c0, 0x400503, - 0x40c25e, 0x698f2, 0x462114, 0x3aad1a, 0xdfef3, 0x3c55b1, 0x6d9d17, 0x37de64, 0x9b799, - 0x3f1c0d, 0x75d5df, 0x22775d, 0x6ff48b, 0x128e08, 0x53c38f, 0x5615d9, 0xb, - ], - CURVE_Pxaab: [ - 0x347c57, 0x66cced, 0x7c59a6, 0x57d0a1, 0x556a01, 0x1ffaea, 0x65e58c, 0x63b186, 0x4f0c3, - 0x7f4c4a, 0x529dab, 0x6f8b10, 0xabfe, 0x72874, 0x1fd387, 0x6d0918, 0x1526f6, 0x42c47d, - 0x5b6603, 0x45915d, 0x2bc07e, 0x361d0d, 0x14481a, 0x67112c, 0x44973e, 0xf, - ], - CURVE_Pxaba: [ - 0x5a3e6a, 0x2ad94a, 0x519220, 0x359f85, 0x74cded, 0x3fd51d, 0x6e1e75, 0x465efd, 0x555f02, - 0x61a54d, 0x6b9d9b, 0x49217f, 0x41dbd1, 0xc02c3, 0x2d6ada, 0x2be65d, 0x7a6d69, 0x446f94, - 0x1b2a6b, 0x639d45, 0x3ad83b, 0x5d430a, 0x4d386c, 0xcc789, 0x7ccc70, 0x3, - ], - CURVE_Pxabb: [ - 0x7feafe, 0x67976, 0x7c269c, 0x7405e1, 0xb8cb4, 0x14a462, 0x5f0803, 0x18e292, 0x39468c, - 0x6364f3, 0x3b050e, 0x63bb73, 0x5f63e1, 0x43152, 0x62f833, 0x151c9f, 0x21b7b9, 0x5e7cb0, - 0x616b18, 0x7f47ac, 0x154d4b, 0x1b0025, 0x6171e, 0x12e75b, 0x62218c, 0x17, - ], - CURVE_Pxbaa: [ - 0x78cce5, 0x7438a7, 0x6dce70, 0x64ea65, 0x35f746, 0x5018cb, 0x6226a, 0x56aafe, 0x9274f, - 0x1255cb, 0x42cbbd, 0x4ead60, 0x1e4819, 0x33303f, 0x14e19a, 0x73e2c0, 0x675ff0, 0x2c856a, - 0x1d742c, 0x1803e3, 0x2a9dd6, 0x331c99, 0x44e8f1, 0x59ac, 0xb91c6, 0x7, - ], - CURVE_Pxbab: [ - 0x3c093a, 0x1b2294, 0x43c801, 0x7e719b, 0x160910, 0x12ff8f, 0x5d84bc, 0x2d4f8b, 0x5dd759, - 0x738162, 0x55ed02, 0x44cbf5, 0x3835d2, 0x303bec, 0xdd060, 0x33bdd8, 0x3d1a58, 0x612ef4, - 0x4d773b, 0x47bdc7, 0x6cda08, 0x2623c9, 0x6180fc, 0x3f5839, 0x16c779, 0x19, - ], - CURVE_Pxbba: [ - 0x50e057, 0xfcc0e, 0x539058, 0x2e19a, 0x35b0e2, 0x2c6669, 0x49308b, 0xe5f21, 0x432aad, - 0x3df9e6, 0x7432a9, 0x1e7687, 0x7293b1, 0x39de23, 0x2de912, 0x45d160, 0x36db90, 0x2270a5, - 0x106ce7, 0x3306f5, 0x108aee, 0x2f4931, 0x38fc06, 0x63030f, 0x1b7951, 0x17, - ], - CURVE_Pxbbb: [ - 0x46ae34, 0x3401f7, 0x613867, 0x74be1f, 0x2f2fc9, 0x89cad, 0x3afe7f, 0x3cdeb5, 0x545854, - 0x6fc561, 0x29c642, 0x67f9b2, 0x293f29, 0x3f19f9, 0x4a29fe, 0x20b8cb, 0x211cf7, 0x5e8f6a, - 0x6a77be, 0x58f2eb, 0x74aaa2, 0x4c4989, 0x7b14a0, 0x17d95e, 0x27d5c2, 0x10, - ], - CURVE_Pyaaa: [ - 0x2d7971, 0x27fc9a, 0x4c8fb7, 0x9607f, 0x5012ab, 0x2cb208, 0x5fba9b, 0x4cd5fb, 0x163c15, - 0x5b15ca, 0x43dccd, 0x3ba46c, 0x35afa2, 0x6120c4, 0xd7eaa, 0x4f5fe2, 0x66f3b3, 0x334aef, - 0x508e01, 0x25c8c5, 0x52f302, 0x2e42c8, 0x577e92, 0x361bad, 0x6b5335, 0x1, - ], - CURVE_Pyaab: [ - 0x4d5665, 0x3b726d, 0x44451c, 0x2ffe3d, 0x342352, 0x45cb11, 0x5f5d83, 0x97d04, 0x4e1dd2, - 0x125564, 0x170f46, 0xf8c96, 0x6b243b, 0x75f612, 0x4bf2fc, 0x14b239, 0x3a01d7, 0x64bcdf, - 0x108ae8, 0x615bad, 0x15fcad, 0x4ca630, 0x7c5136, 0x4bcf07, 0x4dc75, 0x5, - ], - CURVE_Pyaba: [ - 0x2a8474, 0x54a4d4, 0x79a0cc, 0x61dc7e, 0x47c46f, 0x44d397, 0x546994, 0x60e9ae, 0x65e2f0, - 0x14652b, 0x4554db, 0x48208a, 0x499d0e, 0x6befab, 0x414511, 0x24069b, 0x119d3a, 0x42dab6, - 0x7140c0, 0x779617, 0x367669, 0x3df6e0, 0x48f908, 0x6e8042, 0x36a201, 0x16, - ], - CURVE_Pyabb: [ - 0x41589d, 0x7b5250, 0x4c5884, 0xf299b, 0x3d8b8a, 0x4af1f6, 0x40fb97, 0x33ded2, 0xba10d, - 0x6e84ee, 0x3b4a05, 0x7d206e, 0x224333, 0x59136, 0x48b49d, 0x738870, 0x3dd8b0, 0x1b9dc4, - 0x7b4cd8, 0x58e166, 0x478762, 0x47f77a, 0x1a208, 0x310f6e, 0x6c25a4, 0x15, - ], - CURVE_Pybaa: [ - 0x650137, 0x63f305, 0xfd1e0, 0x7e7bd2, 0x57fddd, 0x6f6110, 0x651744, 0x21809a, 0x64f59f, - 0x1ca256, 0x78b29, 0x66e745, 0x7fa238, 0x5b0b8e, 0x4a615f, 0x402f88, 0x35a959, 0x7bb27, - 0x71506d, 0x512aa6, 0x288325, 0x207f4b, 0x11a459, 0x111d4e, 0x209d5a, 0x1a, - ], - CURVE_Pybab: [ - 0x10bee4, 0x38b19f, 0x1653bb, 0x13679d, 0x59ed82, 0x6cf3b4, 0x32a9ca, 0x57e0cc, 0x139e3a, - 0x78301a, 0x2093d1, 0x420fb, 0xe8c27, 0x750684, 0x2dd413, 0x7102ad, 0x589d82, 0x2ce456, - 0x359bac, 0x48210d, 0x2d537b, 0x2673ab, 0x5e944f, 0x22b9b5, 0x50d037, 0xf, - ], - CURVE_Pybba: [ - 0x323986, 0x75d5fd, 0x2cf507, 0x6cd531, 0x84017, 0x39993d, 0xe7d4f, 0x5a07d3, 0x618b5b, - 0x18e964, 0x307eae, 0x432791, 0x5ae3a2, 0x731e84, 0x669b7, 0xa7264, 0x64155f, 0x108360, - 0x4d93f0, 0x450037, 0x5d17af, 0x5a0bbf, 0x7a8970, 0x8df32, 0x167678, 0x11, - ], - CURVE_Pybbb: [ - 0x2718b6, 0x7f96e6, 0x57599f, 0x2034e2, 0x2c66e8, 0x6e91cb, 0x12accf, 0x1806c6, 0x205417, - 0x7d8e32, 0x6b40cc, 0xf4bf0, 0xe69c3, 0x26747f, 0x32a6a5, 0x5b77c7, 0x487549, 0x7d1ca1, - 0x3c501a, 0x5af034, 0x4f981, 0x4b80fd, 0x274e4e, 0x7fc481, 0x5e2524, 0x6, - ], - // CURVE_W: [[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]], - // CURVE_SB: [[[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]],[[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]]], - // CURVE_WB: [[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]], - // CURVE_BB: [[[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]],[[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]],[[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]],[[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]]], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - }; - - return ROM_CURVE_BLS48581; -}; - -ROM_CURVE_BN462 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BN462 = { - // Base Bits= 23 - // Ate Bits= 118 - // G2 Table size= 125 - - CURVE_Cof_I: 1, - CURVE_Cof: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, - ], - CURVE_B_I: 5, - CURVE_B: [ - 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, - ], - CURVE_Order: [ - 0x10800d, 0x600fc0, 0x9006, 0x0, 0x7f7c00, 0xf7ee2, 0x3fd9bf, 0x7ffffb, 0x77ffff, 0x438403, - 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, 0x202401, - 0x2, - ], - CURVE_Gx: [ - 0x36980d, 0x323e6d, 0x44f263, 0x2e6b80, 0x40372e, 0x4f2473, 0x5a82c7, 0x734d20, 0x31bbb4, - 0x5cd13b, 0xf3d2c, 0x1f6df6, 0x15f63b, 0x4c96df, 0x2e6b24, 0x5180b0, 0x3a34a0, 0x323f5b, - 0x7bc940, 0xd36b3, 0x2, - ], - CURVE_Gy: [ - 0x7b03de, 0x669a6d, 0x2aa295, 0x31176, 0x2c6660, 0x68ea86, 0x3ae03, 0xdc572, 0x777df1, - 0x4dcd5, 0x165941, 0x6bc463, 0x4ccfa7, 0x5b5085, 0x29243b, 0x353a19, 0x2b3367, 0x6f5770, - 0x1183df, 0x8c750, 0x0, - ], - CURVE_HTPC: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, - ], - - CURVE_Bnx: [ - 0x7fbfff, 0x7fffff, 0x7fffff, 0x7fffff, 0x4001ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Pxa: [ - 0x61e4df, 0x7b2695, 0x551a38, 0x4403b4, 0x26a8b4, 0x5c3e15, 0x3800ca, 0x4dd6c9, 0x1ad269, - 0x10411f, 0x4e0810, 0x6b0e48, 0x1cd96e, 0x66fcf8, 0x520b80, 0x465ee2, 0x338e3a, 0x3b41bf, - 0x216d63, 0x12be66, 0x0, - ], - CURVE_Pxb: [ - 0xcd283, 0x174d55, 0x6dcc42, 0x742874, 0x359bf7, 0x6a15f1, 0x60dc63, 0x72aadb, 0x5d86ba, - 0x630269, 0x210162, 0x6c8bb4, 0x730cbe, 0x4546a8, 0x68f263, 0x24ab35, 0xedca8, 0x22055f, - 0xfa166, 0x69721a, 0x1, - ], - CURVE_Pya: [ - 0x37154e, 0x51be1b, 0x5db96d, 0xebe19, 0x40e7b1, 0x6d2b42, 0x38cb80, 0xe4eed, 0x19a1f4, - 0x21e27, 0x6d0bfa, 0x7d3d35, 0x6e23c3, 0x2c68e0, 0x7b280d, 0x510404, 0x517427, 0x5832f2, - 0xe7688, 0x503282, 0x0, - ], - CURVE_Pyb: [ - 0x22a93a, 0x18aa59, 0x7ae853, 0x1a49dc, 0xd5374, 0x70f54d, 0x13be1c, 0x122250, 0x464769, - 0x7ae4b9, 0x6acdc3, 0x59c9f8, 0x69ac57, 0x3cd618, 0x135135, 0x398319, 0x2c8ae3, 0x17c02e, - 0x2f50e3, 0x39f786, 0x0, - ], - CURVE_W: [ - [ - 0x20003, 0xc0, 0x0, 0x0, 0x7ff000, 0x7e7fef, 0x7fffff, 0x7fffff, 0x17ffff, 0x400c00, 0x1, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7f7fff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - CURVE_SB: [ - [ - [ - 0x28004, 0xc0, 0x0, 0x0, 0x7fec00, 0x7e7fee, 0x7fffff, 0x7fffff, 0x17ffff, 0x400c00, 0x1, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x11000e, 0x600fc0, 0x9006, 0x0, 0x7f7800, 0xf7ee1, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - ], - [ - [ - 0x7f7fff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x20003, 0xc0, 0x0, 0x0, 0x7ff000, 0x7e7fef, 0x7fffff, 0x7fffff, 0x17ffff, 0x400c00, 0x1, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - ], - CURVE_WB: [ - [ - 0x4000, 0x40, 0x0, 0x0, 0x3ffe00, 0x7f7ffb, 0x7fffff, 0x7fffff, 0x7ffff, 0x400400, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7abffb, 0x1ffc7f, 0x7fffff, 0x7fffff, 0x4029ff, 0x100042, 0x240, 0x0, 0x100000, 0x7f7fff, - 0x7dbfd4, 0x7fffff, 0x7fffff, 0x4800bf, 0x401200, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7d3ffd, 0x4ffe3f, 0x7fffff, 0x7fffff, 0x4015ff, 0x80021, 0x120, 0x0, 0x480000, 0x3fbfff, - 0x7edfea, 0x7fffff, 0x7fffff, 0x24005f, 0x600900, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0xc001, 0x40, 0x0, 0x0, 0x3ffa00, 0x7f7ffa, 0x7fffff, 0x7fffff, 0x7ffff, 0x400400, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - CURVE_BB: [ - [ - [ - 0x7fc000, 0x7fffff, 0x7fffff, 0x7fffff, 0x4001ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7fbfff, 0x7fffff, 0x7fffff, 0x7fffff, 0x4001ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7fbfff, 0x7fffff, 0x7fffff, 0x7fffff, 0x4001ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x11000f, 0x600fc0, 0x9006, 0x0, 0x7f7800, 0xf7ee1, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - ], - [ - [ - 0x7f7fff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x10c00e, 0x600fc0, 0x9006, 0x0, 0x3f7a00, 0xf7ee2, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - [ - 0x10c00d, 0x600fc0, 0x9006, 0x0, 0x3f7a00, 0xf7ee2, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - [ - 0x10c00e, 0x600fc0, 0x9006, 0x0, 0x3f7a00, 0xf7ee2, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - ], - [ - [ - 0x7f7ffe, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7f7fff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7f7fff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7f7fff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - [ - [ - 0x10c00f, 0x600fc0, 0x9006, 0x0, 0x3f7a00, 0xf7ee2, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - [ - 0x11800f, 0x600fc0, 0x9006, 0x0, 0x7f7400, 0xf7ee0, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - [ - 0x7f7ffd, 0x7fffff, 0x7fffff, 0x7fffff, 0x3ff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x10c00f, 0x600fc0, 0x9006, 0x0, 0x3f7a00, 0xf7ee2, 0x3fd9bf, 0x7ffffb, 0x77ffff, - 0x438403, 0x4a423b, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, - 0x202401, 0x2, - ], - ], - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - }; - - return ROM_CURVE_BN462; -}; - -ROM_CURVE_BLS48556 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BLS48556 = { - // BLS48556 Curve - // Base Bits= 23 - CURVE_Cof_I: 0, - CURVE_B_I: 17, - CURVE_B: [ - 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Order: [ - 0x1, 0x7e0000, 0x421bff, 0x714ed3, 0x455409, 0x53842, 0x7ac588, 0x7e8a68, 0xad8c1, 0x184da5, - 0x7fb5e2, 0x5e936, 0x5ef479, 0x12b881, 0x46fe3f, 0x32fd85, 0x2973c4, 0x3d260d, 0x318df1, - 0x88d57, 0x3f73ea, 0x1887, 0x0, 0x0, 0x0, - ], - CURVE_Gx: [ - 0x571d33, 0x5a5ecb, 0x3fca1, 0x7f196f, 0x580554, 0x23dc17, 0x591dc, 0x1987f8, 0x7ca7f6, - 0x345e03, 0x203d9a, 0x1734d, 0x444e07, 0x5602b2, 0x5003e, 0x5961d5, 0x30d242, 0x336bc2, - 0x79241, 0xe0499, 0x7edd74, 0x3b712a, 0x215d65, 0x544f49, 0x9, - ], - CURVE_Gy: [ - 0x6ed83a, 0x367fd4, 0x33da69, 0x254538, 0x5c4b95, 0x2b0cef, 0x7aa39a, 0x47d9c8, 0x677b5f, - 0x4f9e3d, 0x6dc8a6, 0x71c0c7, 0x4b44e2, 0x4aa8f1, 0x4c3099, 0x3071e3, 0x240862, 0x1b9ccf, - 0x579c4, 0x4d1997, 0x3349da, 0x3f5c56, 0x5318b1, 0x56c684, 0x0, - ], - CURVE_HTPC: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - - CURVE_Bnx: [ - 0x640020, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Cof: [ - 0x64001f, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - //CURVE_Cof: [0x12ABEB, 0x221EFE, 0x528B, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Pxaaa: [ - 0x23ce4a, 0x5d1d12, 0x74aa34, 0x695c09, 0x3d7102, 0x274419, 0x76284c, 0x69f0b2, 0x4637c1, - 0x5fe3fe, 0x242e62, 0x3f853e, 0x4dd2b3, 0x672bde, 0x6ed92, 0x2b9bad, 0x6c4abf, 0x393882, - 0x32ee21, 0x2ef3a1, 0x59487e, 0x92f4b, 0x26870, 0x32bc6c, 0xe, - ], - CURVE_Pxaab: [ - 0xa1be1, 0x1b8b58, 0x7dc9c7, 0x3beb, 0x28fe3b, 0x72e58b, 0x51e10c, 0x31856a, 0x389247, - 0x15b9fd, 0x2847ea, 0x2e35a0, 0x9b0e7, 0x7f92ce, 0x6960c8, 0xc5821, 0x48632d, 0xc919c, - 0x3c27f4, 0x2a934d, 0x348b6e, 0x2f6b1b, 0x179d2a, 0x4a1009, 0x2, - ], - CURVE_Pxaba: [ - 0xc5dc4, 0x6498ee, 0x4b68e9, 0x6ed677, 0x2964ad, 0x7d8e6d, 0x4d0966, 0x550884, 0x1926ac, - 0x47162d, 0x633555, 0x265962, 0x6402b8, 0x48f745, 0x68195f, 0x198b3a, 0x117ce2, 0x5e9efb, - 0x729335, 0x471f6e, 0x3689ba, 0x3bb4f1, 0x3ddb5c, 0x297f7c, 0xb, - ], - CURVE_Pxabb: [ - 0x64b740, 0x52cd34, 0x578358, 0x464902, 0x11fd49, 0x475ba2, 0x5c150c, 0x436206, 0x335e27, - 0x7cfa66, 0x53ba9f, 0x39e20f, 0x41e3c, 0x30cb43, 0x5e7d7a, 0x4869da, 0x6b405, 0x57b683, - 0x77306a, 0x3e774a, 0x63b1a6, 0x4be47e, 0x764b7f, 0x1c2054, 0x9, - ], - CURVE_Pxbaa: [ - 0x71e01f, 0x18c2e5, 0x26ec, 0x1a5853, 0x4311cd, 0x430f11, 0x43e8e4, 0x20204c, 0x35ab89, - 0x775c07, 0x43202c, 0x442943, 0x1e3472, 0xb1bea, 0x14841d, 0x56a6a1, 0x4e27c3, 0x6ac397, - 0x111e6a, 0x453f3c, 0x449d32, 0x6288f9, 0x7d0633, 0x6f0f7b, 0xd, - ], - CURVE_Pxbab: [ - 0x37383d, 0x70470c, 0x66c28, 0x7ccc3f, 0x220253, 0x27a425, 0x147b57, 0x64a9ae, 0x7a0147, - 0x61ce2b, 0x7620bf, 0x1ceb9b, 0x3f1646, 0x5546dc, 0x12aec8, 0x2a6d46, 0x38885e, 0xa7fd0, - 0x3a2974, 0x7872f1, 0x4f91fb, 0x2ade02, 0x632141, 0x16d9d3, 0x8, - ], - CURVE_Pxbba: [ - 0x11939c, 0x7b67ae, 0x6ba5a0, 0x34d20c, 0x1be51d, 0x65ed81, 0x6d5cb3, 0x6465e6, 0x40b384, - 0x146e44, 0x54f471, 0x119f79, 0x11a9b3, 0x5235b8, 0x342402, 0x6b0380, 0x51a403, 0x22e30f, - 0x1f23ba, 0x468cdf, 0x5a9ccf, 0x77c486, 0x613650, 0x411539, 0xa, - ], - CURVE_Pxbbb: [ - 0x6f4899, 0x2150a, 0x750cb5, 0x4952b2, 0x1c51eb, 0x179378, 0x295e64, 0x5b5457, 0x47a789, - 0x1403f8, 0x62578c, 0x2f5d38, 0x7fe82c, 0x6cff62, 0x32162, 0x3acbe5, 0x1e3000, 0x668f, - 0x426a4b, 0x4f46ed, 0x57a328, 0x62acf0, 0xf705b, 0x7baa3c, 0xd, - ], - CURVE_Pyaaa: [ - 0x137844, 0x2f9f68, 0x4ddb82, 0x4ffa79, 0x44ec64, 0x6d10a3, 0x1beaf1, 0x4b2f5c, 0xb8a71, - 0x20ab1c, 0x225b80, 0x663e7c, 0x673c10, 0x7e8ea9, 0x2fc388, 0x66e9cc, 0x202f56, 0x39587c, - 0x343e8c, 0x52c8bf, 0x6190b, 0x11fb0e, 0x6124d5, 0x337685, 0x7, - ], - CURVE_Pyaab: [ - 0x483190, 0x6491db, 0x424978, 0x23544c, 0x2eaaf4, 0x31a65, 0x48eeb1, 0x7eeb0e, 0x91f2f, - 0x2d992c, 0xf07c, 0x4ae56f, 0x688ed2, 0x62e3a0, 0x284758, 0x15cf7, 0x7e205e, 0x9fa40, - 0x24ea65, 0xce87c, 0x7a1c42, 0x1c4d1d, 0x4f76aa, 0x3ce59c, 0x2, - ], - CURVE_Pyaba: [ - 0x185c0d, 0x3fa083, 0xfa771, 0x50c8ee, 0xd404d, 0x759d3, 0x697d52, 0x6598bc, 0x685c7c, - 0x612d58, 0x160d06, 0x2201f3, 0x5c797c, 0x10c374, 0xe7e1c, 0x52fa00, 0x1f60b0, 0x42b24, - 0x7635e0, 0xdd262, 0x140d61, 0x26a7e6, 0x595fbc, 0x22cde4, 0xd, - ], - CURVE_Pyabb: [ - 0x1d42f8, 0x41502b, 0x5d7dbf, 0x88b12, 0x243afd, 0x3cfe57, 0x4ec3fa, 0x2fb013, 0x7c3cff, - 0x1d3717, 0x79401a, 0x33c434, 0x635f37, 0x29e4f6, 0x2ca2db, 0x7a8ef0, 0x3fd902, 0x3309c9, - 0x1f125b, 0x3ff0c9, 0x7310, 0x3137db, 0x280e0b, 0x70755, 0xa, - ], - CURVE_Pybaa: [ - 0x38039f, 0x25673e, 0x184354, 0x3e78d1, 0xee895, 0x1279f, 0x285016, 0x445c85, 0x4bfe85, - 0x7f8597, 0x2aedd5, 0x2e62f9, 0x32710c, 0x4f5b51, 0x59016c, 0x6178c7, 0x6e268e, 0x2d39ef, - 0x2c36b6, 0x717762, 0x1d1abc, 0x323714, 0x7c7bb9, 0x582324, 0x2, - ], - CURVE_Pybab: [ - 0x5f7865, 0x40de52, 0x20e9a7, 0x7439d3, 0x3f0756, 0x595baf, 0x7cfc76, 0x287b18, 0x56074e, - 0x186679, 0x416ec0, 0x1dc812, 0x127fbe, 0x18d9b5, 0x3c4a9d, 0x1c2bb4, 0x135ca4, 0x7a40ac, - 0x739984, 0x6f008c, 0x7180ea, 0x58af6d, 0x5b4b02, 0x9194c, 0x3, - ], - CURVE_Pybba: [ - 0x4c1979, 0x753ecf, 0x6f0760, 0x3bb13c, 0x4aaf9c, 0x6bfb52, 0x470858, 0x41323d, 0x5401d8, - 0x494404, 0x5ccf5c, 0xbcf06, 0x7e6ecf, 0x5a9c20, 0xd2dff, 0x64ff44, 0x31645b, 0x4ee883, - 0x4e22ec, 0x112445, 0x486c5c, 0x5c8211, 0x67da66, 0x400692, 0xc, - ], - CURVE_Pybbb: [ - 0x49f25b, 0x12ac5f, 0x5d33f2, 0x35d356, 0x2c4f80, 0x3a4c9e, 0x3c5a72, 0x426c74, 0x5dac92, - 0x52c146, 0x61366b, 0x6cde77, 0x5a9e8f, 0x6dff70, 0x6d20e3, 0x5a60e6, 0x33df1a, 0x2afa7, - 0x390f0, 0x6320a2, 0x3f5493, 0x1cc373, 0x174990, 0x7b09b, 0xa, - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: true, - - //debug: false, - }; - - return ROM_CURVE_BLS48556; -}; - -ROM_CURVE_BLS48286 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BLS48286 = { - // BLS48286 Curve - // Base Bits= 23 - CURVE_Cof_I: 62958, - CURVE_Cof: [0xf5ee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 10, - CURVE_B: [0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0x612c81, 0x2365fa, 0x7ff10, 0x1794b8, 0xf2882, 0x1fc453, 0x253ef9, 0x359315, 0x7c9ede, - 0x602a6b, 0x1af27a, 0x4, 0x0, - ], - CURVE_Gx: [ - 0x5d59e0, 0x7d4612, 0x577225, 0x677dd0, 0x597475, 0x9a33b, 0x50693a, 0x602a23, 0x6c0f04, - 0x11f68e, 0x44836e, 0x39219e, 0x69, - ], - CURVE_Gy: [ - 0x2beb43, 0x53f2e1, 0xbbbbd, 0x2c071f, 0x37ce6b, 0x1583e4, 0x7b94ec, 0x519846, 0x7f979a, - 0x5af112, 0x7995b8, 0x472050, 0x203, - ], - CURVE_HTPC: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Bnx: [0xf5ef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Pxaaa: [ - 0x6106b5, 0x46930a, 0x3fa105, 0x662660, 0x43b1ce, 0x3ea359, 0x6b2bf6, 0x3d4a96, 0x4caeb, - 0x2544f6, 0x4c71c7, 0x67ea02, 0x22a, - ], - CURVE_Pxaab: [ - 0x6d1a55, 0x237b12, 0x6a77b3, 0x29c48e, 0x277185, 0x6ad728, 0x164bfb, 0x264519, 0xc873e, - 0x4b1a4a, 0x2d7216, 0x5dcccb, 0x18d, - ], - CURVE_Pxaba: [ - 0x57a35e, 0x3474cf, 0xe204, 0x662c53, 0x7af4e8, 0x5e8393, 0x41ad4a, 0x6e0cd2, 0x3de1d4, - 0x62f5c5, 0x7829f0, 0x1496ae, 0xa8, - ], - CURVE_Pxabb: [ - 0x7023e8, 0xa4185, 0x428a3a, 0x799e96, 0x191b5c, 0x45b13e, 0x3d77ed, 0xf392e, 0x1f92e8, - 0x1b1776, 0x7eb253, 0x5f06aa, 0x202, - ], - CURVE_Pxbaa: [ - 0x14cb9b, 0x1ab71e, 0x3622e6, 0x7f12aa, 0x217d62, 0x72d443, 0x5b5546, 0x3e38f7, 0x225964, - 0x45096a, 0x78fdd, 0x139b4d, 0x175, - ], - CURVE_Pxbab: [ - 0x60dd54, 0x650d96, 0x10efda, 0x1b8d12, 0x532b9, 0x7d3817, 0x535f9a, 0x6b1c6a, 0x2d3760, - 0x668d88, 0x7a7567, 0xf5242, 0x110, - ], - CURVE_Pxbba: [ - 0x5776da, 0x361573, 0x7e8829, 0x9089a, 0x657276, 0x5b5754, 0x162f92, 0x26f20a, 0xe4aad, - 0x3f9dec, 0x187f90, 0x37e71, 0xf6, - ], - CURVE_Pxbbb: [ - 0x350a8e, 0x447051, 0x2d7cff, 0x1304e7, 0x7554ef, 0x5934ae, 0x648e87, 0x139670, 0x68c000, - 0x2cd8a2, 0x483465, 0x598734, 0x1f0, - ], - CURVE_Pyaaa: [ - 0x6988be, 0x2bfacf, 0x3b89b3, 0x74bc5e, 0x7e5ef8, 0x1d1663, 0x1513c5, 0x781cd9, 0x38694f, - 0x2af8fe, 0x258b35, 0x7c66d, 0x21f, - ], - CURVE_Pyaab: [ - 0x711b92, 0x2cda1b, 0x21de1, 0xf5e2f, 0x333180, 0x681970, 0x4a7c36, 0xdc200, 0x5e1586, - 0x528744, 0x1bfb5e, 0xe0ff6, 0xe0, - ], - CURVE_Pyaba: [ - 0x7dd06a, 0x74cf57, 0x4951f3, 0x467f2c, 0x3cdab0, 0x571cc9, 0x2a634b, 0x12ad70, 0x335eff, - 0x45b3d7, 0xf5afa, 0x7fdc6, 0x12c, - ], - CURVE_Pyabb: [ - 0xa47f4, 0x3fa6f1, 0x4a2cf7, 0x308359, 0x15f9a3, 0x62afa3, 0x4e1447, 0x1a5942, 0x5d352b, - 0x743bb7, 0x6f7ffc, 0x418f2a, 0x156, - ], - CURVE_Pybaa: [ - 0x639e77, 0x36e68b, 0x132dbb, 0x7ca9c6, 0x48190f, 0x232649, 0x37bc94, 0x6fb23e, 0x74193e, - 0x569ebd, 0x6213, 0x472055, 0x73, - ], - CURVE_Pybab: [ - 0x4975c6, 0x50286c, 0x2c0ca0, 0x654460, 0x624ad9, 0x26e477, 0x436b98, 0x50cb4d, 0x369be1, - 0x7238a0, 0x25b890, 0x2c3b34, 0x136, - ], - CURVE_Pybba: [ - 0x3f2d7c, 0x735783, 0x102f4c, 0x59d512, 0x713ef1, 0x6fe36, 0x2674e, 0x5b0a2d, 0x288f81, - 0xbdc69, 0x450f27, 0x541ba, 0x1fb, - ], - - CURVE_Pybbb: [ - 0x1130a6, 0x41a3ca, 0x76aaa6, 0x1b12a9, 0x39e708, 0xd0fdd, 0x59da9f, 0x76d23, 0x32d633, - 0x342eef, 0x1ab27a, 0x79bc6e, 0x193, - ], - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - - //debug: false, - }; - - return ROM_CURVE_BLS48286; -}; - -ROM_CURVE_BLS12381 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BLS12381 = { - // BLS12381 Curve - // Base Bits= 23 - - CURVE_Cof_I: 0, - CURVE_B_I: 4, - CURVE_B: [0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0x1, 0x7ffe00, 0x7bffff, 0x7ff2df, 0x5a402f, 0xaa77, 0x26876, 0x1cec04, 0x7d4833, 0x26533a, - 0x4fb69d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Gx: [ - 0x22c6bb, 0x6015b6, 0x3feceb, 0x4bd0d7, 0x5e83ff, 0xb0d8a, 0x45c6eb, 0x271d1f, 0x3905a1, - 0x1f2ee9, 0xda231, 0x4d607e, 0x38c4fa, 0x4d2ac, 0x65f5e5, 0x69d398, 0x17f1, - ], - CURVE_Gy: [ - 0x45e7e1, 0x46528d, 0x1032a8, 0x144457, 0x4c744a, 0x7dba07, 0x4b012c, 0x6d8c65, 0xaf600, - 0x2baba0, 0x73d782, 0x6c5727, 0xed741, 0x3413c6, 0x6aa83c, 0x7a40f1, 0x8b3, - ], - CURVE_HTPC: [ - 0x6821b8, 0x20c57b, 0x6df314, 0x72e2bf, 0x69520e, 0x621116, 0x500ff0, 0x376dee, 0x9ff04, - 0x69291a, 0x4bc077, 0x38ded0, 0x4a9a3d, 0x1b671e, 0x5b2fdd, 0x231645, 0x1f7, - ], - - CURVE_Bnx: [ - 0x10000, 0x0, 0x34804, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Cof: [ - 0x10001, 0x0, 0x34804, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - //CURVE_Cof: [0xAAAB, 0x555600, 0x5A3002, 0x2AAF0A, 0x48C005, 0x72D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Pxa: [ - 0x21bdb8, 0x2d9182, 0x3f5201, 0x402ddf, 0x40326a, 0x2ee175, 0x1eb8f4, 0x2885b2, 0x3b02b4, - 0x29f480, 0x1b91eb, 0x28828e, 0x5272dc, 0x24c100, 0x23c2a4, 0x515978, 0x24a, - ], - CURVE_Pxb: [ - 0x42b7e, 0x7a0aba, 0x5f96b1, 0x1ca2ea, 0x4f1121, 0x92669, 0x771fd4, 0x6d30dd, 0x361ab5, - 0x213241, 0x65af43, 0x3a7b2a, 0x3a0882, 0xfb59a, 0x1c67d8, 0x15b029, 0x13e0, - ], - CURVE_Pya: [ - 0x382801, 0x290c11, 0x27864d, 0x5d6514, 0x2c9cc3, 0x259247, 0x545834, 0x214d34, 0x53a76d, - 0x55197b, 0x37f66e, 0x71a8d5, 0x5c6da2, 0x319939, 0x1f5b84, 0x6a93b9, 0xce5, - ], - CURVE_Pyb: [ - 0x5f79be, 0xebfe0, 0x6aaa4, 0x6760ed, 0x70d275, 0x3567e6, 0x55cba6, 0x3a4955, 0x63af26, - 0x7d0b4e, 0x2cf8a1, 0x145cce, 0x2b02bc, 0x6559a, 0x29cd33, 0x625017, 0x606, - ], - - CURVE_HTPC2: [ - 0x78492b, 0x627501, 0x51f09d, 0x7754d1, 0x45087, 0x32e477, 0x7532db, 0x4f9b0e, 0x5735f4, - 0x5c4ea3, 0x7eb54d, 0x6735a4, 0x48c21e, 0x7203ac, 0x1e011, 0x4c45ce, 0x52, - ], - CURVE_Ad: [ - 0x584c1d, 0x50105a, 0x7d73d0, 0x707cb, 0x36f8da, 0x359312, 0x3bf620, 0x744c0d, 0x66a8d8, - 0x2707dc, 0x43aa61, 0x6a4c15, 0x202c96, 0x67ad27, 0x6e3a50, 0x234c51, 0x14, - ], - CURVE_Bd: [ - 0x172be0, 0x11d31c, 0x174731, 0xb6755, 0x3215a3, 0x5eab44, 0x73bcd7, 0x5ce0a7, 0x4070a0, - 0x61e49e, 0x5b07, 0x7771d9, 0x2e8753, 0x3162, 0x5a200c, 0x484688, 0x12e2, - ], - PC: [ - [ - 0x22d229, 0x745d17, 0x7ea722, 0x3269c8, 0x31b80b, 0x6d1849, 0x70931a, 0x605f8d, 0x37bc23, - 0x7c4590, 0x475e75, 0x6f71e9, 0x62381e, 0x17a3d2, 0x9839c, 0x461247, 0x6e0, - ], - [ - 0x5fb7b, 0x3e7e2c, 0x33299f, 0x6142ef, 0x3771f8, 0xcded3, 0xec52, 0x579b0, 0x7f96d5, - 0x3bccf0, 0x69f733, 0x32d86f, 0x409d25, 0x4e5b1d, 0x7381f8, 0xed03c, 0x1032, - ], - [ - 0x390c9e, 0x20cf7c, 0x65fc90, 0x60193b, 0x10b2ed, 0x6ff463, 0x3d2ec6, 0x318a5d, 0x5c9967, - 0x7418, 0x74bb2e, 0x1c7916, 0x7515d1, 0x5c186, 0x73e9f1, 0xfc70d, 0x169b, - ], - [ - 0x17e317, 0x30d509, 0x55b5c6, 0x35ba74, 0x295f29, 0x3bc9f4, 0x4a3174, 0x62cb64, 0x5574a2, - 0x59cf3e, 0x10edd5, 0x74c86e, 0x33563b, 0xf7216, 0x69e3f1, 0x1e78fc, 0x80d, - ], - [ - 0x70c88e, 0x2c31c7, 0x3e732d, 0x47a3ad, 0x7c8f8c, 0x266736, 0x3c3c9d, 0x416317, 0x4db1a6, - 0x564eb6, 0x55b796, 0xbf299, 0x84d11, 0x5d0e87, 0x6af6f8, 0xf3b80, 0x17b8, - ], - [ - 0x39ed84, 0x644b42, 0x2b775f, 0x82976, 0x25128c, 0x6551b4, 0x3e721a, 0x4710c, 0xce190, - 0x4c9e1f, 0x445618, 0x3295fd, 0x6c38ae, 0x2d46e4, 0x79134a, 0x6b2a9f, 0xd6e, - ], - [ - 0x652983, 0x38cde, 0x67344f, 0x5739e8, 0x70d2dc, 0x721410, 0x25f9a3, 0x69d5c8, 0x799b9e, - 0x7bb2a4, 0x6cf2c5, 0x3a55ae, 0x1bf7a, 0x603a24, 0x5cc4ff, 0x619286, 0x1630, - ], - [ - 0x895d9, 0x19d359, 0x114455, 0xf3be, 0x2286f3, 0x3130b, 0x660beb, 0x3775b2, 0x7b3f08, - 0x3424af, 0x676e65, 0xc72a4, 0x4b3e41, 0x6cc856, 0x667d10, 0x393518, 0xe99, - ], - [ - 0x1b6861, 0x10c83b, 0x4f16ce, 0x18838c, 0x6e25ce, 0x106a66, 0x7c6ccc, 0x599944, 0x3f25f1, - 0x4ad51b, 0x5fd791, 0x2aa096, 0x1d307e, 0x69c0c1, 0x731b6d, 0x738b37, 0x1778, - ], - [ - 0x1edcb0, 0x3f3b59, 0x7f805e, 0x504b94, 0x43e3d2, 0x4b92b1, 0x7b1a38, 0x3c7280, 0x3e568, - 0x6652b3, 0x380c91, 0x54d0de, 0xc5d10, 0x3a209, 0x5d9e3b, 0x2edc, 0xd54, - ], - [ - 0x4b83bb, 0x5de367, 0x5ba0d3, 0x18c61a, 0xf2a6f, 0xd6907, 0x1c347a, 0x32f19e, 0x417f5, - 0x365ed5, 0x705f9d, 0x3d40e3, 0x2b2214, 0x60b117, 0x50eacb, 0x2769f4, 0x1729, - ], - [ - 0x4649b7, 0x2cc4e6, 0x3abab0, 0x17316b, 0xc2d5f, 0x590ac2, 0x336d38, 0x313dab, 0x5ff2, - 0x1145ae, 0x2cc0fa, 0x40ac2b, 0x1dd99, 0x170122, 0x20ccd0, 0x2f958f, 0x11a0, - ], - [ - 0x6cdd0a, 0x9a2d1, 0xb58e, 0x5bc328, 0x74e4b4, 0x2b262, 0x5e3cc7, 0x6fa99c, 0x503776, - 0x5d2def, 0x5a0ad3, 0x2b3407, 0x63eb3a, 0x8edad, 0x7a4ab5, 0x609d5c, 0x95f, - ], - [ - 0x21d641, 0x5874f3, 0x411ddb, 0x5dd21b, 0x26692a, 0x6a070, 0x1fce62, 0x806d3, 0x366b74, - 0x3ae2c2, 0x1fe34, 0x3d1e67, 0x33dafc, 0x4bd241, 0x6953e0, 0x767b56, 0xa10, - ], - [ - 0x4c5a5e, 0x33377b, 0x4c47df, 0x688f16, 0x5b9489, 0xb01f4, 0x7e608b, 0x4b70e6, 0x68a819, - 0x43794, 0x39fd8f, 0x780ccb, 0x5b074c, 0x46167e, 0x592a2c, 0x56154e, 0x14a7, - ], - [ - 0x684a3a, 0x6892dd, 0x33b095, 0x786f03, 0x3b3538, 0x539d4e, 0x18abb7, 0x170398, 0x21894e, - 0x335ea7, 0x5c3d5e, 0x4b390a, 0x463e05, 0x21e7c1, 0x5a4d86, 0x655678, 0x772, - ], - [ - 0x6304a5, 0x73453e, 0x4700b7, 0x211478, 0xd24bc, 0x5ee80, 0x492e26, 0x21de77, 0x2d4d0a, - 0x539d39, 0x655cd7, 0x363749, 0x77f050, 0x2aa721, 0x3999ee, 0x2afc72, 0xe73, - ], - [ - 0x32a21e, 0x72b66a, 0x754e74, 0x79abc0, 0x29ba81, 0x5b537a, 0xcecc1, 0x35a274, 0x62bb8d, - 0x334240, 0x7f7f1d, 0x3d03ef, 0x55f43e, 0x14de3, 0xa452a, 0x70b101, 0x13a8, - ], - [ - 0x462cd8, 0x51271b, 0x104c37, 0x7767ae, 0x6d5243, 0x7a092e, 0x70a35b, 0x665455, 0x655154, - 0x7e2d62, 0x6c2090, 0x75aa2, 0x7ef7c4, 0x590755, 0x62b8bf, 0x2ac0d2, 0x342, - ], - [ - 0x383e19, 0x7374b9, 0x73f308, 0x64a7f6, 0x3d0967, 0x559ad4, 0x2c46b3, 0x532700, 0xcd1fc, - 0x5eb4e3, 0x3e2505, 0x14c8fb, 0x629bff, 0x5026fc, 0x68c897, 0x317f2b, 0xb29, - ], - [ - 0x2b3bff, 0x4edd90, 0x279720, 0x658137, 0x2a8846, 0x6ae27b, 0x23122f, 0x13612c, 0xc01, - 0x1419e1, 0x4107a3, 0x29b1b3, 0x11298e, 0x69168e, 0x556710, 0xd2ef5, 0x1256, - ], - [ - 0x521b1c, 0x73f481, 0x6264f3, 0x71a1ef, 0xd681b, 0xc56ab, 0x5ff22b, 0x4ac430, 0x48ba9c, - 0x1746b6, 0x757bd, 0x1fd378, 0x62f4bd, 0x43165c, 0x3fc66b, 0x46aa46, 0x8ca, - ], - [ - 0x48b604, 0x2d7cd3, 0x5c12d1, 0x7600e3, 0x5027ef, 0x3656cc, 0x256bc0, 0x56ea7d, 0x5a3957, - 0x1f092c, 0x2c6076, 0x7975ae, 0x33b42d, 0x49d4a1, 0x43c0f3, 0x5f274c, 0x15e6, - ], - [ - 0x75224b, 0x3ce2a8, 0x5e19ac, 0x2bcd7d, 0x1049b6, 0x1c8d74, 0x4e5a9f, 0x5587ae, 0x6568d9, - 0x3afd0, 0x799cf6, 0x251fe2, 0x1f748c, 0x20542b, 0x1133c4, 0x14b22f, 0x5c1, - ], - [ - 0x180133, 0x27ebb7, 0x110b67, 0x611953, 0x790ad1, 0x3398d9, 0x4f1019, 0x733196, 0x158013, - 0x101a98, 0x55ecec, 0x18aee3, 0xae7be, 0x6e5f80, 0x47b2a6, 0x51ca56, 0x245, - ], - [ - 0x171ef8, 0x9e017, 0x483530, 0xc908f, 0x51c19, 0x67e0d9, 0x1ed18, 0x138874, 0x308ec0, - 0x54684d, 0x6a9ec4, 0x29fa23, 0x16004f, 0x3a2aa1, 0x6e4e6, 0x165608, 0xb18, - ], - [ - 0x74d8e, 0x1149a0, 0x1b381f, 0x5a26b0, 0x1cdf41, 0x6493b, 0x6447d9, 0x35ff3f, 0x42462e, - 0x7155e1, 0x48d566, 0x176e62, 0x143fed, 0x572318, 0x4dbdb7, 0x354847, 0x18b4, - ], - [ - 0x11c132, 0x6235a0, 0x73a04d, 0x71fdd7, 0x73a5cc, 0x420637, 0x58e279, 0xc1f20, 0x493fd1, - 0x16d95e, 0x34bf2f, 0x1fdc9e, 0x38f1d4, 0x41bfa1, 0x5f346f, 0x1f23c9, 0x1971, - ], - [ - 0x731c30, 0x55d794, 0x3caebe, 0x6a75d3, 0x77055d, 0x77367, 0x347935, 0x4c2f3f, 0x76fe06, - 0x4f22b5, 0x10a832, 0xa511e, 0x5e7ada, 0x244757, 0x61af6d, 0x5d3d08, 0xe1b, - ], - [ - 0x5ba587, 0x1caef7, 0xd80dc, 0x3c303d, 0x65201c, 0x57cd3a, 0x7c832, 0x45b735, 0x426c1e, - 0x2ccf3b, 0x3ceaf4, 0x6d0ddc, 0x6221e4, 0x7d1193, 0x659a12, 0x200c5e, 0x9fc, - ], - [ - 0x70fb29, 0x194630, 0x568579, 0x76ff49, 0x64550f, 0x4c85e, 0x309b21, 0x1c6d3, 0x581ffd, - 0x7fc77b, 0x5c2816, 0x3633a0, 0x6bd2ca, 0x7bd324, 0x4eae1b, 0x646a99, 0x987, - ], - [ - 0x69d6f2, 0x710abf, 0x7b2587, 0x307a0a, 0x7ac24, 0x66e8f5, 0x1358d3, 0x18a09e, 0x4cb52, - 0x1457c3, 0x1d6ee3, 0x4b59e7, 0x7d0277, 0x16592e, 0x6b06ef, 0x5cde7, 0x4ab, - ], - [ - 0x33a5f0, 0x75626c, 0x4a66c8, 0x4ad403, 0x76326c, 0x9c407, 0x4eb555, 0x282e1e, 0x37bd76, - 0x295f5b, 0x529f43, 0x53503, 0x11db8f, 0x44423c, 0x18d2da, 0x1fe520, 0x1660, - ], - [ - 0x68fedb, 0x35d9e5, 0x2106db, 0x4c8205, 0x7f8dc0, 0x5b85dc, 0x84d46, 0x419fe9, 0x50b879, - 0x77c79c, 0x6554db, 0x294e20, 0x7e2a21, 0x6b95e9, 0x783fc4, 0x1fef7, 0x8cc, - ], - [ - 0x65f4cb, 0x38ef61, 0x3298d5, 0x7630ef, 0x5aba9, 0x1f3bc8, 0xc947, 0x7251f6, 0x791c09, - 0x721dd6, 0x50aa9e, 0x233abe, 0x51ad87, 0x2f130e, 0x260708, 0x31bb74, 0x1f8, - ], - [ - 0x2de1f6, 0x44818e, 0xee37f, 0x458029, 0x552162, 0x34fa4d, 0x645003, 0x225f25, 0x1ce2c3, - 0x2cb146, 0x154b8b, 0x5a4ca1, 0x4c86a3, 0x5e9470, 0x259b99, 0x3c35d5, 0xcc, - ], - [ - 0x41c696, 0x4eb45c, 0x7f825f, 0x317d45, 0x567119, 0x269ad8, 0x7ad9eb, 0x4831a1, 0x383d0f, - 0x584a9e, 0x488fa5, 0x5a3418, 0x6d776f, 0x3aa206, 0x3b9604, 0x4b5082, 0x1349, - ], - [ - 0x7bb33, 0xae32e, 0xafa61, 0x59dd1e, 0x47aee9, 0x7a79a1, 0x255950, 0x2957b6, 0x69522b, - 0x1c9150, 0x46b44e, 0x6e7d0, 0x709498, 0x4b3a3, 0x6893b8, 0x4be40d, 0x90d, - ], - [ - 0x634b8f, 0xe743a, 0x11055, 0x9a4bc, 0x2f570f, 0x440b94, 0xd5b2a, 0x277e6b, 0x385332, - 0x4bc4e7, 0x47103d, 0x40ce0b, 0x55e0d7, 0x4d6484, 0x37700f, 0x50ec0b, 0xe0f, - ], - [ - 0x6d06f7, 0x38264d, 0x347eb, 0x38a664, 0x517bd8, 0x1c840, 0x1e5092, 0x3a46f9, 0x27c1cb, - 0x29ce52, 0x7d596e, 0x6bb795, 0x50d53c, 0x6c517b, 0x4b93ce, 0x20075, 0x266, - ], - [ - 0x3345cc, 0x6270ae, 0x47a66, 0x1dc856, 0x763e, 0x70d260, 0x680366, 0x2e777c, 0x2267d, - 0x3315be, 0x50cd1b, 0x78a4b2, 0x144b45, 0x786c26, 0x1d9ff8, 0x5ca8a6, 0xad6, - ], - [ - 0x561092, 0x6a53c4, 0x2a5a12, 0x7bf5df, 0x168986, 0x26a2df, 0x33a9e4, 0x7cd44, 0x42d28c, - 0x15df9c, 0x7e53fe, 0x28623b, 0x41e48c, 0x7eb0a5, 0x740cf, 0x5db3a4, 0xacc, - ], - [ - 0xf6aa8, 0x693975, 0x1003e2, 0x7c1830, 0x5c29f4, 0x390e34, 0x398da9, 0x2c8d9b, 0x26290e, - 0x7376c3, 0x71b740, 0x1488ec, 0xa01ad, 0x291e02, 0x29016f, 0x792cf7, 0x4d2, - ], - [ - 0x113f55, 0x691771, 0x78d1bb, 0x294d9a, 0x5ea3d, 0x1f78e7, 0x1fa9f5, 0x42c97, 0x7bb53, - 0x47c27b, 0x485bdd, 0x542481, 0x597d94, 0x1d5040, 0x429b87, 0x2ae6d3, 0x167a, - ], - [ - 0x535d4a, 0x7b3aaa, 0xdac8c, 0x5c9244, 0x7e2f7b, 0x690a59, 0x12fce6, 0x62ba86, 0x5920ab, - 0x498d5e, 0x67ec33, 0x3a6627, 0x54fd1d, 0x63437c, 0x5b1848, 0x647699, 0x1866, - ], - [ - 0x12ed9, 0x2b42b, 0x1183b9, 0x400ef7, 0xf5b00, 0x265724, 0x18d5c, 0x59a7e9, 0x4fd7fe, - 0x3df43e, 0x1690dd, 0x37fb77, 0x5fabba, 0x40779b, 0xfa9fa, 0x77845f, 0x16a3, - ], - [ - 0x6a775c, 0x273224, 0x64f468, 0x2c58fd, 0x29c01a, 0xa3abf, 0x100280, 0x69b2de, 0x78ef5d, - 0x751a19, 0x7bb3f7, 0x4c125a, 0x734ace, 0x787750, 0x2676cb, 0x3e045, 0x1660, - ], - [ - 0x79b7ac, 0xeff55, 0x80b19, 0x7d4e67, 0x38db9d, 0x4c893e, 0x5bc3d6, 0x766c3d, 0x5881c5, - 0xcaaa1, 0x5c054b, 0x418c15, 0x6eaac7, 0x33f64c, 0x61b6cb, 0x7294b8, 0x8d9, - ], - [ - 0x25001d, 0x284623, 0x3768e4, 0x7e976f, 0x315dc0, 0x22d441, 0x7277b2, 0x176d07, 0x3bb054, - 0x3e1ed3, 0x1b4672, 0x146ee6, 0x112f82, 0x160199, 0x17d0f9, 0x703caa, 0xbe0, - ], - [ - 0x5f5416, 0x5b3088, 0x36a349, 0x1414bd, 0x364f2c, 0x682e4e, 0x79c9ab, 0x1ed244, 0x530e12, - 0x37bb79, 0x445717, 0x6da68e, 0x3bf89e, 0x3e41a4, 0x6394e5, 0x69443c, 0x16b7, - ], - [ - 0x3f67f2, 0x716a7b, 0x247894, 0x37cb7c, 0x57cd63, 0x5d94ce, 0x49e734, 0x1ad2ee, 0x7f310c, - 0x2aa35c, 0x631215, 0x758abb, 0x67d6e8, 0x6df555, 0x103689, 0x799833, 0x58d, - ], - [ - 0x49a03d, 0x20585c, 0x54cbd8, 0x1a94f1, 0x426076, 0x3ef14, 0x3d14f8, 0x5081ab, 0x559ca4, - 0x6e6389, 0x17213f, 0x1a45c4, 0x56c43c, 0x434197, 0x604807, 0x6bae11, 0x1962, - ], - [ - 0x3663c1, 0x24a760, 0x34051e, 0x306103, 0x3688ef, 0x4f40fe, 0x56f9cb, 0x619195, 0xbe6ee, - 0x4af130, 0x69b7, 0x7574b, 0x140fad, 0x4a4302, 0x27262c, 0x16261d, 0x1611, - ], - ], - CURVE_Adr: [ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Adi: [ - 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Bdr: [ - 0x3f4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Bdi: [ - 0x3f4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - PCR: [ - [ - 0x2a5ed1, 0x555555, 0x46238a, 0x7b38e3, 0xe38d0, 0x2eae13, 0x450ae1, 0x6b0847, 0x10aa22, - 0x4fe9d0, 0x2c52d3, 0x7db0a6, 0x2691f5, 0x5dadbd, 0xe333e, 0x32a0fd, 0x171d, - ], - [ - 0x7fc71e, 0x7fffff, 0x549aa7, 0x5c6aaa, 0x2aaa9c, 0x3028e, 0x53c829, 0x104635, 0xc7f9a, - 0x5bef5c, 0x613e1e, 0x3e447c, 0x7ced78, 0x6424d, 0x6aa66f, 0x5f8bd, 0x1156, - ], - [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x2a97d6, 0x555555, 0x7188e2, 0x1ece38, 0x638e34, 0x2bab84, 0x7142b8, 0x5ac211, 0x42a88, - 0x73fa74, 0x4b14b4, 0x3f6c29, 0x29a47d, 0x576b6f, 0x238ccf, 0x2ca83f, 0x5c7, - ], - [0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x718b10, 0x638e38, 0x6786cd, 0x36e25e, 0x1097a5, 0xa49cf, 0x26a89d, 0x74bbe3, 0x6286b0, - 0x6f43c4, 0x586c3c, 0x8d683, 0x43de38, 0x7f7ee0, 0x5b3de6, 0x4d6a1d, 0x124c, - ], - [ - 0x7fc71c, 0x7fffff, 0x549aa7, 0x5c6aaa, 0x2aaa9c, 0x3028e, 0x53c829, 0x104635, 0xc7f9a, - 0x5bef5c, 0x613e1e, 0x3e447c, 0x7ced78, 0x6424d, 0x6aa66f, 0x5f8bd, 0x1156, - ], - [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x46d706, 0xe38e3, 0x204b3f, 0x46497b, 0x425ebf, 0x201f91, 0x1f49f9, 0x221cec, 0x649bf5, - 0x2940fe, 0x3df697, 0x688c98, 0x18b076, 0x6b3498, 0x2d044e, 0x23be3d, 0x1530, - ], - [0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x7fa8fb, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - ], - PCI: [ - [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x7fe38d, 0x7fffff, 0x2a4d53, 0x2e3555, 0x15554e, 0x418147, 0x69e414, 0x8231a, 0x63fcd, - 0x2df7ae, 0x309f0f, 0x1f223e, 0x7e76bc, 0x432126, 0x755337, 0x2fc5e, 0x8ab, - ], - [ - 0x7fc71a, 0x7fffff, 0x549aa7, 0x5c6aaa, 0x2aaa9c, 0x3028e, 0x53c829, 0x104635, 0xc7f9a, - 0x5bef5c, 0x613e1e, 0x3e447c, 0x7ced78, 0x6424d, 0x6aa66f, 0x5f8bd, 0x1156, - ], - [ - 0x2a97d6, 0x555555, 0x7188e2, 0x1ece38, 0x638e34, 0x2bab84, 0x7142b8, 0x5ac211, 0x42a88, - 0x73fa74, 0x4b14b4, 0x3f6c29, 0x29a47d, 0x576b6f, 0x238ccf, 0x2ca83f, 0x5c7, - ], - [ - 0x7faa9f, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - [ - 0x7faa63, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x7fe38f, 0x7fffff, 0x2a4d53, 0x2e3555, 0x15554e, 0x418147, 0x69e414, 0x8231a, 0x63fcd, - 0x2df7ae, 0x309f0f, 0x1f223e, 0x7e76bc, 0x432126, 0x755337, 0x2fc5e, 0x8ab, - ], - [ - 0x2a97be, 0x555555, 0x7188e2, 0x1ece38, 0x638e34, 0x2bab84, 0x7142b8, 0x5ac211, 0x42a88, - 0x73fa74, 0x4b14b4, 0x3f6c29, 0x29a47d, 0x576b6f, 0x238ccf, 0x2ca83f, 0x5c7, - ], - [ - 0x46d706, 0xe38e3, 0x204b3f, 0x46497b, 0x425ebf, 0x201f91, 0x1f49f9, 0x221cec, 0x649bf5, - 0x2940fe, 0x3df697, 0x688c98, 0x18b076, 0x6b3498, 0x2d044e, 0x23be3d, 0x1530, - ], - [ - 0x7faa99, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - [ - 0x7fa9d3, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - [ - 0x7fa8fb, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - - //debug: false, - }; - - return ROM_CURVE_BLS12381; -}; - -ROM_CURVE_BLS12461 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BLS12461 = { - // BLS12461 Curve - // Base Bits= 23 - - CURVE_Cof_I: 0, - CURVE_B_I: 9, - CURVE_B: [ - 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, - ], - CURVE_Order: [ - 0x1, 0x0, 0x700000, 0x7f7fff, 0x7feff, 0x22000, 0x7f2000, 0x7e00bf, 0xe801, 0x40bfa0, 0x5ff, - 0x7fe00c, 0x7fff7f, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Gx: [ - 0x5ee93d, 0x4d515, 0x504534, 0x773a5b, 0x2d9c00, 0x6358fe, 0x6606d4, 0x4114e1, 0x4dc921, - 0x21a6ac, 0x282599, 0x7be149, 0x436166, 0x45632e, 0x1a2fa4, 0x38967b, 0xc8132, 0x476e74, - 0x3a66d1, 0x56873a, 0x0, - ], - CURVE_Gy: [ - 0x51d465, 0x462af5, 0x51c3dd, 0x64627f, 0x517884, 0x71a42b, 0x6799a, 0x2ce854, 0x245f49, - 0x15cb86, 0x2e1244, 0x45fd20, 0x16eecb, 0x3f197d, 0x3322fe, 0x1793bd, 0x5f1c3f, 0x3ed192, - 0x452cc1, 0x3bde6d, 0x0, - ], - CURVE_HTPC: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, - ], - - CURVE_Bnx: [ - 0x0, 0x7ffc00, 0x7fffef, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Cof: [ - 0x1, 0x7ffc00, 0x7fffef, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, - ], - //CURVE_Cof: [0x2AAAAB, 0x7FFD55, 0x5AAA9F, 0x5580AA, 0x7D55AA, 0x2A9FFF, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Pxa: [ - 0x50a37c, 0x20630d, 0x31196d, 0x173aee, 0x1c2e49, 0x2d0f15, 0x7e467, 0x7ab270, 0x74ff92, - 0x610db6, 0x19a00f, 0x36ac0d, 0x6d78d4, 0x78520f, 0x224be5, 0x1e1386, 0x767945, 0x4a1535, - 0x4e281a, 0x662a0, 0x1, - ], - CURVE_Pxb: [ - 0x41c0ad, 0x395185, 0x37a7e1, 0x6212e5, 0x16cd66, 0x4512c1, 0x4a546, 0x200d63, 0x3ebee2, - 0x7aa535, 0x7d96c5, 0x504e99, 0x45af5b, 0x6e3da9, 0x4b9350, 0x123533, 0x2279d2, 0x1d46f9, - 0x53f96b, 0x4ae0fd, 0x0, - ], - CURVE_Pya: [ - 0x2fb006, 0x218360, 0xcdf33, 0x525095, 0x53d194, 0x125912, 0x5833f3, 0x6345a4, 0xf39f, - 0x1e7536, 0x7b46e8, 0x3edde2, 0x4dfd8a, 0x5ef53, 0x3489f3, 0x7a739f, 0x6070f4, 0x74fcce, - 0x1239fa, 0x113564, 0x0, - ], - CURVE_Pyb: [ - 0x71457c, 0xd5bfb, 0x2a294, 0x6e0261, 0x4d6a31, 0x6dc7f6, 0x26a3c4, 0x2b3475, 0x64492f, - 0x2e7877, 0x19e84a, 0x25f55d, 0x220be7, 0x5c70ad, 0x7c1310, 0x228ab, 0x2ab1d0, 0x6805d4, - 0x6d3eae, 0x71c080, 0x0, - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - - //debug: false, - }; - - return ROM_CURVE_BLS12461; -}; - -ROM_CURVE_FP256BN = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_FP256BN = { - // FP256BN Curve - // Base Bits= 24 - - CURVE_Cof_I: 1, - CURVE_B_I: 3, - CURVE_B: [0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0xb500d, 0x536cd1, 0x1af62d, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - CURVE_Gx: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Gy: [0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_HTPC: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Bnx: [0xb0a801, 0xf5c030, 0x6882, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Pxa: [ - 0xc09efb, 0x16b689, 0x3cd226, 0x12bf84, 0x1c539a, 0x913ace, 0x577c28, 0x28560f, 0xc96c20, - 0x3350b4, 0xfe0c, - ], - CURVE_Pxb: [ - 0x7e6a2b, 0xed34a3, 0x89d269, 0x87d035, 0xdd78e2, 0x13b924, 0xc637d8, 0xdb5ae1, 0x8ac054, - 0x605773, 0x4ea6, - ], - CURVE_Pya: [ - 0xdc27ff, 0xb481be, 0x48e909, 0x8d6158, 0xcb2475, 0x3e51ef, 0x75124e, 0x76770d, 0x42a3b3, - 0x46e7c5, 0x7020, - ], - CURVE_Pyb: [ - 0xad049b, 0x81114a, 0xb3e012, 0x821a98, 0x4cbe80, 0xb29f8b, 0x49297e, 0x42eea6, 0x88c290, - 0xe3bcd3, 0x554, - ], - - CURVE_W: [ - [0x54003, 0x36e1b, 0x663af0, 0xfffe78, 0xffffff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x615001, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - CURVE_SB: [ - [ - [0x669004, 0xeeee7c, 0x670bf5, 0xfffe78, 0xffffff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x615001, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0x615001, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x6100a, 0x4ffeb6, 0xb4bb3d, 0x129b19, 0xdc65fb, 0xa49d0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - ], - ], - CURVE_WB: [ - [0x30a800, 0x678f0d, 0xcc1020, 0x5554d2, 0x555555, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x7dc805, 0x764c0d, 0xad1ad6, 0xa10bc3, 0xde8fbe, 0x104467, 0x806160, 0xd105eb, 0x0, 0x0, - 0x0, - ], - [ - 0x173803, 0xb6061f, 0xd6c1ac, 0x5085e1, 0xef47df, 0x82233, 0xc030b0, 0x6882f5, 0x0, 0x0, - 0x0, - ], - [0x91f801, 0x530f6e, 0xcce126, 0x5554d2, 0x555555, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - CURVE_BB: [ - [ - [ - 0x5aa80d, 0x5daca0, 0x1a8daa, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - [ - 0x5aa80c, 0x5daca0, 0x1a8daa, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - [ - 0x5aa80c, 0x5daca0, 0x1a8daa, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - [0x615002, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0x615001, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x5aa80c, 0x5daca0, 0x1a8daa, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - [ - 0x5aa80d, 0x5daca0, 0x1a8daa, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - [ - 0x5aa80c, 0x5daca0, 0x1a8daa, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - ], - [ - [0x615002, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x615001, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x615001, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x615001, 0xeb8061, 0xd105, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0xb0a802, 0xf5c030, 0x6882, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0xc2a002, 0xd700c2, 0x1a20b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0xaa000a, 0x67ec6f, 0x1a2527, 0x129992, 0xdc65fb, 0xa49e0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - [0xb0a802, 0xf5c030, 0x6882, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - - //debug: false, - }; - - return ROM_CURVE_FP256BN; -}; - -ROM_CURVE_FP512BN = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_FP512BN = { - // FP512BN Curve - - // Base Bits= 23 - - CURVE_Cof_I: 1, - CURVE_B_I: 3, - CURVE_B: [ - 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Order: [ - 0x1a09ed, 0x14bea3, 0x501a99, 0x27cd15, 0x313e0, 0x346942, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - CURVE_Gx: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Gy: [ - 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - CURVE_HTPC: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - - CURVE_Bnx: [ - 0x1bd80f, 0xd76bc, 0x4042cc, 0x587bf, 0x2f5c03, 0xd10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Cof: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - - CURVE_Pxa: [ - 0x3646b5, 0x52dc1b, 0x7a3c1e, 0x48397f, 0xf8731, 0x71e443, 0x6f2ef1, 0x2bdf10, 0x4dc6dc, - 0x70c6a2, 0x40914d, 0x3c6685, 0x5a57cc, 0x3736af, 0x4d63c3, 0x5de94d, 0x6a1e4b, 0x25e79, - 0x6e9d, 0x244ac4, 0x1e1386, 0x62ca67, 0xe, - ], - CURVE_Pxb: [ - 0xae0e9, 0x17dfb5, 0x6cf6d7, 0x6c4488, 0x4a411c, 0x5b9c81, 0x4e0f56, 0x286b70, 0x6e0d5e, - 0x650aa4, 0x607889, 0x5ca6cb, 0x302566, 0x48ed51, 0x1b1bbc, 0x532b6e, 0x34825e, 0x157d1, - 0x6d311a, 0x3f3644, 0x3f8506, 0x38279, 0x12, - ], - CURVE_Pya: [ - 0x5e67a1, 0x6255b, 0x178920, 0xaf7dc, 0x217ad6, 0x778b9b, 0xa022d, 0x11892a, 0x3e8edd, - 0x7bd82a, 0x5b3462, 0x34cea5, 0x65c158, 0x1ba07d, 0x5982bf, 0x42d8ef, 0x4f2770, 0x19746e, - 0x3bd6ac, 0x3dc149, 0x4c827c, 0x603d90, 0x1b, - ], - CURVE_Pyb: [ - 0x4f8e8b, 0x630d90, 0x5a162d, 0x25fbb0, 0x5c222, 0x11bfe, 0x7b89e7, 0x18856b, 0x714a4, - 0x7c5ca, 0xa25ff, 0xca0ed, 0x3d0496, 0x61936c, 0x46219e, 0xa1c60, 0x591f02, 0x62beeb, 0xd9030, - 0x3c18d6, 0x48b04e, 0x34779d, 0x14, - ], - CURVE_W: [ - [ - 0x34583, 0x712e93, 0x4fc443, 0x68b50b, 0x5fb911, 0x47fd2c, 0x7fff3d, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x37b01f, 0x1aed78, 0x8598, 0xb0f7f, 0x5eb806, 0x1a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - CURVE_SB: [ - [ - [ - 0x4b9564, 0x56411a, 0x4f3eab, 0x5da58c, 0x1010b, 0x47e30c, 0x7fff3d, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x6259ce, 0x79d12a, 0x4f9500, 0x1cbd96, 0x245bda, 0x344f21, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - ], - [ - [ - 0x37b01f, 0x1aed78, 0x8598, 0xb0f7f, 0x5eb806, 0x1a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x34583, 0x712e93, 0x4fc443, 0x68b50b, 0x5fb911, 0x47fd2c, 0x7fff3d, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - ], - CURVE_WB: [ - [ - 0x5a29f0, 0x66d56a, 0x305b6a, 0x2c1e98, 0x442c60, 0x42bf7f, 0x555514, 0x2aaaaa, 0x555555, - 0x2aaaaa, 0x555555, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x355d4b, 0x25744, 0x45fbac, 0x6bfc27, 0x20fc1f, 0x6bcb9e, 0x2778ae, 0x2c497d, 0x5ad40f, - 0x72c0c9, 0x4549d2, 0x29a8b1, 0x576bc3, 0x42cc1, 0x587bf8, 0x75c030, 0xd105, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, - ], - [ - 0x289aad, 0x7e700, 0x431f3c, 0x38c1f3, 0x282c11, 0x35ec57, 0x53bc57, 0x5624be, 0x6d6a07, - 0x396064, 0x62a4e9, 0x54d458, 0x6bb5e1, 0x21660, 0x2c3dfc, 0x7ae018, 0x6882, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, - ], - [ - 0x2279d1, 0x4be7f2, 0x2fd5d2, 0x210f19, 0x65745a, 0x42a55e, 0x555514, 0x2aaaaa, 0x555555, - 0x2aaaaa, 0x555555, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - CURVE_BB: [ - [ - [ - 0x1bd810, 0xd76bc, 0x4042cc, 0x587bf, 0x2f5c03, 0xd10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x1bd80f, 0xd76bc, 0x4042cc, 0x587bf, 0x2f5c03, 0xd10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x1bd80f, 0xd76bc, 0x4042cc, 0x587bf, 0x2f5c03, 0xd10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x6259cf, 0x79d12a, 0x4f9500, 0x1cbd96, 0x245bda, 0x344f21, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - ], - [ - [ - 0x37b01f, 0x1aed78, 0x8598, 0xb0f7f, 0x5eb806, 0x1a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7e31de, 0x747e6, 0xfd7cd, 0x224556, 0x53b7dd, 0x345c31, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - [ - 0x7e31dd, 0x747e6, 0xfd7cd, 0x224556, 0x53b7dd, 0x345c31, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - [ - 0x7e31de, 0x747e6, 0xfd7cd, 0x224556, 0x53b7dd, 0x345c31, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - ], - [ - [ - 0x37b01e, 0x1aed78, 0x8598, 0xb0f7f, 0x5eb806, 0x1a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x37b01f, 0x1aed78, 0x8598, 0xb0f7f, 0x5eb806, 0x1a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x37b01f, 0x1aed78, 0x8598, 0xb0f7f, 0x5eb806, 0x1a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x37b01f, 0x1aed78, 0x8598, 0xb0f7f, 0x5eb806, 0x1a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - ], - [ - [ - 0x7e31df, 0x0747e6, 0x0fd7cd, 0x224556, 0x53b7dd, 0x345c31, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - [ - 0x2aa9af, 0x5ee3b2, 0x4f0f68, 0x11ae17, 0x45a3d4, 0x343500, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - [ - 0x37b01d, 0x1aed78, 0x008598, 0x0b0f7f, 0x5eb806, 0x001a20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - [ - 0x7e31df, 0x0747e6, 0x0fd7cd, 0x224556, 0x53b7dd, 0x345c31, 0x2ac99e, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a22, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - ], - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - - //debug: false, - }; - - return ROM_CURVE_FP512BN; -}; - -ROM_CURVE_BN254 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BN254 = { - // BN254 Curve - - // Base Bits= 24 - - CURVE_Cof_I: 1, - CURVE_B_I: 2, - CURVE_B: [0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0xd, 0x0, 0x10a100, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523, - ], - CURVE_Gx: [ - 0x12, 0x0, 0x13a700, 0x0, 0x210000, 0x861, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523, - ], - CURVE_Gy: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_HTPC: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Bnx: [0x1, 0x0, 0x4080, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Pxa: [ - 0x3fb2b, 0x4224c8, 0xd91ee, 0x4898bf, 0x648bbb, 0xedb6a4, 0x7e8c61, 0xeb8d8c, 0x9eb62f, - 0x10bb51, 0x61a, - ], - CURVE_Pxb: [ - 0xd54cf3, 0x34c1e7, 0xb70d8c, 0xae3784, 0x4d746b, 0xaa5b1f, 0x8c5982, 0x310aa7, 0x737833, - 0xaaf9ba, 0x516, - ], - CURVE_Pya: [ - 0xcd2b9a, 0xe07891, 0xbd19f0, 0xbdbe09, 0xbd0ae6, 0x822329, 0x96698c, 0x9a90e0, 0xaf9343, - 0x97a06b, 0x218, - ], - CURVE_Pyb: [ - 0x3ace9b, 0x1aec6b, 0x578a2d, 0xd739c9, 0x9006ff, 0x8d37b0, 0x56f5f3, 0x8f6d44, 0x8b1526, - 0x2b0e7c, 0xebb, - ], - CURVE_W: [ - [0x3, 0x0, 0x20400, 0x0, 0x818000, 0x61, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x1, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - CURVE_SB: [ - [ - [0x4, 0x0, 0x28500, 0x0, 0x818000, 0x61, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x1, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0x1, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0xa, 0x0, 0xe9d00, 0x0, 0x1e0000, 0x79e, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - ], - ], - CURVE_WB: [ - [0x0, 0x0, 0x4080, 0x0, 0x808000, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x5, 0x0, 0x54a80, 0x0, 0x70000, 0x1c7, 0x800000, 0x312241, 0x0, 0x0, 0x0], - [0x3, 0x0, 0x2c580, 0x0, 0x838000, 0xe3, 0xc00000, 0x189120, 0x0, 0x0, 0x0], - [0x1, 0x0, 0xc180, 0x0, 0x808000, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - CURVE_BB: [ - [ - [0xd, 0x0, 0x106080, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - [0xc, 0x0, 0x106080, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - [0xc, 0x0, 0x106080, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - [0x2, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0x1, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0xc, 0x0, 0x106080, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - [0xd, 0x0, 0x106080, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - [0xc, 0x0, 0x106080, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - ], - [ - [0x2, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x1, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x1, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x1, 0x0, 0x8100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0x2, 0x0, 0x4080, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x2, 0x0, 0x10200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0xa, 0x0, 0x102000, 0x0, 0x9f8000, 0x7ff, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - [0x2, 0x0, 0x4080, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - - //debug: false, - }; - - return ROM_CURVE_BN254; -}; - -ROM_CURVE_BN254CX = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_BN254CX = { - // BN254CX Curve - // Base Bits= 24 - - CURVE_Cof_I: 1, - CURVE_B_I: 2, - CURVE_B: [0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0xeb1f6d, 0xc0a636, 0xcebe11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, 0x8, - 0x2400, - ], - CURVE_Gx: [ - 0x1b55b2, 0x23ef5c, 0xe1be66, 0x18093e, 0x3fd6ee, 0x66d324, 0x647a63, 0xb0bddf, 0x702a0d, 0x8, - 0x2400, - ], - CURVE_Gy: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_HTPC: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Bnx: [0xc012b1, 0x3, 0x4000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - - CURVE_Pxa: [ - 0xd2ec74, 0x1ceee4, 0x26c085, 0xa03e27, 0x7c85bf, 0x4bbb90, 0xf5c3, 0x358b25, 0x53b256, - 0x2d2c70, 0x1968, - ], - CURVE_Pxb: [ - 0x29cfe1, 0x8e8b2e, 0xf47a5, 0xc209c3, 0x1b97b0, 0x9743f8, 0x37a8e9, 0xa011c9, 0x19f64a, - 0xb9ec3e, 0x1466, - ], - CURVE_Pya: [ - 0xbe09f, 0xfcebcf, 0xb30cfb, 0x847ec1, 0x61b33d, 0xe20963, 0x157dae, 0xd81e22, 0x332b8d, - 0xedd972, 0xa79, - ], - CURVE_Pyb: [ - 0x98ee9d, 0x4b2288, 0xebed90, 0x69d2ed, 0x864ea5, 0x3461c2, 0x512d8d, 0x35c6e4, 0xc4c090, - 0xc39ec, 0x616, - ], - - CURVE_W: [ - [0x2feb83, 0x634916, 0x120054, 0xb4038, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x802561, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - CURVE_SB: [ - [ - [0xb010e4, 0x63491d, 0x128054, 0xb4038, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x802561, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0x802561, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0xbb33ea, 0x5d5d20, 0xbcbdbd, 0x188ce, 0x3fd6ee, 0x66d264, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - ], - ], - CURVE_WB: [ - [0x7a84b0, 0x211856, 0xb0401c, 0x3c012, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x220475, 0xf995be, 0x9a36cd, 0xa8ca7f, 0x7e94ed, 0x2a0dc0, 0x870, 0x300000, 0x0, 0x0, 0x0], - [0xf10b93, 0xfccae0, 0xcd3b66, 0xd4653f, 0x3f4a76, 0x1506e0, 0x438, 0x180000, 0x0, 0x0, 0x0], - [0xfaaa11, 0x21185d, 0xb0c01c, 0x3c012, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - CURVE_BB: [ - [ - [ - 0x2b0cbd, 0xc0a633, 0xce7e11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - [ - 0x2b0cbc, 0xc0a633, 0xce7e11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - [ - 0x2b0cbc, 0xc0a633, 0xce7e11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - [0x802562, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0x802561, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x2b0cbc, 0xc0a633, 0xce7e11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - [ - 0x2b0cbd, 0xc0a633, 0xce7e11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - [ - 0x2b0cbc, 0xc0a633, 0xce7e11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - ], - [ - [0x802562, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x802561, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x802561, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x802561, 0x7, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - [ - [0xc012b2, 0x3, 0x4000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [0x4ac2, 0xf, 0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - [ - 0x6afa0a, 0xc0a62f, 0xce3e11, 0xcc906, 0x3fd6ee, 0x66d2c4, 0x647a63, 0xb0bddf, 0x702a0d, - 0x8, 0x2400, - ], - [0xc012b2, 0x3, 0x4000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ], - ], - - USE_GLV: true, - USE_GS_G2: true, - USE_GS_GT: true, - GT_STRONG: false, - - //debug: false, - }; - - return ROM_CURVE_BN254CX; -}; - -ROM_CURVE_BRAINPOOL = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - /* Note that the original curve has been transformed to an isomorphic curve with A=-3 */ - - var ROM_CURVE_BRAINPOOL = { - // Brainpool curve - // Base Bits= 24 - - CURVE_Cof_I: 1, - CURVE_B_I: 0, - CURVE_B: [ - 0xe92b04, 0x8101fe, 0x256ae5, 0xaf2f49, 0x93ebc4, 0x76b7bf, 0x733d0b, 0xfe66a7, 0xd84ea4, - 0x61c430, 0x662c, - ], - CURVE_Order: [ - 0x4856a7, 0xe8297, 0xf7901e, 0xb561a6, 0x397aa3, 0x8d718c, 0x909d83, 0x3e660a, 0xeea9bc, - 0x57dba1, 0xa9fb, - ], - CURVE_Gx: [ - 0x1305f4, 0x91562e, 0x2b79a1, 0x7aafbc, 0xa142c4, 0x6149af, 0xb23a65, 0x732213, 0xcfe7b7, - 0xeb3cc1, 0xa3e8, - ], - CURVE_Gy: [ - 0x25c9be, 0xe8f35b, 0x1dab, 0x39d027, 0xbcb6de, 0x417e69, 0xe14644, 0x7f7b22, 0x39c56d, - 0x6c8234, 0x2d99, - ], - CURVE_HTPC: [ - 0xbc7b16, 0x14bb03, 0x88ebbc, 0x2deae8, 0x4730d2, 0xfd9592, 0xdf0183, 0x737593, 0xc052e1, - 0xc79cf0, 0x6665, - ], - }; - return ROM_CURVE_BRAINPOOL; -}; - -ROM_CURVE_C25519 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_C25519 = { - // C25519 Curve - - CURVE_Cof_I: 8, - CURVE_B_I: 0, - CURVE_B: [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0xf5d3ed, 0x631a5c, 0xd65812, 0xa2f79c, 0xdef9de, 0x14, 0x0, 0x0, 0x0, 0x0, 0x1000, - ], - CURVE_Gx: [0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Gy: [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_HTPC: [ - 0x7504f, 0xd93a5, 0x3c6277, 0x5697f2, 0xa18c03, 0xebd397, 0x4c9efd, 0x95a680, 0xe0ef85, - 0x924027, 0x55c1, - ], - }; - return ROM_CURVE_C25519; -}; - -ROM_CURVE_C41417 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_C41417 = { - // C41417 curve - CURVE_Cof_I: 8, - CURVE_B_I: 3617, - CURVE_B: [ - 0xe21, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - ], - CURVE_Order: [ - 0x6af79, 0x69784, 0x1b0e7, 0x18f3c6, 0x338ad, 0xdbc70, 0x6022b, 0x533dc, 0x3cc924, 0x3fffac, - 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x7fff, - ], - CURVE_Gx: [ - 0xbc595, 0x204bcf, 0xc4fd3, 0x14df19, 0x33faa8, 0x4c069, 0x16ba11, 0x2ad35b, 0x1498a4, - 0x15ffcd, 0x3ec7f, 0x27d130, 0xd4636, 0x9b97f, 0x631c3, 0x8630, 0x144330, 0x241450, 0x1a334, - ], - CURVE_Gy: [ - 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - ], - CURVE_HTPC: [ - 0x3fffee, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, - 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, - 0x3ffff, - ], - }; - - return ROM_CURVE_C41417; -}; - -ROM_CURVE_C1174 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_C1174 = { - // C1174 curve - CURVE_Cof_I: 4, - CURVE_Cof: [0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: -1174, - CURVE_B: [ - 0xfffb61, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0x7ff, - ], - CURVE_Order: [ - 0x66c971, 0xd45fd1, 0x348944, 0xdfd307, 0x7965c4, 0xfffff7, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0x1ff, - ], - CURVE_Gx: [ - 0xe29eda, 0x3f27bc, 0x651612, 0x492ecd, 0x21d96a, 0xa190c0, 0xe7c029, 0x9343ae, 0x308c47, - 0xbb0cea, 0x37f, - ], - CURVE_Gy: [ - 0x46360e, 0xb1bf9b, 0x6ba4cc, 0xaf3f97, 0xe2dee2, 0xe0c4f, 0x116984, 0x665684, 0x7fb7cc, - 0x2f82d4, 0x6b7, - ], - CURVE_HTPC: [ - 0xfffff6, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0x7ff, - ], - }; - - return ROM_CURVE_C1174; -}; - -ROM_CURVE_C1665 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_C1665 = { - // C1665 curve - CURVE_Cof_I: 4, - CURVE_Cof: [0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 5766, - CURVE_B: [0x1686, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [0x3a8b27, 0x61533b, 0x40603f, 0x7feaf7, 0x7fffff, 0x7fffff, 0x7fffff, 0x7], - CURVE_Gx: [0x552398, 0x73b7f3, 0x1b19c6, 0x7707b3, 0x1a0618, 0x20b701, 0x325369, 0xa], - CURVE_Gy: [0x120345, 0xf6489, 0x70b1c2, 0x1ceb16, 0x3bfc77, 0x378142, 0x505152, 0x14], - CURVE_HTPC: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - }; - - return ROM_CURVE_C1665; -}; - -ROM_CURVE_MDC = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_MDC = { - // Million Dollar curve - CURVE_Cof_I: 4, - CURVE_Cof: [0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 0, - CURVE_B: [ - 0xcf89, 0x92503, 0x41ee93, 0x3f21f0, 0x1270f6, 0xb9625f, 0xccfb0c, 0x7cdfbf, 0x65b68a, - 0x45219, 0x5713, - ], - CURVE_Order: [ - 0xb0f7fb, 0x52f421, 0xbb5885, 0xfaf974, 0xb38975, 0x7f534f, 0xbf75e9, 0x14cbe4, 0x15abed, - 0xda2e75, 0x3c4e, - ], - CURVE_Gx: [ - 0x68363b, 0x25bfee, 0xe2232c, 0x8d2713, 0xd72abb, 0xcf6350, 0x1e03cb, 0xd85b42, 0x903b83, - 0x886a7f, 0xb681, - ], - CURVE_Gy: [ - 0x2864b5, 0xc355bd, 0x3a7e73, 0x81a93a, 0xa8bc3d, 0xda421d, 0xcf6563, 0x59814d, 0x9c0b03, - 0x34e1b5, 0xca67, - ], - CURVE_HTPC: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - }; - - return ROM_CURVE_MDC; -}; - -ROM_CURVE_ED25519 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_ED25519 = { - // ED25519 Curve - - CURVE_Cof_I: 8, - CURVE_B_I: 0, - CURVE_B: [ - 0x5978a3, 0x4dca13, 0xab75eb, 0x4141d8, 0x700a4d, 0xe89800, 0x797779, 0x8cc740, 0x6ffe73, - 0x6cee2b, 0x5203, - ], - CURVE_Order: [ - 0xf5d3ed, 0x631a5c, 0xd65812, 0xa2f79c, 0xdef9de, 0x14, 0x0, 0x0, 0x0, 0x0, 0x1000, - ], - CURVE_Gx: [ - 0x25d51a, 0x2d608f, 0xb2c956, 0x9525a7, 0x2cc760, 0xdc5c69, 0x31fdd6, 0xc0a4e2, 0x6e53fe, - 0x36d3cd, 0x2169, - ], - CURVE_Gy: [ - 0x666658, 0x666666, 0x666666, 0x666666, 0x666666, 0x666666, 0x666666, 0x666666, 0x666666, - 0x666666, 0x6666, - ], - CURVE_HTPC: [ - 0x7504f, 0xd93a5, 0x3c6277, 0x5697f2, 0xa18c03, 0xebd397, 0x4c9efd, 0x95a680, 0xe0ef85, - 0x924027, 0x55c1, - ], - }; - return ROM_CURVE_ED25519; -}; - -ROM_CURVE_GOLDILOCKS = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_GOLDILOCKS = { - // GOLDILOCKS curve - CURVE_Cof_I: 4, - CURVE_B_I: -39081, - CURVE_B: [ - 0x7f6756, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7dffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7ff, - ], - CURVE_Order: [ - 0x5844f3, 0x52556, 0x548de3, 0x6e2c7a, 0x4c2728, 0x52042d, 0x6bb58d, 0x276da4, 0x23e9c4, - 0x7ef994, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x1ff, - ], - CURVE_Gx: [ - 0x555555, 0x2aaaaa, 0x555555, 0x2aaaaa, 0x555555, 0x2aaaaa, 0x555555, 0x2aaaaa, 0x555555, - 0x52aaaa, 0x2aaaaa, 0x555555, 0x2aaaaa, 0x555555, 0x2aaaaa, 0x555555, 0x2aaaaa, 0x555555, - 0x2aaaaa, 0x555, - ], - CURVE_Gy: [ - 0x1386ed, 0x779bd5, 0x2f6bab, 0xe6d03, 0x4b2bed, 0x131777, 0x4e8a8c, 0x32b2c1, 0x44b80d, - 0x6515b1, 0x5f8db5, 0x426ebd, 0x7a0358, 0x6dda, 0x21b0ac, 0x6b1028, 0xdb359, 0x15ae09, - 0x17a58d, 0x570, - ], - CURVE_HTPC: [ - 0x7ffffe, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7dffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7ff, - ], - }; - return ROM_CURVE_GOLDILOCKS; -}; - -ROM_CURVE_X448 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_X448 = { - // X448 curve - CURVE_Cof_I: 4, - CURVE_Cof: [ - 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - ], - CURVE_B_I: 0, - CURVE_B: [ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - ], - CURVE_Order: [ - 0x5844f3, 0x52556, 0x548de3, 0x6e2c7a, 0x4c2728, 0x52042d, 0x6bb58d, 0x276da4, 0x23e9c4, - 0x7ef994, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x1ff, - ], - CURVE_Gx: [ - 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - ], - CURVE_Gy: [ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - ], - CURVE_HTPC: [ - 0x7ffffe, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7dffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7ff, - ], - }; - return ROM_CURVE_X448; -}; - -ROM_CURVE_HIFIVE = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_HIFIVE = { - // HIFIVE curve - - CURVE_Cof_I: 8, - CURVE_B_I: 11111, - CURVE_B: [0x2b67, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0x1fa805, 0x2b2e7d, 0x29ecbe, 0x3fc9dd, 0xbd6b8, 0x530a18, 0x45057e, 0x3, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x800, - ], - CURVE_Gx: [0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Gy: [ - 0x7e8632, 0xd0a0b, 0x6c4afb, 0x501b2e, 0x55650c, 0x36db6b, 0x1fbd0d, 0x61c08e, 0x314b46, - 0x70a7a3, 0x587401, 0xc70e0, 0x56502e, 0x38c2d6, 0x303, - ], - CURVE_HTPC: [ - 0x531622, 0x37d80a, 0x3928ff, 0x1b054e, 0x35d63a, 0x6a25b3, 0x406ae8, 0x278495, 0x339df0, - 0x2ac208, 0xe9a97, 0x1fb80f, 0x70856c, 0x3c1fc, 0xd8, - ], - }; - return ROM_CURVE_HIFIVE; -}; - -ROM_CURVE_NIST256 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NIST256 = { - // NIST256 Curve - CURVE_Cof_I: 1, - CURVE_B_I: 0, - CURVE_B: [ - 0xd2604b, 0x3c3e27, 0xf63bce, 0xcc53b0, 0x1d06b0, 0x86bc65, 0x557698, 0xb3ebbd, 0x3a93e7, - 0x35d8aa, 0x5ac6, - ], - CURVE_Order: [ - 0x632551, 0xcac2fc, 0x84f3b9, 0xa7179e, 0xe6faad, 0xffffbc, 0xffffff, 0xffffff, 0x0, 0xffff00, - 0xffff, - ], - CURVE_Gx: [ - 0x98c296, 0x3945d8, 0xa0f4a1, 0x2deb33, 0x37d81, 0x40f277, 0xe563a4, 0xf8bce6, 0x2c4247, - 0xd1f2e1, 0x6b17, - ], - CURVE_Gy: [ - 0xbf51f5, 0x406837, 0xcecbb6, 0x6b315e, 0xce3357, 0x9e162b, 0x4a7c0f, 0x8ee7eb, 0x1a7f9b, - 0x42e2fe, 0x4fe3, - ], - CURVE_HTPC: [ - 0x613926, 0x47959c, 0xd42eb8, 0x452a9d, 0x3eb001, 0x55548d, 0x8f44a6, 0x5240b3, 0x3723a4, - 0xd82cb6, 0x6a2a, - ], - }; - return ROM_CURVE_NIST256; -}; - -ROM_CURVE_SM2 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_SM2 = { - // SM2 Curve - - CURVE_Cof_I: 1, - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 0, - CURVE_B: [ - 0x940e93, 0xbd414d, 0x92ddbc, 0x15ab8f, 0x9789f5, 0x9a7f3, 0x4bcf65, 0x4d5a9e, 0x9f5e34, - 0xfa9e9d, 0x28e9, - ], - CURVE_Order: [ - 0xd54123, 0xf40939, 0x2b53bb, 0x21c605, 0x3df6b, 0xffff72, 0xffffff, 0xffffff, 0xffffff, - 0xfffeff, 0xffff, - ], - CURVE_Gx: [ - 0x4c74c7, 0x458933, 0xe1715a, 0xf2660b, 0xe30bbf, 0xc9948f, 0x466a39, 0x5f9904, 0x198119, - 0xae2c1f, 0x32c4, - ], - CURVE_Gy: [ - 0x39f0a0, 0x32e521, 0x4002df, 0xc62a47, 0xa9877c, 0x2153d0, 0xe36b69, 0x59bdce, 0xf6779c, - 0x36a2f4, 0xbc37, - ], - CURVE_HTPC: [ - 0xffffff, 0xffffff, 0x55ffff, 0x555555, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xaaa9ff, 0xaaaa, - ], - }; - return ROM_CURVE_SM2; -}; - -ROM_CURVE_NIST384 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NIST384 = { - // NIST384 curve - CURVE_Cof_I: 1, - CURVE_B_I: 0, - CURVE_B: [ - 0x6c2aef, 0x11dba7, 0x74aa17, 0x51768c, 0x6398d8, 0x6b58ca, 0x5404e1, 0xa0447, 0x411203, - 0x5dfd02, 0x607671, 0x4168c8, 0x56be3f, 0x1311c0, 0xfb9f9, 0x17d3f1, 0xb331, - ], - CURVE_Order: [ - 0x452973, 0x32d599, 0x6bb3b0, 0x45853b, 0x20db24, 0x3beb03, 0x7d0dcb, 0x31a6c0, 0x7fffc7, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - CURVE_Gx: [ - 0x760ab7, 0x3c70e4, 0x30e951, 0x7aa94b, 0x2f25db, 0x470aa0, 0x20950a, 0x7ba0f0, 0x1b9859, - 0x45174f, 0x3874ed, 0x56ba3, 0x71ef32, 0x71d638, 0x22c14d, 0x65115f, 0xaa87, - ], - CURVE_Gy: [ - 0x6a0e5f, 0x3af921, 0x75e90c, 0x6bf40c, 0xb1ce1, 0x18014c, 0x6d7c2e, 0x6d1889, 0x147ce9, - 0x7a5134, 0x63d076, 0x16e14f, 0xbf929, 0x6bb3d3, 0x98b1b, 0x6f254b, 0x3617, - ], - CURVE_HTPC: [ - 0x5cd21b, 0x589a81, 0x4cf909, 0x3aa056, 0x42d2a8, 0x7dda0a, 0x421117, 0x2fb357, 0x63b4bd, - 0x6a06e8, 0x225e, 0x43e017, 0x3feca5, 0x97ad4, 0x5c5492, 0x787911, 0xbc6e, - ], - }; - return ROM_CURVE_NIST384; -}; - -ROM_CURVE_NIST521 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NIST521 = { - // NIST521 curve - - CURVE_Cof_I: 1, - CURVE_B_I: 0, - CURVE_B: [ - 0x503f00, 0x3fa8d6, 0x47bd14, 0x6961a7, 0x3df883, 0x60e6ae, 0x4eec6f, 0x29605e, 0x137b16, - 0x23d8fd, 0x5864e5, 0x84f0a, 0x1918ef, 0x771691, 0x6cc57c, 0x392dcc, 0x6ea2da, 0x6d0a81, - 0x688682, 0x50fc94, 0x18e1c9, 0x27d72c, 0x1465, - ], - CURVE_Order: [ - 0x386409, 0x6e3d22, 0x3aedbe, 0x4ce23d, 0x5c9b88, 0x3a0776, 0x3dc269, 0x6600a4, 0x166b7f, - 0x77e5f, 0x461a1e, 0x7fffd2, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fff, - ], - CURVE_Gx: [ - 0x65bd66, 0x7c6385, 0x6fe5f9, 0x2b5214, 0xb3c18, 0x1bc669, 0x68bfea, 0xee093, 0x5928fe, - 0x6fdfce, 0x52d79, 0x69edd5, 0x7606b4, 0x3f0515, 0x4fed48, 0x409c82, 0x429c64, 0x472b68, - 0x7b2d98, 0x4e6cf1, 0x70404e, 0x31c0d6, 0x31a1, - ], - CURVE_Gy: [ - 0x516650, 0x28ed3f, 0x222fa, 0x139612, 0x47086a, 0x6c26a7, 0x4feb41, 0x285c80, 0x2640c5, - 0x32bde8, 0x5fb9ca, 0x733164, 0x517273, 0x2f5f7, 0x66d11a, 0x2224ab, 0x5998f5, 0x58fa37, - 0x297ed0, 0x22e4, 0x9a3bc, 0x252d4f, 0x460e, - ], - CURVE_HTPC: [ - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3fff, - ], - }; - return ROM_CURVE_NIST521; -}; - -ROM_CURVE_NUMS256E = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NUMS256E = { - // NUMS256E Curve - CURVE_Cof_I: 4, - CURVE_B_I: -15342, - CURVE_B: [ - 0xffc355, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - CURVE_Order: [ - 0xdd4af5, 0xb190ee, 0x9b1a47, 0x2f5943, 0x955aa5, 0x41, 0x0, 0x0, 0x0, 0x0, 0x4000, - ], - CURVE_Gx: [ - 0xed13da, 0xc0902e, 0x86a0de, 0xe30835, 0x398a0e, 0x9bd60c, 0x5f6920, 0xcd1e3d, 0xea237d, - 0x14fb6a, 0x8a75, - ], - CURVE_Gy: [ - 0x8a89e6, 0x16e779, 0xd32fa6, 0x10856e, 0x5f61d8, 0x801071, 0xd9a64b, 0xce9665, 0xd925c7, - 0x3e9fd9, 0x44d5, - ], - CURVE_HTPC: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - }; - return ROM_CURVE_NUMS256E; -}; - -ROM_CURVE_NUMS256W = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NUMS256W = { - // NUMS256W Curve - CURVE_Cof_I: 1, - CURVE_B_I: 152961, - CURVE_B: [0x25581, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0x51a825, 0x202947, 0x6020ab, 0xea265c, 0x3c8275, 0xffffe4, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - CURVE_Gx: [ - 0x1aacb1, 0xee1eb2, 0x3abc52, 0x3d4c7, 0x579b09, 0xcb0983, 0xa04f42, 0x297a95, 0xaadb61, - 0xd6b65a, 0xbc9e, - ], - CURVE_Gy: [ - 0x84de9f, 0xb9cb21, 0xbb80b5, 0x15310f, 0x55c3d1, 0xe035c9, 0xf77e04, 0x73448b, 0x99b6a6, - 0xc0f133, 0xd08f, - ], - CURVE_HTPC: [ - 0x2b84d6, 0x6f7595, 0x9e05fc, 0x2040e8, 0x4092c6, 0xc6ae46, 0x70cadd, 0xb22ed0, 0x11e3b5, - 0x44e454, 0xcf7f, - ], - }; - return ROM_CURVE_NUMS256W; -}; - -ROM_CURVE_NUMS384E = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NUMS384E = { - // NUMS384E Curve - CURVE_Cof_I: 4, - CURVE_B_I: -11556, - CURVE_B: [ - 0x7fd19f, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - CURVE_Order: [ - 0x23897d, 0x3989cd, 0x6482e7, 0x59ae43, 0x4555aa, 0x39ec3c, 0x2d1af8, 0x238d0e, 0x7fffe2, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3fff, - ], - CURVE_Gx: [ - 0x206bde, 0x1c8d8, 0x4d4355, 0x2a2ca0, 0x292b16, 0x680dfe, 0x3ccc58, 0x31ffd4, 0x4c0057, - 0xdcb7c, 0x4c2fd1, 0x2aedad, 0x2129ae, 0x1816d4, 0x6a499b, 0x8fda2, 0x61b1, - ], - CURVE_Gy: [ - 0x729392, 0x7c3e0, 0x727634, 0x376246, 0x2b0f94, 0x49600e, 0x7d9165, 0x7cc7b, 0x5f5683, - 0x69e284, 0x5ab609, 0x86eb8, 0x1a423b, 0x10e716, 0x69bbac, 0x1f33dc, 0x8298, - ], - CURVE_HTPC: [ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - }; - return ROM_CURVE_NUMS384E; -}; - -ROM_CURVE_NUMS384W = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NUMS384W = { - // NUMS384W Curve - CURVE_Cof_I: 1, - CURVE_B_I: -34568, - CURVE_B: [ - 0x7f77bb, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - CURVE_Order: [ - 0xe61b9, 0x3ecf6, 0x698136, 0x61bf13, 0x29d3d4, 0x1037db, 0x3ad75a, 0xf578f, 0x7fffd6, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - CURVE_Gx: [ - 0x18152a, 0x740841, 0x6fae72, 0x7b0e23, 0x6ed100, 0x684a45, 0x4a9b31, 0x5e948d, 0x79f4f3, - 0x1bf703, 0x89707, 0x2f8d30, 0x222410, 0x91019, 0x5bc607, 0x2b7858, 0x7579, - ], - CURVE_Gy: [ - 0x180716, 0x71d8cc, 0x1971d2, 0x7fa569, 0x6b4dbb, 0x6fd79a, 0x4486a0, 0x1041be, 0x739cb9, - 0x6ff0fe, 0x4011a5, 0x267bf5, 0x530058, 0x1afc67, 0x66e38e, 0x71b470, 0xacde, - ], - CURVE_HTPC: [ - 0x7fff61, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fff, - ], - }; - return ROM_CURVE_NUMS384W; -}; - -ROM_CURVE_NUMS512E = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NUMS512E = { - // NUMS512E Curve - CURVE_Cof_I: 4, - CURVE_B_I: -78296, - CURVE_B: [ - 0x7ecbef, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - CURVE_Order: [ - 0x6ed46d, 0x19ea37, 0x7d9d1a, 0x6f7f67, 0x605786, 0x5ea548, 0x5c2da1, 0x1fec64, 0x11ba9e, - 0x5a5f9f, 0x53c18d, 0x7ffffd, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xf, - ], - CURVE_Gx: [ - 0x6c57fe, 0x565333, 0x5716e6, 0x662780, 0x525427, 0x15a1fc, 0x15a241, 0x5ee4c9, 0x730f78, - 0x1ddc8c, 0x188705, 0x5c0a3a, 0x6be273, 0x44f42f, 0x7128e0, 0x73cfa6, 0x332fd1, 0x11a78a, - 0x632de2, 0x34e3d0, 0x5128db, 0x71c62d, 0x37, - ], - CURVE_Gy: [ - 0x62f5e1, 0x3d8183, 0x7cc9b7, 0x5f8e80, 0x6d38a9, 0x3fa04c, 0xabb30, 0xd0343, 0x356260, - 0x65d32c, 0x3294f, 0x741a09, 0x395909, 0x55256d, 0x96748, 0x7b936c, 0x6ee476, 0x50544a, - 0x43d5de, 0x538cc5, 0x39d49c, 0x2137fe, 0x1b, - ], - CURVE_HTPC: [ - 0x7ffdc6, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - }; - return ROM_CURVE_NUMS512E; -}; - -ROM_CURVE_NUMS512W = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_NUMS512W = { - // NUMS512W Curve - CURVE_Cof_I: 1, - CURVE_B_I: 121243, - CURVE_B: [ - 0x1d99b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, - ], - CURVE_Order: [ - 0x33555d, 0x7e7208, 0xf3854, 0x3e692, 0x68b366, 0x38c76a, 0x65f42f, 0x612c76, 0x31b4f, - 0x7729cf, 0x6cf293, 0x7ffffa, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - CURVE_Gx: [ - 0x2bae57, 0xf2b19, 0xb720a, 0x6b7aef, 0x560137, 0x3063ab, 0x95585, 0x3ca143, 0x359e93, - 0x220ed6, 0x408685, 0x36cfca, 0xc2530, 0x28a0dc, 0x407da1, 0x6c1dda, 0x5298ca, 0x407a76, - 0x2dc00a, 0x549ed1, 0x7141d0, 0x580688, 0xe, - ], - CURVE_Gy: [ - 0x3527a6, 0xec070, 0x248e82, 0x67e87f, 0x35c1e4, 0x4059e5, 0x2c9695, 0x10d420, 0x6de9c1, - 0x35161d, 0xa1057, 0xa78a5, 0x60c7bd, 0x11e964, 0x6f2ee3, 0x6def55, 0x4b97, 0x47d762, - 0x3bbb71, 0x359e70, 0x229ad5, 0x74a99, 0x25, - ], - CURVE_HTPC: [ - 0x7ffee3, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x1f, - ], - }; - return ROM_CURVE_NUMS512W; -}; - -ROM_CURVE_SECP256K1 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_SECP256K1 = { - // SECP256K1 Curve - // Base Bits= 24 - - CURVE_Cof_I: 1, - CURVE_B_I: 7, - CURVE_B: [0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0x364141, 0x5e8cd0, 0x3bbfd2, 0xaf48a0, 0xaedce6, 0xfffeba, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - CURVE_Gx: [ - 0xf81798, 0x815b16, 0xd959f2, 0x2dce28, 0x9bfcdb, 0xb0702, 0x95ce87, 0x55a062, 0xdcbbac, - 0x667ef9, 0x79be, - ], - CURVE_Gy: [ - 0x10d4b8, 0xd08ffb, 0x199c47, 0xa68554, 0x17b448, 0x8a8fd, 0xfc0e11, 0x5da4fb, 0xa3c465, - 0xda7726, 0x483a, - ], - CURVE_HTPC: [ - 0x8624aa, 0x13789e, 0x8ecdc8, 0xc23f50, 0xfdca45, 0xcd8bbb, 0x640a39, 0xf4d5b4, 0x3ffe30, - 0xe9e881, 0xcce8, - ], - - CURVE_Ad: [ - 0x444533, 0x47c01a, 0x5d4054, 0xcb6f0e, 0x53d363, 0xd272e9, 0x58f0f5, 0xa08a55, 0x661adc, - 0x31abdd, 0x3f87, - ], - CURVE_Bd: [0x6eb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - PC: [ - [ - 0xaaa88c, 0xe38daa, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, - 0xe38e38, 0x8e38, - ], - [ - 0x9dd262, 0xd0b53d, 0x314ecb, 0x37c40, 0x506144, 0xcaece4, 0xdeca25, 0xe2a413, 0xf234e6, - 0x328d23, 0x534c, - ], - [ - 0x7c6581, 0x1044f1, 0x92dfff, 0xbf63b, 0x95d2fc, 0x44c5d5, 0xcea7fd, 0xb9f315, 0xc321d5, - 0xd4c80b, 0x7d3, - ], - [ - 0xaaa8c7, 0xe38daa, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, 0xe38e38, - 0xe38e38, 0x8e38, - ], - [ - 0x8c6d14, 0x56612a, 0xbbc52a, 0x1f5e41, 0xd36b64, 0x225406, 0xd51b54, 0xf7c4b2, 0x83dc1d, - 0xc6f643, 0xedad, - ], - [ - 0x1eb49b, 0xb74578, 0x7d9fe6, 0x42f848, 0xcd4095, 0x40dd86, 0xcbb7b6, 0x9ca34c, 0x94918a, - 0x71193d, 0xd357, - ], - [ - 0xe38d84, 0xa12f38, 0xf684bd, 0x4bda12, 0xa12f68, 0xf684bd, 0x4bda12, 0xa12f68, 0xf684bd, - 0x4bda12, 0x2f68, - ], - [ - 0xcee931, 0xe85a9e, 0x18a765, 0x1be20, 0x2830a2, 0xe57672, 0xef6512, 0x715209, 0xf91a73, - 0x194691, 0x29a6, - ], - [ - 0x1d71a3, 0x90fc20, 0x6fdffc, 0xd686da, 0x7ab046, 0xa6d564, 0x4b12a0, 0xa9d0a5, 0xcb7c0f, - 0xc32d5, 0xc75e, - ], - [ - 0x38e23c, 0x684b8e, 0xbda12f, 0x12f684, 0x684bda, 0xbda12f, 0x12f684, 0x684bda, 0xbda12f, - 0x12f684, 0x4bda, - ], - [ - 0xd2a76f, 0x8192bf, 0x99a7bf, 0x2f0d62, 0x3d2116, 0x337e0a, 0x3fa8fe, 0xf3a70c, 0x45ca2c, - 0xaa7165, 0x6484, - ], - [ - 0x5c2573, 0x25d268, 0x78dfb4, 0xc8e8d9, 0x67c1bf, 0xc29894, 0x632722, 0xd5e9e6, 0xbdb49f, - 0x534bb8, 0x7a06, - ], - [ - 0xfff93b, 0xfffeff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - ], - }; - return ROM_CURVE_SECP256K1; -}; - -ROM_CURVE_SECP160R1 = function () { - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_CURVE_SECP160R1 = { - // SECP160R1 Curve - // Base Bits= 24 - - CURVE_Cof_I: 1, - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 0, - CURVE_B: [0x65fa45, 0xd4adc5, 0x9f81d4, 0x65acf8, 0xbd7a8b, 0xbefc54, 0x1c97], - CURVE_Order: [0x752257, 0xaed3ca, 0xc8f927, 0x1f4, 0x0, 0x0, 0x10000], - CURVE_Gx: [0xcbfc82, 0x8bb913, 0x8968c3, 0x466469, 0xf57328, 0xb5688e, 0x4a96], - CURVE_Gy: [0xc5fb32, 0x51377a, 0x120423, 0x59dcc9, 0x68947d, 0x285531, 0x23a6], - CURVE_HTPC: [0x5bc0da, 0xfaf3a2, 0x7305da, 0xface6a, 0x5a6106, 0xbd02cd, 0x1e50], - }; - return ROM_CURVE_SECP160R1; -}; - -ROM_CURVE_JUBJUB = function () { - // Fixed Data in ROM - Field and Curve parameters - - var ROM_CURVE_JUBJUB = { - // JUBJUB Curve - // Base Bits= 24 - - CURVE_Cof_I: 8, - CURVE_Cof: [0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 0, - CURVE_B: [ - 0x343eb1, 0x5fd6d6, 0x260106, 0x37579d, 0x2d7f6d, 0x7fd429, 0x7e6bd, 0xf5fd92, 0xfa2b48, - 0x18e74b, 0x2a93, - ], - CURVE_Order: [ - 0xf72cb7, 0xe5ed6, 0x82d097, 0xccc810, 0x682093, 0x3b00a6, 0x10134, 0x6673b, 0x33afa9, - 0xb4ea65, 0xe7d, - ], - CURVE_Gx: [ - 0xf976c4, 0xcf1a74, 0xde7f4e, 0xf2f39e, 0xc546b, 0x488200, 0xdf0038, 0xa624b4, 0xeff38c, - 0x972af8, 0x5183, - ], - CURVE_Gy: [ - 0x49702e, 0xad7093, 0x3b146b, 0xffa683, 0x6c8707, 0xc30809, 0x5abd9d, 0x9e8fcc, 0xa2fc2c, - 0xf8472c, 0x3b43, - ], - CURVE_HTPC: [ - 0x7bbbb6, 0xaef9e4, 0xa9907, 0x517532, 0x5dff51, 0xd546e2, 0xcb473c, 0x3e3ee, 0x37b1d4, - 0x68b42b, 0x62fd, - ], - }; - return ROM_CURVE_JUBJUB; -}; - -ROM_CURVE_C13318 = function () { - // Fixed Data in ROM - Field and Curve parameters - - var ROM_CURVE_C13318 = { - // C13318 Curve - // Base Bits= 24 - - CURVE_Cof_I: 1, - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 13318, - CURVE_B: [0x3406, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [ - 0xc2cbe3, 0x12dc4d, 0x16eb7d, 0x3deb8d, 0xf654f8, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x8000, - ], - CURVE_Gx: [0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Gy: [ - 0x6ead0b, 0xd3546b, 0xb5b8c8, 0xcf016d, 0x4ccb04, 0x66369d, 0xe51669, 0x381630, 0xbca6f1, - 0xaad926, 0x6675, - ], - CURVE_HTPC: [ - 0x7504f, 0xd93a5, 0x3c6277, 0x5697f2, 0xa18c03, 0xebd397, 0x4c9efd, 0x95a680, 0xe0ef85, - 0x924027, 0x55c1, - ], - }; - return ROM_CURVE_C13318; -}; - -ROM_CURVE_TWEEDLEDUM = function () { - // Fixed Data in ROM - Field and Curve parameters - - var ROM_CURVE_TWEEDLEDUM = { - //*** rom curve parameters ***** - CURVE_Cof_I: 1, - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 5, - CURVE_B: [0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [0x1, 0xafd400, 0xc9842c, 0x696286, 0x8aa127, 0x3, 0x0, 0x0, 0x0, 0x0, 0x4000], - CURVE_Gx: [0x0, 0x64e200, 0xb9a140, 0x6c3f59, 0x8aa127, 0x3, 0x0, 0x0, 0x0, 0x0, 0x4000], - CURVE_Gy: [0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_HTPC: [ - 0x381795, 0x755341, 0xc366d6, 0xd03cfb, 0x10aeeb, 0xbaa53e, 0x8b6caa, 0xef14d8, 0x20bf4, - 0x6cf337, 0x3ab4, - ], - }; - return ROM_CURVE_TWEEDLEDUM; -}; - -ROM_CURVE_TWEEDLEDEE = function () { - // Fixed Data in ROM - Field and Curve parameters - - var ROM_CURVE_TWEEDLEDEE = { - //*** rom curve parameters ***** - CURVE_Cof_I: 1, - CURVE_Cof: [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_B_I: 5, - CURVE_B: [0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_Order: [0x1, 0x64e200, 0xb9a140, 0x6c3f59, 0x8aa127, 0x3, 0x0, 0x0, 0x0, 0x0, 0x4000], - CURVE_Gx: [0x0, 0xafd400, 0xc9842c, 0x696286, 0x8aa127, 0x3, 0x0, 0x0, 0x0, 0x0, 0x4000], - CURVE_Gy: [0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - CURVE_HTPC: [ - 0x69c848, 0x1cbdad, 0x873386, 0x672ef6, 0xac0754, 0xe9704, 0xe5bc1a, 0x82c6a2, 0x649720, - 0x88de2a, 0x3ac1, - ], - }; - return ROM_CURVE_TWEEDLEDEE; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - ROM_CURVE_ANSSI: ROM_CURVE_ANSSI, - ROM_CURVE_BLS12383: ROM_CURVE_BLS12383, - ROM_CURVE_BLS24479: ROM_CURVE_BLS24479, - ROM_CURVE_BLS48556: ROM_CURVE_BLS48556, - ROM_CURVE_BLS48286: ROM_CURVE_BLS48286, - ROM_CURVE_BLS48581: ROM_CURVE_BLS48581, - ROM_CURVE_BLS12381: ROM_CURVE_BLS12381, - ROM_CURVE_BLS12461: ROM_CURVE_BLS12461, - ROM_CURVE_BN462: ROM_CURVE_BN462, - ROM_CURVE_FP256BN: ROM_CURVE_FP256BN, - ROM_CURVE_FP512BN: ROM_CURVE_FP512BN, - ROM_CURVE_BN254: ROM_CURVE_BN254, - ROM_CURVE_BN254CX: ROM_CURVE_BN254CX, - ROM_CURVE_BRAINPOOL: ROM_CURVE_BRAINPOOL, - ROM_CURVE_C25519: ROM_CURVE_C25519, - ROM_CURVE_C41417: ROM_CURVE_C41417, - ROM_CURVE_C1174: ROM_CURVE_C1174, - ROM_CURVE_C1665: ROM_CURVE_C1665, - ROM_CURVE_MDC: ROM_CURVE_MDC, - ROM_CURVE_ED25519: ROM_CURVE_ED25519, - ROM_CURVE_GOLDILOCKS: ROM_CURVE_GOLDILOCKS, - ROM_CURVE_X448: ROM_CURVE_X448, - ROM_CURVE_HIFIVE: ROM_CURVE_HIFIVE, - ROM_CURVE_NIST256: ROM_CURVE_NIST256, - ROM_CURVE_NIST384: ROM_CURVE_NIST384, - ROM_CURVE_NIST521: ROM_CURVE_NIST521, - ROM_CURVE_NUMS256E: ROM_CURVE_NUMS256E, - ROM_CURVE_NUMS256W: ROM_CURVE_NUMS256W, - ROM_CURVE_NUMS384E: ROM_CURVE_NUMS384E, - ROM_CURVE_NUMS384W: ROM_CURVE_NUMS384W, - ROM_CURVE_NUMS512E: ROM_CURVE_NUMS512E, - ROM_CURVE_NUMS512W: ROM_CURVE_NUMS512W, - ROM_CURVE_SECP256K1: ROM_CURVE_SECP256K1, - ROM_CURVE_SECP160R1: ROM_CURVE_SECP160R1, - ROM_CURVE_SM2: ROM_CURVE_SM2, - ROM_CURVE_C13318: ROM_CURVE_C13318, - ROM_CURVE_JUBJUB: ROM_CURVE_JUBJUB, - ROM_CURVE_TWEEDLEDEE: ROM_CURVE_TWEEDLEDEE, - ROM_CURVE_TWEEDLEDUM: ROM_CURVE_TWEEDLEDUM, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/rom_field.js b/packages/bls-verify/src/vendor/amcl-js/src/rom_field.js deleted file mode 100644 index 2a221a701..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/rom_field.js +++ /dev/null @@ -1,1101 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Fixed Data in ROM - Field and Curve parameters */ - -var ROM_FIELD_25519, - ROM_FIELD_256PM, - ROM_FIELD_384PM, - ROM_FIELD_512PM, - ROM_FIELD_ANSSI, - ROM_FIELD_BLS12383, - ROM_FIELD_BLS24479, - ROM_FIELD_BLS48556, - ROM_FIELD_BLS48286, - ROM_FIELD_BLS48581, - ROM_FIELD_BLS12381, - ROM_FIELD_BLS12461, - ROM_FIELD_BN462, - ROM_FIELD_FP256BN, - ROM_FIELD_FP512BN, - ROM_FIELD_BN254, - ROM_FIELD_BN254CX, - ROM_FIELD_BRAINPOOL, - ROM_FIELD_C41417, - ROM_FIELD_C1174, - ROM_FIELD_C1665, - ROM_FIELD_MDC, - ROM_FIELD_GOLDILOCKS, - ROM_FIELD_HIFIVE, - ROM_FIELD_NIST256, - ROM_FIELD_NIST384, - ROM_FIELD_NIST521, - ROM_FIELD_SECP256K1, - ROM_FIELD_SECP160R1, - ROM_FIELD_SM2, - ROM_FIELD_JUBJUB, - ROM_FIELD_TWEEDLEDUM, - ROM_FIELD_TWEEDLEDEE; - -ROM_FIELD_25519 = function () { - 'use strict'; - - var ROM_FIELD_25519 = { - // 25519 Curve Modulus - Modulus: [ - 0xffffed, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0x7fff, - ], - ROI: [ - 0xea0b0, 0x1b274a, 0x78c4ee, 0xad2fe4, 0x431806, 0xd7a72f, 0x993dfb, 0x2b4d00, 0xc1df0b, - 0x24804f, 0x2b83, - ], - R2modp: [0xa40000, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - MConst: 0x13, - }; - return ROM_FIELD_25519; -}; - -ROM_FIELD_256PM = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_256PM = { - // NUMS256 Curve Modulus - // Base Bits= 24 - Modulus: [ - 0xffff43, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - ROI: [ - 0xffff42, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - R2modp: [0x890000, 0x8b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - MConst: 0xbd, - }; - return ROM_FIELD_256PM; -}; - -ROM_FIELD_384PM = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_384PM = { - // NUMS384 Curve Modulus - // Base Bits= 23 - Modulus: [ - 0x7ffec3, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - ROI: [ - 0x7ffec2, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - R2modp: [ - 0x224000, 0xc4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - ], - MConst: 0x13d, - }; - return ROM_FIELD_384PM; -}; - -ROM_FIELD_512PM = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_512PM = { - // NUMS512 Curve Modulus - // Base Bits= 23 - Modulus: [ - 0x7ffdc7, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - ROI: [ - 0x7ffdc6, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - R2modp: [ - 0x0, 0x58800, 0x4f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, - ], - MConst: 0x239, - }; - return ROM_FIELD_512PM; -}; - -ROM_FIELD_ANSSI = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_ANSSI = { - // ANSSI modulus - // Base Bits= 24 - Modulus: [ - 0x6e9c03, 0xf353d8, 0x6de8fc, 0xabc8ca, 0x61adbc, 0x435b39, 0xe8ce42, 0x10126d, 0x3ad58f, - 0x178c0b, 0xf1fd, - ], - ROI: [ - 0x6e9c02, 0xf353d8, 0x6de8fc, 0xabc8ca, 0x61adbc, 0x435b39, 0xe8ce42, 0x10126d, 0x3ad58f, - 0x178c0b, 0xf1fd, - ], - R2modp: [ - 0xacece3, 0x924166, 0xb10fce, 0x6cfbb6, 0x87ec2, 0x3de43d, 0xd2cf67, 0xa67dde, 0xad30f2, - 0xbcaae, 0xdf98, - ], - MConst: 0x4e1155, - }; - return ROM_FIELD_ANSSI; -}; - -ROM_FIELD_BLS12383 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BLS12383 = { - // BLS12383 Modulus - // Base Bits= 23 - Modulus: [ - 0x2ab0ab, 0x3ac90b, 0x2f68dc, 0x532429, 0x43f298, 0x1e8f51, 0x5a5849, 0x18dc00, 0x2511ac, - 0x59e6cb, 0x2b518, 0x549425, 0x5c41fe, 0x340db5, 0x2adbad, 0x2b4ab2, 0x5565, - ], - ROI: [ - 0x2ab0aa, 0x3ac90b, 0x2f68dc, 0x532429, 0x43f298, 0x1e8f51, 0x5a5849, 0x18dc00, 0x2511ac, - 0x59e6cb, 0x2b518, 0x549425, 0x5c41fe, 0x340db5, 0x2adbad, 0x2b4ab2, 0x5565, - ], - R2modp: [ - 0x250a44, 0x68f66f, 0xe3c74, 0x791772, 0x3525e3, 0xe1e15, 0x356616, 0x54f624, 0x508069, - 0x272663, 0x4a4cb0, 0x359293, 0x5b6573, 0x9f27f, 0x5ea3b4, 0x60fd2d, 0x5167, - ], - MConst: 0x3435fd, - SQRTm3: [ - 0x2ad4a8, 0x6277af, 0x677d3e, 0x5ad233, 0x7add9b, 0x31dfb7, 0x401708, 0x395349, 0x3da818, - 0x7988aa, 0x7fed10, 0x3ff320, 0xc3ede, 0x7403b5, 0x2adbac, 0x2b4ab2, 0x5565, - ], - CRu: [ - 0x2ac2a9, 0x4ea05d, 0x4b730d, 0x16fb2e, 0x5f681a, 0x683784, 0xd37a8, 0x2917a5, 0x715ce2, - 0x69b7ba, 0x15114, 0x4a43a3, 0x34406e, 0x1408b5, 0x2adbad, 0x2b4ab2, 0x5565, - ], - Fra: [ - 0x11dac1, 0x2e5a66, 0x614b, 0x733b9f, 0x13480f, 0x19146d, 0x395436, 0x2b3a25, 0x1a8682, - 0x247f74, 0x3931b3, 0x5a9788, 0x7c2c11, 0x67173, 0x1fda2f, 0x6adf81, 0x22ac, - ], - Frb: [ - 0x18d5ea, 0xc6ea5, 0x2f0791, 0x5fe88a, 0x30aa88, 0x57ae4, 0x210413, 0x6da1db, 0xa8b29, - 0x356757, 0x498365, 0x79fc9c, 0x6015ec, 0x2d9c41, 0xb017e, 0x406b31, 0x32b8, - ], - }; - - return ROM_FIELD_BLS12383; -}; - -ROM_FIELD_BLS24479 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BLS24479 = { - // BLS24479 Modulus - // Base Bits= 23 - - Modulus: [ - 0x6152b, 0x2ce94, 0x6be113, 0x416986, 0x2ffe2e, 0x36d4c8, 0x47172f, 0x1945b7, 0x5f068a, - 0xe6441, 0x110186, 0x4f0f9, 0x33568e, 0x4a0f2e, 0x306ea0, 0x173bf2, 0x6e803f, 0x735d8, - 0x3316ea, 0x3c01e, 0x555c0, - ], - ROI: [ - 0x6152a, 0x2ce94, 0x6be113, 0x416986, 0x2ffe2e, 0x36d4c8, 0x47172f, 0x1945b7, 0x5f068a, - 0xe6441, 0x110186, 0x4f0f9, 0x33568e, 0x4a0f2e, 0x306ea0, 0x173bf2, 0x6e803f, 0x735d8, - 0x3316ea, 0x3c01e, 0x555c0, - ], - R2modp: [ - 0x22d6fa, 0x7aa299, 0x4c307e, 0x68e711, 0x7da4ae, 0x383cc3, 0x12048c, 0x11b7d, 0x3ca412, - 0x2ce421, 0x4932ac, 0x27a306, 0x340b6a, 0x666e, 0x3f6575, 0x2f823c, 0xa0de6, 0x137ec5, - 0x37d4bc, 0x48a54e, 0x4c28b, - ], - MConst: 0x15fe7d, - SQRTm3: [ - 0x291428, 0x198323, 0x663cce, 0x7745ac, 0x1747e3, 0x5222a9, 0x41f479, 0x54b5f9, 0x1861bc, - 0xde532, 0x2be5aa, 0x1e67ea, 0x5cb732, 0x67ab99, 0xb7c9f, 0x71250d, 0x741800, 0x26db7, - 0x2b165a, 0x3c01e, 0x555c0, - ], - CRu: [ - 0x5794a9, 0x4e28db, 0x690ef0, 0x1c5799, 0x63a309, 0x447bb8, 0x4485d4, 0x36fdd8, 0x7bb423, - 0xe24b9, 0x5e7398, 0x11ac71, 0x806e0, 0x18dd64, 0x5df5a0, 0x4307f, 0x314c20, 0x4d1c8, - 0x2f16a2, 0x3c01e, 0x555c0, - ], - Fra: [ - 0x796f1d, 0x4e9577, 0x6eb572, 0x68637f, 0x41ff8b, 0x46e8d3, 0x7a7898, 0x7c72a4, 0x248407, - 0x6e79d9, 0x56499e, 0x4eb47f, 0x27cbd6, 0x33c662, 0x4e9746, 0xc2798, 0x397549, 0x4a5b1b, - 0x5c90b6, 0x3dca73, 0x4bbc8, - ], - Frb: [ - 0xca60e, 0x34391c, 0x7d2ba0, 0x590606, 0x6dfea2, 0x6febf4, 0x4c9e96, 0x1cd312, 0x3a8282, - 0x1fea68, 0x3ab7e7, 0x363c79, 0xb8ab7, 0x1648cc, 0x61d75a, 0xb1459, 0x350af6, 0x3cdabd, - 0x568633, 0x45f5aa, 0x99f7, - ], - TWK: [ - 0x6a62f3, 0x12416d, 0x735296, 0x62f9eb, 0x1cb389, 0x794c37, 0x37ddda, 0x7acf76, 0x6a6d51, - 0x1625bc, 0x7c5536, 0x518cd7, 0x3e1bc9, 0x47ce1f, 0x8c33b, 0xc7722, 0x62935e, 0x40f556, - 0x4ed046, 0x133767, 0x337a3, - ], - }; - - return ROM_FIELD_BLS24479; -}; - -ROM_FIELD_BLS48581 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BLS48581 = { - // Base Bits= 23 - Modulus: [ - 0x65912b, 0x2a9cca, 0x30fb70, 0x525245, 0x7df721, 0x414af1, 0x4c5c3b, 0x33d2a8, 0x5af683, - 0x1e8e6d, 0x34c0e5, 0x1566ce, 0x2f6e08, 0x115c87, 0x551129, 0x78f9cb, 0x3be6c0, 0x426376, - 0x3e3448, 0x2b742, 0x7012a0, 0x1c63a8, 0x4c4e09, 0x79a3b7, 0xf73f, 0x25, - ], - ROI: [ - 0x65912a, 0x2a9cca, 0x30fb70, 0x525245, 0x7df721, 0x414af1, 0x4c5c3b, 0x33d2a8, 0x5af683, - 0x1e8e6d, 0x34c0e5, 0x1566ce, 0x2f6e08, 0x115c87, 0x551129, 0x78f9cb, 0x3be6c0, 0x426376, - 0x3e3448, 0x2b742, 0x7012a0, 0x1c63a8, 0x4c4e09, 0x79a3b7, 0xf73f, 0x25, - ], - R2modp: [ - 0x4e2506, 0x1fad8c, 0x618be7, 0x23e9bf, 0x6a8ad9, 0x3529c9, 0xb64d9, 0x1c7a8e, 0x759816, - 0x2ae889, 0x3b1f74, 0x53d536, 0x7cff54, 0x389ee8, 0x4f41f1, 0x2c5d2d, 0x48d19d, 0x6c88a7, - 0x7b224e, 0x3b0db8, 0x3bdcf8, 0x83abf, 0x5b548e, 0x50a9d7, 0x362f43, 0x10, - ], - MConst: 0x1d5a7d, - SQRTm3: [ - 0x565a0a, 0x3f8543, 0x6fd47b, 0x496c66, 0x62daa2, 0x3ac2da, 0x11e09a, 0x92089, 0x3f8ad7, - 0x4ba795, 0x1335b0, 0x35ae9f, 0x48e9b1, 0x12c1dd, 0xedce, 0x21fa85, 0x6fed43, 0x4cc86e, - 0x6b8186, 0x7dc492, 0x2bffd8, 0x451bd5, 0x24231a, 0x4d3b00, 0xf73f, 0x25, - ], - CRu: [ - 0x479b90, 0x358bc3, 0x20937a, 0x4472ef, 0x4d8e3f, 0x43440b, 0x5d3dd0, 0x15590f, 0xdb5d6, - 0x29736c, 0x50c59a, 0x2fdc17, 0x73422b, 0x3f4d54, 0x2a11ad, 0x6b7fa3, 0x65fcbe, 0x7acd83, - 0x695960, 0x427957, 0x620963, 0x2ba3e9, 0x541577, 0x16345b, 0x0, 0x0, - ], - Fra: [ - 0x2aeb25, 0x6d9fc8, 0x7e58ba, 0x3b0569, 0x341942, 0x3d9c9b, 0x15c1c5, 0x7d3ef9, 0x208ac0, - 0x6ef6a2, 0x106240, 0x1f0e46, 0x684849, 0x3030fc, 0xc1f8a, 0x317a4b, 0x4afd6b, 0xe81c7, - 0xf9e16, 0x6823cc, 0x5f6067, 0x7ce7ca, 0x69d735, 0x280a4f, 0x7d30db, 0x1, - ], - Frb: [ - 0x2aeb25, 0x6d9fc8, 0x7e58ba, 0x3b0569, 0x341942, 0x3d9c9b, 0x15c1c5, 0x7d3ef9, 0x208ac0, - 0x6ef6a2, 0x106240, 0x1f0e46, 0x684849, 0x3030fc, 0xc1f8a, 0x317a4b, 0x4afd6b, 0xe81c7, - 0xf9e16, 0x6823cc, 0x5f6067, 0x7ce7ca, 0x69d735, 0x280a4f, 0x7d30db, 0x1, - ], - TWK: [ - 0x426953, 0x67a4be, 0xf5ed0, 0x11dcc3, 0x2ce459, 0x6fc2c1, 0x77e8b4, 0x46145d, 0x7b4bc1, - 0x7f9915, 0x313d8b, 0x497801, 0x661b43, 0x428f02, 0x1fa546, 0x231769, 0x3b8532, 0x614cd0, - 0x281d59, 0x4dd09c, 0x6aeb8c, 0x39bbb3, 0x1d5da, 0x1bde08, 0x3a65a5, 0x0, - ], - }; - - return ROM_FIELD_BLS48581; -}; - -ROM_FIELD_BLS48556 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BLS48556 = { - // BLS48556 Modulus - // Base Bits= 23 - - Modulus: [ - 0x76ac0b, 0x4c1ff9, 0x67bbdb, 0x5330ef, 0x167009, 0x450805, 0x61c350, 0x609bd4, 0x76b2e, - 0x40410d, 0x169054, 0x353e01, 0x141301, 0x66f371, 0x3b355a, 0x6d4a85, 0x36f405, 0x28840a, - 0x454ab3, 0x2b6433, 0x29047a, 0xb646e, 0xbff3f, 0x68bec2, 0xf, - ], - ROI: [ - 0x76ac0a, 0x4c1ff9, 0x67bbdb, 0x5330ef, 0x167009, 0x450805, 0x61c350, 0x609bd4, 0x76b2e, - 0x40410d, 0x169054, 0x353e01, 0x141301, 0x66f371, 0x3b355a, 0x6d4a85, 0x36f405, 0x28840a, - 0x454ab3, 0x2b6433, 0x29047a, 0xb646e, 0xbff3f, 0x68bec2, 0xf, - ], - R2modp: [ - 0x5f42c2, 0x596e88, 0x2ed8fa, 0x15c970, 0x2518b4, 0x2a75e7, 0x62ce53, 0x431c50, 0x3cf507, - 0x620e44, 0xd6fcd, 0x21a7d, 0x1fda3f, 0x6a099, 0x53487, 0x53eebf, 0x54e2d0, 0x48437d, - 0x2233d8, 0x63296f, 0x21ee21, 0x611417, 0x619d35, 0x13a61a, 0xb, - ], - MConst: 0x5a805d, - SQRTm3: [ - 0x9c48, 0x6dd9b9, 0x4445d6, 0x401e84, 0x5f13b, 0x5b1ce6, 0x3c70c7, 0x798d07, 0x7e0544, - 0x62ca1b, 0x75113, 0x557bb6, 0x3a11f4, 0x1426f2, 0x27ef0c, 0x1763b3, 0x7ee9f8, 0x3cf4db, - 0x4cdb7e, 0x6bf8c, 0x263a76, 0x3d63a0, 0x5bbf38, 0x68bec1, 0xf, - ], - CRu: [ - 0x3ba429, 0x1cfcd9, 0x1600d9, 0x49a7ba, 0x4e30a2, 0x101275, 0xf1a0c, 0x6d146e, 0x42b839, - 0x118594, 0x4ef0b4, 0x55cdb, 0x67127b, 0x3d8d31, 0x319233, 0x2571c, 0x1aeeff, 0x72bc73, - 0x91318, 0x1911e0, 0x279f78, 0x646407, 0x73df3b, 0x68bec1, 0xf, - ], - Fra: [ - 0x25bf89, 0x79fb26, 0x56f988, 0x399a14, 0x507ea3, 0x77995, 0x3ee83a, 0x52eca9, 0x3e3474, - 0x5f1e13, 0x2e7cb0, 0x255f3d, 0x3ae7f8, 0x2e4ef6, 0x3bde94, 0x7b05a, 0x13c83c, 0x7bf664, - 0x1ff27f, 0x6fe082, 0x3b36ce, 0x138113, 0x6e2002, 0x4c5c03, 0x2, - ], - Frb: [ - 0x25bf89, 0x79fb26, 0x56f988, 0x399a14, 0x507ea3, 0x77995, 0x3ee83a, 0x52eca9, 0x3e3474, - 0x5f1e13, 0x2e7cb0, 0x255f3d, 0x3ae7f8, 0x2e4ef6, 0x3bde94, 0x7b05a, 0x13c83c, 0x7bf664, - 0x1ff27f, 0x6fe082, 0x3b36ce, 0x138113, 0x6e2002, 0x4c5c03, 0x2, - ], - TWK: [ - 0x6f9937, 0x4f5442, 0x12b489, 0x31b13f, 0xbd341, 0x4006d0, 0x7a84d9, 0x4dd830, 0x6d4c49, - 0x59d972, 0x1a71ca, 0x687e1, 0x40c8dc, 0x206554, 0x5de9a7, 0x2817c7, 0x6556ed, 0x27c11a, - 0x3ec6ef, 0x764e01, 0x6dd577, 0x7cffdd, 0x246857, 0x1907ce, 0x4, - ], - }; - - return ROM_FIELD_BLS48556; -}; - -ROM_FIELD_BLS48286 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BLS48286 = { - // BLS48286 Modulus - // Base Bits= 23 - - Modulus: [ - 0x1c345b, 0x57241, 0x3679d4, 0x1471a9, 0x641c45, 0x1355e, 0x6b012, 0x36463f, 0x145a8, - 0x604039, 0x31ef5e, 0x16298f, 0x297, - ], - R2modp: [ - 0x116bcb, 0x4a9ce9, 0xd861f, 0x5ca282, 0x66469, 0x30c42d, 0x299fc6, 0x442c07, 0x1735e0, - 0x516724, 0x325ec8, 0x294de1, 0x35, - ], - ROI: [ - 0x1c345a, 0x57241, 0x3679d4, 0x1471a9, 0x641c45, 0x1355e, 0x6b012, 0x36463f, 0x145a8, - 0x604039, 0x31ef5e, 0x16298f, 0x297, - ], - SQRTm3: [ - 0x524a9c, 0x48e5cc, 0x66335e, 0xe9944, 0x35b814, 0x1d666a, 0x269c21, 0x4bac4c, 0x2987b9, - 0x614644, 0x63d761, 0xe12a3, 0x297, - ], - CRu: [ - 0x773f7b, 0x272c06, 0xe5699, 0x518577, 0x4cea2c, 0x4f4de4, 0x56a619, 0xf945, 0x5566b1, - 0x20c33e, 0x4ae360, 0x121e19, 0x297, - ], - MConst: 0x6a242d, - Fra: [ - 0x490183, 0x52be7f, 0x4dbaa1, 0xde9f4, 0x556bed, 0x6134f8, 0x3c09a3, 0x1ec81f, 0x2fe004, - 0x1d15d8, 0x48b045, 0x20bf62, 0xd9, - ], - Frb: [ - 0x5332d8, 0x32b3c1, 0x68bf32, 0x687b4, 0xeb058, 0x200066, 0x4aa66e, 0x177e1f, 0x5165a4, - 0x432a60, 0x693f19, 0x756a2c, 0x1bd, - ], - TWK: [ - 0x505dcc, 0x2e6b87, 0x2e69f6, 0x2a1538, 0x197054, 0x458d43, 0x4532ea, 0x7de65e, 0x367221, - 0x233e6e, 0x1228cd, 0x76f7a, 0x1d2, - ], - }; - - return ROM_FIELD_BLS48286; -}; - -ROM_FIELD_BN462 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BN462 = { - // Base Bits= 23 - Modulus: [ - 0x138013, 0x601080, 0x9006, 0x0, 0x7f6400, 0xdfed0, 0x3fd9bf, 0x7ffffb, 0xfffff, 0x39004, - 0x4a423d, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, 0x202401, - 0x2, - ], - ROI: [ - 0x138012, 0x601080, 0x9006, 0x0, 0x7f6400, 0xdfed0, 0x3fd9bf, 0x7ffffb, 0xfffff, 0x39004, - 0x4a423d, 0x6c0, 0x0, 0x37f940, 0x3dadf6, 0x7b7f86, 0x7fffff, 0x47fff, 0x580480, 0x202401, - 0x2, - ], - R2modp: [ - 0x8b8d, 0x7265c, 0x56003a, 0xe1112, 0x275149, 0x50bff0, 0x1e3e2e, 0x2dedf3, 0x43d666, - 0x644751, 0x2a7239, 0x1dca94, 0x5f2ff8, 0x41cff0, 0x41494f, 0x34b04a, 0x47932f, 0x5e4bbc, - 0x50bc6, 0x30f0fb, 0x1, - ], - MConst: 0x1bb5e5, - SQRTm3: [ - 0x210022, 0x1980, 0x9009, 0x0, 0x7ef800, 0x60fe25, 0x3fd2fe, 0x7ffffb, 0x2fffff, 0x4f806, - 0x5102bb, 0x6c0, 0x0, 0x5ff700, 0x7d77f4, 0x7b7f81, 0x7fffff, 0x47fff, 0x580480, 0x202401, - 0x2, - ], - CRu: [ - 0x1a401a, 0x701500, 0x9007, 0x0, 0x3f2e00, 0x777e7b, 0x3fd65e, 0x7ffffb, 0x1fffff, 0x44405, - 0x4da27c, 0x6c0, 0x0, 0x4bf820, 0x1d92f5, 0x7b7f84, 0x7fffff, 0x47fff, 0x580480, 0x202401, - 0x2, - ], - Fra: [ - 0x575d1a, 0x7c7fe4, 0x6f7b92, 0x44b2ce, 0xfc7d, 0x27f423, 0x517476, 0x3c6c86, 0x3310cc, - 0xac42e, 0x3551f0, 0x3c9282, 0x7e11c, 0x207535, 0x2164bb, 0x8b938, 0x35a8cc, 0x179fb, - 0x5232ed, 0xb7fa1, 0x0, - ], - Frb: [ - 0x5ff85b, 0x15c12a, 0x2d8881, 0x432bdf, 0x90238, 0x2c6144, 0x653d2f, 0x786807, 0x27a84f, - 0x362943, 0x2c76eb, 0x6c72, 0x685f7b, 0x794003, 0x6c9d24, 0x5b4192, 0x2008e6, 0x21d510, - 0x2503a, 0x1e1bfc, 0x2, - ], - }; - - return ROM_FIELD_BN462; -}; - -ROM_FIELD_BLS12381 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BLS12381 = { - // BLS12381 Modulus - // Base Bits= 23 - - Modulus: [ - 0x7faaab, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - ROI: [ - 0x7faaaa, 0x7fffff, 0x7ee7fb, 0xa9fff, 0x3fffeb, 0x4483d5, 0x3dac3d, 0x186950, 0x12bf67, - 0x9e70a, 0x11dd2e, 0x5d66bb, 0x7b6434, 0x496374, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - R2modp: [ - 0x40c6e6, 0xe1a28, 0x3d1c6c, 0x6d2448, 0x1bb111, 0x4eafa8, 0x229c8c, 0x4cee55, 0x46d2ad, - 0x7ba87c, 0x708835, 0x2413d1, 0x6702e3, 0x390116, 0xd9e3f, 0x4bd65c, 0x9a3, - ], - MConst: 0x7cfffd, - SQRTm3: [ - 0x1aaae, 0x0, 0x6d77ec, 0x69ffff, 0x44fd7e, 0x224c4f, 0x4a2ff2, 0x64c014, 0x22e9ab, 0x6c3ecc, - 0x3e8efd, 0x70819f, 0x156845, 0x319d1b, 0x5ff9a6, 0x8f51c, 0x1a01, - ], - CRu: [ - 0x7efffe, 0x7fffff, 0x8b807, 0x105000, 0x7d8136, 0x511bc2, 0x79be25, 0x59d49d, 0x77eadd, - 0xed41e, 0x69a718, 0x36728d, 0x72fdf7, 0xbe32c, 0x0, 0x0, 0x0, - ], - Fra: [ - 0x235fb8, 0x6bdb24, 0x76341d, 0x1f3c09, 0x6a53d6, 0x389ecf, 0x612eae, 0x1221eb, 0x5f4f7b, - 0x7a797a, 0x3f580f, 0x6068f8, 0x6b4202, 0x784637, 0x2ec199, 0x69df81, 0x1904, - ], - Frb: [ - 0x5c4af3, 0x1424db, 0x8b3de, 0x6b63f6, 0x55ac14, 0xbe505, 0x5c7d8f, 0x64764, 0x336fec, - 0xf6d8f, 0x52851e, 0x7cfdc2, 0x102231, 0x511d3d, 0x31380c, 0x1f159b, 0xfc, - ], - }; - - return ROM_FIELD_BLS12381; -}; - -ROM_FIELD_BLS12461 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BLS12461 = { - // BLS12461 Modulus - // Base Bits= 23 - Modulus: [ - 0x2aaaab, 0x155, 0x2aaab0, 0x2aaa55, 0x55, 0x80004, 0x555fc0, 0x135548, 0x1cc00f, 0x3ff4b8, - 0x2d0aa3, 0x58a424, 0x2cca47, 0x465b17, 0x6f5bc7, 0xa49af, 0x55d694, 0x34aab4, 0x155535, - 0x2aaaaa, 0x1, - ], - ROI: [ - 0x2aaaaa, 0x155, 0x2aaab0, 0x2aaa55, 0x55, 0x80004, 0x555fc0, 0x135548, 0x1cc00f, 0x3ff4b8, - 0x2d0aa3, 0x58a424, 0x2cca47, 0x465b17, 0x6f5bc7, 0xa49af, 0x55d694, 0x34aab4, 0x155535, - 0x2aaaaa, 0x1, - ], - R2modp: [ - 0x621498, 0x3b585f, 0x41688, 0x6f780d, 0x17c239, 0x158d8a, 0x491a92, 0x737df1, 0x22a06, - 0x460263, 0x275ff2, 0x5496c3, 0x6d4ad2, 0x3a7b46, 0x3a6323, 0x1723b1, 0x76204b, 0x66fd26, - 0x4e743e, 0x1be66e, 0x0, - ], - MConst: 0x7ffffd, - SQRTm3: [ - 0x2aaaae, 0x7ff955, 0x2aaa8f, 0x2aac55, 0x355, 0x440028, 0x54fd80, 0x4d50d6, 0x415095, - 0x7b9ed2, 0x4566e7, 0x514ff0, 0x2ead34, 0x325192, 0x3f33c7, 0xb89b0, 0x51d694, 0x34aab4, - 0x155535, 0x2aaaaa, 0x1, - ], - CRu: [ - 0x7ffffe, 0x3ff, 0x10, 0x7fff00, 0x7ffe7f, 0x61ffed, 0x311f, 0x630239, 0x6db7bc, 0x622af2, - 0x73d1dd, 0x43aa19, 0x3f0e89, 0xa04c2, 0x581400, 0x7f5fff, 0x1ffff, 0x0, 0x0, 0x0, 0x0, - ], - Fra: [ - 0x12a3a, 0x2f7f37, 0x3dc4, 0x52cce2, 0x1c6308, 0xb7f14, 0x4381d4, 0x52d328, 0x58d45f, - 0x359c90, 0x1dc2cc, 0x616582, 0x7c61eb, 0x6b11c5, 0x64341c, 0x421b30, 0x4dfefa, 0x3cabc4, - 0x12dfda, 0x172028, 0x1, - ], - Frb: [ - 0x298071, 0x50821e, 0x2a6ceb, 0x57dd73, 0x639d4c, 0x7c80ef, 0x11ddeb, 0x408220, 0x43ebaf, - 0xa5827, 0xf47d7, 0x773ea2, 0x30685b, 0x5b4951, 0xb27aa, 0x482e7f, 0x7d799, 0x77fef0, 0x2755a, - 0x138a82, 0x0, - ], - }; - - return ROM_FIELD_BLS12461; -}; - -ROM_FIELD_FP256BN = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_FP256BN = { - // FP256BN Modulus - // Base Bits= 24 - Modulus: [ - 0xd33013, 0x2ddbae, 0x82d329, 0x12980a, 0xdc65fb, 0xa49f0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - ROI: [ - 0xd33012, 0x2ddbae, 0x82d329, 0x12980a, 0xdc65fb, 0xa49f0c, 0x5eee71, 0x46e5f2, 0xfcf0cd, - 0xffffff, 0xffff, - ], - R2modp: [ - 0x2f4801, 0xf779d1, 0x3e7f6e, 0xb42a3a, 0xc919c9, 0xc26c08, 0x1bb715, 0xca2ed6, 0x54293e, - 0xe578e, 0x78ea, - ], - MConst: 0x37e5e5, - SQRTm3: [ - 0x8fc004, 0x199267, 0x451cf1, 0x2f71b0, 0x40b6bf, 0x73d3d5, 0xddca51, 0xd3d42f, 0xfcf0ca, - 0xffffff, 0xffff, - ], - CRu: [ - 0xa1b807, 0xa24a3, 0x1edb1c, 0xf1932d, 0xcdd79d, 0x18659b, 0x409210, 0x3988e1, 0x1, 0x0, 0x0, - ], - Fra: [ - 0x943106, 0x328af, 0x8f7476, 0x1e3ab2, 0xa17151, 0x67cf39, 0x8ddb08, 0x2d1a6e, 0x786f35, - 0x7662ca, 0x3d61, - ], - Frb: [ - 0x3eff0d, 0x2ab2ff, 0xf35eb3, 0xf45d57, 0x3af4a9, 0x3ccfd3, 0xd11369, 0x19cb83, 0x848198, - 0x899d35, 0xc29e, - ], - }; - - return ROM_FIELD_FP256BN; -}; - -ROM_FIELD_FP512BN = function () { - 'use strict'; - - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_FP512BN = { - // FP512BN Modulus - // Base Bits= 23 - Modulus: [ - 0x2def33, 0x501245, 0x1ed3ac, 0x7a6323, 0x255ce5, 0x7c322d, 0x2ac8db, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a2a, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - ROI: [ - 0x2def32, 0x501245, 0x1ed3ac, 0x7a6323, 0x255ce5, 0x7c322d, 0x2ac8db, 0x4632ef, 0x18b8e4, - 0x3d597d, 0x451b3c, 0x77a2a, 0x3c111b, 0x78177c, 0x32d4c1, 0x5d0ec, 0x7f01c6, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - R2modp: [ - 0x23e65d, 0x575a37, 0x411cd0, 0x295fb3, 0x640669, 0x375c69, 0x92395, 0x738492, 0x780d6d, - 0x1bcd9d, 0x417caa, 0x2dc6fb, 0x7eacfb, 0x327043, 0x7f2fc7, 0xf268c, 0x73d733, 0x2147c9, - 0x2accd3, 0x32eaf8, 0x3b2c1e, 0xd46a2, 0x30, - ], - MConst: 0x4c5c05, - // SQRTm3: [0x332330,0x505BC6,0x1C3175,0x1D56FC,0x52DE91,0x5E48D,0x345737,0x415677,0x83CB6,0x651720,0x753DC3,0xA8065,0x35CDD1,0x6B9137,0x2960D9,0x24905A,0x7C8EB4,0x7FF3D8,0x7FFFFF,0x7FFFFF,0x7FFFFF,0x7FFFFF,0x3F], - SQRTm3: [ - 0x4463e2, 0x8702c, 0x6b848c, 0x3e4e58, 0x37724d, 0x287986, 0x346054, 0x415677, 0x83cb6, - 0x651720, 0x753dc3, 0xa8005, 0x35cdd1, 0x6b9137, 0x2960d9, 0x24905a, 0x7c8eb4, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - CRu: [ - 0x79298a, 0x2c4138, 0x52c1c, 0x5c58be, 0x6e6799, 0x1255d9, 0x2f9498, 0x43c4b3, 0x507acd, - 0x11384e, 0x1d2c80, 0x8fd18, 0x78ef76, 0x71d459, 0x2e1acd, 0x1530a3, 0x7dc83d, 0x7ff3d8, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3f, - ], - Fra: [ - 0x373ab2, 0x2f63e9, 0x47d258, 0x101576, 0x1514f6, 0x503c2e, 0x34ef61, 0x4fb040, 0x2cbbb5, - 0x553d0a, 0x63a7e2, 0x10341c, 0x48cf2e, 0x3564d7, 0x25bde4, 0x50c529, 0x468b4e, 0x2d518f, - 0x6de46, 0x7c84ad, 0x1cf5bb, 0x5ee355, 0x7, - ], - Frb: [ - 0x76b481, 0x20ae5b, 0x570154, 0x6a4dac, 0x1047ef, 0x2bf5ff, 0x75d97a, 0x7682ae, 0x6bfd2e, - 0x681c72, 0x617359, 0x77460d, 0x7341ec, 0x42b2a4, 0xd16dd, 0x350bc3, 0x387677, 0x52a249, - 0x7921b9, 0x37b52, 0x630a44, 0x211caa, 0x38, - ], - }; - - return ROM_FIELD_FP512BN; -}; - -ROM_FIELD_BN254 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BN254 = { - // BN254 Modulus - // Base Bits= 24 - Modulus: [0x13, 0x0, 0x13a700, 0x0, 0x210000, 0x861, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - ROI: [0x12, 0x0, 0x13a700, 0x0, 0x210000, 0x861, 0x800000, 0xba344d, 0x1, 0x648240, 0x2523], - R2modp: [ - 0x2f2aa7, 0x537047, 0xf8f174, 0xc3e364, 0xab8c1c, 0x3c2035, 0x69549, 0x379287, 0x3be629, - 0x75617a, 0x1f47, - ], - MConst: 0x9435e5, - SQRTm3: [0x4, 0x0, 0x60c00, 0x0, 0xf0000, 0x3cf, 0x0, 0x26cd89, 0x1, 0x648240, 0x2523], - CRu: [0x7, 0x0, 0x6cd80, 0x0, 0x90000, 0x249, 0x400000, 0x49b362, 0x0, 0x0, 0x0], - Fra: [ - 0x2a6de9, 0xe6c06f, 0xc2e17d, 0x4d3f77, 0x97492, 0x953f85, 0x50a846, 0xb6499b, 0x2e7c8c, - 0x761921, 0x1b37, - ], - Frb: [ - 0xd5922a, 0x193f90, 0x50c582, 0xb2c088, 0x178b6d, 0x6ac8dc, 0x2f57b9, 0x3eab2, 0xd18375, - 0xee691e, 0x9eb, - ], - }; - - return ROM_FIELD_BN254; -}; - -ROM_FIELD_BN254CX = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BN254CX = { - // BN254CX Modulus - // Base Bits= 24 - Modulus: [ - 0x1b55b3, 0x23ef5c, 0xe1be66, 0x18093e, 0x3fd6ee, 0x66d324, 0x647a63, 0xb0bddf, 0x702a0d, 0x8, - 0x2400, - ], - ROI: [ - 0x1b55b2, 0x23ef5c, 0xe1be66, 0x18093e, 0x3fd6ee, 0x66d324, 0x647a63, 0xb0bddf, 0x702a0d, 0x8, - 0x2400, - ], - R2modp: [ - 0x8ee63d, 0x721fde, 0xcc0891, 0x10c28b, 0xd4f5a, 0x4c18fb, 0x9036fa, 0x3f845f, 0xa507e4, - 0x78eb29, 0x1587, - ], - MConst: 0x789e85, - SQRTm3: [ - 0xd49c84, 0xfdc033, 0x355aa4, 0x342a30, 0xc41825, 0xe8aaa2, 0x646112, 0x20bddf, 0x702a0d, 0x8, - 0x2400, - ], - CRu: [ - 0x235c97, 0x931794, 0x5631e0, 0x71ef87, 0xbddf64, 0x3f1440, 0xca8, 0x480000, 0x0, 0x0, 0x0, - ], - Fra: [ - 0xc80ea3, 0x83355, 0x215bd9, 0xf173f8, 0x677326, 0x189868, 0x8aaca7, 0xafe18b, 0x3a0164, - 0x82fa6, 0x1359, - ], - Frb: [ - 0x534710, 0x1bbc06, 0xc0628d, 0x269546, 0xd863c7, 0x4e3abb, 0xd9cdbc, 0xdc53, 0x3628a9, - 0xf7d062, 0x10a6, - ], - }; - - return ROM_FIELD_BN254CX; -}; - -ROM_FIELD_BRAINPOOL = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_BRAINPOOL = { - // Brainpool modulus - // Base Bits= 24 - Modulus: [ - 0x6e5377, 0x481d1f, 0x282013, 0xd52620, 0x3bf623, 0x8d726e, 0x909d83, 0x3e660a, 0xeea9bc, - 0x57dba1, 0xa9fb, - ], - ROI: [ - 0x6e5376, 0x481d1f, 0x282013, 0xd52620, 0x3bf623, 0x8d726e, 0x909d83, 0x3e660a, 0xeea9bc, - 0x57dba1, 0xa9fb, - ], - R2modp: [ - 0x35b819, 0xb03428, 0xecaf0f, 0x3854a4, 0x4a0ed5, 0x2421ea, 0xaa562c, 0xf9c45, 0xddae58, - 0x4350fd, 0x52b8, - ], - MConst: 0xfd89b9, - }; - return ROM_FIELD_BRAINPOOL; -}; - -ROM_FIELD_C41417 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_C41417 = { - // C41417 modulus - // Base Bits= 22 - Modulus: [ - 0x3fffef, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, - 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, - 0x3ffff, - ], - ROI: [ - 0x3fffee, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, - 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, 0x3fffff, - 0x3ffff, - ], - R2modp: [ - 0x12100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - ], - MConst: 0x11, - }; - return ROM_FIELD_C41417; -}; - -ROM_FIELD_C1174 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_C1174 = { - // C1174 modulus - // Base Bits= 24 - Modulus: [ - 0xfffff7, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0x7ff, - ], - R2modp: [0x0, 0x144, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ROI: [ - 0xfffff6, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0x7ff, - ], - MConst: 0x9, - }; - return ROM_FIELD_C1174; -}; - -ROM_FIELD_C1665 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - var ROM_FIELD_C1665 = { - // C1665 modulus - // Base Bits= 23 - Modulus: [0x7ffffb, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x1f], - R2modp: [0x0, 0x32000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - ROI: [0x7ffffa, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x1f], - MConst: 0x5, - }; - return ROM_FIELD_C1665; -}; - -ROM_FIELD_MDC = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - var ROM_FIELD_MDC = { - // Million Dollar Curve modulus - // Base Bits= 24 - Modulus: [ - 0x79ec13, 0x104057, 0x9ec137, 0xef07af, 0x6a9037, 0xfd4f08, 0xfdd7a5, 0x532f92, 0x56afb4, - 0x68b9d4, 0xf13b, - ], - R2modp: [ - 0xfff702, 0x31619a, 0xba623e, 0xc672c1, 0xf5883f, 0x39e4ab, 0x4589, 0x972c4a, 0xd61255, - 0x6e22d, 0x7c41, - ], - ROI: [ - 0x79ec12, 0x104057, 0x9ec137, 0xef07af, 0x6a9037, 0xfd4f08, 0xfdd7a5, 0x532f92, 0x56afb4, - 0x68b9d4, 0xf13b, - ], - MConst: 0xe541e5, - }; - return ROM_FIELD_MDC; -}; - -ROM_FIELD_GOLDILOCKS = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_GOLDILOCKS = { - // GOLDILOCKS modulus - // Base Bits= 23 - Modulus: [ - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7dffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7ff, - ], - ROI: [ - 0x7ffffe, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7dffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7ff, - ], - R2modp: [ - 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, - ], - MConst: 0x1, - }; - return ROM_FIELD_GOLDILOCKS; -}; - -ROM_FIELD_HIFIVE = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_HIFIVE = { - // HIFIVE modulus - // Base Bits= 23 - Modulus: [ - 0x7ffffd, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x3fff, - ], - ROI: [ - 0x59d3b8, 0x104fea, 0xdae01, 0x49f563, 0x14538b, 0x2bb499, 0x7f2a2e, 0x30f6d4, 0x18c41f, - 0x2a7bef, 0x62cad1, 0x408fe1, 0x1ef527, 0x787c06, 0x3e4f, - ], - R2modp: [0x240000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - MConst: 0x3, - }; - return ROM_FIELD_HIFIVE; -}; - -ROM_FIELD_NIST256 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_NIST256 = { - // NIST256 Modulus - // Base Bits= 24 - Modulus: [0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x0, 0x0, 0x0, 0x0, 0x1, 0xffff00, 0xffff], - ROI: [0xfffffe, 0xffffff, 0xffffff, 0xffffff, 0x0, 0x0, 0x0, 0x0, 0x1, 0xffff00, 0xffff], - R2modp: [ - 0x30000, 0x0, 0x0, 0xffff00, 0xfbffff, 0xffffff, 0xfffffe, 0xffffff, 0xfdffff, 0xffffff, 0x4, - ], - MConst: 0x1, - }; - return ROM_FIELD_NIST256; -}; - -ROM_FIELD_SM2 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_SM2 = { - // SM2 Modulus - // Base Bits= 24 - Modulus: [ - 0xffffff, 0xffffff, 0xffff, 0x0, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xfffeff, - 0xffff, - ], - ROI: [ - 0xfffffe, 0xffffff, 0xffff, 0x0, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xfffeff, - 0xffff, - ], - R2modp: [0x30000, 0x0, 0x2, 0xffff00, 0x2ffff, 0x0, 0x1, 0x100, 0x20000, 0x0, 0x4], - MConst: 0x1, - }; - return ROM_FIELD_SM2; -}; - -ROM_FIELD_NIST384 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_NIST384 = { - // NIST384 modulus - // Base Bits= 23 - Modulus: [ - 0x7fffff, 0x1ff, 0x0, 0x0, 0x7ffff0, 0x7fdfff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - ROI: [ - 0x7ffffe, 0x1ff, 0x0, 0x0, 0x7ffff0, 0x7fdfff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0xffff, - ], - R2modp: [ - 0x4000, 0x0, 0x7ffffe, 0x1ff, 0x80000, 0x0, 0x0, 0x7fc000, 0x3fffff, 0x0, 0x200, 0x20000, 0x0, - 0x0, 0x0, 0x0, 0x0, - ], - MConst: 0x1, - }; - return ROM_FIELD_NIST384; -}; - -ROM_FIELD_NIST521 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_NIST521 = { - // NIST521 modulus - // Base Bits= 23 - Modulus: [ - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fff, - ], - ROI: [ - 0x7ffffe, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, - 0x7fffff, 0x7fffff, 0x7fffff, 0x7fffff, 0x7fff, - ], - R2modp: [ - 0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, - ], - MConst: 0x1, - }; - return ROM_FIELD_NIST521; -}; - -ROM_FIELD_SECP256K1 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_SECP256K1 = { - // SECP256K1 modulus - // Base Bits= 24 - Modulus: [ - 0xfffc2f, 0xfffeff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - ROI: [ - 0xfffc2e, 0xfffeff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffff, - ], - R2modp: [0xa10000, 0xe90, 0x7a2, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], - MConst: 0x253531, - SQRTm3: [ - 0xd5f852, 0x27ae1c, 0xd47d8d, 0xda14ec, 0x1f6d15, 0x962cc6, 0xc2a797, 0x233770, 0x7f1df, - 0x2ba935, 0xa2d, - ], - }; - return ROM_FIELD_SECP256K1; -}; - -ROM_FIELD_SECP160R1 = function () { - 'use strict'; - /* Fixed Data in ROM - Field and Curve parameters */ - - var ROM_FIELD_SECP160R1 = { - // SECP160R1 modulus - // Base Bits= 24 - Modulus: [0xffffff, 0xffff7f, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffff], - R2modp: [0x10000, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0], - ROI: [0xfffffe, 0xffff7f, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffff], - MConst: 0x1, - }; - return ROM_FIELD_SECP160R1; -}; - -ROM_FIELD_JUBJUB = function () { - 'use strict'; - // Fixed Data in ROM - Field and Curve parameters - - var ROM_FIELD_JUBJUB = { - // Base Bits= 24 - Modulus: [ - 0x1, 0xffff00, 0xfeffff, 0xfffe5b, 0xbda402, 0xd80553, 0x809a1, 0x3339d8, 0x9d7d48, 0xa75329, - 0x73ed, - ], - R2modp: [ - 0x6cefea, 0x4089c, 0xafe991, 0x7687f1, 0x3f3f50, 0x45bbe1, 0x94826, 0x101d61, 0xb3be6b, - 0xb9a93, 0x8f8, - ], - ROI: [ - 0x912f1f, 0x8f500b, 0x941b78, 0x70b3e0, 0x24ff2, 0xd6c0c4, 0xc8d168, 0xfd56d, 0x416b6f, - 0xd79e5b, 0x212, - ], - MConst: 0xffffff, - }; - return ROM_FIELD_JUBJUB; -}; - -ROM_FIELD_TWEEDLEDUM = function () { - 'use strict'; - // Fixed Data in ROM - Field and Curve parameters - - var ROM_FIELD_TWEEDLEDUM = { - // Base bits= 24 - Modulus: [0x1, 0x64e200, 0xb9a140, 0x6c3f59, 0x8aa127, 0x3, 0x0, 0x0, 0x0, 0x0, 0x4000], - R2modp: [ - 0xffcde, 0xf3fc00, 0x817083, 0x90fd10, 0x4e767f, 0x919928, 0x94c659, 0x28e190, 0xedd7b, - 0x7ccca, 0x2d91, - ], - ROI: [ - 0x8837ce, 0x9f31b8, 0xd653de, 0xf3ea99, 0x46e8f3, 0x2d57ff, 0xeaaf8c, 0xf624f2, 0xee2fc, - 0x511789, 0x2ae4, - ], - SQRTm3: [ - 0xde6c70, 0xd7ab7, 0x6c960f, 0x34f725, 0x86aae0, 0x84cb12, 0xd7220f, 0xc8286d, 0x2d06d6, - 0x7d4a94, 0x15ef, - ], - MConst: 0xffffff, - }; - return ROM_FIELD_TWEEDLEDUM; -}; - -ROM_FIELD_TWEEDLEDEE = function () { - 'use strict'; - // Fixed Data in ROM - Field and Curve parameters - - var ROM_FIELD_TWEEDLEDEE = { - // Base bits= 24 - Modulus: [0x1, 0xafd400, 0xc9842c, 0x696286, 0x8aa127, 0x3, 0x0, 0x0, 0x0, 0x0, 0x4000], - R2modp: [ - 0xffcde, 0x29d800, 0x45e681, 0x2b8642, 0x18e911, 0x7e0b8d, 0x3aa0a2, 0xe6fcb0, 0x13f4c0, - 0x68860, 0x2d91, - ], - ROI: [ - 0x9d57ec, 0x323486, 0xbf1cbd, 0xb8084f, 0x287dd1, 0x72930a, 0x645a98, 0xf1dbcb, 0xc03c0b, - 0xfc510d, 0x113e, - ], - SQRTm3: [ - 0x1f49fa, 0xd5a629, 0xb902fc, 0xd867d6, 0x147aa6, 0x3ffcd0, 0xbff2e6, 0xf5b16, 0x934b1, - 0xda743c, 0x2d8c, - ], - MConst: 0xffffff, - }; - return ROM_FIELD_TWEEDLEDEE; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - ROM_FIELD_25519: ROM_FIELD_25519, - ROM_FIELD_256PM: ROM_FIELD_256PM, - ROM_FIELD_384PM: ROM_FIELD_384PM, - ROM_FIELD_512PM: ROM_FIELD_512PM, - ROM_FIELD_ANSSI: ROM_FIELD_ANSSI, - ROM_FIELD_FP256BN: ROM_FIELD_FP256BN, - ROM_FIELD_FP512BN: ROM_FIELD_FP512BN, - ROM_FIELD_BN254: ROM_FIELD_BN254, - ROM_FIELD_BN254CX: ROM_FIELD_BN254CX, - ROM_FIELD_BRAINPOOL: ROM_FIELD_BRAINPOOL, - ROM_FIELD_C41417: ROM_FIELD_C41417, - ROM_FIELD_GOLDILOCKS: ROM_FIELD_GOLDILOCKS, - ROM_FIELD_HIFIVE: ROM_FIELD_HIFIVE, - ROM_FIELD_NIST256: ROM_FIELD_NIST256, - ROM_FIELD_NIST384: ROM_FIELD_NIST384, - ROM_FIELD_NIST521: ROM_FIELD_NIST521, - ROM_FIELD_SECP256K1: ROM_FIELD_SECP256K1, - ROM_FIELD_BLS12383: ROM_FIELD_BLS12383, - ROM_FIELD_BLS24479: ROM_FIELD_BLS24479, - ROM_FIELD_BLS48556: ROM_FIELD_BLS48556, - ROM_FIELD_BLS48286: ROM_FIELD_BLS48286, - ROM_FIELD_BLS48581: ROM_FIELD_BLS48581, - ROM_FIELD_BLS12381: ROM_FIELD_BLS12381, - ROM_FIELD_BLS12461: ROM_FIELD_BLS12461, - ROM_FIELD_BN462: ROM_FIELD_BN462, - ROM_FIELD_C1174: ROM_FIELD_C1174, - ROM_FIELD_C1665: ROM_FIELD_C1665, - ROM_FIELD_MDC: ROM_FIELD_MDC, - ROM_FIELD_SECP160R1: ROM_FIELD_SECP160R1, - ROM_FIELD_SM2: ROM_FIELD_SM2, - ROM_FIELD_JUBJUB: ROM_FIELD_JUBJUB, - ROM_FIELD_TWEEDLEDUM: ROM_FIELD_TWEEDLEDUM, - ROM_FIELD_TWEEDLEDEE: ROM_FIELD_TWEEDLEDEE, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/rsa.js b/packages/bls-verify/src/vendor/amcl-js/src/rsa.js deleted file mode 100644 index 9134e6b75..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/rsa.js +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* RSA API Functions */ -var RSA, rsa_private_key, rsa_public_key; - -RSA = function (ctx) { - 'use strict'; - - var RSA = { - RFS: ctx.BIG.MODBYTES * ctx.FF.FFLEN, - HASH_TYPE: 32, - - bytestohex: function (b) { - var s = '', - len = b.length, - ch, - i; - - for (i = 0; i < len; i++) { - ch = b[i]; - s += ((ch >>> 4) & 15).toString(16); - s += (ch & 15).toString(16); - } - return s; - }, - - bytestostring: function (b) { - var s = '', - i; - - for (i = 0; i < b.length; i++) { - s += String.fromCharCode(b[i]); - } - - return s; - }, - - stringtobytes: function (s) { - var b = [], - i; - - for (i = 0; i < s.length; i++) { - b.push(s.charCodeAt(i)); - } - - return b; - }, - - KEY_PAIR: function (rng, e, PRIV, PUB) { - /* IEEE1363 A16.11/A16.12 more or less */ - var n = PUB.n.length >> 1, - t = new ctx.FF(n), - p1 = new ctx.FF(n), - q1 = new ctx.FF(n); - - for (;;) { - PRIV.p.random(rng); - - while (PRIV.p.lastbits(2) != 3) { - PRIV.p.inc(1); - } - - while (!ctx.FF.prime(PRIV.p, rng)) { - PRIV.p.inc(4); - } - - p1.copy(PRIV.p); - p1.dec(1); - - if (p1.cfactor(e)) { - continue; - } - - break; - } - - for (;;) { - PRIV.q.random(rng); - - while (PRIV.q.lastbits(2) != 3) { - PRIV.q.inc(1); - } - - while (!ctx.FF.prime(PRIV.q, rng)) { - PRIV.q.inc(4); - } - - q1.copy(PRIV.q); - q1.dec(1); - - if (q1.cfactor(e)) { - continue; - } - - break; - } - - PUB.n = ctx.FF.mul(PRIV.p, PRIV.q); - PUB.e = e; - - t.copy(p1); - t.shr(); - PRIV.dp.set(e); - PRIV.dp.invmodp(t); - if (PRIV.dp.parity() === 0) { - PRIV.dp.add(t); - } - PRIV.dp.norm(); - - t.copy(q1); - t.shr(); - PRIV.dq.set(e); - PRIV.dq.invmodp(t); - if (PRIV.dq.parity() === 0) { - PRIV.dq.add(t); - } - PRIV.dq.norm(); - - PRIV.c.copy(PRIV.p); - PRIV.c.invmodp(PRIV.q); - - return; - }, - - /* destroy the Private Key structure */ - PRIVATE_KEY_KILL: function (PRIV) { - PRIV.p.zero(); - PRIV.q.zero(); - PRIV.dp.zero(); - PRIV.dq.zero(); - PRIV.c.zero(); - }, - - /* RSA encryption with the public key */ - ENCRYPT: function (PUB, F, G) { - var n = PUB.n.getlen(), - f = new ctx.FF(n); - - ctx.FF.fromBytes(f, F); - - f.power(PUB.e, PUB.n); - - f.toBytes(G); - }, - - /* RSA decryption with the private key */ - DECRYPT: function (PRIV, G, F) { - var n = PRIV.p.getlen(), - g = new ctx.FF(2 * n), - jp, - jq, - t; - - ctx.FF.fromBytes(g, G); - - jp = g.dmod(PRIV.p); - jq = g.dmod(PRIV.q); - - jp.skpow(PRIV.dp, PRIV.p); - jq.skpow(PRIV.dq, PRIV.q); - - g.zero(); - g.dscopy(jp); - jp.mod(PRIV.q); - if (ctx.FF.comp(jp, jq) > 0) { - jq.add(PRIV.q); - } - jq.sub(jp); - jq.norm(); - - t = ctx.FF.mul(PRIV.c, jq); - jq = t.dmod(PRIV.q); - - t = ctx.FF.mul(jq, PRIV.p); - g.add(t); - g.norm(); - - g.toBytes(F); - }, - }; - - return RSA; -}; - -rsa_private_key = function (ctx) { - 'use strict'; - - var rsa_private_key = function (n) { - this.p = new ctx.FF(n); - this.q = new ctx.FF(n); - this.dp = new ctx.FF(n); - this.dq = new ctx.FF(n); - this.c = new ctx.FF(n); - }; - - rsa_private_key.prototype = { - set: function (p, q, dp, dq, c) { - this.p = p; - this.q = q; - this.dp = dp; - this.dq = dq; - this.c = c; - }, - - set_p: function (p) { - this.p = p; - }, - - set_q: function (q) { - this.q = q; - }, - - set_dp: function (dp) { - this.dp = dp; - }, - - set_dq: function (dq) { - this.dq = dq; - }, - - set_c: function (c) { - this.c = c; - }, - }; - - rsa_private_key.get_instance = function (p, q, dp, dq, c) { - let priv = new rsa_private_key(ctx.FF.HFLEN); - priv.set(p, q, dp, dq, c); - return priv; - }; - - return rsa_private_key; -}; - -rsa_public_key = function (ctx) { - 'use strict'; - - var rsa_public_key = function (m) { - this.e = 0; - this.n = new ctx.FF(m); - }; - - rsa_public_key.prototype = { - set: function (n, e) { - this.e = e; - ctx.FF.fromBytes(this.n, n); - }, - - set_e: function (e) { - this.e = e; - }, - - set_n: function (n) { - ctx.FF.fromBytes(this.n, n); - }, - }; - - rsa_public_key.get_instance = function (n, e) { - var pub = new rsa_public_key(ctx.FF.FFLEN); - pub.set(n, e); - return pub; - }; - - return rsa_public_key; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - RSA: RSA, - rsa_private_key: rsa_private_key, - rsa_public_key: rsa_public_key, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/sha3.js b/packages/bls-verify/src/vendor/amcl-js/src/sha3.js deleted file mode 100644 index 8d3fc1bfd..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/sha3.js +++ /dev/null @@ -1,392 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Implementation of the Secure Hashing Algorithm SHA-3 - - * Generates a message digest. It should be impossible to come - * come up with two messages that hash to the same value ("collision free"). - * - * For use with byte-oriented messages only. - */ - -var SHA3 = function (ctx) { - 'use strict'; - - var SHA3 = function (olen) { - this.length = 0; - this.rate = 0; - this.len = 0; - this.S = []; - this.init(olen); - }; - - SHA3.prototype = { - transform: function () { - var C = [], - D = [], - B = [], - i, - j, - k; - - for (k = 0; k < SHA3.ROUNDS; k++) { - C[0] = new ctx.UInt64( - this.S[0][0].top ^ - this.S[0][1].top ^ - this.S[0][2].top ^ - this.S[0][3].top ^ - this.S[0][4].top, - this.S[0][0].bot ^ - this.S[0][1].bot ^ - this.S[0][2].bot ^ - this.S[0][3].bot ^ - this.S[0][4].bot, - ); - C[1] = new ctx.UInt64( - this.S[1][0].top ^ - this.S[1][1].top ^ - this.S[1][2].top ^ - this.S[1][3].top ^ - this.S[1][4].top, - this.S[1][0].bot ^ - this.S[1][1].bot ^ - this.S[1][2].bot ^ - this.S[1][3].bot ^ - this.S[1][4].bot, - ); - C[2] = new ctx.UInt64( - this.S[2][0].top ^ - this.S[2][1].top ^ - this.S[2][2].top ^ - this.S[2][3].top ^ - this.S[2][4].top, - this.S[2][0].bot ^ - this.S[2][1].bot ^ - this.S[2][2].bot ^ - this.S[2][3].bot ^ - this.S[2][4].bot, - ); - C[3] = new ctx.UInt64( - this.S[3][0].top ^ - this.S[3][1].top ^ - this.S[3][2].top ^ - this.S[3][3].top ^ - this.S[3][4].top, - this.S[3][0].bot ^ - this.S[3][1].bot ^ - this.S[3][2].bot ^ - this.S[3][3].bot ^ - this.S[3][4].bot, - ); - C[4] = new ctx.UInt64( - this.S[4][0].top ^ - this.S[4][1].top ^ - this.S[4][2].top ^ - this.S[4][3].top ^ - this.S[4][4].top, - this.S[4][0].bot ^ - this.S[4][1].bot ^ - this.S[4][2].bot ^ - this.S[4][3].bot ^ - this.S[4][4].bot, - ); - - D[0] = SHA3.xor(C[4], SHA3.rotl(C[1], 1)); - D[1] = SHA3.xor(C[0], SHA3.rotl(C[2], 1)); - D[2] = SHA3.xor(C[1], SHA3.rotl(C[3], 1)); - D[3] = SHA3.xor(C[2], SHA3.rotl(C[4], 1)); - D[4] = SHA3.xor(C[3], SHA3.rotl(C[0], 1)); - - for (i = 0; i < 5; i++) { - B[i] = []; - for (j = 0; j < 5; j++) { - B[i][j] = new ctx.UInt64(0, 0); - this.S[i][j] = SHA3.xor(this.S[i][j], D[i]); - } - } - - B[0][0] = this.S[0][0].copy(); - B[1][3] = SHA3.rotl(this.S[0][1], 36); - B[2][1] = SHA3.rotl(this.S[0][2], 3); - B[3][4] = SHA3.rotl(this.S[0][3], 41); - B[4][2] = SHA3.rotl(this.S[0][4], 18); - - B[0][2] = SHA3.rotl(this.S[1][0], 1); - B[1][0] = SHA3.rotl(this.S[1][1], 44); - B[2][3] = SHA3.rotl(this.S[1][2], 10); - B[3][1] = SHA3.rotl(this.S[1][3], 45); - B[4][4] = SHA3.rotl(this.S[1][4], 2); - - B[0][4] = SHA3.rotl(this.S[2][0], 62); - B[1][2] = SHA3.rotl(this.S[2][1], 6); - B[2][0] = SHA3.rotl(this.S[2][2], 43); - B[3][3] = SHA3.rotl(this.S[2][3], 15); - B[4][1] = SHA3.rotl(this.S[2][4], 61); - - B[0][1] = SHA3.rotl(this.S[3][0], 28); - B[1][4] = SHA3.rotl(this.S[3][1], 55); - B[2][2] = SHA3.rotl(this.S[3][2], 25); - B[3][0] = SHA3.rotl(this.S[3][3], 21); - B[4][3] = SHA3.rotl(this.S[3][4], 56); - - B[0][3] = SHA3.rotl(this.S[4][0], 27); - B[1][1] = SHA3.rotl(this.S[4][1], 20); - B[2][4] = SHA3.rotl(this.S[4][2], 39); - B[3][2] = SHA3.rotl(this.S[4][3], 8); - B[4][0] = SHA3.rotl(this.S[4][4], 14); - - for (i = 0; i < 5; i++) { - for (j = 0; j < 5; j++) { - this.S[i][j] = SHA3.xor( - B[i][j], - SHA3.and(SHA3.not(B[(i + 1) % 5][j]), B[(i + 2) % 5][j]), - ); - } - } - - this.S[0][0] = SHA3.xor(this.S[0][0], SHA3.RC[k]); - } - }, - - copy: function (b) { - var i, j; - this.length = b.length; - this.len = b.len; - this.rate = b.rate; - for (i = 0; i < 5; i++) for (j = 0; j < 5; j++) this.S[i][j] = b.S[i][j].copy(); - }, - - /* Initialise Hash function */ - init: function (olen) { - /* initialise */ - var i, j; - for (i = 0; i < 5; i++) { - this.S[i] = []; - for (j = 0; j < 5; j++) { - this.S[i][j] = new ctx.UInt64(0, 0); - } - } - this.length = 0; - this.len = olen; - this.rate = 200 - 2 * olen; - }, - - /* process a single byte */ - process: function (byt) { - /* process the next message byte */ - var i, j, k, b, cnt, el; - - cnt = this.length % this.rate; - b = cnt % 8; - cnt >>= 3; - i = cnt % 5; - j = Math.floor(cnt / 5); /* process by columns! */ - - el = new ctx.UInt64(0, byt); - for (k = 0; k < b; k++) { - el.shlb(); - } - this.S[i][j] = SHA3.xor(this.S[i][j], el); - - this.length++; - if (this.length % this.rate == 0) { - this.transform(); - } - }, - - /* process an array of bytes */ - process_array: function (b) { - for (var i = 0; i < b.length; i++) { - this.process(b[i]); - } - }, - - /* process a 32-bit integer */ - process_num: function (n) { - this.process((n >> 24) & 0xff); - this.process((n >> 16) & 0xff); - this.process((n >> 8) & 0xff); - this.process(n & 0xff); - }, - - /* squeeze the sponge */ - squeeze: function (buff, olen) { - var done, - m = 0, - i, - j, - k, - el; - - /* extract by columns */ - done = false; - - for (;;) { - for (j = 0; j < 5; j++) { - for (i = 0; i < 5; i++) { - el = this.S[i][j].copy(); - for (k = 0; k < 8; k++) { - buff[m++] = el.bot & 0xff; - if (m >= olen || m % this.rate == 0) { - done = true; - break; - } - el = SHA3.rotl(el, 56); - } - - if (done) { - break; - } - } - - if (done) { - break; - } - } - - if (m >= olen) { - break; - } - - done = false; - this.transform(); - } - }, - - hash: function () { - /* pad message and finish - supply digest */ - var buff = []; - var q = this.rate - (this.length % this.rate); - if (q == 1) { - this.process(0x86); - } else { - this.process(0x06); /* 0x06 for SHA-3 */ - while (this.length % this.rate != this.rate - 1) { - this.process(0x00); - } - this.process(0x80); /* this will force a final transform */ - } - this.squeeze(buff, this.len); - return buff; - }, - - continuing_hash() { - var sh = new SHA3(); - sh.copy(this); - return sh.hash(); - }, - - shake: function (buff, olen) { - /* pad message and finish - supply digest */ - var q = this.rate - (this.length % this.rate); - if (q == 1) { - this.process(0x9f); - } else { - this.process(0x1f); /* 0x06 for SHA-3 */ - while (this.length % this.rate != this.rate - 1) { - this.process(0x00); - } - this.process(0x80); /* this will force a final transform */ - } - this.squeeze(buff, olen); - }, - - continuing_shake(buff, olen) { - var sh = new SHA3(); - sh.copy(this); - sh.shake(buff, olen); - }, - }; - - /* static functions */ - SHA3.rotl = function (x, n) { - if (n == 0) { - return x; - } - - if (n < 32) { - return new ctx.UInt64( - (x.top << n) | (x.bot >>> (32 - n)), - (x.bot << n) | (x.top >>> (32 - n)), - ); - } else { - return new ctx.UInt64( - (x.bot << (n - 32)) | (x.top >>> (64 - n)), - (x.top << (n - 32)) | (x.bot >>> (64 - n)), - ); - } - }; - - SHA3.xor = function (a, b) { - return new ctx.UInt64(a.top ^ b.top, a.bot ^ b.bot); - }; - - SHA3.and = function (a, b) { - return new ctx.UInt64(a.top & b.top, a.bot & b.bot); - }; - - SHA3.not = function (a) { - return new ctx.UInt64(~a.top, ~a.bot); - }; - - /* constants */ - SHA3.ROUNDS = 24; - SHA3.HASH224 = 28; - SHA3.HASH256 = 32; - SHA3.HASH384 = 48; - SHA3.HASH512 = 64; - SHA3.SHAKE128 = 16; - SHA3.SHAKE256 = 32; - - SHA3.RC = [ - new ctx.UInt64(0x00000000, 0x00000001), - new ctx.UInt64(0x00000000, 0x00008082), - new ctx.UInt64(0x80000000, 0x0000808a), - new ctx.UInt64(0x80000000, 0x80008000), - new ctx.UInt64(0x00000000, 0x0000808b), - new ctx.UInt64(0x00000000, 0x80000001), - new ctx.UInt64(0x80000000, 0x80008081), - new ctx.UInt64(0x80000000, 0x00008009), - new ctx.UInt64(0x00000000, 0x0000008a), - new ctx.UInt64(0x00000000, 0x00000088), - new ctx.UInt64(0x00000000, 0x80008009), - new ctx.UInt64(0x00000000, 0x8000000a), - new ctx.UInt64(0x00000000, 0x8000808b), - new ctx.UInt64(0x80000000, 0x0000008b), - new ctx.UInt64(0x80000000, 0x00008089), - new ctx.UInt64(0x80000000, 0x00008003), - new ctx.UInt64(0x80000000, 0x00008002), - new ctx.UInt64(0x80000000, 0x00000080), - new ctx.UInt64(0x00000000, 0x0000800a), - new ctx.UInt64(0x80000000, 0x8000000a), - new ctx.UInt64(0x80000000, 0x80008081), - new ctx.UInt64(0x80000000, 0x00008080), - new ctx.UInt64(0x00000000, 0x80000001), - new ctx.UInt64(0x80000000, 0x80008008), - ]; - - return SHA3; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - SHA3: SHA3, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/share.js b/packages/bls-verify/src/vendor/amcl-js/src/share.js deleted file mode 100644 index 5075f1b41..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/share.js +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Shamir threshold secret sharing module */ -/* Split any byte array into number of shares < 256 */ -/* Specify number of shares required for recovery - nsr */ - -/* See TestMPIN.html for an example of use */ - -var SHARE = function (ctx) { - 'use strict'; - - /* Return a share of M */ - /* input id - Unique share ID */ - /* input nsr - Number of shares required for recovery */ - /* input Message M to be shared */ - /* input Random seed R */ - /* return share structure */ - var SHARE = function (id, nsr, M, R) { - this.ID = 0; - this.NSR = 0; - this.B = []; - if (id < 1 || id >= 256 || nsr < 2 || nsr >= 256) return; - this.ID = id; - this.NSR = nsr; - var m = M.length; - var rng = new ctx.RAND(); - rng.clean(); - rng.seed(R.length, R); - for (var j = 0; j < m; j++) { - var x = this.ID; - this.B[j] = M[j]; - for (var n = 1; n < nsr; n++) { - this.B[j] = SHARE.add(this.B[j], SHARE.mul(rng.getByte(), x)); - x = SHARE.mul(x, this.ID); - } - } - }; - - /* recover M from shares */ - SHARE.recover = function (S) { - var m = S[0].B.length; - var nsr = S[0].NSR; - if (nsr != S.length) return null; - for (var i = 1; i < nsr; i++) { - if (S[i].NSR != nsr || S[i].B.length != m) return null; - } - var M = []; - var x = []; - var y = []; - for (var j = 0; j < m; j++) { - for (var i = 0; i < nsr; i++) { - x[i] = S[i].ID; - y[i] = S[i].B[j]; - } - M[j] = SHARE.interpolate(nsr, x, y); - } - return M; - }; - - /* Internal functions */ - - SHARE.add = function (x, y) { - return x ^ y; - }; - - SHARE.mul = function (x, y) { - var ix = x & 0xff, - iy = y & 0xff, - lx = SHARE.ltab[ix] & 0xff, - ly = SHARE.ltab[iy] & 0xff; - - if (x !== 0 && y !== 0) { - return SHARE.ptab[(lx + ly) % 255]; - } else { - return 0; - } - }; - - SHARE.inv = function (x) { - var ix = x & 0xff; - var lx = SHARE.ltab[ix] & 0xff; - return SHARE.ptab[255 - lx]; - }; - - SHARE.interpolate = function (n, x, y) { - var i, j; - var p, - yp = 0; - for (i = 0; i < n; i++) { - p = 1; - for (j = 0; j < n; j++) - if (i != j) p = SHARE.mul(p, SHARE.mul(x[j], SHARE.inv(SHARE.add(x[i], x[j])))); - yp = SHARE.add(yp, SHARE.mul(p, y[i])); - } - return yp; - }; - - SHARE.ptab = [ - 1, 3, 5, 15, 17, 51, 85, 255, 26, 46, 114, 150, 161, 248, 19, 53, 95, 225, 56, 72, 216, 115, - 149, 164, 247, 2, 6, 10, 30, 34, 102, 170, 229, 52, 92, 228, 55, 89, 235, 38, 106, 190, 217, - 112, 144, 171, 230, 49, 83, 245, 4, 12, 20, 60, 68, 204, 79, 209, 104, 184, 211, 110, 178, 205, - 76, 212, 103, 169, 224, 59, 77, 215, 98, 166, 241, 8, 24, 40, 120, 136, 131, 158, 185, 208, 107, - 189, 220, 127, 129, 152, 179, 206, 73, 219, 118, 154, 181, 196, 87, 249, 16, 48, 80, 240, 11, - 29, 39, 105, 187, 214, 97, 163, 254, 25, 43, 125, 135, 146, 173, 236, 47, 113, 147, 174, 233, - 32, 96, 160, 251, 22, 58, 78, 210, 109, 183, 194, 93, 231, 50, 86, 250, 21, 63, 65, 195, 94, - 226, 61, 71, 201, 64, 192, 91, 237, 44, 116, 156, 191, 218, 117, 159, 186, 213, 100, 172, 239, - 42, 126, 130, 157, 188, 223, 122, 142, 137, 128, 155, 182, 193, 88, 232, 35, 101, 175, 234, 37, - 111, 177, 200, 67, 197, 84, 252, 31, 33, 99, 165, 244, 7, 9, 27, 45, 119, 153, 176, 203, 70, - 202, 69, 207, 74, 222, 121, 139, 134, 145, 168, 227, 62, 66, 198, 81, 243, 14, 18, 54, 90, 238, - 41, 123, 141, 140, 143, 138, 133, 148, 167, 242, 13, 23, 57, 75, 221, 124, 132, 151, 162, 253, - 28, 36, 108, 180, 199, 82, 246, 1, - ]; - SHARE.ltab = [ - 0, 255, 25, 1, 50, 2, 26, 198, 75, 199, 27, 104, 51, 238, 223, 3, 100, 4, 224, 14, 52, 141, 129, - 239, 76, 113, 8, 200, 248, 105, 28, 193, 125, 194, 29, 181, 249, 185, 39, 106, 77, 228, 166, - 114, 154, 201, 9, 120, 101, 47, 138, 5, 33, 15, 225, 36, 18, 240, 130, 69, 53, 147, 218, 142, - 150, 143, 219, 189, 54, 208, 206, 148, 19, 92, 210, 241, 64, 70, 131, 56, 102, 221, 253, 48, - 191, 6, 139, 98, 179, 37, 226, 152, 34, 136, 145, 16, 126, 110, 72, 195, 163, 182, 30, 66, 58, - 107, 40, 84, 250, 133, 61, 186, 43, 121, 10, 21, 155, 159, 94, 202, 78, 212, 172, 229, 243, 115, - 167, 87, 175, 88, 168, 80, 244, 234, 214, 116, 79, 174, 233, 213, 231, 230, 173, 232, 44, 215, - 117, 122, 235, 22, 11, 245, 89, 203, 95, 176, 156, 169, 81, 160, 127, 12, 246, 111, 23, 196, 73, - 236, 216, 67, 31, 45, 164, 118, 123, 183, 204, 187, 62, 90, 251, 96, 177, 134, 59, 82, 161, 108, - 170, 85, 41, 157, 151, 178, 135, 144, 97, 190, 220, 252, 188, 149, 207, 205, 55, 63, 91, 209, - 83, 57, 132, 60, 65, 162, 109, 71, 20, 42, 158, 93, 86, 242, 211, 171, 68, 17, 146, 217, 35, 32, - 46, 137, 180, 124, 184, 38, 119, 153, 227, 165, 103, 74, 237, 222, 197, 49, 254, 24, 13, 99, - 140, 128, 192, 247, 112, 7, - ]; - return SHARE; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - SHARE: SHARE, - }; -} diff --git a/packages/bls-verify/src/vendor/amcl-js/src/uint64.js b/packages/bls-verify/src/vendor/amcl-js/src/uint64.js deleted file mode 100644 index 75cbd7137..000000000 --- a/packages/bls-verify/src/vendor/amcl-js/src/uint64.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2012-2020 MIRACL UK Ltd. - * - * This file is part of MIRACL Core - * (see https://github.com/miracl/core). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* rudimentary unsigned 64-bit type for SHA384 and SHA512 */ - -var UInt64 = function () { - 'use strict'; - - var UInt64 = function (top, bot) { - this.top = top; - this.bot = bot; - }; - - UInt64.prototype = { - add: function (y) { - var t = (this.bot >>> 0) + (y.bot >>> 0), - low = t >>> 0, - high = (this.top >>> 0) + (y.top >>> 0); - - this.bot = low; - - if (low != t) { - this.top = (high + 1) >>> 0; - } else { - this.top = high; - } - - return this; - }, - - copy: function () { - var r = new UInt64(this.top, this.bot); - return r; - }, - - shlb: function () { - var t = this.bot >>> 24; - this.top = t + (this.top << 8); - this.bot <<= 8; - return this; - }, - }; - - return UInt64; -}; - -if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = { - UInt64: UInt64, - }; -} diff --git a/packages/bls-verify/test-setup.ts b/packages/bls-verify/test-setup.ts deleted file mode 100644 index 468bc9d51..000000000 --- a/packages/bls-verify/test-setup.ts +++ /dev/null @@ -1,11 +0,0 @@ -// This file may be used to polyfill features that aren't available in the test -// environment, i.e. JSDom. -// -// We sometimes need to do this because our target browsers are expected to have -// a feature that JSDom doesn't. -// -// Note that we can use webpack configuration to make some features available to -// Node.js in a similar way. - -global.crypto = require('@trust/webcrypto'); -require('whatwg-fetch'); diff --git a/packages/identity-secp256k1/package.json b/packages/identity-secp256k1/package.json index 4374bfdc9..ea95c54b6 100644 --- a/packages/identity-secp256k1/package.json +++ b/packages/identity-secp256k1/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@dfinity/agent": "^1.1.1", - "@noble/curves": "^1.3.0", + "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", "asn1js": "^3.0.5", "bip39": "^3.1.0",