diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4379bbfc..537e47da 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,20 +8,20 @@ on: jobs: kzg_prover: name: KZG Prover - uses: lambdaclass/mina_bridge/.github/workflows/rust_ci.yaml@main + uses: ./.github/workflows/rust_ci.yaml with: directory: kzg_prover skip_run: true public_input_gen: name: Public input generation - uses: lambdaclass/mina_bridge/.github/workflows/rust_ci.yaml@main + uses: ./.github/workflows/rust_ci.yaml with: directory: public_input_gen verify_circuit_tests: name: Verifying circuit Rust tests - uses: lambdaclass/mina_bridge/.github/workflows/rust_ci.yaml@main + uses: ./.github/workflows/rust_ci.yaml with: directory: verify_circuit_tests diff --git a/.github/workflows/rust_ci.yaml b/.github/workflows/rust_ci.yaml index d63d9c1b..520d9c38 100644 --- a/.github/workflows/rust_ci.yaml +++ b/.github/workflows/rust_ci.yaml @@ -33,6 +33,9 @@ jobs: - name: Set up cargo cache uses: Swatinem/rust-cache@v2 + + - name: Clone Mina monorepo + run: sh ../evm_bridge/scripts/preinstall.sh - name: Run cargo check run: cargo check --workspace diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..88a77075 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Generated on EVM Bridge preinstall +mina_monorepo + diff --git a/README.md b/README.md index 1ef4386b..70a498cc 100644 --- a/README.md +++ b/README.md @@ -76,3 +76,4 @@ make ``` This will create the constraint system of the verification of a proof with fixed values. +This will also clone the Monorepo version of Mina so that the bridge uses o1js from there. diff --git a/evm_bridge/package-lock.json b/evm_bridge/package-lock.json index e5e73b79..32ce805e 100644 --- a/evm_bridge/package-lock.json +++ b/evm_bridge/package-lock.json @@ -7,24 +7,67 @@ "": { "name": "evm_bridge", "version": "0.1.0", + "hasInstallScript": true, "license": "Apache-2.0", "devDependencies": { "@babel/preset-env": "^7.16.4", "@babel/preset-typescript": "^7.16.0", - "@types/jest": "^27.0.3", + "@types/jest": "^27.0.0", "@types/node": "^20.6.0", "@typescript-eslint/eslint-plugin": "^5.5.0", "@typescript-eslint/parser": "^5.5.0", "eslint": "^8.7.0", "eslint-plugin-o1js": "^0.4.0", - "jest": "^27.3.1", + "jest": "^28.1.3", "lint-staged": "^11.0.1", "prettier": "^2.3.2", - "ts-jest": "^27.0.7", + "ts-jest": "^28.0.8", "typescript": "^4.9.5" }, "peerDependencies": { - "o1js": "0.12.*" + "o1js": "../mina_monorepo/src/lib/snarkyjs" + } + }, + "../mina_monorepo/src/lib/snarkyjs": { + "version": "0.12.1", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "blakejs": "1.2.1", + "detect-gpu": "^5.0.5", + "isomorphic-fetch": "^3.0.0", + "js-sha256": "^0.9.0", + "reflect-metadata": "^0.1.13", + "tslib": "^2.3.0" + }, + "bin": { + "snarky-run": "src/build/run.js" + }, + "devDependencies": { + "@playwright/test": "^1.25.2", + "@types/isomorphic-fetch": "^0.0.36", + "@types/jest": "^27.0.0", + "@types/node": "^18.14.2", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "esbuild": "^0.16.16", + "eslint": "^8.0.0", + "expect": "^29.0.1", + "fs-extra": "^10.0.0", + "glob": "^8.0.3", + "howslow": "^0.1.0", + "jest": "^28.1.3", + "minimist": "^1.2.7", + "prettier": "^2.8.4", + "replace-in-file": "^6.3.5", + "rimraf": "^3.0.2", + "ts-jest": "^28.0.8", + "typedoc": "^0.24.6", + "typedoc-plugin-markdown": "^3.15.3", + "typedoc-plugin-merge-modules": "^5.0.1", + "typescript": "^4.9.5" + }, + "engines": { + "node": ">=16.4.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1997,20 +2040,20 @@ } }, "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^28.1.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/console/node_modules/ansi-styles": { @@ -2084,42 +2127,43 @@ } }, "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.8.1", + "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -2188,6 +2232,39 @@ "node": ">=8" } }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/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 + }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2201,85 +2278,119 @@ } }, "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", "dev": true, "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", "@types/node": "*", - "jest-mock": "^27.5.1" + "jest-mock": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", - "glob": "^7.1.2", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", "slash": "^3.0.0", - "source-map": "^0.6.0", "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -2360,74 +2471,86 @@ "node": ">=8" } }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", "dev": true, "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "graceful-fs": "^4.2.9" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", "dev": true, "dependencies": { - "@jest/test-result": "^27.5.1", + "@jest/test-result": "^28.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^4.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/transform/node_modules/ansi-styles": { @@ -2501,19 +2624,20 @@ } }, "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", "dev": true, "dependencies": { + "@jest/schemas": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^16.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/types/node_modules/ansi-styles": { @@ -2669,6 +2793,12 @@ "node": ">= 8" } }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, "node_modules/@sinonjs/commons": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", @@ -2679,27 +2809,18 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -2710,18 +2831,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", + "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", + "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -2729,18 +2850,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", + "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", + "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", "dev": true, "dependencies": { "@types/node": "*" @@ -2753,18 +2874,18 @@ "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" @@ -2817,18 +2938,18 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.25.tgz", + "integrity": "sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -3118,12 +3239,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, "node_modules/acorn": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", @@ -3136,28 +3251,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -3167,27 +3260,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "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, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -3299,29 +3371,22 @@ "node": ">=8" } }, - "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 - }, "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", "dev": true, "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/transform": "^28.1.3", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", + "babel-preset-jest": "^28.1.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" @@ -3414,18 +3479,18 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", + "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { @@ -3491,16 +3556,16 @@ } }, "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", + "babel-plugin-jest-hoist": "^28.1.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -3512,12 +3577,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "peer": true - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3540,12 +3599,6 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, "node_modules/browserslist": { "version": "4.21.10", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", @@ -3725,14 +3778,17 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/co": { @@ -3772,18 +3828,6 @@ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, - "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, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -3848,44 +3892,6 @@ "node": ">= 8" } }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "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, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "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 - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3903,12 +3909,6 @@ } } }, - "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 - }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -3930,24 +3930,6 @@ "node": ">=0.10.0" } }, - "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, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-gpu": { - "version": "5.0.37", - "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.37.tgz", - "integrity": "sha512-EraWs84faI4iskB4qvE39bevMIazEvd1RpoyGLOBesRLbiz6eMeJqqRPHjEFClfRByYZzi9IzU35rBXIO76oDw==", - "peer": true, - "dependencies": { - "webgl-constants": "^1.1.1" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -3990,27 +3972,6 @@ "node": ">=6.0.0" } }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/electron-to-chromium": { "version": "1.4.513", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.513.tgz", @@ -4018,12 +3979,12 @@ "dev": true }, "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sindresorhus/emittery?sponsor=1" @@ -4075,36 +4036,6 @@ "node": ">=0.8.0" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "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", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint": { "version": "8.49.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", @@ -4447,43 +4378,195 @@ } }, "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "node_modules/expect/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/expect/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/expect/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/expect/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/expect/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/expect/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/expect/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 + }, + "node_modules/expect/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", @@ -4585,20 +4668,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4764,51 +4833,12 @@ "node": ">=4" } }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, "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 }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "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, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -4818,18 +4848,6 @@ "node": ">=10.17.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -4992,12 +5010,6 @@ "node": ">=8" } }, - "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 - }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -5019,28 +5031,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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 - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "peer": true, - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -5129,20 +5125,21 @@ } }, "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", "dev": true, "dependencies": { - "@jest/core": "^27.5.1", + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", "import-local": "^3.0.2", - "jest-cli": "^27.5.1" + "jest-cli": "^28.1.3" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -5154,47 +5151,46 @@ } }, "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", "execa": "^5.0.0", - "throat": "^6.0.1" + "p-limit": "^3.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", - "expect": "^27.5.1", "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "stack-utils": "^2.0.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-circus/node_modules/ansi-styles": { @@ -5246,6 +5242,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/jest-circus/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, "node_modules/jest-circus/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5255,6 +5260,78 @@ "node": ">=8" } }, + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/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 + }, "node_modules/jest-circus/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5268,29 +5345,29 @@ } }, "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", "dev": true, "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", "prompts": "^2.0.1", - "yargs": "^16.2.0" + "yargs": "^17.3.1" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -5372,43 +5449,45 @@ } }, "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", "dev": true, "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", - "glob": "^7.1.1", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", + "pretty-format": "^28.1.3", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { + "@types/node": "*", "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, "ts-node": { "optional": true } @@ -5472,6 +5551,48 @@ "node": ">=8" } }, + "node_modules/jest-config/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-config/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/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 + }, "node_modules/jest-config/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5570,31 +5691,31 @@ } }, "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^28.1.3", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-each/node_modules/ansi-styles": { @@ -5655,51 +5776,75 @@ "node": ">=8" } }, - "node_modules/jest-each/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==", + "node_modules/jest-each/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "node_modules/jest-each/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/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 + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-get-type": { @@ -5712,142 +5857,85 @@ } }, "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", "micromatch": "^4.0.4", - "walker": "^1.0.7" + "walker": "^1.0.8" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-jasmine2/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==", + "node_modules/jest-leak-detector/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, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-leak-detector/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-jasmine2/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==", + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-jasmine2/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==", + "node_modules/jest-leak-detector/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 }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/jest-matcher-utils": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", @@ -5934,23 +6022,23 @@ } }, "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", + "@jest/types": "^28.1.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", + "pretty-format": "^28.1.3", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-message-util/node_modules/ansi-styles": { @@ -6011,6 +6099,39 @@ "node": ">=8" } }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/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 + }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6024,16 +6145,16 @@ } }, "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^28.1.3", "@types/node": "*" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-pnp-resolver": { @@ -6054,47 +6175,45 @@ } }, "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", "dev": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", + "jest-haste-map": "^28.1.3", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-resolve/node_modules/ansi-styles": { @@ -6168,35 +6287,35 @@ } }, "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.8.1", + "emittery": "^0.10.2", "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-runner/node_modules/ansi-styles": { @@ -6270,36 +6389,36 @@ } }, "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "execa": "^5.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-runtime/node_modules/ansi-styles": { @@ -6372,50 +6491,38 @@ "node": ">=8" } }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", "dev": true, "dependencies": { - "@babel/core": "^7.7.2", + "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.5.1", + "expect": "^28.1.3", "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" + "pretty-format": "^28.1.3", + "semver": "^7.3.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-snapshot/node_modules/ansi-styles": { @@ -6458,22 +6565,70 @@ "color-name": "~1.1.4" }, "engines": { - "node": ">=7.0.0" + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-snapshot/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==", + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-snapshot/node_modules/lru-cache": { @@ -6488,6 +6643,39 @@ "node": ">=10" } }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/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 + }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -6522,12 +6710,12 @@ "dev": true }, "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^28.1.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -6535,7 +6723,7 @@ "picomatch": "^2.2.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-util/node_modules/ansi-styles": { @@ -6609,20 +6797,20 @@ } }, "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^28.1.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", + "jest-get-type": "^28.0.2", "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "pretty-format": "^28.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-validate/node_modules/ansi-styles": { @@ -6695,6 +6883,48 @@ "node": ">=8" } }, + "node_modules/jest-validate/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/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 + }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6708,21 +6938,22 @@ } }, "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", "dev": true, "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.5.1", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", "string-length": "^4.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-watcher/node_modules/ansi-styles": { @@ -6796,9 +7027,9 @@ } }, "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", "dev": true, "dependencies": { "@types/node": "*", @@ -6806,7 +7037,7 @@ "supports-color": "^8.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-worker/node_modules/has-flag": { @@ -6833,12 +7064,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", - "peer": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6857,52 +7082,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -7097,12 +7276,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -7303,27 +7476,6 @@ "node": ">=8.6" } }, - "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, - "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, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -7363,48 +7515,6 @@ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, - "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==", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "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==", - "peer": true - }, - "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==", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -7438,31 +7548,9 @@ "node": ">=8" } }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true - }, "node_modules/o1js": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/o1js/-/o1js-0.12.2.tgz", - "integrity": "sha512-DkGw2sqj2t8lXSZFhv7qQnkG7WEhL4VrHYCpIagckmt6xH1A9weJo1SUqFXRRko9zeWY1e76jy/+SocrEUS5Gw==", - "peer": true, - "dependencies": { - "blakejs": "1.2.1", - "detect-gpu": "^5.0.5", - "isomorphic-fetch": "^3.0.0", - "js-sha256": "^0.9.0", - "reflect-metadata": "^0.1.13", - "tslib": "^2.3.0" - }, - "bin": { - "snarky-run": "src/build/run.js" - }, - "engines": { - "node": ">=16.4.0" - } + "resolved": "../mina_monorepo/src/lib/snarkyjs", + "link": true }, "node_modules/once": { "version": "1.4.0", @@ -7589,12 +7677,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -7800,12 +7882,6 @@ "node": ">= 6" } }, - "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 - }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -7815,12 +7891,6 @@ "node": ">=6" } }, - "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 - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7847,12 +7917,6 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "peer": true - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -7933,12 +7997,6 @@ "node": ">=0.10.0" } }, - "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 - }, "node_modules/resolve": { "version": "1.22.4", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", @@ -8071,24 +8129,6 @@ "tslib": "^2.1.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -8203,9 +8243,9 @@ } }, "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==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", @@ -8389,12 +8429,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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 - }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -8431,12 +8465,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -8470,66 +8498,39 @@ "node": ">=8.0" } }, - "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, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ts-jest": { - "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", "dev": true, "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", "lodash.memoize": "4.x", "make-error": "1.x", "semver": "7.x", - "yargs-parser": "20.x" + "yargs-parser": "^21.0.1" }, "bin": { "ts-jest": "cli.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" + "@jest/types": "^28.0.0", + "babel-jest": "^28.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" }, "peerDependenciesMeta": { "@babel/core": { "optional": true }, - "@types/jest": { + "@jest/types": { "optional": true }, "babel-jest": { @@ -8576,7 +8577,8 @@ "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true }, "node_modules/tsutils": { "version": "3.21.0", @@ -8632,15 +8634,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", @@ -8694,15 +8687,6 @@ "node": ">=4" } }, - "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, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -8742,61 +8726,20 @@ "punycode": "^2.1.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, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "convert-source-map": "^1.6.0" }, "engines": { "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -8806,56 +8749,6 @@ "makeerror": "1.0.12" } }, - "node_modules/webgl-constants": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz", - "integrity": "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==", - "peer": true - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.19", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", - "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", - "peer": true - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8928,50 +8821,18 @@ "dev": true }, "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==", + "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, "dependencies": { "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "signal-exit": "^3.0.7" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "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 - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -8997,30 +8858,30 @@ } }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yocto-queue": { diff --git a/evm_bridge/package.json b/evm_bridge/package.json index 4096174a..e00e636c 100644 --- a/evm_bridge/package.json +++ b/evm_bridge/package.json @@ -18,6 +18,7 @@ "buildw": "tsc --watch", "coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage", "format": "prettier --write --ignore-unknown **/*", + "preinstall": "sh scripts/preinstall.sh", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", "testw": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch", "lint": "npx eslint src/* --fix" @@ -31,19 +32,19 @@ "devDependencies": { "@babel/preset-env": "^7.16.4", "@babel/preset-typescript": "^7.16.0", - "@types/jest": "^27.0.3", + "@types/jest": "^27.0.0", "@types/node": "^20.6.0", "@typescript-eslint/eslint-plugin": "^5.5.0", "@typescript-eslint/parser": "^5.5.0", "eslint": "^8.7.0", "eslint-plugin-o1js": "^0.4.0", - "jest": "^27.3.1", + "jest": "^28.1.3", "lint-staged": "^11.0.1", "prettier": "^2.3.2", - "ts-jest": "^27.0.7", + "ts-jest": "^28.0.8", "typescript": "^4.9.5" }, "peerDependencies": { - "o1js": "0.12.*" + "o1js": "../mina_monorepo/src/lib/snarkyjs" } } diff --git a/evm_bridge/scripts/preinstall.sh b/evm_bridge/scripts/preinstall.sh new file mode 100644 index 00000000..d902ab5d --- /dev/null +++ b/evm_bridge/scripts/preinstall.sh @@ -0,0 +1,7 @@ +cd .. +git clone https://github.com/lambdaclass/mina_monorepo.git +cd mina_monorepo +git checkout witness +cd src/lib/snarkyjs +npm run bindings +npm run build diff --git a/evm_bridge/src/main.ts b/evm_bridge/src/main.ts index acec97b7..a6ce1d02 100644 --- a/evm_bridge/src/main.ts +++ b/evm_bridge/src/main.ts @@ -1,6 +1,8 @@ -import { readFileSync } from "fs"; -import { Group, Provable } from "o1js"; +import { readFileSync, writeFileSync } from "fs"; +import { Field, Group, Scalar } from "o1js"; import { Verifier } from "./verifier/verifier.js"; +import { MlArray } from "o1js/dist/node/lib/ml/base.js"; +import { FieldVar } from "o1js/dist/node/lib/field.js"; let inputs: { sg: bigint[], z1: bigint, expected: bigint[] }; try { @@ -25,14 +27,41 @@ console.log('SnarkyJS loaded'); // ---------------------------------------------------- -console.log("Generating constraint system"); -let cs = Provable.constraintSystem(() => { - let sg = Provable.witness(Group, () => new Group({ x: inputs.sg[0], y: inputs.sg[1] })); - let expected = Provable.witness(Group, () => new Group({ x: inputs.expected[0], y: inputs.expected[1] })); +console.log("Generating keypair..."); - Verifier.main(sg, BigInt(inputs.z1), expected, false); -}); -console.log("Constraint system:", cs); +// Convert JSON inputs to O1JS inputs so that we can pass them to the circuit +let sg = new Group({ x: inputs.sg[0], y: inputs.sg[1] }); +let expected = new Group({ x: inputs.expected[0], y: inputs.expected[1] }); +let z1 = Scalar.from(inputs.z1); +let sg_scalar = z1.neg().sub(Scalar.from(1)); +let public_input = [sg, sg_scalar, expected]; + +let keypair = await Verifier.generateKeypair(); + +console.log("Proving..."); +let proof = await Verifier.prove([], public_input, keypair); +console.log("Verifying..."); +let isValid = await Verifier.verify(public_input, keypair.verificationKey(), proof); +console.log("Is valid proof:", isValid); + +console.log("Generating witness..."); +let witness_ml = await Verifier.generateWitness([], public_input, keypair); + +// Convert OCaml witness to JSON witness so that we can write it into a file +let witness: Field[][] = []; +for (let maybe_row_ml of witness_ml) { + let row_ml = maybe_row_ml as MlArray; + let row = []; + + for (let maybe_field_ml of row_ml) { + let field_ml = maybe_field_ml as FieldVar; + row.push(new Field(field_ml)); + } + + witness.push(row); +} + +writeFileSync("../kzg_prover/test_data/witness.json", JSON.stringify(witness)); // ---------------------------------------------------- -console.log('Shutting down'); +console.log('Done! Shutting down'); diff --git a/evm_bridge/src/verifier/verifier.ts b/evm_bridge/src/verifier/verifier.ts index da6806b3..5ecfcff5 100644 --- a/evm_bridge/src/verifier/verifier.ts +++ b/evm_bridge/src/verifier/verifier.ts @@ -1,6 +1,6 @@ import assert from 'assert'; import { readFileSync } from 'fs'; -import { circuitMain, Circuit, Group, Scalar, Provable } from 'o1js'; +import { circuitMain, Circuit, Group, Scalar, Provable, public_, Field } from 'o1js'; import { SRS } from '../SRS.js'; let steps: bigint[][]; @@ -21,8 +21,9 @@ export class VerifierIndex { public: number } -export class Verifier { - static main(sg: Group, z1: bigint, expected: Group, debug: boolean) { +export class Verifier extends Circuit { + @circuitMain + static main(@public_ sg: Group, @public_ sg_scalar: Scalar, @public_ expected: Group) { let nonzero_length = g.length; let max_rounds = Math.ceil(Math.log2(nonzero_length)); let padded_length = Math.pow(2, max_rounds); @@ -32,36 +33,33 @@ export class Verifier { points = points.concat(g); points = points.concat(Array(padding).fill(Group.zero)); - let scalars = [0n]; + let scalars = [Scalar.from(0)]; //TODO: Add challenges and s polynomial (in that case, using Scalars we could run out of memory) - scalars = scalars.concat(Array(padded_length).fill(1n)); + scalars = scalars.concat(Array(padded_length).fill(Scalar.from(1))); assert(points.length == scalars.length, "The number of points is not the same as the number of scalars"); points.push(sg); - scalars.push(mod(-z1 - 1n)); + scalars.push(sg_scalar); - if (debug) { - Verifier.msmDebug(points, scalars).assertEquals(expected); - } else { - Verifier.msm(points, scalars).assertEquals(expected); - } + Verifier.msm(points, scalars).assertEquals(expected); } // Naive algorithm - static msm(points: Group[], scalars: bigint[]) { + static msm(points: Group[], scalars: Scalar[]) { let result = Group.zero; for (let i = 0; i < points.length; i++) { let point = points[i]; let scalar = scalars[i]; - result = result.add(point.scale(scalar)); + let scaled = point.scale(scalar); + result = result.add(scaled); } return result; } // Naive algorithm (used for debugging) - static msmDebug(points: Group[], scalars: bigint[]) { + static msmDebug(points: Group[], scalars: Scalar[]) { let result = Group.zero; if (steps.length === 0) { @@ -81,7 +79,3 @@ export class Verifier { return result; } } - -function mod(n: bigint) { - return ((n % Scalar.ORDER) + Scalar.ORDER) % Scalar.ORDER; -} diff --git a/kzg_prover/Cargo.lock b/kzg_prover/Cargo.lock index bd167cb0..8c76a962 100644 --- a/kzg_prover/Cargo.lock +++ b/kzg_prover/Cargo.lock @@ -225,12 +225,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-common" version = "0.1.6" @@ -349,7 +343,6 @@ dependencies = [ [[package]] name = "groupmap" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" dependencies = [ "ark-ec", "ark-ff", @@ -395,7 +388,6 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "internal-tracing" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" [[package]] name = "itertools" @@ -415,9 +407,7 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "kimchi" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" dependencies = [ - "ark-bn254", "ark-ec", "ark-ff", "ark-poly", @@ -446,7 +436,6 @@ dependencies = [ "strum", "strum_macros", "thiserror", - "tiny-keccak", "turshi", ] @@ -487,7 +476,6 @@ dependencies = [ [[package]] name = "mina-curves" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" dependencies = [ "ark-ec", "ark-ff", @@ -496,7 +484,6 @@ dependencies = [ [[package]] name = "mina-poseidon" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" dependencies = [ "ark-ec", "ark-ff", @@ -566,7 +553,6 @@ dependencies = [ [[package]] name = "o1-utils" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" dependencies = [ "ark-ec", "ark-ff", @@ -612,7 +598,6 @@ dependencies = [ [[package]] name = "poly-commitment" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" dependencies = [ "ark-ec", "ark-ff", @@ -914,19 +899,9 @@ dependencies = [ "syn 2.0.29", ] -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - [[package]] name = "turshi" version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems?branch=feature/keccak-sponge#15709b8845e9c90d884f419e14c44420da97c2a5" dependencies = [ "ark-ff", "hex", diff --git a/kzg_prover/Cargo.toml b/kzg_prover/Cargo.toml index b4b39b98..9aafaa30 100644 --- a/kzg_prover/Cargo.toml +++ b/kzg_prover/Cargo.toml @@ -6,11 +6,8 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -kimchi = { git = "https://github.com/o1-labs/proof-systems", branch = "feature/keccak-sponge", features = [ - "keccak-sponges", - "bn254", -] } -poly-commitment = { git = "https://github.com/o1-labs/proof-systems", branch = "feature/keccak-sponge" } +kimchi = { path = "../mina_monorepo/src/lib/crypto/proof-systems/kimchi" } +poly-commitment = { path = "../mina_monorepo/src/lib/crypto/proof-systems/poly-commitment" } serde_json = "1" serde = { version = "1", features = ["derive"] } ark-ec = { version = "0.3.0", features = ["parallel"] } diff --git a/kzg_prover/src/main.rs b/kzg_prover/src/main.rs index d0457a9e..d7c122c9 100644 --- a/kzg_prover/src/main.rs +++ b/kzg_prover/src/main.rs @@ -5,32 +5,54 @@ use std::str::FromStr; use std::sync::Arc; use ark_ec::short_weierstrass_jacobian::GroupAffine; +use kimchi::circuits::constraints::ConstraintSystem as KimchiConstraintSystem; use kimchi::circuits::gate::{CircuitGate, GateType}; use kimchi::circuits::wires::Wire; use kimchi::curve::KimchiCurve; use kimchi::groupmap::GroupMap; -use kimchi::mina_curves::pasta::{Fp, VestaParameters}; +use kimchi::mina_curves::pasta::{Fq, PallasParameters}; use kimchi::mina_poseidon::constants::PlonkSpongeConstantsKimchi; use kimchi::mina_poseidon::sponge::{DefaultFqSponge, DefaultFrSponge}; -use kimchi::poly_commitment::evaluation_proof::OpeningProof; use kimchi::poly_commitment::srs::SRS; +use kimchi::precomputed_srs; use kimchi::prover_index::ProverIndex; -use kimchi::verifier::verify; use kimchi::{poly_commitment::commitment::CommitmentCurve, proof::ProverProof}; -type Parameters = VestaParameters; +type Parameters = PallasParameters; type Curve = GroupAffine; type SpongeConstants = PlonkSpongeConstantsKimchi; -type Field = Fp; +type Field = Fq; type BaseSponge = DefaultFqSponge; type ScalarSponge = DefaultFrSponge; fn main() { + let gates = create_gates(); + + let constraint_system = KimchiConstraintSystem::::create(gates) + .public(3) + .build() + .unwrap(); + + let srs_arc = create_srs(&constraint_system); + + let &(_, endo_r) = ::endos(); + let group_map = ::Map::setup(); + let witness = create_witness(); + let prover_index: ProverIndex<_> = ProverIndex::create(constraint_system, endo_r, srs_arc); + + ProverProof::create::(&group_map, witness, &[], &prover_index) + .expect("failed to generate proof"); + + println!("Done!"); +} + +fn create_gates() -> Vec> { let cs_json = std::fs::read_to_string("./test_data/constraint_system.json").unwrap(); let cs = constraint_system::ConstraintSystem::from(cs_json.as_str()); let elem_list = cs.0; - let gates: Vec<_> = elem_list + + elem_list .iter() .map(|gate| { let gate_type = if gate.r#type == "Generic" { @@ -52,56 +74,27 @@ fn main() { .collect(); CircuitGate::new(gate_type, wires, coeffs) }) - .collect(); - - let constants = kimchi::snarky::constants::Constants::new::(); - let _snarky_cs = kimchi::snarky::constraint_system::SnarkyConstraintSystem::create(constants); - - let mut kimchi_cs = kimchi::circuits::constraints::ConstraintSystem::::create(gates) - .public(3) - .build() - .unwrap(); - kimchi_cs.feature_flags.foreign_field_add = true; - kimchi_cs.feature_flags.foreign_field_mul = true; - - let srs_json = std::fs::read_to_string("./test_data/srs_pasta.json").unwrap(); - let mut kimchi_srs: SRS = serde_json::from_str(srs_json.as_str()).unwrap(); - kimchi_srs.add_lagrange_basis(kimchi_cs.domain.d1); - let kimchi_srs_arc = Arc::new(kimchi_srs); - - let &endo_q = ::other_curve_endo(); - - let group_map = ::Map::setup(); - let witness: [Vec; 15] = array::from_fn(|_| vec![Field::from(0); 4]); - let prover_index: ProverIndex<_, OpeningProof> = - ProverIndex::create(kimchi_cs, endo_q, kimchi_srs_arc); - let proof = - ProverProof::create::(&group_map, witness, &[], &prover_index) - .expect("failed to generate proof"); - println!("proof: {:?}", proof); - - let verifier_index = prover_index.verifier_index(); - verify::>( - &group_map, - &verifier_index, - &proof, - &[Field::from(2), Field::from(3), Field::from(5)], - ) - .expect("Proof is not valid"); - - println!("Done!"); + .collect() } -/* +fn create_srs(constraint_system: &KimchiConstraintSystem) -> Arc> { + let mut srs = precomputed_srs::get_srs(); + srs.add_lagrange_basis(constraint_system.domain.d1); - let srs = SRS::::create(kimchi_cs.domain.d1.size as usize); + Arc::new(srs) +} - let out = rmp_serde::encode::to_vec(&srs).unwrap(); - let mut file = std::fs::File::create("srs.rmp").unwrap(); - file.write_all(&out).unwrap(); +fn create_witness() -> [Vec; 15] { + let witness_json = std::fs::read_to_string("./test_data/witness.json").unwrap(); + let witness_str: Vec> = serde_json::from_str(&witness_json).unwrap(); + let mut witness: [Vec; 15] = array::from_fn(|_| vec![]); - let out_json = serde_json::to_vec(&srs).unwrap(); - let mut file = std::fs::File::create("srs.json").unwrap(); - file.write_all(&out_json).unwrap(); + // Convert matrix of strings to matrix of Fields + for (col_str, mut col) in witness.iter_mut().zip(witness_str) { + for (field_str, field) in col.iter_mut().zip(col_str) { + *field = Field::from_str(field_str).unwrap(); + } + } -*/ + witness +} diff --git a/kzg_prover/test_data/witness.json b/kzg_prover/test_data/witness.json new file mode 100644 index 00000000..6785757b --- /dev/null +++ b/kzg_prover/test_data/witness.json @@ -0,0 +1 @@ +[["974375293919604067421642828992042234838532512369342211368018365361184475186","25355274914870068890116392297762844888825113893841661922182961733548015428069","0","0","1","0","0","1","1","1","0","1","1","1","1","0","1","0","0","1","1","1","1","1","0","0","0","1","1","0","0","1","0","0","0","0","0","1","1","1","0","1","1","1","0","0","0","1","1","0","0","1","0","1","1","0","0","0","1","1","1","1","1","1","0","1","0","0","1","0","1","1","1","0","1","1","0","0","0","1","1","0","0","0","0","0","0","1","0","0","1","0","1","0","1","1","0","1","1","1","0","1","0","0","1","1","1","0","1","0","0","1","0","0","1","1","0","0","1","1","1","1","0","1","0","0","0","1","0","0","0","0","0","1","0","1","1","1","1","0","1","1","0","1","1","0","1","1","1","1","1","1","0","0","0","0","0","0","0","1","0","1","1","0","1","1","0","1","0","1","1","1","1","1","1","1","0","1","0","0","1","1","1","0","0","1","0","0","0","0","1","0","1","0","1","0","1","0","1","1","0","0","1","0","1","1","1","1","1","1","1","1","0","1","1","1","0","1","0","0","1","0","1","1","1","0","1","1","1","1","0","1","1","1","0","0","0","1","0","1","0","0","1","1","1","1","1","1","0","1","0","1","1","0","1","1","0","23971162515526044551720809934508194276417125006800220692822425564390575025467","27079223568793814179815985351796131117498018732446481340536149855784701006245","974375293919604067421642828992042234838532512369342211368018365361184475186","974375293919604067421642828992042234838532512369342211368018365361184475186","2028811481619333019837400035943306067354655023827784989030392908018109467508","974375293919604067421642828992042234838532512369342211368018365361184475186","28406185672446948306493050553925853700109382296849962367787315362156581616686","974375293919604067421642828992042234838532512369342211368018365361184475186","23506542966115733377994103980195036388416575838970738213242629800587792449443","974375293919604067421642828992042234838532512369342211368018365361184475186","22204384491896825631869152191503079161898593209942755839459087399123550398362","974375293919604067421642828992042234838532512369342211368018365361184475186","24529034133930278673676586078640293519972063183372620384350558928959838271036","974375293919604067421642828992042234838532512369342211368018365361184475186","21326134768676664138732175745648624075889200393144181553619186698357787709173","974375293919604067421642828992042234838532512369342211368018365361184475186","9735113601947701281579878744932640611774430969227779912161167036491988595530","974375293919604067421642828992042234838532512369342211368018365361184475186","20391288949922821136854057365032945998508972622557214902183613867715503281983","974375293919604067421642828992042234838532512369342211368018365361184475186","13358619754705115780757104523922985704736032453612715821360914360721400461500","974375293919604067421642828992042234838532512369342211368018365361184475186","17664640332553608862481244397966522350247119994041961377410146461882442845575","974375293919604067421642828992042234838532512369342211368018365361184475186","3788893596188368283495987403786242911445714810977423225209775904483992801559","974375293919604067421642828992042234838532512369342211368018365361184475186","22005537814239000865606933157428376490026579037060239511895816055786501582542","974375293919604067421642828992042234838532512369342211368018365361184475186","27270144696624385367789770192715360732595401465292300430339230504465748620028","974375293919604067421642828992042234838532512369342211368018365361184475186","25705028362262599450048328218872971670170439978714676326565722004326400433621","974375293919604067421642828992042234838532512369342211368018365361184475186","24326066486625655951178650383120465176475870026710640520228357090704690669451","974375293919604067421642828992042234838532512369342211368018365361184475186","10500402679178429935598409835154278777276054623946958625916299261853577985310","974375293919604067421642828992042234838532512369342211368018365361184475186","12832715056432731904106692439340916683750842131890327635254995156604392818696","974375293919604067421642828992042234838532512369342211368018365361184475186","18458218901706347814787210049219692342093161840528712625233187522044670636583","974375293919604067421642828992042234838532512369342211368018365361184475186","15856937113925714946278554996731512311020663869543533393008424042458877431107","974375293919604067421642828992042234838532512369342211368018365361184475186","16259325221652285939491825437336907593881944190726472142531497097692790315628","974375293919604067421642828992042234838532512369342211368018365361184475186","141492915689854463844694542183399585674524617466003045044627226557571261451","974375293919604067421642828992042234838532512369342211368018365361184475186","16609155364126245128435532278222814374937306807688410478604842945958927871356","974375293919604067421642828992042234838532512369342211368018365361184475186","4352414727610931004774689963060084428754804936373505076963033669244177337828","974375293919604067421642828992042234838532512369342211368018365361184475186","27841527411693129754795644503869850397898565243596803416004862150765755823937","974375293919604067421642828992042234838532512369342211368018365361184475186","23055652864541725648853984469970587024928976720217350653958567235472261605053","974375293919604067421642828992042234838532512369342211368018365361184475186","12047740537992512288211131892095909143632067650214946455678144546506699285771","974375293919604067421642828992042234838532512369342211368018365361184475186","15987957131175906497128156298499980810249188788812278679237964830926955260442","974375293919604067421642828992042234838532512369342211368018365361184475186","16757659524599450133248500899781253245916794066606006788423368637462386531371","974375293919604067421642828992042234838532512369342211368018365361184475186","22589612024734405890822880942465564427854458670505653185217262742885569536219","974375293919604067421642828992042234838532512369342211368018365361184475186","19767427034920930007787059090765366315995169398161526643943131788764369265125","974375293919604067421642828992042234838532512369342211368018365361184475186","21016845507719647299281546615957006822474907458661037756535056636683813405668","974375293919604067421642828992042234838532512369342211368018365361184475186","13927389643375205925400685159570931599168921773905346348012308456870504126023","974375293919604067421642828992042234838532512369342211368018365361184475186","18522806981707913252559518302386424093131851813015083379031745516337678690260","974375293919604067421642828992042234838532512369342211368018365361184475186","1092177444789557213650973863329087942451438827869880337030038914305329615401","974375293919604067421642828992042234838532512369342211368018365361184475186","8931346265860398418765809594578595136354552949927987976974304922249459559372","974375293919604067421642828992042234838532512369342211368018365361184475186","28857911577129147456158268982822544200823814193530344927223754606108737786932","974375293919604067421642828992042234838532512369342211368018365361184475186","25681138263837477570636042232754772752971120029201040072795088526983126028841","974375293919604067421642828992042234838532512369342211368018365361184475186","5139791840018857106674734256078923061365326957792486618740781009964951746832","974375293919604067421642828992042234838532512369342211368018365361184475186","16414622239831774508647183973035559211173350879604946217236725269799447604336","974375293919604067421642828992042234838532512369342211368018365361184475186","12846130309084363804677479084169603390679587901359353309079932681826073249356","974375293919604067421642828992042234838532512369342211368018365361184475186","22136758284687149849929206094539549365475908294355903094084332234687380424512","974375293919604067421642828992042234838532512369342211368018365361184475186","14183823803178322109679247771659068765203589283941012667272547493808510059988","974375293919604067421642828992042234838532512369342211368018365361184475186","6468265010081648883091175077865253586794420535429554660995625999187742962361","974375293919604067421642828992042234838532512369342211368018365361184475186","21176551423019075745176278228640153013139996297593088822003551491295505023323","974375293919604067421642828992042234838532512369342211368018365361184475186","13083029240355580815591508947706814537937486977857758579865336243771664713425","974375293919604067421642828992042234838532512369342211368018365361184475186","23015112867633120182823272100116149737192280791087327741884695404706010712309","974375293919604067421642828992042234838532512369342211368018365361184475186","949230265972800584661743602204227828376854306471686180018169765334589974798","974375293919604067421642828992042234838532512369342211368018365361184475186","6215926736309253331052089301938071999187489102956841989943848494139746573140","974375293919604067421642828992042234838532512369342211368018365361184475186","19394123465547216151746308825596754691799372002817890133636161955280964347961","974375293919604067421642828992042234838532512369342211368018365361184475186","22734799087589724504809559015773367209391287729268445302377522476330784058012","974375293919604067421642828992042234838532512369342211368018365361184475186","13269575868659627207763922223028139789438020009442629600841009499796992671799","0","5755133917988384732043351395842863601119455540906570574776993035414169419898","5755133917988384732043351395842863601119455540906570574776993035414169419898","0","0","1","27079223568793814179815985351796131117498018732446481340536149855784701006245","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","25355274914870068890116392297762844888825113893841661922182961733548015428069","25355274914870068890116392297762844888825113893841661922182961733548015428069","7646306757730454054686805745320215980315424226523413110118810553973759747164","25355274914870068890116392297762844888825113893841661922182961733548015428069","1280550145769334701200244296490875287679441171971065341078980948364304632342","25355274914870068890116392297762844888825113893841661922182961733548015428069","16935924333370280923413828087574315334502946050983729745181198234236700203046","25355274914870068890116392297762844888825113893841661922182961733548015428069","8445563828630385685144455564571304583670350817262157191812887920287465862796","25355274914870068890116392297762844888825113893841661922182961733548015428069","1888335727718661413356340952313365258389266485183741415205816422281326465147","25355274914870068890116392297762844888825113893841661922182961733548015428069","330629298621772511094425566792792276967779335796662600770089723423956177900","25355274914870068890116392297762844888825113893841661922182961733548015428069","1387978881369698639691395600243171568285892460692795120242152552517416420893","25355274914870068890116392297762844888825113893841661922182961733548015428069","18230687030144595081028241511397987430744411785677814056418382766539048998557","25355274914870068890116392297762844888825113893841661922182961733548015428069","17708186356061545185360582486176949934669388565006799083599245824998237697204","25355274914870068890116392297762844888825113893841661922182961733548015428069","21010533091028434444492524053696261722608083058886233520007999863722266111036","25355274914870068890116392297762844888825113893841661922182961733548015428069","608559496997637273688227165488693752449590840050097491047176119889437810467","25355274914870068890116392297762844888825113893841661922182961733548015428069","8640257642056699347264016787683963159499243962652055070700848971334211911916","25355274914870068890116392297762844888825113893841661922182961733548015428069","13720785109504571432638004862588016380298366729983927810508748591418608037128","25355274914870068890116392297762844888825113893841661922182961733548015428069","11191455820716718298954016775461451080910536628832426319562503726092658306767","25355274914870068890116392297762844888825113893841661922182961733548015428069","18027707936265008266086582051012729219380769321317666172695878691503107420117","25355274914870068890116392297762844888825113893841661922182961733548015428069","2357615115828824637014216425799410260154403350964396893661900181414789671141","25355274914870068890116392297762844888825113893841661922182961733548015428069","7587410302450684669457734052649718611297262044922215848639795369550946561110","25355274914870068890116392297762844888825113893841661922182961733548015428069","5220578080833016765011633419405899093611513402989067982308960648380829734592","25355274914870068890116392297762844888825113893841661922182961733548015428069","17024345053623329997800003411667038765857478627334715794086397044639532355606","25355274914870068890116392297762844888825113893841661922182961733548015428069","21610023000040953038041521011406931998623496803124793909236656758287318423633","25355274914870068890116392297762844888825113893841661922182961733548015428069","19333051837557990426955030289429204211830298817295494509700658567682640578817","25355274914870068890116392297762844888825113893841661922182961733548015428069","4335434778528056895317102130751739645681030237271250893008529407733153779028","25355274914870068890116392297762844888825113893841661922182961733548015428069","18976276900725821239702778735904009883458604328917858658004102591559378511005","25355274914870068890116392297762844888825113893841661922182961733548015428069","17675371568697003922603070764742187788859268888257126732528416448778339699374","25355274914870068890116392297762844888825113893841661922182961733548015428069","12232536959090428904624707941138254662951292077055330996446138837702032594010","25355274914870068890116392297762844888825113893841661922182961733548015428069","13728101125076207974509118403951556166434844615336226176979496453954004976959","25355274914870068890116392297762844888825113893841661922182961733548015428069","28737261887984199347384981686306759063850962044266845742072956741493383682617","25355274914870068890116392297762844888825113893841661922182961733548015428069","22128898965461504485049124978084857405271734169240674887432905117663717125551","25355274914870068890116392297762844888825113893841661922182961733548015428069","12672144328942601509486624329646469045727100456052918480104096644662347876884","25355274914870068890116392297762844888825113893841661922182961733548015428069","24999940684720319916515696788924879547813976510995545307869529851686413611565","25355274914870068890116392297762844888825113893841661922182961733548015428069","20902334510926749963650908893089515658294432564942452919833200706492900015107","25355274914870068890116392297762844888825113893841661922182961733548015428069","10085677290263140670535746536227264343438901523786202118168810921510841406423","25355274914870068890116392297762844888825113893841661922182961733548015428069","460202733290905416266215943462910292379649082505865178643287522158563183500","25355274914870068890116392297762844888825113893841661922182961733548015428069","4749185123250420181928844081470304316065712700795775973710064390647432859919","25355274914870068890116392297762844888825113893841661922182961733548015428069","1166502763069514445463576772283670902093498992557547636664970099460716601024","25355274914870068890116392297762844888825113893841661922182961733548015428069","16700937726156976969853664623714543200039897554141953755689789656083990964456","25355274914870068890116392297762844888825113893841661922182961733548015428069","27095934729356544964682217535525960120837915663649333999573699604223315087105","25355274914870068890116392297762844888825113893841661922182961733548015428069","23070601629332532470796314019412831355411347698011022369802473533423332109507","25355274914870068890116392297762844888825113893841661922182961733548015428069","16331136618758583524802340201836026639340529340961328299304192863904009884952","25355274914870068890116392297762844888825113893841661922182961733548015428069","22557967122987706568490624744413803965759045345937021955647508335504106293065","25355274914870068890116392297762844888825113893841661922182961733548015428069","14124535051948299888194014678483341610164818566239876854542431698121611698922","25355274914870068890116392297762844888825113893841661922182961733548015428069","9199168741410911319525521787080125580624812825482854727981380526044291581580","25355274914870068890116392297762844888825113893841661922182961733548015428069","2240235066655191176015594697852232494423795236713738599306041484216293742202","25355274914870068890116392297762844888825113893841661922182961733548015428069","6347645518466180221302465909274776291749181141754218575111983562992835892214","25355274914870068890116392297762844888825113893841661922182961733548015428069","12495706609138919583533246680108018023474285665271431726486575128811588478602","25355274914870068890116392297762844888825113893841661922182961733548015428069","14047195897660762630618245010404779547954873694557574570382210924537587730159","25355274914870068890116392297762844888825113893841661922182961733548015428069","13135496547547772458025593755937437192828817646707003887804423672839811184333","25355274914870068890116392297762844888825113893841661922182961733548015428069","4797508965589516975091176286486873364577605756775869679067215994973753864897","25355274914870068890116392297762844888825113893841661922182961733548015428069","17673764844211296075149262684512899025469442779765546879033773271261428663019","25355274914870068890116392297762844888825113893841661922182961733548015428069","23511835895986458898296348008429549147283415548052652972582835737637830888776","25355274914870068890116392297762844888825113893841661922182961733548015428069","3256852578986735897332166078994071842029507669697901307227723421884103680460","0","0","12275962108394751282317816883220368035509564621851489216803286300082708833639","0","0","1","1","27079223568793814179815985351796131117498018732446481340536149855784701006245"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","974375293919604067421642828992042234838532512369342211368018365361184475186","10558424661274088416822814922831570393144350878114353979274795063062336108758","0","2028811481619333019837400035943306067354655023827784989030392908018109467508","1","28406185672446948306493050553925853700109382296849962367787315362156581616686","1","23506542966115733377994103980195036388416575838970738213242629800587792449443","0","22204384491896825631869152191503079161898593209942755839459087399123550398362","0","24529034133930278673676586078640293519972063183372620384350558928959838271036","1","21326134768676664138732175745648624075889200393144181553619186698357787709173","1","9735113601947701281579878744932640611774430969227779912161167036491988595530","0","20391288949922821136854057365032945998508972622557214902183613867715503281983","0","13358619754705115780757104523922985704736032453612715821360914360721400461500","1","17664640332553608862481244397966522350247119994041961377410146461882442845575","1","3788893596188368283495987403786242911445714810977423225209775904483992801559","0","22005537814239000865606933157428376490026579037060239511895816055786501582542","1","27270144696624385367789770192715360732595401465292300430339230504465748620028","0","25705028362262599450048328218872971670170439978714676326565722004326400433621","0","24326066486625655951178650383120465176475870026710640520228357090704690669451","1","10500402679178429935598409835154278777276054623946958625916299261853577985310","0","12832715056432731904106692439340916683750842131890327635254995156604392818696","1","18458218901706347814787210049219692342093161840528712625233187522044670636583","0","15856937113925714946278554996731512311020663869543533393008424042458877431107","1","16259325221652285939491825437336907593881944190726472142531497097692790315628","0","141492915689854463844694542183399585674524617466003045044627226557571261451","1","16609155364126245128435532278222814374937306807688410478604842945958927871356","1","4352414727610931004774689963060084428754804936373505076963033669244177337828","1","27841527411693129754795644503869850397898565243596803416004862150765755823937","1","23055652864541725648853984469970587024928976720217350653958567235472261605053","0","12047740537992512288211131892095909143632067650214946455678144546506699285771","0","15987957131175906497128156298499980810249188788812278679237964830926955260442","1","16757659524599450133248500899781253245916794066606006788423368637462386531371","0","22589612024734405890822880942465564427854458670505653185217262742885569536219","1","19767427034920930007787059090765366315995169398161526643943131788764369265125","1","21016845507719647299281546615957006822474907458661037756535056636683813405668","1","13927389643375205925400685159570931599168921773905346348012308456870504126023","0","18522806981707913252559518302386424093131851813015083379031745516337678690260","0","1092177444789557213650973863329087942451438827869880337030038914305329615401","0","8931346265860398418765809594578595136354552949927987976974304922249459559372","0","28857911577129147456158268982822544200823814193530344927223754606108737786932","0","25681138263837477570636042232754772752971120029201040072795088526983126028841","1","5139791840018857106674734256078923061365326957792486618740781009964951746832","0","16414622239831774508647183973035559211173350879604946217236725269799447604336","1","12846130309084363804677479084169603390679587901359353309079932681826073249356","0","22136758284687149849929206094539549365475908294355903094084332234687380424512","1","14183823803178322109679247771659068765203589283941012667272547493808510059988","0","6468265010081648883091175077865253586794420535429554660995625999187742962361","1","21176551423019075745176278228640153013139996297593088822003551491295505023323","0","13083029240355580815591508947706814537937486977857758579865336243771664713425","1","23015112867633120182823272100116149737192280791087327741884695404706010712309","0","949230265972800584661743602204227828376854306471686180018169765334589974798","1","6215926736309253331052089301938071999187489102956841989943848494139746573140","1","19394123465547216151746308825596754691799372002817890133636161955280964347961","1","22734799087589724504809559015773367209391287729268445302377522476330784058012","0","0","0","13269575868659627207763922223028139789438020009442629600841009499796992671799","1","1","1","27079223568793814179815985351796131117498018732446481340536149855784701006245","27079223568793814179815985351796131117498018732446481340536149855784701006245"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","25355274914870068890116392297762844888825113893841661922182961733548015428069","19436284782691439665036157391654746130123314908483187085334174361877802920755","1","7646306757730454054686805745320215980315424226523413110118810553973759747164","0","1280550145769334701200244296490875287679441171971065341078980948364304632342","1","16935924333370280923413828087574315334502946050983729745181198234236700203046","0","8445563828630385685144455564571304583670350817262157191812887920287465862796","0","1888335727718661413356340952313365258389266485183741415205816422281326465147","0","330629298621772511094425566792792276967779335796662600770089723423956177900","0","1387978881369698639691395600243171568285892460692795120242152552517416420893","1","18230687030144595081028241511397987430744411785677814056418382766539048998557","1","17708186356061545185360582486176949934669388565006799083599245824998237697204","1","21010533091028434444492524053696261722608083058886233520007999863722266111036","1","608559496997637273688227165488693752449590840050097491047176119889437810467","0","8640257642056699347264016787683963159499243962652055070700848971334211911916","0","13720785109504571432638004862588016380298366729983927810508748591418608037128","1","11191455820716718298954016775461451080910536628832426319562503726092658306767","1","18027707936265008266086582051012729219380769321317666172695878691503107420117","1","2357615115828824637014216425799410260154403350964396893661900181414789671141","1","7587410302450684669457734052649718611297262044922215848639795369550946561110","1","5220578080833016765011633419405899093611513402989067982308960648380829734592","1","17024345053623329997800003411667038765857478627334715794086397044639532355606","0","21610023000040953038041521011406931998623496803124793909236656758287318423633","0","19333051837557990426955030289429204211830298817295494509700658567682640578817","1","4335434778528056895317102130751739645681030237271250893008529407733153779028","0","18976276900725821239702778735904009883458604328917858658004102591559378511005","1","17675371568697003922603070764742187788859268888257126732528416448778339699374","1","12232536959090428904624707941138254662951292077055330996446138837702032594010","0","13728101125076207974509118403951556166434844615336226176979496453954004976959","0","28737261887984199347384981686306759063850962044266845742072956741493383682617","1","22128898965461504485049124978084857405271734169240674887432905117663717125551","1","12672144328942601509486624329646469045727100456052918480104096644662347876884","0","24999940684720319916515696788924879547813976510995545307869529851686413611565","1","20902334510926749963650908893089515658294432564942452919833200706492900015107","0","10085677290263140670535746536227264343438901523786202118168810921510841406423","1","460202733290905416266215943462910292379649082505865178643287522158563183500","1","4749185123250420181928844081470304316065712700795775973710064390647432859919","0","1166502763069514445463576772283670902093498992557547636664970099460716601024","1","16700937726156976969853664623714543200039897554141953755689789656083990964456","1","27095934729356544964682217535525960120837915663649333999573699604223315087105","1","23070601629332532470796314019412831355411347698011022369802473533423332109507","1","16331136618758583524802340201836026639340529340961328299304192863904009884952","1","22557967122987706568490624744413803965759045345937021955647508335504106293065","0","14124535051948299888194014678483341610164818566239876854542431698121611698922","0","9199168741410911319525521787080125580624812825482854727981380526044291581580","0","2240235066655191176015594697852232494423795236713738599306041484216293742202","0","6347645518466180221302465909274776291749181141754218575111983562992835892214","0","12495706609138919583533246680108018023474285665271431726486575128811588478602","0","14047195897660762630618245010404779547954873694557574570382210924537587730159","0","13135496547547772458025593755937437192828817646707003887804423672839811184333","1","4797508965589516975091176286486873364577605756775869679067215994973753864897","0","17673764844211296075149262684512899025469442779765546879033773271261428663019","0","23511835895986458898296348008429549147283415548052652972582835737637830888776","0","0","12275962108394751282317816883220368035509564621851489216803286300082708833639","3256852578986735897332166078994071842029507669697901307227723421884103680460","0","25049757009716848398765357114585910669110375436824848695416793530172897963564","0","23971162515526044551720809934508194276417125006800220692822425564390575025467","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","10558424661274088416822814922831570393144350878114353979274795063062336108758","0","1","13","1","437","1","14015","1","448485","0","14351523","1","459248759","1","14695960311","0","470270729961","1","15048663358766","1","481557227480543","1","15409831279377405","1","493114600940076966","1","15779667230082462933","0","504949351362638813864","0","16158379243604442043657","0","517068135795342145397049","1","16546180345450948652705583","1","529477771054430356886578685","1","16943288673741771420370517933","1","542185237559736685451856573876","0","17349927601911573934459410364032","1","555197683261170365902701131649055","1","17766325864357451708886436212769782","0","568522427659438454684365958808633051","0","18192717685102030549899710681876257658","0","582166965923264977596790741820040245057","0","18629342909544479283097303738241287841826","1","596138973105423337059113719623721210938462","1","19076447139373546785891639027959078750030796","0","610446308459953497148532448894690520000985490","1","19534281870718511908753038364630096640031535708","1","625097019862992381080097227668163092481009142679","1","20003104635615756194563111285381218959392292565741","0","640099348339704198226019561132199006700553362103721","0","20483179146870534343232625956230368214417707587319072","1","655461732699857098983444030599371782861366642794210316","1","20974775446395427167470208979179897051563732569414730125","0","671192814284653669359046687333756705650039442221271364026","0","21478170057108917419489493994680214580801262151080683648843","1","687301441827485357423663807829766866585640388834581876763006","1","21993646138479531437557241850552539730740492442706620056416198","0","703796676431345006001831739217681271383695758166611841805318355","0","22521493645803040192058615654965800684278264261331578937770187363","1","720687796665697286145875700958905621896904456362610526008645995639","0","23062009493302313156668022430684979900700942603603536832276671860448","0","737984303785674021013376717781919356822430163315313178632853499534355","0","23615497721141568672428054969021419418317765226090021716251311985099363","1","755695927076530197517697759008685421386168487234880694920041983523179644","1","24182269666448966320566328288277933484357391591516182237441343472741748631","1","773832629326366922258122505224893871499436530928517831598122991127735956215","1","0","0","23971162515526044551720809934508194276417125006800220692822425564390575025467","13269575868659627207763922223028139789438020009442629600841009499796992671799","13269575868659627207763922223028139789438020009442629600841009499796992671799","0","1","23971162515526044551720809934508194276417125006800220692822425564390575025467"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","19436284782691439665036157391654746130123314908483187085334174361877802920755","13","0","437","0","14015","1","448485","0","14351523","1","459248759","1","14695960311","1","470270729961","0","15048663358766","1","481557227480543","1","15409831279377405","0","493114600940076966","1","15779667230082462933","0","504949351362638813864","0","16158379243604442043657","0","517068135795342145397049","0","16546180345450948652705583","1","529477771054430356886578685","0","16943288673741771420370517933","0","542185237559736685451856573876","0","17349927601911573934459410364032","0","555197683261170365902701131649055","1","17766325864357451708886436212769782","1","568522427659438454684365958808633051","1","18192717685102030549899710681876257658","1","582166965923264977596790741820040245057","0","18629342909544479283097303738241287841826","1","596138973105423337059113719623721210938462","1","19076447139373546785891639027959078750030796","0","610446308459953497148532448894690520000985490","1","19534281870718511908753038364630096640031535708","0","625097019862992381080097227668163092481009142679","1","20003104635615756194563111285381218959392292565741","0","640099348339704198226019561132199006700553362103721","0","20483179146870534343232625956230368214417707587319072","0","655461732699857098983444030599371782861366642794210316","0","20974775446395427167470208979179897051563732569414730125","0","671192814284653669359046687333756705650039442221271364026","1","21478170057108917419489493994680214580801262151080683648843","1","687301441827485357423663807829766866585640388834581876763006","1","21993646138479531437557241850552539730740492442706620056416198","1","703796676431345006001831739217681271383695758166611841805318355","1","22521493645803040192058615654965800684278264261331578937770187363","1","720687796665697286145875700958905621896904456362610526008645995639","1","23062009493302313156668022430684979900700942603603536832276671860448","0","737984303785674021013376717781919356822430163315313178632853499534355","1","23615497721141568672428054969021419418317765226090021716251311985099363","1","755695927076530197517697759008685421386168487234880694920041983523179644","0","24182269666448966320566328288277933484357391591516182237441343472741748631","1","773832629326366922258122505224893871499436530928517831598122991127735956215","1","24762644138443741512259920167196603887981968989712570611139935716087550598884","0","0","0","27079223568793814179815985351796131117498018732446481340536149855784701006245","0","1","1","23971162515526044551720809934508194276417125006800220692822425564390575025467","23971162515526044551720809934508194276417125006800220692822425564390575025467"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","0","1","0","1","0","1","0","1","0","1","0","1","0","1","0","0","0","1","0","1","0","0","0","1","0","0","0","1","0","1","0","1","0","1","0","1","0","0","0","0","0","1","0","0","0","1","0","0","0","1","0","0","0","0","0","0","0","0","0","0","0","1","0","1","0","1","0","0","0","0","0","1","0","0","0","1","0","0","0","0","0","1","0","1","0","1","0","0","0","1","0","1","0","0","0","1","0","1","0","0","0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","16566158218299010314572511323790813106459591386979364327331501069991058054591","26441426770524821297811244159477111066851804399003994314458532622071376337536","6397587229670425558461781289352113750702542685508974447237935647606559385130","26097919928608973693373708808116379419027379285174564374737604524553690474316","1011734045297723364160805761339033091558823394019623170537457544983690102178","17742328694538992001887911769960489642679690910264825734115559526769157969473","529151605345205515123349495084239310544711944367166827667717972953944476038","5774146464586941783282676917617167715256453775893512256837603504707408264913","8475934973155173274186252587338178370216674127570216884041005400350119136682","2201368939323031656346057117262517637011702972350722435055590425753051733899","5053228984489258328076612208285780196334952366642198249638590015467825650330","26922883804923374159151760997956530331124743902540530373813297860583848583550","13287760798049574846633637639096971856390314052025853941860790648784551818573","19672409225949061261405195508980680565334265999635774597725631128494181951933","13266363088045779503350782992379791461543017216249655689146694176754470634484","22283361835000954136315231481270540187696574508354281776059508720951950122832","6259677256550619046298763180872148638012170643898399165718322012110751141922","184529318021147912542812606565964278180981600390421132904572137107376496483","7842767106098472872319156580603991854302475717110765347556122507296833466008","5926870493089856391348165003473557614621367957701041752102921615963251038101","2150116052218543337056289748708483822802541399115366199226841427930159475648","17039058318918611371203911912155949138757591484660098186668586559951358748683","14483733155631032696696668581849798934751429332942656906188186494240954949073","11485632197152637224115647865014406077348145530887222402474590120677319760748","27725117275512102646964101723926873324151961017775776459122013978222896725925","24333175280864301470737048435126588702298208675119746735134750711039342225898","15078821326951142984319113222307680214747149527582407253786325159269199618637","28764151257935203667349151725837515610089973091303011044034398835673220547384","24530371814043811791116027590799622221283250351503837228710481868448862806477","17455435232439472926759225925924440756260282950203370274687920239060023828798","8278698762537754291119615220294209846386821713810860431521910232931520267213","2586301333005503519434849492793244622774206486151500581377624096948997590403","18082189947037494997674462428055797894488948969331358253145469766930492978515","21461597833447579835440842554028072507602151353066582194435028902125832683673","11657450207038848490170181426584201928554791148459679122280307939296446119285","15385382192258651077558917804517986478708326983136199889676669608797673748945","18198720242026240942801141218627149293151536404166083264845487420237417776733","26379732330525086992983937902782455222374490621850830029102017119848038073581","13184633967200530362980487379373266668052457148283895981036241303488278669330","18545479827704583770307681846086169938627461921034398178452473515152007838847","15270980316630692157983375253678417476663342462983683695311070589797353887569","2799201719847378898728817698681503816586212977626056770581461747744424868789","124553887764379391588349567890875836419707123746509670776093231941273524742","19128519096644488139430864765634198394609275757056747496241107929772874777331","12688046524692080166369506247351954530186204880891107479508196463452352708782","17508140559650769125093805677169740633294654083002408499173583649485833141483","14159494385187307919333527649792227274204607857891981569972913070678016237417","13551113885761687930628864239473235098764384751710760946120443322013384462440","1397364805380248341557659548923657876592324860570711376666431953467458155340","15963415423401992800602169899603216488160246171699044100479646858043778837870","5607295175593061499422845777238083512567918999108718610214356398551529672900","6763059354944631782433489239658601399888123184039312266568011479567066146432","23163294090619181111645750226614505693680612609881522619781603288517240233188","24281039728573812084460801025700430364139868513407962709174269424384494810343","14757123241436822587757230214838955236825158303435154090455547316146031820893","21435631970170089276884373519196476196411836484061890320213910490989742235549","13270610009603070564962106197633053241936384839181012979306583813343791125341","17391175247738491923139448019394526597276985816428369809931677423866477941128","10616832396150572464131283230538779308890745845694056910150755305475754854128","21532951263010841414601491066447941470343585042656598482439470259432746279154","19294342309285443913495934405784050047901325819887541657541617756534618553249","2037379803010643891191569737604935501430317643471755841854018485664286404152","9300897744844277663996861321819126981051942271749125223694950592528077355112","24437759458960656050811202177475323034860959686448063290371068324061959599339","20416203246922345015739345482925344271063611292420331426216680731914145689950","26841635661954234549614420336569449055700909398433923770474054963687738854938","13038455760704178871511315120119672844491759877904536748514073523475466800780","11688274515424758713209465474530565480657794721103930651023073320790435931971","6798190308651451055304647404643873353123757521866812063436783583077270050014","9452010845627456891329191347912732979272840090556214235447983045250978261741","26051296669038931862305042165009470530682348342453085758935604614468810159650","27248863435240087446276589821310415741945404182316550567926484178249122572357","11395863228846638674491614968936145471086031564209239114307444309013177797233","18493589628049795349655596753157713765796822551029072931925740506236342915510","73835325614618484205954848277108945305457651439519223036108360409292188823","7505209867298444985682493509201816245105209563473577876714410350109470575060","10931106804046270935582842737261745057214945207801377645764914140026833928906","20424228414116593929480732508231646873571113282986483129668118544530945076826","23793889197264228582621500664285433979490583391660674392428931898833904065939","9057916850951413240532125542162657304577926792004472673671636535336489014482","16668586972501766036359383174157976388452231512791539084962194502305999178382","18791682001405321270494601356505571862631107712276364535014143505080319865786","11638767523093086661599331079091086955516138189296897805535762318936876438984","15045756490088308968555543576996802691846663910108269909250648916768653447930","25320115834656703761670359024597862807551628170836468525754397322230738410407","1401739744692355284049751697509209300448554269233610039512407237075348405073","28266776761904524081495515179053262018841642921182805122664997846637788103062","20230391008160779946545277333383255214687500933483039869749849135448715974035","21212223928935864802972207249067060829001897431110061746889740788304597466783","185234162083430884794747410407237965092238904359170446321566374725983955134","26263368351147202843176933379650536510742471701935690819718246029297862263285","5310559759216335285863335337165474676267290488524726846347715534994490830980","14574242701328047802379912929197269225679993250087051826314114211233783150492","813298596598783227191140000192964046288536092317308349155212714112154581050","10775111949377859336685725816496150043187517069054060601658895530406689959356","14849997997347573900965713379099531386688744512190755808105833281488799706394","25732456774827750833027869946149166233987774033534979844370164712473987682376","6871456167673639547175487012992893982578097366559561141959376908516852929702","13079892284924182180703122524271498656178235989561305059455476027286575012509","27929046968457809860305106186389446852348236904416942273718236175387239142708","11736227569342461696619012919566736293683206838316102898559506304653463759144","10164207232351468464994791742424900888953105801537158437212634965659407375793","0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","2506595538804227558081502092694865896511252082937566401496144142278591292801","26767774969226064881718079980702471040686895915367888761988204324682810804503","20096600767124775006837782109988885477228870115060045206028611272792875216609","7256574406509285979263067868698350455288510214630887197457311390758368654458","5205655400786629304035073809240023694793146530839834661650931407052706075002","19183721304528945430443848541628057263045319112244990122954428838843808182866","27336283736654893627313057594267147022332999503386135690601118254934890373287","24664675070137279650390763989442330453801375636043492131899032367561660166655","5224586379528868216648109263615223248802476743400534358336357175876097687080","9657218522432225278841072327966983394793916077366965428504336127884724101492","25010408419784028055492311952839681884416031504282978885590498859737739219416","13786871276535894846248572378728374631611671072956698936954755823130811710564","26763812489926213484895663553657985583505624842071093938014842993871767872644","4298259196804816060779582204707899850136322295092742543553106290321858941777","16821218366192041927064180515952278093401267637585565713506126989695702505240","2697608708229525245310409262757599602172987339442291799435519092022720611238","9761862510400338368940472080948639174215546898632370233613501899333575695747","23097335226709238199360865175041923789280588937675994917299975409086519118941","233849947736647945997185297521806773865326964823679209522054052352275477797","23529162687938748426796891809733450906523948653813486181654688081525395760141","4922400470742882016838371115707933836140343779899714480448086847302542353276","12931341385676692367694913621823939325721432662354059485924157873437309492467","11608065430326395242913941239023639035130614059723426610182934136751717670020","7781197655207184958247177485327327646695601145934071625977389781857542400751","11241085240163329092720563307157119286367864818511974559343391067732578289449","609215810061451453830911405448137710949656969717060646052217600429991744252","24036193636664180014324426915764172854048782177919232029851574929458548566680","9615441434622406629373253541124013596348682206407761740546284956739981794804","8005809465441718130799112241684762146022576694570542322305216484791544825600","4988273799525811165712271347772593865016129402611618317158112445071058325213","19151906178343050772527185556871571856039593435420591561020703684609100285802","12928068225404627195722602423157806817175085488636158646424090131364704651662","16653870363272759957787067640263132741832727515918491382534357869130086439938","24259126444468267467908284233331009373637804903958492232220415034442247155130","6523159307877364735894849500212346495470677712550777267376207118236646640360","5044332881342778997676148362643020160824861715016163333237057224341455113150","10835350085210981674165663250924473732204253517032989218111278747026633213386","11113869429075149976407641201142543335220092678250847208776855344219788946528","10138658725589490245811831390953811113664334993640098274957582213847627883308","19577522614783327460993146352410535291896719151323507603737232142118304175649","21748181534741819294034643178484652108660186645275773711519516872866354625921","26339864680383895998706649035517573130760862665100547858132403935794844096043","5437984968234928281104224663751359169719114277990669799114964786516909146796","16771057674179855505980953624738041760262262612118516106955574277546544087106","21196852997317954501322344307709478352737190648523734658925138325151699291888","20368849680625987790113898546652152865085408360185254833523986697911898932332","11010995202210023960320480917980016827407025529258149570103989534359437190540","14127920120792497791534147099273847532474743879519245676257098849732218077997","16627001282282119554497041486715900268382888333508162560548438842648680913086","27772038144557240432503351113201324533759183997899728546374462028957984797296","26666311441153598890684280321721426366732534043585730289099516899097147778688","9826029436109148754712574800431902523389820626608727530863113462016588589858","1359643776490004685489579493579436004046659268998971016352813831229479737543","27086856986060559051853686712080057972111634800776752446008989285222574516654","19751936193681813607464080626090278752853028091103756799312099450363242831041","18965042491041382537858556830622880801074534880377816569843217421636221814265","8186152906328043602487088383176804750533754297421479687820090171234252284230","16940722809980580470554216963484054094574359192752274762512411146630033642186","27712998186440176394253137712144874867821692212097783427236903271712199826467","19847979817369701310523927006908220250323809549265473896206705732318901859485","18266483921857702263255239830433816880048732659586660927487914118507222443661","13954275127243412590424225014637477192121534237119291800829357253031524010934","23137088040301505371198864392509820671912341487804777032807980071430826044296","26967842905875219645558834807574952045754995966725044370162270684866941024995","14521335980212611603614324422857841970581158537661384367921297023161543760207","11066968948984623372176386594668481280466687887137048414201296113943739800820","25509026858508277655983578876803838391420772436463513033903488527905855145491","3001370980950426340780442516495387602679992605928818330496966131811034543288","13793181458286121684593295463643736648411169485969165809703023850583375390656","6275497180687715371637961125845052701708199003668446209895215813214340638631","9306811454547967913529676941716418957621982632363420242650922921200836523724","11793107920169601679935203322942965105604786122295742362321005566607881728561","18272226294930131598514630959302835720363426935149644857245326700695534919356","7644378544068765322321376172586319795082233804502087819533502336753102008604","4884277464015409967946063948093493005777169718982496346990048961719207087765","27887102412849117533876782878377144359533553980522866718952815262361932206732","1410445994280920015457603064671582471285112321072461974959960277697323336273","4741973310847000783968205021559796498474014408072157769012913599712006684976","5452981960386551353777684964571819659093160140546660024673885427994201764961","5095522870074237015496849700878634089122413478696683619087826598335357368627","16319632786413532843266420051407756365984619283735112357318454736176371782625","5026394320997149678461530524156298182091647835039933542091062644660880011460","26997615163529190892261951510268415028431124545708948898499010838814447983163","23463473445790873846041644723829597266858736748739824625949295381708265317894","3378887757359024106632271001575438052273421047149388910429900111176995599143","24645164798844262206277818231578812284449953481723689161513327353722879116109","17579107508106618827596938498279264193275896314319729490020306490672884444507","20726233248947591881826651173361461480993517375206454910946520411509859324663","727945259722922233770721610172161194399040849692329102603797422945287910761","9782365651976248348499098646901250817279308616551174520352656967195983076689","25051370106911178537492671531358913520106936152395946641802342322574606279496","9329318617067332661394481036726832154000707497086860407792431578273380371870","13029266095182467744585486340434248611808174175391941545741206366700565657882","28344612868164734494684116402791121746938720892206104488514477048842633526641","23424536198972330168506508195776082430680976942551562499990037386013423822999","8898390332981567996667220907768159905978924797565172332750880680532003306919","27526176111533023351105006909515482394739923491738128921049434837448390278274","13524210367005114749104612664666775718496735372740336835969678605268502390702","11762949659749771248230967091710847393709918075951701160955656024798695254122","1435800588777595555725327973287536927883879329588028182653161915578655880581","28309095459578737009949774130146410354899957409791034103465923864895715777068","27512371038260788298083778120373756142083192513048176501795032510939340265676","11743671994011603177427214501853065757675477107506348094626091742372190739316","0","0","27505515645276319670091566590969269414415058883788008780567907715545658147081","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","25192725967029825867267144818391379067183063352909007176452326817999763196061","12963819364456635298494635179335065755829911838251146613710931454539699667421","19805072557185796759726554626205295456746091626249215154319947804784905445261","9748966764103722174766036713450893335299163516643863902848633310811453245014","15603901034514416208171760761863180331487365604513206908789019270042695002359","16636916336003565095484581418603274604633727287394162280838872174688300336615","19474277821095882216302103955270017011237578739327587920258255076769685794944","6304897400646722996278134984490289788923405017892144016450752895814267293622","19164872997066854991018921586285975078652547117470449845473213023660654616010","21869747135884310231613552714863977264628898438359589628096153609518018727487","22216145264009638412301400048343314701032884485564650716104633488470276430354","22707121460428663572261659704680745285972648642189892030075161044180386766923","10595686120969806660287103886949778577776475394126102514442304688075759992051","26142358806377456979351173595293168752750811107947409258060928024283883837151","17998539114579566352541171230435610252438488699863287727527310612145719467919","7614318352530771319767726008161889371408516538214114060756373814179096856474","15608711442606565605804453673062000416506616271235915630684186003188066402062","18203975843864094215526992416221274961325325306430480084809826137744738005462","26020215648393952458242125847302376328001025185729997358893070535106184475156","21052954637913715705229071340582871024485946645019425106073672270020564850969","5830124854978577788154417501546957485890364343794399854604058710784864508447","23627093633929383303189308067732587195152876948228820424145053573525600498452","26749966241560478303784936963184258181144404978713275229684602444185116564993","28394654994264708293911539741509728275303397788397352387252088075128601923899","1205458782479794211359374958194721139997076919259853437233688942149736485114","6140759210925632249097586710992981096102581425243197192071407603354108721293","7402297568581773709871538313860197094603173484546584980154050644547359226504","23799840258568004595234660250952418100014377259756268832307656422485032641617","18421907147771754023156165513197779927388868285203474206481109843683375204817","4846309546464503266964485574380993527737567901832060873089984463248833860173","7948000063498222839059820082019579289983361740744176689619139046022175004599","16331549428459520884981361552901705152977357083521834001911131543984299707606","22021354338638649727024838829442674225316850822493729661885343345187062016159","19848351140876541157392316076165758255843364529331607790263070092809003210288","22390940756017638438038611265059577023260743098089258544582425551665421038171","13138564418702229740775335966214573143933408755588327166732136264627958930252","15374488222502778650883582579065899067009425374727507849163035552475419024583","14174282247598614633162580020459953945700174249221073659155694725415078085697","3581338120066051700365586730956620363209040234301809667501733932277921831744","17374512346382666977256240538852042760711618409889021236466727616422788488849","1926003716542953991117508103582671084040563203104376895808840172852263758871","8312293427256420610830180203285358298292375438653037564066386423282556441975","16975829362172894575137815398740028189524312221014665988888657576615884107905","17993109333232935408488087812116896868825006797695492260434203156811601987473","16638496036904094674072983311653803297210221418004170364814785744566896248708","25548185589759430140339950069456051879574943441413953000258190923901488121982","2060124213001575924749394934180430338267895222276181810389678123592615719093","15548420193172633012453874319060797614361334335439269044796814911578763420611","11923116652515403533067811254428346596951603814584902605288263243633366868686","336513700080151449844270335464090921276290225146201601572851947429884979252","26215606202226755364832332554420660668136522199258900426912322797342535751579","432686233565551590055935875124882125680386776853495744450364807486228358062","16527695244999990062818765362507168306840138671069842858594754534915279754856","22889234437169074719317189510046206040406973347803348050876119506353614829592","25111748733682654336288148055494304745416995167394568516206540743778235649368","4963161019757372087313874186721525067932241029780518580462482161655715395438","23543171893157351572923786156064040308441975531658070223785490006826967630265","18446925165785927594913994082429008205825681519290373275476905075196691008079","1334831535792712685834081941586078451604824063293686073955005480109174768544","23084193977471843328394783958005580044384673822415147636323831280759573310724","22180902228180187716079562135172705962796113366413105795911068218945692725189","17011027935686926646324198478257352934977901312145094091778316955591414965101","28699729479554270145263290746280074311924266756896145943210316517755808650230","19611240551264629708075015094652645692503423133843846812371218114027014404307","5604506921335110908934093780176324795693671542068749112782806068482751692536","18437741030744063280177498879669266487843098156552904198374648973368330835673","22899244871720337561922531061021192383741694673837477672701985389758963163786","1269996115879089292652500821227475785014818032786781582991777166157232374072","23623638305105066873996401700415386096128916643353873321329777966011535425526","11889913955636994149306055695034653259221489098625306518596232551627641234060","17193725615494524255218518949392066829103638487744815993702913008287753979018","16700853554325571131577356775849567415592693526801020519736102077730696174227","17352892583808885362402946788866059473858988916465682066880380633002496648268","104995029743771311390269724181949157826719942335466296599320878275434237674","20303105418397117316201293895995398259801312625524442104467020658046825178316","20854230396432747950641309665175955893945560825776359810940966034641358954338","20508614820523965599883145137595606718126939140848247816647449220554106679167","1275525045376839859932848643074482556742502743028264067075729387486957366004","3846845075769322505258665222957693346870353466353811368228528523953574234860","2320389804567847882432190531431564516695071009912578821520621656892438444966","28465869082176847920325557878365894425387116974680291309876363223408078559111","13344266935641194995256400147545137328850682418510164585839654270912286819599","6793045799189117142766204054546123643456577999706864216322695059157120297777","14023553385262251211611690936194833136635192860911460888937524862616417688329","13193126106748612563393856916006920542298952695138675164041323008531084341833","346169722326888983383588606095087287518944573241257488030688229835363544249","17939204489768314058188234981043599241004585130264344819451127923639735243960","25540830081416017128899605306081811466897768423828854448563488119010080094529","8519519908705629857281229589943351298902620993544003033647794182563116079526","5737134152831505636605886061925462466207273600830207234084830567740358916930","11144454958549337016269042752892473859488594339489556800020576491099431591484","22412944288590262336376180126497914254681451614502204674798936874553241274580","19238416262879228273840855773986294460530807002460019176302117061071312117776","11184433067736672133824548080024259876203203302059591380972926435051622453106","546681754231707475080371536366907597895398928896760866434682756900694380565","14561164702115871125857465165880635172538558520290491513043288577032279142115","8078875444241303371367106871339531116256147232320119224125792667669849837836","15969283247461285247422129785529113616183573073595646823003895672948173904995","15714054802730123379662932218907947609106449706046705845979230802546743374486","657373212622951493271392794820694010684726755819615513144494298689455564852","26848925312166983876606550975797013857209630207439592610970365768284280881008","23202073661083370674199773952149128434951481243010410236304688762506334086945","0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","22860266939684475301794614058693942110243972141435312787799245486290891561306","2085712648583290687013900717821265240674773073202176641280622713790654767189","16795038186752236019261281264056999765609242225772602334014576713062755439271","6999547849522226429209940046271943903138909232715786783530737021659955497857","15306023385181792597847612675184224815010206152006660692731467786243829296334","28006723892833085574182058490470487661984015632834144823085829202914893136361","17124182730152543324180310243473503143062953146119076871812820943011965138574","11567217220308844846035674662861030070748846202695562055878227843242176560403","7370481986760851797343511317918613616596265245053100453905319982268967288337","17406325796981855571708758211366124614753948502003560446721718807790635399193","9349836675870695678506016699970654515401235682634051804680650806565061564868","6268321764744563004733605902639619844785934316557718918741594771114215619925","11108169606082744841257129609168139209491848607908150259565831850758620717473","20118526693279822705722362453764223883484345223278575134064250413603230958580","176340176551757287247480270994141628609573712272299508993967663621193567175","4520064606152249764706972648746938719225567454795235506517383008310685676911","26840916805893331217412735945308788799462185053503056899572683339834624864121","18460094743287597152322807680944001223868250318787901870283761736525153512695","22366154873582406778222622795983780870877576625380177199726126262111247998251","6875896681514789719710495139881287504772410874554527668675806304951276219374","11280338717673676326374037485971057779094047873932882360061426243477351673547","16485873622620060351677282927961083417452589653759694550458190392046445817471","11453875513307178601533337135464553390559188957834241026325361032284379551382","21732381762823050017138651043274598279619361879768530302087616449493347746325","7125332003032983517910557545115348084054123202031521809035394374445814064708","21521858995415975879048726357353746962094465485128860654803099869644582475296","9519677416407851687667219157686825247575880095357963106581252479120549646534","233167804733754975538618859562400763779103573635406742073540383709705647953","1829702641154491250653000219720472833919802144477991922399284043351029087310","1381449610964380368814777059233013513396273121932377681251359192504026386720","26112948207337085119114809649317305652135786681797867555519405099402578666339","20880183600871364399240012793534491975859823001954199358367666053622896638644","27159050011555048429567475267541459249896535252474761257247449952658161075454","28394181229559408860670229447630767004574114684258286738160308398610664695785","9690786871508420666507215757832791743012688641934633988137855859101726759379","26568698756708628577857530758151492874351625882827221311998582711763607087163","6981617807817478486573839090113502765823531082740281862717281005365420731051","15398013207089098200249305044548719426246946252330208852779247863312403504595","11909375961710186105745121149615860545679401639967696780544165000816857209423","4800474240988506722077947376572248735310491909096907451556560628546643947258","2074584739009811614557076741437130108990089622870283269395117298165362201083","13680681259537027451547968659925821861229951682526409788456795826262788363530","18189827743657477888876357486353146835166110553046128791701270919553420729456","201198722673537821419533166513023761837517816193734879727386303243768142339","4512352313295427281771884766670486896236230976186244181249976150884904600411","8885720411234756381453610879663834755877347357135229614333797006621730381447","5383395544598756771312602053630817018138175433514266774709201850608946992286","3735215602584907901308578607660540169949425452171467010028934697535262337350","16954931945263855788422600147070333069518814599397653969044618189763434691523","5697905527295944360495282044925621587468210913760953367409904654213069540100","14573463486584301853128070679909979911576935791395246136106133920616867334357","4470623366337395027128687643211534251891405760816513023943083670507134354579","16528942966263009598546167166559014063834254879322993763760724434402309133558","19039846199762369837497837330691216316273842100727287201919844475402960077393","11256510141953148419660146164839505283449884105879820468720859143353724607888","3672773434785696451342307706529063658459500392251027491415178419602218277405","6416982332768093997764935785635552389958584151774462340121514173018112451690","17246163667921423131678596626924824205496015180012190920143809529469871280734","9266570696974894992666200065759598522067202829558939485505967956690080454619","9560427989187209850483284541431000811005572173595300587967628615721809169227","27311770584702280800486302318462961179333791871613011580864078108127586754703","27091319130081312937679373839868874274316917837341392170567399471471582092294","18734348456335561732781339040588944058377265805107666693854484506997021089235","22558794717114028675412713034743291654679661545938750412882515902982902682329","12799311854699316404517563373780585476965109311956248168727453576473802171137","27486946561782171581664291083946991901398212404671973893063437131231323834791","26136209146488245480190701514630925325461978479978628812564558948389626782058","4830138093781642830515681548467751284101744669116070699224629560048811360027","9313223357433983088354388983023917739833022176694114225862332916011309628725","4472212599864946112456820724688331379847178080838761050356048252410996291563","15895386805572759079172505938355086051708437650675843726893557597341945271384","10952827064148536178314377157485066906044980659457589086980872458323721356269","5238357129598164756029359003114353570695026379060270382084935177143139956021","993903164556768213434470002793811299372845618625906219152699819182970908012","8361599746081401564971817344416214813730104787694726218927840803886083566320","11516144861648338006287785204725485913425834748251033078227139316543454126098","5625311948506669425145721373034991453926176921025030604243619336578559197519","13263234301164244325449446825531437679534606576890029274050149068206859528883","19328392305831536353641685312557240507477443309667406142547165101245025064526","28271847516820363847545927917435059924105645776792179664719286543980659455293","21498845627760421587797865082327276539272550343065298464632655694887588741843","332828691306353865399516362125990220793560822527643115889749161867992992317","870081659120806326356854564401978184994949988350859644339523897970836189164","22151130446240845336550780424453983685240637998120007231842180256471831889337","28007837579161884294299132713615040397279358168010499197801965272456778866399","766268121218624641136479820184166209119712878585812722100292989626904411325","22738202227564115983112745223204817188588694433910454026113739707119028965719","20711168544576885683824025222998622036076940880977301180827579982263511250893","18954135980891704530118680284090660202033917456024298081437414949333872684274","12380831015262466833514396230250279224228821403783730707554356784816364254258","13552116265380257693202476455484175786308228146836312641160661598997724349524","4388013091488627191596118736980757060132620288832842896761403959649457939895","28081741108316821174679964940830038651883657041049542710744275782590019910012","15611620103331600329103768875674587605469453973585986853884935260280270367487","9336135145882264979378291689020283432565986234695015439827860057658004294455","21710165041735297445108212554826699579783472483005707681623491992589721630356","16521081889239737314090849169461243804576412191735009965255670431094332172783","6852197971877820305752656898205892817658372331174220321206271369290695485155","16339858385687437401679016856614354620430006714483465918526801915729428299544","5208964227341518234754839037657821839656329222433273460813782637258064612062","23057555630380554699638557889616133007536477241825655810334770471757508323390","2455652001168420257082510568051206887497488337125359604651543141585864988990","0","0","19947518773650065619750967109225579404288866181757397572042430065020485181749","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","19118128243389201884247255715862174458949902945171898139764672660209084158048","15914754612825511481657827387415040496002299773559773535706467033532451676907","9795907763364868983151175736995138113003736596110695721893109254953283553625","7221711323078659690947839083809546507100332670542688277881065028130303199925","26835735869982804137555937411903991252148167371900399308494873479223341787051","12109259742560131026585070087922181774794455634856116689249956748794785516508","9766754348638104341630162652949593711802229551824544235572039049901057692964","11796609357280557395111517960797017443926003284286428022660722978796876893951","13398995924897520960206674755010440738607149153017078754748516820283216368552","3144935888737662882368589452597131653131112529416120426061817095566613374015","23570186575280788361867194137511737353952432761480834921119435764016527204058","10388887309502453625744572987406701002456782929381655808960147392019456804460","12888299775128245727503247656658944758557548899502731263217925875457364706900","7004306355704272574061851918074697850573347711688942600037341786945504754581","20317834991230992894699519493786319624661441396955989917879151866480488567858","26163000237323703432647368228396000833133889790018827950267223526202777075580","15479786507733683203311771696624393345340755687629375896115621496559650894095","12105255528922147413595292475581266968285701689038682521456887342735972969134","26909427288580375441165613816365850979017274056938497688791259893157446327606","23391922828266980938159545293849738496774275788573893376448310816747358740069","527648173438857658913511761145538150428724907163835415222825157135002039473","27130004304313137551598200872827499352223598638931532554663711107136873389670","17462452983842665653011773064747571084571338186459357963759186537126492043721","9222066421116889029488940833152830006772353175748156302321686738222772433457","5396259552049825299013009922331348978982416943535227814635142293677158040608","23954206383286465175695849259329838814011578760995229315082654219843511036967","2954236588457598705436493276338019995360850878834524360146666845648971624833","10121571632521405153481690400960393841553652607528988140413602655797187210042","6593249151266546160196589500156224966182801060890273376106780724309351137951","26796428207040439439155153200340602633832613623782016787818676589118596732445","1213485492033665957866476797372295704834925356551109918831479660996984992311","19224134073528598352906478485602255767120761358393906674120798861490066855886","17575042857785940855231869735754666632287736693193734226901828175745958600962","7453594983595715603452591248574455760816169819382965036059426770492151882300","4800300465820807757201722561678693216656039645835023410183948761401680837966","4733000966532058946055286755907782769923941214920541505095014925150170999419","1748575534021434767998346765199517752324055767975210436151904892663949621547","10217878979951841270357381453744665973031875548148417710280523894310724375525","28828973462313713201274656742877348430220093275708060531845628982159957855587","19593619130363473394936972437494710771136331475258844382964917327165484720740","24574673271709207406582776278583748937944344762413001698413730898163923530901","1921789561040017136546229564167276229579042831860826091383339923373620891161","12304771452003148195742709402625079285647321802292640287727867413138978243054","18932565875279312813650348855398076386399034517709285581194952620611707213024","19844936044125804896847331763379114929726093508626909021148427288012841604661","13211555029941315814279081087642664840935809342180703473863076146003858574125","11810533025099459729870054585089259357863230389731515837319291361447755781710","13487361985029330563835805371622574213454872959685218563918542906671484623814","13359350592615169348474172424823520126087215130226707619762804115187447202328","3373630504037622807547831515390273616006243687603356193149734649096742994909","13651681427784763632719836917888667411746926051086654936927304835895193034958","23182466730261429210669928827840440879952020016436332252004631473988759732179","28220957838516951676633271006810693352911601422571179311892658252437781553187","28853690475696492796373575296632441617661722321683218261017741466528568995846","13297403530150960379568712113676754735440442146969925849884822272406011049931","8443067709507951373566055478469429309790885699112664317444320631874000981816","18349554771511030388895683967745963452553584891218402390407049388645881457491","15680446681957885992860306485347078986515818282050658253609997645807184343989","26982258955354887281534243879859512458371408296268891793918604490858968879885","2913850665245376759533505619478930566783396217639345409821457123719217492136","9698267682614737931504087910778527727015748462586292083049505591545831391768","10578208407049173413877187057218192899230822958835887829102099483380272893787","18128886263556412767566242118520550983860386384637317960220224155328870992855","27375388477821200033162258668098491059837665881318549565085243195255965701695","13064902166847580002366201080674308145688698413615801028267550275733016717965","6695017112424671921896480456900741866822402696234687067129219556115820642876","16824046840979248875704122039478924312272197083082880826103425302257433858210","19172883781768286209081749718864420356575993456637296122664232349129082264504","13725739201480146430236048263998875250731669360111879671539991527651384290887","26440112617491557241699404964566510126535230368922405205965317642524166476462","15684497650751374234875565084869183712527415591059925569929872351758434824084","22168925094769938832420129626514547899362823214421113146507192253098693525619","19523812565892735104790248398684755666974769784059983318578642640531536633525","13624504043579798330942539061486240379375417804959662631235381246476305450535","18192132888876679671427820421683939627542819922151412568201363877941486768359","25170782910435577532706195632841326129607524594338056006527678226113516409825","14098068745274769548560646995835334559932586578559439029447966611469006731695","17324334979517133601051589446678746886103971305933865419383579279205278918684","22155245489335477674320911403784975545432762968195309131124292000720318427012","3639986415040192701718185087174476031346878941694296192422023299366041171258","14987739398370889375977709812793344414672780219641253331123822238017811368493","28135057844390540316460616020453066899215325992406503828252658220894225810691","355735686743521315581716102376424115437923684990968140043718834147286330676","942661206591589758905920935459424194586066361666833370157270046814587327979","11014476173328059905231297096838650566567292221398233551452335151310185769518","28435016265508587409307484621463789301479474366315299315454417450189726977886","10273057969548896790717287802241395996550631101425764714514363185594471781823","2280505445730024132433060466688724096611734180676327726693081256236349101265","15599703763200642722651289263933758307079662663885588859029036935527943701246","3522673848847998314172122960541717727490812161940992141794906919162758725921","9184748299588798870923281419852404628660155277307153662038144515967655821888","22214312519108786822228011542112701747618338979303423438580352103912005514607","23975487576765680743509148550493271472147371369626007591664064958464980685242","28488394491016400375610426388032878737092852606289414292795935605133245817447","25870993357688693049733318344639371320865585998429819901460317492620971480047","5527326591496010414318970073224962665064772513769004706092337186992178076269","2875638043649097577381723904419846316407412074382476323418611220995412953330","5452577787522111132060960093188472866647388708975903393369037261170438897197","11604929853173844324838547241202880616273705909155880426866614419545474780732","17223414650847738268367424330342893654372144808301060781641306833277694031743","13318099184101836134735835638944707109538022596365456016996981435767338935966","22999613921619663124372301627165661348881675224346673106813328415792525860401","0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","16910995181296323392781929199024087950823627132607669211833654463437512532862","0","14793568534869649276241518547913921111554377636575330928124899715906349743157","0","26417578840809961829492264636169439535644996503665336212587002459075823771613","0","17226812692428806161876034708519274879207672931299076376106741650014622301395","0","3130256785722496725033708607311331514950048040495343173087420772389135063086","0","21396738676639298095009022484755261215357376210424529155099366140668992231487","0","7354201694479632534292872159984077662696034857466846569234900362482103675501","0","18628060932803805428023545738424483185324399040261724092703387209884312574353","0","16397658415089858574508081277709115526954159797382191151708686654145227958443","0","23448957284289407674518528887538953776382605577552316071580857526870775144006","0","9167801584836529337767425565551976089208759436445515228478478557732747111617","0","27835861372211898879874441604308317427999656372104998045657619124521655447565","0","8173040658631179378227664813542820620854468138379797646095985227292186028644","0","24179746166321180584575964423329168723927000017278320354079034008962929021714","0","21060158339037504551560248711263251089328665922167073107748782062647639764364","0","18362732857593947925815210167931039868348170553339145752006649622610243807885","0","3856677857653996114902491176569945479117993657061774435866856660861029013661","0","26902769111243619617942859254715673265423725111991923023102458011675728806793","0","26036923626640597230093608307089395853858136744261520348801713483610164464662","0","5668413378515128367836905525604384091803221947733935438646093485838842919319","0","4648677291722675485390798963480707092722573926606369839225647887316336983794","0","24260427342818641358841388916681772676075456189977800369756530040786515204120","0","12699567361102072180190276083106965163985314905534943831199225174862439303421","0","13107667899509304948833322505322993489998614958295603070884867647284430711606","0","27020134054325279021500333900469635546541807039919325347194666155784028301578","0","8222725790726680590513960961776905778503559857892379436702596672417803540539","0","11587797732693177304393470779799535876000450424836597900620327930643958275023","0","18032563110139486876592788530510599036383529154127543775534879446742838733710","0","21099121521376143601042251832718867288581756282117103015841816701131466897664","0","12225553037405474212262549277121102061469109240858021658712221095917055329674","0","5451886449345202899944822978197685735038752260031686662817350484372714362497","0","13629601659568693964480110932306889731552357502975280993260521045744112658023","0","7527177136096118051605434992056117371555664054755129014450618793342276950581","0","6275221071256084649372062841025254800371355615525945033338742316122321405458","0","4624130365247150892924088685685893257609278447604081047588553614537047019680","0","8255735571755329610764840698610795438407363479491898883620855727169619284372","0","23808049354346007182668495702158085542000021203393628263860274347242025200901","0","27335050284842492593159572883086000371643997914004537944698781018480692865336","0","27887541791877784385997153196091738171161761673633570812363774113753265446474","0","5612158962024133661397122215373425853637169934132162349153679337258072390395","0","5292945920968936412579810596832278492660141167033542015964160085154955285138","0","7709212376119056016974077810766172818193498082085242810492615578880045285683","0","23447856347514409520852044000543312545027654493569570385522337892112673432035","0","307662702136609054472531446999625864283104823871795749321229184059953187527","0","6608321007458014984096202514115981924584254771554210152316894010796283660140","0","8890674620584088891518568721658102978363839756342017954621561821240056980471","0","21013526451287814187375415535156345633819754840002488105642048206081895222788","0","13092070279761209597726972140724103329469812803557412227107924549286480548091","0","16857417481031712520332401524627056393817546181555916260330307704561566433417","0","25774836977002547383251467774630025059251163172816841103738181240494825813612","0","2578092316804747808541344087145348188919650188686745939058491516792334185745","0","0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","28069477951664544917049670741569781070181234750583726073720962028758450199864","0","10485819362597388614958730632910509757951861516819415859723972275616568222980","0","8484958029809420137072876315554744705153613921962342799362713446273704027899","0","25261499934358046395821352388038881176794122724144457904693535523382543121601","0","6336346718295879031100024174536994515112357702278227101404251229860129130373","0","27179125589732836174562958828273758695850375059008428567892415639755909962636","0","26452084092485840335248404913984823315112173560881420275721937690283443194966","0","17153109487680073251305196546958745112178100407069831867683481746559492271801","0","26616734538435071853597156981710319736081087614080420027770900224153788372630","0","7669518155950136370941963534059697091414109496816445637090072295465188277359","0","11515953656704187680405284543953577228339441111958456550999110839275630179374","0","12079300366298315255822629304619892830827751935028153988859684079533638104338","0","25044168998089890560709476223343092081720516262211159824542506498898967179413","0","20448083782408167475933535747771404745301137031870815120468635522762292010749","0","4677672559471702023313091964737694896482083917242511681408502046591525097052","0","9741825852556032346158870046159872375113132318667479881863237775135888543134","0","23841951957058822489298794561494677724048339736237921727096683594599785196660","0","2609173031468393620235030352741312295088486513478449761352974454783791966795","0","1831332934290938736169876834471870758108780470435787583432252887947576684952","0","20777412126381241085569661275795769303147042448633917190443859626048401114657","0","3954555803305631227663334659629780292973883332070208942479835145195246028026","0","7976680080122623825636884890659397076480059495345535818242851525629378407915","0","14270825029134867771760036319154576233298349569095791842112044632265578307116","0","20251439834115421751374546358792801642860975170242196602002557536287790484973","0","28561659399081056816647830643976015474040744498668474427570154907383748398101","0","2227076631918884029952385553525052202678579476346261238782795402502741809793","0","24319077262463124752315999158843740292045267294548129914328913023910144212934","0","18498635392312759352441944240158186922125116279651435040686566243797749406081","0","21115488531944542988981886188165184562910546751642105747338943111083654435828","0","14617772254173402596832443158204403514306078834238743511362749643447996463914","0","4694032151080556444267947504027907361244984975196393910111434376476848737351","0","17451376215493352602213460381597084319721222878054621362638944958411293469357","0","5279863646942464474820780194985156387201424738741763911656122943020063949193","0","25387629473044884815788451956825852842432360179356217491265664017213746898698","0","24968806393115598192997103307805669620764443184187638886104985418339096210110","0","5051423125619147817145545613317547965825623118446477508189330648951422471273","0","16219670764096178493424755489149741386268384132110489662566169951762445684706","0","4064532629252508964479771464342138304180146108087462109577718702929122237864","0","28586254015250663002324381746935253536031554613276472918065163343196575920729","0","23287090646629473141791617749007847746350174713075676503202101091957276143119","0","10075189561488219576281209914507065168439937831427513375325179555727935960766","0","16653790081961783913372418432917462389693704376370131253287831408605407837636","0","21721406203096682469113828526433694910701527078221364945609861606798472139168","0","26446405920460047055845506429314650905721628238970115898802526559132596363051","0","23639967860382786374631752893681372198142977668713185616381496902681911111739","0","11388603201468774853795367205597949513773224982864985297546057325887018390550","0","490594411334585524124871617255721043589176101980472721221166302295667629218","0","28839424057927266935832078550277071232991027505947430483404560282359042326598","0","14840798685451867782930810136967173970449519419175127574065168497170063974562","0","22591801788420330455084558029118758897995318099832744831404925087237735698473","0","5390406235300636253922483393989346772388935068736757874160320352216489737560","0","0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","24044420884006068893661418043306577101720660373545035744169726461912561731449","0","2039380997412487910829901425903174268067206327731087060444820557231469997593","0","6580903895292857952331106504413694616772849439374471898156072416874055480264","0","6993830445606161211462638637051392007088176259543657685085147634600677347541","0","7700020904366478003481949942640626646675241786072665457459295606094551555568","0","23321215710795039717480833072161926180441738112699849721923622013435648336249","0","23467223576253968015272356737485679782348722010239095493983126267262270371681","0","10943549241864590413690446832668703662213980220048955669757868386620724956885","0","13959379555341433862666617525349228908336419719902624420115711050152799635209","0","779425225082819644479392500828002887716104806540106490943474956022112544092","0","3431374905819602791403288776583431844689771427994509151183795387540472377845","0","940132425464284733484467036663995239151617156124274390044728447661581424500","0","11229508769524537571141771840036190995412206031650649381082765522454148289587","0","267669214837281432423375924688576021161781471721883421405944320673497145478","0","16106091374704291747299425379526517983113634939677267669490893300346102204963","0","8987444622242641456778387202564834293783650989254499780079534632654195858971","0","11506050468511284777797880065083596539854381624304928457702627143869556704133","0","7179424684440013731006154385356811054015553030269037299630558988066683571672","0","9770383115196659437537184537556139040021081189904095013681803525413244274042","0","8003742999471159250928257357818203200386065681320592628340929035252706863590","0","7879637870892724008481682348171655499188104141945470735457658515477116062708","0","21035284348847095818750169584191698057687052935383915938911812081515194916344","0","27407076823030176042150127313914242925756043880932746719361729908928605007424","0","8309692777390949111989686486772499844506252796297745007277119734950314182171","0","3790424007356889524438155942991350642774900410095967447238286205031128318305","0","7561772095195183540524129913107603489495424335318359034284570414493839118190","0","5061937750379761674126923779467266356188894301265873702818099395151097225431","0","23170691599828826416969766752356679567900629756968761613156363232805363426768","0","20224911113363006261048329609777942600940826711628902849744229838922223527446","0","13339296745492854307480220854727734233538977845939774069566750979384311371400","0","5589292708770367563225213420497064943591461104766255744994649195856339568655","0","19906305442647986577878183191428206973600427406346035536385039066490680624221","0","12875888178674594668247554131857714478659322223006475361403993479752768660046","0","9379987136840962745909605188856078430287267258414039317222804844978428735382","0","8023598142158527135298867922340533479656014730790148661160591839008833744195","0","7510037519212898312995731654765300100081977566355623097460242086788317810872","0","1303551516140357137273984222024624304456524740258812491794376461106107903414","0","8013649555679217168711331978785552756257847256012443210912020363788929835890","0","23655541976422426792801770105059761243282007470572679134744097571119554751336","0","10010566453844538994576219456793344358840362655086559955641404278130066524783","0","8005973417696427897766554115698706092246105189108841768687408190846066307212","0","7580821648340173038242597287778702602355285592245645547373074365022929779894","0","25734191161173417792143572495023880225954890136187139872671621778554623605437","0","21354161913227804446137826246367579090604555919051279895775011023448484043714","0","14242898124858501130233403778630082691324943639842875462060295404294039646072","0","15995681090694924063912044192120450220200673715254004840307861885758654729424","0","21669061521563162021492939948872720416354762525555622739155644470281714774585","0","20363175471844016715556971690988367148655151073432887736942820160715738738316","0","22578142662374125134624024451714097673388208440900236134867202582029197413675","0","28428492664258739736493780845025199847493562025215669975259079024066603095974","0","21186950231237716544297799697908728280003332797076504195274323679470212390605","0","0","0","0","0","0","0","0","0"]] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..5380927d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "mina_bridge", + "lockfileVersion": 3, + "requires": true, + "packages": {} +}