From 90122c961f3bf1df57b5a750e92a7754b9edc41d Mon Sep 17 00:00:00 2001 From: Gilead Raab Date: Fri, 14 Oct 2022 22:44:20 -0300 Subject: [PATCH 1/2] Redfox - Commit inicial --- modulo6/case3/redfox-backend/.gitignore | 5 + modulo6/case3/redfox-backend/jest.config.js | 8 + .../case3/redfox-backend/package-lock.json | 8915 +++++++++++++++++ modulo6/case3/redfox-backend/package.json | 41 + modulo6/case3/redfox-backend/requests.rest | 140 + .../src/business/PingBusiness.ts | 9 + .../src/business/PokemonBusiness.ts | 26 + .../src/controller/PingController.ts | 23 + .../src/controller/PokemonController.ts | 33 + .../src/conversion/SheetConversor.ts | 8 + .../redfox-backend/src/conversion/data.xlsx | Bin 0 -> 108523 bytes .../src/database/BaseDatabase.ts | 18 + .../src/database/PokemonDatabase.ts | 30 + .../src/database/migrations/Migrations.ts | 67 + .../src/database/migrations/products.json | 129 + .../src/database/migrations/testjson.ts | 21 + .../src/errors/AuthenticationError.ts | 9 + .../src/errors/AuthorizationError.ts | 9 + .../redfox-backend/src/errors/BaseError.ts | 8 + .../src/errors/ConflictError.ts | 9 + .../src/errors/NotFoundError.ts | 9 + .../redfox-backend/src/errors/ParamsError.ts | 9 + .../redfox-backend/src/errors/RequestError.ts | 9 + .../src/errors/UnauthorizedError.ts | 9 + .../src/errors/UnprocessableError.ts | 9 + modulo6/case3/redfox-backend/src/index.ts | 23 + .../redfox-backend/src/models/Pokemon.ts | 83 + .../src/router/PokemonRouter.ts | 17 + .../redfox-backend/src/router/pingRouter.ts | 11 + .../tests/PingBusiness/ping.test.ts | 10 + .../tests/PingBusinessTests/ping.test.ts | 12 + .../tests/mocks/AuthenticatorMock.ts | 37 + .../tests/mocks/HashManagerMock.ts | 17 + .../tests/mocks/IdGeneratorMock.ts | 5 + .../tests/mocks/ShowDatabaseMock.ts | 7 + .../tests/mocks/UserDatabaseMock.ts | 6 + .../tests/mocks/services/AuthenticatorMock.ts | 30 + .../tests/mocks/services/HashManagerMock.ts | 19 + .../tests/mocks/services/IdGeneratorMock.ts | 5 + modulo6/case3/redfox-backend/tsconfig.json | 16 + 40 files changed, 9851 insertions(+) create mode 100644 modulo6/case3/redfox-backend/.gitignore create mode 100644 modulo6/case3/redfox-backend/jest.config.js create mode 100644 modulo6/case3/redfox-backend/package-lock.json create mode 100644 modulo6/case3/redfox-backend/package.json create mode 100644 modulo6/case3/redfox-backend/requests.rest create mode 100644 modulo6/case3/redfox-backend/src/business/PingBusiness.ts create mode 100644 modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts create mode 100644 modulo6/case3/redfox-backend/src/controller/PingController.ts create mode 100644 modulo6/case3/redfox-backend/src/controller/PokemonController.ts create mode 100644 modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts create mode 100644 modulo6/case3/redfox-backend/src/conversion/data.xlsx create mode 100644 modulo6/case3/redfox-backend/src/database/BaseDatabase.ts create mode 100644 modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts create mode 100644 modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts create mode 100644 modulo6/case3/redfox-backend/src/database/migrations/products.json create mode 100644 modulo6/case3/redfox-backend/src/database/migrations/testjson.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/AuthenticationError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/AuthorizationError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/BaseError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/ConflictError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/NotFoundError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/ParamsError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/RequestError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/UnauthorizedError.ts create mode 100644 modulo6/case3/redfox-backend/src/errors/UnprocessableError.ts create mode 100644 modulo6/case3/redfox-backend/src/index.ts create mode 100644 modulo6/case3/redfox-backend/src/models/Pokemon.ts create mode 100644 modulo6/case3/redfox-backend/src/router/PokemonRouter.ts create mode 100644 modulo6/case3/redfox-backend/src/router/pingRouter.ts create mode 100644 modulo6/case3/redfox-backend/tests/PingBusiness/ping.test.ts create mode 100644 modulo6/case3/redfox-backend/tests/PingBusinessTests/ping.test.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/AuthenticatorMock.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/HashManagerMock.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/IdGeneratorMock.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/ShowDatabaseMock.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/UserDatabaseMock.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/services/AuthenticatorMock.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/services/HashManagerMock.ts create mode 100644 modulo6/case3/redfox-backend/tests/mocks/services/IdGeneratorMock.ts create mode 100644 modulo6/case3/redfox-backend/tsconfig.json diff --git a/modulo6/case3/redfox-backend/.gitignore b/modulo6/case3/redfox-backend/.gitignore new file mode 100644 index 0000000..d93d5e4 --- /dev/null +++ b/modulo6/case3/redfox-backend/.gitignore @@ -0,0 +1,5 @@ +.env +.DS_STORE +node_modules +build +coverage \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/jest.config.js b/modulo6/case3/redfox-backend/jest.config.js new file mode 100644 index 0000000..a5062c6 --- /dev/null +++ b/modulo6/case3/redfox-backend/jest.config.js @@ -0,0 +1,8 @@ +module.exports = { + roots: ["/tests"], + transform: { + "^.+\\.tsx?$": "ts-jest", + }, + testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$", + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/package-lock.json b/modulo6/case3/redfox-backend/package-lock.json new file mode 100644 index 0000000..455355e --- /dev/null +++ b/modulo6/case3/redfox-backend/package-lock.json @@ -0,0 +1,8915 @@ +{ + "name": "projeto-cookenu-backend", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "projeto-cookenu-backend", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "bcryptjs": "^2.4.3", + "cors": "^2.8.5", + "dotenv": "^16.0.1", + "express": "^4.18.1", + "jsonwebtoken": "^8.5.1", + "knex": "^2.2.0", + "mysql": "^2.18.1", + "uuid": "^8.3.2", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@types/bcryptjs": "^2.4.2", + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "@types/jest": "^28.1.6", + "@types/jsonwebtoken": "^8.5.8", + "@types/knex": "^0.16.1", + "@types/node": "^18.0.6", + "@types/uuid": "^8.3.4", + "jest": "^28.1.3", + "ts-jest": "^28.0.8", + "ts-node-dev": "^2.0.0", + "typescript": "^4.7.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.19.3", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.19.3", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core": { + "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": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "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": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "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/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "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": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "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": "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" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "dependencies": { + "@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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.44", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.44.tgz", + "integrity": "sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "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==", + "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==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/bcryptjs": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.2.tgz", + "integrity": "sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "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==", + "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==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "dependencies": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@types/jsonwebtoken": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", + "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/knex": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@types/knex/-/knex-0.16.1.tgz", + "integrity": "sha512-54gWD1HWwdVx5iLHaJ1qxH3I6KyBsj5fFqzRpXFn7REWiEB2jwspeVCombNsocSrqPd7IRPqKrsIME7/cD+TFQ==", + "deprecated": "This is a stub types definition. knex provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "knex": "*" + } + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.7.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", + "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", + "dev": true + }, + "node_modules/@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "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==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==", + "dev": true + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "node_modules/commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/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/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/dynamic-dedupe": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", + "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", + "dev": true, + "dependencies": { + "xtend": "^4.0.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==", + "dev": true + }, + "node_modules/emittery": { + "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": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "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/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "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-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "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-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "dependencies": { + "@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": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "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-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-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-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "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": "^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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/knex": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.3.0.tgz", + "integrity": "sha512-WMizPaq9wRMkfnwKXKXgBZeZFOSHGdtoSz5SaLAVNs3WRDfawt9O89T4XyH52PETxjV8/kRk0Yf+8WBEP/zbYw==", + "dependencies": { + "colorette": "2.0.19", + "commander": "^9.1.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.5.0", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "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==", + "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", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/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/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-jest": { + "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": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^28.0.0", + "babel-jest": "^28.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node-dev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz", + "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.1", + "dynamic-dedupe": "^0.3.0", + "minimist": "^1.2.6", + "mkdirp": "^1.0.4", + "resolve": "^1.0.0", + "rimraf": "^2.6.1", + "source-map-support": "^0.5.12", + "tree-kill": "^1.2.2", + "ts-node": "^10.4.0", + "tsconfig": "^7.0.0" + }, + "bin": { + "ts-node-dev": "lib/bin.js", + "tsnd": "lib/bin.js" + }, + "engines": { + "node": ">=0.8.0" + }, + "peerDependencies": { + "node-notifier": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/ts-node-dev/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "dependencies": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + } + }, + "node_modules/tsconfig/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tsconfig/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", + "dev": true + }, + "@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "dev": true, + "requires": { + "@babel/types": "^7.19.3", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.19.3", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + } + }, + "@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "requires": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + } + }, + "@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2" + } + }, + "@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + } + }, + "@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + } + }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + } + }, + "@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@sinclair/typebox": { + "version": "0.24.44", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.44.tgz", + "integrity": "sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/bcryptjs": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.2.tgz", + "integrity": "sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "requires": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "@types/jsonwebtoken": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", + "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/knex": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@types/knex/-/knex-0.16.1.tgz", + "integrity": "sha512-54gWD1HWwdVx5iLHaJ1qxH3I6KyBsj5fFqzRpXFn7REWiEB2jwspeVCombNsocSrqPd7IRPqKrsIME7/cD+TFQ==", + "dev": true, + "requires": { + "knex": "*" + } + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "@types/node": { + "version": "18.7.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", + "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", + "dev": true + }, + "@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", + "dev": true + }, + "@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "requires": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", + "dev": true + }, + "cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "requires": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "cliui": { + "version": "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, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true + }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + }, + "dynamic-dedupe": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", + "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", + "dev": true, + "requires": { + "xtend": "^4.0.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==", + "dev": true + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "requires": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + } + }, + "jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + } + }, + "jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + } + }, + "jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + } + }, + "jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + } + }, + "jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true + }, + "jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "requires": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + } + }, + "jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "knex": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.3.0.tgz", + "integrity": "sha512-WMizPaq9wRMkfnwKXKXgBZeZFOSHGdtoSz5SaLAVNs3WRDfawt9O89T4XyH52PETxjV8/kRk0Yf+8WBEP/zbYw==", + "requires": { + "colorette": "2.0.19", + "commander": "^9.1.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.5.0", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "requires": { + "resolve": "^1.20.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==" + }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "requires": { + "frac": "~1.1.2" + } + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==" + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "ts-node-dev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz", + "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==", + "dev": true, + "requires": { + "chokidar": "^3.5.1", + "dynamic-dedupe": "^0.3.0", + "minimist": "^1.2.6", + "mkdirp": "^1.0.4", + "resolve": "^1.0.0", + "rimraf": "^2.6.1", + "source-map-support": "^0.5.12", + "tree-kill": "^1.2.2", + "ts-node": "^10.4.0", + "tsconfig": "^7.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "requires": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + } + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "requires": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/modulo6/case3/redfox-backend/package.json b/modulo6/case3/redfox-backend/package.json new file mode 100644 index 0000000..734da77 --- /dev/null +++ b/modulo6/case3/redfox-backend/package.json @@ -0,0 +1,41 @@ +{ + "name": "projeto-cookenu-backend", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "node ./build/src/index.js", + "build": "tsc", + "dev": "ts-node-dev ./src/index.ts", + "migrations": "tsc && node ./build/src/database/migrations/Migrations.js", + "test": "jest" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@types/bcryptjs": "^2.4.2", + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "@types/jest": "^28.1.6", + "@types/jsonwebtoken": "^8.5.8", + "@types/knex": "^0.16.1", + "@types/node": "^18.0.6", + "@types/uuid": "^8.3.4", + "jest": "^28.1.3", + "ts-jest": "^28.0.8", + "ts-node-dev": "^2.0.0", + "typescript": "^4.7.4" + }, + "dependencies": { + "bcryptjs": "^2.4.3", + "cors": "^2.8.5", + "dotenv": "^16.0.1", + "express": "^4.18.1", + "jsonwebtoken": "^8.5.1", + "knex": "^2.2.0", + "mysql": "^2.18.1", + "uuid": "^8.3.2", + "xlsx": "^0.18.5" + } +} diff --git a/modulo6/case3/redfox-backend/requests.rest b/modulo6/case3/redfox-backend/requests.rest new file mode 100644 index 0000000..89cc453 --- /dev/null +++ b/modulo6/case3/redfox-backend/requests.rest @@ -0,0 +1,140 @@ +### Endpoint de teste +GET http://localhost:3003/ping + +### +POST http://localhost:3003/products/new +Content-Type: application/json + +{ + "products": [ + { + "id": 8371, + "name": "VESTIDO TRICOT CHEVRON", + "tags": ["balada", "neutro", "delicado", "festa"] + }, + { + "id": 8367, + "name": "VESTIDO MOLETOM COM CAPUZ MESCLA", + "tags": ["casual", "metal", "metal"] + }, + { + "id": 8363, + "name": "VESTIDO CURTO MANGA LONGA LUREX", + "tags": ["colorido", "metal", "delicado", "estampas", "passeio"] + }, + { + "id": 8360, + "name": "VESTIDO FEMININO CANELADO", + "tags": ["workwear", "viagem", "descolado"] + }, + { + "id": 8358, + "name": "VESTIDO REGATA FEMININO COM GOLA", + "tags": ["moderno", "inverno", "liso", "basics"] + }, + { + "id": 8314, + "name": "VESTIDO PLISSADO ACINTURADO", + "tags": ["casual", "viagem", "delicado"] + }, + { + "id": 8311, + "name": "VESTIDO SLIPDRESS CETIM", + "tags": ["balada", "metal", "boho", "descolado", "passeio"] + }, + { + "id": 8310, + "name": "VESTIDO CURTO PONTO ROMA MANGA", + "tags": ["casual", "metal", "delicado", "descolado", "elastano", "estampas"] + }, + { + "id": 8309, + "name": "VESTIDO MOLETOM COM CAPUZ", + "tags": ["inverno", "liso", "casual", "descolado"] + }, + { + "id": 8301, + "name": "VESTIDO LONGO CREPE MANGA COMPRIDA", + "tags": ["casual", "metal", "delicado", "descolado"] + }, + { + "id": 8300, + "name": "VESTIDO MALHA COM FENDA", + "tags": ["balada", "metal", "estampas", "moderno"] + }, + { + "id": 8293, + "name": "VESTIDO CURTO VELUDO RECORTE GOLA", + "tags": ["colorido", "viagem", "delicado", "descolado", "inverno"] + }, + { + "id": 8291, + "name": "VESTIDO MANGA COMPRIDA COSTAS", + "tags": ["inverno", "estampas", "delicado", "descolado", "casual", "passeio", "basics"] + }, + { + "id": 8264, + "name": "VESTIDO CURTO VELUDO CRISTAL", + "tags": ["casual", "viagem", "boho", "neutro", "festa"] + }, + { + "id": 8119, + "name": "VESTIDO BABADOS KNIT", + "tags": ["moderno", "metal", "descolado", "elastano", "festa", "colorido"] + }, + { + "id": 8110, + "name": "VESTIDO CUT OUT TRICOT", + "tags": ["casual", "colorido", "delicado", "descolado", "viagem", "inverno"] + }, + { + "id": 8109, + "name": "VESTIDO BABADOS HORIZONTAIS", + "tags": ["moderno", "boho", "festa", "descolado", "colorido"] + }, + { + "id": 8104, + "name": "VESTIDO BABADO TURTLENECK", + "tags": ["casual", "metal", "delicado", "neutro", "basics", "inverno", "viagem"] + }, + { + "id": 8091, + "name": "VESTIDO MIDI VELUDO DECOTADO", + "tags": ["couro", "veludo", "passeio", "viagem"] + }, + { + "id": 8083, + "name": "VESTIDO LONGO ESTAMPADO", + "tags": ["couro", "estampado", "passeio", "viagem"] + }, + { + "id": 8080, + "name": "VESTIDO CURTO RENDA VISCOSE", + "tags": ["neutro", "workwear", "moderno", "descolado", "liso", "elastano"] + }, + { + "id": 7613, + "name": "VESTIDO LONGO BABADO", + "tags": ["casual", "liso", "passeio", "colorido", "boho"] + }, + { + "id": 7533, + "name": "VESTIDO COTTON DOUBLE", + "tags": ["balada", "liso", "moderno", "descolado"] + }, + { + "id": 7518, + "name": "VESTIDO CAMISETA FANCY", + "tags": ["casual", "liso"] + }, + { + "id": 7516, + "name": "VESTIDO WRAP FLEUR", + "tags": ["neutro", "liso", "basics", "viagem"] + } + ] +} + +### +GET http://localhost:3003/products + diff --git a/modulo6/case3/redfox-backend/src/business/PingBusiness.ts b/modulo6/case3/redfox-backend/src/business/PingBusiness.ts new file mode 100644 index 0000000..d426790 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/business/PingBusiness.ts @@ -0,0 +1,9 @@ +export class PingBusiness { + public ping = async () => { + const response = { + message: "Pong!" + } + + return response + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts b/modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts new file mode 100644 index 0000000..4dd688f --- /dev/null +++ b/modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts @@ -0,0 +1,26 @@ +import { PokemonDatabase } from "../database/PokemonDatabase" +import { NotFoundError } from "../errors/NotFoundError" +import { UnprocessableError } from "../errors/UnprocessableError" +import { Pokemon } from "../models/Pokemon" + + +export class PokemonBusiness { + constructor( + private pokemonDatabase: PokemonDatabase, + ) {} + + public addPokemon = async (pokemons: Pokemon[]) => { + + + const response = { + message: "Produtos adicionados com sucesso", + } + + return response + } + + public getPokemons = async () => { + + } + +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/controller/PingController.ts b/modulo6/case3/redfox-backend/src/controller/PingController.ts new file mode 100644 index 0000000..9091595 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/controller/PingController.ts @@ -0,0 +1,23 @@ +import { Request, Response } from "express" +import { PingBusiness } from "../business/PingBusiness" +import { BaseError } from "../errors/BaseError" + +export class PingController { + constructor( + private pingBusiness: PingBusiness + ) {} + + public ping = async (req: Request, res: Response) => { + try { + const response = await this.pingBusiness.ping() + + res.status(200).send(response) + } catch (error) { + console.log(error) + if (error instanceof BaseError) { + return res.status(error.statusCode).send({ message: error.message }) + } + res.status(500).send({ message: "Erro inesperado ao cadastrar usuário" }) + } + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/controller/PokemonController.ts b/modulo6/case3/redfox-backend/src/controller/PokemonController.ts new file mode 100644 index 0000000..5fe6a20 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/controller/PokemonController.ts @@ -0,0 +1,33 @@ +import { Request, Response } from "express"; +import { PokemonBusiness } from "../business/PokemonBusiness"; +import { BaseError } from "../errors/BaseError"; +import { Pokemon } from "../models/Pokemon"; + +export class PokemonController { + constructor( + private pokemonBusiness: PokemonBusiness + ) {} + + public addPokemon = async (req: Request, res: Response) => { + try { + + + } catch (error) { + if (error instanceof BaseError) { + return res.status(error.statusCode).send({ message: error.message }) + } + res.status(500).send({ message: "Erro inesperado" }) + } + } + + public getPokemons = async (req: Request, res: Response) => { + try { + + } catch (error) { + if (error instanceof BaseError) { + return res.status(error.statusCode).send({ message: error.message }) + } + res.status(500).send({ message: "Erro inesperado" }) + } + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts b/modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts new file mode 100644 index 0000000..691fd94 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts @@ -0,0 +1,8 @@ +import * as fs from 'fs' +import * as xlsx from 'xlsx' + + +export const pokemons = xlsx.readFile("./data.xlsx") + + + diff --git a/modulo6/case3/redfox-backend/src/conversion/data.xlsx b/modulo6/case3/redfox-backend/src/conversion/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c991e83ed68856c9c516152313e06e966f4ae508 GIT binary patch literal 108523 zcmagG1z1%3_dQGqNTW0if}$cJEilA@pn@PFDc#-OA+4lJN(+ccH%RA@1A-tSEes_! z)KK$31KxYRzvp}3*XM}hy|B-Y&suA*b5uzV`w9id)vH%ASR6RzG5+{L1N`2@hRejs z(B0C`-1)EH@NjzA+N2FVS7_%Z!kr^`2xHr_*1BS$x_+SSh$R&8^oM{}nyOpZmnrhE zl(#)-eJeTqkI%M9$cZQL%4_GW)s{nghf)mEwygFKj>{)LKfC2YD7F2ffbg~O#+KW= zr8N#>^VJ!-_%5w|p6K{7Bd^=BqLC{j)x^)pM!M6giQu)#=^i*`v0q%yS0HmGbLJ%6HHv{@srZIZ>SeiZ0E-T!Gd8i&Hj8w20x#ZDLs zAwG-R7et-?iV^ocY@a}BiYW796XEdKo`Je67B$hxD;+!9hF#4Y)X850a|_d6V@StOl3T|5E41ES=y-|0b#KI(LJ+yA)F-5+IHaBzl_sM~5j zS%xzD9nXvVpHB;l`=GQ|N3QuGfUkk4*!zPsVW6SI*#>xc6Y3a>I*e&XP367yN4Zd- z4(pr!4iTtxCmnm!^OKn7GiZ$e$>Dc8)PWlfYI1p2{1<8#b#l^dw~S)_e8?b}+JAo7 z2tHPfZ|V}CJF99sUoILx++s(#(dk3?75$HLeEby&JTVep|huZF7u>(nYH&BDP!|VN%QGx32OTU_<}?Gsk2@2<*lYOxMC0Le4zRK*V!zi z-;qD+So{XcMnJYP^PMpNrsVb6s{Q6(e?+^!|M3#ax2W3oXlm96HJvx-GkJ7Uf`TWaP#Gn% zhxNtCr53;Gy+kRx=5ypaa8FRib7Tr5s_Iu>AnKTLMn3>}e)LC9TqaRS3 z$-PmY%`Fg{xycAF?Z>@fqS>eL|xrg>MXfeF443P~<9lzIKmX+MEIP@`2a- z5s2Zjn{u-Q$AsqDaG6QoeovVRe1ESXSN8tID>0N+zKWciS%!ZVfBqejD#kS99@sC! z^r>4Sb^2hn@(ORq^D0wwcQ=lS3Ek}%l5TD#(RW1Z1_&l%+0+>BjBCsw0^7JFd! zdx1%5b1RQ{ehhAJi4Tz4zkB47a=UGvV!O}dlrw_~>lvA;8InxTeT|AHU-e?KC!i0F)AcNe2;szn~?HTzAaKEUI^x@`gB6+{Uylr8;Q{e%Z zIzN&U@|NgxklqNYPX{k=fmy7FYt=IN-6+dy2Py?qx*59jVdvyf>U}sbzWp`s#yyVaIQ~W#BF@U)XQLs} zv+RK&dJjVzkk)xLwgf3ul#S+L&qNGUfFubWFP@AYz` z-HAkvnDTzv2V{|pAA?-FKJ+ad2#b_QMStmvu#aD^fucVG5!nXpgOEiQe(dk{g>k91 zJU^~ULbqf`>5CeaA3WhC)e(4(?~0v$O?v%aMC0k0J+kQCse0@z9U^6V%>UB}`<0)G zpH<`$a-(7I(+Z3~w}~FU7&#rIDcErDg*R(W>ZkjkzEw9*5iLRrC@$0N!1h&B=#9HK z>lDf-f=+csh^jCd_*g{_Q69R>W%U^vd%hmu4O(&$)8^hZ@3%on1;B zdKxJ;Is#8Q=N}OfFY|hn?PNVQ_v^l+mKVBQZaCp(VZpgt9YZ`|n(aLCv(BZu$2r*^ z5qHDbH9#ax#dyoy!c)$w|F?D!nPmKB%g@GOm;Fl^w6~ zxvP8WW#3)g$D^$e?nRG%4Q{llwx6(hXVbP#eBY#^mrg2G12 zj3@jzEc`?w)ecm45uDA{!c!)s@TUG6PhO};z{JtFI};lZA@0k=1n<5%CqAlZ_tpc7 zE&Q)yd;XtdyF2(rz6b5q4+fsp=o~!d%$gZ8=0uo3_4Sg8mHVt9HemXBLCjv!d16H8 zfIqPjW|{#Xp13<`+BEPE+;wA9Q_O^U2$*oKp_LsC7kz+9>yLz&-)pvP( z_iuyut9ye8w8fH{i{v8L3g#aa+;4j4`QVgpOsORUacVWb>A+L8Ov7EgY-6a0RMPR- zN$w+L%x6!uZ#e2*q6vXqoyNT#JmVP~r@1yQ{q(WqbIPYKjtyagV#u)ZrHT8)4}<8k zhgb@Xz4A{DOd8tgXg}6NKg_MVu5bo?B#* zbGWwI`oMy`T;ASGl3{u9JwZ?e)6DI?o;8{us$C++%p$GCqP3|`UQ_RJ1SK5OikNDV z>WT+jdz|&GP*rfNJoxUZ<%v!XNX60NZQs+o&c&%eof2MAXVf)pJAQFOc14uvL_c2% z8nTu6jP*nyIyw7?{3e4nn{si!L}|W6c|NYg#1Kul0KPAq(2R)*JTw_w;fdSZzH50{ zUzwj3FZM9fc;DzQU&K_MIDK&E$4)u{w(tXoX$bXe7dDEu4#gw6RznuZIJKV7@@|_n zqIZd&tH}xcB#TsX(CFKZh7>Df%gHlq1cMKo@@~GwUcSUZK8a@=@j~F>5Y$YAP zd-v>|_<3~(ZxE6^q`b;v*f#s}p{Fa;{1!&mMxDglRn?q(szLT4uPH*D(j6#S2}Z#? z%lA}UHSa;UJt?nyPR0KI)Emm9OK5B-`xn#eV&a*m_M6w7`^$&NY)Nk&)naCn$>O#E(O$P>t!4 znxH38WNS~?Nl~E6)&2V9Y(n&Tw;opu!zZ*}+kiXN-`vukX#`7G6TobCvKlT&IPTvg ztQ5rpnWPx~a_M43D#6WVB|0*@~Fo8!-d3NLc3aNV% zM-De_lM_AGu!;OKl8op{uu$?)UW+F$r}&lEyFjf`>5SO$9;~;9vD+A;$u(-}=HqC< zxVPh+XW+qmdSeZwoL(5xybR6}N=8I+i^p@l95L}p<-Bb22+(9d3-(!ebeHY0m6=Hx zq5Wmvwj}Ne9621cO`V{bz1wxjh+hUb?>*!Eo+t4Sr1M^ z{}jPnLXKqcFaaZPx@7NLO5(SfH$!?}6J*834x8W@`7$DVe0a?JdN`py{{teQ_jr&?Mw23vcDp94HXS_a{UWKOYgU{p89&YWHPpNRxY@l1!NJYT5&&_PW6ry_+s~_gEcP`t71uKWZ~Z zZRDg#nPWcWes(C5$yY*>bHXr`jI{ntpt)_3Spj=m^AaW-tQ`0fmP)PtQpy~-d}@E! z`Om{-XRPWH?*1qx=ff{IaUBx(6^@)CTE8!lE5We$r=zai@_}T+X#5)<%}^u0~(MPvOo0Gas>g%n%&#@f8$&fEi4BuDq9W!~_f8lJt$=u2#Q z!wXTm1TDO^e}NXhWtqEjC9UP*iB719GL>=;QF9Ln>z1kfxq>ha4F3&pmf}lhQ{eJh z&wi7(;*`T-p|gR&u&rq*V)`=V(Fd{&nYBs{v}{}&nz^~unaXuLLy92Mv(kO8PS1lO)ocQ|w=~Ky+qNSD z;IUYSGx3QCgO>;cpPb7olYWb5oQz_e>^)?-3|pB-t+!}#s4p;WSsFWRAcIGQX<2#~ z?@8b<-r$KPpv1&xg3yiKE?srE@;=AXfN(0anve})18S2C*0l<$QO}G0poilp?M?Dg zOk?qM`N3ITgB(|0BUWDH(Tl(7UcB-jGU9b=VSiD{!+Pu|-sC>Rp3|TqF~iQZHTsiZ zhFgMaS5Gnn3*K0JN+z^rTGM4W@)BDg^Jd{eER_1aJ6L;ufn=zu4`lVK@v%Z{i;hBe zrhx%x!=WDu?y^%;(6Tw=jzdxe>1fCW>%Kv=E~)L($p!6-o1loqzA;y9__NS%a%;#K z76))^NF)`6P)IeR3R3z9cXD{90x%Ms-?aK~`V4b*9oas6x+ii`4|;r)UKm zalw)g&T~3-!mYv#xppfx1rKn6DJ+3p4`#Jl*3a;U$dq>7+sn_1>o<3Ej^vs?wlHOB0*!f1rFK$_AqV!U z^%$;JF7|xvWkJ9_1i$CLtRkxxPGl`qtAy=O>|J$sxbIA)&;c&)gsxwvZ1FGFm(J?I zeeT%L5q6fcE>f!Yu|<8A!#})5op7D;y?`E!AY3Oymc+&pnUw?T|7sWI>nc}v{evES z8=;}-6*9I?=Z6o-SSezepJ}pE#thr+KY4S@QcGg{D7xD8s2GvxYDfH6weMHkMG7$g zIxi1fO6y=7XbY1uikC5}LK4mo^WT-cF1Mo6^OS>GMDTlR$3?9v3ViTht6{xfvc>s| zL(!Mc0?&7`RN^qfg5^Fe+t&M8$4|&`>+twZ#z5lRiWfe&e=Ck}e<%(+KIJR!UzM#{ z4@(-{=?b1%ax`er%jT3#Hl+DlYLVWI0u;wj{)B1JVxJ`kyU5OxkUEkC)VDJ?urGpf ze-K;n`$v6R<@`L}$JJQH9L}8g%R^>q5^*Qm#wHo%qHW?q6AO#3^PT3LTt56II!!wZ z?1{z{$4o9M*-Bp4qNWLFcO{k>CfHO=2q%uR9+?yjl*J71%}bh~bA5B4Q#=kdQLb%F zI`fuU`%asN?F_u&iV1*K*u>olVv6Is2vs^0!jpvzxgZY|A1BGk-P+NpC5Vbu7YhmYgLG1N7(iJqRm+7caE^|ZwW(rZ&kGKWa%s*iDCG@n#c`;f-Zl?q$!i?)&WRqY3COpSDlt|I`@d!wd957JS13 z_0}43?nVXAUfuWkCKe}S;~Lu`^FWS4T`h9AdV`in*qdA); zak14S&tDs*dl>UQZ`3}nNo5dNDBuuZe)MD47!^12>?brm# zxxaZkb68CS3Xh|L=xyU(TlwRUuSLhGu|h(9*+L0+$~f&sl#_D_uQ8Gzt2+AhcguwD7R9K$ z-Gc3u^bha`l9%p;ppE`yE?`1NBNm9i>>~A=6iB3`j@htuq zN*YOZ37IAMUTyfoY^L@)X+B~wOR}R-{O2`6;vzC0bl8r_K2pjM?`VMedo&$83MF3< zsRz1>BKfyNG+68@mq&YUIsjC7M#>hHH9v_BXX_mDg5OG4wosTA_iNH;Bgxun{k;+< z{A(qYe-7UlFO4o`+!6^?&%H`lt-;9lXy_R95GXsYbtEuX(V4(pJngP(nh7RPwDg{Y3(##yI{c{R=p0g@@e>AqTPAV za;1U2wkqy~t9|Q}R{RGm%8Sc4`m>rFQZiELd*178D*!_7-FD&UJ@@u46#A@w(WmE3|kR=-}f@e%rC@&0EgbN;s2 z4eScVQ@+%Cvxe2eArlUig;`IMiU!f2*j#9iW$u(WJ9Mxb$Yc@E+=H+Qt1JCXbJ2KM zo1;D0=%03jcOZ6Rqh=3!s60o7b0<<6CkCr5m6v^1)SOd`mWAjUOaAv^YW%JxUXeuN zB(UI~S)}k%0JH^Q$E|d1+p3p^WEMb^Rk~LBIK{ukkqgt&`o}@WKo;Ipsr*-qvgDI1 zC`HwSiqgxaIt2}@UXGF|_^7-f{togjCN5kKPOPw6)&b8i71CX-3yUuQLd;;*qbb(O zNY(vKCso&4X~8?AR<}n1o%IEruTCF~`}9GU;uH4|)^i+@oc7PnYTQ2bJ*}!4&~(9m zq#;Oua=qFMP_u5``QJXCB~^Tqx1EfcZ;ylvFAb&U884HiZa9%dk^ZKMm;Z9E9=*OU zg4xMaK~X;lT@!hwo_Cv0K%Lg=_SfUoM+GXP7qexh@Bt86%eUXZDKqaj9(Y#xv@%Iu;N!k}9XBp+aKOP;m&X>LnCZnIkX&O(m_hQivH%y|HNQc&T-A zivQF)Z`v$_~b*u=iQ?=t=Jj$?W=@if&5`ww{V?56Vryq6b`z|h8iM*;gbP|ut0%RlcsMV zqDAK4Ix7<$`yYCE)8wefrVaJeC_9c08D*tXXGULR@E0#^mF{%31p^rq0vWF^y-1p# z1e}95t4CGb^+Rfa*-%cX+qvP{MkSj!=|Z_aA0zf17unWiGFbJniH@ZKg!~NN{V&mT zb8aLQz%3`#t5F8zXO*9X%~cFmkD4Iz6P|wZA{-`7K-^R$AbSRqxtJH}d}1D$H(C8G zeJurZ9UIc6RJGrej!=(?i9!>qe5cIpv zpZ;t!{oA=hH!@oVNYv)$Th;xv@4%NAJh`}pFa{01jBb_!VtTm+uP}^~Nl&deB~V?;@eL7_hH#yco&(q}HNVG#K@;XdAP~ z*;t7keo#06Nv-`kJA~@e?T|*h9e)|aHMIC?hjSBJlYWPd&z+@<-cwYyh0y}aYgrIa z;C&o<>#gjeywE`I4B$X#rS^U8K2kg{n=c%lTK>7JhFut6qjtVWQ0-M7wzk({&tV;+ zSVGsXb(3H^r!YQI52lsuyp)qzq5eONwDdbU?we^v*;CC2q26vPV+8g6MD||qr$OH> zl%HLR02nHA(fHIqbmum-CV2Ypl-&iT%U45Ws3v=PPn8i=zgoY_yT&?GjmIFix(pCw<}=CKFy_4$bhEGw8lU`-2Q1QQbvYd(H+ zcxs_s{5!1qMOcr7H;t!Gq6H6!dV9FGHDP8+`g0ZiWn=dj7@{nDLJHc_=-bWbd({S` z<||SKpAo|==wRkMt+kh)xauFO9xx(iZ=P4bGB(RU$Z(oQ7T#T|*pBKL67o@hLw-YE zHo@QxAamQ19Gv3(se`<{oOnCq4v+#*(u`4zj3pb~U_6_Bljy3B{LODPkUq^9jXXXH z&Sww$Ai|6Y1iH`?{}ft8a0oQC@DEKfKYrObw2-9v<&1tsBx^J$n99#sn4cs|?Pq}W zySH~K-2zqES))S1>X_luy}wh%zt1e< zKIF46&Fqc29IPHx7*B2>QJFfx-4bAtY+U4MnWXaWmR43U{ZD7(W7B!|m+&rbtr3_Q28CJed-LX)q zy=bl$%mToUT$lc@-5yW9Y{1#0!j)?2`h)Lk`gcXaRZE_`-=9rn1c79%waji3y4a~i z6Efa|)Zi{UHA(zrIn7<7p=KPoq>7+_FO4+&wHz{)57!Q<18la)G*TpWjmf6T)i zd>AW$qjZ6pxxoYGPr9@>60rEunZwD@TO(Tcokvq?rQ>1Qou}T|YSYH{syd>nf50x$ zHn}xkh>zo>xc>p<%r8VJEji`s)I z!ED1HBQFA1rQ$8_O3B?!$$nFoc4FM;S$e=AnzYy&*^G?`tc+a)8A0|Oiba-Rmmd8X zHaJpgpcMOZg!Hon6LsMsE_K%nw5#^dKtC4qD`m8eKDI*9`AN4(g z^*+_M?YOfwou}t_hvRghgEGKb>MxK<*%9F!`&dgu#h`^pO&BJ+$O;d9 z{3J{9KD4v;bjV4kzx(P7v1$;tHG>XEOO){YUCugvp&Kg$a1Vnh+LJ>e8CmN|U$Bg( zbu4e5sS_>DYs0INX;x5ayWiI zl1=%*eVKF)khE)RxhODNv~U^Cbtcm!M}EVuuR*lm3m!v~oAcVj67$9?aoX{g;bTVT zM}{s1rF?$9K-{#Q`KC+QO8o=2z7Q*aHSGIjQK4FS($`<`%e6Y-tsIHX% zS{cC9;%q(6zh#$JVR_$t z#F}|ouH%)l+4pUGzg-|^-vmFWcx9?QA1^2Q_PCQkkt#)6ON?)N!`s4r~$56%Vni??1LFw z;^gJVopO`+h|2z0%NcE3g^yLK&;Co-lQ~Qz04ldMWp-2HqbqB2C_9QcP3mI^NM}{q z02eJlgcUvl$hBzl{>`;6pADhpv77gC6+0M6eOmTIH17G|-t;VoQUQc?H~d`HlS?qGgXDC3|Sd3J^0_J-3Q1*YVA^nr<9 z)^2RxkJE>gP1BptpuDGJh#$0)#NuN9o63>{t08TQ$Ov$*LN_?G>*DFW!ykz9GBHL# zrZdY~&&M>u>`?0MCdnsP*33{o=nyzSi^R}xMcLspf09ptDtLSTF6gGf@N2?z^oD-|6j2z9hQhIoHi+DttP-n{~iv=e(!ggGX{uo(GUr zYR*BQSwhBvKVNlOUK!znY`INq9b8M;jLvsu{TRv~M4A?qzZ4T7?!qc^G3yM_Zvdn@ zJ}attL2Z_5Y?UUJ_^>OD$}D!rUCBz1p}ST$Zn&p5>zhN=JLg1YD}~v3&X8}Zxj&Fd zzg3}}|Ag^Q%(7sMpl^pKn9Y1vy1k!VyFa;-WG5g78NbA(Tqw|JJ}UgqXX=>w1?l=PVZLog=;z7f?cbMX8tczh$2-H zi7xqxICLvqEAf^U!!4_{pilA0sV&YCxj|WRN7KXqpn)oG6D!&g{bUH9#5{MA?sEv@sY;y)l6B@ldSFL1S z-{x(Chv|)y+Z+QN*lU%ht3;X07av2#U!{v+fAZXF0%wjnN<_u{R{J~uQU`Belgz#V zXqx|It7$7hD-p};DBF4kByk_F65_(DdD&w;bdR6&uUMFzvY^HtC5oJtDq{0M7!T|V z8eHiB`AJI2)tUz@wp-Q79#~7*{x0ess_1;=;K!>k49nYjbNMn;g+2WG0Q#I?zJy}O ztbAodoC@$OsJ(Z7ZTVz@7n~A8@7T&19O>3_9Bn@xgbe@>Vn*APZ|?uQBJn$p3hLAQ_=*P|1TI z>zsG5zFN+rqYeolAiTaS} ze>R--$5-?r9UQkuH+MaJYr_N|_j*0*1w>f`*mgKCiSSaC;g?tJ+lsU<@JI3N5W=`eK`U2VQhx;yjuFjv;IH*UUu84h{e+psRg((9%0w@j(9 zKg9|rJ@~^g0r|eyVVLZAl0W6EI6C{X9D>tZir+URBBAMbh8)U^yGVQ=bPw=}Zo(y! z-!z6hXBJ9#_q{q2q06WX0etQiA2U>DKuqs31uLTT>&z|F@Tdb;!1=@gP+V^C6))t+ zC6@jl9%0iei4UyeUk0-$zZR_ zZ?JN){8VV?y;`SnRdSOeFgDL$DeCG#zF>sqg1Z5H#s$(YkUZ#15bxRjbTGd>UB%R= z18p>;z#KlJ|B@*Ffwh$ls=(gcW!y^ z*QW2K5Wn;FQXB%OEQ>y`_n(&rqrSohzC68Nr`arJ3f!(?MtzohW;vU`@pPUj5qi@0 zL2Q5uAI#!qHfFlvO%lH!9yae)C#GZyGb`2OyjU(>64uv=)j~U-+JEBp;XV05|GB?j z()n{CT$T2JKmRnR-GOYBM!ShOx_>TI%;&Wc65k_HQ*R|)hiy=g^zG-vRW%3mc`v*R zFR}2p5-3flW7k1=4dzo_vmNBNcHslbO22tDuqFD!Xci}Bw zihrelJpsKvujIMaP?$UJ5Awt7I;Nm$KM25P1!#Gqc3CbC<2NgjxTyt=lc(k<-MMfr#&8DeN0@wDE@JxI|^6JG>m#;#$)^ zJ7(jAyNwu6cgg~?_|AlI{Txg&uD`+juo`@D5-_#cA~S^u zO{T(jzP4|k#bxxPShD%malw$WYUo4S^1a}$>^f&f`32qEI|{FO@x*C1qxol%gzE#8 z2WyeTJfOmlxSu47mNyT_oi?65E}!B=+nbHl|Kz3Q(g*q4Y+J0G$(hds&k7pM7l0D?8hZ~9lcz83~g|0il z^6y%k)6LnuA3wKnb*G#2m~6yI!v!7mC*!6n3lTSDuO^=rSos{dO@d0q;f_1Oh~;sA z5p<6!rWUt9Vv>A*^|e0yxZ>!0S$JzBQ0{}jGAB%KK2}`5*@vPC6Hdmp;v;6Nc5}}e zk$@H17ME(6$3?R`3yolGg_*f-*|lt2k8@k{Z75=Uslf&X-_^~2FL3aCH6=EI&1oI1 zBnVwUo}57l*YmS9iBEw}X5WP)j*S#ks2xc1UmaHrQS;bnWX*Q$6d9p-*xECRG=02$ z3g|0N_dcG;Q*GUScy1NuB+U$VQ3r~7t$>^8`=3f*Ut!hiC`hmXG>icy!In{(vbVEG~S zef!Cc@dx%&7UKaxuFS<{S-qCdHnVR$t_ems8F}}^2UchO!BiL5rC4i3pI8~0{*3p>Twx^Ll(s3wlykG&fFq5}*!Q%t3HRQPgPTnC`IkIvLq zE^8amhS^#sw4831=*dpvdwpl-5vZ)Do*C&r4PsirooKzB=vP8{v%!9qULg#L0`0Ko zZ>U;ornCsbcTa08bk85-+a1O+lp^l0EPpysSo3tYVMi?Vrl%M;BeKLuxaLzs$baL8 z8|sMX)o5cdg33w~eTW@#jnXrCYX_%_;H9X^BAL?K1%vCG4vr!1oex?%DRKSUF2ZAz z!}jqCL`WwiqYL!J>_Vp_JYELVyQob)vutbpHAhEsFg_n~RfEa~z9!M9|V^SOZ(8i>5xU$&ri+k>B*97(f=X{9n*AXOxUXFpzRoK>c zTjA;||GgUM{2iTGM;`;u59b_vk0YnlRs^5>Q+h@Aa^I6m$WZc-LoKCyq1-*Ly$z-p zAYtqva+iMZV6aHg{>vckx$wvS`P->$r0R#9^Z9yGFQEga84e~twhg}+2gY10r!aW%|@fbjXEsdWI5=rzoT*#ccpEEglOrz68) zU~G)|Bu?miEy$blSpJ)S$c=1Xq6MN34inQ=r^+#MtKA?7<_ZD!5G9F(h7g7>HioX@ zHp}m#TLzR+S)s8c(`=mFjBf){4%|Vzv|Gtt=VnwirKDp$i+9WYVh68DQ1e|-$yfM5 z>C0Wc78U;DgY+H*;`o-rl!nodi~8T0YEE=$?b=}|ycjyuZiI>_JLAuEtD1L@p5M07 zF&q~3-2G8~LeuR+svb^SMG1x76%e_eav7C%mOLhTji81&r^r`&PI%|lIE0Ct1B z7}sMGG*z<-v#z-nvWV66#d`*{LERXzNPr35d07Xb=n!?i|CYL5i(|v(0VgwOGDG5H z>X&qIJj}8hx=0WNHFSRi%p5t1hmPS8!|(Ki5yf_r;#!Sv5Dl&?H#C@*mv!2& z#UQHNt%VjG4+6?uJ1m_y+%v{OSN!iQi^7`as6BLUZVN%Usj~)+P!TjW|AH0qtTt+H z$9}PwI_>15#oQjCKt%iWo4cUx+BOWO7nk6T4}6D**K)E)-%$DgAUbhh-Fm_4!j}xZ zN7AZUsG57%`HQ(NbmlW1LxQ><1a$po(*?NZup$>P)X+Fu4J~SSo?pnJ-6N3B zmuZjVv&ZDGV;vk@9UQN!69ebler_S~rCaHRE@|S@Dt5irwr?F?C!qXK6Hr;`jx(cnFtFE zNio(Y|4}DRT5X)_9CM?iJZGVyX?$cEN5=t}WB|{I(0JzPQ!ws-0ccbi5D#hxYu1C= zps?7EDJ93F5kKHGd0P-opIxVdwCNu94TDGODX|wA{7l}MtPuKqXd#}o>^##~&xHKKbOc<&5I;Z%R|^-v zVGBJ3l(0~f8c6@L>lI3i*r`c4_f_xLF~}T!F*p(q<_oQ7PP-aVLWuk3lDXTHuU-NE zj&k;>WBwdKV<%n^CYG@2pV+&uFgI8yBU0G8<$=JQIKUx(v-RKTn@COu#O+BE99qBc zAP(Ybk^uhDo?d07M}L#QV~2}%aENEM;7BhfdA~o4nU`$)j??~qUZwK_MSXO+Bd?Fq z<^l|+(1vpnoF2}e1Y{GCsx$Gh?M(@y8vDtOYGB>jKz$ILhHn>b0+qi~RH66C!n6&? z06GXT$0c)jZqCZpVr=}uoE4|R0VSG1U@Xsv8BA`i!1Zt=Flc;<^fTm7Seb^``c(=m zcLOtrGMjn0w9O)R%MG9oV(AVT$RWz-1Q3Q|bB)%u4>ug%KmlQRos+DdiA)3laP-K&l69Zo`lI-t`TE8&^E?em{uwXrtlR96QZ88p5LrRMQ0T>gBdf+vE}8jTOY#8({!7jstXc)tBnz z|EORSB)%Hl7oOlL1Aou^azhq-V&0tMf;X7zhaFTe0mY!L?%co?Ue@q+=k-x7tsA*s z6J9y{wQ@vtkhPG_Vcc135kjPazpq@Fu{AEVtX(ZIT@YG=d3d81F>-7)`2L+e#0H)6 z6qnJr;)NqSKnq86U1Th$D1mj$YzM#dT%*twYdjvew0)`qXz>VffUYIeo!><15&?7e zLCby@!j{b<4EY-4z(l)re8gtboM!!5_V)cQpwjL;B*7YVR|o66569piePJJbJ&;;!C+Sq>=AVch6B2iaTA76*^q_W4HeuqK93!?4ot%!Mif zRus%#w&*g}qOgY(1KYjXCCo9y+WThvediO}EL+%J13X(!HD?fChAZ>hkz0T)b+?1{ z9rEJr1WGUNj-ZSNiv>xqlEr)nwp){v!@F1y7yc0`MhBJ@qSpt#*33}3+R3pVxi@!Y z!#da*u9sk6FX6xPyW_A&Ofn5`KRlBzSd{&Q2Dn=e$DOT%NR4-O6W@K8n>x^#9yT^_ z-Ahs4e%=8eP}-tN7i?cYbmA8Aqc8_}jGt>3tL&1;hW@qHZ&%7Z?c@;q_43C$3s7+k zkt-Ykn-B|PxaH2rT+*0B+kK3BWem3`_MrZ13SGGD?U_^u3=NueTu7<$Y|qD*6xa<;8*O# zk+;H$-p4X8lm8#^Ofni-+~@=i`owt8o;+ljhOjB(84lWWl3B}pMA zy;uhpWU7e`UJjm}-=eIrQLUwjuE{sy_5`30e53#J6>T^l$*J0A&;gW=nj&yBgdKWD3Yo z{rT>WWbESYlR3aII-`u9E(R!5yZCFCo?K7I4*7}EU%9Xo&sPP9Skb>L7y-AgY_ zln&N#&j2eQED++VW-wcX2Ucf1?rSMKCqSHqAL51A>fRrIxq#k36o4<%P~Kg!aJ@pv zDA?}Tam_9WM+b7KgB;xF5`Fj1Yr15!=UmNntFoGv7#w#00dNN=Rhzo2Do!MW)6$N+ z`WtooA2Bgu=$k+*al=#$_+L<-NfgTye49CkW20HF;JQOG?;J=E56xaU7^wwBzQGr& z1rLVx#NBQQ-EQv+i90QI1eikRR1P{qghF>yaT;W~36q*XcU=LL+Ce|e(E2k)3E`1p z8)BJ>u~H+jqyQi->8*>Uvtv&04|l=jCZRlB9y>X2(tln3POz@&RT0n(Flc$0OdD+2 zGQZ~=5H2CQkFVtdg8YduAjn5BZrRW9XM!7m-1&$tNVb67@4)PU8813rG1!ZLxUr4h z0vxkhcyz`owYOcPrUaQATCM>kR!2K$>`xA@d3|22R2XOlh*{7tCu+)nUC(B zBjM~t)#F;)gS?mS9KVk1;F2>lJm8T4yRbtO6x(6Sm)>I3nv#c_>^$Ysoq3?@wnfOl z7T>T7ST8^GMg(B&9FeGB+Bznzgi-Y#sr%pVC*xhGDB-<#L+=^7=Xe;M1se--B(L*8 zfMvLh`Eo%GtCLT-+S3!LJEFx~se$0RD1d2VA3P2M9Bsz{+YpknU%ZFgDFsC=A3a#e z_0FZfr*}t56yk6JEN_3!M${Vo5g3zA&L^54`a{ZMiY;r0O=?k%BuWF!uSd$SXBxo% z8(P96p14syP6v(~+ys5x7PhQR;I*l8XZ6S9p1Ipv_DNz5Z!-k&R;{#?U5(h`wg#ra zf3UShZa0iqtjk|Iz(fI2!e8ws4Trc<;$#ESaddA8wx5e`-!K~l>fPdf4>A~BA;D~p*}m`jOv2P_ z+R!}|P%LJc!a`gJKfEe17#bpm(5|pe$!}Mfg5@5`XUT-Ja+f;DI{q}IPWz6IzG*Gw zO8dnT3s^58`tny?!f-uz%8)C+Du-xn`Ww^ion>HT)9|+Jh3O@#bDb zl$QaDE$GhQ!WeL2ubh~>oT@KfDC6$!kakSKQbnZ_J8BZ56_eviV>ta0X(Fbmee`!y zo5tY04aVxK^Lw!M2r*k=(>?xc&hV*M7-w7mvhl529>VQ`z3pY&7n$;`#2tEYf=xzF1` z?}@#C(*X(S2SE?LHk?rn{Le8l{TJjJ{t|79Uo;!-iDQ48n+)cOQJVhM++9NcxkNyf z5i&@-8NE0AU{18ku>AM-8BWh|&LbXUt(hGZ4yVxe;Id~<8bdtlb0gkr%}tp&f;$}LW#m9Ej5O|J<@O@r`rH0jh|YAI5TaTL7_U2X>RQs-R% zkFKu(i$Zz7rkfQ6K^keK6r@`~K`BuQNku@VyIV?9kdjnTRANC8P`X1(5ouVumZiJC z*=4QY|9;PNA1>TSm^(A?oH_3~XRxgA>tL#{x;L8K4Q$M^ z8*G-HlG1;zrbC>$l-VS9E=uV=^7KLnXVbHYLI<$g6LM`of^kk)8)&bE4xdbBBBHu4 zB8fvixsk$+x6Q|3t&{BFwiX%$W75bw+hb(G=WY%?y%8;7#FjTnl2~P)p?Z=;+i#;$ zNK!s<6xIHhbc>ljs7az$>s(`@(>S=zRW`Za#5{Oa|E#wMkSu zg^#&>GJ!=P-s)en+wweLPU|`BK79X6QCXTej7U~Z+BzzKD$?~x#EXt!WUEsAWfje2 zmROO%cBT6sRn@W^();;W!jqCc=MZ{XL$eQlyTG}=tS?QayrHa0JoYIyzH+&B#muU8 z`(?e5#ML`Hh@K`7=rvag{@v0ttSb|tWnkcXa$CSor}(-7o){N+*w(ArNM-1%Rzy2lA&YqxaaseT%njkE1p1epzLxy$=#yr$R;#5k5#&+^|J z?t8%^agV`R7-jA)y>-s8<%qKzeT@MA3sO29zmx`4v=GE*?gvs>u+ID(Qb^q4OU4*^ zf?2-ikF=an6phgk!{+dh+a()PU!|fU?Ok&cldrN{I%|T3ShWVj!)nWfgLTlmjgz`` zM%xw3#z_Dc2^*%xzY*vsT0W9n#(+bQI#&|{#o)rW`JUDfi_}{=w-yM>d#HCE#Zf6% zuhm-p-)Updwk%0McON?HhpAx|3oE^}^9q(2VR&4RX>Lh^K#{||hMVR0-BSS{H;zPb z7}Q!tHe}zge{P1XZ`QBokn(1YX!VppUW(q<83Ve8kM3y}bT=NHmi85(@cdsF_3$Z` zEN_%vfXry?$_a_>)!0?wg%nyLSG)G3a4>5F(hK>CEN&~(nV=}`l~jaaq{-kIQ6WN* z^tIKPOOGL5sb{;ovYp>1hteQfx1?>bF*bq^yDytLh0gYyVpr-Ffw9+NC^3mV&;@An z^y3$|nSdzY9ut()Y>PXUq`!Tja)q$z=lN%(l3@_n>$EnR1GIry$O{u}biLYEh}9YO z@|)*uBfA3isQ0JMX%2)Ci0)n7UudC zKhtyf4@c)7ynOo5lB6w|i47@|+A$B(DhwjK9#mnyY!D83C?ruG<_18M&{xAztmUb3 zl6(B64R!YUbN4l9T|C9Dql_&u4|5#HNT6|kJ8gQb_eFgW#_;!B9GI9DDDHo`>y9<;U;EP8br+_&|$(-O|jk9R(@>ZE=v-&QOjm28xmEQzgBrfPty4}2xEmz1-hPE<-bW0 z$|{ct3X~<(JyX%AVOQP^vx^LD5Qac>Fd+Ts-=c0vy%14i0{Q}SvD9z&dyzmglO-0b z8iB=K0Tis(^InTPXgqiY=Q^>t1w*0_x>6>b&(_L}0m<-FR)i=%!NUUbR(htPQ`?0V zX}kQ{V)nc`x`iaAyvwTYBG_!L2BtBeo8@O|@soKlk}XNPP(p29LkcF2V85o|60nc) z$XX2o=Tn5RD|4(nYlHeun%g z*ms~^W#FbFY(bwzV(6z=`~GRM-|hDSdbO!n9ww`&n5N)X8e?;NgjjE8h+=;}Lk3F| zFCL?3u9ZaHRM)mobxO2wb~CBwS?Z^f1E%IHgf9K(;gFg%T40&uVZaNDyo>1J>f)f% z%rU;{7QEX0@of=7!dzIWXTNa;>$uT1IXM@DuY-NJaC z8ws&iI4}DNu0)?1J0)X(SSTQ4ei8AEUMcR+j;OJ%>t{a&cQ$POK+9wTqmmJu>6W-D{Vb-5_=k?&PiychZ`_q3c8iDg`|V{tIlSx(Jdl91tBo+g z19JkpczbAlx;>=_hu4jGv$PxsvPFRQIR#*FvQZlFZe=a5ReM-)C#;X_8qik)kA zF~+KAzI+M#o-X!#bgf@YdGXO!R|+mpO@DRBxTEUc2MXizc$iV9((CR+LUt`ma958W zNM>}F2G1j#o&lMPH9>*UYHc!aFD?P3%L&>{|MflPzkGZ5*AV`*G46}ruc4$Wv!vfb zEI$B9dFjr)f3HCa4Jm>eC`g$NY_DYAA0z7N$ZBh=yiF(+9g(p|ak%8wzAK*Vlq!0? zY7SVNP}`G{4&sjPR26{@tc_C)W&720ppKVf5cc;ZV01m4*cHJ%x`(|#QSl0JP@yxK z#+J-%Xeun3NYqn?m&I+i+~jmpfBHt`xl$|<(nsV)1~?RyhE zS#zDMmeo~E8;5z-197uWDK@_3`^X719rqdhqZ_*2IE0BueV!>~LOflwB%KP0c0@^L zmwfW?XQG#T;w|Nmz@F$qaxp&*p7S+SuPUe*=RXbPcMW#!O+<|@!U^j#Kv%y;Ycu!Q zJ7wKd`f%81jAWYUp3gmFxZcKhwXzzZ)gl$*H~KJ7w6mxg%qy*~Katdwa{;EF0`ttT z+p&}X0cPGyx@%-PkLoayB#?W26E*X$seNsj=d$Ojbju43Ot8}!V9$5U$I`DHuER>i zjR=kASkpw_?A)+mf2Un=(5`V5E?qoE!u->F1~v0>027se%(k=I)JC%Img4Z5LQ4uK zsPH_a(FJ6uhlw$2Nji)!^%P95Q7}5tGhC1cqY%bNr>-pq$wBd9@qSnMLqN+!Rsk{c zmZ=feP4DN(5>A6xIuY|i&*?IbAG2&C<1jUeHvThfr@5mG2RSQmB!z$QCtLEdyVEC{ zxaZfcuju=m?yTJb|w@bk*BoZ8N}%&20o=#77B!gHIo<*K4e z%zw4I`u3<&d@*ffwUTC=TgvCHF+6OOMSx2R1!Z{a|3De>3qy=WzP09hpP!tRMwVPs ziUMGjNu@O1@?ZI)%gdjd(uju(w3NtC!gW)r-9ic*YHKX&`l${kl51XFO;{@t7a3{Z zJANzNlXgJcCFg2Xk*6)^n(v3$)ipc~rL_O!bZJ!)k6SRV(-z#!tN?#}_uMR4<5&3e z1;uhH*rVK_yHKB(Y&VnE9sS%+#~@iL3lbVVuF7>2mgNw-N%7$cOEHxD5N6T=_$Pxv z+D(r{Ea$QI=(LH2%3-(v321ygk|dm)@}Q8^MdbzBV`g#`_}R=c7l)2C;9qcZmPph? zT&;i&F-vFnrOQtmO}V{pAJr`yRTIbC`u94&d~x69;&fQfQmsd9}@cW=f2Xc*A$j2GYFSq_dc1>~K9#e07I_}j?V;%Oqw z#A{9?7aU-2UF^TG9?a9=9NO+aT=#_nhZ43VTrg;8t#p`G*62p3H+pGlG}4*EyQmNC{!8# zzqG_5S;CULb!GGE`z4awA>NZHcmT*M##pyk8l#xr=rpt0vRA-)d>@2R z8iieo00&*x9Y2`74}S+x?CXC1@pjHqLI#8cfmJ_ZVNvn4 zV2Q*qguw(%yHl*kIqj7P`Y6*-tF1`L_YW?oMH@=W_d7!n!8#rWoIi&l(4}(qJWylf zA)t@7Y+Q>&=J;3;hE1g6b23nhX#>ty@&BaV7ru7qNItgpf7x+6)^(9kyr0GaGCl){ zckJpS@DcOKPuZBjL_q2iSEN&k#PJiP_Dtw1(J`TPC=CPjHv{(g3v#dD?5GMTEsQKx z>fQLcWHHjhtP$Smr+EP>S_egD zfg!gb(SWk+QAEuDyECP_#J$lpOq?727fxn7Fjg)sRNfH7egs;{<6G<^S(4UKPv$N( zy9-$z!Bd^{Bm#eao{p4TlJNiOjFo@N3LgE#3PPQC+j-1smO6;(C2=#|k zz!NS8_`(e(JL`oA;hrCLf82lD50GD5qIq21epcp?+kU3?+_kwlxBYYo-(qZBzq^aQ z3e-q^kFEzgRSV{G`F98D_Pacb`ib`os5k%r)uzE=n*Q;nQ}GhTVS(r_!&x4bPwzLr zg-43+V>_{4r!XLs3S&`7Bacch0wNo~LS6%$)H!$5+5WzyKT3B9@k~nx2)5!8IPR{q zX9RPts$JQwH8@3Xq`CAfE=uMZ>h653YR&-+`5NMhqBkW%U*UTpSa4>jk2B=+K2W@<4dV zD8}`gYXe_v#j*6XVf1ub8AC8#8&HVi`t0bTUW0F;Q9`a*b5CQ!0N)L|1 zm`p><*xB$)W#Q>&6=f z*1WS9c+MQ`T4&U{R{5{2GSz|^$6+A9@IkM39L7vBV;*9(fo`|Uoqe2mx4`#|*Id#N zwkp<&{|fzWAJ^3vX;&%`Xfsb=C09F z6^HhX9`hW?V6J#zk4=msnZ6K)pKFyoO8*3koDfDI(?@ABA-ODb49u~u)^2ejzuql~ zh2Kt|(o#|?4f9dfMO(h1u|ju(eq@Q+dN#~XDEy4x7ONDOEBsGF#D)EkM29Xs<|Fpr z=ZsAED)|jN7eI#qj9!6?Zl3$y+&wZ9=#k1Y-ADp0?S{aXECTltek$Xjl!XG^6&n?n zUF!#GccstGB|gD^eUa{pK2fW5&s>24DWA#ev#0k~(ZLQ2{{Wyy=p-c-P+!Nzk$G8Y zTfR^I>=x*;a>wml*~p=1$n3EN&^ykej_NTQCC}O4h&gJhlJmH@`rK$N96@Z`z*3{M zdsfuzV~Bxg)q-blBg7X6D8E&tX>n_mRT~0R0aa5L2%e%NrFoPcR4;&Zg z5ZGFoSn0^P%M$NAL{As8a`ajQQ|e(>2Jq*v_>DXGl!Q#EVF%PqWuc`6J0z<8amhic zt##^jm}-|+xNc0?ajqV3)$~5bAgrulJu1s676q~YK2&p^iud$5W*ImexuzEVU;{)+ zM~Gv_H`57i_G;{I&d4qr-j*RA09NL~9^fqIm^f>qEyoNevja7Bg)RQQe$t=CNJCM% zaFER||GT-@YrQ&SU;a5~XgQq%q9jO~O_09Pwh0QaR}M1&ClAw$aeWoUhb6ickjO?W z_oATnabvfrjzi0eZIbbUeFLXw>$&PQ0PIK6PteWYL86Bzy-~CHQ_kR7bj>3L|6esf zpwMylPRW2Af7EA-8ik)Z#@H&&fo)<}-N1QYOYI%}{Q^L+>w?rPCLsok1|x+kSky?6*G9(wG;zs&}( z))Q;Ior~#52czCL)aYjbDqz{w+`1P2%$hJqt{-%I$x)6SQ?mmaVl2)^_5Mv8B2H%^ zyy?;pS1R^8*Y=xu={MYk;83g@@t6G}SYt}5S#CfECZFR<|3eXfi#V$nPFiSS!F*Al z=L*9ogB0QwD+S4~Q?4MCS<`Qep*I|9or^!?+%$bV#kNr{zRenCNAJZum0ZaLSATza zK+`>aXd;^59g_echP17zY&B)dnUSlAd<;Cmh%t?BNWmA2XU_|N}9msIUzsa)2`MC)jwZ(#Bn`1GL==%%pI z!Z_ym1PCpJ-rU*wvfvn^cCIVM)VD9Wv#7?WM64L8fRoP^rXi<}JndcgC4c3n8$u45 zI16ORuJ7V|4Me-eDOO%4zdnLM&OA`$@0r_JIIn1pw}v{7A&mU5jVuL+B<{OnxZ1q; zGOXb|a1|d{MT-A0hC42&pT<14YogDD zh$Iu-6C!7}cXef>kazS8tF4tgO+txLU>ZNso^MfYsQ|)Vkt{j0_}s__w*8zqT56UOMMu)JSR{5;X_B`re<6At0GQ688LeUie;jnB-sC%1jN%PoDW@ORd|} z!d{7rl|tm#CsC8$sUP}X<1Aej6NE=e3vOj=sQsQci0br3B>Oe5sjlkf>l6C+<@nwW z5*X9~8I89@1!v|uZ>=2t@Bm?PSUxhV4bx0Nf11?>iw<6a%>0VSr}`%a?n z&%`r93K^={Rmpf{?G=*WA2Wxn|9O(|*srXy_=_lMQoLSOh$nq}1vRtiMusQyuPK6bvh<}ov=^sBh zRTs5Mhl~dCUwy9W-c;9t4T;wgyJLiX$LPKZGqOE-A#TUW#Z|Til4uL*ql~_eQZ`Ye zVVQEO{Kk!w8=Wu4)+C2#ZfbiW-=MJaSM9h3T|lG;S&6hDSk_bgYsC&5kpWk>)HA1% zr2lQ+k>T&IL zn8oJ6(;!I;NzRGZVPNL2O|>EW!E7g^Z|8!`8pL5B=jvJx9ttQKth%84g#URcz?ey7 z{GwUvYTx~nbB5%xp>$&qYCZ-q?qu!ox!`#8xMAh6<#L}6C$A46oV?A7FmbH?Dfw3L zU~MBvpOA6fGk$&M1KfBqx3RDzd@uAm-s8F;6hKhZ_nw4}yXSeOw`zx0kr?iK?0^xTmT^P+41OQBCi@G! z^3>8C0Zq$3y?1m8u8i$G_SOD6HmegnV!CrAUf$2_@2m3cq#Yw4D_}Smr%Xr2P4v0% zxwTH445DZV7L#Jc&BF84(CH!<%Ppakl*Yr|6gY}s}aHl}oVVSR;#G2pBs`zn8mU05;9TO?soE_nMc-m*dzb2X(q z14ao{P>Osu`OO1+A}##(n*+~wE5fHD`>t!z_hTw97ari?=YP;MZ>;isXrUUH>y}p|g3T3GtTrMWY!rX~Jsdp(lB74F7 zj1R}6b&Fq4+?pFy|_Qh`koLSWMqGcUPn!y8y5?a`wXM6f-bt7 zTQ+vGobnI{kxPa!ox(r_+Gn^#({1Ogo55tJ&sWDz?%m>dPc}}r@z}hZVRCS>Zaem_=|P2$F>wqGr@zF`wgX^o#TtVKx8)M71SIG3a>B%HoEk)=$`&NKd1 z(4}tPbK$qi!V^;#2E`=9Qr318CRn+n_|(O|kn_sCYVs{~;EOtN68c_Twujfo8h(eP zsdz)$(<6hz{Ra%IH5VsFN5%$KW@_}GDnex&kCz`DT;P(wgJqF{`Mwo)C{)t2T_8jc z6%jL1va5UvbHj$YeUe`|9XGS;>zXJXr^V`iHr$Yy9?GH1Fpv`3n&p{5M6aQ^J3n@q zM`hfQ5yx`bbK0n?D_Oe!hEeS6RV5p~%&L2Go-+-u6ni@4Ne1J z-hHK%RP|P-S_dlh2rAOUIQFh7kp+s4vD_ETSua(5hgV&G(QiIhhq~^at0-(K!oBytU8AuuYJ;w)&o*_e_@O z>G(y+@!{kArA(m8i-KUPKYP3F^Rp#q-4`Wzu<(|0@As~~X${9P@%|*gemeCS7R`v7 zL9vSS@65=_bippqu=rin!qL6Ri-iMkV2L>?C@|N-rh>DM!+(O08i*x&c-A=l<&lY* z92j{DIrFuhqOdGa>a~!8WBy67=#)ZawdR|j(|es-z<1FM=+G6O8Qujm7r?>T?!)^v zb0YuwQk|%p3b9EXCKY=F0)i-fF9GtRihzt5Z$(7}(RxN7Y`j^Vn@9ui3HJ7ce(g;y z$}w0U7CaYsKu5+)l-#%p1pDn)SdPi|T*=SK6TUtxmU#DRC}HslPexS6O8@D|bY-B- zz?yIO1#|sgbBu#U7Md+YGpqXQbIKNHzaBST{9}rlGbaOLSE`tH7R;aWCd5%bE~3X; z?h`Kw={_T%(jyBs2(7~{)*&{BdX3nyoLrnt8I?I49cjAd9eOm}w5^~S@D8U-M&YYW z^QYL^-J4YsrrS>%;1isFV9}RJJB+NAFLVgqY?`EO9BbN5i7f8*;#}rSs(R_?^2iom z($f5@s;D=8aLVPO&idP4M*hp&@stZU(xpbAq){z0Wl-EG9Z;KI4^M{{vvDQ&4Lz&~ z4avm0MOf*-+fuIW_%cei40>ASYN#qdCjQ|Y`$4Atbl6F(78I6pXGUj>mF}LAs{mED z?E2_px3ml{^Qzw2C8 zWWu$t?z7bgVkKtmwI|q<6EDNSjGxuI1+bVfOPo$Qn}C1}O7H7xj}s&VfQ%q!>+zbD zhN3QZC_(q3hxmxbL9RsOr*4&7kE(9Z6&gi`wz6{*Wi0&+_?e5FuOs8}>k8@dm@z&1 zz29zeX|$!m!M&+O(K|x-pduxVW29iW1+e9o`taD$yWQ?L--xO+nUQ_vXH$Z5KMR`} z4HT6YF;tWaaDBdqcOUW_5nR(l{_{|v`ipY5;WGT=Rpz8>hvU1AqGjGL;>?-V>v%4w zHRhJVa3^4`C7wBO{|WZi#MT2Z?)4iOn#R_vLg=ZUC3pv=(#&9p9{C1t4xNAu-sfNM zq?7JY(lB#jrZoq6p`arc)Q3m z_tdQaLb3qgL#9j1l=x=aeAChXt-L&tx^rh2E=%< zBmGWjpROs>Fkj@wR#a@qxQT04dsqOWdy*bENw_yv{05q>yt3D-@7LVp3+KMiI$v|G z$M^I|12Fsc513hB^C-i$Epd^kW_%>L552s}WVC`h(Q+rk!Ez0!SVknz7$UnPN@o#N zd!?3j1@k3K=C-df;f-$m(E0IPp?BD9=cJfTSjq(oYo3i#UoodKG$1(O;U>CiCK}I+ z9dOK}fhZIEz18uU@+a{dzpiW!%Z0C47R76BxYcjF+WjU@3hNxf$_ru~8k=UaqF0`T za^W2S@-kc(sRyk9RJ^1!+p3LKUeugnn~FIML0y?8bK>0J+x4ftO-x&5?ic_Z7dLh{ zhq{aT_9xkRg?f0iE4gNu zvnjPrVhvg1l<3F^qVKITaBnFd8#bQeh#aZ$#bH_#S|W=zk|9fyk`ULYV6*ukJw~Rh zf@m0-M8b$r_?&%Xzf3G_U_w^!TA93gbY!6I`u&ld(TM_9%STs&2UA)%4w~~~!o9!n ztE@SRWo^^SFAD=&6kQ<-sa43A=qkHa8pOh zKSSTtA>l@zGe~xnconR(mHqTeXw&my)2W`x*5zbrn{Qro*~(O$XJ+XdmM5Be*}1iD z8tzW*o9+an_yMaU>cWC=4?2H=ZMXl1Z|o!eT)h?EoXb%Cv?d`N=;aZ{>d`O(B^!I# zHf_Vm{dB#HR5{F4)FVdX$B0Qc_DulZRM#V-bStli$Jsx!mqqk;(^RN;he=sEAH?Hy z-*r%4IlKnsew^nz>7Q&bA9G9sX7b?RZ|F?*riDA4Hy7ZpbpIM!*-Yj>;Kp4|nOv1a zF)-{Wmt>Lftcg3cD!lP~N@&fn*g6-JiXGgBZ94M|0-7zj-Rxg}4H9us;;G7C*R8Ua zQMGpS0LnHG!AWEjJ1%%Dm9Had3EwoN_oY}nJ=6PC?+nFHQ1|2=thsb5YIf2tna(?I ztqJ}vk(kRdQ;`Bn2pf!LTI?N@)9E6pG7ZI#ZKi&V1{5EpWWsH%!ms0`8@+;^F$*SyETGE>~@EtT=Jkv)vgPr*OxP)Oq6WgD*i4J>$$8{$w~(}C}* zrO&GjaF8=P+r$*_n~dZf5mE+PTkl9}da)~gymI&fjI94fDo#hzy7BwW8sG*<-piT5 z&-62-wIc#E>bOWsOILqjdm5^j?+}J|X=YZ2Mh6SYJ4D~G%M7ZcgWJ1A$KL+0v_zJz? z2~=GA$f6#QoCCy{AxfE6M%I?x%ybI2CyuPI5$9=4eM?Od1F2aa?(ckJkFCGazKFbM zkZEO(M6PyiBy!D`Y9Q*q;%{FNDMZg%@?Bl&*E-L4{C@n_%^yDnn>B2yOx}F%Nv~V_ z(?kSa-7UCZe-b4u(}?CQvpn7MHRcX~d(AB}QsFjhrMVB5-u3xZ%J*ux3ksvOZlvcD zvv<3HFnIF)By!7_vK^n)96?`KvyU;Mzwz2G>anuW4os?dAm?3IFHPl7@U3(PEr~2U zS86TuF)h(Bq7feDh=dW=mJ@K4=d81PT02F)TRx=!Jb2Bc6K)?pa4gO}l$HAmTvc<{ zF2&aK!p%7e7TdsO&@OP@ZX1!Cv~(e&@14);hnoyz7ZS~vK1sy^j`NEs`Zq9#7=&_{e zvCN;yL(e&!*drgwgsj}RknqK+27?8Dr&o;7|} zNrbWRllBHFx|7FxfH_dAOi?u~2F1d1K1g|GfUBwWp;qJPQ+5_DToOnNRm5XbNC=-$ zbu5c_L4CVl-Nb6s9Mk0^9m&smBp~3I3RDC&`jLOGNwaf%)nZ~9cSi>p`u#~lEWr;r z{|N8`2@Ej znsdi@CmP0n8Yu`99kSoR@oRA|cz#YB>y2(I7LR{e+(CfD;b_y^kG{It=wsJCVfhnNT{`(K?*l$6FB;Q2EBx7bN@OBh=+$*pj4tPyAGF zWP@-Q2V}+&KCWQpOT9+ch!gZqP)tLZ!DoQd9Qv5Jpqt=J7n#$*d0x=YFZpLKksJk| zw)5piyiEGYcB?w;SoxW0{|U}JR+b0*;6W}gMdsS94k_oyq&tZUt~l3^Z#T2mSTpq5%uG(x_4K%v{<=L+k6Usc&4Nz8dM~{!C44cDe8^F+){ zghT^28r@F68_)%wJkWaZV=H$T#mPRV4spg%nx2Nzb$btG^qKbNIcjB7-I<<|v-l>p z{;cNfHz^MaO&Kqp%b&+xq;j#bI(b?|i;n)?|4u^8wo9Io?)!*Exofk|Cq=S-3y(Dd zW~AXFW)>UA`+W9WTLZ(&kR+ls#sHQ@&cVUJM+;b%v~l$48MCRBwWPN@OiLDnLWZze$iQZggk`x zJ?Qxwp8pW?97%_X0(rrETK%P_^V@EEqX{H0b%070>qy#mOg?ZPKn-j^g7~}H#lFkn z{lQjvSywF5BHO56FOK5Q3VWLxB+tk~Oj7mA&87$EI;K&bCh@-dOM^lWhWm(~>DI*} z`$rBBw>lVILob0r^N(s7M`^Urbbn9G=BoU%^elU@uZvFTv&mLFlCu0erl0?{ZM<>) zcdPUKrdwaeUZ&Q12&mXNWNt}dpS}MYu(Mnf4(bvk9k$nFqi$Aty8z%gt}jMORVv(z zj#P+a&9|_?$w);`71m|b+PMgweq)fM?aSA_)YnB@T&{cc33Sx*N_AD-rMu4e`>IR~w+HJsjseA%{=^GG_?p_L{)~g1+2Od*)9d2$vxeJ8! zI56F*=JCbNN`%(V!rRDC*-Iq3A+{?uu`HiHGk4fnm`Ho=?p#+r=~L$i)%BBS4zLCa z{2l(uGtZG{>jm>ge@DH($uz(jnx#%$;+eCyzI@Zh3RprFml0Hmm*KRyv`j+nj?b_$ z`g(9GSE|Rj&0wE)^?;1utzlkkKPU@dMrjJEzHgu38&Te$8s3+gTHTLx7Qk?@c3Wx+kQFW;T^d;7{ff&S7EB0Z;{E<-kAsFbCZlx7w-* zUGUWl?~1Q#4qugQZ9ERHt4Z@_iwXO(H8j~Zd1X{C>X zr47ze)fh=}D%Cr*a=KJuuGn=(-_&|hFpulrPrP2>WrbdE2iGFsKXne;0hp3L;Kn@# zU%Ce>#y-00&X{tvSwrB4w&h}IFqwUQ(@0=IQj$@!6X0i2r|-vR%V;I?I+kOsv?EngP-l+~{9I@LNM_P}W|sNc ztAy4W_g$-+5Ucyl=CLE=V7kEs=(RpHw0gB;J_Wxrrs7KsFSza%wM$ndDFQi)97r3S zqGGDbh?{gj+u~DatgmM!hrss7qF+V=~|VE*q7f2pGa%j zHIA1z^U#GHHwzmr3pAez1?{H6RJ`Vuss-KNE6Hou|TUc*?s|h8)=mF{+w|t1= zXPmo&`>wQG^UK(4r*ec!2ODr&UKEICqHktx{AZnOV^*nY^L#h1zZ?fYYl-kIUEz2?fPJy@! zF=?U6Y$wHdF*b#V5X^-afQD$}D<)RFB47a|q#S;TG?x4`{G1e@j^^ufNx-C1zSeD~!R41qb*{$m?~BnBQm`AD?bMV}=N1^W zR`}k%gY9z-CK!_I_tC9&Qy_Okl0926I6)t|Z&oO;b%WNcnOlkpr9~UTY60CU&tE=z z9$cmn1t*2a8jG~^Xq*y}fPw!eB6q*_W2oQOE%Rs%t*SfgsqEFH8moiFyp2~e$#G#D zRa~buB=N8c(2xPTm`c`o45hrYhuN--{>s|tkb}Cw6ZIFUA|?+c{>pv z$Y**7${n;%*#fH+KqTUCh_o#xf{p};zBC-^i4Pz_(D9Chj2kzq#-4PhXHuRgAw8`s z9^40e!}7J>E>h`0i3C1njIgDD4=2k*UtJE9Z9NVXUwGwY!0WkeH>0z#STSQ2d(~Zt zIHvMfKMah{j{2e_s+MhzbtGu9qI{$ppn{S~o(G0b_}1>_Yj%uFYPn)MID!~2wlv6>aNfc@JS`E_tEiJd#i!v`yNIWFFhL$X*T-3=E_P_&V6vw90AE3*E3Q zc>$B-ssqdeOO7xq7_$+@JmjDGb^0mQHn#QoMHaJMBD%3^8>~fc!or26ilgKgmPwFg z+&4)}4D<^DoVLE&N0;OeO<=KFr_sf(HxcWVOz2Kq$-gb`tIiP46hK|>f87UdOtZQLh% zxHw$9q6(jhGN0YSyh`-o9CJ3aHl`5Yz}16P$}q~O!@)o``uZ?72Rmz_wPn!{1GjVJ zqXe^D-Dxvr^_O#)FzX2)&@iVmCtx-Zeiw{!48RfG2Q75$fZI2agqX9&Ob;#P40CvzY1(grB7AP>ALkia3-vJ=<&m7 zEF5uNq&~<2nF5FV!3omJf}4O1Km4JQH&GfN(GpXe^gJ+&9e>SU3xL^_KRrEZ9~#WW zjbZ|`nDNz8CBY}Gv0ja9icd9g!Uz}u!B^}l+0V-HX&{{(dI`8!CAP^5?lnS4g2f47 z*YTK`kc187sWwGllt*Xe*$9AJ*{00e4zt!yi_-Uxq!AOlXGb=Ep+z;88Vdvex&jZn zkqnY6*{2I10O^PE*wT?K4E&Z1zd+W~ebXtwvrp|aY_6%pi)tQkT_1pbBlF+og~w99 z$vF-npvNWGm9hKf7kaU2%H*9X`rSzGwN#ItSlY94U)i7+VzeufVvY^I95-F|lGCpI z)pv9!84_;pn+3yck(V%7^<%~IXq=F}_aO1j)!vhbVTK#U5D$31-5n~EV$ z@b@(a56YxaIu(R~t?)l|sxhVc^2D- zy9z=V$p#p{C=jzb=$HxE<*_yS)xP#9-eTf;A1zBrFEnObQaP^dR`Yz#=XiTPgDp4u zEQ;T5l+W*q5{=oWX1Cz3h_d)ymx^KlKKQ1X%OOxESXkZFpOsi~czR|Odntk;>s^m# zlBQh2*Vm~}u=wfWDbkXWLNDyfp* zx7hxH14Rx;22MAUgH3DPvT+cBs3Jvn#xr~i-Ll~C7>SfV0cv28$Mh5Lc0K9u_7l-b zgSly<57vKCu&IAYF3r1TyS@?_?~i*fy~$FhTO3~(C&ragWA~+ygrUby22x0z$rjwL zqyxq0FnoUTq_lsiD*j$)VrokE!8Y`PO%0H8ka?o8 z64&34(UYe*FK~b;5v1zgkS_Ds#q>}(APxPE#jw{_YQ8x_3CTj~B1st~2$LEQZI8wK;7y^d9MG(F@dw&lEBONu-ZQW4Y}7sdx21 z!ka1I@`g40-B&~pGshmvOFxu(z|oeA;pY*D*?M}43NJFtRjK%SxJdbczhj)TXx7w zt_jcDC;OvIc<)n~u199`ZphJZgh6w(`pNamY`e zX3}34jg{mETnCG{pkre`?bs#@|4uL2 z9lw9_S*Kr&mK#ixRY2h1vDCfHZ$h1>raGNqa@m zA#RGXxSB^xTD5qoKihmGU12QR!5|$u*J0@WfP=atEm_pu;ad=t9w|JvEdNcaMalFk z1>K1I)Fu?uZ@I?3L9EUgcd#Y5RZt|26w08-Y*V7HR?&2Ik*dbo1DbB!3C6pF_&d!r zv>69XQ3soG&FSqkiVWUdiP+8z^41&;y%!>OudBlQ)ag7GINiRW)y(?7gn!jcn$<0P zJ3QK#^^c{p7C3J9P8e%~Gt}V!Hl=wzV-h8{g@jXi#$_(Ny(MAL<3yol-!T!|``o_~ zd`vb(@a!%DDSh$nS6&-CiD?@F(3D5B;s7CFxlf&bqr7$jB?L73|29vMVL*n58ShVo zKllA;v0PB4(Gb;3hg9SPrddJn_NA>5-Mb}y4Oc}Pu{pb&{Yp#=HBr__6n;^mt66Rd zgwXz5PfIG(luMnqUnscjN*{or6y0KRiqq#j8+V|gn5wc{6VE9YLkw z!@2FDjN!P8l4ZsIFn4+&Gd?vbQCY*WT$T4cD^+1+LJE{Viahy{@UW_(#|@HB_OM^k zAqfNepTEP94~XmbT3kxqB}P;}C_F6{znk1ZYS?db6qU^8TAs5Mn)dTYZS%awruYq*R1vOg9Ai9eXU=oTUj4qg?e7ee! zT6JU&@qY?jNVCsmDg;<3zHY8#sV_UGBZbAa?339DX zGIfbKMJx#^coiM}3Rv8|>-f4$^yR)=)|Iy4=%c?U%$QA)NtH#XEn3yxPVG_Mut;q@_x~KZ!M?m z&w$)^Lq0jFxcKW0dHX})6w+C|$sB1@|7F@Bh2>&BC8|pV#r;Xm(*=}Hdff9?+;Zmp zano;Vg&fg@0EAG9p3Nf(ftE@0l>QvjIl+B+_nsC}QoAp^!rg4DM?;8SHF}>%09-_t zN#5g@rZE%*rcl1Qr)j&M{~2d8!2i7OwvWNipT2S+Qc6E z#4-6_+1&Y7tqjp^RcgQwtU#*g$e(4E+8-dOztgT+fU6qx$?u&qU(cPfoTK|L!kc%9 zNdo%)CwaKjyLZ-pp2SkNq}erMmJcnMeaal!J{>(|$7U*z>IJzJI;EG<$0_v&Z?5DC zEm0YPf;KUpJ~3I{S2jJqc@0fs5*gGr4Mq=maM;&}Toe zs!R}IaA}z>F;1m@uY|sU)E|}v&2f}(@Po|mbgK)1nIali-Nny?V^*tyGNk`aZCPpemA`w8Og!-8-VNTp z%c)O9FbN!lHyC6!?S+p}w+MG3d<_^MQdf(ObvOf4X5EB8zl4%ZwIG(zez*}LigPkoY#p6qT1LmkKw^vM#+pQ= zyU>)Xkp)ND3nriGb3#a`>hPk%Jc=XaFmniee1O6hZrQ^G8SW^xs1nA@;#xir>5(7J zqxIpz_Ug~(^yq79fhF3we<^Nw%(Y`WU|ndVS(Trw=D$5TX``Ybz{V06X=Zfv+Mz5j zjGMS>7`bZNGc8WnJG2dVMu)JyJE}!gABAXa8=-B|NjoW#tQ^-fyWy8bKjZEvwUPFO zn1QyPJ&rgNdRESOuk{qW|MlYzv3*nFJ|mBbC^h0Sz2kBBFJf)pC7Ivw9Xw&v^L~MJ zh`7OcJvxM$U_2-z5N8IaWpx8Z!Xnyy3nzJz`#SPKAROp!am5Grfs4%Sn;u1kEqM#4GihF21HX0LSkgLD~>Lo=^1u2>(u0th?bou46QK&;l8v=ZN9KDOYUR<@04y2Rf2v@K_@Zw|^9% zQ!xU&E*U=Vp{8B9<~!ZeX_ayjd-WnQ?7nAIlFG-LYc(uifAwturU}}mSFKXdVF@uN zYMmf;Ah~;keVPQBxQq<=wm(4@FGJ|+h>p14b?qFLfD@^xs+;^OnjXje2a^6Kh7apy+|_U`#8Sha^~5K@*Q^rlF(Z2 zKeST_#KPclv^kH@92gvX^0%tmB#T$d02y0U{E}n5b(2z(I7l=EBvqF4FM#Y}T*_K` zKm)3aVz%N-qE}kIaBTaM$aad*8=t4U++86qJ&r~A6Gw+ZypSVlE{?chNI26GInw<5 zN+j>zr-yzSvf0bcbnu%D0U=7{WBhz-<6-2mpr%EofwjAM<-G{t{$baC?F)8BnPBSv zW|{mBYPKTk?S2g7ac2;gbzhG@RFl2hjLd&L4^tnN=+DK#KGuL9E_iR;Fs1T zRXBC|i~f(&bchSPqE^~moj+kLJ;7?d&n{OO6{#@Hs%x=b-Xsku!D60L`e>iHZcB9* z)DcAKGumEoZa>M1bT`=S0?XgD3#{&ueq@+ndK}a{$};i&P-@QUnIq01`z3d&V=5uH zL4XU?yfnnX&^qbYrcb^0Ob-)^?*Bd&kPD(T^Y+t=$Y#UA**x0Q>Y5A4aEoie1|{Ye zuU#GaA+Fuu18DbRN6F=A;yiSYru3g2g{*U=lrHM6LJ?Fbub@|2Ky2|HblQgPWj9W zLu-Ox$9$uy^pULy1RrU7&f%Kru<~7(()cp_YEFe?Q_8`0RKWeq+b8 zpS{0MSox6cE2k8E;3-@uR!!^LE)<87uxy&vf)XG+dy)+eb(PGIQ)^J!Cv+19o4qX~SZ-4C zm}1dUtu@DSHluRrt=_8@p9cCY#(|i9X!6SbjRfSjU{51zlUn4QXp_pMQuTUK1m94L{ zGI4HP1br~|?aWM66{E)Kr8E$UIPw$P!d&D-^g)q1v%dxund!1_8(1_6R74*>3S5;2 zc+{^9^>Bw-=R@L)`UMmub$>G`NWTg^ap^PhLw*`{CerkNUvF?01R-+t4Wf7eY#I3Z zV(O)3c#<2AGFCy3+P8)j0s$j9CvBA~`~!D7Hon!BO@_S;YvU8`p5UBeuq zTm-i_N&TMPMUB@9vm&VO03R}N(ExO`wKhwWVw9Nn(-&m0r471v+_iInK{4&s&W+}L zVZH0Bj&hP`oC z8cXoLeimXkyO$#f6kkix7I~kdKd#3_`X)_7T|`0bePrZNgddaS0J{ZfE7$wJn#gqu zI9iRPLvwBySd8l;QkzTKo=V=8+mLMq4l8*JWTJe?uCsIk2-_=R&KkU(EppKoG6lwMCKXydb{yxve@9Y15>MjN*wq_Kk z)3S`V^C|!^WR$Zu^AR5FW;H03mDm&@E1glv1E}y3r81nRjBE4xpYB|Lja_5L?B$Oa z0BmT`l`BpmujeoR1GLm+zA11JBF#ZlJamshLu zHK)P5nUg*@Uz(D(l08bFF^7~6Bo3ezmb(9yun|7s*kF& zRW7iLYM}=chWeU==Q0iuY;;?Dspb9rsi{%4a2FB9#yMd2zsX%xuXo)tx6&l4X2S~i zhha1HlKy*^R>+pQ`M#u+pdyR_5Kv0`(JevjFFFU5W<^bXKye#YR8```SLxgE<~s#* zuQs0EYrgnH4X=`12Tgq!?S%g$&ha^BTJi^Pp1MQTpuI`GQGhZ(z2c;0M#|~EcN?T} zFENK`uk0F5r(Pe}fPL==Tl~Shn)H#oZ2)?8x>4*$J6wYOSFe+Im3x<2wBoznVPo6M zgybdlW(*_BNr#z{Nt7!#_$j(+tw5g7`zF3Od_Ko$&|A3c@OXnb{TOe!mag z*8Jzq8GdbN-CW0^n8v>wkD97Bb^g1ZP*ll57pEwzfmXC*nsl&VwE!>E4fxE)*UM%& z?=O6&lX|#&HZ{=N1$Di7aF%CXM=!`duU3uzBN{a1R^eylOX=Nl8j;IwZ>s8xbRW1Y45}H|uMGB+Rbe9v zv3#hvQN5SVPzQmpmR|+C9gRH7v_?V{(dhN?O*k9Dq@LJTq3KZ>sKqK4g=J}ssuqRW zFB#hvg$biDE1vW!usEZ?6oLJ<-x`Dgt1kaV3eyu7nZxMNclR9mmeT&Ss_(Nq%-9rc z_zlE{zoa}jDNj*RhWas!IvY%G;2UcN2~lPs-_iwzhLzobfage9hxtq3QHuvcg&wak z4ZNEJVPhv)1D$e!?)e$%qId=ShY@f6hLmdpF4gEp$%zHpVKMP;T|f4j`_iuN^K$u* z`^wY0t1T+%K`+0hhICkrz7nzL{cu(k(c=eK4LA6H?KM<}%9&*#j?sOYXuJ>qH3bc_ z+5?m+UNz79ZLO7=f=AQ=H5c%^qr}%|8_w@2409K;UZIf^45-rL>*Rrqb1PD6 zo`<0LVo_hm4S! zThk6`o8^h?r=5a2^!tx6v6T`&x3iW1e|-9#x5~(w>}+1@3{82peY!p@wPiU;>xzisC@t+hyz6-GsoZ>NV-C1 zjwco1>_v2VwiMglQ15)M?<8|`i2b?@YRU}!WkaviqgjNk;15!&MX{cIhy z+syhg;=A(NcVlW_-1GTkm-ZgaOBG~3{2tl^25s6#v9%xW`LM}oVtA1*W3QbHM!qYq zJOc$BHFd&)4Yc8`Mo6f%f#7oe)l7orc=~dH#{Q6}rh#e?! z#k7sIMK1ivBr^JPpjdBth@C$cb>1Nc{=g(=sX4g-xpEV?>&SHZG4P#u$jv4dtvc0l zwH}Ek(~YbP=O~#F>k#~$=K8<>i%DIawoUWdOOe7%&M373yw^WtWNf3ZF87l%pHX`N z@L%e6EC;}q?;iRzp$at~o}BMQR@U%$0e$K>#kt=M8U>=$Dwl;UwMF}i(mCCa7T&7= z^e`NgJ`LTBC_m4zFC_nmUGwqV7qd}8`AKn)=q``MFURWyR%dnE-6iadi`|Y<&x#nn zp^^bw<5gl1E}Q??tNIxagW+*|ka#KA1GT5p`N1h?Il$-|o+a1P$mc9oCoBQ1d3LM+ zM5nv|Me`u!yL#*@({S(#COWYQuXK;LaZ8+q3w+;j@SQeOtl4nztG&qXS8V$5jKECW@&@8=-^vTN8EVBdQq&14?4_wDA!-QYKxrPfOP;!E{U)S#@Wd0i*g-u ztms0Vb^xTTIY)P-R#|t~{%&L?{-)@Z1oY zVt?NiD)uuF5vihP4)jZygEt0Ua3c>%yrmIgd6W{}{RO}=-n!m>oxiu zUcNJ4kqxH3v)02*VAxtFcP*V@N`!EB$1Xn2>87Ncpb~KxPxJ zuWU)HjCPTHV|OPGO!Lv1V6Al= z3KSN7nF!AXC}s)QW9v$qfr~^?77H_nEmCsL^5|ie{R%27$i3&*4X^mqp-Ej!s+nr4 zjdjoI@&Jb&TEfsj?;cwF2^2lv>_X4^FT^C*)qy8#0POCzsUOF#0T;!G4J>cYpJL;Q zYHw}A3!NHjc0RnWBVh$G1o1Vr9Nwcd>YxoK=oa6|VdJn}yKUJqgzU0JpsAN6`8x#n zp(5R`p~u4@tr5^Aqhp1ly(WJsuuGQBI{;DhuObc7Db=ehA` zxaEtEao?5ixcgP^5WCj(Vu9=Jjx(TU70!LJ-u=j~OQ^fM!4NI1j%+3v*#`F_$NZ|Y z$JX-&`$)_x@nRySD67YZ32##7x5(er-Sw6wy#94}(_U+3gkv6y_^;GEu~VY1?7tZ8 z-y(Rj3M21F{}$1kbZPy*>+zBVbn>wDITU#_;<#kPwT7cvp@8BhjZ+>Z%T|H&&BM98^7-RIUeb^$- z4o`lo{e#L$Ge6m6R2{W#|G zAnPJH%pq={auKftVtbM8mN2sYawJAc zE=$8%+qAqnXi@(!I=h@kw`QKgvl=bGU|R_DY#&j}3PZC7&bwi4^oygsU`oV9GVvgS z&P8!!q}Qir=p>D~G%nyH`wXZ-1S>qOTB=V!PNbk4_e*d~SsOw;lMAu=_g@t9F3j#% z4K*|Djm=IwgVuatxBuDqRj4#NnNAJ7#sQq-AUwj#hhco3hZ*#x9Eern_zj%(r6`DJ zX{kTlZf}U)iEx9U?DODz;bez_k!}7WQtRysNab==w(B^Z$iPifrg1)-pMj`h6bMBC z)Ud5vx48d2*X%*G^!?3k(n33U8~6VDP&JOjoH16FPCOzYle!A$xoLcHi)@OnjLRkP zmq|)t{aUeV34XG-q;~Y^j-Cm50Q248Lwh@~*1SYe^RY#cyc@Dped@zgEU^t)6lVd5 zvXB48?dt`4bumC@;1vI%H|UP%PZQ7~`2rxEXRwEzFH33*EYZ6VZps~biRY%mU&4#E zNBwBkx09wCdc7SW_$qoil6@iA^f{6}7I|MGcE#eO)|8;XuJV8uulbr!Sw5a(i=A^Z zQKLD_tIFTMPa~UdjxtxhB{2n-T0~dxZa%Id!wa_$&VZ}f zc*}=+xa~Pd3dwnEzC0MRcQ$3?$l<)WIQEdjR=Re$iP*zvJJF;FThrWGzM*3j=g|$TAjYNedU zA2T)oPC2h}wP~FVhpLb&u)xN_cSt$v z&%URTnvh;<2ecb=jfADl7?_m}GXk)KGyby}pf=~bgp6tx_ssR^{ZKfKwU5Nadb~fl zU}{&9d2hO1>~?;!@evO?ilrEeB|iFy*Dc8YQv)%yP~3VVzWdg5Qr23Ezxt!Lcj(MA9!#ZP^ zP9zboy%X*|J&jc9!47lwvQ;#Z1fX_kPdzUA!2IGAE0D~@zvWD)+vmaD1ZJzCTjl}p z)OK=>HQjgXIU}3&`FrFW8_Iw^Rg54#q?4qd-kIA}BTu@7^19AC71o!PwryGlAQ3ak0{wKefKTViMlMob!v$8o1?~NGiz#@PG zK9fgvUp)Wjto43g8-D2zL~@ZV3;AGQCzTC^OJ4hB!S(L10MMy%8kR@L&QWUG~XKH+{MybQbGQ3A=e1?%nY1=4sym>f`aaw^wim0e!KP~kl zSb#l#aV6Xlg1RESelPV*KB5>NeuBsh+N#|zkO2Z;6vh!XoOI2Y9%R|64U zlB5`j=veDK6av%J2TPKp7W@3LZmCC3EiQ&Ss}`Bv?Hv9CQJ%fm>$)_8f_Jj++H$2h zgFT7S?OZMqj|x24?a{ehl8s_8K_E#|$b!&m$Tx;`gDX&IWi#IJel%U4p~rLoZcyf* z?}fj$w~CkB<56du1RY&z3bW0Xfw4!Im%g39QrhUWOsGG{o3_d9y?wPWtq+#4Zt8i1 zU(p#k8q$M(DtFdrT&g}{8dcNFSl`R|I#V7+5K=oEkeP3@U{c@PrucQ^1IWD>O%vQ$ zd1hf`BI_{v+CpU__4~&JM9wz~{}8)xwFZ>P)sh+tQ4ldd^ZO>BxWP%&dveEC^g*>> z^E#)Kgy`9Dica1AE*URVB5%{EE4_@VtpUj@{ybNDLFs~zpfnmS*_IJBNwW4g@6ktz z_bV(Dk9;(P|7fOSA4g0C`K$W;4_Cyero^&W*~Rq?u;xFRJ+lf{Y$~n}9D%QUyK*dJ zYwmWQHFQ_KbhRf0FMXXDqOU2&VCT?vYsmhzA#;aIgy7Rg`>z!9(v4nGPVH!b}cUAcgYaG{AjT4>OxW@N#RIuEtL$)|`>% zr?Ipx2y2FXYli5(ir-ort&KOF35N;90N zAUk^n-^>>7ja@O*a|Lfm4;7)4970?&W+G&SDUZSTW%#qnva5i0gkW%iOk$X4zZ&S61} z7s7o~y4#~)Wfi>3bp3^b2?>p7lbSKT_R;&S%v9PXNFCi>s$o(ze3$2UuT>43r!RZl>U~d&&hgdQq^&%X>-rf#K zZ!H4KDqdar0F>>P&ff7DEuiN}Izd|TL(IgRC>i?TSjQ$G_1Sgo2Z8K-9%LU`UT#LI zZRij7lI<$30`L#Uij5wWoT6b3olRvx(PZJJ56_#ko661&nH}$oCw0T^9l7zVPaugJPQ6x8JV(VsN*Zbu?b-QibdA0rp=@lHd z4I>2c%}G|_37irr+5e?fUO)*rQ?0#5}R;7``v2+Y45mCgzIJtzNvKS zF~PqEcfHebVqmFH;Q7w)2~6M9^ne$1fB~&ZX!o-VGHD6#%ijj=JV`uo;*BEeo;&nC zcf`LcNyo7((tVahBLq)FkE{FZ6CmGKoYpG>6*U;9v$f{nm_=I;^3%JDBY!x?9P-@Z zR*x#vZYO-@l*{IbA%h|Zu}K)3j(e>qr#@mcoRm6KncboE6}Udn=+a(b$YtNR433S< zIFkAzC*h{>v{vfNZghcPt4x=O)k45lyLYP7C?EixsAvUjpr*e_8u`OgXZ!gjwS}aL zoWQbLZWXsYHhsAVrmhWBg3tJdPKhAE0=8mzmKZcRn1{VnWw=$0X~Jpfns$FUC2$}q zl@{9RY2yC_Ooi%fw3!i%y5m1+y6diD;99{xj+KxtRQ?B7prwSeirt~2#7Uep#rZLt zLkz+b22@^kyE1e~R+r%8**bTyu_>5Nx9y`BDIptYdLS1mp%>-btQ+EhdU5h&W$VuX zH1hngI#35qFsd`+1N9ssZ4xdu=U-Kqwz#f4)~XFn9NUg$7H4yO$RRW8_!kQF@`hU!hV;5m)UXnzq)rC#rGynm$^^ZL>5VSlPINO1}btN+xFlQqKhZ zIur1fS@@1@7!Y9muL7nOSrRAB-`5VV&praT@$QtFwa@2CoQbp9_ktw-6>h-z7}XDg zz8NJHU~^KMs_&l4bAGCoVSFXNy_klfGYb$eP1ay{_9jS9jx8X+wnN3nTI>%00HG`O z>N(?eC@b+&99DINmkd!`!MUx0{*=H)_v=C6AYgX)G6Y_XXYV3#{dk z6+WlrfS-rVL{7;D$ZNwUx?{PDEr&ZY&ebBf*P_!8@67G01)mQO{%4LipLKOjO}^`p z^xy?#8wbw{@k)b%4V1Cm)IAxif_&sPtfOpVxEjlP3E4)8>V%bfW7lC^#34{|kDCtk zPQG=ijzoMj!^w+(Gc$#u6 zr+ssAdkH!M_%$VG$E)A9?fQk+y>|qIREH@k8~Xh$>zKUGngYz(TwuN4;h7QPnW!|% zbPJN^iVuxlY3~mc5e$uac@H>DgA2#xI-}MrV6-q0RVg5~a8vqO62L46{&3H~NNa7~ zb8TK6*d!HIhIrsALJ+e|@y3(-KZMdz6`z%QHb1wkvA|2o_DfaQ?YO7R>o*_ze(0wd zIgyeucIK3CdJ4cUjY-bVcpj?(#VIf+;aO$P{J)$UiGCr+IGsBQzd5~fc&<=*>{Egv zxqIu8IZ!9^{k*d)UPWRtW{UK)7yV~1^2f{wqdL4EGxIIU27+k4c-}1{X=hQUAMB*c z@x6*tU&8f1PgM%}1Nd1dx!2ruIlZV?wwpKIo+=!-= zm#X15#njWL^wXx|4ZXhBTdj8)BJ#HtoA_>mcaYrofqw^}K)OjE=>6E*6(YTvxrqG~2lODSX2b}q@Mgy8&Q{P%=*0SNKG*zF@rMwP{8`i# zMS{_9ms{$ujI7lyCisrR`GKnG8zE&H;Y1$wX9rjj>s}7)lr$&~3$fI|s&C8UFqooD z5AYdNAtBCgj6+h9JGnSHZ_-20I$k}9_0?ILU}ViO#A5r6c`!t56iSYq_)m+BUf)htd}#5N zSE$;9LBez!jUUu!U3eJ3mTdl6*$}$QWoX=YLUeh_N^U=wI#mL#z@z;2X4f+Io5WQL z@d#q@cG24?JA1l-612A^lK56QlRXnfc){#r(NDEwntTl6Pzw>^UmDLA8b*~Z{PNE1UuINBR<&B47qmp zA!(+y^P)(-ZFm;zJKNy38=0wGe$VMB$RXX!A@07aNo$!ge+)*xVMa&b74~yATEXJ6 zUzlNM`30qdnen_LHKrjnU)O&Oot^4wte4pYd8$5ns&v}LXp8KIN69};xo(i1GQr~Z zKaEOLHglsX>&X)EqAAzS4IlJPGzx%{N11!4b#cRl=|CJW zxJ_F~%4XQ6e!1gkd(5XbVH#4?OIF`Y_BxY0ATgrVslIoBuOe7Vz5U1+?d}nnVLtp_ z$ij*HK)Pey6x;H);;ho26Q5m#i*s@-FOR znPsDRyp_$umCaCc`>0<@3WWfy2LOqh07$G-;73eZ3+6Jgu+_{q1mB7FvaW1hO77p} z_DZ{E3Ch2!7_p9`F$)pz%XJ$h`vdWiJ0H=X_ZsiieBi88r;u%^s%@_%KfD7@C?H6d^@P|@K9+X{^u+96PoR3+nyN0CJ$eCKtE zQb0z8t9||OOTh{$sfzZ5`}}#CrM1KOPfr6v+hn)jS=K4qSO0ieRiDN3`S{MZ{6hK7 zQ~ZP52i3lm-W9^S;|=W%fO3cVciLIxaUG%X$}}#M z#~7tV-F0U92_@@-s(!TKrZtV3C+p(r!`;MQ85_Nxrz;PBQlLOGi^muuV(Ts`Rj-6G z6`9-;9aADvr1ho>!<}TB>b|JNY4pzrkNuvIs_O>gdMek=2#+3fb-5Eu#UkAzQ;XlZ z`MsZtGpZ$%pk`O0G#}R0+V*7SR%wTF?~nUd1#RGcO8$H*yFhcR?khIyiytXz%C<|* zHQyYNp}lD4b&%qX;RrOU8t9Oi3EaRUGIWq%di@9Pm*OkKrYOUvNYLJ<*ocXgx2VbX zZ)#7Gj(34namjU3iU=#6XxGA!+b8@YDRfmvdd(#IY95XxT^=_M7`HWoJ<*S^A8Xym z6DO54ur9sR`hf-ORZ<&dSAb^N^Z|4-a{!2Cq-uf=JvM>g<3nsQ{k|@wTQ%H*JJO<< zdf3!EWj_(q^GS4d_o;u`(Tg{y93)k`yhf^%{`p4sJz9nGkycGmztP3``{wYxbu~G- zY}+4nR>m2-b&Vt|twKvglSy680>(3f{tB#j>9w3}9yv0PPiN~L>6#yA!UBVml|ogm zEx0#LnD^=>Y)^ey9-SJnM!FV;-R|>sl9W=9ZCKrDmrQ#}e99?6d#BEuZN21ZoAuJO z?X4uT9&s0De4{S>t%rAYFPdj2#>or1lRlvsII*!Q-J^JvG(6ej0Ua_EGk2 z9pd*BQ3Fp155}MHej+|nlfTEa$x5l=ardid%-f1YsVL7j&ysl+8X0(S=uNi*#$q0a zQB_AsGOcZvzMMyymagUHd!6w+U*NHI{_l1+n5_Hv#$La$Obn{M#)vdZIBY1-0v@J+ zcE)~#GP>6NQ^DViJKkZ3-3Ggv0>ln_E9;L!B}UtBKSw7JNtq6E({qMSK+3~q*I7iP z*w`&DRTo|(v_QhQ6{gdKB2YVK>QgxhIYFFhvOJKenZX&X&g6XrSsB)Hw&Zd)@qpSf z(Q-&k_$vcpoq8EXxSVC{bc8`#vG}xgN>tba{NP0L&e#65b;w=9_sJ{KF+-PIkgt}z zqP9ucD?{}5>Us-&S;Sl(f{~uNKk6E**k6)(G@hNR;L0wUWr%nqw{#=7cc@voEnTK^ zK#-ePihC^y3@w6Rkd4K8ukWUQsL~r#Y!2S=Z;wO7=LUL(MXTA^V=q+~cJqd?rR5Fv z@W7mM&%HkSCUw1V{u$OrD=9L2u{koI^2xo#GdnF#(xgroUWyh`DoJgJ6KVCu$jg(R z7LHR-Fq?70G5#vv5W0JtZF;4M>U<&Zi$T%sCRQD1WlLKmG&m z|5LH+lwlkHoz8Q#=x?8l+(L@&_h$9tIAkg(f9ILj!dIl9;i+rr#qb>&pV?~qozKJx zT`IpLGR;tw_tIP4es@Vc4P%USK_1un&GM;4vtjbkt8*bBdFbUbs&aJl z$mQ#tb#nON*N9r@bW)}nVNMRaI)w-{1RQ2~O)t0K+d4(Zv%~Cd^*c3U0xKs+JST@h zUE@JGKcSm_#Kh85>r)OQ3=fwi3#q&^#vi{Q?S@pczoZ!c2?Ni{F{~_B(bCJ;`K6Lu zar}(26w_yfvG?$uMVe`5MRQ){L*+b5=}rc2o>6 zZJ@T3mIH-mu5Pb3ZnRf*VdwgCuso{eMvgVZk2OQ#=)ZRp7Z!_VRvY0LQ2(I(l`Ad- z>n%@7DK}Q5PYOD)P>u9w#G$JK9hI_&}C)lj)?#|VWl`>+m1}|%LdBiIJ zyz-qJP4_RU$Sl8WxRHI$@O{lt(EIW6Ls8-;ZLhTBlQi=!w)hmR?aD!z_qT&Xa}Vv@ zzMcexzHCmc4C926*BNedo)C7I2kd74&zvsZnenu0Dah+Av>hjI4Kib<;sLm!;95m8|GTc+w)8-oy zK{(-9w3|8X=6D_{=T5=o33E;}vb3kvs6ODJc$T#plIigM3e^WsJ4}`oHOSREnuj|C z6gJtINP1)s>bmxfz5QA{|FFpHy(vcJ>HLa`r3y?!>UvHvzjbSz$w|zKNwTXZlO*Ty zRV=ZPI-L^?%^4;MzKU!LyO$VaS|QFPJc%Q)*jzd0RFbYj^AcF)(^<+)dAElTe1``0 zoLlO;8f{Sxx?cUs#{OfBv=7W;*o>8zi5{smZHxCMOYJmAv5H zMc;u5T3D0*ZfE6ZoiZS_@%cUpsRV*0$sfb|CRE_;mSZbsFsRXUUFJCtrLyXQxw{T#{?xlRYR&OMz1PHb~D2WK-220 zl3Oh2>%$%UAzuE97nQ=9(aIu&Z!@E!_{-FQ!?3w`pccPpP=?!EXSGWscZRf^c?r@n z73rm?>SK&@YGyIe5BDrsbcP;j52@CrOqP_K`Gi>FFH@?uMa4};#oi`n5%ODM&DEcq z_2Y`nsJokrVxN7@d)LG%@H_r+AU9%6HI5mkO$Nh1SgYuy9D!ouEzSB_ z{>eerx@M&L<6jCVAPYEJ6K;}HhW&D4rnMw4l#>RqI0DqA_)?)(P_Um zL}Dl^+>4g{6Ja?hO1a(CJ1zI*EBP>6(8X9qt1rL4`tOCus!^k}3zk;%2Ux{t1bmuw zzT^Y3`s1g1N7V~~&5QvFwrw4+2YCfD?sj23%z5xIhbTbZze#m?e}RZd1tzHuPv|TI zS`%5IMINzA%sg`A-y@*d5Km^lzeZ0RoxC0$GkSTzk<)@yUFqBG8h4oK5lwBIC_a%LikQJVlPueO8%D72SzX?CrmPrn!+u@w3fgN?OcGX&U{ar+V0`Ta|=)smRC=$JpnTHh$wpdc%bm4dT=nh|)=tb@en!C7} z6GtDvH&A_SyZ=YaMN6gN-72?Z%t^B48@Ytd&`fc%QQuY)YiHIK4@fC&T+u$5 z)HXYKN41t*iU71s)`}FUC|XetsHYJ<&EZT{my#|G4Y$1!4)(laUGLmh%V9muAxcf? z+IYRoLbghz&{Db+Zap&x@D5WtUZWF#$cV-)DFyrF@;3`uX;R*b1|1PAtW?3;ZvV1a zr&W=Ef~g%`Cx>dyFS4-G4r@Df1w?c=S<~)-HupWu_AHtuWPMcY;2pmd9>0Xb+fUOp z$18dCL$0ZvfGFpYo-h)xkwW2*8-d_BwFnPeWP_J85eFQBsB5G!E@ywy<8A5X@XnWS zcW$vQ3C$h{Zm}ZG3ta7()SUslJ4abl+975I57a*MiK~JUu1FmY=p7Eo2}}6;TVM1% zo)FC?#jKxbSY;nrDi-SO43=Myzk7Fgu3g&>{v2QdD~Z!3F{{xr!od?rb>K)Jw>*7N$+@hE|lNSv4HOvw}_5|to?%guEubwr<$3Zyb zD>7X0qTS$7^7Y8imi7j+yiL!sda{YWs#RSEXK_5+g>wkVjYaMAjWK;yvwF;{-XQ|= z!sq>X$-l?6O`RT`!&#;&QP1~~9hL|jmQa89(Yg3hHNM4I`}r0lcQlI$_JB8CX1r+! zN=)v|v4*qYS4kRF`Fob^Idft8IYHHAFUv}#(e){I0B4O{UFd^I z<51C@#n3Zj%lMCM*~CgH#Y;4Myq5@G(ka_beb4STR^eRuDwO0ClH2(*bwjhjdzDAzIdkf-Gd>%%-y{;oo zWT3KvX-*)5XqueL+@)PSi)#UQi(E_6e`*_i1)F({-#mt0nQ_gZK@OpAlCbD|HugWo z@6YinP(jW0-CpOM`~9*VKl{2HvLMiE=L)y1WYL$D=A8w|iayy!KCvx}aS5eKiRMpB z{edYYw&4t{wOP*s$Q|~5MVqzVhY;qzli*M|c4y84$R?L|jO_It4VxAJ3@540dR0&B zY$kEoNhrp^#_rj`#rVKVZ(k+qha}-t_niTUGS%8sF17VLP4zpUZPmlfA$d#HFs!~z z0+P~}s2uCcIR0+5AQ({7GOmSk`k8%>K7@G}Eir|63pue>aqaT(LLfH>s9NsfHn0mY&?kV0*n)oh$36;B_j=LYrH1sHJnv6tOcjFX;2ZTP`!y(3l zZ^qxnr)bS$^ZLtv6iu1Fdu;BY=J8!i_YaWe;2i;VNkYc849-PGSm~Ix9h}1noa+qK zhO{+<0|Ev!vWf#N$BqT&WADVJh{Pp{X8ui4gm#;Pf>M(m-YkOebB#UGOskGw zB=Obw6E-?nChK`Rz0KsSVTCR@a%_eW^22J=M^2Q(NdDRV15^Ve`wt%CgFDiLJD-=y z_od?UA~PcDt{Ut?&L$WvF>w< z0Bx|w*Zuq-oqD}f>FyCZ_W8IGtnf<|oyoZtu)Tzf{9*4qEAt z{hA@@Q3!yMcaBCOIM&++Idu;%;eU7^yz%PG$1*{KWldAC85?dFjQ*w7rB<1rWHNsZ)sP%^2J#$7jy!6R}z;E^-qDzX^g8 z&WkS+>Pwc{6X8eS^YTka!ULaoJs^QPcvY}Bt^HUK`qc5>SBlk%Ew#3P5ge?BddSq% z(7m&Fcg_!`7=mrei{E2O{Z-@8>oG(QSLH&k<-@P2;Dtk`yy)PI_2d}bpB+p|K7zX&4ol4W$L%VnAD5y`P{5d_=B z-?a&WjvwUVI^LTg8BN8(8;d3@)Hrso+#cDH2gl1K0i1a z7z2FPL{ud210!!m;u<`(0zE;&xl>9u_R=7@>t%9Z;EdumxGW2oVtF7B;-G=wst?XB z8kJ}fWDaY5^-L^A)sCc3nlvoDn&Z}~aA$((I_3xy3#0T}Vs zp%dFF$Y=Ute*& zinOfy@|NJuF)W(%U2Z0^9;KcrLz*lTuW`8g-SXvuZVjem76o(Q8^^WX>jKQCAQsBa zYYwApDY0XfrPimW)}e`;W&8{>`61N z)dV;Cmy^Y+{%V8GgZz}^t*6OU*v}ClBwNbp^HQh#wYO(>>2tFGTvo?tyr1eq_Ehf3 z`L)+d7am#8t2}^H`>%|x@E17+?FEMhbWEu2FTgRmi68BQ#U6GpIMMjG`ztr7!yN-O zJXUzpp7Q9vM(krcyuB6a2P<8%3xN?5gf9?f+fN-^)-Q}cp;59@mf>;N4jrlO8*{`m zt{mNUGT&Qe!l*8ikQ(tyG!XbP88FQ$u-Z&|c#0%kQD4C_rI>$7k*WUrHeLDNNPnRT zr9#A-v;3!Gg(eM#bv?n4&Rwo5zcmRZ}KKU|}@iv3U1N-V2v6JPDA> zr*}K#<#uG-hG|c(U*ZL1+eY6Hx!5ZIW^J}N;s{9?1~F|>qsHgE(I!uyEyU0AP1rT#5M;eyU}L#d3GKUKEt0~rWE(9(p8Uy zC6Q(aE8CEp2qAPHa2|9r))(gi`=U^T;s5bG7tP?2sBrMot8*53T*4!BvkZ=7ev%)B%6&U`M(R?TAzAI_8#5ZvyW zhchHtjSRN2j%`k7NQVA8&m6`*ax}8<#mthKP0aNp^F4cy`tzpOa@@{y{EooO{Oy@{ zLV8!M>8UT8(lf7MGW5#!_zT1i`w5~N31&SZ^EE#U|I0r*Dwirk-LChZM}F%8s|jMc ziq7gT^_p1!V^P<*49JS@;iD7jY1=LZj(@Jg>aNfDdB__+|FPn`$?^idBz9Tr(ft`2 zWX^K$5Y=zab~c&Eb^ApfCo5TzE!c7u_AcU6_j?;0lR-I@Z|ggxs;xM19<q5b%wC_^$&`!-=6=VQ{MXE51B#wtnYX6Yq3v|;LKIECV@Q9(7$IBVX|E<2z` zm$|;~wM^IV(6#uf7~(2c@>)s`B`vEtfQ2-bqglYI8_;*dY6Zv>ZoZMj=gRdg()YsMrw_!~9jbFF9N)c6JKlkq5|jT*!#VXd;4 z0KTjlN*wBr8C0QTaA%tai}&1l+-msVf+vkS!Ii}HaSy2c622B?$5fC}_mu9s42W`D z$sERU6EYJV+;V3AbVEKk&cF4;=*SF_ja5VtEsJ%!F+#kz&Im!<(ce}l;~?x8G2=p- z5hCb^DR!-@QQMj{bEOD0obkr$4g*`(N_DM<_zA^P{}}G3Y=U5SGYG}E2Vk~0L)(UX z&>fStdo{H$U7whZ-=C%Ox3&BCD4EF3N(HSvyVQyidd|wiUbXB>xtv}WLa>C{Mz`IG z-hdqy>qU1OVZcM$w)o@n5nB@95yH;QRL%?YqLPSKfZ9H-tSi_*t%z@sP<+NyRdgGV zL)+}lmK+ELSC}R`#3Y6zMmsZ0EWw+;Xw;Uf=y1Sqe-4cVcaAv6!C5N`?^*=UeZRBR z9ZSFwD`v9cM-U2oS6s`f{0a zxw-P}awdj-=w`VLnWZhb6}BHjL++fhk0!q346Ge;>4X7%EU{#?OfnNum2CvHcIHn$ zbVk&GN43U1?{iKo)X3g-Yyr|%Q{)wp!5rfmqHDP$G$&hk<*6D9^XfRtRp~0Uh9{}< zr(n;jJ29J|i@rV$}VFQM>2y35;a z4@iDEKIy1N6zx+uxFyVdQvo);tc`qOE?%vwmT@CUh=tWf9p_(x;ZLotBdUn1R9(sU zOi)iVnL&Kk$7duV(_VlRrsdyFyzmkEr{u>CI4T%YQhb4=MW!A%6$>AaQH)eYWm<-=YG-_xxolR2{Ah)S) z#lHWz$NE4Gh7-b@B%*t5OPjbaIS>1*FJ?p=ISYAziKFp)!l6HbrC?Prqf z-{@fW8y414)4r9~_e=_)XNjX{L00TU>9nO)l(`J0ne2`q54SY@3d$H?sI=dfnI0#d zf<2c-pM{=bn1I0F)_ndCK=ZQoQEfP zKW-2zrznAI^JObVDFvNDU0VqgeD^#Ys;I`fEy*~KQ(@T5_>DW%=Mc~ms^4KQc&rea zOOpR4E`+s1)4TuOh*sG^!Trv08zWRF*P+V#evBgb;QQ+LLM zeS*CgefNd-5{7&*S82{Ol%;&08ls}fw=htfEzSjYAQ#BRT%`T4geYZUBMI1pEmz;A5}0!mgEocK5}dB@C!%KVrI&_bKw2zRT5ix<73|p}jkjq- zjbL}TTT;LlbKH;C10woey#h)U(i8SqcOXvhcJ*M(zLV`XyN4i=yN1ui^=d*|TT4N% zxast+SuZ!ZZu^53Y-^j$SgFBlr7&SRB=be8&3Z#iZ1=vYlonwgvbREh~++H|rNN$Yb=!qHEnuUC+Ce-X7!=C}P7^L;S& zU+6g+#aiyHz%pFpW5uE&ONhq&|@FfKZ&}zif2vGA? zJ25o+y=9~@xlg>_-9j~$i;$HKv=y;iiFik?pCnzstttlg+3n~4B1ECp>^W?o0a5J) zKS{qJ&Ap(Rdx72@iP;w)9Yky;2iBDLs7rYOZHqlfz>`d(sTbtd-3$$Q}}?~32`8Iu=UpqnB45>APssn4$EDlyVH!M5^Rro z!@qf6TFDcvH|4wo|uGcT=3sXq3kZAUzuY|c-=+{IJ z6PBF4+k%R&*-Uc9_qAb+4q9gOWf9G0g#LXKsLf_c@NEu+SDp-qR#zRp1`}rTXk_G~ zf=K4MM`EDst2?HBaUglMV6?tb%XBZKsUveZ?hKn@wG472v`=;pt~em5&39}~d6CSK zk7l5b+gRWYXP{2Xhef{2L zza3$4h@n=dxq!%z6b6S9bZH;R#Ou-;$&eYxe*oq$^lihPVl1Q4IDXU0FEpJ*kAI_Z znM}(4`Lj#U@bY@fQv9w2h6kAn*Z$G(B_aQQYmBt{SvO#GoUSf>JnX%WjEXx(Kl-_T5nOY;HS#4&;`YzujQFMduH&_=K*=9bi!j_x-{-twSvg z!@%_+J{${gw&h9zvzHp+g((d*3rP=;>62C#@FizXrKI*;f5NsX5I9oZmmyu=;pal| z!`2wtzmOj1lZL6og{hOf-=R8$=?xM&|Ca(}Hx%U=kP0xo3=^hh$6L>gwd9Ql0y1Z9;?xAL#}c!gDT+RAbjZ{sYHV=XH` zbUP4^!Q8biZMZrH9v1BFj?3^Ac#2n){v@#q&F6&PYVcPx4a;&Cv$lJMSmr2V>6yc^ zUk2ab=4T@Cn6km)n*Wl0?+0GeK*=9~OaxJe3ix74W_n>q+rx!ez1^c-V!>NxQEB+S zyP0kxXH4^N(Z(ewvApo#uTF@KllXQ!C;%%MyqU%Nf~HG;iW$BGjKsQP+AVC7Z(v*t zp>88{-E{pKvfOI<#E3MRODJ)l+wxQ{N3cFxfqPAbW$}P_j+?)0C0VvG=d3uoZ($Y?V8$tuR zInI#ZRTiiv-|Fb_jzsSy9Q{0Usb52)&u3Fm$4@LUf1m~bK+BGkQ8Qo-Op1(cNKn{5Pf`q$P%%0QsAd`IMedC+x7HERkO9JJcz z$`IztI{l1lPHmu63eE|vR!@HW2iy+0&SCCG? z);6su_K~K%Uq~#DgUjannpc?fG4g|&DCdszx?+a;Ub4QVdCCc35pfVTMoAbjjTT|` zA)3wwGi9R5|3WpI3;7*xJLq@J_voL$N~w@(XnGp@-H z3G}Jl;$SbQBg@kr|5$MwaU_)J3>MJ5gBmB#6TcF28O#)qE8`?=tmE+T<*DIc+3f<{ zIa1Q(94ckH^BhJcvA1%k1JCEBprxsg0*by0*~79s4AR4^=N`9o67(?JJnjTJjQ#H_= zVHBc5E(%h15}2;y*_jTLwPatZYLDreLcD3vu$&ZhoodJVS|M*#fhTqW>QVJ_2`XdJ zABI=izGV&X-cVatl$Up9fl(QrTO|xxM&}OWXj0%SzBSDnCX{s6cA_8I*+2QUZDsHM&vHeRgbfN zUrQAd=Y|g}bs_`S)B=hoEj*H`d_+pLE+k}Xvr(cR7@TZkH}F)b3F*~;g2d#bO=5RG z^wd#JPAnUCU=Fc_{j8$>d$%{5VcRXCO&vw!ymA0Wj4r*L>mDfsP_eEJTPtXR51t=Iil!s!+pyM;;jRk;`Ub`dorIB>-K`fy<>z>6*YoN7 zhW&hV=K^>tjxq-)kX&ro{*B`NEHwM9gZ^2^hLcy<8YVY&pXgb&de%$Wc9lI8V|nF- zxQs@$RAQY+@#&@qG4=O8V3;5ruP2p)37EyoQJ=(xFt9evUDi0^C2MDf&Ps{YTI|1 z$VACO0GgIWqUfdGiF*2SADL&hXYUcs!> zSSf)Hiy=QO)CqmhX+z>_I;|-j#aH%ng@Cy#yMniXT>Zrv=p4+QH$@!clb#-v-2+q9 zZ|au3Kl0;`gUw%VjrE{cHf(=F=tY4+3?UJy9&OgHalK*zhsC|JLH=`v*KqK4v819> z$!$VuWcmj(c)dIMQpxjwj%fEsd(qlpt#tbRx-~PXz8_d~km$V+P^O31wyINrE4(~g{Y+_jKS{4H?^Z_62LMV@BU@BRs7p?o+)ky;dJ&}6cARkE zf$k#N{C=~djVpXdB_r^3OrIv+_S)?$ryEZ00y@C8JXCeTIiDgByRJ|6{}TN$sjXN| zLoE!R@1=NkWr$K6y&Y_~yKkIzSXQrg+x33VT%?_Ht)kR5)vn+N0Hy!N>iDFJ<~g8A z-wpd_QO9%<@xS=rsDJO?n3sG;xc_O|y?6ee>=vGDVfi|lC=?41aFy7+|B%0(;Ru6G zU6jW94wPF+{i8Jfqv)y8n2{};B`?WsP+LM=w_cKI3g!*^S-YQ~hsB^3$GX|;-T68k zzRL%HD zzwXLaedu+Vho#P9O=;82-XfyZcV}T#K97#Cj*CEtE&GB+WG%cfmF|% zxD?Cx9|p&?hi+9*(QO(grI{a7O^?^`{uPw}BqiD+gKA6GppaD5eD=tH+VZae|0gU! z-V9W7-3SV%ZAT)1eJNEJpfcOOR88jr+C1kA0XDn;R)(3?^%Ew!PdNx9`~Q?eZYg~| zCpe}Q1VmS@lWBT)ZHt|Xm^mxTwjYpBm6ybJTzx@YpzJ0nH-QV+M()&-@6w&`5}*Ms zd?hT{(Ou-QL;*|)*|3f0UwJ<+mq@6&q58RybzHA5XkvHo953PeR~xCWwP--2G_%(| zRmu2N$Kpd(jJO?T;Doi`givGwuFwlu(M$GoA^y`V>+mDSfz0ddv_to4{tnf@U8<%F zGj?57Q>X*4U; z*?8hx4t8pw)j^ndr7JP(I*emirvA@4s^%oeit+19_}_?ZgC8 zPiEZ;@oDQipEd3@F!s2k%(UNnNpsGhlR~ z9^qa4_j9wb2qV+2s^P)RV8R_c5;tRJnvI(I&+pOR+UZn8v&#Lo9p)=rw6w6~XKe;# zuuVm!OvWefQ5aPS}^EntOB%!SsMYp^HgNul(;b7YZgQr&yR{n&bY&ykY{46fW5%`wgSJyUqV*& z?8>40BF!k_C%Yoec)-_#ra1g1gZ|*+(XbxW6N3pgbSwVn6zpoC6TaX=^5w=^Vno|l zJdl7H$D+T5olZ^2#@4a&Xayq=e5k17fGDEvARLyVeX48k$LD1y4BPO!*jQKvaiZ>< zL|u*tg50c%V(@dE=VX3oDThIS`CoOUj)~?jDR>m}CsJ%u0Y6L1z;}x~w|sGTsTE3D zJ~z+xmh3r5j&Jkk1#qboG_%Y+)p1|DYG%36Y%e5!N&$o4Kb}OCCgHfUE_6<`kPE@u zN+nZ4aB(zAeE2DZ{ET9Td@6dL}!EgFXYmEakj3P<{07hf#yz}y~!0}<3h4W+UB-Uqtu{uJEMa4dT zjOKq$*BM}ZV_zv9{kRmj(u~@)TE4er=|Qsb8hXd*!-zuoh(i8Y!i%5(m2g#U8?we= zLaCOhp4l3(CoECX*uW}`!5r!!2mED!D9?|~=M)kZayEdudvjG2qendDt(Ia+ZT^$F zikVicu^nKUND$wRl4socePx-#xmv9n{C-@CTcrA_cSfkk&?)x0?2v=ctD5oIUDE?M zdrcm%8sNs=O_Vh&^wstIR8|!GZ%Fkpn1$!Ag6kacR{kYwH0;rrZG`0ykkT^{n)6eT z`lw$$UNh5SkN=0}y5OTxxL`>9ppi2siyq3S ziH+5y5d$q#J6Hx9bvwLXg_=UcSk$EhoAEz5Rb>z<6|K znfRy&@CaTR*OC;g!BeBr+6}AhYYPHz*g|mDHm7=wo)0P0+Sa$V!y4yBNAfld+ z0qv9N;|xLiN5=Y-7w5B$;ZqHar@sw{=ydC^j9^cgGJKi{TCa_GuMJKjF=?_iITy!B z>|?MB-z~^Fjy2YI?wW2f)RzNO zyDq&H%bvISBU-lj-SA(cQSQjBahZX!`SqxY>z{*_q=Vo;Zo|V^Kf^%emhCNQv2_(L z01IV7(%l^vln>z|kt3m9MaWqRBgQ2AnFLHG44B`FOu=}Ya&vk))N)xy_5=`@E1{3H zWErn7I^U9~lwd}IY~$)CMl^nZg%IbD2Ug8@ICvi3j+y?UDwj%P9}&CU=JPs>VxFH&zwO2FOosP1@Y}aouTw@*Lw~6%P;Z zB-ue?fRo*c=buD0UB^r z`QI;B)=c!j53*?=l_G*(e@;(>tax7zWjtC@_H;6!f@VqyeJ~?q+@)fIgFe#wV44_d zWToBGz8D*U$|7$m(&pf)I3wCix0X8~THSE2WT6>xY) zz-h5VJS$D4aA6)Xw1{{-hzihy1F=7n(z;c{du z!#tRZ3#9NehqT6&;knBig@iVV%_D9T`nmL}E|?+E{piDQ`7s-E*QH;0il=X8_pFDB zK1S8Qg%X`xvFqR3wSrX}@FNbX)_X~nS6)Lba;THX#rkE6+}s0y&hSL;@lmXS=-+R9MYy5MNV+l@eEa?47<7aBtn zYBR*oDReFZL$Fd^Mv{Cbjy4%08>1h}k*j9{98tU`FwpcxS7!80*v&)E%<^sHNU_=V za`n&`c4rw*?Cmaat-uSu5E&t|Gq|MK>DYut8xX`1^YoG$#1TM^=z6~%@|We_GXQ@X zKiwI*2pr%C&*=E>97woFR*&b-P}|jzKIM7LNqK~dlW>mr@P_zx*l!IrpzoR36#I!S zl^)*yAPQw%ReL@XJE!K_GgP~f^eq&(h%{xn`buRXe~hfn=I)QMGu9XI2L!O(r@aZPrRe; zGv@iPzpsWS{LFAMW=Y3besQy>+A`8eW*2s^j^-0$PhPr2J@dMd zs%wQ@8vgn2#;=9t8EWAu=x(!%ONsl%$nB7cU1KE0{k86so5pBi=6()o@7Y+F=zLP>*VehFiV^hPXh-so(EU!fIKPxh653xz8&zz z&`-uXuD^YsIhm5$eSPZC+5=)rsB3$=c>&+>AVF7$6Fa<)tCa3C=nQpfB1@-c#u(=8 zig2SIDr;3f9TNncu zp7)Inen#h!d^-!>x!*E(C$hyzxe?~vF^f3S$bCj&eILNN&)xBFxpM9k-MRCTuEzJN zhO{)cKfQMerWzUuS6_eO85iJSy5r8%u3^7)_BzhVp_~1j=*KzUtLt?KL-kE&BlxUi z%E>2nIviai8iA?2*8rgYgb!fBY!0aogaO6um{d|xHw@+?apoeN=M<#LrkRNzwBulu z%%Qvn-I;kA^P%(0F+r3TA|_#tcss0YTK#`or^t^|GH)0LQKhhp!mBj%s;N*yhi+Tf zXkM^@6iTDIg!@hyvfO%51QWY^_sngAfpxRHmoOlS#mBGZJc4~MV*_<)vS|zuIFa%X z2`H=2$R118TQS;bL=XhhPF{rHMl-Y^G<>(*7~-TuhpB5sDgbF00x~`(E z!_h&Fv=E43E6g}#|w|ZFzDBkwS>t|ZL?vp=&HAHRp}}EGAIVRlsurt32|FO@MOX9 zWI;NV2{9WFVH2^EinkjZ`Js$7P~|_deF$auxJ_Css&J)2dup!Dv`;1SO8+YCB0_f> zf09+zDrtx8KXC`8@&K-qutA>PeE9_}r>I z@2N5R5&-?kq`&dK9(QdJO%89r$cgUIY_>kpx}KjZ8{|98m&|~_fb@ce^=k-W0IYQK zw9=Rpm;Uoxr~c6vNlfVpTYMs8x*vBWJ`u`A#NkLq^Nj+^ltRV0nxRgZv~2y4&gjtW zMIXiQt2MJL;Ke>Pi7m7C~bZP?Rccyd^xE zqRt=1zT^6GRf;)-3KH+*{JAFSRV{KT&B-Sk>cX3mFM(a4pXin>9eHX|!`lfqZI-T= z4MvFELOC|Xh!~}oV)J;a#e_< zzBK*#9dJJ`T4XYz9X?XQvzZ`Jc1h}-J$$p;{nLO2%dAs9Wa(y7L`r`WoV3L$)!UVHqqI1$dS8F_#6Te7F5cJqM$~r_g=-_|W3jeId^zh_-aH4~-#fnW>lp>>D>I2^YhwcqY<-0C9AE)ljnEhe++-8c)6I6k|*29Q|q9fi54!CB=ZkKnM~ zgH|};Mic_m=bLhXPX{eUonR=!V#&wiiUFZ+tldmL>I-ih0Q9D+ zcT_2Z{?Up@_DQ}ed{yX09leJM?VVC|3dl?%5^GxyfVyNvH0OzQra6d+66R%S^X3mE%gT``aF-g@F+5x;&wNxAbfU3&7TN*l*QQ-^M2d;9gR zQ^sm>(JX-Ka^TGy!tFnzfRQ_&eGYT04+?p@Nkwr0i~ts&Ptq#a@9KOrmonEW$n+R` z#Kr{)$QvgUK5xrH=^xdT#};4`Ek{)%fhZeRl1vkDhHPRt3<^!etZ6fG;3DN-pR=gqd!HSt2LSNWO&S@rb1q8Xu3B z8-9!RJM|Fxw)8b%COEBnd0=!VWm`lF) z0Wbx6!*X9BC<3NH(LL?p=VUghs{&Aj_>|@qAUuMup15)_A?-k+=X9-C+zL~z=a$im zw3NtQg}J@DAMxo5%jC!!5umk4WAPDYP}#U2412*$GIWJ_a%8Y1w3<@YQagc0>O$uF z5on8;)>@SH10cUDQ7=aM#X|@em{u~itT|+UBa1($z&)lguf{?#KZrk{)js5|DLCIi z%z7;|OK#mwkQe~3w_EIitvWhfp(I=(9vm6z=$6h!93imCWHNJWHYY%fz;d6&^W-9X!8H&CEnJ?iRvgVsZ(f+Op|v>ypoS4tHw zZj@*ZCTSUiH1sf5vFnGx)j*BafIEz2h8u>N z`nV)bll;2>pI*xV=`|W|XnKu?+jHWW9Xg%!Xt7|((u|s$?k+ToXiIZjaxIa!iK;qd zAw%Q~UPM6|0cmnR^lDABx|!R;<`pwwS1T{06xjeFGSmt-)S_?Z=H~pM!i>}>CzYcD z=7Xk(NBEf~A@_}?upuTJu>}Jcw2wX&bAC(K2jj{397f(;w%VvS!xXxvx>gD1B_WhR z#Si``{|^oly&!sZDRD5-D_3y1;&!TVFBmS3pUS4Y;1R#BxfnKopOhP^Ii-B?uwK;{ z&?7_y&tmM3{+ZtW9l+bCa>Ep5`3^+;USOhJR(@%>zI~C*+om@Q5Y)vQ>SzHs9cd9d z$iD;B<{DHxma98wLAYR%)C^d(OQ>_QbwKV3{PFP1_paZ@UcP@3@j2-j5sdqbGc}t1 zhV?Oo5bw63?|gsSy%ysHxHUoqdTpVnkwbGRzjpLO}WZ9r8gZ}Sx zn;J+|Q~M1=oXhrS4Z^2qg;mU@N`z>BTPqgLhu8y!+QVMbwtLE=n|tLBwoDh5d>e|( zvxdMtWihw_9pDkD;1IsVQNbq#-zbf^C8 zavp?!<@%CcN>M!ch)4!zihfEDhhOfbwPdxoPP~EN0(=u3nB@E`2ZSG^Ek5u*PlE^c z!CxG=eB@1;5IgN-c=4&|$~Efsu)1-pW|0R#nQC9C_SW;&ljr|ZSA zsOl+2@&=R)>EgFw9aujv)CtomEm_^D`r3SCA`Mz14Gh*8tf(DEPV&yo_XzEo`$0SW z3Bfkapqy0~$*)PF;}7P!$CPf|G8fG(pJF@L&EYTeS-;yip_T>f$POAIL1>WY*YOL* zqm5q@cFMbNG)MS8c-1|Gnd!~2ym_g*=D*hM zf35w0#2IN_$b+e@Vl;bl7cOkoAWKp+zXv$AZXT*Zl~2;@@Gzvod;Yzgk!09^+k~Fw zk7iW=-ZQ$@WpcVznr+6efLi-oU&Bpnsh{&sUtvdl($#BM3Ag?qmRnl#V*6z z=emu44+JLVos?710AV)fAQ|wck4^@*U2OS3-bz=AXDk7PhEH#u-fz29F0Wa){{9tJ z%;Hy^k0la%83{Y%07zgfkh^J(v}p}L6=&p_#>`dv-Ck^5C(%W^u`#X38tsum`oEX9 z{N+N(n`m*MMLVu0km_{Sxb>D%PCY53K(J$zn$de4w@Ug=2c};jaSTCp)F98m*66r$ z4Pxp*cl1$V)t(yK&Cboq@V>o$!2YjuWK2(5h^}LU?~?5+YAJ)$b=nJ*fFjIpEzXtomDjTKDcFm!QI3ek}7Pmbr2+ZDawvyWbUM-&Rm}z zN{%3kTLGI+=#3;M@`n_)75g@I+-xluUi`YNo;vOEb;T#m zQ;k6kKDh|6u8!>FeGqz4AxI>y*c#)o<32;*Hk|^!>3zbj&e48vOl}pCStckzv!eAz> zm)?3Q=DMu2X=5)hN~;OS-rmhwsXldS{VC9;bT94f9I4fYH7K+g9h81nsHp2Zsa=nc zuh7<|*k`5RXh_8pNX58l_ehCmeq3g=8{GLr^{@5YQ2TQJV*S~PsTkZR0m`Bn&}pH` z^!6Mswc%M@&!yd^*xbvV8;9EjuQk~S=Mzk8sunl+rq9w5=$kM-(scl~YabQvL47Bu zYYnCwEH=9fw_tsYNL^BoQd%!#_}X-=br$|Sn|&9txymgVvc~MTgDmYvz>nslQNT?Rp*I$(ko$Qr~I(+TDf=W-*s}QNBs}T%Gm> zu7=57ID~#1oPHamR9TdwZPYo`j_r#NdhqpaO2>#py;N{*%fsZb#ZUbLu3`aI+~M^} z)9-5r7`3{%AsW`yuVaa~F7qb$wN*a`584;bug?b4B{bg&rbp*+)F&bQa0owbaDLh# zeU=S5Xx}KdRFDt>6Ith>la;ZKe*w$9Gcq`{LHe|qK1<&OV?M4`VC6E9UdPYlM6BZ) z!K!L;)9?X($_J|td!C3lbOw0TINJjiE`$GRIw9G%bAiukjB;Aef>ry|^( zJ$x@qd%^et$H*7LxIB{${jMD4(|xu__a_lr`!1Q(uNkeMUT1qGHt32l&r8&L)q-z} z81$Q@9b02c1seVJ9lq(E;SK1siS4sNN|8l5oRo$bGw4162RU=W_%!1^>)T6-72nts zD$@(pI9~~Hak|%C+^F6~Xy!_ja!viH)9Y?0Xktjr;q`{pvH>*OJF$;5pgpli{`&j= z*WY)Zzrl<;VPxnRdnj>{hQ4dh7`fc!{TWhyH|g^5!>;{>nB2u4$k&QpcVA^L3BGGR zD`NBe+I@fLJ<~xrdxH9;n75xqeI9h61FU#S<>+CT{QC5g%=5QiPh64UmOAFFUqt9a zO9>KPXuELk=6Gd(J}o*v1SYSZ{BYnRep0aLn1w}Zw~9XUCA(v>j`DKQg}u2^?Dfc^}YElpAvQ9c2^PRm>MFUde|#E!^_R` zUK;U5^26^XnQUXb!i#4`>%k$_XwcMXpgX+5>}Q8tZPi;23)h9?nK@eio?rmy^cuc< z8JRkT*iTm%4yo4d;^=LVD26xgBKSJXDpurB7cY!p)l8z{ucqSsYj2WU1nQxwVGf zI(fZHRF2BwReaGk5q^^^<`Bko@=Zv%5Zhcf*~Y28CEpQ^WX6 zm54vM_&t~4%k>cF5l9O6Wp2MO(;i1j!(J_AN2U$lDeJy;6!gO+=UdPZzzCVimANEd z?k+-P$Mly=MNI4Jy7B%{l{EA|Gu2GaONnU_*1RCy3ppX4(+{50r*8)OQ+Lidr|*As z`R)0PL47`kF2cgY!kzN;Izjyuxc1Ga0Y_K#u$~4Av1Q2eCFMFEb$7#F(-_^p)@me) zFBms>IvWf=FXY@C+n!H%_9mFlaCtc=OP?^#Gl}ttS#tA5)RdxNnOMK8D>@F4K1M$m z7~qjKcgVbS$lS6KXEcuN=jXYEkY%%c-ci?zAx_T$msAh;d>7$q4~8H0(O{k%fp4k& zYWWZ`*99;b`%M_&`$?;bH0ZyFk+V*Z5pZCFwnd&1Yb{{F#d^MAE`NKia7bt9PRb2p7*};TSu4^5I;P5vMeAjv!xM$_$YJg8KmL5x1x)hxkZGml@+ks=PQkV8P+tTf6vQGFAR)_zbg=P+F)3DK zLgecLijTs=SrI$`fKH3rI>7? z^}q*PGu z=EVf9%^}Q*4d;Msh9Aw?rOn)eid#q6ZZWSpU{X8C`^yftOV?(6 zaL@RDM~#+-!x@-hi3}&E6@^&jT`DRG|I3F(w-x?(ktUUsWD}$*aM{4n?~iZEHE*X! z-Lb{qRw~n@Y|+@;<=*lomFwr%9hp!4nkb*0_F?4A()hUh|I0Ozqo6xyYCPhY4GN|V zZ_>sAQ^y~jsa~2zi2X6ym_rt;INQy8T2fZ$g1Hxm=P|qD-a(S@Al7eWcB~ntlDEsW zVn?vSc#SQf8%O?aD}|RZTG&m;6r(FGQ!!MqQqtA#G}ZF4|Ea zoqc}YdDG>uTGtS$VG`s?ppgV{R&(9 zh0p^~o2l<}#Wya&MwdB>8JTQTZ3{24CrKhXUstl^hU#!W>NirlH%{`$t1;8qNp{%h z8Wn0ys;;?@7w^72(9>5VWW4(?KT=F$*GG8a7%@&mcm`Y1>2QRL4ja#RYOspvn3AV< z{KH~F0=H{P({$gGPlvoPrt8FJU#6s^(b2-okJ?qU${RI8^*?}n$t2;ol~!I?^AxrF zXeoy7O>}y{6O11Zzi@+oo#{PDl~`$?l5esOaB1ksKGoB!#l-)#Sxr00N$paJxUyZI z2|H%)cMA@eyULm&aasAu5*oBaGTgdGA!1CgP&XPOOo@WyAB$Y2Hyj2QCn>6;u{<-t zkL`OP4C&2Ft$tRKd5w#SH4S3M@c!4Ma_=)OPf-y#XHwWXH`h!U*=tgir^L`W#*+9x z9VsHx)QyHky4MI_DKT&; zmDo60in;cRAFpklIh^8eK2mmpnAuWFIJzvhg3-ydF#-_3_FvdTtso&ux?7;$kwMq|1_A3;m3*ON{H~n2Nhn6<5iI*ZoZ6 zQJHJ+`Toc@m4gM-6ZMh%1%)s5g3x~*PU6avWK~Vj*l5CEZ5nM6yS&m65Mu|hDP>bR z%}C~nXd&{`fd9L!@US)2Sw9I9>sY_xq?tGz?dbNu zbTzEYwch(+sZ10~`CGcKnigBw&oa8Lzog8JgHmdN+DL__%=ZM4hq~YM1_;~4B1*0A zn??ARYY7`FeV9%W3w}hKnaIoatkb6~o#a6qf9lbw$hzC%jh0L-YKvgQ*Bh>YM8e}4+WjwooFFuE_$?OEf#0_Wtd3mUpP?QX zIL?uX>g>Y|mrKxhGWbl1gmg-wm{TB*EAF#zz{k=I&VNNC8f`v9lvyEn$7WYbJl)E^ z&eX8!4DTo^9jWziT>q+LcQH0yDNcVbief2b-{Z25Hu*```k6QASslX1QGrHGMY$_; z>0{Kwc{vZp@qnR3NpmYp?SFxec4k4uW{7Zs|D(?`HeBQ@zgf2r? zh|8lbwaTf)`LYCrUIC7QFWl}3Zfd;dmpwWC!hr7D@w=pItBr#3%_zb{;mpeG&16{Y zuaTj=m3ZcN237kgO>Bfow!)G#BgF4(Q!kBZfLrEmxdhrOj%B%(I7wE=Zs zRs0Zb`=(Rq6ZR~r6CB*ECQo~%VS+Vl4#E3zPVh=N;_$j~Bd1_+>k|7jSB5Bqk zl#B|EVH!-q9#WJ?q$Tl5Kpi2bP9&xd3ke@L=cml`HR|&MMmaH&?>y(5JjFGVKK!A$ zwoCb?qxiN^a|>JjckzHfG7HaX(GV`zWYUjkzK3y;Nfonw2&wk?vnj0O(y!* zyvi6A6N8v{D$8p9H@XG9lxG0k?Jh1?@-6((?#i40BRdVnImZ>FMh`VvvabB^!x;?w zcI2|r`(>kdOrtTC;-jTUmGS>sn25xxwA_=kTy>XDtvz34~ZMEV_f4^O?AGmU4i zx5!Rvv0b^bba~qvf9b|?6Gnv?u=-|PfswK`9MSGdm@n6ay{sM?hC)K6tCvOMtBSi} z=EQXoBp&E$a6xd#^k8$Pq`16iZEbYNToZlIC`Ka++u~RH0Hw&Uu&Os zXv#c4GB{sG^6j$G4@R2UrLglgrPUw3Q;!LCyN*#k85vf*BUCF+f(*Pv+cM-Q+-}$v z$C7K-SzPz)U3iDMcPGAqKMtkf8<2f@sWsO>w`H zE+4yFyZFPQE;&?CpBN71^ZW0|YD!zz8|C_4vV77Y(Ss#MVn4KJHk8>RZh>IS25@lT zhki)dbJ*_OzJhqiTgKbm-1PhT*U=XKWaeJCV{V}>vVAFt+ zC#0-;1Y68x8T0#X!NLjs$D>7TF&h=p1zTE3fy*&zvd|{b-%h{GN^D9g@vm3Unbv3Y z4&=Y%790Dz7h0df^|i}n2c@?P!P6On`YX*chl zj}?E|H@XuVD4$LI_#a-2j?gnW|=`I0DDd|pWUb;)V zQ#z&Ly$AU2T6e9BertKuAGp7L_MVw%o_S`@m9}TXPMng)#?C`VxL4Sz`ZIXLO&1SB zxPN!}2o?g~2oEScKK`1((}Gx0Y+M=b1@I&?M0q+8_g_}qlFSo#xdjE%c?MsSJZZ^2 zDq7?!m{;TW4Mi%S=`t9Emy00+Ga5;baLC0+`VB87u;1RNgvAi==m)rTZQ=L((MY;T zE?IG%Rw!+0nJ}Fu@Hzzqe=$to^%0lYnI7ujS^BHYV32tvfKo@N4{muy#N&PHVs zm9F^q7VI@TYMWx;&&b9*wvPeVYmY9~h^g<@is=KAbZi-O2O1Sy#sF)c!C-^#9e=Y= zp=sT4iC2A}1TQtr4cIn(ujUDNB4z1fHKfn^NA^oFElLTXDp$-^bL`cE5Y`n_AndPV z%d^G%VIQ&IBaI-|SkaTWs-fQEfE}?)z_y=S-oD1{+@Z$FXvqK#~eUpnw>+4vlY_1jydLccE%m`m!R{29EV z(>TiR0PfAKOX8~QnsWjOiJ}ZY4chQ;A?S6q_Ql((b8K1$-M84QogMhzm-BjczZ?t*0_C<iV(Zp5gO} zfFU z%VOMwC<{D+lwd0`ye!L8IOjHtDcS+G;PWM$A>Vl-D7Ae0TMgCNVfBG-`07tdz0Nc} z*Qb$rc`UyO7_I)C7!SLoBJfQg6Vu+8H+=|+%Fu~ldGb-Ta~>e_8#jLgHJWaA6Tlk> zm<}N%eifYwVhB5uH-d6ZK67|mu|HVR!Z82@`sQsItv=!g|Dow;_Q1EsqWCUOragl5 z{$i@{ebe^+sHFya>WdgDCtpbxFT366K=y!2VI!BVFna0%)eJ@*%A``=tzYZ3O2)p# zdI1cQfF;wUz98FOk#=ia>e_VaFg&d1*{!g;32i4X!JEC9xdQgR=hERW)bW>hEymEi zqGl@978gHoM5ysqa@mQTXdnF-;HEB;kiRU7m~`_!CI=obLN}613#qEUBAV?v#gC|| zp}m*H3c7;N9t8&b{JCI9Ht5;k;QnYeq;bUV0FXFC`(Jc<(*BMj$*Y{1aigiLrh7`< z+Y1cCRX~IqKmdd%ajxpOmXUJiSO?4&k@wgvap~7Xb`PI2&Id}*q-)k7-y(~Z)2DH_ zbJ}!y*&XbT3o<+H5wNc$bSwMHqlPMZ`F!J=j^;1UN!lef#&tc2);ywFyoXZlCGcZ{ zbPmAn`jr0bmE^bOc+3a%YCvLI^=8=Y0likpInFUs>_`=qIc}v=P2E#R-kcm#oe}R)&Hqr1W{Kk!qclgGIq-2l!sV)dkh!X72VlF139AMl1?;aKR($sVwy*-htB)8WfW!SE z7lW`#^qo8uxBM>`gJ9z82)b*(XF-WSK@~-v8^Xj;nVXX-eblEZuin@$UdH?lc&tSS z_v|yv@Kwt%{kn^vv7q+d+tTzLpWbpttfsw!AnP9uIjsb76pamhZjHDtARg?tv>1kK zgCfEo@?Au}SqdzAAp@w8KJ<`27+j!c53mWuJ{UNW_;jtIh3b=qZWiYg z?Pndy_WvEieto5o29Oy)1Zfsd0>k=9hyvV|fGceZ&&lMZL8R=m`-pBr8GW^{HHK|@ zMs4fTSG!wwp;}~WmtmK%_`@Cj@F2LfFXHYY>_$*zSzW=2KUpRKts3@%{sFC=*EwdH zDE`ED4V}4=YC;f`1)RG9uEVp!#TywwP?5)xfHf_&GC>4JmmzxzZ`g@#9OEbX&|M5! z=-gQRF$`V=ML7lz2-lYwP~ua^ba4Z?*0pKi=w}qO6l~YrvQ6Qa)k`J8+lDd&Wa52| z|6kXz3PxV&^b`C;Y>lX~iGd!^N6thmtRd%Bi|bX}U{m*8IN1(ZKRQfU1Ngq-eX!_i zUd>7-+yy#!41aDRvPBtqLbcbOG*G6ya|OKLUlZ3Lg|__&`vbrL((^w~E`(E7Cl=o-N3t{WB75&DG`@Vc+Na9_q0r7Cu;T7RJL`|VoIj2sy zv~0_L+OYw=XambH0KB z6VHc$HWKuZh@xvO)W%{W$laHbc_h?O1XX(EF*1eTI}Y?Qq-)QqrA)w&UcxrUp*%)#?jt$;ina8T zwnZJeMSbDt6z0;~`*mA8Gpy^(q;p83`YKErj=l#eEjvh<^xwfU6|#KtV>X=MYZ zt}hmf_l50I+vd^NI*$}q%w4NomQX?n^{sE16gWducT_WutKs%%5=a%VyiJ)qcuz(( zzU_kxXfMPw=SDQ}JF}E8xQHBk*1GE&+(Gl1^A@C0@$>un6%RCjU?I*AlQB;ZCl^vjs9fEtk1F_%qd5NaQEzG`FXoBQDhAs~eJu$V+64NK z)Z}Q>QvSK`yQWLMovom*BNpiis^TIW4Rw*)YN)zun)QY|miXt1HkQ3WvAd5KQ|F87 zOPFnC@@-{=@i3JB75NvOp>RU=K~3i#@A+ixZd;3 zzGG*@>1jOu#3A-S-IH3DWzdJt1k7`<`{7?({;e#q*T912h;?tZ~khFvu96+@s z@7k$~QL8UYal+u-S5;m`TKKJwml7H5e)&q^z*}dayomV_-{Fo42{D zWGS#)1L#_1Zbnq?PJmf*hL`2^G53Rb#9r`;hsIvHm{@sutv`L@*I_d(_6zN(yAC!k zXs0jQ&n*2teZtaLK`14#pK#3~%TtC{pT5{8#W)2hF{*O7<5ZDFHoymiobNesGl*%V zfIMB1pAT2-J5Bb~(xzIZC2X{%ANg!|DfK$plC_YjN`jri{M<*)GPQ$w;_Bo<(lX6f zE_VdagjEY3%~GpPMV==q7R;<0nbwnb`|?#&j4~@f{rST`ZVyF`i6R?nqOW*c_a}?{ zNm&pzehOw!nS4(fVI~YEl*|tgp+3s-V(UfawM-7uqV3$kkqoCMzkMl@-5roN^$KW6 z+Zvr8czJf*Q?qy2PZ03YN#(g)*0tvbU8U+6tyX@%^N|_%RP;1NJr0^7Xg%d&zdaK4 zD4y-Gx60(V$_Q6sD6-Z3&zWvyk`tyzFKMgh0U^w3&8yp@H=Yb*i@~SJS9>?lIG-r~ zPV>rmUYlO^1$r=$-1+8x*39p@7T6xywOf{;g? zT+z@yeYznp_Xkgcn|A@u;TwPQ)IBvz!%RZiB}n50M#J^=?oI(etsHTAUr}Qj^n-t) zYS1)mt&bO;cbR?;-d@6fzJ%=thP(cs%b_VE=i@FCYYsew43Z&c96TR4aCpR#QR zJYx5~PbE7mD@K-<;_fBBGzU7J) zKqGXCC$@0;mzuW$1MQFvaJ=#Q!_}b)4drK-wC@&X0fAX=!zinhs@(U7RPjdNrA|TE z`2lPJ0||&-0=u^D3V|luAU>cx&f`9MT*nL%-IFhT}^KU(*7mlP;nPV15_LlLM9AUwZ#^nBM~)$+avfBZV8plF^-#6P zb|}frnl3z7qD;MgDMNpOIzNx$;&Vl#OB$@gOCTl@O6#?5aJy8=a)12j7ltnOH$Qg?A+1!N)oLOxIU0JYqj}B#YBg1r z24W+?OqWtEIpTQz?{+`SvhJoqSQXNuT+@0b@x4`>x+R3R;$Z@LB!M8f6l}M*A-G(T znIUQbS?ZJZ4MYVk&fPe*6}ku^wMGeGC1|VK9eF^rSqi=6_{oM)`9E{oRh8YRcjkP^ z!gVE^Lcfrl3mfjS%&2k?ro0ZfZUW>g0HRt;P!dJi)Ah$&dd*#R667BI@o6j>hOpr7 z$4<3w+i_+tmZvF@?eBR9=ou;CWcIcZ*cch7ADG&}D1~|?nMZ0XFp86kLP9323WQFT zy&?DAK>fKEN%lnaeu&k zHe;@_+5Q3~lXiP!_5?0%D+>^W3iv(zoeqI*W};qvTpwmF#CmwSEHll2VkYN*(LtU5 z*s`5qXw8h$W!>3bg!^bLATq%~Jw7L`X>P}?RcB{a+kR;ot}=0yG7Ta=+rsO)x?B_N zc=NOzXzhjd(NEH7>h-twH}5pXL)F#^I5aMIDP@yC>5S8N#Z#F6dN|sNsP_dhnU6xG znJicJpGUJmg2J_$MKNLE4;0;rk=zfQxdIx8eLPPAU4tL4%O}l_NWyv|p?^jOf_-`d z0Bf8zOZg;AikyY2iQ`w*JV&zonKA_E$UAtr!ybLr4P@rVl}?X@L=k2vA;H(@NwuSU z(H^hx5cziKFO7k^N24-~VgY}S#2FjV3m%4Rn@gM{!3+VV$d~q)I;G7z$NVt+QEZnu zaX!NRk1AulDbh<&Q)^#(R`Ia`F(-!@KpS`v?c?;`c@O72cugBO6^N*90=OwG)(NbJ zVaFdItFvI-)>$~JIn+MXmR8IR|qN!epl6-X;#Z@_F%pF z$~^rjo?H(;5|J;%EKd0GP6wov>R*V3)4&XWl)n&@>#c(H+LvSNssfOeMPkbQbXTsL z=-1W!1SS31>=gMk#s1wVuQfWAM4FqdZD`&Hj2vZ`H>e?JfEF5!SH~<)w7=B#%>%X) zk$h8xneZs8NXN25@eQZJbQr~gOTjh=rPuRXSTL;iT06@$u@w;K_%9Lw=;}CS`ky?O zd6|;@J%Lt^kEd%E*EMd#Qw`YC6eRG%bwpVnYaM)gW^pa!4}dNpB~}DfgiXITE+s0a zkq(IZ;LAH&0k51Ctzs3R7GDe$G(M)w`HLc$3bm;NMOx}xUyrYId)|js#R7yM z%B*rl5OPI!p#%#`kIDwUwQ>5^$5WMKJvL(OK*$HatO7ji>}&OoE&v_W*Ky)p|Gs1( z;T14Mez)ho^0Zn-Av!)V24F;!mGtr{-xVFF6EgKXMm?8%C59ho-AN z7v^~I#nLn_1nwJ}6uH26a*8;8%=WR%;jDu1)7@@v+eM>VQhZV)?n@5b>`J{3Hg(Ur$K2KTRb*jd(WLx=kp>*q=)CDyRjV5- zG`AL-IkmlN3Pbs+s=`7?!FhSsnx`oRkzSdf&vaLKrqi;*YpZ7L&1;ut#J>U+hN55L zJRr4@#|jcjU6q;*@EHt1bOn+-!)g?s!ceE$JDlfy(0G>%beIJcl?}9;2NW%D&OftP zl9XTmx4@gqTn)hI>qlKWpGaY+?aeQOD?=FHNA@AZOtTu-;*ULe#Ymy02@NvF>F%Om z_s!GM2Ac^MZMnMTWA`$o;@zFn8A#JpTHtY^29zWx<(5xr)gVka|AH8!flo&<*htyM zaM6Ci+Ch*i5QtR9A}=x$RzuRh)#dDa2{{^jf40*IS-+s99`i1P#+}V)WUZK_y0DEdX0m1*N&%9vOuj-=yW<^?J9 z4WlStTcXV_;u!&wtC*KUL$v2~Ms`o)HEPa}VK*XDJ~1Emj*@nGeFn^)B`rsY0-n$W z+CrJ{9ZIvwW8c6GLeeiN&d1H}$#dSiC(ad})2h3_24pcvJa#-llwD{%w7vtx)glrG zhr0gydZ+)&ffPpOMH`;;A=<)3{UW6ViN`;{n83m_zhnfl2cJ(N5m<`{_9XY=kM){7TfGVC-GiHd@krDz5<x7-!q zY>l4V7**-Fmx}2vB`>0Y;TJ}vvKu+-V$gk*;e#-(^6iOq+k0?LyZ`6< zp2>T$8<~*4jY0niGW~b&c zE9pwJ;>3uUa3)1P_t~SAC3aXEA?%9Q&Fi>#z}_O(k&@+)Dq79ZgMN zXy+|T(X##$2!)ox{-4F(Q1@j#K;49U#*b8QJW)y`iT5$1RGS&yu`5aU&%Em=}@zgcQuf(kG@`62Q-7%5T>;AucCzrkieDlr5@?ZB2;W-Y;-hqVlu>$~_aJ zMhJw;J@>ygpM20DJj>ueN*-4;r>rbGG9mJan-c$e0R>^AzFNv&IP)OZ=!S(Dsg_6w zX6yqOc}$KztJOy{2Fg^(lutGFL7Qo(p>!X1$XEHotl1hCVq&-~-u9O*dnh%x^9y$T zRa2dgqlncf?N1e6bVN+lRJ#M zJ8_6P4_Ixxa3M!HC&(xGG3q4j1qV5;KzTu}OTYmib_@hE9u2DY4Y}oD&;5EH zInF%`4G#9J*uDJk6!gGkuD{D|t&YFpS{% zd!T2cEn%h!A6mnh^f`GT7oj7nR6-(O!XJ zpzdp+PSp*R3O+JY8IChSG?W(Gl%c#;EtpH$#3B0*B$gKyM5p+ceatYFzUH+bxptgX*@mk(zU;QM808Y^O%mt>MxYU z7BQEPuH3VGo)|1f^y7FIr39+e!jKkb5EN2FV9mqhpqW9&x4Vc6|x1lYM8#wNo!!J6`*BmSDFvPy|`Ki z0>dE$FewiWr1U)^fXBkz8rMmr_^(u4Y&nXoa)96;?ltZpH`0#z81su4!{T3G?EivY z*$0$f&5ug2IicKYAkDj!v?{`x1Jb;8?MZ{{9$>sGmJRC3fm!)7rv)I^s1iT3KWO1N zt8NHutwI5tG`Ih~x5$8j`S702RwQm#G^esD`m;nhLGl~$9-a`BYVau(lJgI{zQfQk zhpm0w^?us8fjNeT{@!5|Nh?4gJlE?1_^{G9uv}YIWPshJD%Uxdk zhkh2@7Wn9WL8()gS+>C@1&t!R1#E;a6vH1`Ju6^Vp)0goen4(+Noh=3e17 zJzw#MpNQ^gRLig&cIdAZO68=`|Cg))%<-$T`1liyZd-&%etsUp<| zttS9`6@df(q2B}^d*hEOK^eC?gUMsACqgs)5n4n-(L?&@70@Lo|0Xc##)2>7r7?52 z#wX6s{2JDgvvV*d^O+Z{s_Q{ORR zzoC5$4UW_^Y9f^np+Sz%&SY!rPA7*Eo;{_u`y0)q8VlW@(+UxZdc3KJ`MP{0v)Ekm1m{*ZEIk7@tFif zvUO9Htyd&$QGj3owJ&!O=y4Ky%?>EoZxs*g747k723I@>e+Ktb8|1+(jM66JAgm{C9yykFwUPkD1hHoXUXoUEd3E_K?skJAhX3 z?Cnk*7!32GKhI?Q!9p-W|CN;Z7JEaOmzv+kDvH7P)Rqq z)id~hthN881SdvUzp}^+$mgBijy4p;ZA;weqN0JfJf|o#Xn|{#wf69q_fdFd8F;U> zrf?uyc=&+Xy)E9;I9^Mi){xS_*ES~vX+W-EJ$IW~7_ik)>Le}^cRiLHB<@Pf3i{z4rEKoci1&-NrptWd=Cn9As^G-b8vDC+x$B4)Q1Kk z*OB#$GeHm*Uxy@i!;%XQA)QOtCxMtC4z&(uiO)mk@zplsxpf}WmG0MzoW zNur%^E$fK2A!dF<4PPNcU^?HAW5|L@on~B+T9O8ujJsjIN^Q}>_S8cTc)&9P6&ZFu zF(^y>!0!r=L-%TRtnk&@C==YVR8=0(#&$K$cdeY$jI$*Kf874$43Fp!k8ib3rY_bQ$@hkW-UDMu&{BR3gl$IsL*O79^E+FSgg8)n_q2z1-vSlpL zIv~WVdo^#WWs7=eg?4?Bk|kvCPHIJTU(CLmZ}!as15K|-n@`P0FmN6E!PbkIH-xEoQ_n!>!b2z% z-8kfWEQO)}=$>l^nl$vXc3+8111-(`?L7Xft9Ji&IYA);YK<@4aKG&sxzB;E2Ez(D z{T1%yl@1F_y;k6$ zAIy6|fE*98BEveH2Hb1NLI!tY=Jn_4vGHCCT2L}Bh%Y*x3wt^JMVT=<@;v?K0u%ka zQ=;U7jWlqgz#Nm|`hHz|)#Ask%C^wf7XU8fIfQA$n_*`I9Y(zl4RJITuV+Z(BdLc_ zOGe1r!+^&qCrs;L(Fz|z07O54Xm{i87z~W(L1$UGTzqOCP1^^fQ_bXajr`U4qmMAF zhNPW+2%+(;_$83|%=Y9Yf;kV|wjHD}(54Ip6C6(w9FK?{fr8A}%7R64q^eR&3`Pvv z+|1V*0*ANjm#nbKuaqrwE5r4M4_Jmc3mjaIWhBhDYnrA z%-aG3|5q?U@f1Pvh?v0aCu%D=qMC9?>fKV?0wF&nZSVW=%Q;a9l+fckb-2#Z%0Xcc zo|m5RebrvOgW#v-RT*u!HGqzdiFP`iyuM%5@nUHLNdIRcrVY^|K{XwZoWnJAHxpK* zrhlX+4LRQ{#==>!4$}*{xAiiUdw^0>#1h3R0|%F*E(s*F8u?l^5wu&1G72JA4oRJ# zM(*Etca%JWPkLhNg~ht1Nbn3z>IO_@4^=+oC9#B*m6w-056J0CSdf0Z$4R}KS zI4w;<*7F~vJx*jF-xvGlrbb0aNdTLr>vb$kSSGuNmGa-OIXx$VLn9uzV zyW3K)og#120Nuo$&Qsd5qR|tsui*C8;&tges$r({bQ0zH$DC=;4!%bh5|ADN>G5#{ zHBnv75Ug7~m0LXWSvX3v_7SGAhAK%&t&|J#N}D=_khbd0h83E=rSzu;eu>k=h+`Iz zkct=PIr;56m|z!)9KZ2I=&1onSq#=k>Qj+x4A%LpRgL@+#Sp2ZAUrVu@fJhu!4^ZX zYKfVd0oM)~P6R~`*HsJwHP?qR*9TiG2}e_MZVz)VCF&mk43KT`DB;%wWwPbe*rq;` zx_}74(vs&E>OJ9+YlP1S!MIQC9y56*c#+qinpfQA7{ijZ)vYezytMx{Kup^}H^k#H z{e)R~(8$&bd7axq9;_oAtV1mT)PI-TO52c$s>+44yhg3vfm|hJJ?I-~VKyf2dd~Wp z?ALvJm8)W(=}Tbr6C>DXo)7H%)a0P*V5oRI(dc4IYg?BCp_^v#rsr)5xDi|fzOx2z zd4ieme_w6BT?BW5j}O4Jp4ZIaBhTCOSt<7JLQP1aE<%-^s!wlz88m z2Khrmum+<*ypx57!G=IUK!BjNVR{SkfBvHa{_JeQ>|||cZf{~}=wQ#RZD(j<&;0Ng zRwidl3#R+OhYiUhwXvYXEnztau(-uc_yw}>Nqn)&Ce@M3d1gUMeKazg6qd2nw%$MF z4$|g$##TY($IZj=eGQhSymzYy4RdhbwhmsEQF}>I`4eX1W$Im-=AwKs znw%!;^y#YKFyujPB z*qi9u85$@$*qK@x+u!dzPGiy{V-o_yy1>!w_%=^r@Q)w%|o?)C?ggc|o_ZJBAZ<(ckoR<6mK zZnrw9c~0C$PvA!)gg&3I%+IzqxDhRCUa!th9?j2AUZy?EVEDE5qdd&|Q}zLkO5W_& zVdbCCD)PiG+Zuc%O0kokGj@)Loa_G57#~odZEW}!rv}I8vpKpqJJYAZ3!z|LR{cPo zEt`z7&O5FDF{)mqmkI3%&V)>TQ9ZV2aBa({DPWms#hez5Yb<+wqc|cnsdh>c%Cd6M z(=BnpSomS2Ad@InrsUJhf&#|wxV)(sc=TUUNt#&EjO?=m0$+_&lWC{y;7`}~VJi;D z1f+P(TeVz_3W)1-09$dwcv;_n#-m|9zM46@ZExZy0t?(V(7g{z$6PIir|qF>n{ z{?NV^w4F{fmya$$q-XRC-O&3e?0BjX@{*}Fd6GAO0faoL5KD0;0>ZCRQ{j%2{YCRb z2YZVs)DNqi^+VCJfF@_%l*+7x(7nk6v*m5K1eR0tdSLVFa z!Ve}?Il7zb$r=T{Gy*swNMBhKqF=ynX$E>cdn+9B4&GLz^!tzf3}#e(bj8c`IhZ$_ zd96!1Ms?i0r!bzOl^#aaQ(27GJv`sk8&%*?*>O^Nu~wa8EUfnrX;WS_{3?A<_C|BI zO#WIRb$bp|x^J^mF|5feT=EOA`jaA{kB_)JNkYD!e5h6Xp4zBmMn^gS< zx@HVoFztD`VPC@3%{|*$ISKsf-h~XXDCd0f%$|UgCMAYEeTq&Xdp_|Jb(>eu45<^Iy3lH?vD3v{==Sw@vsoe`&9;9w9g>Z zFM$yHd2L$A^f2~~k%m4lfsw?WKK;7iBdWSq^h-qvK|a}q({XZTh*&Gb-ih`v z+qPThZgA#RO|&aJMi%Z~BjOtGsrTS2chuL-ESKlBf>lvpCSLnJ^Yy>;8@6Z9ng*dK zP^J+4Mvo?z5c^2Ehb~nDGO!#L#amA>Wz-27@%BhP72g}Z6)3|Y*}mwkZS`_sSnGnO ziNt`>g)6<=%=Gd@x-LycVx7# z{lTNnYb)|JA(t~Pia3%YC*sa_(N}9-|IKM^hV2Vw<5XncDu?KP;O-EI`4u_jBBXm9 z(tk1hv;M8{Yh`t^&xYuIL$GAsl<1VWu^d&wrM!ORk?A92S;AR(TIgkx)z0gEFSs$o zLy9{|8sel7FJ8hZ^?Zk}5J2@$5p#L}n$#e(J<^Ruj$vKzHFATl1M66pz?-YjIh=g2 zEvuVw`Ma|)ym#Y*58awE6Kh#S65EM$Z%H$4H5Xs#&As~a2jtZtEkXO;f9vzMiD(qP z=V?>hu($B_Z`N0?%hwAnyCD;&p&g&4QX;uErt-GR?4!P%E=dGCTMO`3FUIZ&JMVms zDBg_E+V*a581zp~SdyO)|F|IoyJkvPNsSPV!G2O~&ZZ<%AnJ2_Lv2IgaWrvIuDtSI zfJX zk#I?l3Md~AE}su>$(c?9kYy24@G&IsH{@POj+lOQR{FAs@1Bw>a)+T0E56xS3+GJR zn(?x@VV5g9qpIwcbSWI0IULkMNgO$f4YYCFZc7z59W;Y;d>j(IsLcY+pEryQl<0o! zg$kBBV@x+|RKy*1)vf`l^86~(KKp6#p7_$Qe~f>o<~G`aMur*qTq7$QqGV|FtC8aP zQ@)ym_zFY-jce!?w&brMYY6?HJ=-j1C`ZNiwP76YoPQcy&iq)T$s)s^V`zgwM}}ZtEDJm>=jHkXzMy<(1A36s0jBc z3~OM!+klS|dTwd{^Y0r(ir2zxb$qrGDn6e-h?k@9Tbt>;&!?|xx#BeXJ=|O3j;RU- z#MsGA2P~$yNrY|jOzk1zNCG)J^8WlKH|cKC3^*?cs7~y&DUT^>1tc(Ocrih2sB7Iw zd170Y#X$})3kc~ZW1+`&3a=;#jZ`&ej;JR)b09YxaZMm&>W&uLWs5+Zc$>vsII$QR$^`j8Fw%yv|s{KJ3_5) zS{&Ap@3s1GUkVz#xa8pW=Qs=H7N9qNDJmCd(>Afxe&j6G)`2gR;Xf7H9TIxBNXVDR zn-#Knmq)XOzWLZ$jN;mr*Y}>dUu@licY8x&hXn2#X40i?x8tZ&0}-}ZBEC@THA09p z1E5ouWG7u|QeQa{(@?`KoP}E?T8lX8boglj%)_jQoc!bHfMl=DGbQP`J4YY#eKEtD zoyU`MtQ~DCeWbfP$Cw|^SEHL6+ka&6^Kd=JZAVo?l>$EW?hQQ&{fOEeoSlxnT0l@- z|9ifyE;dUB1N6G!FOeQm6QQ{qy>yNU6~vyeWKDA{vol0K3@V@yX@)mRK)kpRh_dLY zBJ`BsCVevuPt{)!X;(UYXGKhd+&GE0H+C*`xAmbTiIl7%!;d*4Yz!Z#Scz0=xtX z#}&orRz~y(kf%faaKBxIxFCG-B;JvJA-w<^%tq^ zH4BW1A9fD&kF5t-H@o3L+tx=6ZJ6a8F$|#vE3M3L=qu;#?^Ilm?(AUQq{<)mt!k&O zp1X&eQ%JzEF}7(*&%Ay1nTeNfN{ zZ#x2Eo#0n{j*Qq%2u9WflX#bdD?@{8Qc-FPaR>HcbZyDs6*)vO@OVB9Ld|SWKg)2A zd7Uqvp3x%?&0e3Z5z?7EK$`Yt?2Av7^Pw+3e3}c_l7^j+>oJ8pbV>eIs#4-0k@)V{ zcd)HrGdxO}{Kw}~3P>n|Ht7)rL8aroJ>O!ecdCx0kd*V3vM$!!P8$zCi{aat@nCi^ zsEN2G%&Hk&i6Xo`%$KVbSNAlQG4+L84jv?yf^juXrm`}7o)y<)PwYnhTxO6ga`%l> zlOi-7|Ic45y9gzNf27X8kffN2!YF4HYjI`jDEq18LRz~tQa|i7 z$fHru9A7NWkToCc1gPC!%t2duY>db|Wm!n_8?{7kDkTH+;Qij?a#&?r$YLUv<3OJ9 zC)Re8Rlem3AqZ29iC1KJr=}8<-4N{WbTN9M9~m{rHt%t9G*ohv2d%~|F#LNmhqbcv z&62Y(g%r+AI*Z|0?t6>LwRM@uem2Ex_%3SL{aQRNLs&1}&&ST^Pp&dUrkfpuQRbYm)i<0Rwl}HuF+{>Y_Qjay-J){` z<`XrBVWlmePltLPhec90P(FugS^r5R+?n>JZh--FwSs0Lv*xzYNi^JFe{^=T%F#Ou zWUQr%7o-x%QAR!CwDWQPoo$w$_o!n4vZJF4y{o$MH+nl4eREy{7zPK$+(74j%_J(x zsd5ten-u&REiYQ5W2Be(snr%qORNQ1;R)2Ek{_aE-}nU*oTDe$zWefa&cxU?On8ZN z5kLK<_?8QZUt7;^tvar>wKcY%{PzptF!6AENaPTqXNKj}s}!55@he%fg2TVf0hu@FW48o9;6}f=G`XwPJI#yhY6zZ zP2VPL^bI_xo}_8|6)x~%(mJ1tr@L;kKy8k7(AL~1K}`&&jbJSs=A$ms`&=x{o0wSt z?lG&beS-Bh3BSR;3Koj~itg$PALiBG=qc|@w&N4xo))}bJvE1`VQuwt6+x8{Or^b# zs9RNXgRx&f zumZd;F7>O=W`VmIt=Z2BhGb=r(SM{C>hkeYc$TKlY;#`k7!yjpUhSWt(vtbMC1Fmf zo#@P7dr**!)5bBVLQ8LnmEpZbBHr5y1 zNMSG!Usf(M$lmN!v8zU3^BWSe2)o1-e#mNKa?^KYpjPZhi?@q{0wxS$`QBXShW(*F z!(qdwz#I1~%x=v}Zp*2U<_PO~RZugC!nv$1mA z-rBPEkfUp8+zoT1RRyv~bqs`azimm?pUZ2kn0O*A_uim8&%iy37I6>}Go<9`kmq^g}lC6#qdGa>U$|hdVHnq}&48w2rzDT!M=@DP^BYY(H zGiCdpH*zO|Pb?8`f7>OSjfYw60n-LobS)elACMY3qzd_o-iJ&uf- zevzX#p9|r$DBttqj`3q&JnyBmfl$TgmxMu)q5T60Ue>X-ky*>}KtfT%$rOk@1^MyLDCuD=zgC&1 zY@O}3D~}dD;9L9g`qCUmZZuxwLv5w&;%gWVZJj{G7>C*PXEPX~Wl@7gGiBOu?G#Xt zV-wLh>cxd{j-$;OZ~pkhl!&>Kt7LoNBz6j4Tf_eYt=6?Z zJ4V5oZ(6H#NSEq{3DEOb)FG=jwjQ!S2<6@-j-#T+q^%H~R=n|4Y&V=wP$v1}(gsc8 zX|gI+Jh6tm*h3UEJkq5jBX2i&f*nRvgIzojK4GeHU5?tmQ7rK>YpKUOFftT;c;T2|6jiZL0MSl=mQOk~U9{B%s_+NcFK zwCmvPR4p4QtZa``0zQZYE#YWqs(XitAzgH-rjdqE-0*^tVSJ?v--u#9>US(e5E|+! zWfyh#C$DGa%qgCKFy`$G5;PWqgKF~SV`L*#+T>6f-uBYigBW#9`|@<9%fHzRIV8;S zNwelEt))|VFV&%uI<5DzL&YDy+GLzxB>TuKahPzxzd&)z;Wr_6oKou^v9DCsN16D3 znTIz%EoYL-f#61O-uJvp6=<5WZRGM4w6h&!Q3QkUYSra$qx{KQ z7R!cs?jnWW*r>chN-a|oJ4AQI!h`BpjKXL_TwdjE`spof+Ri2h+eJ}W>f8 z67aH<5Ff7ib?vX8wV#ONtXM_OD3SV6qmg?eIW_BSl_*$yV^i95SL^r3bpvgtSmwSi zaLC9z<4b41qnwOUVv$_qkv^gu>rdo)VVO8ZH{eC$zcyA}`>GOll$s*;cfKQRCOMu4 zLu4??B*p2u_ltLnEo>Py^2O4zSg?8Nuc7LsU*mUKeV%5KMB#$oj3ze|l@mRL4s)Uz zzPAMHG|g?tGX87E!u}4=LP=w>)368P4|FO0N()!SEL>AQp;LRpjpzQm?d8w8zdz4;-TIV^X!2Yy&s|I*TfUfD*lE@} zh*nDaO?t(!Y5|wRqN(RsU!CoeI%kLAC4=^dr!QqxeE-$-;1RFTfmJ8Ih0L7gCbf;< z!o;fLQ)*0BKXWJVmX2RIT8ZMO$jQW$_ZB2Wf>9#IuQ9#_U z8R=6lJ#$pw;x6Nn|LRxRb5rJ9!pp2In14Qy3b;Gzh5efw-xn{f-J);IYAL)ha@xut ztNA`VBt2NYo{Rm<&mU)9AKRuC`A<4scwOxE$9N<2=~F7Zf1a4wTK4Iyrz3P|ukXTlu$nhXS3F92u4(!K>1B=#)aV5pYEE4N^q zv!cWD%+-h9z76W-o<8~K=elKUrdKBMe@Rr(UT~r)Aw%@#K`F-T-}cxta0f=|s&CRr zILc7ERa4*MI6K|NYK> z>44f9Yc4X?Eapyl`|5-I>|J>Q6-uS^FCLQ@jqg;=~qOY#>gYyx^j1MftbFi=IbbADb)YFtZsSX-s8UE29(>p($gg9k|mqH-o4DJe3Ymn$3;+QoczQL5i}uZejVnNQ9z5LwcB zlX-gXywxmKjKv}5haaxJWN5%9S8!ZW?Xi1K!pj|1H|CaK+1fB=&ea1)r)#Aws=6go zkiPl$YWpi|n=FltZ%9v+jGgbi*0-cqCm`UJNZjd^O{PEeJ8zhTE$*y(>D{?xiXhL{ zjyH2-j_-N#cR##OMVi1+Ucn5? zc8p9S42X%>?cOo-J^;hG8kpcDfHW!qPQ#`YC6G$rkDZkMV-t= zOyi=Pf;=?}ngm7w)(%EAQ?O16qZ^3a90AR!A^>M6*g%Z=Rdf@O>k3e_1p%JTg_r20&B)mI-;9{oXJ3?1_G!rW<)MS&^02b h8BiWX0HGy}*m7imH!B-R5hoBv0uxisQeez8000gHgwy~4 literal 0 HcmV?d00001 diff --git a/modulo6/case3/redfox-backend/src/database/BaseDatabase.ts b/modulo6/case3/redfox-backend/src/database/BaseDatabase.ts new file mode 100644 index 0000000..fd05f8c --- /dev/null +++ b/modulo6/case3/redfox-backend/src/database/BaseDatabase.ts @@ -0,0 +1,18 @@ +import knex from "knex" +import dotenv from "dotenv" + +dotenv.config() + +export abstract class BaseDatabase { + protected static connection = knex({ + client: "mysql", + connection: { + host: process.env.DB_HOST, + port: 3306, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_DATABASE, + multipleStatements: true + }, + }) +} diff --git a/modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts b/modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts new file mode 100644 index 0000000..e4562c9 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts @@ -0,0 +1,30 @@ +import { IPokemonDB, Pokemon} from "../models/Pokemon" +import { BaseDatabase } from "./BaseDatabase" + +export class PokemonDatabase extends BaseDatabase { + public static TABLE_POKEMONS = "Pokemons" + + + public toProductDBModel = (product: Pokemon) => { + // const pokemonDB: IPokemonDB = { + // id: pokemon.getId(), + // name: pokemon.getName() + // } + + // return pokemonDB + } + + + public addPokemons = async (pokemon: Pokemon): Promise => { + const productDB = this.toProductDBModel(pokemon) + + await BaseDatabase + .connection(PokemonDatabase.TABLE_POKEMONS) + .insert(productDB) + } + + + public getPokemons = async () => { + + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts b/modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts new file mode 100644 index 0000000..22c01c6 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts @@ -0,0 +1,67 @@ +import { BaseDatabase } from "../BaseDatabase" +import { PokemonDatabase } from "../PokemonDatabase" + +class Migrations extends BaseDatabase { + execute = async () => { + try { + console.log("Creating tables...") + await this.createTables() + console.log("Tables created successfully.") + + console.log("Migrations completed.") + } catch (error) { + console.log("FAILED! Error in migrations...") + if (error instanceof Error) { + console.log(error.message) + } + } finally { + console.log("Ending connection...") + BaseDatabase.connection.destroy() + console.log("Connection closed graciously.") + } + } + + createTables = async () => { + await BaseDatabase.connection.raw(` + DROP TABLE IF EXISTS ${PokemonDatabase.TABLE_POKEMONS}; + + + CREATE TABLE IF NOT EXISTS ${PokemonDatabase.TABLE_POKEMONS} ( + id TINYINT PRIMARY KEY, + name VARCHAR(255), + Pokedex_Number TINYINT , + Img_name TINYINT , + Generation TINYINT, + Evolution_Stage TINYINT, + Evolved TINYINT, + FamilyID TINYINT, + Cross_Gen TINYINT, + Type_1 VARCHAR(255), + Type_2 VARCHAR(255), + Weather_1 VARCHAR(255), + Weather_2 VARCHAR(255), + STAT_TOTAL TINYINT, + ATK TINYINT, + DEF TINYINT, + STA TINYINT, + Legendary TINYINT, + Aquireable TINYINT, + Spawns TINYINT, + Regional TINYINT, + Raidable TINYINT, + Hatchable TINYINT, + Shiny TINYINT, + Nest TINYINT, + New TINYINT, + Not_Gettable TINYINT, + Future_Evolve TINYINT, + MAX_CP_LVL_40 SMALLINT, + MAX_CP_LVL_39 SMALLINT + ); + + `) + } +} + +const migrations = new Migrations() +migrations.execute() \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/database/migrations/products.json b/modulo6/case3/redfox-backend/src/database/migrations/products.json new file mode 100644 index 0000000..93fb2cf --- /dev/null +++ b/modulo6/case3/redfox-backend/src/database/migrations/products.json @@ -0,0 +1,129 @@ +{ + "products": [ + { + "id": 8371, + "name": "VESTIDO TRICOT CHEVRON", + "tags": ["balada", "neutro", "delicado", "festa"] + }, + { + "id": 8367, + "name": "VESTIDO MOLETOM COM CAPUZ MESCLA", + "tags": ["casual", "metal", "metal"] + }, + { + "id": 8363, + "name": "VESTIDO CURTO MANGA LONGA LUREX", + "tags": ["colorido", "metal", "delicado", "estampas", "passeio"] + }, + { + "id": 8360, + "name": "VESTIDO FEMININO CANELADO", + "tags": ["workwear", "viagem", "descolado"] + }, + { + "id": 8358, + "name": "VESTIDO REGATA FEMININO COM GOLA", + "tags": ["moderno", "inverno", "liso", "basics"] + }, + { + "id": 8314, + "name": "VESTIDO PLISSADO ACINTURADO", + "tags": ["casual", "viagem", "delicado"] + }, + { + "id": 8311, + "name": "VESTIDO SLIPDRESS CETIM", + "tags": ["balada", "metal", "boho", "descolado", "passeio"] + }, + { + "id": 8310, + "name": "VESTIDO CURTO PONTO ROMA MANGA", + "tags": ["casual", "metal", "delicado", "descolado", "elastano", "estampas"] + }, + { + "id": 8309, + "name": "VESTIDO MOLETOM COM CAPUZ", + "tags": ["inverno", "liso", "casual", "descolado"] + }, + { + "id": 8301, + "name": "VESTIDO LONGO CREPE MANGA COMPRIDA", + "tags": ["casual", "metal", "delicado", "descolado"] + }, + { + "id": 8300, + "name": "VESTIDO MALHA COM FENDA", + "tags": ["balada", "metal", "estampas", "moderno"] + }, + { + "id": 8293, + "name": "VESTIDO CURTO VELUDO RECORTE GOLA", + "tags": ["colorido", "viagem", "delicado", "descolado", "inverno"] + }, + { + "id": 8291, + "name": "VESTIDO MANGA COMPRIDA COSTAS", + "tags": ["inverno", "estampas", "delicado", "descolado", "casual", "passeio", "basics"] + }, + { + "id": 8264, + "name": "VESTIDO CURTO VELUDO CRISTAL", + "tags": ["casual", "viagem", "boho", "neutro", "festa"] + }, + { + "id": 8119, + "name": "VESTIDO BABADOS KNIT", + "tags": ["moderno", "metal", "descolado", "elastano", "festa", "colorido"] + }, + { + "id": 8110, + "name": "VESTIDO CUT OUT TRICOT", + "tags": ["casual", "colorido", "delicado", "descolado", "viagem", "inverno"] + }, + { + "id": 8109, + "name": "VESTIDO BABADOS HORIZONTAIS", + "tags": ["moderno", "boho", "festa", "descolado", "colorido"] + }, + { + "id": 8104, + "name": "VESTIDO BABADO TURTLENECK", + "tags": ["casual", "metal", "delicado", "neutro", "basics", "inverno", "viagem"] + }, + { + "id": 8091, + "name": "VESTIDO MIDI VELUDO DECOTADO", + "tags": ["couro", "veludo", "passeio", "viagem"] + }, + { + "id": 8083, + "name": "VESTIDO LONGO ESTAMPADO", + "tags": ["couro", "estampado", "passeio", "viagem"] + }, + { + "id": 8080, + "name": "VESTIDO CURTO RENDA VISCOSE", + "tags": ["neutro", "workwear", "moderno", "descolado", "liso", "elastano"] + }, + { + "id": 7613, + "name": "VESTIDO LONGO BABADO", + "tags": ["casual", "liso", "passeio", "colorido", "boho"] + }, + { + "id": 7533, + "name": "VESTIDO COTTON DOUBLE", + "tags": ["balada", "liso", "moderno", "descolado"] + }, + { + "id": 7518, + "name": "VESTIDO CAMISETA FANCY", + "tags": ["casual", "liso"] + }, + { + "id": 7516, + "name": "VESTIDO WRAP FLEUR", + "tags": ["neutro", "liso", "basics", "viagem"] + } + ] +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/database/migrations/testjson.ts b/modulo6/case3/redfox-backend/src/database/migrations/testjson.ts new file mode 100644 index 0000000..f084bde --- /dev/null +++ b/modulo6/case3/redfox-backend/src/database/migrations/testjson.ts @@ -0,0 +1,21 @@ +import * as fs from 'fs' +import * as path from 'path' + + +function readFileJson(file: any) { + try{ + let content = fs.readFileSync(file, "utf-8"); + return JSON.parse(content) + + } catch (error) { + console.log(error) + } + +} + +export const readingJson = readFileJson( + path.resolve(__dirname, "./products.json") + +) + + diff --git a/modulo6/case3/redfox-backend/src/errors/AuthenticationError.ts b/modulo6/case3/redfox-backend/src/errors/AuthenticationError.ts new file mode 100644 index 0000000..0a5bfac --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/AuthenticationError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class AuthenticationError extends BaseError { + constructor( + message: string = "Credenciais inválidas" + ) { + super(401, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/AuthorizationError.ts b/modulo6/case3/redfox-backend/src/errors/AuthorizationError.ts new file mode 100644 index 0000000..6b9f2a0 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/AuthorizationError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class AuthorizationError extends BaseError { + constructor( + message: string = "Permissão insuficiente" + ) { + super(403, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/BaseError.ts b/modulo6/case3/redfox-backend/src/errors/BaseError.ts new file mode 100644 index 0000000..1dae99f --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/BaseError.ts @@ -0,0 +1,8 @@ +export class BaseError extends Error { + constructor( + public statusCode: number, + message: string + ) { + super(message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/ConflictError.ts b/modulo6/case3/redfox-backend/src/errors/ConflictError.ts new file mode 100644 index 0000000..e5934ef --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/ConflictError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class ConflictError extends BaseError { + constructor( + message: string = "Recurso já existe" + ) { + super(409, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/NotFoundError.ts b/modulo6/case3/redfox-backend/src/errors/NotFoundError.ts new file mode 100644 index 0000000..697098f --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/NotFoundError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class NotFoundError extends BaseError { + constructor( + message: string = "Recurso não encontrado" + ) { + super(404, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/ParamsError.ts b/modulo6/case3/redfox-backend/src/errors/ParamsError.ts new file mode 100644 index 0000000..b43539b --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/ParamsError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class ParamsError extends BaseError { + constructor( + message: string = "Parâmetros inválidos ou faltando" + ) { + super(400, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/RequestError.ts b/modulo6/case3/redfox-backend/src/errors/RequestError.ts new file mode 100644 index 0000000..d6a0ba6 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/RequestError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class RequestError extends BaseError { + constructor( + message: string = "Requisição inválida" + ) { + super(400, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/UnauthorizedError.ts b/modulo6/case3/redfox-backend/src/errors/UnauthorizedError.ts new file mode 100644 index 0000000..2506c04 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/UnauthorizedError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class UnauthorizedError extends BaseError { + constructor( + message: string = "Credenciais inválidas" + ) { + super(401, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/errors/UnprocessableError.ts b/modulo6/case3/redfox-backend/src/errors/UnprocessableError.ts new file mode 100644 index 0000000..85e971e --- /dev/null +++ b/modulo6/case3/redfox-backend/src/errors/UnprocessableError.ts @@ -0,0 +1,9 @@ +import { BaseError } from "./BaseError"; + +export class UnprocessableError extends BaseError { + constructor( + message: string = "Parâmetros válidos, porém com erros de semântica" + ) { + super(422, message) + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/src/index.ts b/modulo6/case3/redfox-backend/src/index.ts new file mode 100644 index 0000000..33266be --- /dev/null +++ b/modulo6/case3/redfox-backend/src/index.ts @@ -0,0 +1,23 @@ +import express from 'express' +import cors from 'cors' +import dotenv from "dotenv" +import { pingRouter } from './router/pingRouter' +import { pokemonRouter } from './router/PokemonRouter' +import { pokemons } from './conversion/SheetConversor' + +dotenv.config() + +const app = express() +app.use(express.json()) +app.use(cors()) + +app.listen(process.env.PORT || 3003, () => { + console.log(`Servidor rodando na porta ${process.env.PORT || 3003}`) +}) + +app.use("/ping", pingRouter) +app.use("/pokemons", pokemonRouter) + +console.log(pokemons) + + diff --git a/modulo6/case3/redfox-backend/src/models/Pokemon.ts b/modulo6/case3/redfox-backend/src/models/Pokemon.ts new file mode 100644 index 0000000..a42e1c7 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/models/Pokemon.ts @@ -0,0 +1,83 @@ +export interface IPokemonDB { + id: number, + name: string, + Pokedex_Number: number, + Img_name: number, + Generation: number, + Evolution_Stage: number, + Evolved: number, + FamilyID: number, + Cross_Gen: number, + Type_1: string, + Type_2: string, + Weather_1: string, + Weather_2: string, + STAT_TOTAL: number, + ATK: number, + DEF: number, + STA: number, + Legendary: number, + Aquireable: number, + Spawns: number, + Regional: number, + Raidable: number, + Hatchable: number, + Shiny: number, + Nest: number, + New: number, + Not_Gettable: number, + Future_Evolve: number, + MAX_CP_LVL_40: number, + MAX_CP_LVL_39: number +} + +export class Pokemon { + constructor( + private id: number, + private name: string, + private pokedexNumber: number, + private imgName: number, + private generation: number, + private evolutionStage: number, + private evolved: number, + private familyID: number, + private crossGen: number, + private type1: string, + private type2: string, + private wather1: string, + private weather2: string, + private statTotal: number, + private atk: number, + private def: number, + private sta: number, + private legendary: number, + private aquireable: number, + private spawns: number, + private regional: number, + private raidable: number, + private hatchable: number, + private shiny: number, + private nest: number, + private New: number, + private notGettable: number, + private futureEvolve: number, + private maxCpLvl40: number, + private maxCpLvl39: number + ) {} + + public getId = () => { + return this.id + } + + public getName = () => { + return this.name + } + + +} + +export interface IAddProductsInputDTO { + id: number, + name: string, + tags: string[] +} diff --git a/modulo6/case3/redfox-backend/src/router/PokemonRouter.ts b/modulo6/case3/redfox-backend/src/router/PokemonRouter.ts new file mode 100644 index 0000000..c061d9d --- /dev/null +++ b/modulo6/case3/redfox-backend/src/router/PokemonRouter.ts @@ -0,0 +1,17 @@ +import { Router } from 'express' +import { PokemonBusiness } from '../business/PokemonBusiness' +import { PokemonController } from '../controller/PokemonController' +import { PokemonDatabase } from '../database/PokemonDatabase' + +export const pokemonRouter = Router() + +const pokemonController = new PokemonController( + new PokemonBusiness( + new PokemonDatabase() + ) +) + +pokemonRouter.post("/new", pokemonController.addPokemon) + +pokemonRouter.get("/", pokemonController.getPokemons) + diff --git a/modulo6/case3/redfox-backend/src/router/pingRouter.ts b/modulo6/case3/redfox-backend/src/router/pingRouter.ts new file mode 100644 index 0000000..3b328b6 --- /dev/null +++ b/modulo6/case3/redfox-backend/src/router/pingRouter.ts @@ -0,0 +1,11 @@ +import { Router } from 'express' +import { PingBusiness } from '../business/PingBusiness' +import { PingController } from '../controller/PingController' + +export const pingRouter = Router() + +const pingController = new PingController( + new PingBusiness() +) + +pingRouter.get("/", pingController.ping) \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/PingBusiness/ping.test.ts b/modulo6/case3/redfox-backend/tests/PingBusiness/ping.test.ts new file mode 100644 index 0000000..9ca7258 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/PingBusiness/ping.test.ts @@ -0,0 +1,10 @@ +import { PingBusiness } from "../../src/business/PingBusiness" + +describe("Testing PingBusiness", () => { + const pingBusiness = new PingBusiness() + + test("deve retornar 'Pong!' em caso de sucesso", async () => { + const response = await pingBusiness.ping() + expect(response.message).toBe("Pong!") + }) +}) \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/PingBusinessTests/ping.test.ts b/modulo6/case3/redfox-backend/tests/PingBusinessTests/ping.test.ts new file mode 100644 index 0000000..dd10226 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/PingBusinessTests/ping.test.ts @@ -0,0 +1,12 @@ +import { PingBusiness } from "../../src/business/PingBusiness" + +describe("Testing PingBusiness", () => { + const pingBusiness = new PingBusiness( + // não possui dependências + ) + + test("deve retornar 'Pong!' em caso de sucesso", async () => { + const response = await pingBusiness.ping() + expect(response.message).toBe("Pong!") + }) +}) \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/AuthenticatorMock.ts b/modulo6/case3/redfox-backend/tests/mocks/AuthenticatorMock.ts new file mode 100644 index 0000000..954cfbe --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/AuthenticatorMock.ts @@ -0,0 +1,37 @@ +import { USER_ROLES } from "../../src/models/User" +import { ITokenPayload } from "../../src/services/Authenticator" + +export class AuthenticatorMock { + public generateToken = (payload: ITokenPayload): string => { + switch (payload.role) { + case USER_ROLES.ADMIN: + return "token-mock-admin" + default: + return "token-mock-normal" + } + } + + public getTokenPayload = (token: string): ITokenPayload | null => { + switch (token) { + case "token-mock-admin": + const adminPayload: ITokenPayload = { + id: "id-mock", + role: USER_ROLES.ADMIN + } + + return adminPayload + + case "token-mock-normal": + const normalPayload: ITokenPayload = { + id: "id-mock", + role: USER_ROLES.NORMAL + } + + return normalPayload + + default: + return null + } + } + +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/HashManagerMock.ts b/modulo6/case3/redfox-backend/tests/mocks/HashManagerMock.ts new file mode 100644 index 0000000..6a122d2 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/HashManagerMock.ts @@ -0,0 +1,17 @@ +export class HashManagerMock { + public hash = async (plaintext: string): Promise => { + if (plaintext == "bananinha") { + return "hash-bananinha" + } + + return "hash-mock" + } + + public compare = async (plaintext: string, hash: string): Promise => { + if (plaintext == "bananinha" && hash == "hash-bananinha") { + return true + } + + return false + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/IdGeneratorMock.ts b/modulo6/case3/redfox-backend/tests/mocks/IdGeneratorMock.ts new file mode 100644 index 0000000..42e1349 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/IdGeneratorMock.ts @@ -0,0 +1,5 @@ +export class IdGeneratorMock { + public generate = (): string => { + return "id-mock" + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/ShowDatabaseMock.ts b/modulo6/case3/redfox-backend/tests/mocks/ShowDatabaseMock.ts new file mode 100644 index 0000000..b4c3cdf --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/ShowDatabaseMock.ts @@ -0,0 +1,7 @@ +import { BaseDatabase } from "../../src/database/BaseDatabase" + +export class ShowDatabaseMock extends BaseDatabase { + public static TABLE_POSTS = "Labook_Posts" + public static TABLE_LIKES = "Labook_Likes" + +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/UserDatabaseMock.ts b/modulo6/case3/redfox-backend/tests/mocks/UserDatabaseMock.ts new file mode 100644 index 0000000..d16cd42 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/UserDatabaseMock.ts @@ -0,0 +1,6 @@ +import { BaseDatabase } from "../../src/database/BaseDatabase" + +export class UserDatabaseMock extends BaseDatabase { + public static TABLE_USERS = "Labook_Users" + +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/services/AuthenticatorMock.ts b/modulo6/case3/redfox-backend/tests/mocks/services/AuthenticatorMock.ts new file mode 100644 index 0000000..6f20ea7 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/services/AuthenticatorMock.ts @@ -0,0 +1,30 @@ +import { USER_ROLES } from "../../../src/models/User" +import { ITokenPayload } from "../../../src/services/Authenticator" + +export class AuthenticatorMock { + generateToken = (payload: ITokenPayload): string => { + switch(payload.id) { + case "101": + return "token-astrodev" + default: + return "token-mock" + } + } + + getTokenPayload = (token: string): ITokenPayload | null => { + switch(token) { + case "token-mock": + return { + id: "id-mock", + role: USER_ROLES.NORMAL + } + case "token-astrodev": + return { + id: "101", + role: USER_ROLES.ADMIN + } + default: + return null + } + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/services/HashManagerMock.ts b/modulo6/case3/redfox-backend/tests/mocks/services/HashManagerMock.ts new file mode 100644 index 0000000..12705f3 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/services/HashManagerMock.ts @@ -0,0 +1,19 @@ +export class HashManagerMock { + public hash = async (plaintext: string): Promise => { + switch(plaintext) { + case "bananinha": + return "$2a$12$RBAWOHpUvGTE.MEeIohAzec9tlVqtNA/x2PMPt/Hrt0vI437cQdJC" + default: + return "hash-mock" + } + } + + public compare = async (plaintext: string, hash: string): Promise => { + switch(plaintext) { + case "bananinha": + return hash === "$2a$12$RBAWOHpUvGTE.MEeIohAzec9tlVqtNA/x2PMPt/Hrt0vI437cQdJC" + default: + return false + } + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tests/mocks/services/IdGeneratorMock.ts b/modulo6/case3/redfox-backend/tests/mocks/services/IdGeneratorMock.ts new file mode 100644 index 0000000..42e1349 --- /dev/null +++ b/modulo6/case3/redfox-backend/tests/mocks/services/IdGeneratorMock.ts @@ -0,0 +1,5 @@ +export class IdGeneratorMock { + public generate = (): string => { + return "id-mock" + } +} \ No newline at end of file diff --git a/modulo6/case3/redfox-backend/tsconfig.json b/modulo6/case3/redfox-backend/tsconfig.json new file mode 100644 index 0000000..b87ef5e --- /dev/null +++ b/modulo6/case3/redfox-backend/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es2021", + "module": "commonjs", + "sourceMap": true, + "outDir": "./build", + "rootDir": "./", + "removeComments": true, + "noImplicitAny": true, + "esModuleInterop": true, + "strict": true + }, + "exclude": [ + "./tests/*" + ] +} \ No newline at end of file From e405f1e71a15c288486929fa0176bda205b85282 Mon Sep 17 00:00:00 2001 From: Gilead Raab Date: Wed, 19 Oct 2022 13:42:12 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Redfox=20-=20Iniciada=20logica=20de=20inser?= =?UTF-8?q?=C3=A7ao=20de=20dados=20na=20db?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modulo6/case3/redfox-backend/requests.rest | 132 +----------------- .../src/business/PokemonBusiness.ts | 43 +++++- .../src/controller/PokemonController.ts | 12 +- .../src/conversion/SheetConversor.ts | 19 ++- .../redfox-backend/src/conversion/data.xlsx | Bin 108523 -> 0 bytes .../case3/redfox-backend/src/data/data.xlsx | Bin 0 -> 133053 bytes .../src/database/PokemonDatabase.ts | 16 +-- .../src/database/migrations/Migrations.ts | 10 +- modulo6/case3/redfox-backend/src/index.ts | 4 +- .../redfox-backend/src/models/Pokemon.ts | 33 +++++ 10 files changed, 111 insertions(+), 158 deletions(-) delete mode 100644 modulo6/case3/redfox-backend/src/conversion/data.xlsx create mode 100644 modulo6/case3/redfox-backend/src/data/data.xlsx diff --git a/modulo6/case3/redfox-backend/requests.rest b/modulo6/case3/redfox-backend/requests.rest index 89cc453..5078b07 100644 --- a/modulo6/case3/redfox-backend/requests.rest +++ b/modulo6/case3/redfox-backend/requests.rest @@ -2,138 +2,8 @@ GET http://localhost:3003/ping ### -POST http://localhost:3003/products/new -Content-Type: application/json +POST http://localhost:3003/pokemons/new -{ - "products": [ - { - "id": 8371, - "name": "VESTIDO TRICOT CHEVRON", - "tags": ["balada", "neutro", "delicado", "festa"] - }, - { - "id": 8367, - "name": "VESTIDO MOLETOM COM CAPUZ MESCLA", - "tags": ["casual", "metal", "metal"] - }, - { - "id": 8363, - "name": "VESTIDO CURTO MANGA LONGA LUREX", - "tags": ["colorido", "metal", "delicado", "estampas", "passeio"] - }, - { - "id": 8360, - "name": "VESTIDO FEMININO CANELADO", - "tags": ["workwear", "viagem", "descolado"] - }, - { - "id": 8358, - "name": "VESTIDO REGATA FEMININO COM GOLA", - "tags": ["moderno", "inverno", "liso", "basics"] - }, - { - "id": 8314, - "name": "VESTIDO PLISSADO ACINTURADO", - "tags": ["casual", "viagem", "delicado"] - }, - { - "id": 8311, - "name": "VESTIDO SLIPDRESS CETIM", - "tags": ["balada", "metal", "boho", "descolado", "passeio"] - }, - { - "id": 8310, - "name": "VESTIDO CURTO PONTO ROMA MANGA", - "tags": ["casual", "metal", "delicado", "descolado", "elastano", "estampas"] - }, - { - "id": 8309, - "name": "VESTIDO MOLETOM COM CAPUZ", - "tags": ["inverno", "liso", "casual", "descolado"] - }, - { - "id": 8301, - "name": "VESTIDO LONGO CREPE MANGA COMPRIDA", - "tags": ["casual", "metal", "delicado", "descolado"] - }, - { - "id": 8300, - "name": "VESTIDO MALHA COM FENDA", - "tags": ["balada", "metal", "estampas", "moderno"] - }, - { - "id": 8293, - "name": "VESTIDO CURTO VELUDO RECORTE GOLA", - "tags": ["colorido", "viagem", "delicado", "descolado", "inverno"] - }, - { - "id": 8291, - "name": "VESTIDO MANGA COMPRIDA COSTAS", - "tags": ["inverno", "estampas", "delicado", "descolado", "casual", "passeio", "basics"] - }, - { - "id": 8264, - "name": "VESTIDO CURTO VELUDO CRISTAL", - "tags": ["casual", "viagem", "boho", "neutro", "festa"] - }, - { - "id": 8119, - "name": "VESTIDO BABADOS KNIT", - "tags": ["moderno", "metal", "descolado", "elastano", "festa", "colorido"] - }, - { - "id": 8110, - "name": "VESTIDO CUT OUT TRICOT", - "tags": ["casual", "colorido", "delicado", "descolado", "viagem", "inverno"] - }, - { - "id": 8109, - "name": "VESTIDO BABADOS HORIZONTAIS", - "tags": ["moderno", "boho", "festa", "descolado", "colorido"] - }, - { - "id": 8104, - "name": "VESTIDO BABADO TURTLENECK", - "tags": ["casual", "metal", "delicado", "neutro", "basics", "inverno", "viagem"] - }, - { - "id": 8091, - "name": "VESTIDO MIDI VELUDO DECOTADO", - "tags": ["couro", "veludo", "passeio", "viagem"] - }, - { - "id": 8083, - "name": "VESTIDO LONGO ESTAMPADO", - "tags": ["couro", "estampado", "passeio", "viagem"] - }, - { - "id": 8080, - "name": "VESTIDO CURTO RENDA VISCOSE", - "tags": ["neutro", "workwear", "moderno", "descolado", "liso", "elastano"] - }, - { - "id": 7613, - "name": "VESTIDO LONGO BABADO", - "tags": ["casual", "liso", "passeio", "colorido", "boho"] - }, - { - "id": 7533, - "name": "VESTIDO COTTON DOUBLE", - "tags": ["balada", "liso", "moderno", "descolado"] - }, - { - "id": 7518, - "name": "VESTIDO CAMISETA FANCY", - "tags": ["casual", "liso"] - }, - { - "id": 7516, - "name": "VESTIDO WRAP FLEUR", - "tags": ["neutro", "liso", "basics", "viagem"] - } - ] -} ### GET http://localhost:3003/products diff --git a/modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts b/modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts index 4dd688f..e97308b 100644 --- a/modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts +++ b/modulo6/case3/redfox-backend/src/business/PokemonBusiness.ts @@ -1,7 +1,7 @@ import { PokemonDatabase } from "../database/PokemonDatabase" import { NotFoundError } from "../errors/NotFoundError" import { UnprocessableError } from "../errors/UnprocessableError" -import { Pokemon } from "../models/Pokemon" +import { IPokemonDB, IPokemonInputDTO, Pokemon } from "../models/Pokemon" export class PokemonBusiness { @@ -9,11 +9,48 @@ export class PokemonBusiness { private pokemonDatabase: PokemonDatabase, ) {} - public addPokemon = async (pokemons: Pokemon[]) => { + public addPokemon = async (pokemons: IPokemonInputDTO[]) => { + for (let pokemon of pokemons){ + const pokemonDB: IPokemonDB = { + id: pokemon.Row, + name: pokemon.Name, + Pokedex_Number: pokemon['Pokedex Number'], + Img_name: pokemon['Img name'], + Generation: pokemon.Generation, + Evolution_Stage: pokemon['Evolution Stage'], + Evolved: pokemon.Evolved, + FamilyID: pokemon.FamilyID, + Cross_Gen: pokemon["Cross Gen"], + Type_1: pokemon["Type 1"], + Type_2: pokemon["Type 2"], + Weather_1: pokemon["Weather 1"], + Weather_2: pokemon["Weather 2"], + STAT_TOTAL: pokemon["STAT TOTAL"], + ATK: pokemon.ATK, + DEF: pokemon.DEF, + STA: pokemon.STA, + Legendary: pokemon.Legendary, + Aquireable: pokemon.Aquireable, + Spawns: pokemon.Spawns, + Regional: pokemon.Regional, + Raidable: pokemon.Raidable, + Hatchable: pokemon.Hatchable, + Shiny: pokemon.Shiny, + Nest: pokemon.Nest, + New: pokemon.New, + Not_Gettable: pokemon["Not-Gettable"], + Future_Evolve: pokemon["Future Evolve"], + MAX_CP_LVL_40: pokemon["100% CP @ 40"], + MAX_CP_LVL_39: pokemon["100% CP @ 39"] + } + + await this.pokemonDatabase.insertPokemon(pokemonDB) + + } const response = { - message: "Produtos adicionados com sucesso", + message: "Pokemons adicionados com sucesso", } return response diff --git a/modulo6/case3/redfox-backend/src/controller/PokemonController.ts b/modulo6/case3/redfox-backend/src/controller/PokemonController.ts index 5fe6a20..4911603 100644 --- a/modulo6/case3/redfox-backend/src/controller/PokemonController.ts +++ b/modulo6/case3/redfox-backend/src/controller/PokemonController.ts @@ -1,7 +1,12 @@ import { Request, Response } from "express"; import { PokemonBusiness } from "../business/PokemonBusiness"; import { BaseError } from "../errors/BaseError"; -import { Pokemon } from "../models/Pokemon"; +import { IPokemonInputDTO } from "../models/Pokemon"; +import { convertToJson } from "../conversion/SheetConversor"; +import { pokemonsRaw } from "../conversion/SheetConversor"; +import * as xlsx from 'xlsx' +import * as path from 'path' + export class PokemonController { constructor( @@ -9,8 +14,13 @@ export class PokemonController { ) {} public addPokemon = async (req: Request, res: Response) => { + const pokemons = convertToJson(pokemonsRaw) + try { + const input: IPokemonInputDTO[] = pokemons + const response = await this.pokemonBusiness.addPokemon(input) + res.status(201).send(response) } catch (error) { if (error instanceof BaseError) { diff --git a/modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts b/modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts index 691fd94..8ab9d2a 100644 --- a/modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts +++ b/modulo6/case3/redfox-backend/src/conversion/SheetConversor.ts @@ -1,8 +1,23 @@ -import * as fs from 'fs' import * as xlsx from 'xlsx' +import * as path from 'path' +import { IPokemonInputDTO } from '../models/Pokemon' + + +export const pokemonsRaw = xlsx.readFile(path.resolve(__dirname, "../data/data.xlsx")) + +export const convertToJson = (xlsxFile: xlsx.WorkBook): IPokemonInputDTO[] => { + const data = xlsxFile.Sheets["Sheet1"] + const pokemons: IPokemonInputDTO[] = xlsx.utils.sheet_to_json(data) + return pokemons +} + + +// const data = pokemonsRaw.Sheets["Sheet1"] + +// export const pokemons: IPokemonInputDTO[] = xlsx.utils.sheet_to_json(data) + -export const pokemons = xlsx.readFile("./data.xlsx") diff --git a/modulo6/case3/redfox-backend/src/conversion/data.xlsx b/modulo6/case3/redfox-backend/src/conversion/data.xlsx deleted file mode 100644 index c991e83ed68856c9c516152313e06e966f4ae508..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108523 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 diff --git a/modulo6/case3/redfox-backend/src/data/data.xlsx b/modulo6/case3/redfox-backend/src/data/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..63a8b336eb30a0bcc90191b798958f8cff43cd55 GIT binary patch literal 133053 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
    *pDTEE8Y9~HTb$boVX`-mOgrNcmq=8@k(z} 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 LJPIh_3GDv>SGb2@ literal 0 HcmV?d00001 diff --git a/modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts b/modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts index e4562c9..4cb5d58 100644 --- a/modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts +++ b/modulo6/case3/redfox-backend/src/database/PokemonDatabase.ts @@ -5,22 +5,12 @@ export class PokemonDatabase extends BaseDatabase { public static TABLE_POKEMONS = "Pokemons" - public toProductDBModel = (product: Pokemon) => { - // const pokemonDB: IPokemonDB = { - // id: pokemon.getId(), - // name: pokemon.getName() - // } - - // return pokemonDB - } - - - public addPokemons = async (pokemon: Pokemon): Promise => { - const productDB = this.toProductDBModel(pokemon) + public insertPokemon = async (pokemon: IPokemonDB): Promise => { + console.log(pokemon) await BaseDatabase .connection(PokemonDatabase.TABLE_POKEMONS) - .insert(productDB) + .insert(pokemon) } diff --git a/modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts b/modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts index 22c01c6..8d2f395 100644 --- a/modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts +++ b/modulo6/case3/redfox-backend/src/database/migrations/Migrations.ts @@ -27,9 +27,9 @@ class Migrations extends BaseDatabase { CREATE TABLE IF NOT EXISTS ${PokemonDatabase.TABLE_POKEMONS} ( - id TINYINT PRIMARY KEY, + id SMALLINT PRIMARY KEY, name VARCHAR(255), - Pokedex_Number TINYINT , + Pokedex_Number SMALLINT , Img_name TINYINT , Generation TINYINT, Evolution_Stage TINYINT, @@ -40,7 +40,7 @@ class Migrations extends BaseDatabase { Type_2 VARCHAR(255), Weather_1 VARCHAR(255), Weather_2 VARCHAR(255), - STAT_TOTAL TINYINT, + STAT_TOTAL SMALLINT, ATK TINYINT, DEF TINYINT, STA TINYINT, @@ -55,8 +55,8 @@ class Migrations extends BaseDatabase { New TINYINT, Not_Gettable TINYINT, Future_Evolve TINYINT, - MAX_CP_LVL_40 SMALLINT, - MAX_CP_LVL_39 SMALLINT + MAX_CP_LVL_40 INT, + MAX_CP_LVL_39 INT ); `) diff --git a/modulo6/case3/redfox-backend/src/index.ts b/modulo6/case3/redfox-backend/src/index.ts index 33266be..f350354 100644 --- a/modulo6/case3/redfox-backend/src/index.ts +++ b/modulo6/case3/redfox-backend/src/index.ts @@ -3,7 +3,7 @@ import cors from 'cors' import dotenv from "dotenv" import { pingRouter } from './router/pingRouter' import { pokemonRouter } from './router/PokemonRouter' -import { pokemons } from './conversion/SheetConversor' + dotenv.config() @@ -18,6 +18,4 @@ app.listen(process.env.PORT || 3003, () => { app.use("/ping", pingRouter) app.use("/pokemons", pokemonRouter) -console.log(pokemons) - diff --git a/modulo6/case3/redfox-backend/src/models/Pokemon.ts b/modulo6/case3/redfox-backend/src/models/Pokemon.ts index a42e1c7..0016dc5 100644 --- a/modulo6/case3/redfox-backend/src/models/Pokemon.ts +++ b/modulo6/case3/redfox-backend/src/models/Pokemon.ts @@ -31,6 +31,39 @@ export interface IPokemonDB { MAX_CP_LVL_39: number } +export interface IPokemonInputDTO { + Row: number, + Name: string, + 'Pokedex Number': number, + 'Img name': number, + Generation: number, + 'Evolution Stage': number, + Evolved: number, + FamilyID: number, + 'Cross Gen': number, + 'Type 1': string, + 'Type 2': string, + 'Weather 1': string, + 'Weather 2': string, + 'STAT TOTAL': number, + ATK: number, + DEF: number, + STA: number, + Legendary: number, + Aquireable: number, + Spawns: number, + Regional: number, + Raidable: number, + Hatchable: number, + Shiny: number, + Nest: number, + New: number, + 'Not-Gettable': number, + 'Future Evolve': number, + '100% CP @ 40': number, + '100% CP @ 39': number, +} + export class Pokemon { constructor( private id: number,